Mündəricat:

Arduino Nano ilə 3 Eksenli BMG160 Giroskop Sensorunun Arası: 5 Addım
Arduino Nano ilə 3 Eksenli BMG160 Giroskop Sensorunun Arası: 5 Addım

Video: Arduino Nano ilə 3 Eksenli BMG160 Giroskop Sensorunun Arası: 5 Addım

Video: Arduino Nano ilə 3 Eksenli BMG160 Giroskop Sensorunun Arası: 5 Addım
Video: Arduino Nano and GY-521 MPU6050 3-осевой гироскоп, 3-осевой акселерометр и DMP 2024, Iyul
Anonim
Image
Image

Müasir dünyada, gənclərin və uşaqların yarıdan çoxu oyuna həvəs göstərir və oyunun texniki cəhətlərinə heyran olanların hamısı bu sahədə hərəkət algılamanın əhəmiyyətini bilir. Eyni şey bizi heyrətləndirdi və lövhələrə qoymaq üçün hər hansı bir cismin bucaq sürətini ölçə bilən bir giroskop sensoru üzərində işləməyi düşündük. Beləliklə, vəzifəni həll etmək üçün götürdüyümüz sensor BMG160 -dır. BMG160, 16 bitlik, rəqəmsal, üç eksenli, giroskoplu bir sensordur ki, bucaq dərəcəsini üç perpendikulyar otaq ölçülərində ölçə bilər.

Bu təlimatda BMG160 -ın Arduino Nano ilə işini nümayiş etdirəcəyik.

Bu məqsədlə ehtiyac duyacağınız avadanlıq aşağıdakılardır:

1. BMG160

2. Arduino Nano

3. I2C Kabeli

4. Arduino Nano üçün I2C Shield

Addım 1: BMG160 Baxış:

Nə Lazımdır.. !!
Nə Lazımdır.. !!

Əvvəlcə BMG160 sensor modulunun əsas xüsusiyyətləri və işlədiyi ünsiyyət protokolu ilə tanış olmaq istərdik.

BMG160, əsasən açısal dərəcələri ölçə bilən 16 bitlik, rəqəmsal, üç eksenli, giroskop sensordur. Üç dik otaq ölçülərində, x-, y- və z-oxunda bucaq dərəcələrini hesablaya və müvafiq çıxış siqnallarını təmin edə bilir. I2C rabitə protokolundan istifadə edərək moruq pi lövhəsi ilə əlaqə qura bilər. Bu xüsusi modul, istehlakçı tətbiqləri və sənaye məqsədləri üçün tələblərə cavab vermək üçün hazırlanmışdır.

Sensorun işlədiyi rabitə protokolu I2C -dir. I2C, inteqrasiya edilmiş dövrəni ifadə edir. SDA (serial məlumat) və SCL (serial saat) xətləri vasitəsi ilə ünsiyyətin qurulduğu bir ünsiyyət protokoludur. Eyni anda birdən çox cihazı birləşdirməyə imkan verir. Ən sadə və ən təsirli ünsiyyət protokollarından biridir.

Addım 2: Nə Lazımdır..

Nə Lazımdır.. !!
Nə Lazımdır.. !!
Nə Lazımdır.. !!
Nə Lazımdır.. !!
Nə Lazımdır.. !!
Nə Lazımdır.. !!

Məqsədimizə çatmaq üçün ehtiyacımız olan materiallar aşağıdakı aparat komponentlərindən ibarətdir:

1. BMG160

2. Arduino Nano

3. I2C Kabeli

4. Arduino Nano üçün I2C Shield

Addım 3: Hardware Bağlantısı:

Avadanlıq Bağlama
Avadanlıq Bağlama
Avadanlıq Bağlama
Avadanlıq Bağlama

Avadanlıq bağlama bölməsi əsasən sensor və Arduino arasında lazım olan naqillərin əlaqələrini izah edir. İstənilən çıxış üçün hər hansı bir sistem üzərində işləyərkən düzgün əlaqələrin təmin edilməsi əsas zərurətdir. Beləliklə, zəruri əlaqələr aşağıdakılardır:

