3-osiowy żyroskop MEMS pomiado systemów kontroli ruchu obiektów
| TechnikaAkcelerometry MEMS są używane do wykrywania pochylenia, przemieszczenia, wibracji obiektów poprzez pomiar efektu oddziaływania siły grawitacji w różnych osiach. W przypadku akcelerometru 3-osiowego, trzy odseparowane wyjścia mierzą przyśpieszenia w osiach X, Y i Z i na podstawie tych danych można wyznaczyć większość parametrów związanych z ruchem liniowym dla każdej z osi układu współrzędnych.
W przypadku, gdy konieczne jest wykrywanie i dokonywanie pomiarów ruchu obrotowego obiektu, wykorzystuje się żyroskopy. 3-osiowe żyroskopy pojawiają się dzisiaj w wielu urządzeniach elektronicznych, nie tylko w elektronice konsumenckiej. Są wykorzystywane do pomiarów kąta obrotu, prędkości obrotowej i są coraz częściej łączone w jednym urządzeniu z akcelerometrami.
Żyroskop
Jednym z najpopularniejszych żyroskopów MEMS na rynku jest 3-osiowy układ L3G4200D firmy ST Microelectronics. Sensor ten pracuje w trzech zakresach pomiarowych i ma programowo ustawiane parametry, takie jak szybkość odczytu, pasmo i filtry dolno- i górnoprzepustowe. Duża stabilność względem czasu i temperatury, wysoka odporność na wstrząsy i wbudowany czujnik temperatury dowodzą jego dużej funkcjonalności aplikacyjnej.
Sensor dostarcza danych wyjściowych w rozdzielczości 16 bitów i ma interfejsy SPI oraz I2C. Na rynku elektroniki dostępnych jest wiele innych rozwiązań układowych żyroskopów 3-osiowych typu MEMS. Niemniej porównanie kart katalogowych najpopularniejszych układów wyraźnie pokazuje, że układy ST Microelectronics mają lepsze parametry w zakresie czułości i stabilności w funkcji temperatury oraz odporności na narażenia mechaniczne.
Wynikają one z opatentowanej konstrukcji mechanicznej sensora w kształcie grzyba. Struktura układu zamocowana jest w przypadku układów ST w jednym centralnym punkcie do podłoża zamiast w kilku punktach, jak u konkurencji. Dzięki temu, jak pokazano na rysunku 1, siły wynikające ze zmian temperatury, naprężeń mechanicznych i sił przenoszą się na układ MEMS w znacznie mniejszym stopniu.
Jest to istotna różnica, widoczna w wielu aplikacjach związanych z żyroskopami, które opierają się na analizie ruchu, wykrywaniu gestów. Zamontowany na płytce drukowanej żyroskop poddawany jest wówczas działaniu sił i zmiennych temperatur, co powinno być uwzględniane w projektach. Żyroskopy ST bazują ponadto na jednej masie pomiarowej dla wszystkich trzech osi.
To także odróżnia je od innych rozwiązań dostępnych na rynku, bazujących często na 3 oddzielnych układach pomiarowych lub rozwiązaniach kombinowanych opartych na jednej masie i drugiej strukturze dwuosiowej. Takie rozwiązania złożone charakteryzują się większymi rezonansami i gorszą symetrią sygnałów wyjściowych.
Tymczasem dobra symetria żyroskopu skutkuje tym, że sygnały wyjściowe nie zmieniają się na skutek przyspieszenia liniowego, a w szczególności na skutek wibracji i udarów, co prowadzi do większej dokładności pomiarów ruchu obrotowego.
Parametry charakteryzujące jakość żyroskopu
Żyroskop dostarcza trzech sygnałów wyjściowych na temat ruchu obrotowego dla każdej z osi: X (roll), Y (pitch) i Z (yaw). Podczas porównywania poszczególnych elementów warto patrzeć na takie parametry jak poniżej.
Podane wartości dotyczą układu L3G4200D:
- Full scale range (dps) - parametr ten definiuje zakres pomiarowy w stopniach na sekundę. Gdy prędkość kątowa będzie większa niż zakres, sygnał wyjściowy ulegnie nasyceniu, niemniej nie ma to negatywnego wypływu na działanie żyroskopu.
- Zero-rate level (LSB) - określa wartość sygnału wyjściowego dla układu nieruchomego. W skalibrowanym fabrycznie elemencie typowo wynosi 0 LSB, a przy zmianach temperatury w pełnym zakresie waha się ok. ±3 LSB, czyli wynosi ok. 0,0125 dps/°C dla zakresu 250.
- Czułość (mdps/LSB) - wiąże wartość sygnału wyjściowego z żyroskopu w LSB z prędkością kątową w stopniach na sekundę. Dodatkowo istotna jest zmiana czułości pod wpływem temperatury (%/°C) dla całego zakresu temperatur pracy.
- Nieliniowość - (% FS) - parametr ten definiuje maksymalną wartość błędu pomiędzy idealnie prostą charakterystyką a rzeczywistym sygnałem wyjściowym od zera do maksymalnej wartości określanej przez zakres pomiarowy (FS). Dla układu produkowanego przez ST nieliniowość dla zakresów 250 i 500 dps jest poniżej 0,2%, przez co w wielu przypadkach może zostać zaniedbana.
- Pasmo przenoszenia (Hz) - określa zakres częstotliwości sygnału wyjściowego z żyroskopu. Ustalenie pasma (poprzez zapis w rejestrze) pozwala na dopasowanie charakterystyki pomiarowej do warunków i np. eliminację szumów.
- Gęstość szumów (dps/√Hz) - wiąże pasmo z szumami, pozwalając na ocenę, jak zmiana pasma będzie skutkować zmianą poziomu szumów w sygnale wyjściowym. Jest to też miara wielkości przypadkowych zmian w sygnale wyjściowym z żyroskopu w jednostce czasu. Dla omawianego układu wynosi ona około 0,029 dps√Hz.
Żyroskop i mikrokontroler
Podstawowy układ aplikacyjny dla układu L3G4200D pokazany został na rysunku 2. Sygnały wyjściowe w postaci słów 16-bitowych są wysyłane za pośrednictwem interfejsu szeregowego SPI lub I2C. Układ pracuje w trzech zakresach pomiarowych: ±250, ±500, ±2000 dps i czterech szybkościach transmisji, które mogą być zmieniane w locie.
Sensor może być zasilany napięciem 2,4-3,6 V, linie interfejsu pozwalają na zasilanie od 1,7 V do Vdd, co pozwala łączyć żyroskop z mikrokontrolerami zasilanymi napięciem poniżej 2,4 V. Dane otrzymywane z żyroskopu mają charakter surowy, dostępne są w 16-bitowych słowach w kodzie uzupełnień do dwóch (integer ze znakiem) i muszą być przekonwertowane w programie na wartości użyteczne dla aplikacji.
Dla zakresu ±250 dps LSB przetwarzania wynosi zatem 0,00875 dps. Innymi słowy, dla żyroskopu niemal nieruchomego dane X, Y, Z mogą wynosić przykładowo:
oś X= FF96H = -106 =
-106×0,00875 = -0,93 dps
oś Y= 0045H = 69 =
69×0,00875 = 0,6 dps
oś Z= FFCC = -52 =
-52×0,00875 = -0,46 dps
Dane te (dla układu nieruchomego) powinny być traktowane jako offset kalibracyjny, czyli wartość odejmowana od pomiarów. Dzięki kodowaniu U2 operacje dodawania i odejmowania offsetu wykonywane są tak samo jak dla liczb binarnych bez znaku. Oczywiście procedura kalibracji powinna bazować na wielu pomiarach po to, aby zyskać pewność, że układ jest nieruchomy.
Warto więc pobrać 50-100 próbek, skontrolować, czy nie różnią się one znacząco od siebie, a następnie wyznaczyć wartość offsetu jako średnią. Z uwagi na szum nakładający się na sygnał wyjściowy z czujnika trzeba także dodać jakieś proste filtrowanie, na przykład za pomocą wyliczania, zamiast średniej arytmetycznej, średniej kroczącej.
Przy parametrze ODR żyroskopu ustawionym na 100 Hz cały ten proces zajmuje nie więcej niż 1 s. Z uwagi na zmiany temperatury otoczenia proces wyliczania offsetu spoczynkowego powinien być okresowo powtarzany podczas pracy. Podczas odczytu wartości z żyroskopu dla każdej osi warto też zdefiniować wartość progową, która określi próg uznania, że układ jest w spoczynku.
Na skutek zmian temperatury odczytywane wartości dla nieruchomego (nieobracającego się) żyroskopu zmieniają się nieznacznie dlatego, gdy zmiany nie przekraczają ustalonego progu, oprogramowanie uznaje, że sensor jest nieruchomy. Eliminuje to wpływ szumu, ale niestety w pewnym stopniu ogranicza reakcję żyroskopu na powolne wirowanie.
Dla danej osi sygnał wyjściowy żyroskopu wynosi RT=SC*(RM-R0), gdzie SC to współczynnik skalowania (czułość) wyrażona w dps na LSB, RM - wartość odczytana, a RO wartość odczytana w spoczynku. Mając odczytane z czujnika dane i skorygowane o off set dla stanu spoczynkowego, trzeba jeszcze wyznaczyć współczynniki skalowania dla każdej osi.
Gdy zależy nam na dokładności, trzeba dokonać tego za pomocą pomiarów, gdy precyzja ma mniejsze znaczenie, można wyliczyć je na podstawie zakresu pomiarowego i rozdzielczości. Czułość żyroskopu L3G4200D jest stabilna w funkcji czasu, temperatury i określone współczynniki skalowania można zapisać w pamięci nieulotnej.
W ten sposób otrzymuje się dane na temat położeń kątowych sensora w stosunku do układu odniesienia. Ponieważ szybkość odczytywania danych z czujnika jest stała i określana przez parametr ODR, na podstawie kolejnych odczytów kąta można wyznaczyć przesunięcie kątowe sensora w funkcji czasu, czyli prędkość kątową.
Warto zauważyć, że każdy układ L3G4200D jest fabrycznie testowany, trymowany w zakresie offsetu i czułości. Stąd w większości popularnych zastosowań o małej wymaganej dokładności (gry, urządzenia wskazujące) nie ma potrzeby dodatkowego kalibrowania i wystarczy korzystanie ze wskaźników czułości z karty katalogowej.
Żyroskop w przykładowych aplikacjach
W wielu urządzeniach przenośnych do kontroli ruchu i położenia wykorzystuje się akcelerometry MEMS. Jednak istnieją pewne ograniczenia do ich wykorzystania, gdyż akcelerometr nadaje się do statycznych pomiarów pochylenia lub detekcji powolnego ruchu.
Czujnikiem tym nie można śledzić dynamicznego ruchu ani obracać obiektów w czasie ich przesuwania, ale po dodaniu żyroskopu 3-osiowego powyższe problemy są rozwiązane, bo żyroskop może dynamicznie mierzyć prędkość kątową w 3 osiach. Podczas ruchu liniowego wzdłuż jednej z osi można w ten sposób wykryć i zareagować na obracanie czujnika ruchu.
Sam akcelerometr takiej zmiany nie wykrywa. W układach nawigacyjnych uzupełnienie 3-osiowego akcelerometru o 3-osiowy żyroskop pozwala na kontrowanie całości ruchu liniowego i obrotowego, co tworzy system nawigacji inercyjnej. Istota działania tej metody polega na pomiarze przyspieszenia i momentu obrotowego wytwarzanego podczas wykonywania skrętów.
Akcelerometr wykorzystywany jest do pomiaru przesunięcia wzdłuż określonej osi, które jest otrzymywane w wyniku operacji podwójnego całkowania przyspieszenia po czasie. Żyroskop pozwala na wykrywanie skrętów.
Narzędzia deweloperskie
Przykładowe narzędzia pomagające w wykorzystaniu żyroskopów i akcelerometrów we własnych projektach po stronie sprzętowej opierają się na małych płytkach drukowanych zawierających układ akcelerometru plus elementy towarzyszące, tak, że całość dopasowana jest wielkością do standardowej podstawki DIL 24.
To dlatego, że obudowa bezwyprowadzeniowa LGA układu może być sporym kłopotem przy prototypowaniu. Przykładowy zestaw ewaluacyjny STEVAL-MKI108V1 na takiej płytce ma żyroskop L3G4200D i akcelerometr LSM303DLHC i pozwala na łatwe korzystanie z możliwości obu sensorów ruchu.
ST zachowuje kompatybilność wyprowadzeń pomiędzy takimi płytkami, co ułatwia zmiany, na przykład na STEVALMKI107V1 - zawierający sam żyroskop. iNEMO to z kolei pakiet oprogramowania obsługujący akcelerometr, żyroskop i magnetometr i dostarczający precyzyjnych danych na temat ruchu do aplikacji.
Oprogramowanie to jest przygotowane tak, aby można było je łatwo zintegrować ze sprzętem konsumenckim. Dostępne są wersje dla mikrokontrolerów ARM, kompatybilne z Androidem, wersje okrojone w postaci kodu źródłowego i dopasowane do mikrokontrolera STM32F103. Udostępniają one interfejs API do obsługi czujników ruchu.
Robert Magdziak