Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pytania o akcelerometr ADXL203

07 Mar 2005 12:19 21516 36
  • Poziom 12  
    Witam
    1. Do czego sluzy wejscie ST (przeczytalem PDF'a ale dalej nie wiem)
    2. W jaki sposob zmierzyc tym predkosc (domyslam sie ze trzeba jakos przetworzyc zaleznosc przyspieszenia w danym czasie ale nie wiem za bardzo jak do tego sie zabrac)
    3. Czy to zle wspomnienia z dziecinstwa czy inne sadystyczne przeslanki projektantow byly powodem umieszczenia tego w takiej a nie innej obudowie ;> ?

    Z gory dziekuje za odpowiedz
  • PCBway
  • Pomocny post
    Poziom 35  
    Na razie tez tylko czytalem dokumentacje i mimo ze chip lezy juz na stole warsztatowym to jeszcze nie podjalem sie tego wyzwania i nie wlutowalem go w jakas plytke, zeby mozna to po ludzku uzywac :)

    Co do pytan:
    1.To jest self-test, mozesz to pominac (nie podlączasz)

    2.Musisz calkować przyspieszenie po czasie.
    Jak nie wiesz co to calka to bardziej po ludzku tlumaczac jak masz np. przyspieszenie 1m/s (~0.1g), ktore sie utrzymuje przez 1sekudne to wiadomo, ze nasz akcelerometr sie rozpedzil do predkosc:i
    V=a*t=1 m/s^2 * 1 s=1m/s
    Ten caly bajer z calka polega na tym, ze dazymy do tego zeby czas byl jak najmniejszy - tym samym zwiekszamy dokladnosc naszych obliczen.
    Czyli jak np 1000 razy na sekunde sprawdzamy stan naszego akcelerometru to predkosc bedzie rowna :Vnowe=Vstare+a/1000;
    Na poczatku przyjmujemy Vstare=0 no a potem to juz sie bedzie zmieniac.
    To tak na chlopski rozum wyjasnione - podstawy fizyki I klasa LO:)

    3.Wole sie nawet nie zastanawiac :P Ale jak cos przypale to sie wkurze :]

    Tutaj znajdzesz opis przykladowej laborki zrobionej na czujniku z tej serii
    http://layer.uci.agh.edu.pl/pl/dydaktyka/lab-sens/cw8.html

    Mam tez fajnego pdf'a adxl203report.pdf , na google po wpisaniu tego go nie znalazlem, jakby co to skrobnij mi pw z adresem email to podesle to.
    W pdf'ie gosciu opisuje jak wykorzystal adxl203 do mierzenia kata wychylenia robota. Jest schemat podlaczenia itd.
  • Pomocny post
    Poziom 20  
    MirekCz napisał:

    Ten caly bajer z calka polega na tym, ze dazymy do tego zeby czas byl jak najmniejszy - tym samym zwiekszamy dokladnosc naszych obliczen...
    Niestety, zwiększają się też szumy, a więc spada dokładność pomiaru. W EP były projekty "myszka dla niepełnosprawnych" i "kwadrant" na ADXL202.
  • Pomocny post
    Poziom 35  
    Tak, jest to prawda.
    W notce katalogowej wszystko pisze - jakie szumy przy jakich czestotliwosciach odczytu.
    Kazdy musi sobie dobrac odpowiednie parametry w zaleznosci od zastosowania.
  • Poziom 20  
    Poprawcie mnie jezeli sie myle. Jezeli chcemy mierzyc predkosc to akcelerometr musi byc umiesczony dokladnie prostopadle do lini sił przyciagania ziemskiego. Kazde wychylenie, nawet o mały kat zmienia wskazanie akcelerometru znajdujacego sie w spoczynku, sugerujac tym samym o jakims ruchu.
  • Poziom 35  
    Zgadza sie.

    Niektorzy montuja akcelerometr pod katem i w ten sposob mierza wychylenie robota od pionu.

    Oczywiscie mozesz tez mierzyc akcelerometrem przyspieszenie "w pionie", tylko pamietaj o odjeciu skladowej grawitacji.
  • PCBway
  • Poziom 20  
    Witaj.
    Nie napisałeś czego przyspieszenie chcesz mierzyć.
    Mierzę tym czujnikiem przyspieszenie, prędkość i drogę przebytą przez pojazd (adxl202 i 210) od 2 lat i muszę przyznać że fajne z niego urządzonko - ale wymaga dosyć precyzyjnej kalibracji.

    Trochę informacji znajdzesz pod linkiem, gdzie był poruszany temat. https://www.elektroda.pl/rtvforum/viewtopic.php?t=120475&highlight=

    Obróbka sygnału jest dosyć uciążliwa, a szczególnie kalibracja zera pomiarowego i szumu wokół zera. Mam zmontowany i uruchomiony taki układ, a nawet kilka różnych rozwiązań. Z montażem nie ma żadnego problemu. Po prostu trawisz płytkę pod taki rozstaw padów i lutujesz czujnik do nich. Dowiadywałem się w analogu - nie ma pod to podstawki bo tak sobie firma wymyśliła, że będzie dokładniej:) swoją drogą przy pomiarze 20 g czujnik po prostu wypadł by z niej. Ja stosuję dla pewności kroplę kleju pod układzik a później go lutuje. Jak sobie nie poradzisz to jest adxl202 w obudowie smd. Ale po pierwszym wlutowaniu stałem się zwolennikiem tego typu montażu.

    Pytaj - jak będę mógł to pomogę - sam jestem zainteresowany wynikami przetwarzania i kalibracji czujnika ( algorytmami filtrowania sygnału).

    Piotr
  • Poziom 35  
    Piotomo:a mozesz zdradzic jak ty przetwarzasz dane, czy jest to jakies scisle tajne?:)

    Ja tez myslalem o wytrawieniu malej plytki tylko z miejscem na akcelerometr i standardowe zlacze 4pinowe, w ten sposob moge wsadzic akcelerometr tam gdzie chce i nie ma problemu z montowaniem/przenoszeniem go.

    Niestety moga dojsc kolejne szumy, ale mi w sumie nie jest potrzebna jakas duza dokladnosc... byloby to mile, ale narazie bardziej traktuje to jako gadzet w robocie niz powazna sprawe.
  • Poziom 20  
    Nie jest to żadną tajemnicą :) podpinam pod procesor Atmatal 2313 najlepiej pod przerawnia , ale nie koniecznie - ostatnio podpiąłem pod dowolne piny i odczyt wypełnienia działa rewelacyjnie.
    Ponieważ rezystorkiem ustalasz okres to pozostaje Ci zczytanie czasu trwania stanu wysokiego na timerku procka najlepiej 16 bitowym.
    uzyskuje ok 500 odczytów na sekundę przy jednym kanale, przy dwuch ok 100/s ( zegar procka 11.059MHz) - niestety ADXL maja stany wysokie w jednej chwili na 2 kanałach X i Y i trzeba czytać raz z jednego raz z drugiego kanału.
    Następnie wysyłam to po każdym odczycie do kompa przez rs-232 z max prędkością RSa i mam w terminalu ciąg liczb - przyspieszenie. Dane obrabiam w matlabie albo excelu. Całka to nic innego jak suma więc i excel sobie z tym radzi. Czas w układzi niestety jest "wirtualny " tzn - nie mierzę czasu. Jak znam ilość próbek na sekundę - a jest ona stała to można sobie wyliczyć ile czasu upłynęło i go szztucznie wygenerować. Można przy małej ilości próbek korzystać z czasu wewnętrznego komputera , ale dopiero poniżej 50/s - inaczej dwum kolejnym próbkom komp potrafi nadać ten sam czas.

    Piotr
  • Poziom 35  
    Czyli jak rozumiem zadnej filtracji nie uzywasz, tylko wrzucasz pod proste wzorki fizyczne?

    A co do czasu, nie wiem w jakim jezyku napisales program, ale jezeli to jest pod windowsa to uzywaj funkcji QueryPerformace.... (tak sie nazywa przynajmniej w C)
    Po padzie hd nie mam przykladowego kodu, ale tam jest funkcja QueryPerformaceFrequenzy i... drugiej nazwy nie pamietam :( (queryperformancecounter?)
    Jedna zwraca tobie bodajze ilosc cykli procesora na sekunde, druga zwraca tobie numer cykla od poczatku dzialania komputera... bardzooo dokladny timer :-)
  • Poziom 20  
    Tak - nic nie filtruje na samym ADXL-ku. Zczytuje wypełnienie i wysyłam je przez rs do kompa. Dopiero tutaj można sobie poeksperymentować z uśrenianiem kilku próbek , filtracją, fft , ifft. Co do czasu to nie pasałem samodzielnie programu - robił to zamnie znajomy w .NET i nie wiem jak sobie radził - jakich algorytmów używał ale dla moich potrzeb działa wyśmienicie. Jak byś coś napisał lepszego to z chęcią skorzystam z rad.

    Natomiast nie poradziłem sobie definitywnie z dryftem zera - rozwiązaniem pośrednim jest wprowadznie nieczułości pomiarowej w około punktu 0 ale to nie bardzo mnie zadowala. Jest to problem pomiarowy bardzo znany ale nie rozwiązany. Można by tu stosować filtry kalmana albo jakieś inne adaptacyje, ale na to to ja jestem za cienki.

    Piotr
  • Poziom 16  
    Witam
    Prawie 2 lata temu użyłem tych cujników do pracy inżynierskiej - rękawica z wizualizacją na komputerze, założenia na początku były ambitne ale w miarę jak czas uciekał trzeba było rezygnować z niektórych założeń. Użyłem 6 czujników po jednym na każdy palec plus jeden na środek dłoni, wynikiem była wizualizacja dłoni 3D na komputerze. Niestety narzucony przez promotora procek nie mierzył przyśpieszeń dokładnie i wprowadzał jakieś przekłamania(seria MSP430f programowany w C najprościej jak sie da bo mało na ten temat wiedziałem) więc na ekranie ręka nieco drgała mimo uśredniania 2-3 pomiarów. Jak ktoś będzie zainteresowany to moge umieścić zdjęcia i film
  • Pomocny post
    Poziom 32  
    Super temat sie pojawil , bo od roku moje ustrojstwo lezy w szufladzie i czeka az pojawia sie tematy na bazie tych czujnikow , mam tu na mysli urzadzenie ktore moze zadzielac jak GPS tylko bez satelitow chodzi mi o INS potrzeba tam mierzyc predkosci droge a potem przedstawic to np na mapie
    Moje urzadzonko sklada sie z ADXL203 oraz ADXL 103(to samo co 203 tylko jedna os pomiarowa)dla osi xyz, akcelerometry zasilane max napieciem 6V , wyjscie podawane jest na 16bitowy przetwornik A/C ADS1110 a calosc programowo obslugiwana przez ATMEGA 32 ktory dodatkowo zapisuje pomiary na karte MMC. Cala ta czesc juz pracuje bez zarzutu ale nie moge sobie poradzic z odtworzeniem trasy . Slyszalem ze potrzebne sa do tego filtry Kalmana .
    Czy moze ktos mial podobny problem i jak go rozwiazal?

    Pojawily sie tez nowe czujniki MMA7260Q maja wszystkie 3 osie pozatm programowalne zakresy od 1,5G do 6G (niby o20%gorsze parametry -jeszcze nie przetestowalem) wielkosc podobna jak adxl ale przylutowac jeszcze gorzej :) ( nie maja z boku metalizacji)
  • Poziom 32  
    Jeszcze troche o INS w zalacznikach testy tego co otrzymywalem z przetwornikow: test15ed3 przedstawia szumy i niedokladnosci usatawienia przetwornika podczas testow(powinna byc linia prosta bez uskokow przetworniki ADS 1110)
    Druga fotka dane zebrane podczas chodu z urzadzeniem ( dane pochodza z przetwornikow A/C 10 bitowych w jakie wypozazona jest ATMEGA32)

    pierwszy wykres gora-lewy rog ekranu napiecie zasilania na akumulatorze (nieistotne , zbierane aby wyeliminowac zaklucenia)
    reszta dane z przetwornikow xyz
  • Poziom 32  
    Mam pytanie , czy w tych akcelerometrach moga wystepowac drgania elementow wewnetrznych mierzacych przyspieszenie?
    Odnioslem takie wrazenie , ze sygnalow jest znacznie wiecej niz powinno mam tu na mysli pomiary podczas ruchu.
    Czy przypadkiem nie jest to tak , ze wewnetrzny czujnik zawieszony jest na czyms w rodzaju sprezyny i podczas rozpedzania odchyla sie a potem przy zatrzymaniu oddaje energie w druga strone do kierunku ruchu, statycznie wszystko pracuje idealnie ale podczas przemieszczania to sie dzieja cuda.
  • Poziom 11  
    Tak masz racje w srodku czujnika wystepuje cos w rodzaju sprężyny, do tej spreżyny przytwierdzone są okładki kondensatorów, i przy zmianie wychylenia zmienia sie pojemność tch kondesatorów, w taki sposób miezone jest potem przyspieszenie. Ostatnio znalazłem także czujniki konwekcyjne (memsic), te róznia się od czujników mikromechanicznych (ADXL, MMA freescale) całkowicie inną architekturą wewnętrzną, oraz ideą działania, otóż w nich zamiast kondenstaorów umieszcone są grzałki i czujniki termiczne, idea w tych czujnikach polkega na badaniu przemieszczania sie gazu w pewnym odizolowanym układzie. Zaleta jest że pomiary tych czujników są bardzo dokładne i pozbawione błędu (drgan pomiarów) jaki wystepuje w przypadku czujników mikromechanicznych, a same pomiary chcrakteryzuja sie tym że są powtarzalne dla wielu badan.
  • Poziom 32  
    tak slyszalem otych czujnikach aczkolwiek dopiero po wybudowaniunowej fabrykimialy stac sie tanie , czy moze robiles jakies proby z tym? Sa gdzies osiagalne ? Tzn wg tego co podaja katalogi sa mniej czule ale wykorzystanie tej czulosci na sprezynach to bardzo wielki problem bez bardzo skomplikowanych przetwarzan matematycznych.
  • Poziom 11  
    Tak masz racje są duzo słabsze jeśli chodzi czułość i mają jeszcze jedną wade, a mianowicie wpływ temeratury otoczenia jest dośc istotny, dlatego każdy akcelerometr ma wbudowany termometr i osobne wyjscie. ALe to kwestia odpowiedniej obróbki sygnału i można otrzymac dość wiarygodne wyniki pozbawione "pływania". Co do czujników to nie korzystałem z nich jeszcze, sam memsic ma dystrybutora w Polsce w Gliwicach, ale prowadzi także sample program i z tego co sie orientuje to wysyłają próbki przy czym musisz sam sobie zapłacic za przesyłke (z tego co pamietam to 37$) dla mnie studenta to dośc spory wydatek więc do swojej aplikacji wykorzystałem freescala 1.5g-3osiowy, ale jak chcesz to podaje link:

    http://memsic.com/memsic/products/productselector.asp

    tam pod każdym czujnikiem masz w opisie link reqestsample może warto zamówic i sprawdzić. :)
    Powodzenia
  • Poziom 12  
    submariner napisał:

    Pojawily sie tez nowe czujniki MMA7260Q maja wszystkie 3 osie pozatm programowalne zakresy od 1,5G do 6G (niby o20%gorsze parametry -jeszcze nie przetestowalem) wielkosc podobna jak adxl ale przylutowac jeszcze gorzej :) ( nie maja z boku metalizacji)

    Niby sa super ale maja niefajny 5% cross-channel sensitivity.
  • Poziom 1  
    Witam mam takie pytanko. Robię właśnie pracę inżynierską z zastosowaniem ADXL203 i ATMegi16. Całość ma służyć do badań takich jak drgania obrabiarek, czy też przyspieszeń np w samochodzie, jednym słowem ma być to urządzeni do polowych pomiarów. Myślałem nad zastosowanie wewnętrznego przetwornika ad/dc tego co jest w atmega do konwersji sygnału z analogowego na cyfrowy, lecz teraz przyszło mi dobrać filtr dolnoprzepustowy na osie do ADXLA, no i tu moje pytanie bo kłopot z ustalenie tych kondensatorów. Jak wyczytałem ADXL może pracować w paśmie od 0,5 HZ do 2,5kHz, lecz nie mogę znaleźć częstotliwości z jaką Atmega przyjmie mi ten sygnał. Zna może ktoś odpowiedz??

    Pozdrawiam
  • Poziom 35  
    ATMEGA ma maksymalną częstotliwość rzędu kilkudziesięciu tysięcy Hz. Wszystko pisze w dokumentacji.
    Co innego, że przetwornik ATMEGA nie grzeszy ani dokładnością ani prędkością...

    Generalnie raczej bym zastosował akcelerometr trzyosiowy(zawsze więcej informacji) i jakiś zewnętrzny przetwornik najlepiej 16bitowy... jak to dobrze zgrasz to będzie przyzwoita dokładność.
  • Poziom 11  
    z małą reaktywacją tematu, czy ktoś Tutaj realizował całkowanie sygnału z akcela na procku PIC 18F8722 , lub na jakimś podobnym z rodziny:>
  • Poziom 12  
    bukszpan napisał:
    Witam mam takie pytanko. Robię właśnie pracę inżynierską z zastosowaniem ADXL203 i ATMegi16. Całość ma służyć do badań takich jak drgania obrabiarek, czy też przyspieszeń np w samochodzie, jednym słowem ma być to urządzeni do polowych pomiarów. Myślałem nad zastosowanie wewnętrznego przetwornika ad/dc tego co jest w atmega do konwersji sygnału z analogowego na cyfrowy, lecz teraz przyszło mi dobrać filtr dolnoprzepustowy na osie do ADXLA, no i tu moje pytanie bo kłopot z ustalenie tych kondensatorów. Jak wyczytałem ADXL może pracować w paśmie od 0,5 HZ do 2,5kHz, lecz nie mogę znaleźć częstotliwości z jaką Atmega przyjmie mi ten sygnał. Zna może ktoś odpowiedz??

    Pozdrawiam

    polecam
    * google: Nyquist
    * http://www.atmel.com/dyn/resources/prod_documents/doc2559.pdf
    * http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=54431&start=0
  • Poziom 37  
    hEx napisał:

    3. Czy to zle wspomneinia z dziecinstwa czy inne sadystyczne przeslanki projektantow byly powodem umieszczenia tego w takiej a nie innej obudowie ;> ?

    Może obudowa pozwala na lepsze wypoziomowanie układu.
  • Poziom 15  
    Mam pytanie posrednio zwiazane z poruszanym tematem. Jak w altium designerze znalezc footprint pod ten akcelerometr? Nie mam zbyt duzego doswiadczenia w projektowaniu PCB w tym programie i za nic w swiecie nie moge doszukac sie footprintu, lub biblioteki dla tego urzadzenia.
  • Poziom 10  
    Witam kolegów
    bawię się właśnie MMA7260QT z ATMega 8-ką.

    Dla chętnych spróbować ->
    Te scalaczki QFN dla celów testowych można położyć na grzbiecie i lutować do góry padami i łączyć kynarem do płytki :).
    Ja zalałem to jeszcze klejem na gorąco, bo padziki malutkie, oj malutkie.

    No więc płytka próbna, a więc szumy, zakłócenia itp.
    Zastosowałem dwie metody "oczyszczenia" wyników:

    1. Uśrednianie 64 pomiarów, ale efekt nie jest zadowalający, straszne fluktuacje grawitacji mimo to (w układzie leżacym na stole, prawie na wsi, nie na moście :) ).

    2. Ograniczenie rozdzielczości.
    Wynik z ADC dzielę przez 16 i znowu mnożę przez 16, a więc poruszając się wirtualnie w pełnej skali 10-bitowej ADC Atmegi odcinam najmniej znaczące cyfry.
    W ten sposób dostaję rozdzielczość 1/16 g (dla zakresu +/- 1,5g czujnika), a więc i tak nie najgorzej.

    Zrobiłem sztuczny horyzont i on zachowuje sie bardzo dobrze na wyświetlaczu graficznym 128*64, ale to dzięki niskiej rozdzielczości wyświetlacza.
    Poziomicę też daje się zrobić przy tej rozdzielczości.

    Docelowo chcę zrobić akcelerometr do samochodu, ale żeby uzyskać dobry wynik, to trzeba (tak mi sie wydaje) przeliczyć wszystkie trzy składowe, żeby uzyskać właściwy wynik na tej, która nas interesuje.

    Dzisiaj, to mój drugi dzień z tą zabawką. Może ktoś z kolegów jakimś konkretnym doświadczeniem i poradą się podzieli, bo temat generalnie bardzo ciekawy.
    pzdr
    Mariusz
  • Poziom 35  
    1.Wewnętrzny ADC atmegi8 jest dosyć słaby do takich celów.

    2.Na drutach to zawsze będzie działało do kitu - długość przewodów i do tego łatwość wchodzenia w nie różnych zakłóceń

    3.kondensatory powinny być jak najbliżej układu... na drutach.. no właśnie.

    4.No i przedewszystkim jak filtrujesz zasilanie do MMA7260 - dużo od tego zależy.

    5.Zamiast dzielić i mnożyć można użyć operacji and (o ile szybciej) a do tego powinieneś zrobić coś w stylu
    (wynik+0x07)&0xF0 - normalne zaokrąglanie.
    Inaczej 0..0,1g będzie traktował jako 0g a 0,1g..0,2g będzie traktował jako 0,1g.
    Jak zaokrąglisz to -0,05..0,05g traktuje jako zero itd. (liczby przykładowe)
    Chociaż tak naprawdę nie widzę w tym sensu, bo jeżeli to jest równomiernie rozłożony szum to możesz liczyć wszystkie bity a tylko wyświetlać na ekranie np. horyzont z mniejszą dokładnościa - w ten sposób wszystkie obliczenia są robione z dużą dokładnością, a użytkownik dostaje wynik z małą dokładnością - żeby horyzont co ułamek sekundy nie przeskakiwał mu kawałek w górę/dół.

    Generalnie bez porządnej płytki, filtrowania zasilania i dobrego ADC nie uzyskasz dobrych wyników.

    PS.Trochę się zagalopowałem w pkt.5. Dla samego horyzontu nie będzie miało to znaczenia, ale jak zaczniesz całkować wyniki żeby np. uzyskać prędkość po czasie to wyjdą te błędy.