Skocz do zawartości

[Test/recenzja] LPR550AL 2-osiowy żyroskop XY


OldSkull

Pomocna odpowiedź

Z czujnikami IMU (Inertial Measurement Unit) wykonanymi w technologi MEMS mamy do czynienia już od pewnego czasu. Ze względu na masową produkcję do zastosowań w elektronice użytkowej (zaczynając na czujnikach swobodnego spadku w dyskach, a kończąc na czujnikach orientacji w smartfonach) cena jak i parametry akcelerometrów są coraz lepsze. A jak wygląda sytuacja w przypadku żyroskopów? Czym właściwie one są? Dlaczego są przydatne? Postaram się przybliżyć temat w poniższym artykule będącym równocześnie testem modułu opartego o układ LPR550AL(1), który udało się przetestować dzięki uprzejmości firmy Botland(2).

Żyroskopy

Żyroskop MEMS działa na identycznej zasadzie co akcelerometr MEMS. Otóż w strukturze MEMS znajduje się masa zamontowana na elastycznej strukturze. Wszelkie przyspieszenia (np. siła odśrodkowa, bezwładność, bądź siłą grawitacji) powodują przesunięcie (bądź skręcenie) tejże masy, co skutkuje zmianą pojemności między nią a ściankami, którymi jest otoczona. W przypadku żyroskopu układ jest tak skalibrowany, zmostkowany i skonstruowany (w sensie układu, proporcji i kształtów), aby dawać sygnał proporcjonalny do siły odśrodkowej działającej na element - czyli proporcjonalnie do prędkości obrotowej. Mimo podobnej zasady działania, żyroskopy wymagają większej czułości i dokładności wykonania, co skutkuje wyższym kosztem produkcji niż w przypadku akcelerometrów.

Niestety ceny żyroskopów nie rozpieszczają amatorów - ich ceny zaczynają się od kilkudziesięciu złotych, podczas gdy akcelerometr idzie kupić już za kilka-kilkanaście. Równocześnie ich obudowy są równie kłopotliwe (takie same) jak innych czujników MEMS, co razem nie zachęca do ich wykorzystywania. W przypadku drugiego problemu pewną pomocą służą niekiedy sklepy, które sprzedają gotowe moduły, jak np. zaprezentowany.

Moduł LPR510AL

W opakowaniu znajdziemy: płytkę, goldpiny do montażu kątowego oraz goldpiny do montażu prostego. Sama płytka posiada elementy tylko na jednej stronie, więc można ją wlutować bezpośrednio do innej płytki korzystając z metalizowanych otworów:

Muszę przyznać, że znacznie ułatwia to wykonanie urządzenia docelowego, gdyż nie potrzeba się przejmować wymogami obudów LGA odnośnie do PCB, a całość nie zajmie dużo więcej miejsca. Warto zwrócić uwagę, że płytka jest wyposażona w stabilizator ULDO LP2980(3) na 3.3V o prądzie wyjściowym do 50mA (100mA szczytowy). Z racji iż LPR510 pobiera w trakcie pracy do 6.8mA, mam jeszcze 40mA w zapasie. Oznacza to, że możemy z tego samego źródła zasilić np. jeszcze mikrokontroler wykonujący obliczenia, przykładowo:

- LPC1117 na 50MHz pobiera 9mA,

- ATmega8A na 8MHz pobiera <4mA (oba nie licząc prądu pinów i peryferiów),

- STM32f100R6 na 24MHz z peryferiami 15mA.

Jak można zauważyć zostaje jeszcze spory zapas. Należy jedynie pamiętać, że generujemy zakłócenia, które mogą wpłynąć na pomiary i działanie urządzenia. Z racji iż LP2980 jest ULDO, do zasilania można wykorzystać nawet pojedyncze ogniwo Li-Ion, albo pakiet 3xNiMH (w drugim przypadu lepiej 4xNiMH gdyż przy napięciu około 3.40V mogą się zacząć problemy ze stabilizacją). Poza tym sam żyroskop ma następujące parametry:

- zasilanie 3.3V

- czułość 0.5mV/ o/s lub 2mV/ o/s (w zależności od wyjścia)

- zakres działania: +-500o/s (wyjście 4X), +-2000o/s(wyjście 1X)

Co jeszcze oferuje moduł? Jak można zauważyć na poniższym schemacie:

właściwie niewiele:

- analoowe wyjścia sygnałów obu osi (w tym przypadku X i Y, czyli obie w płaszczyźnie płtki)

- analogowe wyjścia sygnałów wzmocnionych 4x

