Zezwala się na korzystanie z artykułu na warunkach licencji Creative Commons Uznanie autorstwa 3.0

Artykuł recenzowany nadesłany 24.11.2014 r., przyjęty do druku 19.01.2015 r.

DOI: 10.14313/PAR_215/49

Bezzałogowa zdalnie sterowana
jednostka latająca

Patryk Piotrowski, Tomasz Witkowski, Robert Piotrowski

Wydział Elektrotechniki i Automatyki, Politechnika Gdańska, 80–233 Gdańsk, ul. Narutowicza 11/12

Streszczenie: Quadrocopter, jako przykład drona, wykorzystywany jest coraz częściej przez sektor publiczny i przemysłowy. W artykule omówiono zadania realizowane podczas projektowania i praktycznej realizacji zdalnie sterowanej jednostki latającej. W pierwszej kolejności zaprojektowano i wykonano ramę urządzenia. Następnie dobrano elementy pozwalające na lot quadrocoptera. Na płycie znalazła się jednostka centralna w postaci mikrokontrolera ATmega644PA. W dalszej części udokumentowano proces programowania kolejnych elementów składających się na program sterujący quadrocopterem. Układ regulacji do stabilizacji maszyny wymaga informacji o położeniu quadrocoptera w przestrzeni. Realizowane jest to przez moduł pomiarowy zawierający akcelerometr i żyroskop. Quadrocopter potrzebuje informacji o poleceniach operatora. Zaimplementowano sterowanie z wykorzystaniem modułu Bluetooth i aplikacji dla systemu Android.

Słowa kluczowe: quadrocopter, jednostka latająca, projektowanie, automatyka, mechatronika

1. Wstęp

Czasami wymaganym działaniem jest start i lądowanie poziome z jednoczesną możliwością utrzymania jednostki latającej w powietrzu. Największą rodziną tego typu urządzeń są helikoptery, jednak dzięki rozwojowi techniki coraz częściej można spotkać samoloty pionowego startu, a także bezzałogowe pojazdy latające – drony (amatorskie i profesjonalne). Jednym z rodzajów dronów jest quadrocopter, napędzany przy pomocy czterech silników ustawionych pionowo w osi.

Głównym polem zastosowania quadrocopterów jest przemysł wojskowy. Dzięki nim można dokonywać infiltracji, zwiadu i ataku bez narażania czynnika ludzkiego. Wszystkie te czynności wykonuje np. MQ-5B Hunter – maszyna wojskowa zdolna do śledzenia i likwidacji potencjalnego celu [1]. Rozwój technologiczny pozwolił dronom zaistnieć również w sektorze cywilnym. Są one wykorzystywane do transportu przesyłek [2], kręcenia filmów z dużych wysokości oraz innych czynności, które są ograniczone tylko przez ludzką pomysłowość.

Artykuł dotyczy projektu technicznego i realizacji zdalnie sterowanej jednostki latającej typu quadrocopter. Opracowano i wykonano wszystkie elementy (mechaniczne i elektroniczne), oprogramowano urządzenie oraz zaimplementowano algorytmy filtracji, sterowania i metody komunikacji. Uniwersalnością opisanego rozwiązania jest możliwość kontroli lotu przez każdą osobę posiadającą smartfona z systemem operacyjnym Android i modułem Bluetooth.

2. Założenia do projektu

Głównym celem projektu była budowa wytrzymałego pojazdu latającego typu quadrocopter, który zmienia kierunki lotu zgodnie z poleceniami operatora oraz jest wyposażony w algorytm stabilizacji maszyny w powietrzu. Dodatkowym założeniem było zaprojektowanie i wykonanie części mechanicznej i elektrycznej. Sygnał sterujący silnikami pochodzi z głównej płytki sterującej, która po zaprojektowaniu została wykonana we własnym zakresie. Aby quadrocopter mógł unieść dodatkowe obciążenie, konieczne było uzyskanie zapasu mocy silników. Wymiary konstrukcji są kompromisem między udźwigiem i jak najdłuższym czasem lotu.

3. Część mechaniczna

Budowa tak zaawansowanej maszyny wymaga skrupulatnego przygotowania wstępnej dokumentacji technicznej oraz modelu konstrukcji powstającego obiektu. Projekt quadrocoptera wykonano w środowisku Autodesk Inventor [3] (rys. 1).

