Elektronika modelarska

Komputer pokładowy

Zagadnienia związane z komputerem pokładowym AutoPitLot

Wyświetlacz OLED o przekątnej zbliżonej do 1" umożliwia odczyt podstawowych parametrów stanu wielowirnikowca takich jak napięcie zasilania, ilość zużytej energii (w mAh), stan odbiornika GPS, bieżące pomiary kątów orientacji, prędkości kątowych, przyspieszeń, wysokości, prędkości pionowej, czasu i daty oraz numeru bieżącej wersji firmware.

Dodatkowo umożliwia zmianę nastaw regulatorów PID, przypisanie dowolnych parametrów regulatorów PID do kanałów 6 i 7, tak aby móc zmieniać je płynnie w locie.

 

Sterowanie zmianą odbywa się przy użyciu prawego drążka aparatury (lotki i wysokość). Wyświetlacz aktywny jest tylko gdy silniki są rozbrojone. Po uzbrojeniu wyłącza się aby niepotrzebnie nie obciążać procesora.

Wyświetlacz wykonany jest w technologii organicznych LED, przez co świeci się sam z siebie i jest dobrze widoczny nawet w słoneczny dzień. Niewielka masa i prosty interfejs komunikacyjny sprawiają że jest praktyczny w użyciu.

 

Tak wyglądają wyświetlacze z dwu różnych źródeł: RC Timer CRIUS CO-16 oraz Wide WN-103 różniące się nieznacznie rozmiarem i interfejsem użytkownika.

Wyswietlacze OLED

 

Aby kupiony zasilacz przystosować do pracy z komputerem pokładowym na magistrali I2C trzeba zrobić kilka zmian:

1) Dołożyć zestaw oporników identyfikujących moduł. Są to równolegle połączone 8k, 2k i 1k.  Wartość 8k nie jest dostępna w typoszeregu, więc stosuję równolegle 2 oporniki 16k. Zestaw może składać się z równolegle połączonych wartości 16+16+2+1 lub 16+16+2+2+2. Używam oporników o tolerancji 1%. Ewentualnie można użyć potencjometru, najlepiej połączonego z szeregowo z opornikiem tak aby zawęzić zakres regulacji.

 

2) Zapewnić zasilanie 3,3V, gdyż na porcie EX1 i EX2 komputera pokładowego jest wyprowadzone nie stabilizowane 5V. Wyświetlacz CRIUS ma już stabilizator, wyświetlacz Wide nie ma i trzeba dołożyć zewnętrzny.

 

3) Zapewnić pullup-y dla linii magistrali I2C. Są to 2 oporniki 4,7k (lub zbliżone w granicach 2 - 10k) między liniami SDA i SCL a napięciem 3,3V. W wyświetlaczu z RC Timera jest na płytce miejsce na pullup-y, ale podciągane do 5V. Zrobiłem "namiocik" montując oporniki jedną stroną na padach a drugą stronę połączone razem i podciągnięte kynarem do 3,3V ze stabilizatora.

 

4) Obwód resetowania. Wyświetlacz z Wide ma stosowny pad gdzie  podłączamy obwód RC. Użyłem opornika 10k do 3,3V i kondensatora 1uF do masy. Większe wartości opornika wydłużają czas trwania resetu i może zdarzyć się że inicjalizacja wyświetlacza rozpocznie się przy aktywnym resecie. Wyświetlacz Crius nie ma wyprowadzonego resetu. Jest on obecny tylko na tasiemce i połączony z Vcc w sposób utrudniający prostą modyfikację. W tym przypadku reset najlepiej rozwiązać jako szeregowy opornik rzędu 100R (62R - 430R) na zasilaniu. Użyłem opornika 150R i jest OK. Obecność opornika na zasilaniu w połączeniu z pojemnościami przy stabilizatorze powoduje dłuższe stałe czasowe narastania napięcia i poprawny reset. Jest to znacznie prostsze niż dokładanie obwodu RC bezpośrednio na tasiemce.

 

5) Zewrzeć linie D1 i D2 pełniące funkcje SDin i SDout. Bez tej zwory wyświetlacz nie odpowiada sygnałem ACK na polecenia mastera i próba komunikacji z nim kończy się błędem.

 

6) na wyświetlaczu WN-103 trzeba jeszcze wymusić niski poziom logiczny na linii RS/DC aby kontroler wyświetlacza był poprawnie adresowany oraz wybrać zworami tryb dostępu do wyświetlacza przez magistralę I2C (na płytce jest tabelka z opisem jak ustawić stan 3 bitów)

 

