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

[Atmega8] Odczyt danych z żyroskopu i akcelerometru

nietme 23 Mar 2013 12:04 4677 5
  • #1 12099381
    nietme
    Poziom 9  
    Witam,

    Przez USART dostarczam dane do komputera z modułów: L3GD20 i LSM303DLHC. Na kontrolerze nie wykonuje żadnych obliczyć tylko poszczególne współrzędne odczytuje w ten sposób:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    W terminalu portu COM otrzymuje dane: (osie X Y Z)
    Cytat:
    Gyro: 108.0000000000 176.0000000000 -58.0000000000
    Akce: 768.0000000000 0.0000000000 16640.0000000000

    Gyro: 97.0000000000 176.0000000000 -61.0000000000
    Akce: 512.0000000000 0.0000000000 16384.0000000000

    Gyro: 91.0000000000 196.0000000000 -77.0000000000
    Akce: 768.0000000000 256.0000000000 16128.0000000000

    Gyro: 91.0000000000 188.0000000000 -68.0000000000
    Akce: 256.0000000000 256.0000000000 16384.0000000000

    Gyro: 118.0000000000 158.0000000000 -93.0000000000
    Akce: 768.0000000000 256.0000000000 16384.0000000000

    Gyro: 96.0000000000 166.0000000000 -71.0000000000
    Akce: 768.0000000000 0.0000000000 16128.0000000000


    Próbowałem znaleźć informacje jak to przeliczyć na odchylenie poszczególnych osi - w stopniach, jednak bardzo ciężko mi to szło. Czy jest ktoś w stanie pomóc mi w napisaniu algorytmu do przeliczania?

    Aby nie czekać na gotowca próbowałem znaleźć jakieś algorytmy. Znalazłem taki w C# dla akcelerometru:
    Kod: C#
    Zaloguj się, aby zobaczyć kod


    Czy otrzymane dane po tych obliczeniach to są w jednostce m/s/s? Czy jeszcze dane odczytane z modułu muszę przeliczyć?

    Proszę o jak najwięcej wskazówek, które mogą mi pomóc.

    Pozdrawiam.
  • Pomocny post
    #2 12099558
    Konto nie istnieje
    Poziom 1  
  • #3 12099891
    nietme
    Poziom 9  
    Witam,

    Dzięki za odpowiedź. Te moduły dostałem a na podstawie ich chcę zrobić aby w komputerze wyświetlała się informacja o kątach, dlatego mikrokontrolera zmieniać na razie nie będę. Zdaje sobie sprawę, że ciężko będzie obliczyć dokładnie kąt (a raczej jego rzeczywistą wartość) ale dokładność ~2 stopni mnie zadowoli :-)

    Czy te dane otrzymane z tych modułów są gotowe do użycia w algorytmie madgwicka?
    Link
  • Pomocny post
    #4 12100579
    Konto nie istnieje
    Poziom 1  
  • #5 12110325
    nietme
    Poziom 9  
    Niestety ale chcę uzyskać taką dokładność nawet jak cały układ spadałby swobodnie czyli z dużym przyspieszeniem nawet ~9 m/s/s.

    Dane z Atmegi to po prostu odczyty z modułów więc między tymi odczytami a zalinkowanym algorytmem mogę zrobić przelicznik.

    Urządzenie ma być w miarę pożyteczne bo docelowo stworzę program, który będzie wyświetlał prostopadłościan w rzucie osi XYZ przedstawiając jego przechyły.

    W żyroskopie mam ustawioną skalę 250 dps. W akcelerometrze mam 2g. Ddczyt tych 16 bitowych rejestrów ADC i złożenie ich w liczbę:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Daje już dane gotowe do tego algorytmu?
    Wyczytałem, że dane z żyroskopu należy przemnożyć przez 8.75/1000 przy 250 dps.

    Czy ktoś może dokładniej mnie nakierować?
  • #6 12111932
    Konto nie istnieje
    Poziom 1  
REKLAMA