Rys. 1. Model quadrocoptera (Autodesk Inventor)

Fig. 1. The quadrocopter model (Autodesk Inventor)

Oprogramowanie to umożliwiło, już we wczesnej fazie projektu, eliminację problemów związanych z wytrzymałością materiałów. Ponadto w każdej chwili program pozwalał na dokonywanie zmian, co znacząco zwiększyło elastyczność urządzenia. Parametry ramy, które zostały wygenerowane w oprogramowaniu i ich wyniki pokrywają się z rzeczywistą konstrukcją.

Ramiona quadrocoptera wykonano z aluminiowych profili ułożonych w kształt litery X. Zostały one przymocowane do siebie za pomocą laminatu, który równocześnie wykorzystano do mocowania silników i kończyn quadrocoptera. Wykorzystanie tych materiałów w procesie budowy zapewniło optymalne osiągi między wagą całej konstrukcji, a wytrzymałością mechaniczną. Odpowiednie kształty wycięto na maszynie sterowanej numerycznie. W celu przymocowania laminatu do profili, użyto nylonowych śrub. Są one lepszym rozwiązaniem od ich metalowych odpowiedników. W przypadku mocnego uderzenia drona w inny obiekt śruby połamią się, dzięki czemu siła nie przeniesie się na inne elementy, powodując ich zniszczenie.

4. Część elektryczna

Dobór podzespołów rozpoczęto od oszacowania masy całego drona. Przyjęto, że nie powinna ona przekraczać 950 g. Ze względu na potrzebę zapewnienia elastyczności rozbudowy konstrukcji w dalszych etapach wybrano silniki o odpowiednio większej nośności. Kolejnym krokiem był dobór kontrolerów silników o parametrach odpowiadających maksymalnemu poborowi prądu przez silnik, co zapewniło osiągnięcie maksymalnych parametrów napędów. Ostatnią kwestią był wybór zasilania quadrocoptera i śmigieł. Złożona konstrukcja została przedstawiona na rys. 2.

Rys. 2. Konstrukcja quadrocoptera

Fig. 2. Construction of the quadrocopter

Na potrzeby projektu zdecydowano się wykorzystać silniki bezszczotkowe RCTimer BC2830/14 [4], jeden z nich pokazano na rys. 3. Dzięki pozbyciu się szczotek w silniku, uzyskano większą wytrzymałość, sprawność oraz mniejsze zużycie elementów ruchomych. Cechy te pozwalają na dłuższą oraz mniej awaryjną pracę silników.

Rys. 3. Silnik

Fig. 3. The motor

Przed użyciem każdego silnika należy sprawdzić, czy nie występują w nich nadmierne drgania spowodowane np. tarciem łożysk lub stojana o magnesy. Niestety wybrany model silników miał dość długi wał, co może prowadzić do przenoszenia większej ilości drgań. Ponieważ dodatkowe zakłócenia są niedopuszczalne, zdecydowano o usunięciu fabrycznych wałów przy pomocy prasy hydraulicznej. Zmiana ta pozwoliła na bardzo bliskie mocowanie śmigieł do silników.

Aby zapewnić maksymalne osiągi oraz najwyższy poziom bezawaryjności wykorzystano kontrolery silników ABC-Power 30A [5], jeden z nich przedstawiono na rys. 4.

Rys. 4. Kontroler silnika ESC

Fig. 4. The ESC motor controller

Element ten ma dodatkowe wyprowadzenie typu BEC (ang. Battery Eliminator Circuits), dzięki czemu istnieje możliwość zasilania układu sterowania napięciem 5 V i wydajnością 2 A. Charakterystyka tego wyjścia jest prawie idealnie liniowa, co zapewnia dobre warunki pracy układu sterującego. Ograniczona jest również złożoność płyty sterującej ze względu na brak konieczności stosowania dodatkowych stabilizatorów liniowych lub przetwornic napięcia do zasilania układu. Ponadto kontroler sprawuje też kontrolę nad stanem baterii. Oznacza to, że w chwili gdy napięcie na akumulatorze spadnie do niskich wartości, kontroler wymusi zmniejszenie obrotów silników, co zapobiegnie np. uszkodzeniu baterii. Oczywiście kontrolę nad stanem baterii powinna sprawować jednostka sterująca, jednak w przypadku nie zadziałania algorytmu, kontroler staje się dodatkowym zabezpieczeniem. Programowanie tych kontrolerów przeprowadza się za pomocą specjalnie przystosowanej do tego karty programującej, dzięki której można zmieniać najważniejsze parametry urządzeń m.in. poziom napięcia odcięcia zasilania i sposób rozruchu silnika.

