Bu projede, MPU6050 Sensörünün nasıl çalıştığını ve Arduino’yu MPU6050 ile nasıl çağıracağımızı göreceğiz. MPU-6050 ivme sensörünü Arduino UNO ile ara birim yapacağız ve İvme Ölçüm Cihazı ve Jiroskop’tan değerleri okuyacağız.
Projeye başlamadan önce, MPU6050 Sensörünün birkaç temelini anlamamız gerekir. MPU-6050, tek bir yongada bir MEMS (Mikroelektromekanik Sistem) Hızlanma Ölçer ve MEMS Jiroskopu içeren bir IMU Sensördür.
Burada, IMU, Atalet Ölçüm Birimi (Inertial Measurement Unit) anlamına gelen IMU Sensörü, İvmeölçer’i kullanarak belirli kuvveti ölçen, jiroskop kullanılarak açısal hızı ve Manyetometreleri kullanarak manyetik alanı ölçen bir cihazdır.
IMU Sensörleri, kendi kendine dengelenen robotlar, uçaklar, cep telefonları, tabletler, uzay araçları, uydular, uçaklar, UAV’ler (insansız hava aracı) vb. Gibi rehberlik, konum tespiti, yön bulma, hareket izleme ve uçuş kontrolü için kullanılır.
MPU-6050, 3 eksenli bir Accelerometer ve 3 eksenli bir Jiroskopu tek bir yonga üzerinde birleştiren altı eksenli bir hareket izleme cihazıdır.
MPU6050 Sensörüne Giriş
- Üç eksenli İvme Ölçer
- Üç eksenli Jiroskop
- Dijital Çıkış Sıcaklık Sensörü
- Altı adet 16 bit ADC
- Tümleşik Dijital Hareket İşlemci (DMP)
- 1024B FIFO Arabelleği
- Arduino UNO
- MPU6050 ivme sensörü
- Kablo bağlantısı
Gördüğünüz gibi, MPU6050 ivme sensöründen ham değerleri okumak kolaydır, ancak bu veriler ve Yaw, Pitch ve Roll’u elde etmek için bu veriler üzerinde ilave hesaplamalar yapmak zorundayız.
Daha önce de belirttiğim gibi, MPU6050 sensöründe, ivmeölçer ve cayro ile aynı çipte yer alan DMP veya Dijital Hareket İşlemcisi adlı özel bir işlemci var. Bu DMP’nin kullanımı, sensörlerden gelen veriler üzerinde karmaşık hesaplamalar yapmak için bir yazılım ile programlanabilmesidir.
Kodu Arduino’ya Yükleme ve MPU6050’yi Test Etme
Kodu yüklemeden önce, Arduino için iki kütüphane indirmeliyiz. Bunlar I2Cdev ve MPU6050. İndirme bağlantıları ve resmi GitHub bağlantıları aşağıda verilmiştir.
I2Cdev: GitHub ziyaret LINK
MPU6050: GitHub ziyaret LINK
MPU6050 Kütüphanesini indirin ve indirilen dosyayı çıkarın. “MPU6050” isimli bir klasör göreceksiniz. Bu klasörü kopyalayıp Arduino’nun libraries klasörüne yapıştırın.
Benim bilgisayarda”C: Program Files (x86) Arduino libraries” da bulunmaktadır. I2Cdev kütüphanesi için aynı şeyi yapın.
Her şey yolunda gittiyse, Arduino IDE’yi açın ve aşağıdaki yola ulaşın: Dosya -> Örnekler -> MPU6050 -> Örnekler -> MPU6050_DMP6 ve MPU6050_DMP6 örnek kodunu açın.
Bu kodu Arduino’ya yükleyin (bağlantıları devre şemasına göre önceden yaptıysanız) ve kod yüklendikten sonra seri terminalini açın.
Seri terminaldeki baud hızını 115200 olarak ayarlayın ve ardından aşağıdaki metni alacaksınız.
“Initializing DMP…
Initializing I2C devices…
Testing device connections…
MPU6050 connection successful
Send any character to begin DMP programming and demo:”
Herhangi bir veri almadıysanız Arduino’yu sıfırlayın. Son cümleye bakarsanız, “Send any character to begin DMP programming and demo:” der. Bu sebeple seri monitörde 1 veya a gibi bir karakter yazın ve gönderin. Girişe girildiği anda, seri monitörde Yaw, Pitch ve Roll (ypr) değerlerini görmeye başlayabilirsiniz.
NOT: Bu süre zarfında, MPU6050’yi dengeli ve yatay bir yüzeyde tutun. Ayrıca, MPU6050’den gelen değerlerin dengelenmesi için 10 saniye bekleyin.
Yazı güzel ve açıklayici olmus. Yalniz benim bi sorum var. MPU6050 nin ölçüm frekansi kac. Yani saniyede kac ölçüm yapiyor. Ve bu ölçüm frekansini biz ayarlayabiliyor muyuz.
Verilerde 8 kHz olarak söylenmekte ancak gerçekte 1 kHz frekans vermektedir.
Hocam bağlantılar doğru.
“MPU6050 connection failed”
Bu mesajı almam, sensörün arızalı olduğu anlamına mı geliyor?
Hocam buldunuz mu cevabı?