Mundarija:

BMG160 zarrachali 3 o'qli giroskop sensori bilan o'zaro bog'lanish: 5 qadam
BMG160 zarrachali 3 o'qli giroskop sensori bilan o'zaro bog'lanish: 5 qadam

Video: BMG160 zarrachali 3 o'qli giroskop sensori bilan o'zaro bog'lanish: 5 qadam

Video: BMG160 zarrachali 3 o'qli giroskop sensori bilan o'zaro bog'lanish: 5 qadam
Video: Gruntlar mexanikasi zamin va poydevorlar 16 ma'ruza Normurodov Sh 2024, Iyul
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 zarracha foton bilan ishlashini namoyish qilmoqchimiz.

Buning uchun sizga kerak bo'lgan uskunalar quyidagilar:

1. BMG160

2. Zarrachali foton

3. I2C kabeli

4. Zarrachali foton 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. Foton zarrachalari

3. I2C kabeli

4. Zarrachali foton uchun I2C qalqoni

3 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi asosan sensor va zarracha o'rtasida zarur bo'lgan simli ulanishlarni 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 giroskop o'lchov zarracha kodi:

3 o'qli giroskop o'lchov zarracha kodi
3 o'qli giroskop o'lchov zarracha kodi
3 o'qli giroskop o'lchov zarracha kodi
3 o'qli giroskop o'lchov zarracha kodi

Endi zarracha kodidan boshlaylik.

Sensor modulini arduino bilan ishlatganda, biz application.h va spark_wiring_i2c.h kutubxonasini o'z ichiga olamiz. "application.h" va spark_wiring_i2c.h kutubxonasi sensor va zarracha o'rtasidagi i2c aloqasini osonlashtiradigan funktsiyalarni o'z ichiga oladi.

Butun zarracha kodi foydalanuvchiga qulay bo'lishi uchun quyida keltirilgan:

#qo'shing

#qo'shing

// BMG160 I2C manzili - 0x68 (104)

#aniqlang Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

bo'sh o'rnatish ()

{

// O'zgaruvchini o'rnating

Particle.variable ("i2cdevice", "BMG160");

Particle.variable ("xGyro", xGyro);

Zarracha.variable ("yGyro", yGyro);

Zarracha.variable ("zGyro", zGyro);

// I2C aloqasini MASTER sifatida boshlang

Wire.begin ();

// Serial aloqani boshlang

Serial.begin (9600);

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Ro'yxatdan o'tish diapazonini tanlang

Wire.write (0x0F);

// 2000 dps to'liq o'lchovni 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);

// Ma'lumotlar reestrini 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

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

agar (xGyro> 32767)

{

xGyro -= 65536;

}

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

agar (yGyro> 32767)

{

yGyro -= 65536;

}

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

agar (zGyro> 32767)

{

zGyro -= 65536;

}

// Ma'lumotlarni boshqaruv paneliga chiqarish

Particle.publish ("Aylanish o'qi:", String (xGyro));

Particle.publish ("Y aylanish o'qi:", String (yGyro));

Particle.publish ("Z-aylanish o'qi:", String (zGyro));

kechikish (1000);

}

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: