logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Akcelerometr 3 osiowy

MADevil 19 Maj 2009 21:25 15024 21
REKLAMA
  • Akcelerometr 3 osiowy
    Witam wszystkich :)

    Chciałbym przedstawić moją najnowszą konstrukcję.
    Jest to akcelerometr XYZ.

    Funkcje:
    - wyświetlanie chwilowych przyspieszeń na wybranych osiach za pomoca wykresu;
    - wyświetlanie chwilowych przyspieszeń na wybranych osiach za pomoca danych liczbowych;
    - wyświetlanie chwilowych przyspieszeń na wybranych osiach za pomoca wykresu i danych liczbowych jednocześnie;
    - możliwość rejestracji przebiegów przyspieszeń (zapis do zewnętrznej pamięci Flash po SPI);
    - możliwość wyboru zakresu: ?2,5g; ?3,3g; ?6,7g; ?10g;
    - komunikacja z komputerem przez port USB (przesyłanie zarejestrowanych przebiegów);
    - zasilanie bateryjne;
    - ładowanie z portu USB;
    - możliwość kalibraci - ustalenie zera dla danej osi;
    - sygnalizacja dźwiękiem przekroczonego poziomu przyspieszenia.

    Mózgiem jest mikrokontroler AVR ATmega32A, pracujący z zewnętrznym kwarcem 12MHz (wymagane do prawidłowego działania USB).

    Sercem zaś 3 osiowy akcelerometr wykonany w technologii MEMS, firmy Freescale MMA7261QT w obudowie QFN, co dostarczyło mi wiele zabawy przy lutowaniu. Dodam, że lutowałem chińską, kolbową stacją lutowniczą (którą sobie bardzo chwalę).

    Urządzenie nie potrzebuje sterownika do komunikacji z PC. Zastosowałem, jak mi się wydaje, sprytny manewr. Mianowicie urządzenie jest wykrywane jako klawiatura HID, a sama transmisja polega na uzupełnianiu arkusza kalkulacyjnego. W skrócie urządzenie emuluje klawiaturę, za pomocą której wystukuje zapisane dane.
    Do programowania USB wykorzystałem bibliotekę V-USB (dawne AVR-USB).

    Zastosowany wyświetlacz został wyciągnięty z nokii 3510i, a w jego oprogramowaniu i uruchomieniu pomogła mi biblioteka z: http://hobbyelektronik.org/Elo/AVR/3510i/ .


    Teraz trochę zdjęć:
    Akcelerometr 3 osiowyAkcelerometr 3 osiowyAkcelerometr 3 osiowy
    Akcelerometr 3 osiowyAkcelerometr 3 osiowyAkcelerometr 3 osiowy
    Akcelerometr 3 osiowy
    Akcelerometr 3 osiowy
    Akcelerometr 3 osiowyAkcelerometr 3 osiowy
    Akcelerometr 3 osiowyAkcelerometr 3 osiowy
    Akcelerometr 3 osiowy

    Oprogramowanie jest cały czas rozwijane, pozostało jeszcze dużo do zrobienia: automatyczna zmiana zakresu, przesuwanie wykresu, zamiast odświeżania, obsługa rejestracji, regulacja podświetlenia, dodanie dźwięku powiadamiającego, monitor poziomu baterii... można wymieniać. W każdym razie całość jest zlutowana, sprawdzona i uruchomiona, teraz czekam na kolejne wolne chwile by uzupełnić braki i poprawiać to co jest.

    Obecnie kod zajmuje 11kB, więc jest jeszcze sporo wolnego miejsca :)

    Z chęcią odpowiem na Wasze pytania, więc śmiało ;)
    No i proszę o ocenianie konstrukcji za pomocą systemu działającego na forum :D

    Fajne? Ranking DIY
    O autorze
    MADevil
    Poziom 18  
    Offline 
    Specjalizuje się w: mechatronika, c, avr, zigbee, automatyka budynkowa
    MADevil napisał 363 postów o ocenie 25, pomógł 1 razy. Mieszka w mieście Stolica. Jest z nami od 2003 roku.
  • REKLAMA
  • #2 6551054
    elektronik92
    Poziom 12  
    Posty: 68
    Pomógł: 3
    Ocena: 2
    Na schemat i wsad do proca można liczyć?
  • #3 6551219
    MADevil
    Poziom 18  
    Posty: 363
    Pomógł: 1
    Ocena: 25
    Zastanawiam się. Może w późniejszym terminie, jak poprawię wszystko co mam do poprawienia. Jest też pytanie czy ma to sens, akcelerometry nie tak łatwo u nas dostać :/
  • REKLAMA
  • #4 6551263
    elektronik92
    Poziom 12  
    Posty: 68
    Pomógł: 3
    Ocena: 2
    Najtrudniej też nie na tme mają taki jak zastosowałeś.
  • #5 6551347
    damian2b2
    Poziom 11  
    Posty: 54
    JAK tak elgancko pocynowales cala plytke ??
  • #6 6551423
    3_at
    Poziom 14  
    Posty: 168
    Ja spytam się o coś innego. Czy trudno było przylutować sam akcelerometr. Sam napisałeś że było do dosyć "zabawne" :D

    damian2b2 wydaje mi się że płytka została pokryta taką specjalną pastą do cynowania i ogrzana. Tą masę (pastę) rozprowadzasz pędzelkiem. I np opalarką rozgrzewasz. Wtedy tak się ładnie tworzy ocynowanie.
  • #7 6551729
    misiekagh
    Poziom 12  
    Posty: 60
    Pomógł: 1
    Ocena: 2
    Ciekawa konstrukcja ;)
    Czy jest sens robic polygony pod prockiem nie podlaczone do masy?
    Mnie sie wydaje ze to moze tylko szkodzic
  • #8 6551759
    Svavo
    Poziom 23  
    Posty: 800
    Pomógł: 42
    Ocena: 30
    Zdaje się, że generując wykres zapalasz tylko pojedyncze piksele, co powoduje "dziury" w przypadku, gdy kolejne wartości różnią się więcej niż jeden piksel. Wykorzystaj zoptymalizowany algorytm Bresenham'a z tej strony ewentualnie jeden z algorytmów z tej (dla zastosowań komercyjnych trzeba zamieścić info o źródle algorytmu). Ja korzystam z algorytmu Bresenham'a który IMHO sprawuje się bardzo dobrze.
  • #9 6551786
    MADevil
    Poziom 18  
    Posty: 363
    Pomógł: 1
    Ocena: 25
    Cynowanie:

    Po trawieniu i oczyszczeniu smarujępłytkę kalafonią ze spirytusem lub acetonem - smaruje się jak pastą do butów. Ułatwia to lutowanie/pokrywanie.
    Później wspomniana lutownica, cienka cyna i trochę siedzenia. Wprawę już zdobyłem. Ogólnie jest to rozmazywanie cyny po miedzi ;)
    Na koniec czyszczenie acetonem - zmywa kalafonię i nadaje połysk cynie :)

    Polygony pod procem:

    miały być oczywiście masowe. Jednak, żeby nie komplikowac dalej płytki (i tak ma dużo pzrelotek) puściłem pod procem zasilanie (ścieżka, która jest widoczna), a polygony zostały, bo lubię wypełniać płytkę.
    Najważniejszy i dobrze zrobiony jest polygon pod częścią analogową - wszystkie sygnały analogowe oraz wejścia ADC i wyjścia akcelerometru są pod polygonem masy. W porównaniu do prototypu na płytce stykowej, gdzie wszystko wisiało nie ma żadnych zakłóceń.
    Część cyfrowa również nie wykazuje wpływu zakłóceń, więc wiszace polygony pod procem raczej nie szkodzą.

    Wykres:

    Dzięki, pomyślę nad podanym algorytmem. To co jest w tej chwili ma sporo niedociągnięć, chciałem tylko, żeby już ładnie wyświetlać, tak czy inaczej wykres na małym wyświetlaczu będzie miał charakter orientacyjny(zbyt mała rozdzielczość). Ale miejsce na kod jest, więc pokombinować będzie trzeba :)
  • #10 6551972
    chszanek
    Poziom 13  
    Posty: 122
    Pomógł: 5
    Ocena: 9
    Witam.
    Bardzo fajna zabawka.
    Mam pytanko, myślałeś żeby można umożliwić podłączenie pendrive'a do portu USB w twoim akcelerometrze i przeprowadzać akwizycje bez komputera? Moim zdanie to byłoby najfajniejsze, wtedy mial bys pelna mobilność :). Patnie dla kolegów:
    - czy jest to trudne do zaprogramowania? Tak czy siak, fizycznie port przygotowany jest.

    POZDRAWIAM
    Bartek
  • REKLAMA
  • #12 6552998
    viki
    Poziom 16  
    Posty: 262
    Pomógł: 11
    Ocena: 3
    Dlaczego go nie skalibrowałeś? Chyba łatwo to zrobić wiedząc, że przyśpieszenie ziemskie wynosi 9.81 m/s2
  • #13 6553322
    MADevil
    Poziom 18  
    Posty: 363
    Pomógł: 1
    Ocena: 25
    3_at napisał:
    Ja spytam się o coś innego. Czy trudno było przylutować sam akcelerometr. Sam napisałeś że było do dosyć "zabawne" :D


    Zrobiłem tak:
    Zaprojektowałem własny element biblioteczny w programie do tworzenia PCB (i tak nie było takiego komponentu). Przy tworzeniu footprintu dodałem przedłużenia do pól lutowniczych, tak aby wystawały znacznie poza obrys układu.
    Pola lutownicze układu delikatnie pocynowałem, na pola PCB dałem dodatkowo niewielką ilość cyny(oprócz cynowania), ważne jest aby ta ilosć byla nieduża.
    Ustawiłem układ i sprawdziłem pokrywanie się wszystkich pól i wyprowadzeń.
    Lutownicą rozgrzałem jedno z pól, korzystajac ze zrobionego przedłużenia. Sprawdziłęm czy złapało. Kontrola dopasowania pól. Dalsze lutowanie w ten sam sposób.
    Oczywiście za pierwszym podejściem nie wyszło...

    viki napisał:
    Dlaczego go nie skalibrowałeś? Chyba łatwo to zrobić wiedząc, że przyśpieszenie ziemskie wynosi 9.81 m/s2


    Wygląda to tak: układ jest fabrycznie wykalibrowany i w zależności od czułości daje napięcie proporcjonalne do "g". Zawsze "0" jest połową napięcia zasilania, wynika to z zakresu na +/-.

    Układ jest nie skalibrowany, o tyle, że kostka może nie być idealnie równolegle do podłoża lub nie prostopadła do krawędzi płytki czy obudowy.

    Pisząc w pierwszym poście o kalibracji, miałem na myśli możliwość wyzerowania wskazania w danym położeniu i traktowanie go jako odniesienie. Czyli stoisz samochodem na górce ichcesz sprawdzić przyspieszenia przy ruszaniu. Na górce urządzenie pokaże przyspieszenie ziemskie rozbite na składowe osi XYZ, więc nie będzie to "0". Człowiekowi łatwiej orientować się z jaką wartością ma do czynienia, jeśli liczy od zera, a nie musi odejmować warunki poczatkowe. I tu by można yzerować wskazanie, po mojemu skalibrować, bo przy mniejszych nierównościach, np. krzywym biurku też nie będzie zera, czy 1g, tylko jakaś wartość z błędem.

    Na zdjęciach urządzenie leży pod kątem, żeby mi się oświetlenie nie odbijało. Z geometrii powinno wyjść ok 1g.
  • #14 6553739
    submariner
    Poziom 32  
    Posty: 2319
    Pomógł: 51
    Ocena: 268
    Bardzo staranny i fajny projekt, proponuje go rozwinac o filtry Kalmana i zbudowac cos w rodzaju GPS ale bez satelity - system INS .
    Chetnie podlacze sie do takich dzialan.
  • #15 6553809
    MADevil
    Poziom 18  
    Posty: 363
    Pomógł: 1
    Ocena: 25
    submariner napisał:
    Bardzo staranny i fajny projekt, proponuje go rozwinac o filtry Kalmana i zbudowac cos w rodzaju GPS ale bez satelity - system INS .
    Chetnie podlacze sie do takich dzialan.


    Niestety temat ten nie jest mi zbytnio znany rozumiem, że chodzi ogólnie o zagadnienie nawigacji bezwładnosciowej.

    Ogólnie jestem chętny do współpracay, gorzej z czasem, zbliża się sesja isypią się wszystkie zaliczenia teraz :/ no i to urządzonko muszę dokończyć, inaczej nie zaznam spokoju ;)
  • #16 6557851
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    Wstaw jakiś wykres z excela, najlepiej obrazujący przyśpieszenie samochodu.
  • #17 6558567
    MADevil
    Poziom 18  
    Posty: 363
    Pomógł: 1
    Ocena: 25
    michalko12 napisał:
    Wstaw jakiś wykres z excela, najlepiej obrazujący przyśpieszenie samochodu.


    Postaram się dodać coś w wolniejszej chwili, koniec weekendu lub po weekendzie.
  • REKLAMA
  • #18 6558883
    Lewho
    Poziom 15  
    Posty: 181
    Pomógł: 5
    Ocena: 55
    Bardzo dobra robota! Staranne wykonanie i pomysłowy sposób przesyłu danych. Kiedyś wykonałem bardzo podobną zabawkę, ale na dwuosiowym akcelerometrze.

    Link
    Akcelerometr 3 osiowy
    Czekam na wyniki pierwszych testów.
  • #19 6577946
    submariner
    Poziom 32  
    Posty: 2319
    Pomógł: 51
    Ocena: 268
    |Jaka czulosc udalo Ci sie osiagnac na tych czujnikach , mnie na adxl203 i 103 przy napieciu zasilania 6V-max dla tego typu akcelerometrow a czulosc zalezy od poziomu szumow wiec nieco wyzsze napiecie , udalo mi sie uzyskac 0,0005G.
    |Jka chodzilem z akcelerometrami to bez trudu na wykresach mozna bylo zauwazyc start / stop , zakrety...
    ale niestety nie poradzilem sobie ze zobrazowaniem calej trasy , proste obliczenia nie wystarczaja poniewaz masa pomiarowa tego typu akcelerometrow zachowuje sie jak na sprezynie .
    |Mozliwe ,ze prosciej byloby z akcelerometrami konwekcyjnymi.
  • #20 6580207
    MADevil
    Poziom 18  
    Posty: 363
    Pomógł: 1
    Ocena: 25
    W chwili obecnej maksymalna czułość nie jest jeszcze znana, pracuję nad poprawą innych funkcji. Wynik w postaci liczbowej, jest podawany z dokładnością do 2 miejsc po przecinku. W sumie i tak myślałem o maksymalnie 3 miejscach po przecinku, nie wiem czy więcej ma sens. Życie pokaże.
  • #21 7847074
    dzarek1
    Poziom 14  
    Posty: 128
    Pomógł: 5
    MADevil, mógłbym prosić o schemat, a przynajmniej tą część związaną z akcelerometrem?
    Są jakieś specjalne nakazy jak odległość kondensatorów od czujnika i tp rzeczy?
    Czym i jaka temperaturą lutowałeś akcelerometr ? Jest może możliwość przegrzania i zniszczenia wewnętrznej struktury mechanicznej ?
    Jaką magistrala komunikujesz się z czujnikiem ?
    Chyba tyle na razie :)
    Pozdrawiam i gratuluje udanego projektu
  • #22 7848009
    MADevil
    Poziom 18  
    Posty: 363
    Pomógł: 1
    Ocena: 25
    Odpowiem na PW.

