Metehan Emlik | MPU6050 3 Eksen İvme Ölçer ve 3 eksen Jiroskop Sensörü
537
single,single-post,postid-537,single-format-standard,ajax_fade,page_not_loaded,smooth_scroll,

Blog

Posted by Metehan EMLIK in Donanım, Elektronik, Genel, Projeler, Yazılım

MPU6050 3 Eksen İvme Ölçer ve 3 eksen Jiroskop Sensörü

 Accelerometre:

Adsız

Accelerometerlar üzerlerine düşen statik(yerçekimi) veya dinamik (aniden hızlanma veya durma) ivmeyi ölçmektedirler.

Şimdi uzayda olduğunuSensörden aldığımız değer m/s2 veya yer çekimi (g-Force) türünden ifade edilebilir. Uygulamalarda genelde yerçekimi türünden ifade edilmektedir. Eğer uzayda veya herhangi bir çekim alanının kapsamında değilseniz sensör üzerine 1g lik bir yerçekimi kuvveti etki etmektedir. Buda hepinizin bildiği gibi yaklaşık olarak 9.8m/s2 dir ve dünyadaki bulunduğunuz noktaya göre değişiklik göstermektedir. Sensör sürekli olarak yer çekimi etkisi altında kaldığından eğimölçer veya hareket algılayıcı olarak kullanılabilmektedir. Ölçü skalası olarak ± 1g, ± 2g, ± 4g … Gibi değerler ile ifade edilmektedir ve bir, iki ve üç eksende ölçüm yapabilen türevleri vardır. Bizim kullanmış olduğumuz MPU6050 Sensörü 3 eksende ivme ölçebilmektedir.

Adsız

Herhangi bir çekim etkisi yok ve ağırlığınız 0 dır. Önünüzde de aşağıdaki şekildeki gibi bir kutu, kutunun ortasın dada bir küre olduğunu hayal edelim. Herhangi bir çekim etkisi olmadığından küre herhangi bir yüzeye temas etmeden hareketsiz bir şekilde durmaktadır. Kürenin hareketini görebilmek için kutunun +Y yönünde kalan yüzeyini de kesip atalım.

Kutuyu elinizde tutup +X yönünde 1g kuvveti ile hızlandırdığımızda küre kutunun –X yüzeyine eylemsizlikten dolayı 1g lik bir kuvvet uygulayacaktır.

Adsız

Şimdi kutumuzu alıp dünyaya dönelim. Kutuyu yere koyduğumuzda dünyamızın 1g lik yer çekimi kuvvetinden dolayı küre –Z yüzeyine 1g kuvvet uygular.

Adsız

 

Bu sensörün çalışma mantığı bu şekildedir.

Sensörün yer yüzü ile yaptığı açı değiştiğinde sensörün eksenlerine uygulanan kuvvette değişecektir ve bizde yeni değerleri okuyarak yeryüzü ile yaptığımız açıyı trigonometri yardımıyla hesaplarız. Örneğin kutumuzu 45 derece sağa doğru çevirdiğimizi düşünelim. Bu durumda kürenin –X ve –Z yüzeylerine kök içinde ½ lik bir kuvvet uygulanır oda 0,707g ye eşittir.Adsız

 

Kutu modelinden sonra çalışma mantığını koordinat sistemi modelinde inceleyelim.

Burada R vektörü ivmeölçerimiz üzerine düşen kuvvet vektörü olsun. Bu kuvvet yukarda anlattığımız gibi yerçekimi veya sensörün hareketi sonucu yerçekimi kuvveti ile eylemsizlik kuvvetinin bileşkesi olabilir. R vektörünün 3 bileşeni vardır ve R=[Rx,Ry,Rz] olarak ifade edilmektedir. Pisagor teoreminden R vektörünü bu bileşenlerden aşağıdaki gibi hesaplayabiliriz.

R^2=Rx^2+Ry^2+Rz^2

Rx, Ry ve Rz bileşenlerini bildiğimiz taktirde yukarıdaki şekilden görüldüğü gibi trigonometrik fonksiyonlar yardımı ile R vektörünün X ve Y eksenleri ile yaptığı açıları hesaplayıp sensörümüzün yeryüzüne göre konumunu bulabiliriz. R vektörünün bileşenlerinide bize ivme ölçer g kuvveti türünden vermektedir.

 Gyroscope

Gyroscopelar basitçe bir tekerleğin ekseni etrafında hızlıca döndürülmesi sonucu ortaya çıkarlar. Tekerleğin etrafındaki çembere dik açıyla kenetlenmiş başka bir çember ve bu çemberlere dik açıyla tutturulmuş başka bir çember jiroskobu modeller. Jiroskobun öne çıkan iki özelliği vardır. Yatay eksende dönmekte olan bir jiroskopa yatay eksen doğrultusunda bir kuvvet uyguladığımızda yatay eksen etrafında dönmek yerine eksen etrafında dönmeye başlar. Diğer bir özelliği ise jiroskopun dönmeye başladığı eksenin jiroskobun durduğu yüzey ne açıyla oynatılırsa oynatılsın jiroskobun dönüş ekseni sabit kalır. Bu özelliğinden dolayı uyduların sürekli olarak dünyaya dönük kalması, uçaklarda ve çeşitli araçlarda yapay ufuk oluşturulması ve otopilot gibi uygulamalarda kullanılmaktadır.