Warto podkreślić, że częstotliwość pracy kontrolera (kHz) jest szersza niż podano w specyfikacji, jednak optymalne osiągi pracy utrzymywane są przy zalecanej częstotliwości sygnału.

Do zasilania tego typu modeli najczęściej używa się baterii Li-Po (litowo-polimerowych). Cechuje je duża wydajność prądowa oraz dobry stosunek pojemności pakietu do jego wymiarów. Na rys. 5 pokazano baterie ABC-POWER Li-Po 3S 11,1 V o pojemności 3300 mAh [6].

Rys. 5. Bateria Li-Po

Fig. 5. The Li-Po battery

W trakcie użytkowania baterii należy zwrócić uwagę, aby nie przekroczyć najniższego (3 V) i najwyższego (4,2 V) dozwolonego napięcia na celach. Charakterystyka użytkowania baterii Li-Po jest nieliniowa,dlatego pod żadnym pozorem nie powinno się przewyższać prądów ładowania i rozładowywania. Masa użytej baterii to 256 g.

Głównym elementem w modelach latających zmieniającym moment obrotowy (pochodzący od silników) na pracę ciągu (wykorzystywaną do unoszenia się pojazdu w powietrzu) są śmigła. Te wykorzystywane w dronach dzielą się na: przystosowane do obrotów zgodnie ze wskazówkami zegara CW (ang. Clock Wise) i w przeciwnym kierunku CCW (ang. Counter Clock Wise). Głównymi materiałami, z których się je wykonuje są włókna węglowe lub plastik. Para śmigieł zastosowanych w projekcie została przedstawiona na rys. 6.

Rys.6. Śmigła

Fig.6. The propellers

Przy doborze tych elementów należy zwrócić uwagę na ich rozmiar. Im większa średnica, tym mniejsza prędkość obrotowa, co przekłada się na obniżenie lotności modelu. Poza tym każde śmigło przed użyciem należy wyważyć, aby zminimalizować drgania powstające poprzez nierówną pracę układu.

5. Budowa i oprogramowanie jednostki sterującej

5.1. Jednostka sterująca

Sercem pojazdu jest elektroniczny układ sterowania, który bazuje na mikrokontrolerze ATmega644PA firmy Atmel (rys. 7) [7]. Model procesora wybrano ze względu na dużą pamięć i liczbę wyprowadzeń, których odpowiednie zaprogramowanie pozwoliło uzyskać m.in. sprzętową modulację szerokości impulsu napięcia, przetwarzanie analogowo-cyfrowe i komunikację zgodną ze standardem RS-232.

Rys. 7. Mikrokontroler ATmega644PA

Fig. 7. Microcontroler ATmega644PA

Do tworzenia schematów elektrycznych i projektu płytki sterującej wykorzystano środowisko Eagle [8] wspomagające proces projektowania płytek drukowanych PCB (ang. PrintedCircuit Board) (rys. 8).

Rys. 8. Projekt PCB (Eagle)

Fig. 8. PCB Project (Eagle)

Projektowanie systemu sterującego rozpoczęto od poprawnego zasilenia mikrokontrolera i nawiązania komunikacji przez programator. Kolejnym etapem było dołączenie niezbędnej filtracji zasilania, stosując kondensatory i dławik. Szczególną uwagę zwrócono na ochronę wyprowadzeń przetwornika analogowo-cyfrowego.

Program sterujący napisano w języku C, który jako język programowania wysokiego poziomu jest dużo szybszy od języków interpretowanych i może efektywnie wykonywać złożone operacje matematyczne [9, 10].

Fabrycznie mikrokontroler taktowany jest częstotliwością 1 MHz, co przy budowie zaawansowanego układu sterowania sprawia, że nie wykorzystujemy pełnych możliwości obliczeniowych procesora. W opisywanym układzie zwiększono częstotliwość taktowania przez zewnętrzny oscylator do 20 MHz, dzięki czemu uzyskano wykonywanie 20 milionów podstawowych operacji na sekundę [9].

