Mundarija:

BMG160 3 o'qli giroskop sensori Arduino Nano bilan o'zaro bog'lanishi: 5 qadam
BMG160 3 o'qli giroskop sensori Arduino Nano bilan o'zaro bog'lanishi: 5 qadam

Video: BMG160 3 o'qli giroskop sensori Arduino Nano bilan o'zaro bog'lanishi: 5 qadam

Video: BMG160 3 o'qli giroskop sensori Arduino Nano bilan o'zaro bog'lanishi: 5 qadam
Video: AIRMOUSE G40—multifunksional mishkali pult 2023 @SUNSHINE-EXPRESS #g40 #airmouse 2024, Noyabr
Anonim
Image
Image

Zamonaviy dunyoda yoshlar va bolalarning yarmidan ko'pi o'yinni yaxshi ko'radilar va o'yinni texnik jihatdan qiziqtirganlarning hammasi bu sohada harakatni sezishning ahamiyatini bilishadi. Bizni ham xuddi shu narsa hayratda qoldirdi va uni taxtalarga qo'yish uchun biz har qanday narsaning burchak tezligini o'lchaydigan giroskop sensori ustida ishlashni o'yladik. Shunday qilib, biz vazifani hal qilish uchun sensori - BMG160. BMG160-bu 16 bitli, raqamli, uch fazali, giroskopli sensor, u burchak tezligini xonaning uchta perpendikulyar o'lchovida o'lchashi mumkin.

Ushbu qo'llanmada biz BMG160 ning Arduino Nano bilan ishlashini namoyish qilmoqchimiz.

Buning uchun sizga kerak bo'lgan uskunalar quyidagilar:

1. BMG160

2. Arduino Nano

3. I2C kabeli

4. Arduino Nano uchun I2C qalqoni

1 -qadam: BMG160 haqida umumiy ma'lumot:

Sizga nima kerak.. !!
Sizga nima kerak.. !!

Birinchidan, biz sizni BMG160 sensori modulining asosiy xususiyatlari va u ishlaydigan aloqa protokoli bilan tanishtirmoqchimiz.

BMG160-bu asosan 16-bitli, raqamli, uch fazali, giroskopli burchak tezligini o'lchaydigan sensor. U burchak tezligini xona, y va z o'qi bo'yicha uchta perpendikulyar o'lchovda hisoblashi va mos keladigan chiqish signallarini berishi mumkin. U malina pi taxtasi bilan I2C aloqa protokoli yordamida muloqot qilishi mumkin. Ushbu modul iste'molchi talablariga, shuningdek sanoat maqsadlariga javob beradigan tarzda ishlab chiqilgan.

Sensor ishlaydigan aloqa protokoli I2C. I2C o'zaro integratsiyalashgan sxemani anglatadi. Bu aloqa protokoli bo'lib, bunda aloqa SDA (ketma -ket ma'lumotlar) va SCL (ketma -ket soat) liniyalari orqali amalga oshiriladi. Bu bir vaqtning o'zida bir nechta qurilmalarni ulash imkonini beradi. Bu eng oddiy va samarali aloqa protokoli.

2 -qadam: Sizga nima kerak.. !

Sizga nima kerak.. !!
Sizga nima kerak.. !!
Sizga nima kerak.. !!
Sizga nima kerak.. !!
Sizga nima kerak.. !!
Sizga nima kerak.. !!

Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:

1. BMG160

2. Arduino Nano

3. I2C kabeli

4. Arduino Nano uchun I2C qalqoni

3 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi asosan sensor va Arduino o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:

BMG160 I2C ustida ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.

Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz.

Sizga faqat to'rtta sim kerak! Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.

Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.

4-qadam: 3 o'qli giroskopni o'lchash Arduino kodi:

3 o'qli giroskopni o'lchash Arduino kodi
3 o'qli giroskopni o'lchash Arduino kodi
3 o'qli giroskopni o'lchash Arduino kodi
3 o'qli giroskopni o'lchash Arduino kodi

Endi arduino kodidan boshlaylik.

Sensor modulini arduino bilan ishlatganda, biz Wire.h kutubxonasini o'z ichiga olamiz. "Wire" kutubxonasida sensorlar va arduino kartalari o'rtasida i2c aloqasini osonlashtiradigan funktsiyalar mavjud.

Foydalanuvchining qulayligi uchun butun arduino kodi quyida keltirilgan:

#o'z ichiga oladi // BMG160 I2C manzili - 0x68 (104)

#aniqlang Addr 0x68

bo'sh o'rnatish ()

{

// I2C aloqasini MASTER sifatida boshlang

Wire.begin ();

// Serial aloqani ishga tushiring, bod tezligi = 9600

Serial.begin (9600);

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Ro'yxatdan o'tish diapazonini tanlang

Wire.write (0x0F);

// 2000 dps to'liq o'lchovli diapazonni sozlash

Wire.write (0x80);

// I2C uzatishni to'xtating

Wire.endTransmission ();

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Tarmoqli kengligi registrini tanlang

Wire.write (0x10);

// Tarmoqli kengligini = 200 Gts ni o'rnating

Wire.write (0x04);

// I2C uzatishni to'xtating

Wire.endTransmission ();

kechikish (300);

}

bo'sh halqa ()

{

imzosiz int ma'lumotlari [6];

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Gyrometer ma'lumotlar registrini tanlang

Wire.write (0x02);

// I2C uzatishni to'xtating

Wire.endTransmission ();

// 6 bayt ma'lumotni so'rang

Wire.requestFrom (Addr, 6);

// 6 bayt ma'lumotni o'qing

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

agar (Wire.available () == 6)

{

ma'lumotlar [0] = Wire.read ();

ma'lumotlar [1] = Wire.read ();

ma'lumotlar [2] = Wire.read ();

ma'lumotlar [3] = Wire.read ();

ma'lumotlar [4] = Wire.read ();

ma'lumotlar [5] = Wire.read ();

}

kechikish (300);

// Ma'lumotni aylantirish

int xGyro = ((ma'lumotlar [1] * 256) + ma'lumotlar [0]);

int yGyro = ((ma'lumotlar [3] * 256) + ma'lumotlar [2]);

int zGyro = ((ma'lumotlar [5] * 256) + ma'lumotlar [4]);

// Ma'lumotlarni ketma -ket monitorga chiqarish

Serial.print ("Aylanish o'qi:");

Serial.println (xGyro); Serial.print ("Y o'qining aylanish o'qi:");

Serial.println (yGyro); Serial.print ("Z-o'qi aylanishi:");

Serial.println (zGyro);

kechikish (500);

}

5 -qadam: Ilovalar:

Ilovalar
Ilovalar

BMG160 uyali telefonlar, inson mashinalari interfeysi qurilmalari kabi qurilmalarda turli xil ilovalarga ega. Sensor moduli tasvirni barqarorlashtirish (DSC va kamera-telefon), o'yin va ishora qurilmalari kabi iste'molchi ilovalariga qo'yiladigan talablarni qondirish uchun ishlab chiqilgan. Shuningdek, u imo -ishorani aniqlashni talab qiladigan tizimlarda va ichki navigatsiyada ishlatiladigan tizimlarda qo'llaniladi.

Tavsiya: