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

atmega328p - BMA180 nieprawidłowe dane z osi przy kątach 90 stopni

prociomen007 29 Paź 2014 22:06 828 4
REKLAMA
  • #1 14085808
    prociomen007
    Poziom 18  
    Witam, mam problem z danymi odbieranymi z czujnika BMA180. Wszystko niby działa ale dane odbierane sa z każdej osi jakby tylko w kątach 90 stopni. Poniższy rysunek pokazuje problem jaki istnieje dla każdej osi:

    atmega328p - BMA180 nieprawidłowe dane z osi przy kątach 90 stopni

    Jak widać dane w jedną strone mierzą się prawidłowo, ale w druga już nie. Pomiar ustawiony jest na zakres 2G. Kiedy czujnik leży w pozycji zero oś wskazuje pomiar
    1.5. Odchylenie układu ( w czarną stronę ) powoduje zmniejszanie się tej wartości co jest prawidłowo. W czerwoną jednak stronę nic nie jest mierzone. Zaznaczam że to samo jest dla każdej osi.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    i inicjacja:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 14085926
    vonar
    Poziom 28  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Nawias w złym miejscu, ponadto wartość jest ze znakiem, więc raczej
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 14085999
    prociomen007
    Poziom 18  
    Kod przerobiony:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Niestety dalej odczytuje same śmieci. Na niekturych osiach minusy szaleją pokazują sie wdziwnych momętach. OśY na wyświetlaczu pokazuje coś takiego:

    atmega328p - BMA180 nieprawidłowe dane z osi przy kątach 90 stopni

    ( czerwone to wartości zczytane przez czujnik )

    Niby jest w tym jakaś logika ale po pierwsze działa to do góry nogami nie widzieć czemu. Po drugie nie ma minusu po przejściu przez zero.
  • REKLAMA
  • #4 14086107
    vonar
    Poziom 28  
    Zastosowałeś wersję sprzed mojej edycji, ale nieważne, bo druga też była z błędem ;)
    Powinno być tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    (poprawiłem też poprzedni post)

    Wartość offy poprawna? Sprawdzałeś surowe dane z czujnika?
  • #5 14086324
    prociomen007
    Poziom 18  
    No niestety nie pomaga to w dalszym ciągu. Analiza surowych danych pokazuje że problem jest już po stronie czujnika. Może coś w konfiguracji jest namotane?
    Jeśli chodzi o czujniki to korzystam z gotowca GY-81

    atmega328p - BMA180 nieprawidłowe dane z osi przy kątach 90 stopni

    Całość zamontowana jest tak jak poniżej na zdjęciu

    atmega328p - BMA180 nieprawidłowe dane z osi przy kątach 90 stopni

    Górny wiersz na wyświetlaczu to właśnie oś Y. zamiast wskazywać 0 to wskazuje mi 1.55. Kiedy całość przechylam w lewą stronę dane w ogóle się nie zmieniają. Po przechyleniu w prawo wartość maleje. Zaznaczam że po przechyle w lewo nie zmieniają się dane nawet surowo sczytane z czujnika.
REKLAMA