5.2. Przetwornik analogowo-cyfrowy

Oprócz wykorzystania podstawowej możliwości zmiany stanu na poszczególnych pinach procesora, posłużono się również jego wewnętrznymi modułami, m.in. przetwornikiem analogowo-cyfrowym.

Wspomniany przetwornik posłużył jako miernik napięcia (wielkości analogowej) i jego zamiany na postać cyfrową zrozumiałą dla mikrokontrolera. Dzięki pomiarowi napięcia na poszczególnych ogniwach uzyskano informację o stanie naładowania baterii. Przetwornik w mikrokontrolerze ATmega644PA ma 10-bitową rozdzielczość, co oznacza 1024 możliwości pomiarowe przypadające zmierzonemu napięciu. Ponadto do wyboru użytkownika pozostawiono cztery napięcia odniesienia [7]. Zmieniając je użytkownik decyduje o zmianie wartości maksymalnego napięcia podawanego na pin przetwornika. I tak wybierając najmniejsze napięcie odniesienia (tj. 1,1 V) zwiększona zostaje czułość urządzenia pomiarowego (1024 możliwości pomiarowe przypadające na 1,1 V). Niestety podawanie tak niskiego napięcia wiąże się często z koniecznością stosowania dzielnika napięcia w celu dostosowania jego wartości. W omawianym projekcie wykorzystano trzy wejścia przetwornika (po jednym na każde ogniwo). Do zwiększenia dokładności wskazań zbudowanego urządzenia pomiarowego, oprócz zastosowania kondensatorów filtrujących, zaimplementowano cykliczną procedurę sumowania i obliczania średniej z danych zebranych z przetwornika [9]. Dzięki temu otrzymano zadowalającą dokładność wskazań napięcia na poszczególnych ogniwach baterii.

5.3. Modulacja szerokości impulsu

Do sterowania prędkością obrotową czterech silników wykorzystano mechanizm PWM (ang. Pulse Width Modulation), czyli modulację szerokości impulsu. Jest to metoda średniej regulacji napięcia za pomocą zmiany szerokości impulsów o pełnej amplitudzie [11]. Regułę tą można wytłumaczyć jako cykliczne, bardzo szybkie załączanie i wyłączanie zasilania (rys. 9). W zależności od stosunku czasu włączenia do czasu wyłączenia można uzyskać różne średnie wartości napięcia.

Rys. 9. Sygnał PWM

Fig. 9. PWM signal

Mając na uwadze przydatność modulacji PWM, producenci mikrokontrolerów wyposażyli je w specjalne moduły sprzętowe, które pomagają generować przebiegi w różnych konfiguracjach. Zwykle przygotowanie sprzętowego modułu PWM w mikrokontrolerach sprowadza się do ustawienia trybu pracy odpowiedniego licznika czasu. Podczas konfiguracji modułów ustawiono częstotliwość PWM zgodną z częstotliwością pracy kontrolerów silników (300 Hz).

5.4. Komunikacja szeregowa

Jednym z kluczowych założeń projektu było zapewnienie komunikacji między mikrokontrolerem i smartfonem z systemem operacyjnym Android.

Przeważająca liczba mikrokontrolerów AVR posiada wbudowany interfejs pozwalający na przesyłanie informacji w postaci szeregowej za pomocą linii: RXD – wejście szeregowe i TXD – wyjście szeregowe. Komunikacja przez te linie odbywa się zgodnie ze standardem RS-232.

W mikrokontrolerach transmisją szeregową zajmuje się uniwersalny port USART (ang. Universal Synchronous and Asynchronous Receiver and Transmitter) [7]. Jak wskazuje nazwa, możliwa jest praca synchroniczna (kolejne bity są przesyłane w takt zegara sterującego transmisją), lub praca asynchroniczna, gdy odbiornik USART wykrywa początek ramki transmisyjnej, a następnie próbkuje sygnał wejściowy przez ustalony przez obie strony czas trwania bitu [10]. W omawianym projekcie skupiono się jedynie na transmisji asynchronicznej odbywającej się po zmianie sterowania quadrocopterem przez użytkownika.

5.5. Komunikacja Bluetooth