- wejście SelfTest (służące diagnostyce, np. aby podczas działania móc ocenić, czy moduł się nie uszkodzić)

- wejście PowerDown (służące wyłączaniu układu do poziomu poboru prądu <10uA)

- wyjście napięcia referencyjnego (można wykorzystać je np. jako referencyjne dla ADC)

Wyjścia sygnałów osi są przefiltrowane z filtrem dolnoprzepustowym, jednakże warto zwrócić uwagę, że podmieniając R1, R3, R4, R6 można łatwo dodać filtr górnoprzepustowy o oczekiwanych parametrach. Zainteresowanych odsyłam do rozdziału 4. Application hints dokumentacji układu LPR510AL(4).

Parametry i praca układu

Jak łatwo zauważyć, układ posiada wyjścia analogowe. Oznacza to, że implementacja odczytu wartości powinna być prosta, a poprawność działania można sprawdzić oscyloskopem, albo nawet zwykłym miernikiem. Niestety tak różowo nie jest. Postanowiłem dokonać pomiarów najważniejszych wartości. Na pierwszy rzut poszło napięcia zasilania:

Na pierwszym rysunku można zauważyć przebiegi zasilania oraz jego zakłóceń, na drugim po dołączeniu do tego samego zasilania 5V z zasilacza warsztatowego silnika szczotkowego Pololu HP (ale bez PWM). Jak można zauważyć nie ma to dużego wpływu na przebieg (aczkolwiek na napięcie wejściowe wpływ również był niewielki), natomiast można zauważyć dwie rzeczy:

- wartość napięcia nie jest równa 3.3V, tylko jest niższa. Oscyloskop pokazał 3.22V, miernik 3.24V (czyli błąd około 2%), Nieźle, ale niekoniecznie musi się podobać.

- Zakłócenia są w miarę w normie (RMS 17mV, amplituda na oko ~10mV) i regularne (nie ma szpilek, Vpp ~100mV).

Można więc uznać, że jakość zasilania jest na dobrym poziomie.

Wykonałem jeszcze kilka pomiarów wartości w stanie nieruchomym:

- Vref = 1.245V - zgodnie z dokumentacją powinien wynieść 1.23V, czyli mamy pewien błąd, ale znalazł się w zakresie dokładności miernika (co niestety potwierdza kolejne odczyty, że miernik działa poprawnie)

- Yout (1X) = 1.226V - niedobrze, w bezruchu błąd 19mV od Vref oznacza 38o/s, oznacza to powolne obracanie się, którego nei da się bez pomocy dodatkowych układów łatwo odfiltrować

- Yout (4X) = 1.183V - tutaj błąd od Vref wynosi 62mV (czyli 31o/s), co dało nieco inny wynik niż powinien wynikać z wzmocnienia 4X, ale wskazuje też, że błąd istnieje w samym pomiarze a nie tylko w podawanym na zewnątrz Vref.

- Xout (1X) = 1.238V - tym razem bliżej, błąd tylko 7mV, czyli 14o/s. Tego typu błąd można zrzucić chociażby na część analogową płytki.

- Xout (4X) = 1.242V - zaledwie 3mV (do Vref), czyli 1.5o/s. Niemal ideał.

Warto dodać do tego, że układ może się cechować dryfem wartości, dlatego aby wiarygodnie obliczać aktualny offset napięcia należy się posiłkować np. akcelerometrem. Samodzielny żyroskop będzie miał zastosowanie tylko przy szybszych ruchach. Opcjonalnie możemy wlutować filtr górnoprzepustowy, ale w takim wypadku należy uważać, aby układ nie stracił wrażliwości na wolne zmiany prędkości obrotowej (np. gdybyśmy budowali system stabilizacji lotu helikoptera albo wielośmigłowca nie możemy sobie pozwolić na filtrowanie w osi Z, poniewać nie jesteśmy w stanie wykryć zjawiska powolnego obracania się w powietrzu). W załączniku zamieszczam plik symulacji LTSpice do dobierania wartości elementów filtra(5). Na poniższym przykładzie można zauważyć że nawet przy dużych wartościach rezystancji i pojemności w członie GP, wolne zmiany będą odczytywane nieprawidłowo.

Parametry dynamiczne i zakłócenia

Praca układu w bezruchu jest bardzo istotna (szczególnie jeśli zależy nam na obliczaniu przechylenia oraz wykrywaniu niewielkich zmian prędkości), ale praca w dynamicznie zmieniajacych się warunkach jest również bardzo istotna. Błędy odczytów przechyleń możemy kompensować z czasem akcelerometrem (dla osi w płaszczyźnie ziemii) oraz magnetometrem (dla osi Z).

