Elektronika modelarska

W komputerze pokładowym AutoPitLot mam możliwość włożenia jednocześnie 3 różnych modułów. Daje to szansę przetestowania w tych samych warunkach kilku różnych czujników i porównania ich parametrów. Niedawno zrobiłem eksperymentalny moduł cyfrowy All-In-One zawierający sporą grupę czujników z interfejsem I2C i mogę porównać czujniki cyfrowe z analogowymi podpiętymi do 16-bitowego przetwornika A/C.

Konfiguracja do testu czujników ciśnienia

Na początek weźmy czujniki ciśnienia. Mam dostępne: analogowy MPXH6115 oraz cyfrowe: BMP085, HP03SA MS5803 i MPL3115. Ponieważ czujniki BMP085 i HP03S mają ten sam adres na magistrali I2C: 0xEE więc bez większych komplikacji nie mogę ich używać jednocześnie. Będę wiec porównywał je parami z analogowym MPX6115. Żeby nie komplikować zbyt bardzo algorytmów finalnie powstały 3 wersje modułu All-In-One z różnymi zestawami czujników. Za wyjątkiem MPL3115, który został zamontowany metodą na pająka, wszystkie czujniki mają swoje miejsce na płytce.

 

Test W

Zacznijmy od testu "W" jak winda jeżdżąca między parterem a 10-tym piętrem. Żeby móc lepiej porównać wysokość w punktach odniesienia, robię dwa zjazdy dające na wykresie literę W :-). Na osi Y jest wysokość w metrach, w osi X numer próbki. Schodki na wykresie to wsiadający współpasażerowie. Przy dojeżdżaniu do zadanego poziomu winda zwalnia, co daje zaokrąglone zbocze wykresu. Ruch rozpoczyna się na pełnej prędkości. Wykres zielony to MPXV6115, żółty to BMP085 pracujący w trybie bez uśredniania danych.

Porównanie czujników MPXH6115 i BMP085

Dane źródłowe: http://www.pitlab.pl/autopitlot/log/W-Test_110721_79_BMP085.log

Pierwsza konkluzja to BMP085 ma wielokrotnie większy szum statyczny.

 

 

Kolejny czujnik HP03S (żółty wykres) wzgledem MPXV6115 (zielony).

Porównanie wskazań czujników MPXH6115 i HP03S

Dane źródłowe: http://www.pitlab.pl/autopitlot/log/W-Test_110721_92_HP03S-OK.log

Test W daje wyniki zbliżone do poprzedniego czujnika, odrobinę zaniżone wskazanie MPX6115 i wyraźnie mniejszy szum niż w czujniku cyfrowym.

 

Następny czujnik MS5803 (filoetowy) w porównaniu do MPXV6115 (zielony). Czujnik MS jest ustawiony na najmniejsze możliwe uśrednianie sygnału, czyli nadpróbkowanie 256 próbek.

Porównanie czujnikó ciśnienia MPXV6115 i MS5803

Dane źródłowe: http://www.pitlab.pl/autopitlot/log/W-Test_111024_12_MPXV6115-MS5803.log

Tutaj MPX mocno zaczął płynąć (duża różnica temperatur miedzy ciepłym mieszkaniem a chłodną klatkę schodową. Test był robiony w październiku), natomiast MS5803 zachowuje się podobnie do poprzednich cyfrowych czujników, czyli jest stabilny temperaturowo i mocno szumi.

 

Ostatni czujnik MPL3115 (żółty wykres) w porównaniu do MPXV6115 (zielony) oraz HP03S (czerwony). Czujnik nie ma włączonego nadpróbkowania (oversamplingu). Ten czujnik posiada możliwość liczenia wysokości względem podanego ciśnienia referencyjnego. W teście nie miałem ochoty pisać procedur  ustawiania ciśnienia, więc wysokość jest  mierzona względem ciśnienia standardowego, dlatego jest wyższa od innych czujników.

Porównanie czujników ciśnienia MPXV6115, HP03S i MPL6115

Dane źródłowe: http://www.pitlab.pl/autopitlot/log/W-Test_MPL3115_111025_70.log

 

Niestety ten czujnik generuje największy szum spośród wszystkich testowanych.

 

Amplituda szumu

Na wykresach testu W widać że czujniki szumią w warunkach statycznych. Warto przyjrzeć się bliżej szumowi, bo jego kształt niesie sporo informacji o tym jak filtrować zaszumiony sygnał.

W pierwszej kolejności porównajmy parę czujników BMP085 (niebieski) i MPXV6115 (czerwony). Jeżeli przyjrzeć się w powiększeniu fragmentowi danych (200 próbek rejestrowanych z częstotliwością 5Hz) to widać że krótkoterminowy szum (z kilku sąsiednich próbek) czujnika BMP085 to 1m i średniookresowy (ze wszystkich 200 próbek) to 2,3m. Analogicznie dla czujnika MPX6115 (czerwony) szum krótkoterminowy to 0,2m i średnioterminowy 1,2m. Na wykresie "Alti" to MPX6115, "AltiA" to BMP085.

