Do czego to służy? - symulator modelarski FMS (Arduino)
Pomysł na wykonanie tego urządzenia pojawił się w trakcie budowy pierwszego zdalnie sterowanego modelu samolotu. Brak doświadczenia sprawiał, że nie bardzo potrafiłem w rozsądny sposób zaplanować budowę modelu, co owocowało jej niezmiernym wydłużeniem, czyniąc model jeszcze bardziej cennym w moich oczach.
Gdy jednak prace stały się na tyle zaawansowane, że data oblotu zaczęła być bardziej określona niż matematyczny symbol nieskończoności, pojawiła się naturalna wątpliwość: tyle godzin pracy, a z braku doświadczenia model zapewne w pierwszych kilku minutach zostanie rozbity.
Aby choć trochę zmniejszyć prawdopodobieństwo takiego scenariusza, postanowiłem poszukać jakiegoś symulatora, który pozwoliłby poćwiczyć sterowanie modelem. Komercyjne programy symulatorów są jak najbardziej dostępne, ale budując swój pierwszy model, nie zakładałem jeszcze, że jest to najważniejsze moje hobby, w które chciałbym inwestować nadzwyczajne środki. Zwłaszcza że poszukiwania zaowocowały znalezieniem darmowego programu o nazwie FMS – Flying Model Simulator. Jednak w tym przypadku nie wystarczy ściągnąć program.
Aby opanować podstawowe odruchy pilotażu, trzeba mieć manipulator odpowiadający ergonomią typowym nadajnikom RC stosowanym w modelarstwie. Aby uzyskać kontrolę, czy to nad prawdziwym samolotem, czy też nad jego miniaturową kopią – modelem, trzeba kontrolować przynajmniej trzy z czterech parametrów.
Parametry samolotu RC (3/4 są niezbędne do kontrolowania):
- obroty silnika
- położenie steru wysokości
- położenie steru kierunku
- położenie lotek.
Wymieniłem cztery parametry, z czego trzy ostatnie związane są z elementami aerodynamicznymi, służącymi do kontroli położenia samolotu w przestrzeni. Ale przecież napisałem, że minimum to trzy z nich. Tak, do kontroli kierunku zasadniczo wystarczy bądź to ster kierunku, bądź to lotki. By jednak wykonać prawidłowy zakręt, pilot musi w skoordynowany sposób operować położeniem wszystkich trzech powierzchni sterowych: steru kierunku, lotek i steru wysokości – inaczej samolot zacznie tracić wysokość – dojdzie do takich zjawisk, jak ześlizg na skrzydło bądź „wyślizg”.
W modelarstwie jednak, zwłaszcza w modelach szkolnych, by uprościć konstrukcje, rezygnuje się z pełnego zestawu powierzchni sterowych – w zasadzie regułą jest, że prosty, szkolny model nie ma lotek, które znacznie komplikują wykonanie skrzydła…
Wróćmy jeszcze do problemu kontroli czterech parametrów: obrotów silnika oraz położenia powierzchni sterowych. W modelarstwie lotniczym przyjęło się wykorzystywać aparaturę wyposażoną w parę manetek – joysticków, z których każda może poruszać się w dwóch osiach: x i y. Daje nam to możliwość kontrolowania właśnie tych czterech nastaw. Warto jeszcze nadmienić, że w standardowej aparaturze manetka lewa – w osi y nie powraca samodzielnie do położenia neutralnego (neutrum) – krótko mówiąc, obroty silnika są niejako nastawą stabilną. Jest to wyjątek, gdyż już w osi x ta sama manetka samodzielnie powraca do neutrum, również prawa manetka w obu osiach samodzielnie powraca do położenia neutralnego.
Jak to działa? - symulator modelarski FMS na Arduino
Do wykonania manipulatora potrzebny był zatem „joystick”. Przypomniało mi się, że widziałem coś takiego w ofercie AVT. Po krótkich poszukiwaniach trafiłem na element JV1603N-B10K KPL (https://sklep.avt.pl/product/search?query=JV1603N-B10K+KPL). Cena… no bomba!
W szufladzie spoczywało Arduino Uno – idealnie proste rozwiązanie na to, by nastawy czterech potencjometrów przesłać do komputera za pośrednictwem emulowanego łącza RS232. Tutaj warto nadmienić, że
FMS potrafi współpracować z manipulatorami, które wysyłają dane w następującym formacie:
- prędkość transmisji 19200 bit/s,
- bajt o wartości 0xFF jest bajtem synchronizującym – oznacza początek pakietu,
- kolejne bajty to kolejne kanały – dopuszczalne wartości to od 0x00 do 0xFE – 0xFF nie może wystąpić, bo spowoduje utratę synchronizacji.
Z tą wiedzą, w ciągu jednego wieczoru powstało urządzenie z fotografii tytułowej – dwa joysticki przylutowane do PCB i podłączone „kynarami” do Arduino. Zadziałało!
I pewnie gdybym tylko ja sam miał ćwiczyć „latanie”, to wygrałoby lenistwo i układzik pozostałby w tej „szlachetnej” formie już na zawsze… ale moim kolejnym katastrofom z wypiekami na twarzy przyglądał się mój syn, który jednak miał awersję do tak prymitywnego rozwiązania. Nie pozostało mi nic innego, jak dobrać jakąś obudowę i zaprojektować prostą płytkę drukowaną. Tak powstało urządzonko, które ostatecznie zdecydowałem zaprezentować Czytelnikom.
Schemat układu pokazany jest na rysunku 1. Układ od strony elektronicznej składa się z pięciu filtrów RC, dwóch joysticków oraz przełącznika. Zacznijmy od filtru C5, C7, C8, R5 – jego zadaniem jest doprowadzenie w miarę stabilnego napięcia do czterech potencjometrów. Napięcie zasilające potencjometry jest równocześnie napięciem referencyjnym dla przetwornika ADC mikrokontrolera (pin 30 płytki Arduino Uno). Sygnał z potencjometrów jest doprowadzony do wejść przetwornika ADC przez kolejne filtry RC.
Stosowanie takich filtrów pozytywnie wpływa na pracę układu, gdyż kondensatory wyjściowe (np. C1) stanowią niskoimpedancyjne źródło napięcia zasilające wewnętrzny układ Sample-Hold mikrokontrolera.
Dodatkowo układ RC zabezpiecza wejście mikrokontrolera przed ewentualnymi wyładowaniami elektrostatycznymi. Przełącznik trójpozycyjny SW1 ma dodatkowe, zewnętrzne rezystory pull-up: R10 i R13. Przełącznik ten (np. MTS103 z oferty AVT) generalnie nie jest elementem przeznaczonym do pracy z malutkimi prądami rzędu dziesiątek mikroamperów (około 100...140μA według karty katalogowej mikrokontrolera), dlatego zewnętrzne rezystory zwiększają prąd styków do wartości około 1mA, co pozytywnie wpływa na pewność działania układu. Z kolei szeregowe rezystory mają za zadanie chronić piny na wypadek wyładowań elektrostatycznych. I to w zasadzie wszystko… Może tylko nie wiadomo, do czego służy przełącznik SW1?
Otóż jego rolą jest dezaktywacja bądź to kanału lotek, bądź to kanału steru kierunku. Pozwala to ćwiczyć lot modelem pozbawionym jednego z tych dwóch elementów. Podstawową wadą proponowanej konstrukcji jest to, że zastosowane joysticki samoczynnie powracają do położenia neutralnego, co jak już wcześniej napisałem, nie jest zgodne z zachowaniem manetki lewej w prawdziwej aparaturze.
Montaż i uruchomienie symulatora modelarskiego FMS na Arduino
Aby maksymalnie ograniczyć koszt, płytka, pokazana na rysunku 2, została zaprojektowana jako jednostronna, a do budowy wykorzystałem elementy THT. Niezależnie, czy zastosowane będą kondensatory foliowe, czy ceramiczne (C7 to wyjątek – kondensator elektrolityczny) – należy je umieścić w sposób taki, aby leżały na płytce.
Montaż zaczynamy od rezystorów, następnie montujemy kondensatory. W tym momencie najwygodniej jest wlutować listwy „goldpin” do podłączenia PCB z Arduino. Listwy te są typu SMD, co pozwoliło na podłączenie Arduino od strony druku. Listwy należy podzielić na cztery odcinki o odpowiedniej liczbie pinów(1×6, 2×8 i 1×10). Lutujemy najpierw dwa skrajne piny, starając się ustawić listwy w linii i prostopadle do PCB.
Jeśli wszystko wygląda dobrze, możemy przymierzyć moduł Arduino, ale… nie wciskajmy go na listwy! Przy przylutowanych tylko dwóch pinach obciążenie mechaniczne przy demontażu Arduino będzie zapewne wystarczające, by… urwać piny, co też przytrafi ło się autorowi! Jeśli złącza Arduino trafiają na „goldpiny”, możemy odłożyć Arduino i przylutować pozostałe piny do PCB. Następnie lutujemy przełącznik i joysticki.
I to wszystko. Fotografie 1, 2 pokazują model.
Do działania układ wymaga jeszcze programu. Szkic, który należy załadować do Arduino, to dostępny w Elportalu wśród materiałów dodatkowych do tego numeru plik FMS_Light_1v1.ino. Starałem się umieścić obszerne komentarze w kodzie – myślę, że większość Czytelników po lekturze cyklu o Arduino i po przeczytaniu dotychczasowego opisu sama może sobie wyobrazić, jak powinien wyglądać odpowiedni program.
Płytka została zaprojektowana z uwzględnieniem wymiarów obudowy Z78. Obudowa ta składa się z dwóch części. Płytka jest montowana do płytszego elementu stanowiącego jakby pokrywę. Aby wyznaczyć pozycje trzech otworów, można się posłużyć prostym szablonem szablon_wiercen_w_obudowie.odg. – rysunek 3 (dostępny też w Elportalu).
W warunkach modelarskich szablon ten był przeniesiony na cienką sklejkę, w której następnie wywiercono cztery otwory ϕ 3mm i trzy ϕ 1...2mm. Szablon ten następnie został przykręcony w miejsce PCB – mniejsze otwory były otworami prowadzącymi dla wiertarki stołowej. Gdy pokrywa była nawiercona, otwory dla joysticków zostały zaznaczone cyrklem, a następnie wszystkie trzy otwory zostały rozwiercone do średnicy 7mm.
Kolejnym krokiem było wycięcie otworów zewnętrznych piłką włośnicową, a ostateczny kształt został nadany pilnikiem. Jest to jednak tylko propozycja. Po przykręceniu PCB (tutaj konieczne są tulejki dystansowe) i sprawdzeniu, czy joysticki poruszają się swobodnie, obie części obudowy zostały przymierzone ze sobą w celu określenia pozycji wycięć na złącze USB i gniazdo zasilania (jest ono wprawdzie niewykorzystane, ale pozycja Arduino UNO niestety wymusza wycięcie także otworu pod to złącze).
Przejdźmy do symulatora: FMS można pobrać ze strony https://modelsimulator.com/, przy czym ja zawsze korzystałem z wersji Beta (https://modelsimulator.com/beta/fmsdisk01.exe). Program powstał już dość dawno temu i niestety został przez autorów porzucony. Mamy więc spartańską grafikę i bardzo uproszczone odwzorowanie mechaniki lotu, jednak do złapania bakcyla i początkowej nauki powinno wystarczyć. Szczegółowy opis instalacji i konfiguracji zawarłem w oddzielnej prezentacji, też dostępnej w Elportalu.
Miłej zabawy!