Obecnie w technologie bezprzewodowe wyposażanych jest coraz więcej urządzeń. Pozwala to m.in. na transmisję danych w miejscach, gdzie położenie infrastruktury kablowej byłoby problemem. Ze względu na ogólną dostępność modułów w smartfonach wybrano transmisję Bluetooth. Szybko okazało się, że istnieje bardzo dużo układów peryferyjnych dla mikroprocesorów umożliwiających taką komunikację. Zdjęcie użytego modułu ATB-BTM-222 przedstawiono na rys. 10.

Rys.10. Moduł Bluetooth
ATB-BTM-222

Fig.10. Bluetooth module ATB-BTM-222

W opisywanym projekcie komunikację oparto na autorskim programie z własnym interfejsem użytkownika (punkt 5.6).

5.6. Interfejs użytkownika

Android to obecnie najpopularniejszy na świecie system operacyjny dla urządzeń mobilnych [12]. Spośród innych systemów wyróżnia się otwartością (pozwala na pełną ingerencję w system), niewielkimi wymaganiami sprzętowymi, prostą konfiguracją i łatwym przenoszeniem między różnymi urządzeniami mobilnymi. Cechy te zdecydowały o przygotowaniu aplikacji, która umożliwiła sterowanie quadrocopterem z poziomu smartfona. Wadą powyższego rozwiązania jest zasięg sterowania. W większości dostępnych obecnie telefonów, moduły Bluetooth pozwalają na transmisję danych do 100 m. Dla dużej liczby zastosowań zasięg ten jest wystarczający.

Obecnie do dyspozycji jest kilka środowisk komputerowych wspomagających programowanie na Androida. Po ich analizie wybrano środowisko Basic4 Android zawierające edytor tekstowy i graficzny. Założono, że aplikacja sterująca quadrocopterem będzie zawierała osiem przycisków dla każdego rodzaju ruchu (góra, dół, lewo, prawo, przód, tył, obrót lewo, obrót prawo), ale okazało się, że w danej chwili obsługiwany może być tylko jeden klawisz. Właśnie dlatego sprzedawane są piloty z wieloma kanałami komunikacji (często 6 lub 8), dzięki czemu można wysyłać kilka rozkazów ruchu jednocześnie (np. ruch w górę i obrót w lewo). Zatem, aby spełnić założenia i efektywnie sterować quadrocopterem konieczne stało się utworzenie czterech kanałów: lewo-prawo (kanał nr 1), przód-tył (kanał nr 2), góra-dół (kanał nr 3), obrót lewo-obrót prawo (kanał nr4). Dodanie kolejnych kanałów uzyskano wykorzystując rozwiązania z gier zręcznościowych tworzonych na smartfony, w których sterowanie przebiega przy pomocy zmiany pozycji telefonu. Dzięki takiemu rozwiązaniu quadrocopter może „naśladować” ruch ręki operatora, tzn. gdy telefon zostanie przechylony do przodu quadrocopter powtórzy ten ruch poruszając się z prędkością proporcjonalną do kąta wychylenia nadajnika. Takie sterowanie wymaga oczywiście ostrożności od operatora, jednak sprawia, że sterowanie staje się jeszcze bardziej intuicyjne. W ten sposób uzyskano dwa dodatkowe kanały dla ruchu w poziomie. Niestety, nie udało się zrealizować ostatniego kanału służącego do obrotu maszyny wokół własnej osi. Dlatego w końcowym projekcie postanowiono, że na ekranie głównym quadrocoptera pozostaną jedynie cztery przyciski odpowiedzialne za ruch w górę, dół, obrót w lewo i obrót w prawo. Tym samym podczas sterowania można wykonać w jednej chwili, np. ruch w pionie (za pomocą przycisków) oraz w poziomie (za pomocą przechylenia telefonu). Widok ekranu pokazano na rys. 11.

Rys.11. Interfejs użytkownika w systemie Android

Fig.11. User interface on Android system

Podczas testowania aplikacji zaobserwowano, że sterowanie poprzez zmianę przechyłu telefonu może nie być wygodne dla każdego operatora. Przystąpiono zatem do implementacji funkcji z biblioteki służącej do obsługi wielodotykowości telefonu. Celem było stworzenie dwóch kontrolerów dotykowych w formie animacji pozwalających na sterowanie przypominające obsługę joysticków (rys. 12).

