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

Podobne dokumenty