Arduino z Mavlink - Start

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.

Wprowadzenie do protokołu

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ć jednynie jego praktyczną stronę.

Dużo więcej na temat samego działania mavlinka można przeczytać tutaj:

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 zainterpretuje dane. Zbiór wszystkich możliwych konfiguracji można odszukać w pliku common.

Podstawy komunikacji

Obsługa Mavlink'a wymaga od nas zadeklarowania zmiennej wiadomości oraz bufora. Te zmienne wykorzystywane przy wysyłaniu i odbieraniu komend.

Zasady komunikacji

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).

Sygnalizacja połączenia

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.

Kilka słów na koniec

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!

shop
Otwórz Sklep Play

Zachęcam cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.