Tutaj jest schemat podłączenia wyświetlacza OLED z uwzględnieniem wszystkich modyfikacji. Poniżej jest obrazek z modyfikacjami wyświetlacza CRIUS CO-16:

Modyfikacje wyświetlacza OLED CRIUS

 

Ponieważ zaproponowany wyżej sposób resetowania wyświetlacza nie działa poprawnie w temperaturach niższych niż ok. 15°C, powstała konieczność gruntownej naprawy błędu projektowego kolegów z dalekiego wschodu, którzy podłączyli linię resetu bezpośrednio do zasilania. Niestety połączenie to jest ukryte pod tasiemką i aby je przerwać należy odlutować taśmę wyświetlacza.

Najlepiej to zrobić zwykłą lutownicą nanosząc dużą kroplę cyny, taką aby zwarła sąsiednie 2-3 wyprowadzenia. Następnie grzejemy cynę a pęsetą unosimy odlutowaną tasiemkę. Po jej całkowitym podniesieniu ukaże się taki widok:

Modyfikacje wyświetlacza OLED CRIUS

Należy przeciąć ścieżkę w miejscu zaznaczonym krzyżykiem idącą do padu resetu nr 14 i przylutować tasiemkę. Następnie pad 14 podpiąć do obwodu resetującego złożonego z opornika 10k podłączonego do Vcc i kondensatora 1uF podłączonego do masy. Tak wykonany reset umożliwia pracę wyświetlacza nawet w ujemnych temperaturach (testowane do -10°C). Należy też pamiętać o ponownym zrobieniu zworki między padami 19 i 20.

 

gmoduł GPS i magnetoemtruModuł zawiera 10 Hz, 66-kanałowy odbiornik GPS z wbudowaną anteną, oparty o chipsecie MTK MT3339 oraz opcjonalnie jeden z 3 typów magnetometru czyli elektronicznego kompasu. Dostępne są wersje modułu z układami: MMC3140 produkcji Memsic, MAG3110 produkcji Freescale oraz HMC5883 produkcji Honywell lub wersja bez magnetometru.

Moduł posiada własny stabilizator napięcia, dzięki temu może pracować z niestabilizowanym źródłem zasilania o dosyć szerokim zakresie napięć. Jest zabezpieczony przed wyładowaniami elektrostatycznymi ESD oraz zakłóceniami EMI indukującymi się w przewodach podłączeniowych. Jest przystosowany do umieszczenia w obudowie Z-47

 

Dane techniczne:

SDK

Sposób podłączenia modułu do zewnętrznych urządzeń 

Linia identyfikacji sprzętu ID jest istotna tylko dla komputera pokładowego, w innych urządzeniach należy ją pozostawić nie podłączoną. Linie SDA i SCL służą do komunikacji z magnetometrem. 

Na linii TXD moduł wysyła komunikaty NMEA

Na linii RXD słucha poleceń konfiguracyjnych.

Wszystkie linie komunikacyjne pracują przy napięciu 3,3V.

Sposób podłączenia modułu GPS

 

Kup moduł GPS Kup moduł w Pit.Lab.Sklepie

Radiomodem TinyOne Pro B868

Moduł  z radiomodemem TinyOne Pro B868 francuskiej firmy Telit jest zewnętrznym modułem komunikacyjnym dalekiego zasięgu. Pracuje w nielicencjonowanym paśmie 868 MHz

 

Interfejsy komunikacyjne

Moduł może komunikować się z za pomocą 3 interfejsów przewodowych

 

  1. Łącze USB służące jednocześnie do transmisji i do zasilania modułu. Ta opcja  jest przewidziana dla stacji naziemnych pracujących przy PC. Łącze USB powinno móc oddawać prąd 500mA.  Od strony programowej wymagany jest sterownik do układów firmy FTDI.
  2. Łącze RS232 może służyć zarówno do podłączania stacji naziemnej, oraz autopilotów mających taki format łącza komunikacyjnego np. Micropilot. Złącze nie przekazuje zasilania.
  3. Łącze typu UART o poziomach logicznych 3,3V. Zawiera linie transmisyjne TXD i RXD, linie sterowania przepływem RTS, CTS, linię zasilania 4-6V oraz linie adresową umożliwiającą wykrycie i identyfikację modemu przez komputer pokładowy AutoPitLot.

 

Parametry techniczne

Częstotliwość pracy radiowej

  • praca szerokopasmowa:869,525MHz
  • 10 kanałów od 869,4125 do 869,6315MHz

 

Moc nadawania: 25, 100 i 500mW

Prędkość transmisji radiowej: 4800, 9600, 19200 i 38400bps.

Prędkość transmisji do modemu: od 1200 do 115200bps

