Mundarija:
- 1 -qadam: Uskuna kerak:
- 2 -qadam: Uskuna ulanishi:
- 3 -qadam: Harakatni kuzatish kodi:
- 4 -qadam: Ilovalar:
Video: MPU-6000 va Arduino Nano yordamida harakatni kuzatish: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
MPU-6000-bu 6 o'qli harakatni kuzatish sensori, uning ichiga 3 o'qli akselerometr va 3 o'qli giroskop o'rnatilgan. Bu sensor ob'ektning 3 o'lchovli tekislikdagi aniq joylashuvi va joylashuvini samarali kuzatishga qodir. U yuqori aniqlikdagi pozitsion tahlilni talab qiladigan tizimlarda ishlatilishi mumkin.
Ushbu qo'llanmada MPU-6000 sensor modulining arduino nano bilan o'zaro aloqasi tasvirlangan. Tezlik va aylanish burchagi qiymatlarini o'qish uchun biz I2c adapterli arduino nanosidan foydalanganmiz, bu I2C adapteri sensor moduliga ulanishni oson va ishonchli qiladi.
1 -qadam: Uskuna kerak:
Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:
1. MPU-6000
2. Arduino Nano
3. I2C kabeli
4. Arduino nano uchun I2C qalqoni
2 -qadam: Uskuna ulanishi:
Uskuna ulanish bo'limi asosan sensor va arduino nano 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:
MPU-6000 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.
3 -qadam: Harakatni kuzatish 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:
#qo'shing
// MPU-6000 I2C manzili-0x68 (104)
#aniqlang Addr 0x68
bo'sh o'rnatish ()
{
// I2C muloqotini usta sifatida boshlang
Wire.begin ();
// Seriyali aloqani ishga tushiring, bod tezligi = 9600 ni o'rnating
Serial.begin (9600);
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Giroskop konfiguratsiya registrini tanlang
Wire.write (0x1B);
// To'liq o'lchov diapazoni = 2000 dps
Wire.write (0x18);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Accelerometer konfiguratsiya registrini tanlang
Wire.write (0x1C);
// To'liq o'lchov diapazoni = +/- 16g
Wire.write (0x18);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Quvvatni boshqarish registrini tanlang
Wire.write (0x6B);
// PLG xGyro mos yozuvlar bilan
Wire.write (0x01);
// 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 (0x3B);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// 6 bayt ma'lumotni so'rang
Wire.requestFrom (Addr, 6);
// 6 bayt ma'lumotni o'qing
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 ();
}
// Ma'lumotni aylantirish
int xAccl = ma'lumotlar [0] * 256 + ma'lumotlar [1];
int yAccl = ma'lumotlar [2] * 256 + ma'lumotlar [3];
int zAccl = ma'lumotlar [4] * 256 + ma'lumotlar [5];
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Ma'lumotlar reestrini tanlang
Wire.write (0x43);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// 6 bayt ma'lumotni so'rang
Wire.requestFrom (Addr, 6);
// 6 bayt ma'lumotni o'qing
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 ();
}
// Ma'lumotni aylantirish
int xGyro = ma'lumotlar [0] * 256 + ma'lumotlar [1];
int yGyro = ma'lumotlar [2] * 256 + ma'lumotlar [3];
int zGyro = ma'lumotlar [4] * 256 + ma'lumotlar [5];
// Ma'lumotlarni ketma -ket monitorga chiqarish
Serial.print ("X o'qida tezlashtirish:");
Serial.println (xAccl);
Serial.print ("Y o'qida tezlashtirish:");
Serial.println (yAccl);
Serial.print ("Z o'qida tezlashtirish:");
Serial.println (zAccl);
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);
}
Tel kutubxonasida Wire.write () va Wire.read () buyruqlarni yozish va sensor chiqishini o'qish uchun ishlatiladi.
Arduino IDE seriyali monitorida sensorning chiqishini ko'rsatish uchun Serial.print () va Serial.println () ishlatiladi.
Sensorning chiqishi yuqoridagi rasmda ko'rsatilgan.
4 -qadam: Ilovalar:
MPU-6000-bu harakatni kuzatish sensori bo'lib, u o'z qo'llanilishini smartfon va planshetlarning harakatlanish interfeysida topadi. Smartfonlarda bu sensorlar ilovalar va telefonni boshqarish uchun imo -ishorali buyruqlar, kengaytirilgan o'yin, kengaytirilgan haqiqat, panoramali suratga olish va ko'rish, piyodalar va transportda navigatsiya kabi ilovalarda ishlatilishi mumkin. MotionTracking texnologiyasi telefonlar va planshetlarni sog'liqni saqlash va fitnes monitoringi, joylashuvga asoslangan xizmatlarga qadar qo'llaniladigan 3D aqlli qurilmalarga aylantirishi mumkin.
Tavsiya:
Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: 6 qadam
Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: Go'zallik bizni o'rab oladi, lekin odatda biz buni bilish uchun bog'da yurishimiz kerak. - Biz o'qimishli guruh sifatida biz energiyamizning katta qismini kompyuter va mobil telefonlarimizdan oldin sarflaymiz. Shuning uchun, biz tez -tez o'z sog'ligimizga ruxsat beramiz
QeMotion - Har bir naushnik uchun harakatni kuzatish: 5 qadam (rasmlar bilan)
QeMotion - Har bir naushnik uchun harakatni kuzatish !: Umumiy nuqtai: Ushbu qurilma, asosan, har qanday video o'yinlaridagi voqealarni tetiklash uchun bosh harakatidan foydalanish imkonini beradi. Bu sizning boshingiz harakatini kuzatib borish (yoki eshitish vositasi) va ma'lum harakatlar uchun klaviatura tugmalarini bosish orqali ishlaydi. Shunday qilib, sizning komp
MCP9808 va Arduino Nano yordamida haroratni kuzatish: 4 qadam
MCP9808 va Arduino Nano yordamida haroratni kuzatish: MCP9808 - yuqori aniqlikdagi raqamli harorat sensori ± 0,5 ° C I2C mini moduli. Ular foydalanuvchi tomonidan dasturlashtiriladigan registrlar bilan jihozlangan bo'lib, ular haroratni sezishni osonlashtiradi. MCP9808 yuqori aniqlikdagi harorat sensori sanoatga aylandi
Python yordamida Raspberry Pi va AIS328DQTR yordamida tezlashtirishni kuzatish: 6 qadam
Python yordamida Raspberry Pi va AIS328DQTR yordamida tezlashtirishni kuzatish: Menimcha, tezlanish- bu fizikaning ba'zi qonunlariga muvofiq.- Terri Rayli Gepard quvishda tezlikni tez o'zgarishini va tez o'zgarishini qo'llaydi. Eng tez qirg'oqqa chiqadigan jonivor, o'ljani tutish uchun tezligidan foydalanadi.
Python yordamida Raspberry Pi va MMA7455 yordamida tezlashuv turlarini kuzatish: 6 qadam
Python yordamida Raspberry Pi va MMA7455 yordamida tezlashuv turlarini kuzatish: men qoqilmadim, tortish kuchini sinab ko'rdim. Bu hali ham ishlaydi … Tezlashib borayotgan kosmik kemaning tasviri shuni ko'rsatdiki, tortishish vaqtining kengayishi tufayli, sayyoraning eng yuqori nuqtasida joylashgan soat bazadagi tezlikdan ko'ra tezroq bo'ladi. Biroz