Arduino dünyası için pek çok ivmeölçer modülü yapıldı, ancak hiçbiri MPU6050 kadar yetenekli değildi. MPU6050, 3 eksenli ivmeölçer ve 3 eksenli gyro (jiroskop)’u bir DMP (Digital Motion Processor-Sayısal Hareket İşlemcisi) ile bir araya getiriyor ve hareket konusunda ihtiyacımız olan her veriyi hassas bir şekilde üretebiliyor.
MPU6050 I2C veri iletişim arayüzünü destekliyor ve bu sayede Arduino’ya kolaylıkla bağlanabiliyor. Çip aslında 3,3 Volt ile çalışıyor ancak modül üzerinde bulunan gerilim regülatörü sayesinde Arduino’da 5 Volt ile kullanılabiliyor.
Lafı uzatmadan devre kurulumuna geçelim;
Bu modülü herhangi bir kütüphane kullanmadan çalıştırmak mümkün. Ancak Arduino kütüphaneleri her zaman olduğu gibi bu sefer de işimizi kolaylaştırıyor. Bunun için Jeff Rowberg‘in hazırladığı iki kütüphaneden yararlanacağız.
Kullandığımız ilk kütüphane Rowberg’in diğer kütüphanelerini kullanmak için gereken ana kütüphane olan I2Cdev. Diğeri ise modülümüzün adını taşıyan MPU6050. Bu iki kütüphaneyi Rowberg’in GitHub sayfasındaki paketin içinde bulabiliyoruz. Ancak size kolaylık olsun diye kütüphaneleri sitemize yükledik, buradan indirebilirsiniz: I2Cdev | MPU6050
Aşağıdaki sketch MPU6050 modülüne bağlanıyor ve modülden gelen ham verileri Seri Port Ekranı’nda görüntülüyor.
Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!
Sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilir veya buraya tıklayarak ZIP dosyası olarak indirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/* MPU6050 Arduino ile Nasıl Kullanılır? MPU6050 ivmeölçer ve gyro modülünün detaylı açıklaması ve örnek projelerini web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ #include "I2Cdev.h" // Jeff Rowberg'in I2Cdev kütüphanesini ekliyoruz #include "MPU6050.h" // Jeff Rowberg'in MPU6050 kütüphanesini ekliyoruz MPU6050 sensor; // Kütüphaneyi sensor adıyla tanımlıyoruz int ivme_x, ivme_y, ivme_z, gyro_x, gyro_y, gyro_z; // Kullanacağımız değişkenler void setup() { Serial.begin(9600); // Seri Port Ekranı'nı başlatıyoruz sensor.initialize(); // Sensör kütüphanesini devreye alıyoruz Serial.print("Test: "); // Öncelikle bağlantıyı bir test edelim Serial.println(sensor.testConnection() ? "BAŞARILI" : "BAŞARISIZ!"); } void loop() { sensor.getMotion6(&ivme_x, &ivme_y, &ivme_z, &gyro_x, &gyro_y, &gyro_z); // Değerler okunuyor Serial.print("İvme X: "); Serial.print(ivme_x); Serial.print("\t"); // İvmeölçerin X ekseni Serial.print("İvme Y: "); Serial.print(ivme_y); Serial.print("\t"); // İvmeölçerin Y ekseni Serial.print("İvme Z: "); Serial.print(ivme_z); Serial.print("\t"); // İvmeölçerin Z ekseni Serial.print("Gyro X: "); Serial.print(gyro_x); Serial.print("\t"); // Gyro'nun X ekseni Serial.print("Gyro Y: "); Serial.print(gyro_y); Serial.print("\t"); // Gyro'nun Y ekseni Serial.print("Gyro Z: "); Serial.println(gyro_z); // Gyro'nun Z ekseni delay(200); // Biraz bekleyelim } |