Tryby pracy: przezroczysty, adresowany , przekaźnikowy.

 

Wymiary płytki: 80x51x15mm

Masa bez obudowy:  26g

 

Dokumentacja programowania modułu modemu

Quadrocopter

Moduł z układem FTDI jest interfejsem emulującym port szeregowy UART na porcie USB. Umożliwia w prosty sposób na połączenie AutoPitLota przez złącze modułu zewnętrznego "MOD" z PC wyposażonym w złącza USB. Jest to metoda alternatywna do połączenia komputerów (AutoPitLota i PC) kablem mini USB. W obu przypadkach protokół komunikacyjny i zestaw poleceń jest ten sam. Inne jest tylko łącze i prędkość jego pracy.

Pod względem sprzętowym moduł wykorzystuje układ FT232 i jest dostępny z wielu źródeł. Ja wykorzystuję przedstawione na zdjęciu resztki magazynowe pozostałe po wczesnej wersji zewnętrznego interfejsu do wariometru. Ten sprzęt ma błąd polegający na odwrotnie zaprojektowanej wtyczce USB, ale po naprawieniu tego kynarem można go używać. Nie będę go produkował. Można go kupić w wielu miejscach. Najczęściej występuje pod nazwą "kabel FTDI" albo "FTDI cable".

Funkcję tego interfejsu również może pełnić kabelek USB do telefonu komórkowego o ile ma wyjścia TTL 3,3V i dysponujemy sterownikami umożliwiającymi ustawienie prędkości transmisji 115200bps.


Sposób połączenia modułu ze złączem modułów zewnętrznych "MOD" jest przedstawiony w tabeli:

pin złącze MOD wyjścia modułu FTDI
1 TXD1 RXD
3 RXD1 TXD
5 CTS1 RTS lub nie podłączony
7 RTS1 CTS lub nie podłączony
2 Vin VUSB
4 Module ID Oporniki 16k+2k+1k połączone równolegle, drugim końcem do GND
6 GND Do oporników z pinu "Module ID"
8 GND GND

Moduł z interfejsem bluetooth jest to bezprzewodowe łącze komunikacyjne krótkiego zasięgu. Jest bardzo wygodny, ponieważ można skomunikować się z komputerem pokładowym bez konieczności fizycznego dostępu do niego i podłączania wtyczek.

Tak wygląda interfejs bluetooth UART zainstalowany w quadrokopterze (przyklejony dwustronnie klejącą pianką):

Bluetooth UART

Przedstawiony powyżej moduł pochodzi z Chin, można go kupić na aukcjach Ebay czy Allegro. Może on pracować w dwu trybach:

- tryb konfiguracji sygnalizowany migającym LEDem, wtedy przyjmuje konfigurujące go polecenia AT.

- tryb komunikacyjny gdzie pracuje jako bezprzewodowy UART, sygnalizowany ciągłym świeceniem się LEDa. Prędkość komunikacji jest programowalna przez użytkownika.

 

W zależności od sprzedawcy może przyjść zaprogramowany na różną prędkość pracy w trybie komunikacyjnym. U mnie to było 9600bps. Aby przekonfigurować go na prędkość 115200bps obsługiwaną przez AutoPitLota należy podłączyć go do terminala za pomocą dowolnego łącza szeregowego pracującego na poziomach logicznych 3,3V. Ja używam do tego celu kabelka z układem FTDI. Po podłączeniu i uruchomieniu terminala skonfigurowanego na prędkość 38400bps moduł powinien odpowiadać "OK" na podane mu znaki "AT" (koniecznie wielkimi literami, bez CR LF na końcu).

Gdy jest już nawiązana komunikacja wtedy trzeba podać polecenie zmiany prędkości o składni: AT+BAUDx gdzie x to liczba odpowiadająca prędkości pracy podana w poniższej tabeli.

Polecenie Odpowiedź Uwagi
AT OK  
AT+VERSION Linvor1.5 Zwraca numer wersji modułu
AT+BAUDx OKyyyy Ustawia prędkość transmisji do interfejsu BT
x może przybierać następujące wartości:
1 dla 1200 bps
2 2400 bps
3 4800 bps
4 9600 bps
5 19200 bps
6 38400 bps
7 57600 bps
8 115200 bps
9 230400 bps
A 460800 bps
B 921600 bps
C 1382400 bps
AT+NAMEnazwa OKnazwa Zmiana nazwy urządzenia. Nazwa może mieć długość do 20 znaków
AT+PINxxxx OKpin Ustawianie PINu parującego urządzenia. Domyślnie 1234

 

