Arduino İvmeölçer ve Jiroskop Sensörü (MPU6050) Kullanımı

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

Ömer Gürbüz

2 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?