Podsumowanie tematu

✨ Przedstawiono konstrukcję 3-osiowego akcelerometru opartego na mikrokontrolerze AVR ATmega32A z kwarcem 12 MHz, umożliwiającego pomiar i wyświetlanie chwilowych przyspieszeń na wybranych osiach w formie wykresów i danych liczbowych. Urządzenie posiada funkcje rejestracji danych na zewnętrznej pamięci Flash przez SPI, wybór zakresu pomiarowego (±2,5g; ±3,3g; ±6,7g; ±10g), komunikację USB do przesyłania danych, zasilanie bateryjne z ładowaniem przez USB oraz kalibrację osi z możliwością ustalenia zera. Dyskutowano o technikach cynowania płytki i lutowania akcelerometru, w tym stosowaniu kalafonii i pasty cynowej oraz o układzie pól lutowniczych z przedłużeniami dla ułatwienia montażu. Poruszono temat poligonów masy pod mikrokontrolerem i ich wpływu na zakłócenia, a także optymalizacji algorytmu rysowania wykresów (np. algorytm Bresenhama). Rozważano możliwość podłączenia pendrive’a do portu USB i realizacji USB Hosta, jednak z uwagi na ograniczenia ATmegi32A jest to trudne. Omówiono kalibrację akcelerometru, która polega na ustaleniu napięcia zerowego odpowiadającego połowie napięcia zasilania oraz uwzględnieniu orientacji układu względem ziemskiego przyspieszenia. Wskazano na potencjalne rozszerzenia projektu o filtry Kalmana i systemy nawigacji bezwładnościowej (INS). W dyskusji pojawiły się także uwagi dotyczące czułości i szumów akcelerometrów, a także trudności w wizualizacji całej trasy ruchu ze względu na charakterystykę masy pomiarowej. Autor planuje dalsze ulepszenia i udostępnienie schematów na prośbę użytkowników.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA