
WSTĘP
Chciałbym podziękować wszystkim pomocnym mi użytkownikom z działu "Mikrokontrolery ARM" którzy przyczynili się do powstania tej pracy. W szczególności Freediemu Chopinowi

Cześć,
Dzisiaj chciałbym wam zaprezentować urządzenie które powstało w ramach mojej pracy inżynierskiej na Politechnice Rzeszowskiej. Pełny temat pracy brzmiał: "Rozwiązania Układowe Systemów Kontroli Parametrów Lotu Paralotni". Została ona przygotowana w Zakładzie Systemów Elektronicznych i Telekomunikacyjnych na Wydziale Elektrotechniki i Informatyki. Głównym motywem który skłonił mnie do wymyślenia sobie takiego tematu są ceny fabrycznych przyrządów dostępnych na rynku. Za bardzo podstawowe urządzenie które funkcjonuje tylko jako wysokościomierz i wariometr należy wydać od 700 do nawet 1000pln. Biorąc pod uwagę, że faktyczny koszt produkcji w warunkach chińskich wynosi nie więcej niż 150pln to jest to czyste złodziejstwo wynikające z tego, że paralotniarstwo jest jednak sportem niezbyt masowym. Aby tego było mało należy dodać iż takie samo urządzenie wzbogacone o odbiornik GPS i kilka funkcji z niego wynikających może kosztować już 2000pln wzwyż pomimo, że koszty produkcji wzrastają o kilka procent.
Zanim przejdziemy dalej, muszę opowiedzieć co nieco na temat licencji użytkowania niniejszych materiałów. Wszystko to udostępniam na zasadach Open-Source, ale tylko i wyłącznie do użytku niekomercyjnego! Zabraniam używania kodu źródłowego, czy wzoru płytki w zamkniętych opracowaniach komercyjnych. Szczegółowo zostało to omówione w dołączonych na końcu warunkach licencyjnych w pliku tekstowym.
Na początek chciałbym zachęcić zainteresowanych do zapoznania się z krótkim fragmentem teoretycznej części mojej pracy, który został zamieszczony na elektrodzianym hostingu. Dygresja Lotnicza (plik pdf) . Opisałem w nim skrótowo paralotniarstwo, co pozwoli Wam zrozumieć sens pracy mojego wariometru i przeprowadzanych przez niego pomiarów i rejestracji.
Po tym wprowadzeniu pora przejść do właściwego urządzenia

SPECYFIKACJA URZĄDZENIA
1. Mikrokontroler STM32F107VB (dokładna specyfikacja na stronie producenta)
2. Czujnik ciśnienia MS5611 (Link)
3. Interfejs użytkownika zbudowany na Wyświetlaczu zgodnym z HD44780 o rozdzielczości 4x16 oraz pięciu przysikach
4. Wyprowadzony na złącze DB-9 port szeregowy o poziomach RS232 (po Maxie), mające służyć do przeprowadzania rejestracji na PC oraz w dalszej perspektywie do komunikacji z modułem GPS bądź jako terminal tekstowy
5. Tzw. "złącze akcesoryjne", czyli wtyk DB-15 na którym znalazły się wyprowadzenia takich elementów uC jak: drugi port szeregowy (tym razem na poziomach TTL), magistrala SPI, magistrala CAN, wejścia/wyjścia analogowe i kilka innych. Ma to ułatwić podłączanie urządzeń zewnętrznych w przyszłości
7. Slot kart SD. Aktualnie niewykorzystywany
8. Oczywiście nie można zapomnieć o buzzerze piezoelektrycznym który jest najważniejszym i najbardziej podstawowym elementem każdego wariometru. Służy on do dźwiękowej prezentacji wskazań wariometru. Reszty (z wyświetlaczem włącznie) może nie być, ale on musi być

W sumie nic więcej nie trzeba tutaj wymieniać. Od strony sprzętowej jest to banalnie proste urządzenie, schodź ze względu na niektóre obudowy nieco skomplikowane w montażu. Główna siła leży w stworzonym oprogramowaniu sterującym

