Navio - płytka stworzona dla robotów i dronów opartych o Raspberry Pi

Navio to moduł dla Raspberry Pi przeznaczony dla osób chcących zbudować autonomicznego robota, drona czy po prostu rejestrować położenie oraz orientację w przestrzeni. Do dyspozycji otrzymujemy moduł, który waży niecałe 19g. Na płytce znalazły się bardzo użyteczne podzespoły elektroniczne dostępne poprzez magistrale I2C lub SPI.

Moduł navio dla Raspberry Pi

Do określenia współrzędnych geograficznych oraz wysokości nad poziomem morza służy odbiornik sygnału GPS/GLONAS (u-blox 7 GPS/GNSS). Aby mieć dostęp do surowych danych GPS konieczny jest moduł z odbiornikiem u-blox 6. Prawidłowa prac odbiornika wymaga podłączenia zewnętrznej anteny odbiorczej.

Informacje o orientacji w przestrzeni, przyśpieszaniu, czy obracaniu / przechylaniu pojazdu można odczytać z układu MPU9250. Po odpowiednim przetworzeniu tych sygnałów możemy wzbogacić nasz wehikuł w układ nawigacji bezwładnościowej. Oba wcześniej wspomniane moduły wykorzystują magistralę SPI. Pozostałe układy dostępne są poprzez szynę I2C.

Precyzyjne określanie wysokości barometrycznej jest istotne w czasie kontroli każdego obiektu latającego. W tym celu na płytce znalazł się dokładny czujnik ciśnienia oraz temperatury. Innym zastosowaniem tego układu może być pomiar ciśnienia powietrza w przypadku pozostawania na stałej wysokości nad poziomem morza. Dodatkowo na płytce został wlutowany 4 kanałowy przetwornik analogowo-cyfrowy, który może służyć jako np. monitor napięcia czy prądu pobieranego z baterii lub odczytywania stanu dowolnych czujników z wyjściem analogowym.

Z faktu, że układ był projektowany jako moduł autopilota został on wyposażony w 13 kanałowe wyjście typu PWM umożliwiające sterowanie serwomechanizmami lub kontrolerami silników BLDC. Sygnalizowanie stanu pracy autopilota może odbywać się za pomocą programowalnej wielokolorowej diody LED. Aby jeszcze bardziej zwiększyć możliwości rozbudowy autopilota na płytce znalazły się wyjścia portów I2C, SPI, UART oraz wejście PPM do przejęcia sygnałów odbieranych z aparatury RC.

Powstanie projektu możliwe było dzięki finansowaniu społecznościowemu. Zbiórka pieniędzy zakończyła się dużym sukcesem. W chwili pisania tego tekstu, nie jest dostępna biblioteka do obsługi wszystkich wbudowanych podzespołów. Natomiast w sieci dostępne są gotowe biblioteki ułatwiające współprace poszczególnych podzespołów z Pythonem. Warto sprawdzić repozytorium navio pod kątem najnowszych bibliotek. Kończąc ten artykuł, pokażę jak sterować wbudowaną diodą LED oraz miniaturowym serwomechanizmem używając modułów Pythona stworzonym przez Adafruit.

Schemat Navio

Czytając instrukcję oraz analizując schemat elektryczny Navio możemy zauważyć że linia zasilania serw i diody wymaga zewnętrznego układu BEC (Batery Elimnation Circuit – 5V). Jednak w przypadku podłączenia małego serwa i diody LED możemy zasilić układ z linii 5V wyprowadzonej z portu GPIO poprzez włożenie zworki.

from Adafruit_PWM_Servo_Driver import PWM

pwm = PWM(0x40, debug=True)
pwm.setPWMFreq(50) #ustawienie częstotliwości na 50 Hz wymagana do sterowania serw analogowych.
pwm.setPWM(0, 0, 2048) #ustawienie PWM dla koloru czerwonego na 50%
pwm.setPWM(1, 0, 2048) #dla zielonego
pwm.setPWM(2, 0, 2048) #dla niebieskiego
pwm.setPWM(3, 0 , 306) # ustawienie serwa w pozycji neutralnej.

Układ autopilota Navio dla Raspberry Pi znacząco zwiększa jego możliwości, jednocześnie eliminując problem budowy obwodów elektronicznych. Użytkownik musi jedynie uruchomić swoją wyobraźnię i poświęcić odrobinę czasu na programowanie oczywiście w Pythonie.

Autor: Blis

RkBlog

Elektronika i Python, 30 November 2014

Comment article
Comment article RkBlog main page Search RSS Contact