Projekt i implementacja systemu kontrolującego zdalnie sterowany pojazd z wykorzystaniem platform Android i Arduino Piotr Szarański Promotor: mgr inż.

1 Projekt i implementacja systemu kontrolującego zdalnie ...
Author: Witold Małecki
0 downloads 0 Views

1 Projekt i implementacja systemu kontrolującego zdalnie sterowany pojazd z wykorzystaniem platform Android i Arduino Piotr Szarański Promotor: mgr inż. Zbigniew Rosiek

2 Cel pracy  Stworzenie kompletnego i funkcjonalnego systemu zdalnego sterowania, w skład którego wchodzą:  Zdalnie sterowany pojazd  Kontroler zdalnie sterowanego pojazdu

3 Zakres pracy  Projekt i implementacja oprogramowania wbudowanego w pojazd zdalnie sterowany  Podzespołami pojazdu będzie zawiadywać wybrana platforma Arduino, oprogramowanie sterujące zostanie wykonane w postaci typowego dla tej platformy szkocu w języku programowania C++  Projekt i implementacja oprogramowania wbudowanego w kontroler pojazdu zdalnie sterowanego  Kontrolerem pojazdu zdalnie sterowanego będzie telefon komórkowy „smartphone” z systemem operacyjnym Google Android, oprogramowanie sterujące zostanie zrealizowane w postaci aplikacji APK napisanej w języku programowania Java.  Projekt elektroniczny zdalnie sterowanego pojazdu z wyszczególnieniem bloków funkcyjnych i niezbędnych obliczeń  W oparciu o projekt zostanie skonstruowany pojazd dla celów demonstracyjnych.

4 Wymagania systemu  Zdalnie sterowany pojazd  Zrealizowany w oparciu o platformę Arduino - popularną platformę elektronicznego prototypowania  Pojazd wyposażony w:  Kamerę wideo o rozdzielczości VGA (640x480) osadzoną na ramieniu o dwóch stopniach swobody  Sensor napięcia zasilającego  Oświetlenie pokładowe  Kontroler pojazdu zdalnie sterowanego  Telefon komórkowy typu „smartphone” z najpopularniejszym obecnie mobilnym systemem operacyjnym - Google Android  Sterowanie pojazdem przy użyciu ekranu dotykowego  Napęd pojazdu  Kamera i oświetlenie pokładowe  Ramię kamery wideo  Prezentowanie danych sensorycznych pojazdu przy użyciu ekranu dotykowego  Siła sygnału i opóźnienie transmisji danych  Obraz z pokładowej kamery wideo  Napięcie zasilające pojazdu

5 Wyzwania  Budowa systemu zdalnego sterowania pojazdem jako zagadnienie mechatroniczne  Informatyka  Elektronika  Mechanika  Opracowanie protokołu wymiany danych sterujących kontroler - pojazd  Strumieniowanie obrazu z pojazdu do kontrolera  Wybór odpowiedniej metody strumieniowania obrazu - niskie wymagania sprzętowe, małe opóźnienia  Wydajna implementacja odtwarzacza strumieni na telefonie Google Android  Projekt elektroniczny modułów pojazdu:  Napęd  Oświetlenie  Sterowanie ramieniem kamery  Zasilanie

6 Analiza  Przegląd pojazdów zdalnie sterowanych  Budowa  Komunikacja  Sterowanie  Pojazd zdalnie sterowany w ujęciu mechatronicznym  Sensoryka  Aktoryka  Mechanika  Obliczenia  Platforma Google Android  Dostępne media transmisyjne  Przechowywanie danych  Metody programowania  Platforma prototypowania elektronicznego Arduino  Budowa  Potencjał elektroniczny  Możliwości rozbudowy  Metody programowania  Strumieniowanie materiału wideo z niskim opóźnieniem

7 Projekt systemu  Przypadki użycia  Diagramy aplikacji kontrolera i wbudowanej w pojazd:  Architektury  Klas  Maszyny stanowej  Aktywności  Harmonogramowania  Schemat bazy danych aplikacji sterującej

8 Projekt systemu  Makiety ekranów aplikacji strującej

9 Projekt systemu  Projekt elektronicznych układów pojazdu  Moduł napędowy  Moduł kamery  Moduł oświetlenia  Sensor napięcia zasilającego  Moduł zasilający

10 Projekt systemu

