Sparkfun 9DOF Razor IMU üzerinde magnetometre ivmeölçer ve gyroscope bulunan bir sensör yumağı, kartta sensörlere ilaveten sensör verilerini işleyerek seri port (UART) üzerinden veri gönderen bir ATmega328p mikrodenetleyici var. Ancak kartın üzerinde gelen programın seri port çıktısı sensörlerden alınan raw (işlenmemiş) verilerden ibaret. Malum bu veri işleme kısmından kurtulmak için IMU alıyoruz böyle bir çıktı vermesi biraz saçma, bütün hesaplamaları yine ben yapacaksam eğer IMU almanın manası nedir ki? İnternnette biraz araştırma sonrasında, http://webbot.org.uk/iPoint/49.page linkinde yer alan yazılımı buldum, bu sitede yer alan hex dosyasını kartınızın ürün koduna göre alıp AVR programlayıcı ile karta aktarıyorsunuz. Sonrasında seri port aracılığıyla üç eksen gyro verisi ve 3 eksen magnetometre verisini alabiliyorsunuz.
Fakat!!!
Programın yazarı kişi çok harika bir kod yazmış olsada baudrate 115200 olarak ayarlamış (mecburen hızlı olmalı çünkü hesaplamalar biraz uzun sürebiliyor) baudrate 115200 olması sebebiyle seri port sinyalinin oluşturulmasında %-3.5 hata oluşuyor. Bunu ona mail aracılığıyla sorduğumda %-3.5 hata kimseyi öldürmez nevinden cevap aldım
Fakat beni öldürür. Yazılım değişikliği öncesinde imu çıktısı aşağıdaki gibidir.
aÁNÇ:3.67,2.25,-3.32,ÍÁÇ:,269.00,70.00,-259.00
fakat olması gereken çıktı: !ANG:3.67,2.25,-3.32,MAG:,269.00,70.00,-259.00
Peki ne yapmalı?
Aynı sitede yazılımın açık kaynak kodu var ve GPL lisanslı. Hemen kodu indirip bir güzel işime yaramayacak magnetometre verisi hesaplamalarını kaldırdım, sonrasında baudrate hatasını %2.1′e düşürmek amacıyla 57600 olarak ayarladım. Baudrate yeterince hızlı saniyede 50 adet 3 eksen gyroscope bilgisi yolluyor ve çok iyi çalışıyor.
Düzeltme sonrasında çıktılar is şöyle:
!ANG:3.55,1.83,2.20
!ANG:3.56,1.84,2.21
!ANG:3.57,1.86,2.21
!ANG:3.55,1.85,2.22
gayet tatmin edici.
Düzeltilmiş versiyonun kaynak kodu ve derlenmiş hex dosyasını indirmek için tıklayın. Dikkat!!! Razor SEN:10125 içindir!!!
Sparkfun 9DOF Razor IMU önerir miyim?
Fiyatı 125$ + kargo!!! Siz bilirsiniz, paranız çoksa neden olmasın ama daha ucuza daha iyisi bulunabilir araştırmak lazım.