FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VUT V BRNĚ, TECHNICKÁ 3058/10, 616 00 BRNO, ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY
B12-Konstrukce mobilního robotu BROB - semestrální projekt Tomáš Krajcar(154777), Jan Usnul (155255) letní semestr 2014
Vedoucí práce: Ing. Tomáš Florián
Obsah 1.
Zadání .................................................................................................................................. 4
2.
Úvod .................................................................................................................................... 4
3.
Konstrukce ........................................................................................................................... 5 3.1.
Napájení....................................................................................................................... 6
3.2.
Regulátor ..................................................................................................................... 6
3.3.
IP kamera ..................................................................................................................... 7
3.4.
WiFi router................................................................................................................... 8
3.5.
Snímače ....................................................................................................................... 8
3.5.1. SRF04-Ultra-Sonic Ranger...................................................................................... 8 3.5.2. Sharp GP2Y0A21YK0F ............................................................................................ 9 3.6. 4.
HW-mikrokontrolér Arduino Uno .............................................................................. 10
Software ............................................................................................................................ 11 4.1.
UDP komunikace ....................................................................................................... 11
4.2.
Arduino ...................................................................................................................... 12
4.3.
C# ............................................................................................................................... 12
5.
Závěr .................................................................................................................................. 14
6.
Zdroje................................................................................................................................. 14
7.
Přílohy ................................................................................................................................ 16 7.1.
Schéma zapojení robotu ............................................................................................ 16
OBRÁZEK 2-1 CELKOVÝ POHLED NA ROBOTA ...................................................................................................................... 4 OBRÁZEK 3-1 ROBOT Z LEVÉ ČÁSTI ................................................................................................................................... 5 OBRÁZEK 3-2 ZADNÍ ČÁST ROBOTA .................................................................................................................................. 5 OBRÁZEK 3-3 BATERIE LI-POL 2C ................................................................................................................................... 6 OBRÁZEK 3-4 REGULÁTOR ESC ....................................................................................................................................... 6 OBRÁZEK 3-5 A) KAMERA AXIS 207 B) SCHÉMA PROPOJENÍ KOMUNIKACE ............................................................................. 7 OBRÁZEK 3-6 ZADNÍ STRANA SNÍMAČE SRF04................................................................................................................... 8 OBRÁZEK 3-7 A) DIAGRAM ZOBRAZUJÍCÍ PRŮBĚH SIGNÁLU PŘI MĚŘENÍ B) SCHÉMA ZAPOJENÍ SNÍMAČE SRF04 ............................... 9 OBRÁZEK 3-8 SNÍMAČ SHARP GP2Y0A21YK0F................................................................................................................ 9 OBRÁZEK 3-9 GRAF ZÁVISLOSTI VÝSTUPNÍHO NAPĚTÍ NA VZDÁLENOSTI PŘEKÁŽKY .................................................................... 10 OBRÁZEK 3-10 DESKA ARDUINO UNO R3 ....................................................................................................................... 11 OBRÁZEK 4-1 UKÁZKA VZHLEDU ŘÍDICÍ APLIKACE .............................................................................................................. 13
TABULKA 3-1 PARAMETRY ESC REGULÁTORU.................................................................................................................... 6 TABULKA 3-2 PARAMETRY KAMERY AXIS MODEL 207 [3] ................................................................................................... 8 TABULKA 3-3 PARAMETRY D-LINK DAP 1160 [8] ............................................................................................................. 8 TABULKA 3-4 PARAMETRY SNÍMAČE SRF04-ULTRA-SONIC RANGER [4] ................................................................................ 9 TABULKA 3-5 PARAMETRY SNÍMAČE SPOLEČNOSTI SHARP TYP GP2Y0A21YK0F [5] .............................................................. 10
2
TABULKA 4-1 BITOVÉ SLOŽENÍ UDP PAKETU (PŘEVZATO Z [6]) ........................................................................................... 12
3
1. Zadání Postavte mobilní robot, který bude využívat podvozek Tamiya TT-01. Vyberte vhodnou řídicí elektroniku, moduly pro bezdrátovou komunikaci, kameru a snímače, které bude operátor využívat při jeho řízení. Celý robot bude řízen pomocí počítače a aplikace napsané v jazyce C#, která mu bude vhodně vizualizovat veškeré potřebné údaje.
2. Úvod Celý projekt je založen na dálkovém řízení robotu prostřednictvím aplikace ve Windows. Uživatel bude robot ovládat hracím ovladačem typu XBOX 360. Celá aplikace je vytvořená jak pro náročnější uživatele, tak pro i pro méně zkušené. Po zadání základních připojovacích údajů a připojení ovladače k PC se po zmáčknutí tlačítka CONNECT (tlačítko A na ovladači) odešlou zaváděcí pakety do autíčka. Vše se uživateli vypisuje přímo aplikace.
Obrázek 2-1 celkový pohled na robota
4
3. Konstrukce Konstrukce je založená na podvozku Tamiya TT-01. Ten jsme již měli. Podvozek je doplněn o hliníkové díly (kardan, tlumiče, řídicí tyč). Z původního modelu museli být odebrány části, které byli nedostačující. V jednotlivých podkategoriích si probereme dílčí konstrukční úpravy.
Obrázek 3-1 robot z levé části Konstrukce autíčka TT-01 3-1
Obrázek 3-2 zadní část robota
5
3.1.
Napájení Při navrhované konstrukci nám bylo zřejmé, že první co musíme udělat je vyměnit původní baterii. Tou byl typ NiCd s kapacitou 1500 mAh. Výstupní napět nevyhovovalo z důvodu napájení IP kamery a WiFi routeru. Proto byla vybrána baterie Li-Pol 2C s kapacitou 5000 mAh. Tohle je již zcela vyhovující pro napájení celého robotu. Konstrukce napájení obsahuje i dva stabilizátory. Jeden je pro servomotor. Druhý pro IP kameru, WiFi router a samotné Arduino. Li-Pol akumulátor se používá ve spoustě elektrických
zařízení od mobilních telefonů po RC modely. Baterie se skládá z článků. Běžně se pro modelářské účely používají 2-6 článkové baterie. Plně nabitý článek má až 4,23 V, pokud klesne napětí pod 2,7 V může být článek nenávratně zničen. Kapacita je daná objemem článku, běžně se pohybuje od 100 mAh do 5000 mAh. (Převzato z [9]) Obrázek 3-3 Baterie Li-Pol 2C
Výhody:
velká kapacita na malém rozměru nemá paměťový efekt minimální samovybíjení nominální napětí 3,7 V rychlonabíjení až 4 násobkem kapacity článku
Nevýhody:
kapacita klesá i při nepoužívání akumulátoru vyšší pořizovací cena časem se zvyšuje tlak uvnitř baterie
3.2.
Regulátor Dále bylo potřeba odebrat regulátor, který nevyhovoval z důvodu, že měl integrovaný příjem FM signálu z dálkového ovladače. Ten byl nahrazen ESC regulátorem od výrobce HSP typ ESC320 pro DC motor Johnson 540. Regulátor umožňuje obousměrný chod. Sám si najde středovou pozici. Má ochranu proti přehřátí a kontroluje stav nízké baterie. Jedná se neznámého výrobce z Číny, takže k regulátoru nebylo možné dohledat katalogový list.
Obrázek 3-4 regulátor ESC
Napájecí napětí 4,8 - 8,4 V Rozměry 34x34,25 mm Váha 45,5 g Tabulka 3-1 Parametry ESC regulátoru
6
3.3.
IP kamera
Kamera je použita od společnosti AXIS model 207 Network Camera. Byla vybrána právě z důvodu, že má dobře zpracované zázemí (SDK) pro jazyk C# i C++. Tedy má již vytvořené třídy pro nahrávání videa, pořizování snímků i připojení přes WiFi k samotné kameře. Ve své třídě se jedná o nejlepší volbu a to díky MPEG-4, který má i odhad pohybu. Také může pořizovat obrázky ve formátu JPEG. Její základ tvoří deska z mikrofonu, která zajišťuje, nejenom nahrávaní videa, ale také zvuku. To se skvěle hodí právě pro řízení našeho robota. Hlavními parametry pro vybrání kamery byla kvalita obrazu, a jak se kamera vypořádá s vyššími rychlostmi pohybu, kterých náš robot může dosáhnout. Nutno dodat, že v naší konstrukci nejde obraz kamery přes Arduino, ale přímo se prostřednictvím našeho routeru posílá do aplikace v PC. Objektiv kamery má 4 mm v průměru. Horizontální pozorovací úhel je . Světelná citlivost činí 1-10 000 lux. Časová uzávěrka je v rozsahu od 1/10000 s do 1/2 s. Samotné video je v MPEG-4 druhé řady, která podporuje normu ISO/IEC 14496-2. Rozlišení je až 640x480, tedy pro naše podmínky zcela dostačující. Rychlost smínkování je až 30 fps. Integrita systému zahrnuje otevřená API v jazyce C#. Funkce pro detekování pohybu a zvuku nebyli využity. Typ procesoru samotné kamery je ARTPEC-A s pamětí 30 MB typu RAM. Dále obsahuje i 4 MB paměti typu FLASH. Napájení smí být v rozmezí 4,9, až 5,1 V stejnosměrného napětí s výkonovým omezením 2,5 W. Připojení je zajištěno přes RJ-45 Ethernet 10BASE-T/100BASE-TX kabel. Dále lze připojit sekundární zdroj napájení. Kamera obsahuje i jeden vstup na alarm. Výrobce udává teplotní rozsah, ve kterém může kamera pracovat, od 5 do 50 a rozsah vlhkosti okolí od 20 do 80 % RH. Jelikož náš robot je určen primárně pro ježdění v místnosti je tento teplotní rozsah zcela dostačující. Tento model kamery váží 180 g s průměrem podstavce 80 mm. Výška ohniska kamery od podstavce je 99 mm.
AXIS 207 PC
ROUTER Arduino
Obrázek 3-5 a) kamera AXIS 207 b) Schéma propojení komunikace
7
Napájecí napětí [V] 4,9 až 5,1 Světelná svítivost [lux] 1 až 10 000 Časová uzávěrka [s] 1/10 000 až 1/2 Výkonové omezení [W] 2,5 Rychlost snímání [fps] 30 Formát videa MPEG-4 Formát obrázků JPEG Rozlišení videa 640x480 Pracovní teplota okolí [ ] 5 až 50 Pracovní vlhkost okolí [%] 20 až 80 Hmotnost [g] 180 Výška ohniska kamery [mm] 99 Tabulka 3-2 Parametry kamery AXIS model 207 [3]
3.4.
WiFi router
Jako router je použitý typ D-Link DAP 1160. Maximální rychlost tohoto modelu je 54 Mbs podle standartu IEEE 802.11g. Také tento model obsahuje vestavěný DHCP server, který automaticky přiřazuje IP adresu připojeným klientům. Šifrování podle WPA-PSK/WPA2-PSK zajišťuje 64/128-bit WEP. Konfigurace je na standardní adrese 192.168.0.50. Uživatel zde najde klasické rozhraní s běžným nastavením. Použitá IP kamera a arduino jsou k tomuto zařízení připojeny přes kabel LAN. Operátor k nim přistupuje pomocí IP adres. Pro dálkové ovládání robota není frekvence 2,5 GHz vhodná, protože je v dnešní době již hodně rušená. Ovšem pro náš projekt je dostačující. Výstupní hodnoty pro 802.11b se typicky pohybují okolo 16dBm a pro 802.11g okolo 14dBm.
Napájecí napětí [V] 5 Podporované standardy WiFi 802.11/g/b, 802.3/802.3u Podporované standardy pro Ethernet 10BASE-T/100BASE-TX Pracovní frekvence [GHz] 2,4 - 2,4835 Standardy ochrany WPA-EAP a WPA2-EAP Rozměry [mm] 144x109x30 Hmotnost [g] 221 Pracovní rozsah teplot [ ] 0 až 55 Pracovní rozsah vlhkosti [%] 10 až 90 Platné certifikáty FCC třídy B, CE, C-Tick, Wi-Fi Tabulka 3-3 Parametry D-Link DAP 1160 [8]
3.5. 3.5.1.
Snímače SRF04-Ultra-Sonic Ranger
Jako přední snímač vzdálenosti byl vybrán ultrazvukový snímač SRF04-Ultra-Sonic Ranger. Ten byl vytvořen za účelem použití v malých robotech. Vše je navrženo podle kritéria nejnižší ceny. Maximální zesílení pro LM1458 je 1 MHz a maximální zesílení pro 40 kHz je podle výpočtu: 1000000/40000 = 25. O kontrolní funkce se stará PIC12C508. Měření začíná pulsem Trigger (10 ). Následně vysílač vyšle osm pulsů o frekvenci 40 Hz. Poté čeká na nejnižší echo. Měření času začíná od vyslání echa a skončí jeho přijetím. Pomocí známého času pulsu 8 Obrázek 3-6 zadní strana snímače SRF04
lze vypočítat vzdálenost překážky. Jestliže puls nedorazí do 36 mS, překážka je označena jako nedetekována. Výstupní amplituda měřeného signálu míří do regulátoru LM311. Ten zajistí čistý výstupní signál. Protože MAX232 je v průběhu poslouchání Echa vypnutý musí se čekat dalších 10 mS na zpracování došlého signálu. Tento systém tedy spolehlivě měří od vzdálenosti tří centimetrů. Jde s ním měřit i jeden nebo dva centimetry, ovšem šířka pulsů je, pro tak malé hodnoty, již minimální. To způsobuje, že nelze měřit vzdálenost pod jeden centimetr. Maximální měřicí vzdálenost je kolem 3 m. Průměrná spotřeba proudu je pod 50 mA, typicky ovšem kolem 30 mA. Měření vzdálenosti lze provádět jak v centimetrech, tak ve stopách. Jde tedy pouze o nastavení. Například pokud budeme-li měřit v a dělit výsledek měření číslem 58 výsledek bude v centimetrech, nebo můžeme dělit číslem 148 a poté bude výsledek ve stopách [4]. Konstrukčně obsahuje tento snímač 4 nožičky na připojení. Jedna nožička zajišťuje napájení snímače 5 V a druhá zajišťuje zem. Další dvě se starají o přijímání pulsů z mikrokontroléru a posílání výsledného pulsu ven. V našem případě je přijímač a vysílač oddělen. Jedná se tedy o dvojhlavý systém. Mechanické provedení použitého snímače je kompaktní.
Obrázek 3-7 a) diagram zobrazující průběh signálu při měření b) schéma zapojení snímače SRF04
Maximální doba měření jednoho pulsu [ms] 36 Spotřeba proudu [mA] 50 (typicky 30) Měřicí rozsah [cm] 1 až 300 Tabulka 3-4 Parametry snímače SRF04-Ultra-Sonic Ranger [4]
3.5.2.
Sharp GP2Y0A21YK0F
Jako druhý snímač na měření vzdálenosti je použitý infračervený snímač společnosti Sharp typ GP2Y0A21YK0F. Je umístěný na zadní straně auta, kde není potřeba měřit tak velké vzdálenosti jako na přední straně. Tahle jednotka je kombinací PSD (position sensitive detector) a IRED (infrared emitting diode). Princip měření je následující. Vnitřní oscilátor dává do LED pulzy o frekvenci 120 Hz každých 8 ms. Infračervené diody jsou namířeny stejným směrem a vzájemně vzdáObrázek 3-8 snímač Sharp leny od sebe jen pár centimetrů. Jedna dioda vysílá inGP2Y0A21YK0F
9
fračervené pulsy a druhá tyto pulsy snímá. Snímaný signál je potřeba zesílit a následně vyhodnotit špičky tohoto signálu. Vzniklé stejnosměrné napětí je úměrné vzdálenosti objektu [10]. Měřicí rozsah tohoto snímače je dle výrobce 10 cm až 80 cm. Výstup je analogový. Snímač je, co by do velikosti, malý. Jeho rozměry jsou 29,5x13x13,5 mm. Spotřeba proudu je stanovena na 30 mA a potřebné napájecí napětí musí být v rozsahu 4,5 až 5,5 V. Vzdálenost pro upozornění operátora je 25 cm. Výstup tohoto snímače je analogový. Připojené napětí je v rozsahu 4,5, až 5,5 V. Teplotní rozsah je dle výrobce -40 až +70 . Doporučený rozsah pro měření tímto snímačem je -10 až +60 . Pokud je měřený objekt v maximální měřitelné vzdálenosti je průměrná spotřeba proudu maximálně 40 mA. Výstupní napětí je tedy v rozsahu 0,25 (pro vzdálenost 10 cm) až 0,55 (pro vzdálenost 80 cm). Výstupní diferenciální napětí, tedy napětí mezi maximální a minimální měřitelnou vzdáleností, je v rozsahu 1,65 až 2,15 V [5]. Časová náročnost prvního měření činí 38,3 ms s chybnou 9,6 ms. Poté hned začne druhé měření. Ovšem po skončení prvního měření se, do maximálně 5 ms, začne tohle měření vyhodnocovat. Můžeme tedy říci, že od začátku prvního měření máme konečný výsledek po 81,6 ms. Vyhodnocení měření trvá stejně dlouho jako samotné měření.
Obrázek 3-9 graf závislosti výstupního napětí na vzdálenosti překážky
Napájecí napětí [V] 4,5 až 5,5 Spotřeba proudu [mA] 30 Měřicí rozsah [cm] 10 až 80 Rozměry [mm] 29,5x13x13,5 Doporučený rozsah teploty okolí [ ] -10 až +60 Doba prvního měření [ms] 38,3 9,6 Doba výsledku od začátku prvního měření [ms] 81,6 Tabulka 3-5 parametry snímače společnosti Sharp typ GP2Y0A21YK0F [5]
3.6.
HW-mikrokontrolér Arduino Uno
Arduino je open-source HW platforma založená na mikrokontroléru ATMega od firmy Atmel a grafickém vývojovém prostředí Arduino IDE (který vychází z prostředí Wiring- Processing). Arduino IDE je multiplaformní programovací prostředí založené na Javě. Programovací prostředí je velmi jednoduché, a proto je tato platforma tak rozšířená. I začátečník, který umí trochu programovat v C/C++ se podívá na jeden návod a za 15 minut rozbliká LED diodu.
10
Desky arduino obsahují 8bitové mikrokontroléry z rodiny AVR od firmy Atmel a množství dalších podpůrných obvodů. Oficiální vydání Arduina, které vyrábí a prodává Italská firma Smart Projects, používají čipy ATMega8, ATMega168, ATMega328, ATMega1280 a ATMega2560. Každá deska má většinu I/O pinů přístupných přes precizní patice, do kterých se jednoduše připojují další obvody, kterým ve světě arduina Obrázek 3-10 deska Arduino Uno R3
říká shieldy. Na deskách bývá několik
diod, resetovací tlačítko, konektory pro ICSP programování, napájecí konektor, oscilátor a obvod zprostředkovávající komunikaci po USB. Základní verze Arduina, Arduino Uno, poskytuje celkem 14 I/O digitálních pinů a 6 pinů analogových. Šest digitálních pinů je také možné použít na softwarově řízený PWM výstup. Hlavní mikrokontrolér, který je uživatelsky programovatelný, již má bootloader (kód, který se po spuštění postará o základní nastavení mikrokontroléru, jako jsou interní časovače, nastavení rozhraní USART a další) a nastavené potřebné Fuses bajty (těmi se nízko úrovňově nastavují některé vlastnosti čipu). Díky tomu se uživatel nemusí starat o detaily a své programy píše v jazyce podobném C/C++.(Převzato z [1]) Ačkoliv je Arduino připojeno k počítači pomocí rozhraní USB, je softwarově simulována sériová komunikace přes linku RS-232. Na desce Uno toto obstarává ATMega8U2 s předprogrovaným firmware (ten je, jako vše ostatní, volně dostupný v podobě zdrojových kódů). Programuje se zde v jazyce velmi podobném C++. Arduino je zjednodušený mikrokontrolér takže uživatel nemusí přesně znát registry procesoru, což na jednu stranu usnadňuje práci, proto ti co programují čistá AVR od atmelu dávají od arduina ruce pryč. Na internetu jsou tisíce návodů a knihoven, které začátečníkovi pomůžou se vším, co je potřeba. K arduino si lze dokoupit spoustu doplňkového HW jako například ethernet shield nebo driver shield. Pro náš projekt bylo původně vybráno Arduino MEGA 2560, které disponuje 256 KB paměti, a 56 digitálními vstupy a výstupy a 16 analogovými vstupy. Nakonec je, kvůli velikosti mikrokontroléru, použito Arduino Uno, tedy základní model, který má 32KB paměti flash, 14 digitální vstupů a výstupů a 6 analogových vstupů. Dále je arduino osazeno ethernet shieldem abychom s ním mohli komunikovat přes UDP pakety. Jedná se o 8bitový mikroprocesor což, jak jsme v průběhu realizace zjistili, není dostačující.
4. Software 4.1.
UDP komunikace
Pro komunikaci mikrokontroléru arduino a Windows Form aplikace v C# je použitý Ethernetový protokol UDP (user datagram protocol). O protokolu UDP je známo, že nedává záruky za da11
tagramy, které přenáší mezi počítači na síti. Někdy je označován jako nespolehlivý. Na rozdíl od protokolu TCP totiž nezaručuje, zda přenášený datagram neztratí, zda se nezmění pořadí doručených datagramů nebo zda nebude doručen vícekrát. Protokol UDP je vhodný pro nasazení, které vyžaduje jednoduchost nebo pro aplikace otázka odpověď. Jeho bezstavovost je vhodná pro aplikace, kde se počítá se ztrátami datagramů. Jako například komunikace PLC protokol MODBUS UDP, DNS, sdílení souborů po LAN. To je také důvod proč i my jsme vybrali protokol UDP. UDP nevyžaduje handshaking a proto je i výsledná komunikace rychlejší. + 0 32 64
bity 0-15 zdrojový port délka
bity 16-31 cílový port kontrolní součet data
Tabulka 4-1 bitové složení UDP paketu (převzato z [6])
Popis komunikace, z aplikace v C# se po kliknutí na connect vyšle na příslušnou IP adresu zpráva: ,,Připojeno“, na druhé straně je arduino, které kontroluje, zda první dva přijaté pakety jsou „P“ a „r“ je to považováno za začátek komunikace a arduino odpoví stejně, tedy pošle zpátky na IP adresu odesílatele zprávu „Připojeno“. Normální komunikace probíhá, tak že se pošle znak „Z“ a za ním 3 místná informace o rychlosti (typicky 100), to samé s rychlostí, kdy se pošle znak „R“ a číslo 100. Arduino tyto informace převezme, zjistí příslušné rychlosti. Zpět do C# pošle zprávu první znak „I“ za ním 1 char/byte obsahující vzdálenost z infračerveného snímače vzdálenosti a pak znak „U“ a 1 char/byte obsahující vzdálenost z ultrazvukového snímače vzdálenosti. Timeout komunikace je nastaven na 500 ms. Arduino a C# si mezi sebou posílají zprávy každých 30 ms.
4.2.
Arduino
SW pro arduino je psán v programovacím prostředí arduino IDE. Jazyk je podobný C++. Jsou použity interní knihovny arduina pro SPI rozhraní, Ethernet pro Ethernet Shield a knihovnu pro servo, která umí generovat 50Hz pulzy pro řízení modelářského serva a modelářského motoru. Program se skládá ze dvou částí, inicializace (void setup) a nekonečné smyčky (void loop). V inicializace se nastaví vstupní a výstupní piny, začne komunikaci po ethernete, do serva se pošle inicializační pulz pro nastavení polohy do 0, a motoru také inicializační pulz s nulovou rychlostí. Pro běh programu je potřeba pseudo-watchdog. Ten funguje tak, že se rychlost nastaví do 0, pokud nepřijde paket od řídicího SW každých 500 ms. V nekonečné smyčce probíhají tyto události, každý 250 krok smyčky se změří vzdálenost z infračerveného snímače vzdálenosti, každý 300 krok se změří ultrazvukovou vzdálenost. Dále se ve smyčce kontroluje, zda přišla zpráva z řídící aplikace, pokud ano zprávu je zpracována a vynuluje se Watchdog.
4.3.
C#
Pro tento programovací jazyk jsme se rozhodli z důvodu jeho jednoduchosti pro vytváření aplikací do operačního systému Windows. Náš program se skládá ze dvou tříd. Jedna, která komunikuje s ovladačem a druhá (hlavní), která řeší vše ostatní. Použili jsme dva Formy, které nám zajišťují jednoduché, ale dostačující, uživatelské prostředí. Vyřešili jsme zde výstupní hodnoty ze snímačů a z ovladače, výstup z kamery a celkové přihlašování k autíčku. Pro případ přerušení spojení mezi počítačem a ovladačem lze autíčko řídit i šipkami na klávesnici. Ty lze, ovšem použít jen při odpojení ovladače jinak jsou blokovány. 12
Nalevo můžeme vidět oblast Řízení. Pod ní je násobek rychlosti, ten nám zajišťuje rychlostí omezení autíčka v násobcích 1, 0,75, 0,5, 0,25. Uživatel si tyhle násobky rychlosti může přepínat přímo při ovládání autíčka a to prostřednictvím šipek na ovladači. Dále si můžeme všimnout čtyř progressbarů. Ty nám ukazují, která hodnota se aktuálně načítá. Z důvodu přesnosti jsou obě hodnoty, řízení i zatáčení, ukazovány i číselně. Vpravo od oblastí řízení vidíme velkou oblast týkající se připojení k samotnému autíčku a IP kameře. Co se týče oblasti Připojení Controlleru, tak ta sice zajišťuje potvrzení, že je či není ovladač připojen, ale uživatel to musí zadávat ručně. Tedy musí kliknout na Connect_X nebo Disconnect_X, automatické rozpoznání připojení controlleru v tomto programu není. Poslední oblastí je samotný výstup z IP kamery. Nad ní jsou výstupy z obou snímačů, které zčervenají, jestliže jejich naměřená vzdálenost klesne pod 50cm pro ultrazvukový snímač a 25cm pro infračervený snímač.
Obrázek 4-1 ukázka vzhledu řídicí aplikace
Samotné řízení je v C# řešeno dvěma způsoby v závislosti na používaném prostředku. Pokud uživatel ovládá autíčko prostřednictvím klávesnice je řízení řešeno pomocí mapy řízení. V programu jsou čtyři globální proměnné typu BOOL, které nabývají hodnoty true od chvíle, kdy je zmáčknutá klávesa, až do chvíle kdy je klávesa puštěna. Pro tento způsob jsme se rozhodli z toho důvodu, že již vytvořená funkce od společnosti Microsoft, která řeší stisk kláves, může nabývat pouze jedné hodnoty. Ovšem my pro řízení potřebujeme dvě a právě proto to řešíme tímto způsobem. Poté je zde další funkce, která přidává či ubírá aktuální hodnoty pro řízení autíčka právě v závislosti na hodnotách True či False v naší mapě řízení. Ovládání autíčka prostřednictvím ovladače je řešeno přímým přepočtem hodnot, které z ovladače jdou. Řízení je dané na levou páčku (zatáčení), levý Trigger (brzda) a pravý Trigger (plyn). Všechny prvky dává na výstup hodnotu typu double 0 až 1, pro levou páčku je to rozsah -1 až 1 v typu double v ose x. Do přepočtu pro aktuální rychlost je zařazena i hodnota z aktuálního násobku maximální rychlosti. Pro podrobný návod na ovládání slouží vytvořená nápověda přímo v programu. V menu Nastaveni -> Help -> Controller.
13
5. Závěr Projekt jako celek byl zpracován podle zadání. Sériový modelářský podvozek tamiya TT-01 byl doplněn nový regulátor, novou řídící elektroniku, kameru, router, a baterii s vyšší kapacitou. Průzkumný mobilní robot je vybaven IP kamerou, která umožňuje operátorovi sledovat a nahrávat prozkoumávané prostředí. Problém nastal s umístěním kamery, která je umístěna příliš vepředu, a tak operátor nevidí natočení kol. V budoucnu by bylo lepší umístit kameru do zadní části robota. K řízení je použit, na doporučení vedoucího projektu, ovladač pro konzoli XBOX 360 doplněn o přijímač pro PC s OS Windows. Ten je v konečném důsledku pro operátora velmi pohodlný. Ovládání je jednoduché na použití. Pro příští realizaci by bylo lepší zvolit výkonnější mikrokontrolér Arduino Due, který má 32bitový mikroprocesor na architektuře ARM, u kterého lze použít ,,RTOS“, a použít vlákna. Ten se hodí tehdy, pokud chceme zároveň zpracovávat signály ze vstupů a v tu samou dobu komunikovat přes UDP s nadřazenou aplikací. Z praktického testování bylo zjištěno, že robot sám o sobě neumí udržet směr (azimut) rovně, bylo by proto dobré doplnit jej o elektromagnetický kompas, který by uměl udržet zadaný směr řízení. Dále by bylo zajímavé doplnit robota o GPS modul, který by mohl zaznamenávat trasu. Jako poslední by bylo dobré změnit, nevhodně zvolený WiFi router v pásmu 2,4 GHz, na kterém dnes komunikuje prakticky všechno. Pro příští realizaci by bylo vhodné použít router, který pracuje v pásmu 5 GHz, které v dnešní době není tak zarušené. Na projektu jsme se naučili jak pracovat s mikrokotrolérem programovaným v jazyce C++, ethernetovým protokolem UDP, programováním aplikací pro Windows v C#. Zjistili jsme, že výroba robota za sebou má spoustu drobností, na které se přijde až v průběhu realizace. Obecně lze říci, že oblast mobilních robotů je velmi zajímavá a perspektivní. Na mobilním robotovi by bylo možné vytvořit spoustu podružných aplikací jako například model parkovacího asistenta, kterého známe z moderních aut, nebo jej využít pro mapování terénu či jízdu dle zadaných waypointů.
6. Zdroje [1] Arduino. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001-, 3.4. 2014 [cit. 2014-04-26]. Dostupné z: http://cs.wikipedia.org/wiki/Arduino [2] Arduino. WARREN, John-David. ARDUINO. Arduino: Homepage [online]. 2014. vyd. New York, NY: Apress, c2011 [cit. 2014-04-26]. Dostupné z: http://arduino.cc/ [3] AXIS 207 Network Camera. AXIS COMMUNICATIONS. AXIS Communications [online]. 2014. vyd. [cit. 2014-04-26]. Dostupné z: http://www.axis.com/en/products/cam_207/index.htm [4] SRF04 Technical Documentation. DEVANTECH LTD. Robot Electronics: Devantech Ltd [online]. 2014. vyd. [cit. 2014-04-26]. Dostupné z: http://www.robotelectronics.co.uk/htm/srf04tech.htm [5] Sharp: GP2Y0A21YK0F. SHARP. Sharp: Microelectronics of the Americas [online]. 2014. vyd. [cit. 2014-04-26]. Dostupné z: http://www.sharpsma.com/webfm_send/1489 [6] User datagram protocol [online]. 2014 [cit. 2014-04-27]. Dostupné z: http://cs.wikipedia.org/wiki/User_Datagram_Protocol 14
[7]Arduino Uno board [online]. 2014 [cit. 2014-04-27]. Dostupné z: http://arduino.cc/en/Main/ArduinoBoardUno [8] D-Link: Building Networks for People. D-LINK. User Manual: DAP-1160 [online]. verze 1.30. 2009 [cit. 2014-04-30]. Dostupné z: http://www.dlink.com/cz/cs [9] Li-Pol akumulátory. [online]. [cit. 2014-05-06]. Dostupné z: http://cs.wikipedia.org/wiki/Lithium-polymerov%C3%BD_akumul%C3%A1tor [10] ŠMÍD, David. Infračervený detektor vzdálenosti. HW SERVER S.R.O. HW.cz: Vše o elektrotechnice a programování [online]. 2005, 18. Říjen 2005 [cit. 2014-05-06]. Dostupné z: http://www.hw.cz/teorie-a-praxe/konstrukce/infracerveny-detektor-vzdalenosti.html
15
7. Přílohy 7.1.
Schéma zapojení robotu
16