MPU6050 ivmeölçer ve jiroskop
I2C ile konuşan üç eksenli ivmeölçer ve jiroskop. Eğim ve dönüş hızını ölçer.
Nasıl çalışır?
MPU6050, içinde üç eksenli bir ivmeölçer ve üç eksenli bir jiroskop taşıyan I2C çipidir. İvmeölçer yer çekimini ve hızlanmayı g cinsinden, jiroskop dönüş hızını °/s cinsinden ölçer. Çip açılışta uykudadır; 0x6B yazmacına 0 yazılınca uyanır. Ölçümler 0x3B'den başlayan 14 bayttadır: ivme X, Y, Z, sıcaklık, jiroskop X, Y, Z (her biri 2 bayt, önce yüksek bayt, 16 bit işaretli).
Varsayılan aralıklarda ham değer ivme için 16384'e (g), jiroskop için 131'e (°/s) bölünür. Durağan çip yer çekimini ölçtüğü için eğim açısı atan2(ax, az) ile bulunur. İvmeölçer kaymaz ama titreşime duyarlıdır; jiroskop hızlıdır ama sapma biriktirir. İkisi tamamlayıcı filtreyle birleştirilir.
İleri düzey: Sıcaklık ham / 340 + 36,53 derecedir. Gerçek jiroskop durağanken birkaç °/s sapma gösterir; veri sayfası başlangıç sapması için ±20 °/s'ye kadar tolerans verir. Laboratuvar çipi ideal olduğundan sapması yoktur ve sıcaklığı 25 °C'de sabittir.
Laboratuvarda nasıl bağlanır?
| Nereden | Nereye |
|---|---|
| MPU6050 VCC | Uno 5V |
| MPU6050 GND | Uno GND |
| MPU6050 SDA | Uno A4 |
| MPU6050 SCL | Uno A5 |
Özellik panelinde İvme X, Y, Z (g), Jiroskop X, Y, Z (°/s) ve I2C adresi (AD0) vardır. Değerler program çalışırken de değiştirilebilir. Adresi 0x69 seçersen koddaki MPU sabitini de 0x69 yapmalısın.
Sık yapılan hatalar
- 0x6B yazmacına 0 yazmayı unutmak. Çip uykuda kalır.
- ax / 16384 yazmak. Tam sayı bölmesi 0 verir; 16384.0 yaz.
- Baytları işaretsiz birleştirmek. Negatif değer 65000 gibi görünür; int16_t kullan.
- RTC (DS3231) ile aynı hatta kullanmak. İkisi de 0x68 adresindedir.
- Hareketli çipin açısına güvenmek. İvmeölçer yer çekimi ile çipin hızlanmasını ayıramaz.