Gyroscope  bir şeyin bir eksen etrafında ne kadar hızla döndüğünü başka bir deyişle açısal hızını öğrenmek içinde kullanılır. Bu hız dakikadaki dönüş sayısı (RPM) yada saniyedeki dönüş derecesi (°/sn) olarak ifade edilmektedir. Piyasada entegre devre olarak satılan modelleri rahatlıkla bulunmaktadırlar. İvmeölçerlerde olduğu gibi bir, iki veya üç eksende ölçüm yapabilen modelleri vardır ve saniyedeki dönüş hızı ölçümüne göre değerlendirilmektedirler.

Adsız

 

İki eksen (X,Y) gyro kullandığımızı düşünerek devam edelim. Buradaki R vektörünün XZ uzayındaki izdüşümü Rxz, YZ uzayındaki izdüşümü ise Ryz vektörü ile ifade edilmektedir. Bu vektörleri pisagor teoreminden

Rxz^2=Rx^2+Rz^2
Ryz^2 = Ry^2 + Rz^2 olarak hesaplanılabilir.

Vektörlerin Z ekseni ile yapmış olduğu açılar ise Axz ve Ayz dir. Sistemi Y ekseni etrafında döndürdüğümüzde Axy açısı, X ekseni etrafında döndürdüğümüzde ise Ayz açısı değişecektir. Gyroscope un dönüş hızını ölçtüğünü söylemiştik. Dönüş hızını zaman ile çarparsak dönüş açısını elde etmiş oluruz. t0 anındaki açımızın Axz0 olduğunu ve t1 anındaki açımızın ise Axz1 olduğunu düşünelim. O halde dönüş açımız
(Axz1 – Axz0) = RateAxz * (t1 – t0) ile ifade edilir.

