ROBOTKODLA
ROBOTKODLA Genç Mucit

Eğlen, Kodla, Geleceği Tasarla

Model: MPU-6050 Sensör Modülü (Breakout) Orta Seviye Üretici: TDK InvenSense

MPU-6050 6 Eksen İvmeölçer ve Jiroskop Modülü

Dronlar, iki tekerlekli denge robotları ve uzaktan kumandalar için 6 eksenli hareket ve açı takip modülü.

Önemli Güvenlik ve Teknik Sınırlama Bilgisi

Jiroskop zamanla sıfır noktası kayması (drift) üretir. Doğru eğim açısı için ivmeölçer ile jiroskop verisi Tamamlayıcı Filtre (Complementary Filter) veya Kalman Filtresi ile birleştirilmelidir.

Teknik Özellikler ve Elektriksel Parametreler

Çalışma Voltajı 3.30V - 5.00V Lojik Seviye Giriş/Çıkış
Akım Tüketimi 3.8 mA (tam çalışma), 5 µA (uyku) Tipik çalışma modu
Haberleşme Arayüzü I2C (0x68 veya 0x69) Protokol türü
Ölçüm Aralığı İvme: ±2g, ±4g, ±8g, ±16g | Jiroskop: ±250, ±500, ±1000, ±2000 °/s Etkili çalışma sınırı
Hassasiyet / Doğruluk16-bit dahili ADC, Dahili Donanımsal Hareket İşlemcisi (DMP)Ölçüm sapma payı
Tepki Süresi1 kHz ivmeölçer, 8 kHz jiroskop çıktı hızıÖrnekleme hızı
Ölçüm Türü3 Eksen İvmeölçer + 3 Eksen Açısal Hız (Jiroskop)Fiziksel büyüklük
Pin Sayısı8 PinModül header pinleri

Pin Bağlantıları ve Görevleri (Pinout)

Pin #Pin AdıSinyal TürüGörev & Açıklama
1 VCC Güç +3.3V veya +5V Girişi (Dahili LDO vardır)
2 GND Toprak GND 0V
3 SCL I2C Saat I2C Saat Hattı (Arduino A5 / ESP32 GPIO 22)
4 SDA I2C Veri I2C Veri Hattı (Arduino A4 / ESP32 GPIO 21)
5 XDA Yardımcı I2C Harici pusula vb. sensörler için yardımcı I2C veri
6 XCL Yardımcı I2C Yardımcı I2C saat
7 AD0 Adres Seçimi GND: 0x68, VCC: 0x69 I2C adresi
8 INT Kesme Çıkışı Hareket algılandığında tetiklenen kesme pini

Geliştirme Kartı Uyumluluk Durumu

Arduino Uno / Nano ✓ Uyumlu
5V Lojik

Doğrudan bağlantı ve yerleşik 5V desteği.

ESP32 (NodeMCU) ✓ Uyumlu
3.3V Lojik

3.3V ile tam uyumlu çalışır.

Raspberry Pi Pico ✓ Uyumlu
3.3V Lojik

MicroPython veya C/C++ SDK ile desteklenir.

BBC Micro:bit ✓ Uyumlu
3.3V Lojik

MakeCode blokları veya MicroPython ile uyumlu.

STM32 (BluePill) ✓ Uyumlu
3.3V (5V Tolerant)

5V tolerant GPIO pinleri doğrudan bağlanabilir.

Örnek Kaynak Kod Kütüphanesi

Arduino Uno Arduino C++ ✓ Test Edildi

Adafruit MPU6050 Kütüphanesi ile Açı ve İvme Okuma

Gerekli Kütüphaneler: Adafruit MPU6050, Adafruit BusIO, Adafruit Unified Sensor
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>

Adafruit_MPU6050 mpu;

void setup() {
  Serial.begin(115200);
  if (!mpu.begin()) {
    Serial.println("MPU6050 çipi bulunamadı! Bağlantıları kontrol edin.");
    while (1) yield();
  }
  mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
  mpu.setGyroRange(MPU6050_RANGE_500_DEG);
  Serial.println("MPU6050 Hazır!");
}

void loop() {
  sensors_event_t a, g, temp;
  mpu.getEvent(&a, &g, &temp);

  Serial.print("İvme X: "); Serial.print(a.acceleration.x);
  Serial.print(" Y: "); Serial.print(a.acceleration.y);
  Serial.print(" Z: "); Serial.print(a.acceleration.z);
  Serial.print(" m/s^2 | Jiroskop X: "); Serial.println(g.gyro.x);
  delay(100);
}
Seri Monitör Çıktısı (Simülasyon):
İvme X: 0.12 Y: 0.05 Z: 9.81 m/s^2 | Jiroskop X: 0.01

Çalışma Mantığı ve Fiziksel İlkeler

MPU-6050 (GY-521 kartı üzerinde), 3 eksenli mikro elektro-mekanik (MEMS) ivmeölçer ve 3 eksenli jiroskopu tek bir silikon çipte birleştiren dünyanın ilk 6 eksenli hareket sensörüdür. Dahili DMP (Digital Motion Processor) donanımı sayesinde karmaşık 6 eksen füzyon algoritmalarını harici mikrodenetleyiciye yük getirmeden doğrudan çip içinde hesaplayabilir.

Artıları ve Sınırlamaları

Güçlü Yönleri (Avantajlar)
  • 6 ekseni tek bir I2C veri yolu üzerinden okur.
  • Dahili sıcaklık sensörü ve DMP motoru.
  • Denge robotları ve uçuş kontrol kartlarının ana çekirdeğidir.
  • Sınırlamaları (Dezavantajlar)
  • Jiroskop integrali zamanla drift (açı kayması) yapar.
  • İvmeölçer titreşimlere karşı hassastır.
  • Sık Karşılaşılan Sorunlar ve Çözümleri

  • I2C Hatası (0x68 bulunamadı): AD0 pini boşta veya GND'deyken adres 0x68, 3.3V'a bağlandığında 0x69 olur.