Rys. 12. Interfejs użytkownika w systemie Android obsługujący wielodotykowość

Fig. 12. User interface on Android system with multi-touch

5.7. Przetwarzanie danych pomiarowych

Do rozpoczęcia lotów quadrocopter, a właściwie jego jednostka sterująca, musi znać położenie maszyny w przestrzeni. Niezbędnych informacji dostarczył moduł pomiarowy MPU 6050 (rys. 12) zawierający żyroskop i akcelerometr. Komunikuje się on z mikrokontrolerem za pomocą magistrali I2C.

Dzięki żyroskopowi (Ż) można śledzić obroty obiektu, a akcelerometr (A) kompensuje dryft wcześniej wspomnianego modułu oraz wyznacza bezwzględny punkt odniesienia. Do budowy systemu, który wyznacza położenie quadrocoptera należało przekonwertować dane odczytane z urządzeń pomiarowych (16 bitów na każdą oś) na kąt i przyspieszenie. Ponieważ żyroskop mierzy przyspieszenie kątowe to do uzyskania kąta wychylenia urządzenia należało zaimplementować obliczanie całki w mikrokontrolerze. Natomiast zmierzona wartość z czujnika przyspieszenia wymagała jedynie podzielenia przez stałą podaną w nocie aplikacyjnej modułu. Brak magnetometru w module pomiarowym sprawia, że niemożliwe jest śledzenie obrotu quadrocoptera wokół własnej osi (oś Yaw), ale uzyskane pomiary uznano za satysfakcjonujące i wystarczające do lotu.

6. Algorytmy filtracji i sterowania

6.1. Filtr alfa-beta

Dane pomiarowe z akcelerometru, oprócz dopasowania do interesujących poziomów wymagały odfiltrowania. Wykorzystując zaimplementowany w mikrokontrolerze algorytm filtru alfa-beta uzyskano dokładną informację na temat położenia quadrocoptera. Główną zaletą tego filtru jest brak konieczności stosowania modelu obiektu [14].

Filtr alfa-beta opiera się na założeniu, że ruch obiektu można wyrazić za pomocą dwóch składowych stanu, gdzie jedna z nich jest pochodną drugiej. Wektor stanu składający się z położenia oraz prędkości spełnia te założenia. W omawianym projekcie do algorytmu podawane są wielkości odczytane bezpośrednio z modułu. Oznacza to, że jeszcze na tym etapie nie są przeliczane na konkretne jednostki. Równania filtru mają postać:

(1)

(2)

(3)

(4)

gdzie: – oszacowanie położenia [-],– oszacowanie prędkości [-], y – zmierzone położenie [-], ΔT – krok czasowy między kolejnymi pomiarami [s], a = 0,1, b = 0,01 – parametry filtru.

Działanie filtru dzieli się na fazę predykcji kolejnego stanu (równania (1)–(2)) oraz korektę przewidywanej wartości w oparciu o pomiar (równania (3)–(4)). Parametry a i b służą do strojenia filtru. Ich wartości należy zmieniać w zakresie od ٠ do ١. Parametr a poprawia odporność układu na zakłócenia, a b odpowiada za wielkość przeregulowania [14].

Podczas testów wykorzystano środowisko MATLAB (połączone z mikrokontrolerem za pomocą komunikacji RS-232). Na rys. 13 przedstawiono odczyt danych z akcelerometru i jego odfiltrowane wartości. Dobrane wartości parametrów filtru są niewielkie, dzięki czemu znacznie wygładza on silnie oscylujący pomiar z akcelerometru, gdy quadrocopter znajduje się w stanie równowagi lub bliskim równowagi.

Rys. 13. Moduł MPU 6050

Fig. 13. MPU 6050 module

6.2. Filtr komplementarny

