2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
MPU6050 çox faydalı bir sensordur.
MPU 6050, bir IMU'dur: Bir ətalət ölçmə vahidi (IMU), bədənin xüsusi gücünü, açısal dərəcəsini və bəzən bədənin istiqamətini ölçən və bildirən elektron cihazdır, akselerometrlərin, giroskopların birləşməsini istifadə edir.
6 oxlu bir cihazdır
Eksenin 3 -ü sürətlənməni ölçə bilər, digər 3 -ü isə açısal sürətlənmə ölçmələri üçündür.
Sürətləndirmə və açısal sürətlənmədən istifadə edərək bucağın kifayət qədər dəqiq bir qiymətləndirməsini əldə etmək mümkündür
Bu dərslikdə işimizi çox asanlaşdırmaq üçün kitabxana ilə MPU6050 -dən necə istifadə edə biləcəyimizi araşdıracağıq.
Təchizat
- Arduino lövhəsi
- MPU6050
- Jumper telləri
- Çörək lövhəsi
Addım 1: Dövrəni tamamlayın
Sensor, dəyərləri göndərmək üçün Arduino ilə əlaqə qurmaq üçün I2c olaraq bilinən bir protokoldan istifadə edir.
A4 pin SCL-serial saatı üçün istifadə olunur və sensorun SCL-ə qoşulmalıdır, SDA-Serial məlumat xəttinə A5.
Vcc 5v -ə, Gnd isə yerə bağlıdır
Addım 2: Kodlaşdırma
#daxil edin #daxil edin
Başlamazdan əvvəl bu kitabxana mənim tərəfimdən yazılmır, sadəcə oradakı ən sadə kitabxanadır və istifadə etməyi sevirəm.
Bunlar başlıq fayllarıdır ^^, tel.h bir i2c əlaqəsi qurmaq üçün istifadə olunur
MPU6050 mpu6050 (Tel);
burada giroskopumuza ad veririk və ya OOP ilə yaxın olanlar üçün bir obyekt yaradırıq.
boş quraşdırma () {
Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (doğru); }
Başlanğıcda hesablamaları hesablayırıq, çünki bütün bucaq oxunuşları ilkin istiqamətə uyğun olacaq.
boşluq döngəsi () {
mpu6050. yeniləmə (); Serial.print ("angleX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); }
Hər biri bizə bucağın ölçüsünü verir.
Addım 3: Digər funksiyalar
Kitabxana digər funksiyaları da özündə birləşdirir
kimi:
mpu6050.getTemp () // temperatur verir (çox dəqiq deyil)
mpu6050.getAccX () // X istiqamətində xətti sürətlənmə
(oxşar funksiyalar mpu6050.getAccY (), mpu6050.getAccZ ())
mpu6050.getGyroX () // x oxu ətrafında açısal sürətlənmə
(oxşar funksiyalar mpu6050.getGyroY (), mpu6050.getGyroZ ())