MPU6050 ivme sensörü nedir, ne işe yarar?
MPU6050 ivme sensörleri 3 eksen açısal ivme ve 3 eksen gyro olmak üzere 6 eksende ölçüm yapabilme özelliğiyle drone gibi hava araçlarında ve denge robotlarında sıkça kullanılan sensörlerdir.
İvme ölçer cep telefonu ve tablet gibi mobil cihazların vazgeçilmez sensörlerinden birisidir. İvme ölçer sensörler, telefonun veya tabletin yatay konumda tutulduğunda kameranın yatay durması, dik tutulduğunda ise kameranın dik pozisyona gelmesini sağlar. Ayrıca özellikle yarış oyunlarında (araba veya motor yarışlarında) telefonu hareket ettirerek karakterin yatay eksende hareket ettirilmesini sağlar.
İvme ölçer telefonlardaki oyun, video, fitness ve diğer uygulamalarda kullanılmaktadır. İvme ölçer sensörü telefonun hareketlerini eksen tabanında takip eder.
Akıllı telefonlarda bulunan adım sayar gibi uygulamalarda ivme ölçer sensörü telefonun yere yaklaşıp inişlerini adım olarak hesaplar ve size adım sayınızı verir.
Modül üzerinde X ve Y eksenlerini gösteren işaretler mevcuttur.
MPU6050 ivme sensörünün kullanımına geçmeden önce sensörün I2C ptotokolünü kullanarak haberleşme sağladığını bilmemiz gerekir.
I2C haberleşme protokolü nedir?
Arduino, diğer Arduino veya sensörlerle haberleşmek için bazı haberleşme protokolleri kullanır. Bu protokollerden birisi de I2C’dir. I2C (Inter-Integrated Circuit), seri haberleşme türlerinden senkron haberleşmeye bir örnektir. Mpu6050 I2C protokolünü destekleyen bir karttır. Bu nedenle arduino bağlantısı yapılırken I2C protokolünü destekleyen arduino pinlerine bağlanmalıdır. I2C pinleri arduino modeline göre farklılık gösterebilmektedir. Aşağıdaki tabloda arduino çeşitlerine göre I2C protokolünü destekleyen arduino pinleri gösterilmiştir.
MPU6050 ivme sensörü arduino bağlantısı nasıl yapılır?
MPU6050 ivme sensörü arduino bağlantısı görseldeki gibi yapılmalıdır. I2C protokolüne uygun olarak SCL pini arduino A5 analog pinine, SDA pini arduino A4 analog pinine, VCC pini arduino 5V pinine, GND pini arduino GND pinine, INT pini arduino 2 numaralı dijital pine bağlanmalıdır.
MPU6050 ivme sensörü arduino kodları nasıl yazılır?
Kodlamaya geçmeden önce arduino için MPU6050 kütüphanesini, ayrıca I2C haberleşmesi için I2Cdev.h kütüphanesini arduino kütüphane klasörüne eklemeliyiz.
MPU6050 ivme sensörü arduino kütüphanesini indir…
I2C arduino kütüphanesini indir…
Linklerdeki kütüphane dosyalarını bilgisayarınıza indirdikten sonra rar dosyalarını açtıktan sonra arduino klasöründe bulunan libraries klasörünün içine kopyalayınız.
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 | #include <Wire.h> #include <I2Cdev.h> //I2C kütüphanesini ekledik #include <MPU6050.h> //Mpu6050 kütüphanesi ekledik MPU6050 ivme_sensor; // sensörümüze ivme_sensor adını verdik int16_t ax, ay, az; //ivme tanımlama int16_t gx, gy, gz; //gyro tanımlama void setup() { Wire.begin(); Serial.begin(9600); Serial.println("I2C cihazlar baslatiliyor..."); ivme_sensor.initialize(); Serial.println("Test cihazi baglantilari..."); Serial.println(ivme_sensor.testConnection() ? "MPU6050 baglanti basarili" : "MPU6050 baglanti basarisiz"); } void loop() { ivme_sensor.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // ivme ve gyro değerlerini okuma //açısal ivmeleri ve gyro değerlerini serial ekrana yazdıralım Serial.print(ax); Serial.print("\t"); Serial.print(ay); Serial.print("\t"); Serial.print(az); Serial.print("\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy); Serial.print("\t"); Serial.print(gz); Serial.println("\t"); delay(500); //değerlerin değişimini daha net görmek için yarım saniye beklesin } |
Yukarıdaki arduino kodları ile MPU6050 ivme sensöründen okunan 3 açısal ivme ve 3 gyro olmak üzere 6 eksendeki değeri serial ekrana yazdırdık.
Bu değerleri kullanarak bir çok proje tasarlayabilirsiniz.
Bir sonraki Arduino ve mpu6050 ivme sensörü kullanarak servo motor kontrolü nasıl yapılır? başlıklı yazımızı kaçırmayın.
merhaba ben mpu6050 kütüphanesini defalarca yüklememe rağmen hata veriyor nedeni nedir acaba