České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce
Ovládání RC modelu pomocí Wi-fi Pavel Valenta
Vedoucí práce: Ing. Martin Komárek
Studijní program: Softwarové technologie a management, Bakalářský Obor: Softwarové inženýrství 28. ledna 2011
iv
v
Poděkování Zde můžete napsat své poděkování, pokud chcete a máte komu děkovat.
vi
vii
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
Ve Velkých přílepech dne 0. 0. 2011
.............................................................
viii
Abstract TODO: Translation of Czech abstract into English.
Abstrakt Bakalářská práce se zabývá ovládáním RC modelů s použitím síťové technologie Wi-Fi. Práce popisuje implementaci bezdrátového ovládání RC modelu a v něm zabudovaných zařízení, která je založená na využití ISO/OSI modelu a standardních síťových komunikačních protokolů.
ix
x
Obsah 1 Úvod
1
2 Teorie a cíle 2.1 Historie rádiového ovládání . . . . . . . . . . . . 2.2 Klasické rádiové ovládání modelů . . . . . . . . . 2.3 Použití Wi-Fi . . . . . . . . . . . . . . . . . . . . 2.3.1 Přínosy Wi-Fi sítě pro ovládání modelů . 2.3.2 Model ISO/OSI . . . . . . . . . . . . . . . 2.3.3 Komunikační protokoly transportní vrstvy 2.4 Cíle práce . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . OSI . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
3 3 3 4 4 4 5 5
3 Analýza 3.1 Analýza požadavků . . . . . . . . . . 3.1.1 Funkční požadavky . . . . . . 3.1.2 Nefunkční požadavky . . . . . 3.2 Hardwarová část práce . . . . . . . . 3.3 Softwarová část práce . . . . . . . . 3.4 Podobné realizované projekty . . . . 3.4.1 Analýza realizovaných řešení 3.4.2 Projekt WiFi Robot . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
7 7 7 7 8 9 9 9 9
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
4 Návrh 4.1 HW řešení . . . . . . . . . . . . . . . . 4.2 SW řešení . . . . . . . . . . . . . . . . 4.2.1 Architektura SW a komunikace 4.2.2 Funkce zajištění modelu a černé 4.2.3 Server . . . . . . . . . . . . . . 4.2.4 Klient . . . . . . . . . . . . . . 4.2.5 Uživatelské akce . . . . . . . .
. . . . . . . . . . . . . . . skříňky . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
11 11 12 12 12 12 12 13
5 Realizace 5.1 Vývojové prostředí . 5.2 Hardwarové zapojení 5.3 Síťová komunikace . 5.4 Serverová aplikace . 5.5 Klientská aplikace . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
15 15 15 15 15 15
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
xi
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
xii
OBSAH
6 Testování
17
7 Závěr
19
Seznam obrázků 2.1
Grafické znázornění vrstev modelu OSI . . . . . . . . . . . . . . . . . . . . . .
3.1
Fotografie modelu z projektu WiFi Robot. . . . . . . . . . . . . . . . . . . . . 10
4.1
Diagram propojení jednotlivých hadrwarových částí systému . . . . . . . . . . 11
xiii
4
xiv
SEZNAM OBRÁZKŮ
Kapitola 1
Úvod Smyslem této práce je realizace alternativy k zavedenému způsobu bezdrátovému ovládání modelů a přesunutí ovládání ze spárované dvojice zařízení přijímač-vysílač do aplikací v počítačích. Motivací pro tuto práci je vytvoření způsobu ovládání, které umožní řízení modelu z běžně dostupných zařízení s podporou Wi-Fi, bez nutnosti použití speciálního ovladače se specifickou dvojicí vysílače a přijímače. To umožní mimo jiné získat plnou kontrolu nad samotným modelem a komunikací mezi ovladačem a modelem a dále možnost použití, správy a ovládání dalších zařízení integrovaných do modelu.
1
2
KAPITOLA 1. ÚVOD
Kapitola 2
Teorie a cíle 2.1
Historie rádiového ovládání
Bezdrátové ovládání modelů pomocí je známé od roku 1897, kdy Nikola Tesla vytvořil model lodi, který ze břehu bezdrátově ovládal pomocí rádiových vln. Velkému rozvoji rádiového ovládání přispěly válečné konfliky. Technologie rádiového ovládání se využívala pro řízení letové dráhy bomb ale i pro vzdálené ovládání velkých bezposádkových strojů jako jsou tanky a lodě [1]. Implementace tranzistorů v šedesátých letech snížilo cenu a umožnilo širší použití technologie rádiového ovládání a zpřístupnění většinové populaci.
2.2
Klasické rádiové ovládání modelů
Přímé ovládání modelu je implementováno s použitím modelářských servo motorů - elektromotorů s možností kontroly pozice, které svým pohybem řídí pohyb přímých ovládacích prvků modelu, např. natočení kol u modelů aut nebo klapky u modelů letadel. Řízení servomotorů je typicky realizováno pomocí pulzně šířkové modulace. Servomotor přijímá pulzy s určitou šířkou a překládá je na pozici. Typicky má servomotor rozsah pohybu 90 ◦ , potom šířka pulzu 1,5 ms je vždy přeložena na neutrální pozici - pozici 45 ◦ . Zmenšování šířky pulzu až k 1,25 ms určuje pozici mezi 0 ◦ a 45 ◦ a naopak zvětšování bude přeloženo na pozici od 45 ◦ do 90 ◦ [2]. Rozlišení jednotlivých servomotorů je řešeno pomocí různých kanálů. Ve vysílači jsou impulsy k pohybu servomotorů zmodulovány a zakódovány do jediného rádiového signálu, který příjmač zpětně demoduluje a dekóduje a pošle příslušné PWM signály jednotlivým servomotorům. Starý a stále běžně používaný způsob komunikace pro přenos informace z ovladače do modelu je jednoduchý přenos po rádiových vlnách s frekvencí v řádu megahertz. Typicky jsou to frekvence 27 MHz, 35 MHz a 40 MHz. Moderní způsob komunikace je využití rádiových vln o frekvenci 2,4 GHz. Zvýšení frekvence přináší menší nároky na elektrickou energii a větší odolnost proti rušení od dalších vysílačů a elektromagnetického šumu z elektromotorů. Negativní vlastností vyšší frekvence je menší propustnost pevnými objekty.
3
4
2.3 2.3.1
KAPITOLA 2. TEORIE A CÍLE
Použití Wi-Fi Přínosy Wi-Fi sítě pro ovládání modelů
Hlavním rozdílem proti klasickému rádiovému ovládání modelů je změna pohledu na zařízení z "černé skříňky", která na vstup ovladače reaguje pohybem modelu, na komunikaci pomocí počítačové sítě. Jako přijímač a vysílač a vysílač slouží počítače propojené bezdrátovou sítí. Počítače nám narozdíl od jednoduchých čipů umožňují pokročilé programování a běh přijímače a vysílače jako aplikací, které mají možnost spolupracovat s dalšími hardwarovými moduly nezávisle na ovládání a bez fixace na specifický hardware. Rušení při provozu více zařízení na stejné frekvenci může být filtrováno definováním modelu, který vysílaným datům rozumí a byl spojen s vysílačem. Použití počítače v modelu je umožněno vývojem směřujícím k miniaturizaci, přijímačem může být minipočítač s nízkou spotřebou elektrické energie. V oblasti přenosu signálu Wi-Fi přináší spoustu možností pro řízení komunikace, především bezpečnosti přenosu, pomocí definovaných komunikačních protokolů a referenčního modelu ISO/OSI.
2.3.2
Model ISO/OSI
Model OSI rozděluje komplexní komunikační systém do sedmi vrstev. Každá vrstva má svůj specifický úkol a nestará se o činnost ostatních vstev [2]. Klasická rádiová komunikace z pohledu OSI modelu využívá pouze fyzickou (rádiové vlny) a datovou vrstvu (zakódované ovládací signály) a komunikace probíhá pouze jedním směrem. Při použití komunikace podle tohoto modelu se řídící aplikace nemusí starat o fyzické parametry komunikace. Vysílající aplikace svá data předá do nižší vrstvy kde dojde k postupnému zapouzdření až do vrstvy první a odeslání po médiu. Přijímající aplikace podobně dostane pouze data odeslaná vysílací aplikací, oproštěná od ostatních dat potřebných k uskutečnění fyzické komunikace.
Obrázek 2.1: Grafické znázornění vrstev modelu OSI
2.4. CÍLE PRÁCE
2.3.3
5
Komunikační protokoly transportní vrstvy OSI
Transportní (čtvrtá) vrstva zajišťuje vlastní přenos dat pro vyšší vrstvy. Výběr vhodného komunikačního protokolu umožnuje ovlivnit přístup ke kvalitě zprostředkovaného datového přenosu. Typickými zástupci jsou protokoly TCP a UDP. TCP protokol představuje protokol s aktivním spojením, který je díky potvrzování přijatých paketů odolný proti ztrátám při fyzickém přenosu, vyšším vrstvám tedy neuniknou žádná data. Je vhodný pro přenosy kde je jistota doručení kritická. UDP protokol je naopak bezespojový protokol, který se nestará o stav a pořadí doručení. Hlavní využití UDP protokolu je pro vzdálené sledování videa v reálném čase, kde ztracené pakety nemají výrazný vliv na kvalitu.
2.4
Cíle práce
Cílem práce je analyzovat možnosti využití Wi-Fi pro ovládání modelu s použitím modulů s dalšími funkcemi (například s kamerou a GPS přijímačem), navrhnout vhodné řešení problému pro různé typy modelů a implementovat jej v podobě specifického modelu. Součástí řešení je funkční aplikace pro vzdálené ovládání modelu ve verzi pro osobní počítač nebo mobilní telefon.
6
KAPITOLA 2. TEORIE A CÍLE
Kapitola 3
Analýza 3.1 3.1.1
Analýza požadavků Funkční požadavky
1. Ovládání modelu v reálném čase 2. Správná reakce servo motorů na příslušné akce ovladače 3. Zobrazení provozních informací modelu 4. Spolehlivý přenos dat 5. Možnost zobrazení dat z kamery umístěné v modelu 6. Integrace systému GPS 7. Funkce zajištění modelu při ztrátě spojení 8. Vytváření logů s provozními informacemi 9. Vytváření statistik užívání modelu
3.1.2
Nefunkční požadavky
1. Funkčnost na různých operačních systémech 2. Možnost snadné úpravy pro různé typy modelů 3. Možnost použití různých typů ovladačů s podporou Wi-Fi 4. Provoz na zařízení s omezenými systémovými prostředky
7
8
KAPITOLA 3. ANALÝZA
3.2
Hardwarová část práce
Pro ovládání modelu je z třeba vyřešit následující hardwarové problémy: • Mechanické ovládání modelu • Řízení mechanického ovládání • Jádro modelu • Integrace zařízení v modelu • Ovladač • Napájení Mechanické ovládání modelu je nejlépe zajištěno pomocí servomotorů podle vzoru klasického ovládání modelů, jak je popsáno v sekci 2.2 v druhé kapitole. Implementaci stálého pohybu (vpřed-vzad u modelu automobilu nebo vrtule u modelu letadla) je možné zajistit použitím stejnosměrného elektromotoru nebo úpravou servomotoru pro možnost úplné rotace. Použití stejnosměrného motoru vyžaduje zapojení speciálního ovladače elektrických motorů nebo vlastní konstrukci jednoduchého ovladače - H-bridge [4]. Přestavba servomotoru je komplikovanější, není možná u všech modelů a připraví servomotor o informaci o pozici. Výhodou je možnost použití bez speciálních součástek. Řízení servomotorů je nejlépe realizováno pomocí jednoúčelového mikroprocesoru s deskou plošného spoje s konektory pro připojení servomotorů a s portem pro vstup instrukcí z nadřazené řídící jednotky. Mikroprocesor má nastavené požadované reakce na příslušné vstupy. Ovladače kompletně připravené pro tento účel s různými typy vstupních portů, s kompletní dokumentací a programovatelné v některém z vyšších jazyků se dají pořídit od výrobců robotických součástek. Za jádro modelu je pokládáno zařízení, které řídí všechny ostatní zařízení v modelu a umožňuje komunikaci s ovladačem. Jádrem ovládání modelu musí být mikropočítač s podporou Wi-Fi, buď ve formě miniaturního počítače typu ALIX nebo smartphonu. Použití smartphonu v parametrech jasně převažuje nad použitím klasického minipočítače, není totiž potřeba řešit otázky rozměrů, napájení a integrace externích modulů. Nevýhodou je potom interakce s ovladačem servomotorů, použití technologie Bluetooth by znamenalo další bezdrátové spojení a instalaci dodatečného modulu zajišujícího přemostění, naopak znovuobjevená technologie USB-HOST pro mobilní zařízení může znamenat problémy se systémovou spojení s řídící jednotkou servomotorů a především vysokou pořizovací cenu. K mobilnímu telefonu také není možné připojit externí Wi-Fi anténu což může znamenat problémy s dosahem. Ovladačem modelu se z hardwarového hlediska může stát každý přístroj schopný připojit se na Wi-Fi síť, který splňuje nároky ovládacího softwaru. Tyto podmínky splňuje většina moderních laptopů a mobilních telefonů. Napájení je možné zajistit pomocí vhodného zapojení standardních tužkových baterií typu AA nebo použitím speciálních modelářských baterií s vhodnými parametry. V modelu je třeba napájet především servomotory, standardní požadované napětí je 5V a je získáváno
3.3. SOFTWAROVÁ ČÁST PRÁCE
9
z řídící jednotky servomotorů. Při použití minipočítače jako jádra systému je třeba zajistit vyšší napájecí napětí, smartphone má vlasní integrovanou baterii. Rozlišení, které síťové zařízení bude přístupovým bodem a které bude fyzickým klientem nemá vliv na funkci aplikace a vhodnost řešení závisí na konkrétním použití. Umístění fyzického přístupového bodu do modelu má hlavní přednost v nezávislosti na dalším zařízení a umožňuje snadné předání modelu jinému ovladači mimo dosah původního.
3.3
Softwarová část práce
Problém vzdáleného ovládání modelu je relativně jednoduchý a nevyžaduje spolupráci s databázovým či jiným software ani rozlišování uživatelských rolí. Při volbě architektury se tedy zdá nejvhodnější jednoduchý model Klient-Server. Model by v tomto případě představoval serverovou aplikaci, kterou je možné přímo ovládat klientskou aplikací v ovladači. Umístění serverové aplikace do modelu je preferováno z důvodu pohledu na model jako na hlavní součást systému ovládání, mimo to nabízí další možnosti využití modelu - podpora více připojených ovladačů v jeden okamžik nebo předání kontroly nad modelem jinému ovladači. Využití serverové aplikace umožní vzdálené ovládání modelu přes internet bez další úpravy software.
3.4 3.4.1
Podobné realizované projekty Analýza realizovaných řešení
Ovládání modelů pomocí wifi je typicky řešeno využitím wi-fi modulu, který vytvoří most mezi bezdrátovou sítí a vlastním modelem. Tento způsob řešení má výhodu v nenáročnosti na zdroje ale jeho jednoduchost neumožňuje komplexnější řízení přenosu a procesů v samotném modelu. Druhé řešení, které je bližší této práci, představuje využití Wi-Fi routeru umístěného v modelu. Tento způsob řešení nejlépe popisuje projekt WiFi Robot.
3.4.2
Projekt WiFi Robot
http://www.jbprojects.net/projects/wifirobot/ Tento projekt představuje úspěšné bezdrátové ovládání modelu auta s použitím Wi-Fi. Koncept projektu je stejný s touto prací, odlišuje se především ve výběru zařízení pro příjmé ovládání modelu. Základem projektu je použití síťového routeru s alternativním firmware založeným na systému linux na místě hlavního ovladače modelu a použití vlastního mikroprocesoru pro řízení servomotorů s využitím řídících čipů z původního modelu. Komunikace mezi routerem a ovladačem servomotorů je řešena pomocí sériového rozhraní. Pro zobrazení videa z modelu je použita IP kamera připojená k routeru, která není integrovaná do ovládací aplikace a přístup k ní je přes protokol HTTP.
10
KAPITOLA 3. ANALÝZA
Využití velkého routeru vedlo autora projektu k radikální přestavbě modelu, spíše než jako model tedy výsledek projektu vypadá jako "router na kolečkách". Ovládací software představuje jednoduché převedení příkazů na instrukce pro mikroprocesor na straně serveru a ovládání pomocí čtyř tlačítek na straně klienta. Projekt je distribuován pod licencí GNU GPL v2 a představuje vhodnou inspiraci a ukázku základní funkčnosti pro tuto práci.
Obrázek 3.1: Fotografie modelu z projektu WiFi Robot.
Kapitola 4
Návrh 4.1
HW řešení
Model bude ovládán pomocí standardních modelářských servomotorů, které budou řízeny ovladačem Micro Maestro 6-Channel USB Servo Controller firmy Pololu. Jádrem modelu bude mobilní telefon Nokia N8 s operačním systémem symbian a funkcí USB Host a s integrovanou kamerou a přijímačem GPS. Standardním ovladačem bude Laptop s Wi-Fi adaptérem. Přenos signálů z mobilního telefonu do ovladače servomotorů bude zajištěno pomocí USB kabelu. Komunikace mezi mobilním telefonem a ovladačem bude probíhat bezdrátově pomocí síťe Wi-Fi. Napájení servomotorů elektrickou energií zajistí čtyři tužkové baterie typu AA zapojené v sérii. Napájení mobilního telefonu a laptopu zajistí integrované baterie. Pro úpravu mechanického ovládání modelu je z hardwarového hlediska nutné připojit nebo odpojit servomotory od jejich ovladače. Zvolený model ovladače podporuje připojení až šesti servomotorů.
Obrázek 4.1: Diagram propojení jednotlivých hadrwarových částí systému
11
12
KAPITOLA 4. NÁVRH
4.2 4.2.1
SW řešení Architektura SW a komunikace
Pro ovládací software je zvolena architektura podle modelu Klient-Server. Serverová část aplikace poběží na modelu a bude poslouchat na dvou portech a čekat na příchozí spojení z ovladače. Jeden port bude vyhrazen výhradně pro přenos instrukcí k ovládání modelu a druhý port bude určen na přenos ostatních dat, která nejsou kritická pro základní funkci modelu. Přenos instrukcí z klienta na server bude probíhat s využitím protokolu TCP pro zajištění správného doručení instrukcí. Přenost ostatních dat zajistí nereabilní protokol UDP.
4.2.2
Funkce zajištění modelu a černé skříňky
Speciální činností serverové aplikace bude akce v případě ztráty spojení nebo blížícím se vybití baterií. V případě použití tohoto ovládání na model letadla bude připraven protokol pro minimalizování škod při pádu, který by nastal v případě výpadku spojení. Systém bude zaznamenávat stav a veškeré provedené akce v přehledném textovém formátu do obyčejného souboru. Z tohoto souboru bude možné v případě problému zjistit z jaké příčiny se stal a zároveň bude sloužit k tvorbě statistik.
4.2.3
Server
Serverová část aplikace bude rozdělena na následující moduly: • Ovládání servomotorů - zajištění mechanického posunu servomotorů • Přídavné moduly - ovládání a zpřístupnění dat z kamery a gps přijímače • Síťová komunikace - zajištění komunikace s ovladačem • Hlavní ovladač modelu - integrace všech ostatních modulů a hlavní řízení modelu.
4.2.4
Klient
Klientská část aplikace bude rozdělena na následující moduly: • Síťová komunikace - zajištění komunikace s ovladačem • Grafické rozhraní • Hlavní ovladač - integrace všech ostatních modulů, interpretace uživatelských akcí pro model
4.2. SW ŘEŠENÍ
4.2.5
13
Uživatelské akce
Uživatel bude moci na ovladači provádět následující akce: • Výběr modelu - rozlišení pomocí IP adres v případě více modelů na jedné síti. • Ovládání dle typu modelu - v nejjednodušším případě vpřed/vzad/vlevo/vpravo u automobilu • Zobrazení dat z videokamery • Zobrazení lokace dle systému GPS • Kontrola stavu spojení a modelu • Zobrazení záznamu provedených akcí modelu • Zobrazení statistik využívání modelu
14
KAPITOLA 4. NÁVRH
Kapitola 5
Realizace 5.1
Vývojové prostředí
5.2
Hardwarové zapojení
5.3
Síťová komunikace
5.4
Serverová aplikace
5.5
Klientská aplikace
15
16
KAPITOLA 5. REALIZACE
Kapitola 6
Testování
17
18
KAPITOLA 6. TESTOVÁNÍ
Kapitola 7
Závěr • Zhodnocení splnění cílů DP/BP a vlastního přínosu práce (při formulaci je třeba vzít v potaz zadání práce). • Diskuse dalšího možného pokračování práce.
19
20
KAPITOLA 7. ZÁVĚR
Literatura [1] Lindsay’s technical archive - Advent of Wirelessly Controlled Torpedoes http://www.lindsaybks.com/arch/rdy/index.html. [2] Seattle Robotics Society - Whats a servo http://www.seattlerobotics.org/guide/servos.html [3] Infocellar - The OSI (Open System Interconnection) Model http://www.infocellar.com/networks/osi-model.htm [4] Chuck Mcmanis - H-Bridges: Theory and Practice http://www.mcmanis.com/chuck/robotics/tutorial/h-bridge/index.html
21