Ponieważ moduł ma nietypowy sposób obsługi poleceń AT bazujący na timeoutach a nie na oczekiwaniu na znak, najlepiej jest przygotować gotowy ciąg znaków np. "AT+BAUD8" i wkleić je w okno terminala.

 

Moduł Bluetooth UART jest dostępny w PitLab.Sklepie są domyślnie skonfigurowane do pracy z komputerem pokładowym  i zaprogramowane na prędkość 115200bps.

 

Najprawdopodobniej komputer pokładowy będzie pracował z każdym innym modułem Bluetooth o ile ten będzie pracował w trybie "przezroczystym" jako port szeregowy.

 

Sposób połączenia modułu ze złączem modułów zewnętrznych "MOD" jest przedstawiony w tabeli:

pin złącze MOD wyjścia modułu Bluetooth
1 TXD1 RXD
3 RXD1 TXD
5 CTS1 RTS lub nie podłączony
7 RTS1 CTS lub nie podłączony
2 Vin Vcc
4 Module ID Oporniki 2k+1k połączone równolegle, drugim końcem do GND
6 GND Do oporników z pinu "Module ID"
8 GND GND

 

 

Moduł Bluetooth od strony PC

Interefjs Bluetooth do komputera PC, bezprzewodowy URT

Z drugiej strony łącza w komputerze PC powinien znajdować się moduł bluetooth. Jeżeli nie ma go w wyposażeniu standardowym, wtedy wystarczy dokupić zewnętrzny interfejs Bluetooth na port USB. Do komunikacji w odległości kilku metrów wystarczy praktycznie dowolny interfejs, często wielkości paznokcia. W taka małym module trudno zmieścić rozsądną anten więc ich zasięg jest ograniczony. Jeżeli zależy nam trochę większym zasięgu rzędu dziesiątek metrów polecam trochę większe moduły z zewnętrzną anteną, takie jak na obrazku obok.

 

Instalacja ewentualnego modułu na PC polega na dodaniu portu do wykrytego przez system urządzania Bluetooth. Dodawanie portu robi się w "Panelu sterowania" -> "Urządzenia  Bluetooth" -> zakładka "Porty COM". Dodając port wybieramy port wychodzący. Urządzenie będzie potrzebowało sparować się z PC. Kod parowania to "1234".

Tak wybrany port powinien pojawić się w "Menadżerze urządzeń". Konfiguruje się go jak każdy inny port.

Zalecane ustawienia to 115200, 8N1, brak kontroli sterowania przepływem.

Konfiguracja portu bluetooth

złacza modułów zewnętrznych

Moduły zewnętrzne podłączane są do czterech 8-pinowych złącz w dolnym prawym rogu na płycie głównej komputera, opisanych jako EX1, EX2, GPS i MOD. W odróżnieniu od czujników posiadają  linię adresową, pozwalającą na wykrycie i  identyfikację modułu. Szczegółowe znaczenie pinów złącz jest opisane w artykule Złącza modułów

 

 

Złącza EX1 i EX2 są to równolegle połączone dwie pary interfejsów mogące być skonfigurowane jako UART lub I2C. Domyślnie jedna para pracuje jako UART3 a druga jako I2C2. Obecnie złącza te umożliwiają podłączenie następujących urządzeń:

- OSD Remzibi

- OSD by Zbig

- dodatkowy moduł magnetometru na układach Memsica, Honywell lub Freescale

- wyświetlacz OLED

 

Złącze GPS służy do podłączenia zewnętrznego modułu odbiornika GPS zwracającego dane w protokole NMEA.

Obecnie obsługiwany jest Moduł GPS, mogący potencjalnie pracować również jako moduł magnetometru (są problemy z zakłócaniem pola magnetycznego przez stalowe elementy odbiornika GPS, ale z biegiem czasu zostanie to poprawione). Moduł jest zasilany z tego złącza napięciem 5V do zasilania serwomechanizmów.

 

Złącze MOD służy do komunikacji komputera z oprogramowaniem stacji naziemnej. Jest to UART z we/wy na poziomach logicznych 3,3V pracujący domyślnie na prędkości 115200bps. Może pracować z szeregiem łącz komunikacyjnych:

- Interfejs USB-RS232 z układem FTDI FT232 (łączność przewodowa)

- Moduł z interfejsem Bluetooth - TTL (łączność bezprzewodowa krótkiego zasięgu)

- Radiomodem Aerocomm AC4868-250M (łączność bezprzewodowa dalekiego zasięgu)

- Radiomodem RF TinyOne Pro BT868 (w trakcie implementacji)

Lataj bezpiecznie swoim UAV

Logowanie

Subskrypcja