VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra technických studií Obor Aplikovaná informatika Laser Game bakalářská práce Autor: Petr Bišof Vedoucí práce: Ing. Michal Bílek Jihlava 2018
Abstrakt Cílem práce bylo navrhnout a realizovat systém po vzoru adrenalinové zábavy Laser Game. Jedná se o vytvoření dvou vest a dvou zbraní pro hráče, kdy tento systém stačí na realizování základního principu hry. Pro elektronickou realizaci jsem si vybral mikrokontroléry Arduino Mega, Arduino Nano, snímače a vysílače pro určení zásahu. V případě zásahu jsem realizoval deaktivování systému a bezdrátovou komunikaci se serverem hry, který tvoří Raspberry Pi. Dále na serveru hry se nachází informace o hře a jména hráčů. Klíčová slova Arduino, Raspberry, MySQL, PhpMyAdmin, PHP, html Abstract The goal of the thesis was to design and implement a system based on the adrenaline entertainment model Laser Game. This is the creation of two vests and two weapons for players, where this system is enough to implement the basic principle of the game. For electronic implementation I have chosen Arduino Mega, Arduino Nano microcontrollers, sensors and transmitters to determine the interference. In case of a hit, I deactivated the system and wirelessly communicated with the game server that makes Raspberry Pi. Further on the game server there is information about the game and the names of the players. Key words Arduino, Raspberry, MySQL, PhpMyAdmin, PHP, html
Prohlášení Prohlašuji, že předložená bakalářská práce je původní a zpracovala jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil/a autorská práva (ve smyslu 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ů, v platném znění, dále též AZ ). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ. Byl/a jsem seznámena s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom/a toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutím licence. V Jihlavě dne 3. 1. 2018... Podpis
Poděkování Chtěl bych poděkovat vedoucímu bakalářské práce, panu Ing. Michalovi Bílkovi za veškerý čas, který mi věnoval při tvorbě bakalářské práce. Dále děkuji panu Zdeňkovi Hajnovi za navržené téma.
OBSAH ÚVOD... 9 TEORETICKÁ ČÁST... 10 1 ARDUINO... 10 1.1 Výhody Arduina... 10 1.2 Historie Arduina... 10 1.3 Typy desek... 11 1.3.1 Arduino Mini... 11 1.3.2 Arduino Nano... 12 1.3.3 Arduino Micro... 12 1.3.4 Arduino Lilypad... 12 1.3.5 Arduino Fio... 13 1.3.6 Arduino Uno... 13 1.3.7 Arduino Leonardo... 13 1.3.8 Arduino Yun... 14 1.3.9 Arduino Mega... 14 1.3.10 Arduino Due... 15 1.3.11 Arduino Esplora... 15 1.3.12 Arduino Robot... 16 1.3.13 Arduino Galileo... 16 1.4 Arduino Shieldy... 16 1.5 Arduino klony... 16 1.6 Přerušení... 17 1.6.1 Arduino přerušení... 18 1.7 IR Komunikace... 20 1.7.1 IR vysílání, příjem dat... 20 2 RASPBERRY PI... 22 2.1 Raspberry Pi 3 Model B... 22 2.2 Operační systémy Raspberry Pi... 23 2.2.1 OS s Linuxový jádrem... 23 2.2.2 OS bez Linuxového jádra... 24
PRAKTICKÁ ČÁST... 25 3 POUŽITÝ SOFTWARE... 25 3.1 Arduino IDE... 25 3.2 PSPad editor... 25 3.3 Etcher... 25 4 BLOKOVÉ SCHÉMA ZAPOJENÍ... 26 5 IRREMOTE KNIHOVNA... 27 6 INFRAČERVENÝ VYSÍLAČ:... 28 7 INFRAČERVENÝ PŘIJÍMAČ... 29 8 STŘELBA... 30 9 ZÁSAH... 32 10 RASPBERRY PI OPERAČNÍ SYSTÉM NAHRÁNÍ... 34 11 PHPMYADMIN... 35 12 WEMOS D1 MINI... 36 13 DISPLEJ... 37 14 WEBOVÉ STRÁNKY... 38 14.1 Arduino IDE... 38 14.2 PSPad... 38 15 TESTOVÁNÍ... 39 15.1 Střelba a příjem... 39 15.2 Displej... 40 15.3 Wemos... 40 15.4 Přenos informací mezi deskami... 40 SHRNUTÍ A ZÁVĚR... 41 SEZNAM POUŽITÝCH ZDROJŮ... 42 SEZNAM ZKRATEK... 44 SEZNAM OBRÁZKŮ... 45
SEZNAM PŘÍLOH... 46
ÚVOD Tato bakalářská práce se zabývá vytvořením dvou vest, dvou zbraní a ukládáním informací o hře laser game do databáze. V dnešní době je hlavně kladen důraz na šetření zdrojů, energií, výdajů na provoz a další. Vytvořením vlastního vybavení pro hru by se eliminovaly náklady na pronájem vybavení pro hru laser game. Dále toto řešení poskytuje možnost úpravy vybavení tak aby se snížil čas na případnou opravu vesty nebo zbraně. Toto téma mi bylo navrženo Zdeňkem Hajnem majitelem arény Prime Laser Aréna. Prime Laser Aréna se nachází v Jihlavě a je největší arénou na Vysočině. Laser game je adrenalinová, bezbolestná hra pro minimálně 2 hráče a maximem bývá počet vest v aréně a jsou ve hře použity moderní prvky. Hra není věkově omezená, jediné co je zapotřebí, je obléct si vestu. Hra obsahuje různá nastavení jako například herní mód, barvu týmu nebo počet týmů. V této bakalářské práci je používáno Arduino, Raspberry Pi a Wemos, programovací jazyky byly užity php a wiring. Wiring je jazyk používaný k programování Arduino a je podobný jazyku C. Jako programovací prostředí bylo využíváno Arduino IDE a PSPad. Během práce byly používány při programování Arduina i Wemosu různé knihovny, které se nachází v prostředí Arduino IDE nebo byly do prostředí doinstalovány. Při tvorbě serveru hry byl použit program Etcher. 9
TEORETICKÁ ČÁST 1 ARDUINO Cituji ze zdroje (http://czechduino.cz)"arduino je otevřená elektronická platforma, založená na uživatelsky jednoduchém hardware a software. Arduino je určeno pro kutily, bastlíře, umělce, designéry - zkrátka pro každého, koho zajímá vytváření interaktivních objektů nebo prostředí. Arduino je schopné vnímat okolní prostředí pomocí vstupů z rozličných senzorů. Zároveň může ovlivňovat okolí připojenými LEDkami, motorky a dalšími výstupními periferiemi. Z citace je tedy zřejmé, že Arduino je pro každého kdo má zájem vytvářet svá zařízení. Arduino lze propojit s různými senzory a zařízeními a díky početné komunitě lze nalézt i různé návody. 1.1 Výhody Arduina Největšími výhodami Arduina je jednoduchost použití, nepřeberné množství kompatibilního hardware a Arduino shieldů i cena. Asi největší výhodou je podpora Arduino nadšenců, jejíž komunita je obrovská. Za pomoci této celosvětové komunity není problém nalézt Arduino návody skoro na vše, což je nejen dobré pro začínající programátory Arduina, ale i pro zkušenější programátory. Lze najít návody na vytvoření Arduina jako toustovače, stavby 3D tiskáren, robota nebo dokonce vyslání Arduina do vesmíru ve formě satelitu. Možnosti, které nabízí Arduino open source platformy, jsou omezené pouze fantazií. Znalosti základů elektrotechniky a programování jsou vítány, ale nejsou povinné pro práci s Arduinem. Více informací naleznete na internetové stránce (arduino.cz). 1.2 Historie Arduina Vývoj prvního Arduina začal v roce 2005, kdy se lidé z italského Interaction Design Institute ve městě Ivrea rozhodli udělat jednoduchý a levný vývojový set, který byl cílený na studenty, kteří nechtěli kupovat tehdy drahé a rozšířené desky BASIC Stamp. Studenti přijali Arduino kladně, a proto se tvůrci rozhodli nabídnout ho celému světu. K dispozici nebyly pouze desky, ale byla nesdílená i všechna schémata a posléze i návody, jelikož projekt je Open Source. Programovací část Arduina je 10
založena na Processing, což znamená, že programovací jazyk je s vlastním editorem, který je určen pro výuku programování. Během vývoje vznikla spousta různých typů Arduina a díky tomu, že se jedná o open source projekt, tak vznikly i spousty dalších neoficiálních typů, kterým se říká klony. Více informací naleznete na internetové stránce (arduino.cz) 1.3 Typy desek V každém Arduinu se nachází procesor, který dodává firma Atmel. Na něj jsou pak napojeny další elektronické komponenty. Pro většinu desek je typické společné grafické zpracování, a to převládající modrá barva. Na internetových stránkách je možné se setkat s deskami, které mají za názvem připojeno R3 například Arduino Uno R3, což znamená, jaká verze to je. Mezi verzemi mohlo dojít například k malé změně rozložení součástek nebo jejich designu. Tyto změny nejsou tak závažné, aby bylo potřeba vytvářet další typy desek. U většiny desek se mimo hlavního čipu nachází také převodník, který zajišťuje komunikaci mezi PC a čipem. Je možné se setkat i s deskami, které tento převodník nemají, a to se stává ze dvou důvodů. Prvním důvodem je potřeba úspory místa a z toho vyplývá, že je potřeba použít externí převodník. Druhým důvodem je, že deska má převodník zabudovaný v jejich hlavním čipu. Dále jsou vypsány jednotlivé desky od nejmenších po největší. Více informací naleznete na internetové stránce (arduino.cz) 1.3.1 Arduino Mini Arduino Mini je zřejmě nejmenší oficiální verze Arduina navržená pro úsporu místa. Jelikož kvůli své velikosti nemá USB port, při programování je potřeba použít externí USB 2 Serial převodník. Výkon Arduina Mini však nezůstává pozadu za většími deskami. Na desce se nachází procesor ATmega328 s taktem 16 MHz. Pro svoji velikost bývá často používán například v dálkových ovladačích nebo chytrých vypínačích. Více informací naleznete na internetové stránce (arduino.cz) 11
1.3.2 Arduino Nano Arduino Nano se od Arduina Mini, co se týče výbavy, moc neliší. Hlavním rozdílem je fakt, že se na této desce nachází USB port a převodník, díky čemuž je tato deska o něco větší. Z toho vyplývá, že není potřeba používat současně s deskou ještě další programovací prostředek. Více informací naleznete na internetové stránce (arduino.cz) Obrázek 1 Arduino Nano zdroj (http://www.alselectro.com/images/nano _1.jpg) Obrázek 2 Arduino Nano zdroj (http://www.alselectro.com/images/nano_pi ns5_ok.jpg) 1.3.3 Arduino Micro Arduino Micro disponuje čipem, který má v sobě zabudovaný převodník. Tento čip se nazývá ATmega32u4.Hlavní výhodou je, že počítačem může být chápán jako myš nebo klávesnice, a proto dokáže posílat příkazy, jako je stisknutí klávesy nebo posun myší.to lze i s ostatními deskami, ale je potřeba přeprogramovat převodník. Nejčastější to bývá u převodníku založeném na čipu ATmega16u2 nebo ATmega8u2, což nemusí být vždy úplně jednoduché. Tato deska je tedy velmi vhodná pro vytváření vlastních klávesnic nebo herních ovladačů. Více informací naleznete na internetové stránce (arduino.cz) 1.3.4 Arduino Lilypad Arduino Lilypad není úplně typické. Tato deska je totiž uzpůsobena pro nošení na textilu. Spoje tvoří vodivé nitě. Díky těmto vlastnostem je vhodná například 12
pro výrobu cyklistických mikin s přišitými blinkry. Tato deska se vyrábí ve více verzích například ve verzi s USB a čipem ATmega32u4 nebo ve verzi bez USB s ATmega328. Více informací naleznete na internetové stránce (arduino.cz) 1.3.5 Arduino Fio Arduino Fio je deska vytvořena pro připojení různých bezdrátových modulů například XBee moduly. Deska je vybavena čipem ATmega328P, který má frekvenci 8MHz. Napětí je u tohoto typu bylo sníženo pro zachování kompatibility s moduly a to na 3,3V oproti ostatním deskám, které používají napětí 5V. Více informací naleznete na internetové stránce (arduino.cz) 1.3.6 Arduino Uno Arduino Uno je v dnešní době asi nejvíce používaný typ desky. Je bezprostředním pokračovatelem hlavní vývojové linie, začínající Arduinem, které mělo sériový port místo dnes nejvíce používaného USB. Pokračovala Arduinem Extreme, dále Arduinem NG,Diecimila a Duemilanove, až se nakonec dostáváme k současnému Unu. Dnes je vybavena procesorem ATmega328 a již obvyklým USB. Z Una vznikly další dvě speciální desky první deska je Arduino Ethernet, která je stejně vybavena jako Arduino Uno, avšak místo obvyklého USB je zde Ethernet port, který slouží k připojení k síti. Navíc je Arduino Ethernet vybaven i slotem pro microsd karty. Druhá deska je Arduino Bluetooth, u kterého byl USB port nahrazen Bluetooth modulem pro bezdrátovou komunikaci. Dále Arduino lze brát jako méně vybavené Arduino Uno. Arduino Pro není vybaveno USB portem, z čehož plyne nutnost použití externího převodníku pro programování, které bývá nejčastěji pevně zabudováno do některého projektu. Více informací naleznete na internetové stránce (arduino.cz) 1.3.7 Arduino Leonardo Arduino Leonardo se vzhledově podobá Arduinu Unu. Rozdíl je však v použitém čipu, zde je použit ATmega32u4, který je vhodný pro vytváření vlastních klávesnic i myší a byl již zmíněn u Arduina Micra. Více informací naleznete na internetové stránce (arduino.cz) 13
1.3.8 Arduino Yun Arduino Yun je další model, který navazuje na Arduino Uno, avšak tato deska je bezvýhradným průkopníkem. Tento model disponuje totiž dvěma čipy, a to čipem ATmega32u4, na kterém nalezneme jádro Arduina a čipem Atheros AR9331, na kterém je možný běh linuxu Linino. Ve výbavě se nachází i softwarový bridge, který zprostředkovává komunikaci mezi těmito čipy. Na desce nalezneme kromě microusb, který slouží pro programování, také USB 2.0 pro potřeby linuxu Linino, Ethernet port pro připojení do sítě, díky němuž můžete posílat instrukce nebo naměřené hodnoty rovnou na webový server, a nakonec je zde i čtečka paměťových karet Micro-SD. Více informací naleznete na internetové stránce (arduino.cz) 1.3.9 Arduino Mega Arduino Mega 2560 je deska patřící do skupiny, u kterých je vzhled vytvořen prodloužením designu Arduina Uno. Větší rozměr nabízí prostor pro výkonnější čipy a také více pinů.arduino Mega1280 předcházela verzi Arduino Mega2560. Tato deska je vhodná pro úkoly, kde je potřeba větší výpočetní výkon. Arduino Mega ADK je vybaveno dvěma USB, přičemž se druhé USB používá pro připojení zařízení s Androidem. Je odnoží Arduina Mega 2560. Více informací naleznete na internetové stránce (arduino.cz) 14
Obrázek 3 Arduino Mega zdroj (http://www.alselectro.com/images/mega_pins.jpg) 1.3.10 Arduino Due Arduino Due je následníkem Arduina Mega ovšem s rozdílem, že disponuje o hodně výkonnějším čipem.tím je Atmel SAM3X8E, který má taktovací frekvenci 84Mhz a 32-bitové jádro, což je proti ostatním deskám, které mají jádro 8-bitové a maximální taktovací frekvenci 16MHz, velký rozdíl. Na desce jsou umístěny dva microusb konektory jeden slouží pro programování čipu a druhý slouží pro připojení zařízení jako je myš, klávesnice a jiné. Více informací naleznete na internetové stránce (arduino.cz) 1.3.11 Arduino Esplora Cituji ze stránky (arduino.cz): "Arduino Esplora je první z desek, která by se dala zařadit do kategorie hybridní. Na první pohled je viditelný joystick, tlačítka a posuvný potenciometr. Nalezneme zde ale také piezzo bzučák, teploměr, tříosý akcelerometr, nebo piny pro připojení LCD displeje. Jedná se totiž o typ Arduina, se kterým se dá vytvořit samostatný herní set, nebo vlastní konzole pro hraní her. Jednoduchou komunikaci s PC zajišťuje procesor ATmega32u4." 15
1.3.12 Arduino Robot Arduino Robot je set sloužící pro vytvoření vlastního robota. Jeho řídící jednotkou je procesor ATmega32u4, který nalezneme i u Arduina Micra. V tomto setu nalezneme na desce i kompas. Více informací naleznete na internetové stránce (arduino.cz) 1.3.13 Arduino Galileo Arduino Galileo bylo vytvořeno při spolupráci se společností Intel. Tato deska je první, která běží na čipu Intel a to Intel QuarkSoC X1000, jenž je 32-bitový procesor s taktovací frekvencí 400MHz.Deska je vybavena dvěma USB, slotem pro paměťové karty typu microsd, ale i Ethernet portem. Dále je zde umístěn také slot mini-pci Express, který slouží pro připojení různých přídavných karet. Více informací naleznete na internetové stránce (arduino.cz) 1.4 Arduino Shieldy Pokud Arduino není něčeho schopné, neznamená to, že neexistuje řešení. Problém nám dokáže vyřešit takzvaný shield, který se zasune do zdířek na Arduinu. Tak, jako máme celou řadu desek, tak i shieldů existuje celá řada. Mezi oficiálními shieldy se nachází Ethernet Shield, Wifi Shield, Motor Shield a jiné. Ovšem při vybírání shieldu je potřeba si dávat pozor na kompatibilitu s Arduinem. Více informací naleznete na internetové stránce (arduino.cz) 1.5 Arduino klony Arduino klony jsou neoficiální desky, které mohou vypadat jako oficiální desky. Klony lze poznat podle toho, že mají často v názvu duino, protože název Arduino je chráněn autorskými právy, ale -duino či jiné části v názvu chráněny nejsou. Protože všechna schémata, součástky nebo i software jsou dostupné na internetu zdarma, je možné, že si každý může sestavit své Arduino doma. Z tohoto důvodu se 16
můžeme setkat s klony, které jsou tvarově i výbavou stejné jako oficiální modely. Na druhou stranu jsou k vidění i desky, které jsou upraveny pro konkrétní úlohu a ty pak se mohou s oficiálními deskami velmi lišit. Příkladem klonu je ArduPilot, který je vytvořen pro ovládání autonomních létajících zařízení například letadla či kvadrokoptéry. Další příklad je Rainbowduino, které je vytvořeno pro řízení a nasazení 8x8 maticového RGB LED displeje. Dále nabízí možnost sestavení větších celků. Více informací naleznete na internetové stránce (arduino.cz) 1.6 Přerušení Všechny procesory fungují tak, že si načítají jednotlivé instrukce z paměti, které pak následně zpracovávají. Načítání instrukcí se provádí v pořadí, ve kterém jsou uloženy v paměti, z čehož vyplývá, že se provádí synchronně. Přerušení je možnost, jak obsloužit důležité události neboli pokud nastane událost, na kterou je potřeba bez prodlení reagovat, procesor přestane načítat instrukce hlavního programu a načte program, který je určen pro zpracování přerušením. Tento způsob se nazývá asynchronní. Když je obsluha přerušení dokončena, procesor začne zase vykonávat původní činnosti. Aby bylo možné používat tyto vlastnosti, je zapotřebí, aby procesor měl přerušení hardwarově implementované. Existuje několik různých typů přerušení, na něž je možné reagovat. Pokud potřebujeme reagovat na stav pinu, je vhodné použít hardwarové přerušení. Dalším typem přerušení je přerušení z časovače, které je vhodné používat, když spouštíme nějaký výpočet opakovaně k provedení po určitém časovém okamžiku. Dále při chybě v programu požadujeme, aby procesor vygeneroval přerušení, a aby bylo možné na tuto chybu vhodně reagovat, nebo též v okamžiku, kdy budeme dělit nulou, je vhodné použít přerušení. Reakce procesoru na přerušení je podmíněna povolením přerušení. Někdy však potřebujeme, aby přerušení nenastalo například při provádění netriviální operace. Lze tedy přerušení vypnout a procesor nebude reagovat na veškeré vnější události. V opačném případě procesor při detekování důležité události přestane načítat instrukce hlavního programu, uloží hodnoty pracovních registrů do zásobníku a skočí na adresu, na které je náš podprogram pro přerušení. Tato adresa nese název vektor přerušení. Více informací naleznete na internetové stránce (uart.cz/). 17
1.6.1 Arduino přerušení Arduino má celkem dvě externí přerušení, která mají čísla 0 a 1 a najdeme je na digitálních pinech s čísly 2 a 3. Tyto piny mohou mít čtyři různé druhy událostí a to LOW, které nastane pokaždé, pokud je pin v logické nule, CHANGE, které nastane, pokud se změní logická hodnota na daném pinu, RISING, které nastane při příchodu vzestupné hrany a FALLING, které nastane při příchodu sestupné hrany. Obrázek 4 Vzestupná a sestupná hrana zdroj (https://uart.cz/wp-content/uploads/2011/10/rising- zapotřebí sledovat falling_edge.png) Pokud potřebujeme reagovat na stisknutí tlačítka, pak tedy je vzestupné a sestupné hrany. U Arduina lze nalézt čtyři funkce pro prácí s hardwarovým neboli externím přerušením a to attachinterrupt(), detachinterrupt(), interrupts() a nointerrupts(). Funkce interrupts() a nointerrupts() zapínají a vypínají přerušení. Pokud však nezavoláme ani jednu z těchto funkcí, pak Arduino je nastaveno, aby nereagovalo na externí přerušení. Z toho vyplývá, že pokud chceme externí přerušení povolit, je nutné zavolat funkci interrupts(). Funkce attachinterrupt() je určena pro registraci námi definované funkce pro obsluhu přerušení. Funkce detachinterrupt() slouží pro odpojení dané funkce od daného přerušení. Více informací naleznete na internetové stránce (uart.cz). 18
Vzorový kód pro tlačítko Následující vzorový kód reaguje na stisknutí tlačítka, které se nachází na pinu 2. Obrázek 5 Stisk tlačítka zdroj (autor) Pokud by před podmínkou, která nám kontroluje stisk tlačítka, byla volaná nějaká funkce, která by probíhala například pět sekund, došlo by k tomu, že stav tlačítka by byl kontrolován s malým zpožděním každých pět sekund. Následující vzorový kód, který je na další straně, tento stav eliminuje. Obrázek 6 Tlačítko s přerušením zdroj: https://uart.cz/271/arduino-a-preruseni/ hrany na pinu číslo 2, se ihned přeruší zpracovávání Při zaznamenání vzestupné programu ve funkci loop(), následně se dočasně zakáže přerušení, vykoná se funkce button(), povolí se přerušení a začne se zpracovávat funkce loop() a to od místa, kde nastalo přerušení. Bližší informace na (uart.cz/). 19
1.7 IR Komunikace IR záření je světlo, které lidské oko není schopné vidět, což je výhodné pro komunikaci. Zdroje IR jsou například Slunce, žárovky, nebo dálkový ovladač televize. Televizní IR přijímač dokáže rozeznat signály z dálkového ovladače od jiných zdrojů díky modulování signálu. Modulační signál slouží k přiřazení vzoru k Vašim datům, proto přijímač dokáže naslouchat. Běžné modulační schéma pro IR komunikace se nazývá 38kHz modulace, protože v přírodě je velmi málo zdrojů, které by měly pravidelnost 38kHz, proto signál z IR vysílače vynikne mezi okolními IR signály. I když je 38kHz modulovaný IR nejběžnější, lze použít i jiné frekvence. Obrázek 7 Zapínání a vypínání impulzu zdroj (https://cdn.sparkfun.com/assets/9/3/2/b/a/5159e97ece395f9643000000.jpg) Při připojení osciloskopu k IR LED z dálkového ovladače, by byl vidět signál podobný tomu na Obrázku 2. Modulovaný signál je to, co přijímací systém přesně vidí. Více informací naleznete na internetové stránce (learn.sparkfun.com). 1.7.1 IR vysílání, příjem dat Pro příjem a vysílání dat můžeme použít různé protokoly, kterými jsou například NEC, SONY a RC5.Na následujícím obrázku je ukázka přenosu dat pomocí protokolu NEC. 20
Obrázek 8 NEC protokol zdroj (https://circuitdigest.com/sites/default/files/inlineimages/necmodulation.png) Při použití Arduina jako ovladače je princip následující, Arduino vyšle příkazy pomocí IR LED, která bliká podle určitého vzoru. Blikající vzor je zachycen IR přijímačem, který jej dekóduje a následně vykoná instrukci. Více informací naleznete na (www.circuitdigest.com). 21
2 RASPBERRY PI Nadace Raspberry Pi je charitativní organizace založená ve Velké Británii, která usiluje o to, aby se digitální tvorba dostala do rukou lidí po celém světě, takže jsou schopni porozumět a formovat náš stále digitálnější svět, schopný řešit problémy, na kterých záleží a jsou vybaveny pro práci v budoucnu. Poskytuje levné a vysoce výkonné počítače, které lidé používají k učení, řešení problémů a zábavě. Poskytuje informační a vzdělávací služby, které pomáhají více lidem přistupovat k výpočetní a digitální tvorbě. Rozvíjí svobodné zdroje, aby lidem pomohly se dozvědět o výpočetních technikách a jak dělat věci s počítači a školit pedagogy, kteří mohou vést ostatní lidi k učení. Více informací naleznete na internetové stránce (www.raspberrypi.org). 2.1 Raspberry Pi 3 Model B Raspberry Pi 3 Model B je nejnovější jednodeskový počítač od nadace Raspberry Pi. V této verzi najdete 64bitový čtyřjádrový procesor ARM s taktem 1.2Ghz,bezdrátovou síť LAN 802.11n, Bluetooth 4.1 a technologii Bluetooth Low Energy. Stejně jako předešlá verze Raspberry Pi 2 má 1 GB RAM, 4 USB porty a plnou HDMI podporu. Dále na této desce nalezneme audio výstup, Ethernet, GPIO, čtečku paměťových karet a microusb pro napájemí desky. Raspberry Pi 3 je počítač o velikosti kreditních karet, který má schopnosti podobné stolnímu počítači. Dokáže prohlížet webové stránky, přehrávat videa na webu i z disku zpracovávat text nebo hrát hry schopnosti Raspberry Pi jsou rozsáhlé. Se svým výkonem pro zpracování grafiky je Raspberry Pi 3 schopen streamovat video ve formátu BluRay. Více informací naleznete na internetové stránce (www.arrow.com) 22
Obrázek 9 Raspberry PI 3 model B zdroj (https://arduinoshop.cz/photos/produkty/f/1/1385.jpg?m=1502871389) 2.2 Operační systémy Raspberry Pi Operačních systémů pro Raspberry Pi je celá řada. Lze je rozdělit podle toho, na jakém jádru jsou založeny a to na systémy s Linuxovým jádrem a na systémy bez Linuxového jádra. 2.2.1 OS s Linuxový jádrem Mezi nejpoužívanější operační systémy s Linuxovým jádrem patří Raspbian, který je bezplatný operační systém založený na Debianu a optimalizovaný pro Raspberry Pi hardware. Raspbian poskytuje více než jen operační systém, získáte také více než 35000 balíčků, předkompilovaný software ve formátu pro snadnou instalaci na Raspberry Pi. (raspbian.org) Další operační systém o, kterém bych se zmínil je Android Things, založený na Androidu, který patří mezi platformu vestavěných operačních systémů navržených společností Google a oznámen byl na konferenci Google I/O 2015. Android Things je určen pro použití v zařízeních Internet of Things(IoT) s nízkým výkonem a omezenou pamětí, které jsou obvykle postaveny na různých mikrokontrolérových platformách.(en.wikipedia.org) 23
Nyní bych již jen vyjmenoval další linuxové operační systémy pro Rasbery Pi, mezi něž patří CentosOS, Fedora 25, Volumio, Retropie, Xbian a mnoho dalších (en.wikipedia.org). 2.2.2 OS bez Linuxového jádra Mezi nejpoužívanější operační systémy bez Linuxového jádra patří Windows IoT. Windows IoT je řada operačních systémů od společnosti Microsoft, která je navržená pro použití ve vestavěných systémech, dostupné pro OEMs (original equipment manufacturers), kteří jej zpřístupní koncovým uživatelům předem pro jejich hardware, kromě zákazníků s volnými licencemi v některých případech (en.wikipedia.org). Nyní bych vyjmenoval další operační systémy bez linuxového jádra pro Rasbery Pi mezi něž patří RISC OS, Haiku, HelenOS, FreeBSD, NetBSD a další. Další informace naleznete na (en.wikipedia.org) 24
PRAKTICKÁ ČÁST 3 POUŽITÝ SOFTWARE 3.1 Arduino IDE Arduino IDE je hlavní programovací prostředí pro tvorbu kódu pro Arduina. Toto programovací prostředí, je dostupné zdarma a lze ho nalézt na následujícíhc stránkách https://www.arduino.cc/en/main/software. Zde máme na výběr z více možností například pro Windows s instalací nebo ZIP soubor. Já si zvolil s instalací, protože se během instalace nainstalují i tolik důležité porty COM. Verze Arduino IDE byla zvolena 1.8.4, ale na uvedených stránkách je již nachází verze 1.8.5. 3.2 PSPad editor PSPad editor byl použit pro vytvoření webových stránek, které byly nahrány na serveru hry. Tento editor lze použít nejen k vytvoření webových stránek a jejich designu, ale je schopen i vytvořit prostředí pro programování v jiných jazycích například pro programovací jazyky C, C++ nebo Java. Program byl stažen ze stránek stahuj.centrum.cz. 3.3 Etcher Etcher byl použit pro naistalování operačního systému na paměťovou kartu, ze které je systém spouštěn. Verze Etcheru byla použita 1.1.2. Tento software byl získán ze stránek etcher.io. 25
4 BLOKOVÉ SCHÉMA ZAPOJENÍ Obrázek 10 Schéma zapojení vesty zdroj (autor) 26
5 IRREMOTE KNIHOVNA Knihovnu lze přidat tak, že si ji stáhneme z internetu v archivu zip a pak už nám jen stačí spustit Arduino IDE, a poté v záložce Projekt zvolíme Přidat knihovnu a zde klikneme na Přidat.ZIP knihovnu, následně vybereme námi staženou knihovnu v archivu zip a klikneme na Open a nyní je knihovna připravena k použití. Knihovna Irremote slouží pro přenos infračerveného signálu a obsahuje různé protokoly pro přenos dat, knihovna umí také změnit pin pro příjem infračerveného signálu na vámi vybraný libovolný pin. Verze 2.0.1. kterou jsem použil, se liší od verze 1.0.0 v platatformách na kterých ji lze použít a také v protokolech, které umí odesílat a které dekódovat. Některé protokoly jsou pojmenovány podle výrobců televizí, protože je lze použít pro tvorbu vlastních dálkových ovladačů, na výběr máme z protokolů například SONY, PANASONIC, SAMSUNG, MITSUBISHI umí pouze dekódovat, nebo SHARP umí pouze posílat. Všechny protokoly naleznete v souboru IRremote.h, který nalezneme v Dokumenty\Arduino\libraries\IRremote. 27
6 INFRAČERVENÝ VYSÍLAČ: Jedná se o vysílač od výrobce RobotBase ve verzi 1.1. Vysílač v této verzi má dosah na 5 až 7 metrů, potřebné napětí pro práci je 5V a centrální vlnová délka ir diody se pohybuje mezi 850 nm až 940 nm. Vyzařovací úhel je zde 20.Modul můžete vidět na následujícím obrázku. Zapojení tohoto modulu není složité, na symbol - se zapojí zem neboli na arduino desce na pin s označením GND, na symbol + se zapojí 5V a symbol S propojíme s námi potřebným pinem na arduino desce pro arduino UNo, to bývá nejčastěji pin 3. Pro kontrolu se může podívat do knihovny, já používal knihovnu IRremote2, kterou nalezneme v Dokumenty\Arduino\libraries\IRremote a zde otevřeme IRremoteInt.h a v něm najdeme v mém případě desku nano a zjistíme, že máme na výběr ze dvou pinů, a to z pinu 3 a 9 přičemž u pinu 3 se nenachází //, což znamená, že tento řádek není zakomentovaný, a proto se použije tento pin. Obrázek 11 Infračervený vysílač zdroj (http://www.alsrobot.com/index.php?route=product/product&product_id=148) 28
7 INFRAČERVENÝ PŘIJÍMAČ Jedná se o přijímač od výrobce RobotBase ve verzi 1.1. Přijímač v této verzi přijímá signál na vzdálenost 5 až 7 metrů, potřebné napětí pro práci je 5V. Úhel snímání signálu je od 0 do 180.Zapojení tohoto modulu je podobné jako při zapojení infračerveného vysílače a to na symbol - se zapojí zem neboli na arduino desce na pin s označením GND, na symbol + se zapojí 5V a symbol S propojíme s námi potřebným pinem na arduino desce při čemž si v kódu můžeme zvolit pin, který použijeme pomocí knihovny IRremote ve verzi 2.0.1. Obrázek modulu. Obrázek 12 Infračervený přijímač zdroj (http://www.alsrobot.com/index.php?route=product/product&product_id=149&search=ir+recei ver%20lcd%20display) 29
8 STŘELBA Střelba byla řízena pomocí Arduino Nano z důvodu, aby nevznikala při každém výstřelu nesmrtelnost hráče. Jako vzorový kód programu mi sloužil následující screen programu ze stránek https://www.pjrc.com Obrázek 13 Vzorový kód střelba zdroj (www.pjrc.com) Ovšem byla potřeba ještě připojit k desce tlačítko a následně ohlídat aby střelba proběhla pouze s každým stiskem tlačítka pouze jednou a navíc, aby po zásahu byla deaktivovaná zbraň, aby se nestávalo, že by zasažený hráč mohl pokračovat ve střelbě. Dále bylo potřeba ještě propojit Arduino Nano a Arduino Mega pomocí jednoho pinu, který slouží právě pro zmiňovanou deaktivaci. Následující screen je mé řešení. 30
Obrázek 14 Střelba zdroj (autor) 31
9 ZÁSAH Zásah byl řízen deskou Arduino Mega ze stejného důvodu jako u střelby. Jako vzorový kód programu mi sloužil následující screen programu ze stránek https://www.pjrc.com. Obrázek 15 Vzorový kód příjem zdroj (www.pjrc.com) Ani zde, jako u střelby, by tento kód nestačil, a proto jsem vytvořil funkci decoder, která je v každém cyklu volaná a pokud zjistí, že dekódovaný výsledek není nulový, uloží si tuto hodnotu do proměnné prenos. Proměnná prenos je dále používaná pro rozhodování funkcí switch. Dále je v této funkci přidáno předání informace Wemos D1 miny pomocí digitálních pinů 9 a 10. Pin 9 slouží jako hlavní spouštěč přenosu informace a zároveň slouží i pro ukončení přenosu dat. Při nastavení pinu 9 na 1 dojde k tomu, že Wemos D1 miny má začít počítat, kolikrát se pin 10 nahodí do stavu 1. Ukončení počítání je realizováno pomocí nastavení pinu 9 do stavu 0. Podle výsledného čísla se nahraje zásah hráči na server hry. Kód je na následujícím obrázku. 32
Obrázek 16 Rozhodování příjem zdroj (autor) 33
10 RASPBERRY PI OPERAČNÍ SYSTÉM NAHRÁNÍ Pro plnou funkčnost Raspberry Pi je potřeba připojit microsd paměťovou kartu s operačním systémem. Pro nahrání operačního systému na kartu máme dva způsoby. Zaprvé program NOOBS nebo pomocí programu Etcher, rozdíl mezi těmito programy je ten, že NOOBS potřebuje připojení k internetu, a poté nabídne možné operační systémy, a po vybrání operačního systému ho stáhne a začne instalovat. Naproti tomu Etcher požaduje stažený soubor operačního systému a pak už jen stačí spustit Etcher a pak po pár krocích nainstaluje operační systém na SD kartu. Já si pro instalaci zvolil Etcher a operační systém jsem zvolil Raspbian. Raspbian jsem stáhnul na stánkách https://www.raspberrypi.org/downloads/raspbian/ a na těchto stránkách jsou i informace k postupu v angličtině a na výběr tu máme i ze dvou verzí, buď Raspbian s grafickým prostředím nebo jen příkazový řádek. Moje volba byla s grafickým prostředím, a jelikož se jedná o systém založený na Debianu, bylo potřeba mít pro systém alespoň k dispozici 10 GB volného místa na paměťové kartě. 34
11 PHPMYADMIN Před samotnou instalací phpmyadmin bylo zapotřebí nainstalovat ještě mysql, php a provést update. Do terminálu jsem tedy nejprve zadal příkaz update a následně zadal příkaz sudo apt-get install mysql-server, který slouží pro intalaci mysql. Během instalace se má objevit menu s nastavením hesla pro uživatele root, ale v mém případě se menu nezobrazilo. To vedlo k neúspěšnému přihlášení do mysql databáze, které se provádí pomocí příkazu sudo mysql -u root -p. Musel jsem tedy zadat příkaz mysql_secure_installation a zde jsem změnil heslo uživatele root a přidal ještě uživatele admin. Po úspěšném přihlášení jsem pokračoval naistalováním php. Poté jsem naistaloval Apache2. Nyní jsem nainstaloval phpmyadmin. Pro plnou funkci phpmyadmin bylo ještě zapotřebí přidat do souboru apache2.conf řádek Include /etc/phpmyadmin/apache.conf a restartovat Apache2. Následně jsem ověřil správnou funkčnost pomocí webového prohlížeče napsáním do adresy localhost/phpmyadmin. Phpmyadmin zobrazil přihlašovací formulář do databáze, do něj jsem zadal uživatele a heslo a přihlášení proběhlo úspěšně. 35
12 WEMOS D1 MINI Wemos D1 mini je založený na ESP-8266EX s 4MB flash pamětí a podporuje wifi standard IEEE 802.11 b, g, n. Dále tato deska má 11 digitálních vstupních/výstupních pinů, jeden resetovací pin a jeden vstupní analogový pin s maximálním vstupním napětím 3.2V. Na této desce se ještě nachází pin pro zem označený písmenem G a dva piny pro výstupní napájení jeden 3,3V a druhý 5V. Pro nahrávání kódů do desky nebo pro připojení napájení, zde nalezneme micro USB. Následující obrázek Wemos D1 mini. Obrázek 17 Wemos D1 mini zdroj (https://wiki.wemos.cc/_media/products:d1:d1_mini_v2.3.0_1_16x9.jpg) Wemos D1 mini jsem použil pro získání jména hráče, nahrání jména hráče na server hry, zobrazení jména hráče na displeji a nahrání informace o zásahu na server hry. Jméno hráče se získá pomocí webových stránek, které jsou naprogramovány v Arduinu IDE. 36
13 DISPLEJ Displej je typu 2x16, což znamená, že je schopný zobrazit 16 znaků na řádku a řádky má 2. Displej jsem použil se sběrnicí I2C, což mi pomohlo výrazným způsobem snížit potřebný počet pinů a drátů. Zapojení displeje s touto sběrnicí je jednoduché, pro propojení s Wemos D1 mini se připojí SDA na pin D2, SCL na pin D1 a poté se zapojí už jen napájení. Pro programování displeje se sběrnicí I2C je zapotřebí mít nainstalovanou knihovnu Liquid Crystal I2C, ve které se nachází i vzorové kódy. Displej je naprogramován ve výchozím stavu pro zobrazení Laser Game na prvním řádku a na druhém řádku je jméno hráče, jehož je výchozí hodnota Hrac 1. Zobrazení jména hráče získaného z webových stránek provádí funkce disp, před jejímž zavoláním se ještě provede funkce clear. Funkci clear jsem použil pro smazání předešlých zobrazených znaků, aby na displeji nezůstávaly zobrazeny znaky jmen hráčů s delším jménem, než jsou ti nově zadaní. Pro získání pouze jména zadaného uživatelem jsem z proměnné request vyříznul jméno pomocí funkce substring. Tato funkce požaduje dvě číselné hodnoty, pokud se námi požadovaný výsledek nachází uvnitř stringu, a to začátek a konec. Kód na následujícím obrázku. Obrázek 18 Získání jména zdroj (autor) 37
14 WEBOVÉ STRÁNKY Webové stránky jsem programoval ve PSPadu a v Arduino IDE. 14.1 Arduino IDE Stránky vytvořené v Arduino IDE slouží pro získání jména hráče. Stránky obsahují textové pole, po jehož vyplnění a stisknutí Enteru se zobrazí na připojeném displeji zadané jméno hráče. Jméno hráče je po zobrazení na displeji posláno na server hry. 14.2 PSPad Stránky vytvořené v Pspadu slouží pro zobrazení informací o hře, nahrání dat na server, respektive úpravy dat. Stránky vytvořené v PSPadu se nachází na serveru hry. Jako vzorový kód, který byl následně upraven, mi posloužil kód na webových stránkách www.esp8266learning.com/wemos-webserver-example.php. 38
15 TESTOVÁNÍ 15.1 Střelba a příjem Testování střelby z počátku probíhalo cíleně, na zasahování vesty sami sebou. Během testování byl zjištěn drobný problém, vesta se zhasla, i když nebyla zasažena zbraní s možnými kódy. Tento problém byl způsoben špatně nastavenou podmínkou, kdy ke zhasnutí vesty stačil jakýkoliv ir signál. Problém byl vyřešen pomocí funkce switch, ve které jsou napsány možné kódy zbraní a jiné kódy či signály nejsou brány v potaz. V průběhu testování jsem zkoušel střelbu bez i s použitím hlavně. Hlaveň byla tvořena 20 cm měděnou trubičkou, se kterou byla dosažena vysoká přesnost střelby. Obrázek 19 Střelba testování (autor) 39
15.2 Displej V průběhu testování jsem zkoušel nahrát na displej různá jména o různé délce. Jména, která byla získaná ze stránek a obsahovala mezery, tak se na pozici mezer zobrazovaly, na displeji zástupné znaky. Problém zástupných znaků nebyl řešen, protože tento problém není hlavní prioritou. Další problém byly zůstávající znaky po předešlém hráči. Tento problém byl již dříve popsán u displeje a jeho řešením bylo použití funkce clear. 15.3 Wemos Zde bylo testováno nahrávání dat na server a propojení displeje s arduinem a displejem. Propojení nevykazovalo žádné problémy. Nahrávání dat na server ovšem působilo problém. Při získání jména a poslání na soubor, který ho měl nahrát na server, se zobrazilo, že proběhlo úspěšné nahrání jména na server, ovšem v databázi se neobjevilo posílané jméno. Tato chyba byla způsobena mezerou navíc u získaného jména. Chyba byla odstraněna zvýšením o 1 počtu znaků odečítaných znaků u konce jména ve funkci substring. 15.4 Přenos informací mezi deskami Zde se nejprve projevil problém se zbytkovým napětí na pinech Megi po inicializaci. Problém byl vyřešen nastavením pinu na 0 po inicializaci. Dále při připojení komunikačních pinů z Arduino Mega do Wemos jsem zaznamenal, že piny na Wemosu se nastaví na 1, aniž by Mega posílala data. Proto jsem vypisoval hodnoty pinů na sériovou linku. Piny, které při výpisu jejich hodnot zobrazovaly 0, jsem propojil s Megou. Ovšem většina pinů se při připojení komunikačních pinů Megi nastavila na 1, aniž by Mega začala posílat hodnoty. Tento problém byl vyřešen připojením komunikačních pinů na piny Wemosu D0 a A0, které jediné z dostupných pinů fungovaly podle potřeby. Piny D0 a A0 jsem raději po inicializaci také raději nastavil na hodnotu 0. 40
SHRNUTÍ A ZÁVĚR V této bakalářské práci se povedly splnit hlavní cíle, které byly posílání dat na server, vytvoření dvou vest a dvou zbraní a vytvoření serveru hry. Toto řešení není omezené počtem vest, pouze přidání další jedné vesty by znamenalo přidání jednoho řádku do kódu vesty a upravení posílaného kódu zbraně a v poslední řadě změnění proměnné id ve Wemosu. V průběhu vývoje programu se vyskytovaly drobné problémy způsobované špatnou pozicí podmínek, různé překlepy a podobně. V průběhu vývoje se ovšem vyskytovaly i závažnější problémy, mezi které bych zařadil nefunkční nahrávání dat na server nebo zbytkové napětí na pinech po inicializaci. Problémy byly odstraněny v případě nahrávání dat na server hry, odebráním jednoho znaku respektive mezery na konci jména a v případě zbytkového napětí na pinech pomohlo nastavení pinů do stavu 0 neboli low již během inicializace. Jedním z možných rozšíření by bylo posílání počtu stisknutí spouště a následné vypočítání přesnosti střelby na serveru hry. Dále by se dalo mé řešení rozšířit o rgb led diodu, která by rozšířila možnosti o nastavení barev u týmů. Databáze byla vytvořena pro základní informace, ovšem další možné rozšíření by bylo historie her, kde by byly uchovávány informace o stylu hry, barvě či dosaženém skóre hráče, což by mohlo pomoci při poskytování služeb Prime Laser Aréně v Jihlavě. 41
SEZNAM POUŽITÝCH ZDROJŮ Internetové zdroje Co je to Arduino. Czechduino.cz [online]. 2012 [cit. 2017-12-28]. Dostupné z: czechduino.cz/?co-je-to-arduino,29 Co je Arduino. Arduino.cz [online]. 2017 [cit. 2017-12-27]. Dostupné z: https://arduino.cz/ SEZNÁMENÍ S ARDUINEM. Arduino [online]. arduino.cz, 2014 [cit. 2017-12-05]. Dostupné z: https://arduino.cz/seznameni-s-arduinem/ Arduino a přerušení. Uart.cz [online]. 2011 [cit. 2017-12-27]. Dostupné z: https://uart.cz/271/arduino-a-preruseni/ IR Communication. Learn.sparkfun.com [online]. 2013 [cit. 2017-12-27]. Dostupné z: https://learn.sparkfun.com/tutorials/ir-communication Univerzální IR dálkové ovládání pomocí Arduino a aplikace Android. Circuitdigest.com[online]. 2017 [cit. 2017-12-27]. Dostupné z: circuitdigest.com/microcontrollerprojects/universal-ir-remote-control-using-arduino-android O nás. Raspberrypi.org [online]. [cit. 2017-12-27]. Dostupné z: https://www.raspberrypi.org/about/ Raspberry Pi 3 Model B. Arrow.com [online]. 2017 [cit. 2017-12-27]. Dostupné z: www.arrow.com/en/products/raspberrypi3/raspberry-pi-foundation Vítejte na Raspbian. Raspbian.org [online]. 2012 [cit. 2017-12-27]. Dostupné z: raspbian.org Android Things. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2017 [cit. 2017-12-28]. Dostupné z: https://en.wikipedia.org/wiki/android_things 42
Raspberry Pi. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2017 [cit. 2017-12-28]. Dostupné z: https://en.wikipedia.org/wiki/raspberry_pi Windows IoT. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2017 [cit. 2017-12-28]. Dostupné z: https://en.wikipedia.org/wiki/windows_iot#core 43
SEZNAM ZKRATEK PHP- Hypertext Preprocessor HTML- HyperText Markup Language LED- light emiting diode I2C- Inter-Integrated Circuit IEEE- Institute of Electrical and Electronics Engineers Wifi- Wireless Fidelity V-Volt USB- Universal serial bus SD- Secure Digital GB-Gigabyte ZIP- Zigzag Inline Package cm- centimetr Iot- Internet of Things LAN- Local area network GHz- Giga hertz MHz-Mega hertz khz-kilo hertz RAM- Random Access Memory RGB LED-Red green blue light emiting diode HDMI- High-Definition Multi-media Interface IDE - Integrated Development Environment OEMs - Original equipment manufacturers IR -infrared 44
SEZNAM OBRÁZKŮ OBRÁZEK 1 ARDUINO NANO ZDROJ (HTTP://WWW.ALSELECTRO.COM/IMAGES/NANO_1.JPG)... 12 OBRÁZEK 2 ARDUINO NANO ZDROJ (HTTP://WWW.ALSELECTRO.COM/IMAGES/NANO_PINS5_OK.JPG) 12 OBRÁZEK 3 ARDUINO MEGA ZDROJ (HTTP://WWW.ALSELECTRO.COM/IMAGES/MEGA_PINS.JPG)... 15 OBRÁZEK 4 VZESTUPNÁ A SESTUPNÁ HRANA ZDROJ (HTTPS://UART.CZ/WP- CONTENT/UPLOADS/2011/10/RISING-FALLING_EDGE.PNG)... 18 OBRÁZEK 5 STISK TLAČÍTKA ZDROJ (AUTOR)... 19 OBRÁZEK 6 TLAČÍTKO S PŘERUŠENÍM ZDROJ: HTTPS://UART.CZ/271/ARDUINO-A-PRERUSENI/... 19 OBRÁZEK 7 ZAPÍNÁNÍ A VYPÍNÁNÍ IMPULZU ZDROJ (HTTPS://CDN.SPARKFUN.COM/ASSETS/9/3/2/B/A/5159E97ECE395F9643000000.JPG)... 20 OBRÁZEK 8 NEC PROTOKOL ZDROJ (HTTPS://CIRCUITDIGEST.COM/SITES/DEFAULT/FILES/INLINEIMAGES/NECMODULATION.PNG)... 21 OBRÁZEK 9 RASPBERRY PI 3 MODEL B ZDROJ (HTTPS://ARDUINO- SHOP.CZ/PHOTOS/PRODUKTY/F/1/1385.JPG?M=1502871389)... 23 OBRÁZEK 10 SCHÉMA ZAPOJENÍ VESTY ZDROJ (AUTOR)... 26 OBRÁZEK 11 INFRAČERVENÝ VYSÍLAČ ZDROJ (HTTP://WWW.ALSROBOT.COM/INDEX.PHP?ROUTE=PRODUCT/PRODUCT&PRODUCT_ID=148). 28 OBRÁZEK 12 INFRAČERVENÝ PŘIJÍMAČ ZDROJ (HTTP://WWW.ALSROBOT.COM/INDEX.PHP?ROUTE=PRODUCT/PRODUCT&PRODUCT_ID=149&SE ARCH=IR+RECEIVER%20LCD%20DISPLAY)... 29 OBRÁZEK 13 VZOROVÝ KÓD STŘELBA ZDROJ (WWW.PJRC.COM)... 30 OBRÁZEK 14 STŘELBA ZDROJ (AUTOR)... 31 OBRÁZEK 15 VZOROVÝ KÓD PŘÍJEM ZDROJ (WWW.PJRC.COM)... 32 OBRÁZEK 16 ROZHODOVÁNÍ PŘÍJEM ZDROJ (AUTOR)... 33 OBRÁZEK 17 WEMOS D1 MINI ZDROJ (HTTPS://WIKI.WEMOS.CC/_MEDIA/PRODUCTS:D1:D1_MINI_V2.3.0_1_16X9.JPG)... 36 OBRÁZEK 18 ZÍSKÁNÍ JMÉNA ZDROJ (AUTOR)... 37 OBRÁZEK 19 STŘELBA TESTOVÁNÍ (AUTOR)... 39 45
SEZNAM PŘÍLOH Obsah přiloženého CD bakalarska_prace.pdf zbran1 zbran2 vesta1 vesta2 wemos1 wemos2 web bakalářská práce složka s programem složka s programem složka s programem složka s programem složka s programem složka s programem složka s webovými stránkami 46