środa, 1 sierpnia 2012

ArduPilot - otwarty autopilot twórców Arduino

ArduPilot Mega

ArduPilot należy do grupy otwartych autopilotów, tworzonych przez społeczność internetową. Jego budowa oparta jest o popularną platformę mikroprocesorową - Arduino. W przeciwieństwie do OpenPilot, ArduPilot jest dostępny w sklepach internetowych bez zbędnych kombinacji i czekania aż zbierze się chętna grupa z Twojego regionu. Co prawda, wpływa to na ekskluzywność OpenPilota, jednak znacznie utrudnia zakup.


Standardowo, na platformę ArduPilot składają się części sprzętowa i programowa. Każda z nich zawiera wiele rozwiązań i dodatków, których nie sposób zwięźle opisać. Zaczniemy od charakterystyki najpopularniejszego elementu sprzętowego, czyli płytek ArtuPilot Mega.



ArduPilot Mega to:

  • ArduPilot Mega 1.0
  • ArduPilot Mega 2.0

Płytka procesorowa ArduPilot Mega 1.0
Rys. 1 - Płytka procesorowa ArduPilot Mega 1.0 [1]


gdzie druga wersja jest lepszym następcą tej pierwszej. Obie wersje są od siebie niezależne i ich wybór zależy od woli użytkownika.



Rys. 2 - Płytka ArduPilot Mega 2.0 [2]

ArduPilot Mega 1.0


Jest to autopilot, składający się z dwóch, łączonych ze sobą płytek. Pierwsza zawiera główny procesor Atmega2560 (wcześniej Atmega 1280) oraz procesor Atmega328, używany to obsługi sterowania bezprzewodowego. Druga płytka zawiera wszelkie niezbędne czujniki, takie jak żyroskopy, przyspieszeniomierze, czujniki ciśnienia i napięcia. Nazywana jest wewnętrzną jednostką pomiarową (IMU).


Dwie połączone płytki APM
Rys. 3 - Dwie połączone płytki APM 1.0 [3]


Płytka główna (procesorowa) zasilania jest napięciem 5V. Normalnie, zasilanie to pochodzi z systemu sterowania bezprzewodowego (RC), który jest podłączony do płytki. Nic nie stoi jednak na przeszkodzie, aby zastosować własne zasilanie z baterii czy akumulatora 7-11V. Wbudowany regulator zapewnia odpowiednie napięcie i natężenie prądu. Obwód zabezpieczony jest także bezpiecznikiem, chroniącym go przez tzw. spięciem na krótko.

Procesor Atmega2560 zawiera cztery 16-bitowe timery. Odpowiednie wykorzystanie ich przerwań pozwala odczytywać sygnały PWM/PPM z ośmiu kanałów kontrolować pracę ośmiu serw. Dodatkowo płytka zawiera 16-kanałowy 10-bitowy przetwornik analogowo-cyfrowy i cztery porty szeregowe. Przetwornik obsługuje on cyfrowe piny wejścia-wyjścia. Porty mogą służyć do podłączenia USB, GPS, Dataflash lub Xbee.


Rys. 4 - Elementy IMU [1]


Płytka IMU zawiera całą niezbędną resztę czujników do poprawnej pracy autopilota.  Należą do niej:


  • Regulator napicia 3.3V
  • Przełącznik przekaźnikowy dla kamer lub świateł
  • 12-bitowy przetwornik analogowo-cyfrowy, zapewniający odpowiednią rozdzielczość pomiaru
  • Port I2C
  • 10-bitowe porty analogowe
  • Trójosiowy żyroskop
  • Trójosiowy przyspieszeniomierz
  • Czujnik ciśnienia całkowitego i temperatury

Połączenie elementów ArduPilota
Rys. 5 - Połączenie elementów ArduPilota [1]


Po złączeniu obu płytek powstaje w pełni działający autopilot. Wystarczy podpiąć odbiornik RC, regulatory silników oraz serwa

Podstawowa część programowa zawiera trzy części:



  • Kompilator Arduino (do edycji bibliotek)
  • Biblioteki ArduPilota
  • Edytor misji


ArduPilot Mission Planner
Rys. 6 - ArduPilot Mission Planner [4]



Kompilator Arduino służy do pisania własnych programów dla platformy Arduino. Do pobrania ze strony producenta. Biblioteki ArduPilota znajdziemy w dziale download pod nazwą ArduPlane(numer wersji).zip. Edytor misji jest interfejsem użytkownika do konfiguracji autopilota. Również znajdziecie do w dziale download pod nazwą MissionPlanner[wersja].msi. ArduPilot Mega 2.0 - już w następnym artykule.


Źródła:



1. http://diydrones.com
2. http://www.foamzone.de
3. http://teamjatayu.blogspot.com
4. http://www.ardupilot.co.uk