Celem projektu było zbudowanie prostego altimetru, który zapisywałby tylko największą wysokość i sygnalizował to przy pomocy buczka.
W projekcie zastosowano następujące podzespoły:
Czujnik ciśnienia bezwzględnego MPX4101A firmy Freescale (poprzednio Motorola)
Mikrokontroler Atmel ATtiny45
Buczek
Bateria 12V typu "N"
Sprzęt
Konstrukcja urządzenia jest bardzo prosta.
Wyjście przetwornika ciśnienia jest podłączone bezpośrednio do wejścia analogowego mikrokontrolera Tiny45.
Wyjście PB4 z mikrokontrolera tiny45 jest podłączone do buczka.
Wyjście PB0 mikrokontrolera 45 wyprowadzone jest do złącza I wykorzystywane jest jako wyjście szeregowe (przekonwertowane do poziomu RS232 przez znajdujący się poza płytka drukowana przesuwnik poziomu MAX232)
78L05 i kondensatory stanowią regulator napięcia które jest potrzebne dla trzech podzespołów.
Układ zmieścił się na jednostronnej płytce drukowanej.
Oprogramowanie
Podstawowe funkcje
Wyjście analogowe układu MPX4101A jest cokolwiek zaszumione. Gdy obserwować dane przy częstotliwości próbkowania około 100-200 Hz, widać zmiany wartości na dwóch bitach przy stacjonarnym ciśnieniu na czujniku. Tak więc oprogramowanie musi realizować funkcję filtracji. Proste uśrednianie wielu działa jako filtr dolnoprzepustowy, jednakże wskazane było opracowanie lepszego rozwiązania.
Na podstawie artykułu o przetwarzaniu sygnałów z altimetrów autorstwa Davida Schultza opublikowanego w R&D at NARAM 2002.zastosowano opisany tam filtr rekursyjny. Zwiększono częstotliwość próbkowania dwukrotnie i zwiększono ilość bitów części ułamkowej..
Po osiągnięciu apogeum w pamięci NVRAM zapisywane są trzy wartości: wartość ciśnienia na poziomie ziemi, wartość ciśnienia w apogeum oraz czas jaki upłynął od startu do osiągnięcia apogeum. Po włączeniu urządzenia te trzy wartości używane są do obliczenia wysokości ostatniego lotu.
Obliczenia wysokości
Przyjemnie jest gdy altimetr raportuje osiągniętą wysokość bezpośrednio po locie. Aby to uzyskać należy napięcie zamienić na ciśnienie a następnie na wysokość..
Przetwornik analogowo-cyfrowy
Przetwornik analogowo-cyfrowy znajdujący się w Tiny45 ma rozdzielczość 10 bitów czyli 0.0049V na każdy krok.
Ciśnienie
Karta katalogowa przetwornika ciśnienia MPX4101 podaje następujący wzór służący przeliczaniu napięcia na ciśnienie:
Vout = Vs * (0.01059 * P - 0.152)
Gdzie P jest ciśnieniem w kilopaskalach
Obliczenie wysokości
Istnieje szereg źródeł omawiających obliczenia wysokości. Niektóre zawierają tablice, a inne wzory. Oto jest jeden z dostępnych wzorów:
Wysokość = (10^(log(P/P_0)/5.2558797)-1)/-6.8755856*10^-6.
gdzie P jest ciśnieniem w kilopaskalach, a P_0 jest ciśnieniem na poziomie morza.
W pamięci program zbudowana została tablica. Do wygenerowania tablicy wykorzystano program napisany w języku Perl. Pełna tablica dla przetwornika o rozdzielczości 10 bitów zajmuje 2 kB pamięci, a mikrokomputer ma tej pamięci tylko 4 kB. Tabela posiada co ósmą wartość, a między nimi dokonywana jest interpolacja liniowa. Ekstrapolacja wprowadza błąd nie większy niż 30 cm.
Raportowanie
Przy włączeniu zasilania altimetr generuje długi dźwięk, a następnie raportuje ostatnia zapamiętaną wysokość. Raportowanie odbywa się w kodzie Morse’a (powolnym).
Po zakończeniu lotu nowa wysokość jest obliczana i jest raportowana w sposób ciągły aż do wyłączenia zasilania.
Glen Overby
Całość projektu jest opisana na http://reality.sgiweb.org/overby/rockets/Simple_Altimeter/index.html
W projekcie zastosowano następujące podzespoły:
Czujnik ciśnienia bezwzględnego MPX4101A firmy Freescale (poprzednio Motorola)
Mikrokontroler Atmel ATtiny45
Buczek
Bateria 12V typu "N"
Sprzęt
Konstrukcja urządzenia jest bardzo prosta.
Wyjście przetwornika ciśnienia jest podłączone bezpośrednio do wejścia analogowego mikrokontrolera Tiny45.
Wyjście PB4 z mikrokontrolera tiny45 jest podłączone do buczka.
Wyjście PB0 mikrokontrolera 45 wyprowadzone jest do złącza I wykorzystywane jest jako wyjście szeregowe (przekonwertowane do poziomu RS232 przez znajdujący się poza płytka drukowana przesuwnik poziomu MAX232)
78L05 i kondensatory stanowią regulator napięcia które jest potrzebne dla trzech podzespołów.
Układ zmieścił się na jednostronnej płytce drukowanej.
Oprogramowanie
Podstawowe funkcje
Wyjście analogowe układu MPX4101A jest cokolwiek zaszumione. Gdy obserwować dane przy częstotliwości próbkowania około 100-200 Hz, widać zmiany wartości na dwóch bitach przy stacjonarnym ciśnieniu na czujniku. Tak więc oprogramowanie musi realizować funkcję filtracji. Proste uśrednianie wielu działa jako filtr dolnoprzepustowy, jednakże wskazane było opracowanie lepszego rozwiązania.
Na podstawie artykułu o przetwarzaniu sygnałów z altimetrów autorstwa Davida Schultza opublikowanego w R&D at NARAM 2002.zastosowano opisany tam filtr rekursyjny. Zwiększono częstotliwość próbkowania dwukrotnie i zwiększono ilość bitów części ułamkowej..
Po osiągnięciu apogeum w pamięci NVRAM zapisywane są trzy wartości: wartość ciśnienia na poziomie ziemi, wartość ciśnienia w apogeum oraz czas jaki upłynął od startu do osiągnięcia apogeum. Po włączeniu urządzenia te trzy wartości używane są do obliczenia wysokości ostatniego lotu.
Obliczenia wysokości
Przyjemnie jest gdy altimetr raportuje osiągniętą wysokość bezpośrednio po locie. Aby to uzyskać należy napięcie zamienić na ciśnienie a następnie na wysokość..
Przetwornik analogowo-cyfrowy
Przetwornik analogowo-cyfrowy znajdujący się w Tiny45 ma rozdzielczość 10 bitów czyli 0.0049V na każdy krok.
Ciśnienie
Karta katalogowa przetwornika ciśnienia MPX4101 podaje następujący wzór służący przeliczaniu napięcia na ciśnienie:
Vout = Vs * (0.01059 * P - 0.152)
Gdzie P jest ciśnieniem w kilopaskalach
Obliczenie wysokości
Istnieje szereg źródeł omawiających obliczenia wysokości. Niektóre zawierają tablice, a inne wzory. Oto jest jeden z dostępnych wzorów:
Wysokość = (10^(log(P/P_0)/5.2558797)-1)/-6.8755856*10^-6.
gdzie P jest ciśnieniem w kilopaskalach, a P_0 jest ciśnieniem na poziomie morza.
W pamięci program zbudowana została tablica. Do wygenerowania tablicy wykorzystano program napisany w języku Perl. Pełna tablica dla przetwornika o rozdzielczości 10 bitów zajmuje 2 kB pamięci, a mikrokomputer ma tej pamięci tylko 4 kB. Tabela posiada co ósmą wartość, a między nimi dokonywana jest interpolacja liniowa. Ekstrapolacja wprowadza błąd nie większy niż 30 cm.
Raportowanie
Przy włączeniu zasilania altimetr generuje długi dźwięk, a następnie raportuje ostatnia zapamiętaną wysokość. Raportowanie odbywa się w kodzie Morse’a (powolnym).
Po zakończeniu lotu nowa wysokość jest obliczana i jest raportowana w sposób ciągły aż do wyłączenia zasilania.
Glen Overby
Całość projektu jest opisana na http://reality.sgiweb.org/overby/rockets/Simple_Altimeter/index.html
Fajne? Ranking DIY
