Skocz do zawartości

Pływający odczyt z żyroskopu analogowego ADXRS150


mhl

Pomocna odpowiedź

Witam, posiadam żyroskop Analog Devices ADXRS150ABG,jest żyroskop jednoosiowy mierzący prędkość osi Z, czyli przechodzącej prostopadle przez jego środek. Wg tej dokumentacji

http://www.analog.com/static/imported-files/data_sheets/adxrs150.pdf

żyroskop w stanie spoczynku powinien podawać 2,5V, mój podaje napięcie w zakresie 2,33-2,4V, co odczyt to jest nieco inne (robię go co 500ms). Do pomiaru używam Arduino UNO. Sam w sobie działa, zmienia się to napięcie gdy nim ruszam.

Masę żyroskopu podłączyłem do Arduino, zasilam go komputerowym zasilaczem Chieftec, temperatura pomieszczenia jest pokojowa około 25 stopni, nie powinna wpływać w tak znacznym stopniu na odczyt (dopiero powyżej wg dokumentacji)

Mam też akcelerometry analogowe tej samej firmy i ich odczyty są bardzo stałe w porównaniu do pływającego żyroskopu, więc chyba nie jest to problem Arduino.

Aha, odległość żyroskopu od Arduino to kilka cm, wyjścia są wprost podpięte do wejść analogowych.

Co może być przyczyną pływającego odczytu i odchylenia względem zera?

Link do komentarza
Share on other sites

"żyroskop w stanie spoczynku powinien podawać 2,5V"

Nieprawda, jest to wartość typowa ale nie bezwzględnie konieczna. Już na wykresach w pdf widać (Figure 5), że do testów przy 0g użyli próbki mającej napięcie wyjściowe ok. 2.555V. Musisz zrobić kalibrację, co najmniej 2-punktową albo pogodzić się, że ta sztuka tak ma. Wykluczam problemy typu: za bardzo obciążyłeś wyjście żyroskopu lub: zasilanie wychodzi poza tolerancje.

"mój podaje napięcie w zakresie 2,33-2,4V"

Jak to zmierzyłeś? Jeśli multimetrem to OK. Jeśli Arduino to wybacz, ale to nie jest przyrząd pomiarowy a już na pewno nie taki, by wyniki można było traktować jako zaufane. Napisz jakiej referencji używasz podczas pomiarów ADC i jaką ma ona wartość zmierzoną dobrym multimetrem.

"zasilam go komputerowym zasilaczem Chieftec"

Błąd, do zasilania czułych układów analogowych taki zasilacz nadaje się jak pięść do nosa. Już lepiej byś zrobił, gdybyś podciągnął 5V z Arduino - jeżeli jest tam dostępne. Jeżeli nie, zrób sobie 5V z jakiegoś wyższego napięcia prostym stabilizatorem liniowym. To, że inne układy działają z tego zasilacza nie ma zupełnie znaczenia. Każdy może mieć inną czułość na wpływ zakłóceń od zasilania. Czy Twoja aplikacja wygląda dokładnie tak jak na rysunku "Figure 22"?

"Mam też akcelerometry analogowe tej samej firmy i ich odczyty są bardzo stałe w porównaniu do pływającego żyroskopu"

To niczego nie dowodzi (myślę tu o szumie) - zupełnie inne układy, inne metody pomiarowe, inne pasmo to i inne zachowanie. Błędem zera się nie przejmuj.

"odległość żyroskopu od Arduino to kilka cm, wyjścia są wprost podpięte do wejść analogowych"

Vrms szumu zależy wprost od pasma. No, nie wprost, raczej od pierwiastka ale zależy. Tak więc masz dwa wyjścia: zrobić filtrowanie cyfrowe:

- zbierasz np. 16 próbek równomiernie rozłożonych w ciągu okresu pomiarowego po czym liczysz ich średnią

- pamiętasz zawsze ostatnich 16 próbek, nową dokładasz na początek kolejki a najstarszą zapominasz po czym liczysz średnią z tego co masz zgormadzone (filtr moving average)

lub analogowe:

- ograniczasz pasmo za pomocą a) kondensatora CMID (Figure 22) b) dodatowego filtra RC na wyjściu żyroskopu

W powyższych przykładach 16 jest arbitralnie dobraną liczbą. Możesz użyć innej, choć już przy uśrednianiu z 16 pomiarów poprawa powinna być znaczna.

Link do komentarza
Share on other sites

Dzięki za wyczerpującą odpowiedź.

Moja aplikacja wygląda tak jak na tym schemacie a nawet ma jeszcze więcej elementów, bo jest to gotowa płytka z tym czujnikiem. Muszę rozszyfrować co jest do czego, bo ma osłonę ESD i ciężko ją zsunąć bez uszkadzania.

Zmierzę te napięcia multimetrem, ale nie sądzę, by aż tak się różniły.

5V z Arduino jest dostępne, ale po podłączeniu obu czujników, po lekkim poruszeniu za każdym razem występował zanik sygnału, bo Arduino zasilane jest z USB i chyba całość nie wyrabiała. Ale to co mam użyć takiego od komórki, czy iść do laboratorium i użyć profesjonalnego sprzętu? (akurat mam możliwość). Docelowo to będą ogniwa polimerowe.

Generalnie chciałem zrealizować tę metodę http://www.instructables.com/id/Segstick/step10/A-very-flattering-filter/ i biorąc pod uwagę to co piszesz, sygnał z żyroskopu byłby wówczas przepuszczany zarówno przez filtr dolno- (filtr RC) jak i górnoprzepustowy (to już załatwia ten wzór). A może to nie będzie ze sobą kolidować (w przypadku filtra RC na wyjściu)?

Link do komentarza
Share on other sites

Taka jedna uwaga... USB jako bezpośrednie zasilanie czułych czujników analogowych zupełnie się nie nadaje. Prądowo ono spokojnie wystarcza do Twoich celów, ale napięcie z USB pozostawia bardzo dużo do życzenia.

Polecam od razu przejść na testy robione z zewnętrznym zasilaniem (dobry zasilacz o bardzo małych szumach lub dowolna bateria, bo baterie mają bardzo stabilne parametry przy małych prądach).

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.