Uzyskana wartość kąta wychylenia quadrocoptera otrzymana z żyroskopu nie zawsze odwzorowywała rzeczywiste wychylenie urządzenia. Dzieje się tak, ponieważ zaimplementowana całka nie jest wykonywana w mikrokontrolerze w sposób ciągły (100 Hz). Wobec tego widoczna jest czasem sytuacja, że wychylenie quadrocoptera i jego powrót do pozycji wyjściowej powoduje podanie przez żyroskop niezerowej wartości kąta (tzw. dryft żyroskopu). Aby przeciwdziałać temu zjawisku należało połączyć wskazania akcelerometru i żyroskopu. Ponieważ żyroskop dobrze radzi sobie z pomiarem wychylenia (>0), natomiast akcelerometr pomaga w wyznaczeniu punktu równowagi (~0) to postanowiono skorzystać z filtru komplementarnego. Stosuje się go do estymacji sygnałów z niezależnych urządzeń pomiarowych, charakteryzujących się wzajemnym dopełnianiem zakłóceń w dziedzinie częstotliwości [15]. Równania filtru mają postać:

(5)

(6)

gdzie: acc – wartość kąta wychylenia obliczona na podstawie wskazań akcelerometru [°], accx – wartość przyspieszenia w osi pitch [m/s2], acz – wartość przyspieszenia w osi yaw [m/s2], pitch – kąt wychylenia quadrocoptera obliczony na podstawie wskazań żyroskopu i akcelerometru [°], dt – krok czasowy pomiędzy kolejnymi pomiarami [s], gyro – obliczona wartość kąta wychylenia obliczona na podstawie wskazań żyroskopu [°], a – parametr filtru [-].

W omawianym urządzeniu parametr a ustawiono na 0,97. Wyniki działania filtru pokazano na rys. 14.

Rys. 14. Działanie filtru alfa-beta

Fig. 14. Results of working alpha-beta filter

Jak widać, akcelerometr w początkowej fazie pokazuje pozycję quadrocoptera równą około 0°, natomiast pomiar z żyroskopu obarczony jest błędem (dryft). Gdy następuje wychylenie, filtr komplementarny wykorzystuje stabilniejszą wartość kąta pochodzącą z żyroskopu. W momencie, gdy quadrocopter wraca do pozycji wyjściowej algorytm filtru korzysta z odczytanego kąta z akcelerometru. W rezultacie można zauważyć, że oba urządzenia pomiarowe się dopełniają.

6.3. Układy sterowania

Sterowanie quadrocopterem odbywa się poprzez zmianę prędkości obrotowej odpowiednich silników. Jednak, aby maszyna pozwalała na wykonywanie ruchu potrzebny jest algorytm sterowania, który sprawi, że maszyna ustabilizuje się w powietrzu. Mając informacje o położeniu bazowym quadrocoptera można mierzyć uchyb od jego pozycji w dwóch osiach (Roll, Pitch) (rys. 15).

Rys. 15. Działanie filtru komplementarnego

Fig. 15. Results of working the complementary filter

Strukturę układu sterowania dla osi x pokazano na rysunku 16. Dla osi y układ sterowania różni się tylko wartościami nastaw regulatorów PID.

gdzie: xzad – zadane położenie [°], x – aktualne położenie [°],
e – uchyb sterowania [°], w – prędkość obrotowa [%], d – zakłócenia, np. prędkość wiatru.

Informacja o bieżącej pozycji quadrocoptera jest porównywana z pozycją zadaną i trafia na wejście regulatora PID jako uchyb. Dla każdej osi obrotu dokonano wstępnych kalibracji parametrów regulatora, które następnie mogą być korygowane z poziomu smartfona lub aplikacji emulującej terminal. Warto wspomnieć, że strojenie regulatora należy rozpocząć od ustawienia takiego parametru Kp (wzmocnienie proporcjonalne) regulatora, aby podwieszony model nie przechodził samoczynnie w oscylacje. Jednocześnie parametr ten powinien zapewnić odpowiednią szybkość reakcji maszyny. Następnie, w podobny sposób, należy dobrać wartość Kd (wzmocnienie różniczkujące) tak, aby osiągnąć krytyczną stabilność maszyny. Ostatnim krokiem jest dobór wartości Ki (wzmocnienie całkujące), która dopełnia działanie pozostałych członów. Aktualnie trwają prace nad ostatecznym doborem wartości nastaw regulatorów.

Rys. 16. Osie obrotu quadrocoptera [16]

Fig. 16. Quadrocopter axis of rotation [16]

7. Podsumowanie

