article in PDF format - Zeszyty Naukowe Instytutu Pojazdów
Transkrypt
article in PDF format - Zeszyty Naukowe Instytutu Pojazdów
ZESZYTY NAUKOWE INSTYTUTU POJAZDÓW 2(98)/2014 Sławomir Andrian1, Jędrzej Mączak2, Przemysław Szulim3, Damian Walczak4 WYKORZYSTANIE SYSTEMU OPERACYJNEGO ANDROID DO STEROWANIA PLATFORMĄ MOBILNĄ 1. Wstęp Celem było opracowanie mechanizmów komunikacji pomiędzy systemem Android a platformą mobilną, za pomocą powszechnie dostępnego sprzętu. W tym celu wykorzystany został telefon komórkowy z systemem Android, który jest elementem sterującym robotem. Do komunikacji pomiędzy smartfonem, a robotem użyta została technologia Bluetooth oraz został wykorzystany protokół UDP, pozwalają na bezprzewodową transmisję danych. Układ sterowania, napisany w języku LabVIEW jest odpowiedzialny za odczyt parametrów z czujnika przyspieszeń telefonu oraz za ich zamianę na sygnał napięciowy, służący do wysterowania silników platformy mobilnej. Ponadto, przeprowadzona została analiza możliwości wykorzystania sensorów, będących integralną częścią współczesnych telefonów komórkowych [1]. Zbadane zostały możliwości sensorów wbudowanych w współczesne telefony komórkowe i tablety. Ponadto poddane analizie zostały protokoły transmisji danych Bluetooth i UDP. Technologię Bluetooth wykorzystano do stworzenia pełnej architektury symulatora platformy. W tym celu stworzono aplikację, w środowisku LabVIEW dedykowaną symulowanej platformie. Protokół UDP zastosowano do komunikacji z rzeczywistym robotem. Do realizacji bezprzewodowego sterowania niezbędna jest współpraca dwóch aplikacji napisanych w zupełnie różnych środowiskach. Aplikacja wykorzystująca język programowania Java zapewnia możliwość komunikacji oraz transmisji danych z urządzenia sterującego. Oprogramowanie stworzone przy pomocy LabVIEW odpowiada za nawiązanie połączenia, odbiór danych z sensorów oraz ich konwersję na prędkość kątową dla silników elektrycznych platformy. 2. Sensory wykorzystywane w systemie Android Android jest zdecydowanie najczęściej wykorzystywanym systemem operacyjnym w urządzeniach mobilnych [2]. Wyróżniającą cechą tego systemu jako platformy projektowej jest otwartość – brak ograniczeń ze strony tylko jednego wydawcy. Ponadto deweloperzy aplikacji mogą korzystać bez dodatkowych opłat z gotowych fragmentów kodów źródłowych obsługujących np. sensory wbudowane w urządzenie. Możliwości personalizacji oraz modyfikacji, przygotowanych przez twórców systemu aplikacji, są znacznie większe niż w przypadku konkurencyjnych systemów operacyjnych, tj. np. IOS Apple. Inż. Sławomir Andrian, student, Wydział SiMR, Politechnika Warszawska Dr inż. Jędrzej Mączak, adiunkt, Instytut Pojazdów, Politechnika Warszawska 3 Mgr inż. Przemysław Szulim, asystent, Instytut Pojazdów, Politechnika Warszawska 4 Inż. Damian Walczak, student, Wydział SiMR, Politechnika Warszawska 1 2 5 Sensory w systemie Android można podzielić na dwie główne grupy. Pierwsza grupa to fizycznie istniejące czujniki, natomiast druga grupa to specjalne oprogramowanie, symulujące czujniki. W ten sposób, pobierając informacje wejściowe z rzeczywistych sensorów, można, poprzez odpowiednią konwersję danych, uzyskać pożądane informacje wyjściowe – na przykład z czujnika przyspieszeń można uzyskać położenie wzdłuż trzech osi układu współrzędnych. Czujniki są też klasyfikowane pod względem przeznaczenia na trzy grupy [3]. W nawiasach zostało podane nazewnictwo Google poszczególnych sensorów. stosowane w środowisku programistycznym : Sensory ruchu: Czujnik przyspieszeń (akcelerometr) (TYPE_ACCELEROMETER) – służy do pomiaru przyspieszenia w [ dla każdej z osi układu współrzędnych: x, y i z; Czujnik siły ciężkości (TYPE_GRAVITY) – służy do pomiaru siły ciężkości w trzech kierunkach zgodnie z osiami x, y i z. Jednostką jest [ Czujnik żyroskopowy (TYPE_GYROSCOPE) – służy do pomiaru kąta obrotu urządzenia (telefonu) wzdłuż trzech osi: x, y i z. Wynik podawany jest w Czujnik przyspieszeń liniowych (TYPE_LINEAR_ACCELERATION) – służy do pomiaru przyspieszenia liniowego w [ urządzenia wzdłuż wybranej osi układu współrzędnych x, y lub z; Czujnik rotacji (TYPE_ROTATION_VECTOR) – służy do pomiaru pozycji urządzenia w przestrzeni, dostarczając trzy składowe wektora położenia; Sensory pozycji: Czujnik pola magnetycznego (TYPE_MAGNETIC_FIELD) – zwraca wartość pola magnetycznego dla wszystkich osi układu współrzędnych: x, y i z. Wynik wyświetlany jest w Czujnik orientacji (TYPE_ORIENTATION) – służy do pomiaru odchylenia, wysokości i kąta obrotu urządzenia w przestrzeni; Czujnik odległości (TYPE_PROXIMITY) – bada odległość pomiędzy czujnikiem znajdującym się najczęściej w okolicy ekranu urządzenia a danym obiektem - najczęściej jest to twarz człowieka. Uzyskany wynik podawany jest w [cm]; Sensory środowiskowe: Czujnik ciśnienia (TYPE_PRESSURE) – służy do pomiaru bieżącego ciśnienia atmosfery ziemskiej. Wynik podawany jest w [hPA] lub w [mbar]; Czujnik jasności (TYPE_LIGHT) – służy do pomiaru jasności obszaru, w którym znajduje się urządzenie. Wynik wyświetlany jest w luksach [lx]; Czujnik temperatury (TYPE_TEMPERATURE) – służy do pomiaru temperatury otoczenia w [ ; Czujnik wilgotności powierza (TYPE_RELATIVE_HUMIDITY) – służy do pomiaru wilgotności otoczenia, zwracając wartość w [%]; 6 Zakres możliwości poszczególnych modeli smartfonów jest ściśle związany z parametrami czujników w jakie zostały wyposażone te urządzenia. Informacją wyjściową z czujników stosowanych w urządzeniach typu smartfon jest tablica wartości zmiennopozycyjnych. Rozmiar tablicy zależy od konkretnego czujnika. Informacje wejściowe z poszczególnych sensorów są aktualizowane ze zmienną częstotliwością, określoną przez oprogramowanie. 3. Protokoły transmisji danych pomiędzy smartfonem a platformą mobilną Przesyłanie danych z sensorów pomiędzy telefonem komórkowym, a platformą mobilną może być realizowane na przykład przy pomocy sieci bezprzewodowej z wykorzystaniem protokołów TCP/IP (Transmission Control Protocol/Internet Protocol), UDP (User Datagram Protocol), z wykorzystaniem technologii Bluetooth lub GSM(Global System for Mobile Communications). Klasyfikując wyżej wymienione możliwości realizacji przesyłania danych pod względem zasięgu, najmniejszy zasięg uzyskuje się wykorzystując technologię Bluetooth. Najczęściej jest to 10 metrów, które w zupełności wystarczają do komunikacji z symulowaną platformą. Znacznie większy zasięg zależny od zastosowanego routera uzyskuje się wykorzystując protokoły TCP/IP oraz UDP. Technologia GSM pozwala na przesyłanie danych na bardzo duże odległości, rzędu tysięcy kilometrów. 3.1. Protokół Bluetooth Bluetooth, z encyklopedycznego punktu widzenia, jest to norma określająca technikę przesyłania sygnałów cyfrowych na małe odległości [4]. Obsługuje ona standard Bluetooth, który jest opisany w specyfikacji IEEE (Institute of Electrical and Electronics Engineers). Oferowany zasięg to rozpiętość 3 stopniowa: 100m, 10m i 1m. Przy czym najczęściej spotyka się klasę drugą. Przesyłanie danych opiera się na zjawisku propagacji fali elektromagnetycznej - fali radiowej. Wykorzystywane pasmo to 2,4 GHz. Technologia Bluetooth pozwala na połączenia dwu, lub wielo punktowe. Jeżeli co najmniej dwa urządzenia pracują w tym samym kanale, wówczas tworzą one tak zwaną podsieć (ang. piconet). Aby można było oddzielić dzielące ten sam kanał urządzenia, jedno z nich dostaje rolę nadrzędną (ang. master), a drugie podrzędną (ang. slave). Dowolne urządzenie może pełnić którąkolwiek z tych ról. Ilość aktywnych urządzeń typu "slave" nie może przekraczać siedmiu, natomiast ilość urządzeń pozostających w stanie synchronizacji z urządzeniem "master" (tryb niskiego poboru mocy i oczekiwania) nie może przekraczać 255. Głównymi parametrami odróżniającymi poszczególne, należące do różnych urządzeń, sieci Bluetooth są: 48-bitowy adres urządzenia Bluetooth (Bluetooth Device Address) (MAC), nazwa urządzenia Bluetooth (dowolna, wybrana przez użytkownika) [1]. Z biegiem lat przepustowość rosła wraz z kolejnymi wersjami Bluetooth: Bluetooth 1.0 – 21 kb/s Bluetooth 1.1 – 124 kb/s Bluetooth 1.2 – 328 kb/s Bluetooth 2.0 – 2,1 Mb/s (wprowadzenie Enhanced Data Rate (potocznie BT 2.1) w konsekwencji wzmocniło to transfer do 3,1 Mb/s) Bluetooth 3.0 – 24 Mb/s Bluetooth 3.1 – 40 Mb/s 7 Bluetooth 4.0 – 200 kB/s (wzrost zasięgu działania do 100m kosztem obniżonego transferu przy znacząco ograniczonym poborem energii). 3.2. Protokół UDP Do komunikacji pomiędzy platformą a smartfonem wykorzystano protokół transmisji danych UDP (User Datagram Protocol). Zastosowanie tego protokołu pozwala na ominięcie buforowania danych, co przekłada się na minimalne obciążenie dla protokołów warstwy aplikacji, a w konsekwencji na szybkość działania aplikacji. Protokół UDP jest standardem TCP/IP. Został on zdefiniowany w specyfikacji RFC [5] (Request for Comments) 768 User Datagram Protocol. Jedną z głównych cech charakteryzujących UDP jako warstwę transportu jest brak obowiązku nawiązywania połączenia. Można tu przytoczyć zasadę działania radia - audycje są nadawane w eter bez nawiązania połączenia z każdym odbiorcą (radioodbiornikiem). Komunikaty są wysyłane bez gwarancji dostarczenia do adresata. "Najczęściej protokoły warstwy aplikacji bazujące na UDP dostarczają własnych usług związanych z niezawodnością, retransmitują okresowo komunikaty UDP lub też retransmitują po określonym czasie" [6]. Takie zabezpieczenie jest niewątpliwą zaletą, zważywszy na prostotę oraz szybkość transmisji, jaką oferuje ten protokół. Długość nagłówka UDP wynosi 8 bajtów. Jest to ramka składająca się z: portu źródła, portu docelowego, długości komunikatu oraz sumy kontrolnej. Każdy z elementów w ramce zajmuje w niej 2-bajtowe pole. Porty służą do odbierania i wysyłania komunikatów. Port źródła umożliwia identyfikację urządzenia wysyłającego komunikaty. Port docelowy identyfikuje globalnie i jednoznacznie urządzenie odbierające komunikaty. Zarówno po stronie serwera jak i po stronie klienta protokoły nasłuchują konkretnego, znanego numeru portu, jednak po stronie klienta port może zostać przydzielony w sposób dynamiczny. Długość komunikatu zawiera sie w przedziale: 8 bajtów< x < 65515 bajtów. Ostatnim z elementów znajdujących się w ramce jest suma kontrolna, która jest sposobem na sprawdzenie poprawności wysyłanego komunikatu. Obliczanie jej następuje poprzez podzielenie nagłówka na 16-bitowe części informacji. Następnie w każdej z nich bity 0 zamieniane są na 1 i odwrotnie. Inną cechą charakterystyczną dla protokołu UDP jest brak segmentacji. Aplikacja na smartfonie powinna wysyłać dane sterujące w małych blokach, tak aby nie został przekroczony MTU (Maximum Transmission Unit). MTU jest to rozmiar największego bloku jaki może zostać przeniesiony przez protokół w jednostce czasu [1]. Rys. 1. Ramka komunikatu UDP [6] 4. Przykładowe realizacje W celu zapewnienia komunikacji pomiędzy platformą mobilną a urządzeniem sterującym wykorzystano dwie aplikacje typu Open Source: Wireless IMU [7] oraz Send Sensor [8]. Pierwsza aplikacja została użyta w celu sprawdzenia stworzonego układu 8 sterowania w środowisku symulacyjnym. Druga aplikacja pozwala na zbadanie stworzonego układu sterowania na rzeczywistej platformie mobilnej. 4.1. Sterowanie - Android z wykorzystaniem technologii Bluetooth Do nawiązania komunikacji ze środowiskiem symulacyjnym wykorzystano technologię Bluetooth oraz aplikację Send Sensor. Aplikacja ta została napisana w niskopoziomowym języku programowania JAVA. Umożliwia parowanie urządzeń współpracujących – smartfonu oraz symulatora (aplikacji napisanej w środowisku LabVIEW), działającego na komputerze klasy PC. Ponadto wysyła do symulatora odczyty z sensorów wbudowanych w urządzenie sterujące: czujnika przyspieszeń oraz czujnika orientacji. 4.2. Sterowanie - LabVIEW z wykorzystaniem technologii Bluetooth Opracowano układ sterowania, którego zadaniem jest płynna zmiana prędkości obrotowej oraz kierunku platformy mobilnej wraz ze zmianą położenia urządzenia sterującego – smartfonu w przestrzeni. W celu sprawdzenia układu sterowania pod kątem zgodności z założeniami, został on zaimplementowany do środowiska symulacyjnego LabVIEW. Rys. 2. Główny panel aplikacji symulatora napisanej w LabVIEW. Na Rys. 2 przedstawiono główny panel symulatora. Został on podzielony na trzy sekcje. Pierwsza sekcja, znajduje się po lewej stronie okna, przedstawia zestaw wskaźników niezbędnych z punktu widzenia operatora platformy mobilnej. Aplikacja umożliwia podgląd wartości, w czasie rzeczywistym, dotyczących położenia telefonu wzdłuż trzech osi układu współrzędnych (1), obserwację zakresu prędkości obrotowej platformy (2) oraz ilustrację wyżej wymienionych zmiennych na wykresie (4). Ponadto okno (3) udostępnia nazwę oraz adres MAC komputera klasy PC – są to parametry niezbędne do nawiązania komunikacji z wykorzystaniem technologii Bluetooth. 9 Rys. 3. Diagram blokowy głównego panelu symulatora. 10 Druga sekcja przedstawia okno podglądu symulacji (5). Czerwonym okręgiem została oznaczona platforma mobilna. Podgląd symulacji zrealizowany jest w przestrzeni trójwymiarowej, istnieje możliwość podglądu ruchu robota z dowolnej strony oraz pod dowolnym kątem. Co więcej zróżnicowanie rzeźby terenu pozwala na symulację rzeczywistych warunków, którym musi sprostać platforma mobilna. Trzecia sekcja zawiera okno podglądu z kamery umieszczonej na robocie (6). Dzięki takiemu rozwiązaniu, obserwacja rzeczywistego nachylenia terenu jest znacznie łatwiejsza. Kamera wykorzystuje lidar do zebrania szeregu punktów, będących odzwierciedleniem przeszkód znajdujących się przed robotem, a następnie siatka zebranych punktów zostaje przetworzona na symulację widoczną w oknie (6). Dodatkowo istnieje możliwość zmiany nachylenia kamery względem płaszczyzny poziomej (7). Rys. 3 przedstawia diagram blokowy aplikacji symulatora, jest to architektura wielowątkowa odpowiadająca między innymi za: - inicjalizację i nawiązanie połączenia z wykorzystaniem protokołu Bluetooth; - inicjalizację silników elektrycznych platformy i serwomechanizmów; - realizację układu sterowania – odczyt informacji sterujących z czujników, a następnie ich odpowiednią konwersję i dostarczenie informacji wyjściowej w postaci prędkości kątowej koła platformy. 4.3. Sterowanie - Android z wykorzystaniem protokołu UDP Aby zrealizować to zadanie wykorzystano aplikację Wireless IMU, która umożliwia, komunikację ze sterownikiem platformy, a także udostępnia odczyty z sensora przyspieszeń wbudowanego w telefon. Aby nawiązać połączenie z platformą wystarczy podać adres IP oraz port – niezbędne do jednoznacznego zidentyfikowania urządzenia odbiorcy. Ponadto aplikacja ta pozwala na wybór częstotliwości z jaką wysyłane są informacje sterujące – odczyty z czujników. 4.4. Sterowanie - LabVIEW z wykorzystaniem protokołu UDP Oprogramowanie układu sterowania platformy zostało napisane w środowisku LabVIEW. Podobnie jak w przypadku symulatora, odpowiada za nawiązanie komunikacji oraz odbiór danych sterujących z czujników smartfona. Mechanizmy komunikacji oparte zostały na protokole UDP (User datagram protocol). Na Rys. 4 przedstawiono zasadę działania procesu sterowania. Rys. 4. Schemat przedstawiający zasadę działania procesu sterowania. 11 Operator – użytkownik, posługuje się smartfonem lub tabletem (urządzeniem sterującym). Smartfon wykorzystuje protokół UDP do nawiązania komunikacji z układem cyfrowym znajdującym się na platformie mobilnej. Ponadto na komputerze klasy PC znajduje się aplikacja operatora (Rys. 5), która umożliwia podgląd w czasie rzeczywistym parametrów związanych ze sterowaniem. Zarówno telefon, komputer przenośny, jak i platforma znajdują się w tej samej sieci bezprzewodowej, co zostało zrealizowane przy pomocy routera. Rys. 5. Panel operatora stworzony w środowisku LabVIEW. Rys. 6. Diagram blokowy głównego panelu programu. 12 Na Rys. 6 przedstawiono diagram blokowy aplikacji zaimplementowanej do układu cyfrowego platformy mobilnej. Podobnie jak w przypadku symulatora jest to architektura wielowątkowa. Proces sterowania odbywa się w sposób płynny, a dobór prędkości obrotowej kół, jak i kierunku ruchu robota jest zgodny z wolą operatora. 5. Podsumowanie Wykorzystanie komunikacji bezprzewodowej w chwili obecnej XXI wieku jest już nie tyle kuszącą możliwością, a obowiązkiem w zakresie urządzeń mobilnych. Pozbycie się uprzęży, w postaci przewodów, stwarza zupełnie nowe możliwości oraz wskazuje kierunek dalszego rozwoju w dobie globalizacji. Aktualnie najcenniejsza staje się informacja. To właśnie szybkość, jakość i sposób przesyłanych danych są kluczowymi czynnikami determinującymi sukces danego projektu. Bezprzewodowa komunikacja to nie tylko same udogodnienia, rozwojowi technologii towarzyszą zupełnie nowe problemy oraz zadania jakim muszą sprostać inżynierowie. W platformach mobilnych takie główne zadania dotyczą zasilania, napędu oraz bezpieczeństwa. Istotne jest umiejętne rozwiązanie kwestii zasilania silników elektrycznych oraz układu cyfrowego, a także dobranie odpowiedniego napędu i zabezpieczenie układu przez warunkami atmosferycznymi w zależności od wykonywanych prac. Użycie w ramach wykonywania pracy technologii Bluetooth pozwoliło na uzyskanie jakości połączenia, która jest satysfakcjonująca, pod względem większości zadań stawianych urządzeniom. Jednak nie jest ona aż tak łatwa w implementacji. Bardzo dużym problemem ze względu na protokoły bezpieczeństwa oraz dostępność sterowników jest samo połączenie dwóch urządzeń za pomocą tzw. access point, czyli punktu dostępu. Często jest to próg nie do przejścia, a nie ma to nic wspólnego z programowaniem - takie połączenie odbywa się za pomocą systemu, wbudowanego w telefon oraz komputer. Jednak, jak pokazuje ta praca, istnieje możliwość ominięcia tej przeszkody, łącząc się bezpośrednio z oprogramowaniem napisanym w środowisku LabVIEW. Stwarza to zupełnie nowe możliwości w zakresie komunikacji bezprzewodowej i dalszego rozwoju innowacyjnych projektów. W celu sprawdzenia funkcjonalności oraz płynności zrealizowanego zadania z wykorzystaniem technologii Bluetooth stworzono pełen symulator, z wykorzystaniem środowiska LabVIEW. Żądania co do kierunku i prędkości stawiane przez operatora, którym jest użytkownik odzwierciedlają ruchy wykonywane przez platformę mobilną w oknie symulatora. Sterowanie realizowane jest w sposób płynny oraz zgodnie z postawionymi założeniami. Skorzystanie z protokołu UDP pozwala na implementację układu sterowania na dowolnym urządzeniu wyposażonym w układ cyfrowy CompactRIO, sbRIO lub myRIO. Brak ograniczeń otwiera nowe możliwości i pozwala na dostosowanie układu sterowania do wszelkich stawianych mu zadań. Na potrzeby tej pracy układ został zaimplementowany do sterownika sbRIO, znajdującego się na platformie PITSCO firmy National Instruments. W ten sposób można porównać współpracę urządzenia sterującego z symulatorem oraz z rzeczywistą platformą. Podobnie jak w przypadku symulatora, robot płynnie reaguje na ruchy telefonu, nie zaobserwowano opóźnienia w transmisji danych i w reakcji silników elektrycznych wpływającego na komfort pracy operatora. Platforma zachowuje się zgodnie z przyjętymi założeniami. Zdalne sterowanie może przynieść ogromne korzyści, jedną z nich może być wyeliminowanie kosztów związanych ze szkoleniem dotyczącym obsługi oraz 13 prowadzenia skomplikowanych pojazdów. Opanowanie sterowania przy pomocy smartfonu jest bardzo proste i nie wymaga specjalistycznego szkolenia. Co więcej układ sterowania zaimplementowany do platformy mobilnej może zostać wykorzystany do celów naukowo - dydaktycznych. Obserwacja i analiza wpływu zmiany położenia w przestrzeni elementu sterującego na prędkość i przemieszczenie robota, a także próba rozbudowania i optymalizacji algorytmu może przynieść jeszcze bardziej wymierne korzyści zarówno dla społeczeństwa jak i dla przemysłu [1]. Literatura: [1] S. Andrian, Sterowanie platformą mobilną z wykorzystaniem systemu Android, praca inżynierska na wydziale Samochodów i Maszyn Roboczych, Warszawa 2014; [2] Globalna liczba sprzedanych urządzeń mobilnych na platformę mobilną w 2012 roku, {Dostępny - 21.10.2013: http://s1.blomedia.pl/komorkomania.pl/images/2012/11/Globalna-liczbasprzedanych-urzadzen-mobilnych-z-podzialem-na-platforme-mobilna-w-2012roku-liczby-w-tysiacach-sztukfot.-wlasne-136971.jpg }; [3] Sensors Overview, {Dostępny – 27.11.2013: http://developer.android.com/guide/topics/sensors/sensors_overview.html}; [4] Bluetooth, {Dostępny – 28.12.2013: http://encyklopedia.pwn.pl/haslo/3878478/bluetooth.html}; [5] User Datagram Protocol, {Dostępny – 3.12.2013: http://rfc-base.org/txt/rfc768.txt 3.12.2013}; [6] T. Lee, J. Davies, Microsoft Windows 2000 Protokoły i usługi TCP/IP, APN PROMISE, Warszawa 2001, s. 223; [7] Wireless IMU, {Dostępny – 12.10.2013: https://play.google.com/store/apps/details?id=org.zwiener.wimu&hl=pl}; [8] SendSensor, {Dostępny – 18.03.2013: https://s3.amazonaws.com/LVHacker_Toolkits/LabVIEW+Android+Interface/Se ndSensor.apk}. Streszczenie W artykule przeanalizowano możliwości wykorzystania urządzeń mobilnych takich jak smartfony i tablety do sterowania platformami mobilnymi. Zaprezentowano możliwości implementacji bezprzewodowej komunikacji pomiędzy najpopularniejszym systemem operacyjnym wśród telefonów komórkowych i tabletów - Androidem, a platformą mobilną. Do komunikacji pomiędzy platformą a smartfonem wykorzystana została technologia Bluetooth oraz protokół transmisji danych UDP (User Datagram Protocol). Zastosowanie protokołu UDP pozwala na ominięcie buforowania danych, co przekłada się na minimalne obciążenie dla protokołów warstwy aplikacji, a w konsekwencji na szybkość działania aplikacji. Wykonany został układ sterowania robotem, którego zadaniem między innymi jest odczyt oraz odpowiednia konwersja danych z czujników: przyspieszeń oraz orientacji, wbudowanych w telefon. Obsługa wymiany informacji, pomiędzy rdzeniem układu cyfrowego platformy, a telefonem została zrealizowana poprzez dwie aplikacje. Pierwsza z nich napisana w środowisku LabVIEW, odpowiada za implementację układu sterowania oraz nawiązanie 14 komunikacji z urządzeniem sterującym- smartfonem. Druga, napisana w środowisku JAVA, udostępnia w czasie rzeczywistym pozyskiwane z czujników informacje. W ten sposób można jednoznacznie określić położenie telefonu w przestrzeni, a co za tym idzie zdefiniować dla poszczególnych położeń telefonu, wartości prędkości kątowej każdego z kół robota. Ponadto, wykonany układ sterowania jest niezwykle uniwersalny, ponieważ z łatwością może zostać zaimplementowany na dowolnym urządzeniu wyposażonym w CompactRIO, sbRIO lub my-RIO. Urządzenie sterujące również może być dowolne, system operacyjny Android jest wykorzystywany przez szerokie spektrum producentów i ze względu na swoją konwencję otwartości użytkownik nie jest zobligowany do tylko jednej marki. Opracowany układ sterowania zaimplementowany do platformy mobilnej może zostać wykorzystany do celów naukowo- dydaktycznych, poprzez obserwację i analizę wpływu zmian położenia w przestrzeni elementu sterującego na prędkość i przemieszczenie robota Słowa kluczowe: LabVIEW, Android, Platforma mobilna, Zdalne sterowanie USE OF ANDROID OPERATING SYSTEM TO CONTROL MOBILE PLATFORM Abstract The paper examines the possibilities of using mobile devices such as smartphones and tablets to control the mobile platforms. The possibilities of implementation of wireless communication between the most popular mobile operating system for phones and tablets-Android and mobile platform are presented. For communication between the platform and the smartphone Bluetooth technology and data transmission protocol UDP (User Datagram Protocol) has been used. The use of UDP protocol allows to avoid the data cache, which translates into a minimum load for the application layer protocols, and in consequence the speed of the application. Robot control system was made, which tasks, among others, is reading and the corresponding conversion of data from sensors: acceleration and orientation, which are built-in phone. The exchange of information support between the core of the digital platform and the phone has been implemented through two applications. First application was created in LabVIEW environment, it is responsible for the implementation of the control system and establishing communication with the control device- smartphone. Second application was created in JAVA environment and it shares in real time the information obtained from device sensors. In this way the location of the phone in the surface can be explicitly specified and in consequence for each device positions the angular velocity of each wheel robot. What is more, the control system is made extremely versatile, as it can easily be implemented on any device equipped with a CompactRIO, sbRIO, or myRIO. The control device is also unrestricted, the Android operating system is used by a wide range of producers and due to its openness convention, user is not obligated to only one brand. 15 Created and implemented robot control system to mobile platform, can be used for the purposes of research and teaching through observation and analysis of the impact of device position change to the velocity and dislocation of the robot [1]. Keywords: LabVIEW, Android, Mobile platform, Remote Control 16