11 Implementacja  Platforma Arduino Yun sterująca działaniem pojazdu zdalnie sterowanego  Autorska płyta zawierająca elektroniczne sterowniki modułów wykonawczych pojazdu osadzona na platformie Arduino Yun  Sterownik oświetlenia bazuje na tranzystorze bipolarnym NPN w układzie ze wspólnym emiterem  Sterownik silników napędowych bazuje na układzie DRV8833 firmy Texas Instruments  Silniki krokowe sterowane bezpośrednio z ATMEGA 32u4  Autorski program dla mikrokontrolera Atmel ATMEGA 32u4 zawiadujący pracą podzespołów pojazdu dla platformy Arduino Yun  Autorski program dla kontrolera pojazdu na platformę Google Android  Komunikacja kontrolera z pojazdem oparta na standardzie WiFi 802.11 b/g/n  Gniazdo sieciowe dedykowane komendom kontrolera i danym sensorycznym pojazdu  Gniazdo sieciowe dedykowane strumieniowi wideo

12 Problemy na etapie imlementacji  Opracowanie wydajnej metody obsługi strumienia wideo na platformie Google Android i Arduino Yun  Wykorzystanie kodeka o małych opóźnieniach oraz niskich wymaganiach pamięciowych i obliczeniowych - M-JPEG  Opracowanie wydajnego mechanizmu operowania na strumieniu M-JPEG  Opracowanie wydajnego mechanizmu dekodowania i prezentowania materiału wideo  Opracowanie wydajnej, nieblokującej metody komunikacji kontrolera z pojazdem  Wykorzystanie wątków działających w tle aplikacji (polling ekranu dotykowego)  Ucieczka przed algorytmem Nagle`a (TCP_NODELAY)  Pakiety danych o niewielkiej i stałej długości  Unikanie alokacji nowych obiektów z powodu negatywnego wpływu procesu odśmiecania pamięci (Garbage Collection) na płynność działania aplikacji kontrolera  Niewystarczająca wydajność prądowa modułu zasilającego

13 Realizacja

14 Pole dotykowe sterujące napędem pojazdu Pole dotykowe sterujące pozycją kamery Pole włączające i wyłączające oświetlenie Pole włączające i wyłączające kamerę Panel informacyjny: Opóźnienie sygnału Napięcie zasilające Moc odbieranego sygnału Obraz z kamery wideo prezentowany w tle

15 Realizacja Regulatory napięcia LM2490T 5V z kondensatorami filtrującymi Sterownik silników prądu stałego DRV8833 Tranzystor NPN BC548B wraz z rezystorami ograniczającymi prąd i ściągającym do masy Wyprowadzenia od lewej: do silników prądu stałego, krokowych, oświetlenia, zasilania

16 Testy  Testy przeprowadzone osobiście oraz z udziałem osób trzecich  Testy funkcjonalne w oparciu o listę przypadków użycia  Profilowanie aplikacji kontrolera  Śledzenie alokacji pamięci  Obciążenie procesora  Aktywność Garbage Collectora oraz jego wpływ na płynność aplikacji  Profilowanie systemu operacyjnego Linux OpenWRT pojazdu  Analiza statystyk interfejsu sieciowego Arduino Yun pod kątem obciążenia, błędów i retransmisji pakietów  Analiza statystyk obciążenia procesora i pamięci RAM układu Atheros AR9331

17 Wnioski z testów  Funkcjonalność systemu zgodna z wymaganiami  Napęd w stylu gąsienicowym daje duże zdolności manewrowania  Niskiej jakości antena WiFi wbudowana w Arduino Yun ogranicza użyteczny dystans między kontrolerem a pojazdem  Maksymalny zasięg w terenie otwartym wynosi około 10 metrów  Antena o niejednorodnej charakterystyce kierunkowej dodatkowo ogranicza ten dystans  Profilowanie aplikacji kontrolera nie wykazuje problemów  Mała aktywność Garbage Collectora bez długich pauz w działaniu systemu (

18 Podsumowanie i wnioski  System operacyjny Google Android jest rozwiniętym i nowoczesnym systemem operacyjnym  Bogactwo API i narzędzi wspierających tworzenie aplikacji udostępniane przez Android SDK  Programowanie w języku Java, który jest mniej wymagający niż np. w Objective C znanym z platformy Apple IOS  Platforma elektronicznego prototypowania Arduino tworzy tanie i dostępne możliwości interakcji z otoczeniem  Pozyskiwania danych z otaczającego świata  Materializowania pracy programów poza ekranem komputera  Wykorzystanie cech obu platform pozwala tworzyć złożone systemy o szerokim spektrum zastosowań i wysokiej użyteczności

19 Prezentacja modelu demontracyjnego