W dzisiejszych czasach drony zyskują coraz większą popularność ze względu na ich bezproblemowe poruszanie w miejscach niedostępnych dla ludzi oraz coraz szerszym zastosowaniu ich przez amatorów. W artykule opisano projekt oraz kroki prowadzące do samodzielnego wykonania quadrocoptera, który doskonale nadaje się do zastosowań badawczych i przemysłowych. Wszystkie wymienione założenia projektowe zostały spełnione, lot quadrocoptera jest płynny oraz sam potrafi stabilizować swoją pozycję. Wykorzystane komponenty i algorytmy pozwalają na łatwe udoskonalenie całej konstrukcji, a także na obsługę quadrocoptera przez coraz większą liczbę osób posiadającą smartfony.

Bibliografia

1. Piątek B., Zarzycki B., Bezzałogowe środki lotnicze i ich zastosowanie. „Problemy Techniki Uzbrojenia”, R. 41, Z. 122, 2012, 57– 66.

2. [www.amazon.com/b?node=8037720011] – Amazon Prime Air, dostęp 10.11.2014.

3. Stasiak F., Zbiór ćwiczeń. Autodesk Inventor Tom 1. Kurs Podstawowy. Wydawnictwo Expert Books, Aleksandrów Łódzki 2014.

4. RCTimer BC2830/14datasheet.

5. ABC-POWER 30A datasheet.

6. ABC-POWER Li-Po 3S 11,1V 3300mAh datasheet.

7. Atmega 644PA datasheet.

8. Wieczorek H., Eagle, pierwsze kroki. Wydawnictwo BTC, Warszawa 2007.

9. Kardaś M., Mikrokontrolery AVR. Język C. Podstawy programowania. Wydawnictwo Atnel. Szczecin 2011.

10. Francuz T., Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji. Wydawnictwo Helion, Gliwice 2011.

11. Cook D., Intermediate Robot Building. Apress, New York 2010.

12. Hashimi S., Komatineni S., MacLean D., Pro Android 2, Apress, New York 2010.

13. MPU 6050datasheet.

14. http://forbot.pl/blog/artykuly/programowanie/filtr-alfa-beta-teorii-praktyki-1-id2234, dostęp:10.11.2014.

15. Grygiel R., Bieda R., Wojciechowski K., Metody wyznaczania kątów z żyroskopów dla filtru komplementarnego na potrzeby określenia orientacji IMU. „Przegląd Elektrotechniczny” 9/2014, 217– 224.

16. http://multicopter.forestblue.nl/images/quadcopter_x_flight_dynamics_yaw_pitch_roll.jpg, dostęp:10.11.2014.

Unmanned Remote Controlled Flying Unit

Abstract: Quadrocopter as an example of a dron that is used both in a public and industrial sectors. First of all the authors designed and manufactured frame of the device. Then they chosen elements which allow the quadrocopter to flight. There is the central unit in the form of a microcontroller ATmega 644PA on board. In next part the authors explained the programming process of the elements of a quadrocopter control program. The control system for stabilization of the machine requires the information about the location of quadrocopter in space. This is done by motion processing unit which contains an accelerometer and gyroscope.The quadrocopter to fly needs commands from the operator. It has been decided to implement controlling via Bluetooth module and hand-written application on Android.

Keywords: quadrocopter, flying unit, designing, automatics, mechatronics

Patryk Piotrowski

patryk.piotrowski.91@gmail.com

Student pierwszego stopnia studiów inżynierskich na Wydziale Elektrotechniki i Automatyki Politechniki Gdańskiej (kierunek Automatyka i Robotyka, specjalność Automatyka i Systemy Sterowania). Zainteresowania: elektronika, modelarstwo.

Tomasz Witkowski

tmk.witkowski@gmail.com

Student pierwszego stopnia studiów inżynierskich na Wydziale Elektrotechniki i Automatyki Politechniki Gdańskiej (kierunek Automatyka i Robotyka, specjalność Robotyka i Systemy Mechatroniki). Zainteresowania: mechanika, modelarstwo.

dr inż. Robert Piotrowski

robert.piotrowski@pg.gda.pl

Absolwent Wydziału Elektrotechnikii Automatyki Politechniki Gdańskiej (kierunek: Automatyka i Robotyka) (2001 r.). W 2005 r. uzyskał stopień doktora (Automatyka i Robotyka). Obecnie adiunkt w Katedrze Inżynierii Systemów Sterowania. Zainteresowania naukowe dotyczą modelowania i zaawansowanych metod sterowania procesami przemysłowymi.