Merhaba arkadaşlar,
Mobilhanem.com için hazırladığımız Arduino Eğitimlerine ivmeölçer ve jiroskop sensörü olan MPU6050 ile devam ediyoruz. Bu dersimizde MPU6050‘den ve Arduino MPU6050 kullanımından bahsedeceğiz.
İvmeölçer ve Jiroskop Sensörü(MPU6050)
MPU6050 3 eksenli gyro ve 3 eksen açısal ivme ölçer olan IMU sensörüdür. Toplam 6 çıkış veren bu sensör iletişim için I2C protokolünü kullanır. MPU 6050 gibi IMU sensörleri elektronik cihazların çoğunda kullanılır. Hayatımızın bir çok yerinde bu sensör yer almaktadır. Akıllı saatler, Fitbit bantları, Robotlar, Drone ,Gimball ve akıllı telefonlarda kullanılmaktadır.
İvme Ölçer
İvme ölçer Piezoelektrik etkisi ile çalışmaktadır. Piezoelektrik bazı malzemelerin üzerine mekanik olarak bir kuvvet uygulanması sonucunda ortaya çıkan elektriktir. Sensör kuvvet olarak yer çekimini kullanarak değer verir.
İvme Ölçer Kullanım alanları
Akselometre (ivmeölçer) akıllı telefonlarımızda bulunur ve pusula uygulamasının doğru çalışmasını sağlar. Yüksek hassasiyete sahip ivme ölçerler gemi, uçak ,denizaltılarda kullanılır. Teknolojik ciharlarda titreşimi ölçer ve belirli aralıkta kalmasını sağlar ayrıca kameralar da kullanım alanındandır.
Jiroskop
Jiroskop, dönen bir disktir, çark olarak da bilinir. Merkezkaç kuvveti ile çalışır. Bir jiroskop, dönen bir çark, rotor ve eksenden oluşur. Eksen, rotor içinde dönebileceği bir çembere yataklanmış şekildedir. Çember de dik açı ile başka bir çembere bağlanmıştır. İç ve dış çemberle dik açı yapan bir çerçeveye kenetlenmiş şekilde bir de dış çemberi bulunur. Dönüş ekseni her hangi bir yönde olabilir. Jiroskopların dışındaki çerçeve dengeleme çemberi ile desteklenmiştir.
Jiroskop Kullanım alanları
Jiroskop açısal hızı ölçmek veya korumak için kullanılan bir cihazdır. Elektronik cihazlarda bulunan mikroçip paketlenmiş MEMS jiroskopları, katı hal halka lazerleri, fiber optik jiroskoplar ve son derece hassas kuantum jiroskopu gibi diğer çalışma prensiplerine dayalı jiroskoplar da mevcuttur. Jiroskop uygulamaları Hubble Teleskopu gibi veya suyun altındaki bir denizaltının çelik gövdesinin içindeki navigasyon sistemlerini içerir. Hassasiyetlerinden dolayı jiroskoplar, jeotheodolitlerde, tünel madenciliğinde yönünü korumak için de kullanılır. Jiroskopların, manyetik pusulaları gemilerde, uçaklarda ve uzay gemilerinde, genel olarak taşıtlarda stabiliteyi sağlamak için kullanılır.
Arduino MPU6050 Kullanımı
Arduino ile birlikte MPU6050 kullanabilmek için sensör üzerinde bulunan 5 bacağın örnek bağlantıları aşağıdaki şekildeki gibi olmalıdır.
Arduino İvmeölçer ve Jiroskop Sensörü Kodları
Arduino ile birlikte ivmeölçer ve jiroskop sensörünü kullanabilmek için devrenin şemasını gösterildiği gibi kurduktan sonra aşağıdaki kodları kullanarak ölçüm yapabilirsiniz. Gerekli açıklamaları kod satıraları yanında bulabilirsiniz.
#include <MPU6050_tockn.h> #include <Wire.h> MPU6050 mpu6050(Wire); long zaman1 = 0; void setup() { Serial.begin(9600); Wire.begin(); mpu6050.begin(); mpu6050.calcGyroOffsets(true); } void loop() { mpu6050.update(); if(millis() - zaman1 > 1000){ //EĞER ŞU ANKİ ZAMAN-zaman1 1000 DEN BÜYÜKSE Serial.println("======================================================="); Serial.print("temp : ");Serial.println(mpu6050.getTemp()); //SICAKLIK VERİSİ Serial.print("accX : ");Serial.print(mpu6050.getAccX()); //X EKSENİNDE İVME Serial.print("\taccY : ");Serial.print(mpu6050.getAccY()); //Y EKSENİNDE İVME Serial.print("\taccZ : ");Serial.println(mpu6050.getAccZ()); //Z EKSENİNDE İVME Serial.print("gyroX : ");Serial.print(mpu6050.getGyroX()); Serial.print("\tgyroY : ");Serial.print(mpu6050.getGyroY()); Serial.print("\tgyroZ : ");Serial.println(mpu6050.getGyroZ()); Serial.print("accAngleX : ");Serial.print(mpu6050.getAccAngleX()); Serial.print("\taccAngleY : ");Serial.println(mpu6050.getAccAngleY()); Serial.print("gyroAngleX : ");Serial.print(mpu6050.getGyroAngleX()); // JİROSKOP X EKSENİ Serial.print("\tgyroAngleY : ");Serial.print(mpu6050.getGyroAngleY()); // JİROSKOP Y EKSENİ Serial.print("\tgyroAngleZ : ");Serial.println(mpu6050.getGyroAngleZ()); // JİROSKOP Z EKSENİ Serial.print("angleX : ");Serial.print(mpu6050.getAngleX()); Serial.print("\tangleY : ");Serial.print(mpu6050.getAngleY()); Serial.print("\tangleZ : ");Serial.println(mpu6050.getAngleZ()); Serial.println("=======================================================\n"); zaman1 = millis(); } }
MPU6050 sensörünün farklı kütüphaneleri için bu web sitesine bakabilirsiniz : https://playground.arduino.cc/Main/MPU-6050
Neler Öğrendik
Bu dersimizde günlük yaşantımızda kullandığımız birçok cihazda kullanılan MPU6050 sensörünü tanıdık. Daha sonra bu sensörün arduino ile birlikte kullanımını gördük. Öğrendiğimiz bu sensör ile gerekli algoritmalar kurulduktan sonra video çekmek için Gimball yapabilir veya quadcopter tasarımında kullanarak çekilen videoyu titreşimsiz ve düzgün olmasını sağlayabilirsiniz.
Tüm arduino yazılarımızı buradan ulaşabilirsiniz.
66
Harika, teşekkürler
MPU6050 sensörünün algıladığı verileri ben telefona wifi ya da bluetooth üzerinden nasil gosterebilirim