Mündəricat:
- Addım 1: Lazım olan avadanlıq:
- Addım 2: Hardware Bağlantısı:
- Addım 3: Hərəkət İzləmə Kodu:
- Addım 4: Tətbiqlər:
Video: MPU-6000 və hissəcik fotonundan istifadə edərək hərəkət izlənməsi: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
MPU-6000, 3 Eksenli akselerometr və 3 Eksenli giroskopu olan 6 Eksenli Hərəkət İzləmə Sensorudur. Bu sensor, obyektin 3ölçülü müstəvidə dəqiq mövqeyini və yerini səmərəli izləməyə qadirdir. Ən yüksək dəqiqlikdə mövqe təhlili tələb edən sistemlərdə istifadə edilə bilər.
Bu dərslikdə MPU-6000 sensor modulunun hissəcik fotonu ilə qarşılıqlı əlaqəsi təsvir edilmişdir. Sürətləndirmə və fırlanma bucağı dəyərlərini oxumaq üçün I2c adapteri olan hissəciklərdən istifadə etdik. Bu I2C adapteri sensor moduluna qoşulmağı asanlaşdırır və daha etibarlı edir.
Addım 1: Lazım olan avadanlıq:
Vəzifəmizi yerinə yetirmək üçün lazım olan materiallar aşağıda göstərilən hardware komponentlərini ehtiva edir:
1. MPU-6000
2. Foton hissəcikləri
3. I2C Kabeli
4. Partikül fotonu üçün I2C Shield
Addım 2: Hardware Bağlantısı:
Avadanlıq bağlama bölməsi əsasən sensor və hissəcik fotonu 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:
MPU-6000 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 3: Hərəkət İzləmə Kodu:
İndi hissəcik kodundan başlayaq.
Sensor modulunu arduino ilə işləyərkən application.h və spark_wiring_i2c.h kitabxanasını daxil edirik. "application.h" və spark_wiring_i2c.h kitabxanası, sensor və hissəcik arasındakı i2c əlaqəsini asanlaşdıran funksiyaları ehtiva edir.
İstifadəçinin rahatlığı üçün bütün hissəcik kodu aşağıda verilmişdir:
#daxil edin #daxil edin // MPU-6000 I2C ünvanı 0x68 (104) #Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Particle.variable dəyişənini təyin edin ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Particle.variable ("zGyro", zGyro); // Master Wire.begin () olaraq I2C ünsiyyətini başladın; // Serial rabitəni işə salın, baud sürətini təyin edin = 9600 Serial.begin (9600); // I2C ötürülməsinə başlayın Wire.beginTransmission (Addr); // Wire.write (0x1B) gyroscope konfiqurasiya qeydini seçin; // Tam miqyas aralığı = 2000 dps Wire.write (0x18); // I2C ötürülməsini dayandırın Wire.endTransmission (); // I2C ötürülməsinə başlayın Wire.beginTransmission (Addr); // Wire.write (0x1C) accelerometer konfiqurasiya qeydini seçin; // Tam miqyaslı aralıq = +/- 16g Wire.write (0x18); // I2C ötürülməsini dayandırın Wire.endTransmission (); // I2C ötürülməsinə başlayın Wire.beginTransmission (Addr); // Wire.write (0x6B) güc idarəetmə qeydini seçin; // xGyro istinad Wire.write ilə PLL (0x01); // I2C ötürülməsini dayandırın Wire.endTransmission (); gecikmə (300); } void loop () {unsigned int data [6]; // I2C ötürülməsinə başlayın Wire.beginTransmission (Addr); // Wire.write məlumat qeydini seçin (0x3B); // I2C ötürülməsini dayandırın Wire.endTransmission (); // Wire.requestFromdan 6 bayt məlumat istəyin (Addr, 6); // 6 bayt məlumat oxuyun, əgər (Wire.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ə (800); // Məlumatları çevirmək xAccl = ((data [1] * 256) + data [0]); əgər (xAccl> 32767) {xAccl -= 65536; } yAccl = ((data [3] * 256) + data [2]); əgər (yAccl> 32767) {yAccl -= 65536; } zAccl = ((məlumat [5] * 256) + məlumat [4]); əgər (zAccl> 32767) {zAccl -= 65536; } gecikmə (800); // I2C ötürülməsinə başlayın Wire.beginTransmission (Addr); // Wire.write məlumat qeydini seçin (0x43); // I2C ötürülməsini dayandırın Wire.endTransmission (); // Wire.requestFromdan 6 bayt məlumat istəyin (Addr, 6); // 6 bayt məlumat oxuyun, əgər (Wire.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 (); } // Verilənləri çevir xGyro = ((data [1] * 256) + data [0]); əgər (xGyro> 32767) {xGyro -= 65536; } yGyro = ((məlumat [3] * 256) + məlumat [2]); əgər (yGyro> 32767) {yGyro -= 65536; } zGyro = ((məlumat [5] * 256) + məlumat [4]); əgər (zGyro> 32767) {zGyro -= 65536; } // Tablet Particle.publish tablosuna məlumat çıxarın ("X Eksenində Sürətləndirmə:", String (xAccl)); gecikmə (1000); Particle.publish ("Y Eksenində Sürətləndirmə:", String (yAccl)); gecikmə (1000); Particle.publish ("Z Eksenində Sürətləndirmə:", String (zAccl)); gecikmə (1000); Particle.publish ("Dönmə X Ekseni:", String (xGyro)); gecikmə (1000); Particle.publish ("Fırlanma Y Ekseni:", String (yGyro)); gecikmə (1000); Particle.publish ("Z-Fırlanma Ekseni:", String (zGyro)); gecikmə (1000); }
Particle.variable () funksiyası sensorun çıxışını saxlamaq üçün dəyişənlər yaradır və Particle.publish () funksiyası saytın tablosuna çıxışı göstərir.
Sensor çıxışı istinad üçün yuxarıdakı şəkildə göstərilmişdir.
Addım 4: Tətbiqlər:
MPU-6000, tətbiqini smartfon və planşetlərin hərəkət interfeysində tapan bir hərəkət izləmə sensoru. Smartfonlarda bu sensorlar tətbiqetmələr və telefon idarəçiliyi üçün jest əmrləri, inkişaf etmiş oyun, genişlənmiş reallıq, panoramik fotoşəkil çəkmə və görüntü, piyada və avtomobil naviqasiyası kimi tətbiqlərdə istifadə edilə bilər. MotionTracking texnologiyası, telefonları və planşetləri sağlamlıq və fitness monitorinqindən tutmuş məkan xidmətlərinə qədər tətbiqlərdə istifadə edilə bilən güclü 3D ağıllı cihazlara çevirə bilər.
Tövsiyə:
HMC5883 və hissəcik fotonundan istifadə edərək maqnit sahəsinin ölçülməsi: 4 addım
HMC5883 və Particle Photon istifadə edərək Maqnit Sahəsinin Ölçülməsi: HMC5883, aşağı sahə maqnit algılaması üçün hazırlanmış rəqəmsal bir kompasdır. Bu cihaz +/- 8 Oe geniş bir maqnit sahəsinə və 160 Hz çıxış sürətinə malikdir. HMC5883 sensoru avtomatik degaussing kəmər sürücüləri, ofset ləğvi və
BMA250 və hissəcik fotonundan istifadə edərək sürətləndirmə ölçümü: 4 addım
BMA250 və Partikül Fotonundan istifadə edərək Sürət Ölçmə: BMA250, kiçik, nazik, ultralow güc, ± 16 q-a qədər yüksək qətnamə (13 bit) ölçmə ilə 3 oxlu akselerometrdir. Rəqəmsal çıxış məlumatları 16 bitlik ikili tamamlayıcı olaraq formatlanır və I2C rəqəmsal interfeysi vasitəsilə əldə edilə bilər. Statik ölçür
ADT75 və hissəcik fotonundan istifadə edərək temperaturun ölçülməsi: 4 addım
ADT75 və Partikül Fotonundan istifadə edərək Temperaturun Ölçülməsi: ADT75 son dərəcə dəqiq, rəqəmsal bir temperatur sensoru. Temperaturun izlənməsi və rəqəmsallaşdırılması üçün bir bant boşluğu temperatur sensoru və 12 bitlik analoqdan rəqəmsal çeviricidən ibarətdir. Yüksək həssas sensoru onu mənə yetərincə bacarıqlı edir
AD7416ARZ və hissəcik fotonundan istifadə edərək temperaturun ölçülməsi: 4 addım
AD7416ARZ və Partikül Fotonundan istifadə edərək Temperaturun Ölçülməsi: AD7416ARZ, rəqəmsal çeviricilərə bənzər dörd tək kanallı analoqlu 10 bitlik bir temperatur sensoru və daxil edilmiş bir təyyarə temperatur sensoru. Parçalardakı temperatur sensoru multiplexer kanalları vasitəsilə əldə edilə bilər. Bu yüksək dəqiqlikli temperatur
Alexa, SmartThings, IFTTT, Google Sheets ilə inteqrasiya olunmuş hissəcik fotonundan istifadə edərək IoT pişik yemi: 7 addım (şəkillərlə)
Alexa, SmartThings, IFTTT, Google Sheets ilə inteqrasiya olunmuş hissəcik fotonundan istifadə edərək IoT Pişik Besleyicisi: Avtomatik pişik bəsləyiciyə ehtiyac öz -özünə aydındır. Pişiklər (pişiyimizin adı Bella) ac olanda iyrənc ola bilər və əgər sənin pişiyin mənimki kimidirsə qabı hər dəfə quru yeyəcək. Nəzarət olunan miqdarda yeməyi avtomatik olaraq paylamaq üçün bir yola ehtiyacım var idi