BMG160 I2C üzərində işləyəcək. Sensorun hər bir interfeysini necə bağlayacağınızı göstərən nümunə naqillər diaqramı.

Qutudan kənarda, lövhə I2C interfeysi üçün konfiqurasiya olunmuşdur, buna görə də başqa cür agnostiksinizsə bu əlaqəni istifadə etməyi məsləhət görürük.

Lazım olan tək şey dörd teldir! Vcc, Gnd, SCL və SDA pinləri üçün yalnız dörd əlaqə lazımdır və bunlar I2C kabelinin köməyi ilə bağlanır.

Bu əlaqələr yuxarıdakı şəkillərdə göstərilmişdir.

Addım 4: 3 Eksenli Giroskop Ölçmə Arduino Kodu:

3 Eksenli Giroskop Ölçmə Arduino Kodu
3 Eksenli Giroskop Ölçmə Arduino Kodu
3 Eksenli Giroskop Ölçmə Arduino Kodu
3 Eksenli Giroskop Ölçmə Arduino Kodu

İndi arduino kodundan başlayaq.

Sensor modulunu arduino ilə işləyərkən Wire.h kitabxanasını daxil edirik. "Tel" kitabxanası, sensor və arduino lövhəsi arasındakı i2c əlaqəsini asanlaşdıran funksiyaları ehtiva edir.

İstifadəçinin rahatlığı üçün bütün arduino kodu aşağıda verilmişdir:

#daxildir // BMG160 I2C ünvanı 0x68 (104)

#define Addr 0x68

boş quraşdırma ()

{

// I2C ünsiyyətini MASTER olaraq başladın

Wire.begin ();

// Serial Rabitəni Başlatın, baud dərəcəsini = 9600 olaraq təyin edin

Serial.begin (9600);

// I2C ötürülməsinə başlayın

Wire.beginTransmission (Addr);

// Aralıq qeydini seçin

Wire.write (0x0F);

// Tam miqyaslı 2000 dps aralığını konfiqurasiya edin

Wire.write (0x80);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

// I2C ötürülməsinə başlayın

Wire.beginTransmission (Addr);

// Bant genişliyi qeydini seçin

Wire.write (0x10);

// Bant genişliyi = 200 Hz seçin

Wire.write (0x04);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

gecikmə (300);

}

boşluq döngəsi ()

{

imzasız int məlumatları [6];

// I2C ötürülməsinə başlayın

Wire.beginTransmission (Addr);

// Gyrometer məlumat qeydini seçin

Wire.write (0x02);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

// 6 bayt məlumat tələb edin

Wire.requestFrom (Addr, 6);

// 6 bayt məlumat oxuyun

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

əgər (Tel.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

gecikmə (300);

// Məlumatları çevirin

int xGyro = ((məlumat [1] * 256) + məlumat [0]);

int yGyro = ((data [3] * 256) + data [2]);

int zGyro = ((məlumat [5] * 256) + məlumat [4]);

// Serial monitora məlumat çıxarmaq

Serial.print ("Fırlanma X Ekseni:");

Serial.println (xGyro); Serial.print ("Fırlanma Y Ekseni:");

Serial.println (yGyro); Serial.print ("Z-Fırlanma Ekseni:");

Serial.println (zGyro);

gecikmə (500);

}

Addım 5: Tətbiqlər:

Tətbiqlər
Tətbiqlər

BMG160, cib telefonları, insan maşın interfeysi cihazları kimi cihazlarda çox sayda tətbiqə malikdir. Bu sensor modulu, görüntü sabitləşdirmə (DSC və kamera-telefon), oyun və işarə cihazları kimi istehlakçı tətbiqləri üçün tələbləri ödəmək üçün hazırlanmışdır. Jest tanıma tələb edən sistemlərdə və daxili naviqasiyada istifadə olunan sistemlərdə də istifadə olunur.

Tövsiyə: