STM32 i filtracja Kalmana


 


Oferta produkcyjna czujników wykonanych w technologii MEMS, produkowanych przez STMicroelectronics, ulega konsekwentnie szybkiemu poszerzaniu: obok rosnącej liczby typów klasycznych, wieloosiowych akcelerometrów i żyroskopów, zintegrowanych czujników geomagnetycznych (elektronicznych kompasów), trafiły do niej także: MEMS-owe mikrofony do aplikacji audio oraz czujnik ciśnienia.


Inżynierowie firmy STMicroelectronics wraz z poszerzeniem oferty czujników przyspieszenia opracowali biblioteki programowe, realizujące funkcję filtru Kalmana, ułatwiające stosowanie MEMS-ów w praktycznych aplikacjach. Dzięki temu oferowane przez ST żyroskopy i czujniki przyspieszenia można dość łatwo wykorzystać w aplikacjach sterujących realnymi, złożonymi obiektami dynamicznymi (jak na przykład quadrocoptery), co bez zastosowania tak zaawansowanej filtracji praktycznie nie gwarantowało sukcesu.


Dostępna bezpłatnie biblioteka iNEMO Engine Lite umożliwia obsłużenie zarówno wieloosiowych czujników przyspieszenia jak i czujników geomagnetycznych, minimalizując wpływy zakłóceń odczytów wynikających z jakości otoczenia na uzyskane wyniki. Wersja Lite bibliotek jest udostępniana przez producenta w wersji źródłowej dla mikrokontrolerów STM32. Jest ona użyta m.in. w zestawie ewaluacyjnym iNEMO (STEVAL-MKI062V2). W wyniku obliczeń wykonywanych przez bibliotekę iNEMO Engine Lite programista uzyskuje „czyste” (po programowej filtracji Kalmana) informacje o wartości kwaternionów (obiekty matematyczne, które służą do reprezentowania rotacji i orientacji w przestrzeni 3D), wykrywane są rotacje i obliczane ich prędkości, obliczane jest także przyspieszenie liniowe z jakim porusza się czujnik. W wersji Lite biblioteka obsługuje czujniki z częstotliwością do 100 Hz, a jej implementacja w mikrokontrolerze STM32 wymaga 7 kB pamięci Flash i 5 kB pamięci SRAM.

Do pobrania

O autorze