Merhaba arkadaşlar bu derste daha önce tanımladığımız akselerometre ve jiroskoptan gelen verileri birlikte yorumlayarak doğru değerler elde etmeye çalışacağız.
Öncelikle neden buna ihtiyaç duyuyoruz bunu anlayalım. Daha önceki derslerimizde bahsettiğimiz gibi akselerometre gürültüye çok duyarlı bir sensördür. İkinci dersimizde de jiroskoptan aldığımız verilerin limit sonsuzda sonsuza kaydığını yani zamanla artarak kayma yaptığını söylemiştik. Bu nedenle her iki sensörde de ham değer olarak aldığımız bilgiler doğru değildir.
Bu problemlerin neden olduğunu anlamamız için bu sensörlerin iç yapısını anlamamız lazım. Daha önceki derslerde kolaylık olsun diye kutu ve top örneği verildi ama bu modelleme bu problemlerin açıklanmasında yetersiz kalır. Aslında her ikisinin içinde de plakalar ve küçük çubuklar vardır. Bu yüklü plakaların hareket etmesiyle aralarındaki kapasite değişir. Bu değişimi ölçerek iki sensörün de ham değerlerini bulabiliriz. Bu ölçümde oluşan gerçeği yansıtmayan hatalar bu plakalardan kaynaklanır.
Akselerometrenin İç Yapısı
Resimde görüldüğü gibi dışsal hareketler mavi plakaları ileri geri ittirir. Bu plakalardan oluşan kapasite değişimini yorumlayarak ivme değerini alırız. Buradaki problem bu mekaniğin gürültülerden çok etkilenmesidir. Ayrıca bir önceki titreşimin diğer titreşimi etkilemesidir.
Jiroskop bir önceki dersimizde anlatıldığı gibi coriolis etkisi ile çalışır. Coriolis etkisi rüzgar ve su akıntılarının saat yönünde ve tersinde dönmesine sebep olan etkidir. Üstteki yapıyı dünya olarak düşünelim. Yeşil plakaların esnek, mavi ve beyaz plakaların sabit, kırmızı ve sarı plakaların oynar olduğunu var sayalım. Açısal değişim esnasında coriolis etkisinden dolayı kapasite değişimi olur. Bu değişim periyodik olarak gerçekleşirse, Çin’deki askerler geçerken rezonanstan yıkılan köprü gibi sensörde büyük değerler görülmeye başlanır. Yani okunan değer git gide sonsuza kayar.
Özet olarak jiroskopta okunan değer anlık olarak doğrudur, akselerometrede okunan değer uzun süreli doğrudur ama hiçbiri tek başına doğru değer vermez.
MPU6050 Uygulama
Kod
İlgili linkte MPU6050’nin arduino ve processing kodları vardır. Arduino kodu serial porttan processing’in anlayacağı şekilde değer gönderir. Resim üstte anlatılan durumu çok iyi açıklar.
Şekilde görüldüğü gibi jiroskoptan alınan değer zamanla kayma yapar, akselerometreden alınan değer ani gürültülerden etkilendiği için ani sıçramalar yapar. Bu iki değeri birleştirerek en sağdaki yeşil değeri elde ederiz.