Arduino açık kaynak bir programlama yazılımı olduğu için gyroscope ve accelerometre için gerekli kütüphane ve örnek programlar Arduino’nun resmi sitesinde(http://playground.arduino.cc)  bulunmakta. Biz  sensor proğramını geliştirirken de  birinci kaynak olarak bu yazılımları yararlandık.

Örnek Programın Çıktı Görüntüsü(İşlenmemiz Değerler):

MPU-6050

Read accel, temp and gyro, error = 0

accel x,y,z: 184, -484, 14992

temperature: 29.635 degrees Celsius

gyro x,y,z : 367, 220, -812,

MPU-6050

Read accel, temp and gyro, error = 0

accel x,y,z: 116, -364, 15056

temperature: 29.635 degrees Celsius

gyro x,y,z : 373, 226, -766,

MPU-6050

Read accel, temp and gyro, error = 0

accel x,y,z: 232, -432, 15100

temperature: 29.682 degrees Celsius

gyro x,y,z : 382, 232, -790,

MPU-6050

Read accel, temp and gyro, error = 0

accel x,y,z: 280, -468, 15136

temperature: 29.635 degrees Celsius

gyro x,y,z : 368, 211, -820,

IMU (Inertial Measurement Unit)

Gyroscope ve accelerometer tek başlarına yeterince ve güvenilir bilgi vermezler.  Bu yüzden bu iki sensörü birleştirerek yönelim, hız, pozisyon gibi bilgileri tek bir uniteden alınabilir. Bu uniteye IMU (Inertial Measurement Unit) denilmektedir. Serbestlik derecesi DOF (Degrees of Freedom) ile ifade edilmektedirler. Örneğin 2 eksen gyro ve 3 eksen ivmeölçeriniz varsa 5DOF IMU elde etmiş olursunuz. Projemizde 3 eksen gyro ve 3 eksen ivmeölçer kullandığımız için 6DOF IMU var demektir.

Gyro ve accelerometer bias drift adı verilen bir kayma yaparlar ve bundan dolayı hassas açı ölçümünde tek başlarına kullanılamazlar. Ayrıca accelerometerlar kuvvete karşı çok duyarlı olduğundan en ufak titreşimlerde çok yüksek gürültüler oluşturmaktadırlar. Gyroların bu kuvvetlerden etkilenmez. Aşağıdaki şekil-1’da görüldüğü gibi gyrolar ivmeölçer çıkışlarını filitreleyerek daha doğru bir ölçüm yapmamızı sağlarlar.

Adsız

Şekil-1

Filtreleme için çeşitli algoritmalar bulunmaktadır. En yaygın olarak kullanılanlarından bir tanesi kalman filtresidir. Sistemin bir önceki çıkışları ile yeni ölçümlerinden yeni çıkışları tahmin edecek şekilde çalışmaktadır.

Kalman Filtresi

Kalman Filtresi modelin önceki bilgileriyle birlikte giriş ve çıkış bilgilerinden sistemin durumlarını tahmin edilebilen filtredir. Eğer sistemin stokastik veya rasgele gürültülü yönü hesaba katılırsa minimum varyans tahmini veya Kalman Filtresi çok uygun olmaktadır. Kalman Filtresi, geleneksel tahmin edicilerde olduğu gibi filtreleme özelliğine rağmen, sistemin ölçülemeyen durumlarını tahmin etmek için çok güçlü ve yeteneklidir.

Algoritma, gürültülü veriler üzerinde özyinelemeli gerçek zamanlı çalışarak hataları, enaz-kareler eğriye sığdırma yöntemi ile filitre eder ve sistemin fiziksel karakteristiklerinin modellenmesi ile üretilen gelecek durumun matematiksel tahminine göre optimize eder.

Model tahmini, gözlem ile karşılaştırılır. Elde edilen fark, Kalman kazancı {Kalman gain} olarak bilinen bir çarpan ile ölçeklendirilir. Daha sonra sıradaki tahminleri iyileştirmek için modele bir girdi olarak geri besleme uygulanır {feedback}. Kazanç performansı iyileştirmek için ayarlanabilir yapılır. Yüksek bir kazanç ile, filtre gözlemleri daha yakın olarak takip edilir. Düşük bir kazanç ile, filtre model tahminlerini daha yakın olarak takip edilir. Yöntem, gerçek bilinmeyen değerlere, model tahminlerine dayanarak elde edilebilecek tahminlerden daha yakın tahminler üretmeye çalışır.

Her bir zaman adımında, Kalman Filitresi, gerçek bilinmeyen değerlerin tahminlerini belirsizlikleriyle {uncertainty} beraber üretir. Sıradaki ölçümün sonucu gözlendiğinde, bu tahminler, belirsizliği düşük tahminlere daha fazla ağırlık vererek, ağırlıklı ortalama ile güncellenir.

Kalman filtresi sensör füzyonu ve veri füzyonu için kullanılır. Tipik olarak, gerçek zamanlı sistemler bir sistemin durumunu elde etmek için tek bir ölçüm yapmak yerine bir çok ardışık ölçüm üretir. Bu birçok ölçüm daha sonra o zaman anında sistemin durumunu üretmek için matematiksel olarak birleştirilir( İ.Çayıroğlu / Fen ve Teknoloji Bilgi Paylaşımı, 2012)

Kalman Filtresinin Performansı

Bu Filreleme yönteminin performansı profesyonel derece tatmin edicidir. Büyük sarsıntı ve ani açı değişimlerinde bile Kalman Filtresi gerçek degerlere çok yakın sonuçlar vermiştir

Kalman Filtresinin Processing programında performans ve test proğramlarını oluşturduk bu yazılımlar bize yazılım hazırlamada büyük esneklikler sağladı. .

Aşağıdaki iki şekil-2 ve şekil-3 de Kalman Filtresine ve Acelerometre’nin Processing programındaki karşılaştırılması verilmiştir.

Adsız

Şekil-1: Ani Sarsıntı Durumdaki Veri Grafiği

Adsız

Şekil-2: Ani Açı Değişimlerindeki  Veri Grafiği

Kalman Filtresi’nini test ortamını yine Procesing programında oluşturduk. Bu programda sayılsal filtre accelerometre ve gyroscope verilerinin sayısal değerlerinin yanı sıra 3d ortamında görsel efektlerle de gelen verileri test ettik. Sayısal ve görsel test bilgisayar arayüzünün ekran görüntüsü şekil-3 de verilmiştir.

Adsız

Şekil-3

Kaynakça:

1-) MPU-6050 Accelerometer + Gyro, Erişim Tarihi: 20 Ekim 2013, http://playground.arduino.cc/Main/MPU-6050

2-)MPU6050 6DOF Accelerometer/Gyroscope, Erişim Tarihi: 21 Ekim 2013, http://noro24.de/index.php?article_id=42&clang=0

3-)MPU-6000/6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking™ Devices for Smart Phones, Tablets, and Wearable Sensors, Erişim Tarihi: 21 Ekim 2013, http://www.invensense.com/mems/gyro/mpu6050.html

4-)http://www.barissamanci.net/Makale/26/accelerometer-gyroscope-imu-nedir/

5-)http://www.starlino.com/imu_guide.html

  • Polat

    Güzel bilgiler paylaşıyorsunuz gerçekten. Sitenizi takip ediyorum. Sormak istediğim birşey var. Bu sistemlerde ivme ve jiro sensöre ilave olarak magnetik sensörde kullananlar var. Bunu neden kullanıyorlar?

    Cevapla

Post A Comment

Watch Dragon ball super