C++
2018-08-02
Mavlink to protokół komunikacji z małymi pojazdami takimi jak drony, samochody czy szybowce. Wykorzystywany jest on w oprogramowaniu Mission Planner, czyli naziemną stacją kontroli dla dronów. Duża otwartość protokołu oraz wsparcie społeczności pozwala na dostosowanie Mavlink'a na własne potrzeby.
W tym poście skupię się na opisaniu podstaw protokołu Mavlink oraz jak go zaimplementować do Arduino.
Wykorzystanie protokołu w praktyce nie jest szczególnie trudne i można implementować go na wielu platformach. Mimo to podstawy działania to zaawansowany temat. Sam postaram się przybliżyć jedynie jego praktyczną stronę.
Dużo więcej na temat samego działania Mavlinka można przeczytać tutaj:
qgroundcontrol.org/mavlink/start
MAVLink and Arduino: step by step
MAVLink Step by Step
Zanim zaczniemy pracować z kodem musimy zadeklarować nasze środowisko.
Na początku importujemy biblotekę Mavlink oraz Arduino po czym definiujemy zmienne reprezentujące nasze urządzenie. Od tego zależne będzie czy protokół poprawnie zinterpretuje dane. Zbiór wszystkich możliwych konfiguracji można odszukać w pliku common.
Plik common
Obsługa Mavlink'a wymaga od nas zadeklarowania zmiennej wiadomości oraz bufora. Te zmienne wykorzystywane przy wysyłaniu i odbieraniu komend.
Urządzenia pracujące z protokołem Mavlink same z siebie nie wysyłają ani nie odbierają żadnych danych. Wszystko co chcemy wykonać musimy zasygnalizować komendą (pack) albo żądaniem (request).
Mavlink do sygnalizacji stanu połączenia wykorzystuje obiekt heartbeat. W późniejszym kodowaniu jest on raczej niepotrzebny. Z samego pakietu można wydobyć takie informacje jak obecny tryb czy wersję protokołu.
Tym tekstem rozpocząłem małą serię o Mavlinku. Mam świadomość jak bardzo temat nie został wyczerpany. W następnych postach zamierzam opisać dokładnie odczyt oraz przesył komend do drona z wykorzystaniem Arduino. Stay tuned!
Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊
Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.
Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.