Szum krótkookresowy czujników BMP085 i MPXH6115

 

 

Tak wygląda szum krótkoterminowy HP-03S (czerwony) w porównaniu do MPXV6115 (niebieski) wynoszący ok. 0,8m i średnioterminowy wynoszący 1,7m. Jest lepiej niż dla BMP085 ale ciaągle daleko do MPXH6115.

Porównanie szumu czujników MPXH6115 i HP03S

 

W przypadku czujnika MS5803 szum krótkookresowy przy najmniejszym możliwym nadpróbkowaniu 256 pomiarów wynosi ok. 1,2m w porównaniu do 0,2m dla MPXV6115. Szum średniokresowy z wszystkich 200 próbek jest niewiele większy i wynosi 1,4m. To pokazuje że zastosowanie nadpróbkowania powinno znacznie wygładzić wskazania wysokości. Czujnik umożliwia nadpróbkowanie do 4096 pomiarów przy czasie pomiaru trwającym maksymalnie 9ms.

Szum krótkookresowy czujnika MS5803

 

Na koniec porównanie szumu aż trzech czujników MPL3115 (żółty) HP03S (czerwony) i MPXV6115 (niebieski). Szum krótkookresowy czujnika MPL3115 wynosi ok 3,5m. Szum średniookresowy z 200 próbek to 5m. Dopiero po uśrednieniu 8 próbek wartość szumu zbliża się do poziomu szumu czujnika HP03S.

Szum czujników MPL3115, HP03S i MPXV6115

 

Test dryftu temperaturowego

Czujniki razem z komputerem rejestrującym zostały umieszczone w lodówce, potem włożone do piekarnika. Opisy tak jak wyżej, "Alti" to MPX6115, "AltiA" to BMP085. Na dolnym wykresie temperatura w °C zarejestrowana przez 2 czujniki: pomarańczowy to LM50, niebieski to czujnik wbudowany w BMP085. Czujniki temperatury nie są kalibrowane. Różnice w prędkości reakcji na zmianę temperatury wynikają z różnych stałych czasowych czujników. Czujnik LM50 jest na spodniej stronie PCB więc reaguje wolniej.

Temt temperaturowy czujników MPXH6115 i BMP085

Dane źródłowe: http://www.pitlab.pl/autopitlot/log/TempTest_110721_80.zip

Czujnik MPXH6115 pomimo analogowego obwodu kompensującego płynie 24 m przy zmianie temperatury o 44°C. Pod tym względem indywidualnie kalibrowany BMP jest znacznie lepszy bo odpłynął zaledwie 10 m.

 

 

Poniżej wyjątkowo porównanie obu cyfrowych czujników BMP085 i HP03S zarejestrowane jednocześnie na dwóch komputerach. W tym teście próbowałem robić kompensację czujnika MPXH6115 i na wskutek błędu dane nie nadają się do publikacji.

Widać że czujnik BMP085 zdecydowanie lepiej sobie radzi z kompensacją temperaturową. Przy rozpiętości temperatury wynoszącej 72°C BMP085 ma dryft ok. 3,5m a HP03S 26m. Po czujniki MPXH6115 można tutaj oczekiwać ok. 34m.

Dryft temperaturowy czujników BMP085 i HP03S

Finalnie udało mi się zrobić programową kompensację temperatury czujnika MPXH6115 i dla rozpiętości temperatur wynoszącej 81,6°C uzyskałem taki wykres. Linią niebieską jest oznaczony czujnik skompensowany, linią żółtą nieskompensowany. Jako odniesienie jest czujnik BMP085. W przypadku tego czujnika można jeszcze zmniejszyć całkowity dryft z 26 m na 20 m. Obecnie użyty współczynnik jest uśredniony dla grupy kilku czujników. Widoczna duża szpilka wysokiego ciśnienia (małej wysokości) spowodowana jest zakłóceniem natury pneumatycznej.

Kompensacja temperaturowa czujnika MPXH6115

Rozkład temperatury w czasie testu

 

Na koniec jeszcze pokażę jak wygląda sygnał z czujnika ciśnienia różnicowego dla powyższego testu temperaturowego. Czujnik nie jest skalibrowany, więc jego wskazania są nierzetelne, nie mniej widać jak się zmieniają w funkcji temperatury. Czujnik jest wyskalowany w m/s. Ten test nie jest najszczęśliwszy, ponieważ prędkość jest pierwiastkiem z ciśnienia, więc jest funkcją nieliniową. Wypadało by  porównywać zmiany ciśnienia.

test temperaturowy czujnika MPXV5004DP

Lataj bezpiecznie swoim UAV

Logowanie

Subskrypcja