Z racji braku gotowego układu testowego (a nawet gotowej płytki do testów) również w tych pomiarach posiłkowałem się oscyloskopem. Chciałem ocenić, czy zarówno odczyty wyjść 1X jak i 4X wyglądają na poprawne, gdyż to wystarczy do tego, aby móc np. wykryć we wczesnym etapie, że nasz robot kroczący bądź latający zaczyna tracić równowagę. W tym celu wykonywałem serie ruchów, które po uśrednieniu powinny dać w wyniku kąt równy zero (tzn. płytka wracała do położenia początkowego):

Na pierwszym pomiar dla różnych osi, na drugim ta sama oś, ale pomiar 1X i 4X. Jak widać, pomiary wyglądają bardzo zachęcająco. Z moich obserwacji mogę dodać, że układ reaguje całkiem nieźle i liniowo na ruchy, więc do układów stabilizacji powinien się dobrze nadawać. Niestety podczas pomiarów zauważyłem inny problem, który najlepiej zobrazują poniższe zdjęcia:

I dla pewności ręce i palce innej osoby:

Na żadnym z tych zdjęć płytka nie została dotknięta, w drugim przypadku zakłócenia występowały przy naprawdę dużej odległości. Ich częstotliwość wynosiła 50Hz, czyli po ludzkim ciele i przez powietrze przechodziły zakłócenia od sieci elektrycznej. W drugim przypadku pochodziły od osoby, która nie dotykała żadnego urządzenia elektrycznego (poza modułem podłączonym do zasilacza). Niestety, ale moja opinia może być tylko jedna: odporność EMF jest praktycznie zerowa, jeśli zakłócenia tak silnie potrafią się przenieść na wyjście. Nie wyobrażam sobie pracy układu w bliskiej obecności np. przewodów/ścieżek zasilających, przetwornic czy silników sterowanych PWM. Jedyną moją radą jest zaekranować układ samemu, np. poprzez opakowanie w malutkim pudełku w folię aluminiową i jedynie wyprowadzenie przewodów, robiąc w ten sposób swoistą klatkę Faradaya.

Jeżeli się przyjrzymy płytce i jej rozkładowi połączeń, zobaczymy, że nie widać na niej żadnych błędów, ścieżki są krótkie, masa jest wylana poprawnie. Innymi słowy zakłócenia powstają wewnątrz układu LPR550AL - prawdopodobnie są bardzo niewielkie, ale pojawiają się na najniższych warstwach toru pomiarowego a następnie są wzmacniane.

Podsumowując mogę stwierdzić, że układ spełnia swoje zadanie, ale wymaga odpowiedniego traktowania (ekranowanie), oraz trzeba być ostrożnym względem pomiarów (niedokładności dla małych wartości, możliwy dryf). Jest to zarazem jeden z tańszych żyroskopów, a zasada "you get what you pay" obowiązuje. Przykładowo w ofecie Analog Devices moduły żyroskopów kosztują 35-650$ (6), a kompletne systemy IMU 74-1500$ (7). Sam moduł bardzo dobrze się nadaje do prostych robotów oraz do wszelkich konstrukcji prototypowych, gdyż można go zdemontować znacznie prościej niż gdybyśmy mieli układ scalony wlutowany w płytkę, a sam moduł jest nieźle zoptymalizowany pod względem rozmiaru, więc zmieścimy go prawie wszędzie. Niestety nie nadaje się do małych konstrukcji w których mogą się pojawić zakłócenia elektromagnetyczne. Układ uważam mimo to za jak najbardziej godny poznania i warty wypróbowania jeśli już się wie o jego wadach.

Moduł przekazany do testów przez firmę Botland,

strona produktu.

1) http://www.pololu.com/catalog/product/1270/resources

2) http://botland.com.pl/zyroskopy/492-lpr550al-2-osiowy-zyroskop-xy.html

3) Załączona dokumentacja LP2980

4) Załączona dokumentacja LPR550AL

5) Załączona symulacja LTSpice

6) http://www.analog.com/en/mems-sensors/mems-gyroscopes/products/index.html#MEMS_Gyroscopes

7) http://www.analog.com/en/mems-sensors/mems-inertial-measurement-units/products/index.html#iSensor_MEMS_Inertial_Measurement_Units

HP LP filtr.zip

lpr550al.pdf

LP2980.pdf

1507526832_IMG_5054b03082c7291291.thumb.jpg.da08ad3ef60031889e06bda2b3508300.jpg

  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.