Skocz do zawartości

Porównanie czujników ciśnienia, żyroskopów i akcelerometrów


Pitlab

Pomocna odpowiedź

wartość temperatury również odczytuje z czujnika i wyświetlam na wyświetlaczu jest ona podobna do tej z czujnika DS18B20.

przy podstawieniu wartości ze strony 13 czujnik pokazuje niewłaściwa temperaturę i ciśnienie, ale tylko dlatego że mam inne współczynniki kalibracji

poprawienie UT nic nie dało

wartość ciśnienia zmienia się tylko jest zawyżona o jakieś 30hPa od ciśnienia właściwego

Link do komentarza
Share on other sites

przy podstawieniu wartości ze strony 13 czujnik pokazuje niewłaściwa temperaturę i ciśnienie, ale tylko dlatego że mam inne współczynniki kalibracji

Współczynniki też koniecznie trzeba podstawić na te przykładowe wtedy zweryfikujesz poprawność obliczeń.

Jest ich kilka, ale to dwie minuty roboty.

Link do komentarza
Share on other sites

podstawiłem i rzeczywiście zawyża wartość ciśnienia o ponad 40hPa ( wskazuje teraz 740.6hPa)

zauważyłem że błąd wynika z niedokładności wyliczeń np. X2 w wyliczaniu B5 jest większe o jeden gdyż rzeczywista wartość liczby jest -2343,99, a mikrokontroler zapisuje tylko liczby całkowite i pokazuje -2343 a nie -2344. im dalej w wyliczeniach tym błąd rośnie

Link do komentarza
Share on other sites

Miałem analogiczny problem, jedna zmienna różniła się o 1, już nie pamiętam która. Dłubałem dotąd przy tej linii obliczeń aż zaczęło się liczyć tak jak w przykładzie. Niestety nie znam na tyle dobrze C aby zrozumieć przyczynę takiego zachowania się kompilatora. Praktycznie wszystkie operacje robię na floatach i nie mam doświadczenia z liczbami całkowitymi. Dzisiaj nie mam swojego kodu przed oczami i nie mogę porównać, ale coś mi się kojarzy że u mnie pomogło rozbijanie operacji na mniejsze bloki i ogólnie kombinowanie z różnymi próbami zapisu tego samego wyrażenia.

  • Lubię! 1
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

1. Jak masz << 2 czyli przesunięcie bitowe to nie wiem czy kompilator nie zmieni liczby float na int (w końcu w float nie ma przesunięcia bitowego...). Powinieneś to zamienić na * 4.0f

2. Jak używasz liczb całkowitych to użyj fixedpoint math

3. Pamiętaj też o kolejności działań. Bez sensu jest robić (b7/b4) <<1. Powinno być ((b7<<1)/b4). Czasami będziesz potrzebował liczb 64bitowych żeby zmieścić wynik. (Oczywiście to się nie tyczy liczb float, bo tam nie tracisz dokładności w ten sposób...)

  • Lubię! 1
Link do komentarza
Share on other sites

praca na liczbach typu float przyniosła poprawę, wyliczenia z noty katalogowej były podobne (różniły się tylko o 1 Pa)

widać że nie można ufać nocie katalogowej, w której wszystkie równania były prowadzone na liczbach rzeczywistych

[ Dodano: 07-08-2011, 03:41 ]

czujnik jest niezbyt dokładny jeśli chodzi o mierzenie wysokości, skacze w granicach delta0.5m

😖😕

[ Dodano: 07-08-2011, 03:47 ]

dziękuje bardzo za pomoc

Link do komentarza
Share on other sites

Pitlab mam pytanie odnośnie akcelerometrów. W jaki sposób obliczasz kąt odchylenia od danej osi? Chodzi mi dokładniej o to czy uwzględniasz przyspieszenie związane z poruszaniem się obiektu?

Link do komentarza
Share on other sites

W jaki sposób obliczasz kąt odchylenia od danej osi? Chodzi mi dokładniej o to czy uwzględniasz przyspieszenie związane z poruszaniem się obiektu?

W tej chwili obliczenia są jeszcze dosyć proste i nie uwzględniają ruchu obiektu. Robię transformację układu współrzędnych żyroskopów i całkuję uzyskane prędkości kątowe. Tak uzyskany wynik przepuszczam przez filtr komplementarny razem z kątami wyliczonymi z akcelerometrów w ten sposób kasując dryft żyroskopów.

Finalnie dążę do uzyskania AHRSa, który będzie analizował ruch w przestrzeni 3D i wtedy będzie można mówić o uwzględnianiu przyspieszeń, ale to jest trochę dalsza przyszłość.

Link do komentarza
Share on other sites

Tak uzyskany wynik przepuszczam przez filtr komplementarny razem z kątami wyliczonymi z akcelerometrów w ten sposób kasując dryft żyroskopów.

A czy przyspieszenie całego obiektu nie powoduje powstanie błędów przecież przyspieszenie obiektu dodaje się do przyspieszenia grawitacyjnego co zmienia sumę geometryczną wartości przyspieszeń?

Link do komentarza
Share on other sites

A czy przyspieszenie całego obiektu nie powoduje powstanie błędów przecież przyspieszenie obiektu dodaje się do przyspieszenia grawitacyjnego co zmienia sumę geometryczną wartości przyspieszeń?

Wpływa, ale tylko na wynik akcelerometrów. Filtr komplementarny obecnie ma współczynnik 0,002 dla akcelerometrów a reszta (1,0-0,002) podchodzi od żyroskopów. Przy przyspieszeniach z jakimi mam do czynienia nie jest to istotny problem.

Link do komentarza
Share on other sites

Mała aktualizacja. Oprogramowałem jeszcze dwa cyfrowe czujniki ciśnienia: MS5803 od Measurement Specialist oraz MPL3115 od Freescale. Wyniki pomiarów dodałem do artykułu. Na razie nie miałem tyle czasu aby robić testy temperaturowe, więc na razie tylko W-test i porównanie wartości szumu statycznego.

Tutaj jest rozszerzony i trochę przeredagowany artykuł z porównaniem parametrów czujników ciśnienia

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.