OPROGRAMOWANIE
Oprogramowanie zostało napisane w języku C przy pomocy środowiska Keil uVision. Należy nadmienić iż nie wykorzystuje ono bardzo nielubianej biblioteki STMF10x Standard Periphal Drivers, a jedynie pliki nagłówkowe zawierające definicję rejestrów oraz ich poszczególnych bitów, ułatwiające dość znacznie proces tworzenia oprogramowania. Kody źródłowe wraz z plikiem HEX są dołączone do tego postu, aczkolwiek bardziej przyjemniejsza w przeglądaniu wersja znalazła się na GitHubie. Przy pisaniu firmware starałem się bardzo aby miało ono charakter modułowy. Najpierw stworzyłem coś na miarę sterowników poszczególnych układów peryferyjnych takich jak np. port szeregowy. W dalszej części gdy pisałem funkcję obsługujące czujnik czy interfejs użytkownika nie odwoływałem się już bezpośrednio do sprzętu, tylko właśnie do nich. Ot taka namiastka STDFwLib

OFEROWANA FUNKCJONALNOŚĆ:
~~> Wariometr wraz z sygnalizacją akustyczną przez generowanie PWM na element piezoelektryczny
~~> Dwa wysokościomierze. Jeden z nich mierzy wysokość bezwzględną w oparciu o podane QNH, drugi może być resetowalny i podaje wysokość względną w odniesieniu do miejsca w którym miało to miejsce
~~> Stoper umożliwiający odliczanie czasu lotu
~~> Rejestracja skrajnych wartości pewnych parametrów. Masymalne wznoszenie, opadanie, przewyższenie (różnica pomiędzy wysokością startu a aktualną jeżeli jest ona większa), najwyżej podkręcony komin (różnica pomiędzy wykrytym punktem wejścia w noszenie a jego opuszczeniem) i jeszcze kilka innych
~~> Możliwość przeglądania zarejestrowanych parametrów, ich zapis oraz odczyt do pamięci FLASH
SPRZĘT (A DOKŁADNIE PCB)





Więcej zdjęć tutaj
No i tutaj wychodzą pierwsze poważniejsze niedoróbki mojego wariometru. Pierwszym błędem który popełniłem przy jego projektowaniu była zła kolejność czynności. Najpierw zaprojektowałem i wykonałem płytkę a dopiero potem próbowałem ją upchać w jakąś obudowę. Efekt tego widać na fotce na górze strony. Bateria nie zmieściła się do środka obudowy i musiała zostać przysposobiona w zewnętrznym pojemniku przyklejonym na SuperGlue do "głównej" obudowy. Obudowa musiała zostać pozbawiona przy pomocy dremela wszelakich plastikowych dystansów i innych wystających elementów. Inaczej urządzenie z wmontowanym czujnikiem i wyświetlaczem nie mieściło się do środka. Sam sensor znajduje się na zewnętrznej płytce PCB i właśnie w takiej postaci został zamówiony. Ze względu na jego małe wymiary nie chciałem się podjąć jego montażu. Dodatkowo na "płycie głównej" znajduje się złącze JTAG do programatora (ja używam ST-LinkV2), złącze 16 pinów do wyświetlacza (aczkolwiek magistrala jest 4 bitowa), MAX3232 oraz kilka pomniejszych elementów związanych z zasilaniem i taktowaniem mikro kontrolera. Lamint był robiony oczywiście na zamówienie przez firmę Satland, ponieważ wykonanie takiej płytki w warunkach domowych graniczy chyba z cudem

MOŻLIWOŚCI ROZWOJU PROJEKTU
Urządzenie w takiej formie w jakiej jest tutaj opublikowane nie wykorzystuje nawet 5% możliwości platformy. Specjalnie dobrałem z dużym zapasem mikrokontroler, aby w dalszym rozwoju projektu nie mieć problemów z brakiem zasobów czy wydajności. W przyszłości planuję dołożenie następujących "ficzersów"

