Mundarija:
- 1 -qadam: Uskuna kerak:
- 2 -qadam: Uskuna ulanishi:
- 3 -qadam: Harakatni kuzatish kodi:
- 4 -qadam: Ilovalar:
Video: MPU-6000 va zarracha foton 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 zarracha fotoni bilan o'zaro aloqasi tasvirlangan. Tezlik va aylanish burchagi qiymatlarini o'qish uchun biz I2c adapterli zarrachadan foydalanganmiz, bu I2C adapteri sensor moduliga ulanishni oson va ishonchli qiladi.
1 -qadam: Uskuna kerak:
Bizning vazifamizni bajarish uchun zarur bo'lgan materiallar quyida keltirilgan apparat komponentlarini o'z ichiga oladi:
1. MPU-6000
2. Foton zarrachalari
3. I2C kabeli
4. Zarrachalar fotoni uchun I2C qalqoni
2 -qadam: Uskuna ulanishi:
Uskuna ulash bo'limi asosan sensor va zarracha fotoni 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 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:
#include #include // MPU-6000 I2C manzili 0x68 (104) #Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Particle.variable o'zgaruvchisini o'rnating ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Zarracha.variable ("yGyro", yGyro); Zarracha.variable ("zGyro", zGyro); // I2C aloqasini Master Wire.begin () sifatida boshlang; // Ketma -ket aloqani ishga tushiring, baud tezligini = 9600 Serial.begin (9600) o'rnating; // I2C uzatishni ishga tushiring Wire.beginTransmission (Addr); // Wire.write (0x1B) giroskop konfiguratsiya registrini tanlang; // To'liq o'lchov diapazoni = 2000 dps Wire.write (0x18); // I2C uzatishni to'xtating Wire.endTransmission (); // I2C uzatishni ishga tushiring Wire.beginTransmission (Addr); // Wire.write (0x1C) akselerometr konfiguratsiya registrini tanlang; // To'liq o'lchov diapazoni = +/- 16g Wire.write (0x18); // I2C uzatishni to'xtating Wire.endTransmission (); // I2C uzatishni ishga tushiring Wire.beginTransmission (Addr); // Wire.write quvvat boshqaruvi registrini tanlang (0x6B); // PLG xGyro mos yozuvlar bilan Wire.write (0x01); // I2C uzatishni to'xtatish Wire.endTransmission (); kechikish (300); } void loop () {unsigned int data [6]; // I2C uzatishni ishga tushiring Wire.beginTransmission (Addr); // Wire.write ma'lumotlar registrini tanlang (0x3B); // I2C uzatishni to'xtatish Wire.endTransmission (); // Wire.requestFromdan 6 bayt ma'lumot so'rash (Addr, 6); // 6 bayt ma'lumotni o'qing, agar (Wire.available () == 6) {data [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 (800); // Ma'lumotlarni aylantirish xAccl = ((ma'lumotlar [1] * 256) + ma'lumotlar [0]); agar (xAccl> 32767) {xAccl -= 65536; } yAccl = ((ma'lumotlar [3] * 256) + ma'lumotlar [2]); agar (yAccl> 32767) {yAccl -= 65536; } zAccl = ((ma'lumotlar [5] * 256) + ma'lumotlar [4]); agar (zAccl> 32767) {zAccl -= 65536; } kechikish (800); // I2C uzatishni ishga tushiring Wire.beginTransmission (Addr); // Wire.write ma'lumotlar registrini tanlang (0x43); // I2C uzatishni to'xtating Wire.endTransmission (); // Wire.requestFromdan 6 bayt ma'lumot so'rash (Addr, 6); // 6 bayt ma'lumotni o'qing, agar (Wire.available () == 6) {data [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'lumotlarni 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'lumotlar paneliga chiqish Particle.publish ("X o'qida tezlashtirish:", String (xAccl)); kechikish (1000); Particle.publish ("Y o'qida tezlashtirish:", String (yAccl)); kechikish (1000); Particle.publish ("Z o'qida tezlashtirish:", String (zAccl)); kechikish (1000); Particle.publish ("Aylanishning o'qi:", String (xGyro)); kechikish (1000); Particle.publish ("Y aylanish o'qi:", String (yGyro)); kechikish (1000); Particle.publish ("Z-aylanish o'qi:", String (zGyro)); kechikish (1000); }
Particle.variable () funktsiyasi sensorning chiqishini saqlash uchun o'zgaruvchilarni yaratadi va Particle.publish () funktsiyasi saytning boshqaruv panelida chiqishini ko'rsatadi.
Ma'lumot uchun sensor 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:
ADXL345 va zarracha foton yordamida tezlashtirishni o'lchash: 4 qadam
ADXL345 va zarracha foton yordamida tezlashtirishni o'lchash: ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13-bit) o'lchami ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2 C raqamli interfeysi orqali kirish mumkin. O'lchovlar
HMC5883 va zarracha foton yordamida magnit maydon o'lchami: 4 qadam
HMC5883 va zarracha foton yordamida magnit maydon o'lchami: HMC5883-past maydonli magnitli sezish uchun mo'ljallangan raqamli kompas. Bu qurilma magnit maydonining keng diapazoni +/- 8 Oe va chiqish tezligi 160 Gts. HMC5883 sensori avtomatik deagusing tasma drayverlarini, ofsetni bekor qilishni va
HYT939 va zarracha foton yordamida namlikni o'lchash: 4 qadam
HYT939 va zarracha foton yordamida namlikni o'lchash: HYT939 - I2C aloqa protokolida ishlaydigan raqamli namlik sensori. Namlik - bu tibbiy tizimlar va laboratoriyalarga taalluqli asosiy parametr, shuning uchun biz bu maqsadlarga erishish uchun HYT939 ni malina pi bilan bog'lashga harakat qildik. Men
H3LIS331DL va zarracha foton yordamida tezlashtirishni o'lchash: 4 qadam
H3LIS331DL va zarracha foton yordamida tezlashtirishni o'lchash: H3LIS331DL-bu "nano" oilasiga mansub, kam quvvatli, yuqori quvvatli 3 o'qli chiziqli akselerometr, raqamli I²C ketma-ket interfeysi. H3LIS331DL foydalanuvchi tomonidan tanlanishi mumkin bo'lgan to'liq o'lchovlar ± 100g/± 200g/± 400g va u tezlikni o'lchash imkoniyatiga ega
MCP9808 va zarracha foton yordamida haroratni kuzatish: 4 qadam
MCP9808 va zarracha foton 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