1. Dołożenie odbiornika GPS i wyświetlanie takich parametrów jak kurs czy prędkość względem ziemi. Tutaj jedynym problemem jaki został zauważony to zakłócanie GPSa przez mikrokontroler a dokładnie pamięć Flash. Zbliżenie ich na odległość mniejszą niż 10cm powoduje całkowite zgubienie fixa, dlatego albo będę zmieniał platformę albo GPS będzie umieszczony na zewnątrz. Można jeszcze kopiować przy rozruchu cały program do pamięci RAM, stamtąd go wykonywać (tak jak to miało miejsce w Atari czy C64) a następnie wyłączyć pamięć Flash, ale jest to nieco podcieranie tyłka szkłem.
2. Napisanie biblioteki do obsługi plików IGC co umożliwi zapis przebiegu lotu w koszernym dla wszelakich zawodów pliku. Można by się też pokusić o zapis w formacie oprogramowania Matlab co umożliwi bardzo prosty import danych oraz jego bardzo dogłębną analizę

3. Zaprzęgnięcie do pracy algorytmów filtrów cyfrowych, oraz innych technik cyfrowego przetwarzania sygnału. W połączeniu ze zintegrowanymi przetwornikami Analogowo-Cyfrowymi da nam to pełnoprawny radiomodem który będzie dodatkowo kompatybilny z protokołem AX25 czyli jednocześnie z siecią APRS i Packet Radio. Umożliwi to przesyłanie danych telemetrycznych na żywo do stacji naziemnej. Akurat ten element może być wykorzystany nie tylko przez paralotniarzy.
4. Live Tracking przy zastosowaniu powyższego radiomodemu, sieci APRS i strony www.aprs.fi
5. Dołożenie kilku następnych czujników mierzących inne parametry. Może być to kompas elektroniczny podający rzeczywisty kurs magnetyczny, akcelerometr trójosiowy mierzący przeciążenia (coś dla fanów ostrej spirali i innego acro

6. Zaprojektowanie od nowa płytki PCB tak aby ładniej wpasowywała się w dostępne obudowy uniwersalne.
7. Wymyślenie innego sposobu zasilania urządzenia niż widoczna tam bateria 9V. Można by zrobić impulsową przetwornicę podwyższającą napięcie i zasilić wszystko z jednego paluszka 1.5V. Dodatkowo należy poprawić sposób sterowania buzzerem piezo w wariometrze, aktualnie jest on moim zdaniem trochę za cichy.
MOJE PODSUMOWANIE KONSTRUKCJI
Otwarcie przyznaje się do tego, że ten Wariometr nie jest urządzeniem w pełni funkcjonalnym. Oczywiście z punktu elektronicznego punktu widzenia jest OK, ale jego ergonomia nie jest do końca optymalna. Winę ponosi tutaj płytka drukowana którą zaprojektowałem w ten a nie inny sposób. Gdyby udało mi się umieścić źródło zasilania w jednej obudowie z wariometrem na pewno poprawiło by to sytuację. Projekt docelowo ma być zastosowany w klubie paralotniowym na naszej uczelni jako podstawowe urządzenie (tzn będziemy go wykonywać w kilku kopiach), ale dopiero po udoskonaleniu niedoróbek. Co będzie się w sumie sprowadzało do zaprojektowania płytki od nowa. Muszę też zmienić sposób sterowania brzęczykiem. Okazało się, że wydaje on zbyt ciche dźwięki ze względu na niskie napięcie sterujące. W nowym projekcie znajdzie się mostek H na 4 tranzystorach, co przy baterii 9V daje amplitudę 18V
ODSYŁACZE DO ZEWNĘTRZNYCH STRON WWW
Bardzo Ważne! Licencja na użytkowanie umieszczonych materiałów
Dyskuja toczącą się na paralotniowej grupie dyskusyjnej: pl.rec.paralotnie
Nieco inny opis na mojej elektrodzianej stronie WWW, Tam będą umieszczane wszelkie przyszłe nowinki związane z projektem
Galeria fotek związanych z projektem
Źródła oprogramowania na GitHubie (plik para-soft-testing_0.9.0.zip )
Z Paralotniowym Pozdrowieniem,
Mateusz SP8EBC
Akademicki Klub Lotniczy Politechniki Rzeszowskiej
Cool? Ranking DIY