Prvé kroky s robotom

Inšpirácia

Potrebné vybavenie

  1. Počítač s nainštalovaným Visiduino IDE
  2. Visiduino ROBOT
  3. USB kábel (link)

Tento príspevok je smerovaný užívateľovi, ktorý sa ešte nikdy nestretol s pojmom robotika či programovaním. Po prečítaní uvedeného príspevku budete vedieť, na akom princípe robot pracuje, ako komunikuje s okolím a učiť ho samostatne vykonávať úlohy. Robot pracuje na princípoch na, ktorých je postavená akákoľvek elektronika okolo nás. Preto vám tento príspevok môže objasniť pohľad na svet v robotike. Pretože ak sa potom pozriete na svoj telefón a uvidíte blikať svetlo, budete vedieť akým spôsobom je ovládané a prečo svieti. Ak stlačíte tlačidlo na počítači, alebo na akomkoľvek inom prístroji budete vedieť, čo sa vnútri zariadenia odohralo

V nasledujúcej časti vás oboznámime s ovládaním svetiel na robotovi, reakciou na stlačenie tlačidla a meraním údajov pomocou senzorov. Nakoniec tieto vedomosti spojíte dokopy a necháte robota, aby sa sám navigoval po vami nakreslenej čiare. Pristúpme teda hneď k prvej časti a to k pripojeniu robota.

Pripojenie a oživenie robota

Keď si USB káblom pripojíte robota k PC rozsvieti sa zelená LED dióda s označením PWR. V prípade, že by sa LED dióda nerozsvietila, je potrebné prepnúť prepínač na robotovi do polohy USB. Týmto prepínačom sa nastavuje zdroj energie pre robota. V polohe BAT je robot napájaný z batérií a v polohe USB je napájaný z PC. Vďaka polymérovej poistke sa pri napájaní z USB chráni USB port vášho počítača. Táto poistka sa aktivuje v momente, ak sa z USB portu PC začne odoberať vyšší prúd. Výhodou tejto poistky je, že ju netreba vymieňať a automaticky sa obnovuje.

Ako ďalšie si spusťte program Visiduino IDE. Tento program si môžete stiahnuť na našich stránkach (tu). Výhodou programu Visiduino IDE je, že nie je potrebná inštalácia. Stačí ho rozbaliť a spustiť kliknutím na Visiduino.exe. Pre podrobnejšie oboznámenie sa s prostredím Visiduino IDE kliknite sem..

Teraz nahráte prvý program do robota. Kliknite v hornej časti menu na Examples -> Basics -> Hello World. Otvorí sa program - blikanie LED diódou na robotovi. Nevadí, ak nerozumiete tomu, čo je zobrazené na obrazovke, pretože teraz je vašou úlohou prepojiť program Visiduino IDE s robotom.

Ak nemáte pripojeného robota k PC, tak ho pripojte a taktiež prepnite prepínač do polohy USB. Visiduino samostatne nadviže nadviaže spojenie s robotom. Jediné čo je potrebné urobiť je kliknúť v hornom menu na Project -> Detect hardware. Ak sa zobrazí hlásenie Visiduino hardware detected! znamená to, že bol robot úspešne pripojený k programu Visiduino IDE. Ak sa zobrazí hlásenie No device detected! Ensure your device is connected!, znamená to, že robot nie je pripojený. Stačí, už iba kliknúť v hornom menu na Project -> Build a prvý program sa nahrá do robota. Na robotovi by mala blikať LED dióda označená ako LED 13. Pre lepšiu ilustráciu je celý proces zhrnutý v krátkom videu vyššie.

Čo sa práve stalo?

Práve ste vykonali úvodné nastavenie. Tento proces sa používa v robotike a priemysle veľmi často, konkrétne vždy keď začínate programovať zariadenie. Po anglicky sa tomu hovorí ,,Initial setup". Základom vyššie uvedeného postupu je nadviazať spojenie s robotom. Podobne ako pri nadväzovaní kontaktov s ľuďmi, najskôr niekoho oslovíte, aby ste nadviazali komunikáciu. Po nadviazaní spojenia už tento proces nemusíte opakovať.

Ovládanie svetiel

Ako svetlá sa použili LED diódy. Sú to malé súčiastky, ktoré keď pripojíte k zdroju energie začnú svietiť. Skratka LED znamená Light Emitting Diode, v preklade tzn. „Svetlo Vyžarujúca Dióda“. Táto súčiastka sa vďaka svojej konštrukcii a nízkym nárokom na energiu s obľubou využíva v elektronike. Ak na vašom počítači, telefóne, alebo televízore svieti kontrolka, tak je to takmer určite LED dióda. Na robotovi je umiestnených 8 LED diód. Zelená LED dióda označená ako PWR svieti ak je robot zapnutý. Dve žlté LED diódy označené ako RX/TX svietia, keď prebieha komunikácia s robotom prostredníctvom USB. LED dióda TX svieti, ak robot odosiela údaje do PC a LED dióda s označením RX svieti, ak robot prijíma údaje z PC.

LED diódu označenú ako LED 13 môžete ovládať z programu, pričom číslo 13 označuje výstup, ku ktorému je pripojená (podrobnejšie o výstupoch sa dočítate nižšie v tomto texte). Posledné štyri LED diódy sú umiestnené v prednej časti robota. Sú označené ako LED 1, LED 2, LED 3 a LED 4. Pravdepodobne by ste čakali, že tieto diódy sú pripojené k výstupom 1 .. 4, ale nie je tomu tak (viac si o tom povieme o chvíľu). Pustíme sa do ovládania svetiel.

Budete ovládať LED 1 .. 4. Ako prvé si vytvoríte nový projekt kliknutím v hornom menu na File -> New. Z knižnice vložíte do modelu blok Visiduino -> Robot -> LEDs a dva bloky Source -> Constant. Jeden blok Constant necháte nastavený na číslo 1.0 a druhý nastavíte na číslo 0.0 (hodnota sa nastaví dvojklikom na blok). Následne prepojíte výstup bloku Constant s hodnotou 1.0 na vstupy bloku LEDs, označené ako LED 1 a LED 2. Blok Constant s hodnotou 0.0 pripojíte na vstupy LED 3 a LED 4. Aktuálny program nahráte do robota, kliknutím v hornej časti menu Project -> Build. Na robotovi sa rozsvieti LED 1 a LED 2. LED 3 a LED 4 ostanú vypnuté.

Čo sa práve stalo?

Blok Visiduino Robot LEDs má štyri vstupy. Tieto vstupy na robotovi prezentujú LED diódy 1 .. 4. Ak sa dostane číslo 1 na vstup bloku, príslušná LED dióda sa rozsvieti. Ak sa naň dostane naopak, číslo 0, príslušná LED dióda bude vypnutá. Na dvojici čísel 0 a 1 je založený celý svet počítačov a elektroniky. Je to základný princíp, na ktorom pracujú počítače. Počítač pracuje iba z nulami a jednotkami. Číslo 0 väčšinou znamená, že má byť niečo vypnuté, alebo zakázané. Číslo 1 naopak znamená, že má byť niečo zapnuté, alebo povolené. Preto boli tieto dve čísla zvolené k ovládaniu LED diód. V robotike sa pravidelne s nimi stretávame. Ak teda privediete na vstup bloku Visiduino Robot LEDs číslo jedna, robot privedie elektrickú energiu k príslušnej LED dióde a tá sa rozsvieti. Ak privediete číslo nula, tak sa prívod elektrickej energie k LED dióde preruší a tým prestane svietiť.

Blikanie s LED

Teraz sa dozviete ako blikať s LED diódou. Ako už viete ak je na vstupe bloku Visiduino Robot LEDs číslo 1, tak LED dióda svieti, inak je vypnutá. Preto aby LED dióda blikala jediné, čo je potrebné urobiť, je dosiahnuť pravidelné striedanie hodnôt medzi 0 a 1. K tomuto účelu existuje blok Generator nachádzajúci sa v časti Source -> Generator. Ak pripojíte blok Generator k bloku Visiduino Robot LEDs presne tak, ako ste pripojili blok Constant, LED dióda začne blikať. Rýchlosť blikania sa dá upraviť v nastaveniach bloku, kde sa upraví čas trvania impulzu. Štandardne je nastavená hodnota 1000 milisekúnd, čo predstavuje jednu sekundu. Ak tento čas skrátite na 100 milisekúnd, tak bude LED dióda blikať desaťkrát rýchlejšie.

Posledný blok, ktorý si predstavíme v spojení s LED diódami sa volá Not. Tento blok sa nachádza v časti Logic -> Not. Má veľmi jednoduchú funkciu. Ak má vstup hodnotu 1, tak výstup má hodnotu 0. A ak má vstup hodnotu 0, tak výstup má hodnotu 1. Vždy má na výstupe opačnú hodnotu ako na vstupe. Ak dáme medzi výstup bloku Generator a vstup bloku Visiduino Robot LEDs blok Not, bude príslušná LED dióda blikať, ale presne naopak ako LED dióda, ku ktorej je údaj z bloku Generator privedený priamo. Preto LED diódy LED 1 a LED 2, vo videu vyššie, svietia keď LED 3 a LED 4 sú vypnuté.

Reakcia na stlačenie tlačidla

V predchádzajúcej časti ste sa dozvedeli spôsob ovládania LED diód. LED diódy je vhodné použiť ak chceme, aby robot niečo signalizoval. Teraz sa dozviete ako vytvoriť reakciu robota na stlačenie tlačidla. Na robotovi sa nachádzajú tri tlačidlá. Tlačidlo s názvom RESET sa nachádza na hornej strane robota a slúži k reštartovaniu robota. Ďalšie dve tlačidlá sa nachádzajú na spodnej časti robota a je možné ich využiť k ovládaniu robota. Umiestnenie tlačidiel na spodnej časti robota bolo zvolené hlavne z jediného dôvodu. Robot má slúžiť ako základ, ktorý je možné ľubovoľne rozširovať. Nakoľko na rozširovanie robota o ďalšie mechanické a elektronické prvky slúži horná strana robota, bolo by dosť nepraktické ak by sa na nej nachádzali aj tlačidlá slúžiace k jeho ovládaniu. Preto bola spodná strana robota zvolená ako umiestnenie pre tlačidlá.

Blok, pomocou ktorého zistíme či je tlačidlo stlačené sa volá Visiduino Robot Buttons a nachádza sa v časti Visiduino -> Robot -> Buttons. Na výstupe tohto bloku sú dve možné hodnoty. Číslo 0 je na výstupe bloku ak tlačidlo nie je stlačené. Stlačením tlačidla sa výstup zmení na číslo 1. Ak privediete tieto hodnoty na blok Visiduino Robot LEDs, budete pomocou tlačidiel priamo ovládať LED diódy.

Teraz ovládanie svetiel trochu vylepšíte. Použijete k tomu blok SR. Tento blok sa nachádza v knižnici v časti Logic -> SR. Názov bloku SR vznikol z jeho funkcie a to Set/Reset. Tento blok má dva vstupy: (S)et a (R)eset. Ak na vstup S privedieti číslo 1 tak sa jeho výstup nastaví na hodnotu 1. Ak na vstup R privediete číslo 1 tak sa jeho výstup nastaví na hodnotu 0. Znamená to, že viete jedným tlačidlom nastaviť číslo 1 na výstupe a druhým nastaviť výstup na číslo 0. Ak hodnotu tohto výstupu privediete na LED diódu, budete vedieť LED diódu zapnúť jedným tlačidlom a druhým vypnúť.

Ovládanie motorov

Motory sa ovládajú podobným spôsobom ako LED diódy. Ak privediete na blok ovládajúci motory číslo 1.0, motor by sa spustil maximálnou rýchlosťou a otáčal by koleso smerom dopredu. Môžete si to hneď aj vyskúšať. Blok k ovládaniu motorov sa volá Visiduino Robot Wheels a nachádza sa v časti Visiduino -> Robot -> Wheels. Ak spojíte motory s tlačidlami, tak ako je tomu vo videu vyššíe, stlačením sa bude koleso točiť dopredu.

Blok ovládajúci motory však prijíma viac údajov ako iba hodnoty 0.0 a 1.0. Blok ovládajúci motory prijíma údaje od -1.0 po 1.0. Hodnota 0.0 pre motor znamená, stop. Hodnota 0.5 pre motor znamená, aby sa točil polovičnou rýchlosťou dopredu a hodnota -1.0 pre motor znamená, aby sa točil maximálnou rýchlosťou dozadu. Aby ste si mohli vyskúšať program s motorom, vložíte medzi blok ovládajúci motory a blok čítajúci hodnoty z tlačidiel blok Gain. Blok Gain sa nachádza v knižnici v časti Math -> Gain. Tento blok zoberie hodnotu zo svojho vstupu a prenásobí ju zadaným číslom. Vyskúšajte teda, hodnotu z tlačidla 1.0 (stlačené)/ 0.0 (nestlačené) prenásobiť číslom 0.2. Výsledkom bude hodnota 0.2 (pri stlačenom tlačidle) / 0.0 (pri nestlačenom tlačidle). Ak teraz prenesiete túto hodnotu na vstup bloku ovládajúci motor, koleso bude stáť, alebo sa pomaly točiť smerom dopredu. Všimnite si vo videu, že ak sa motor točí pomalšie znamená to, že je slabší a je možné ho jednoduchšie zastaviť.

Čítanie údajov zo senzorov

Aký by to už len mohol byť robot ak by nemal senzory. Senzory dávajú robotovi možnosť vidieť. Robot má v prednej časti umiestnené dva senzory, ktoré snímajú podlahu. Tieto senzory vedia zistiť, či sa pozerajú na bielu, alebo čiernu farbu. Zisťujú to na princípe odrážania svetla. Biely povrch odráža svetlo lepšie ako čierny. Preto tieto senzory svietia pod robota a na základe toho koľko svetla sa od podlahy odrazí vedia zistiť, či je pod senzorom biela, alebo čierna farba. Ale ak zapnete robota svetlo nehľadajte. Nebudete ho vidieť, jedná sa totiž o infračervené svetlo a to ľudské oko nevidí. Výhodou použitia infračerveného svetla je, že je odolnejšie voči rušeniu od okolitých zdrojov svetla a druhou výhodou je, že váš robot bude vedieť rozlíšiť či je pod ním biela, alebo čierna farba aj v úplnej tme.

Ak by ste nám neverili, že senzor pracuje na princípe svetla, tak sa o tom môžete presvedčiť sami. Pozrite sa na senzor cez kameru telefónu, alebo tabletu a budete vidieť, ako v ňom svieti svetlo. Kamera je na toto svetlo citlivá a vie ho zachytiť. Teraz už viete na akom princípe pracujú niektoré bezpečnostné kamery s nočným videním. Ale vráťme sa späť k nášmu robotovi. Blok čítajúci údaje zo senzorov sa volá Visiduino Robot Sensors a nachádza sa v časti Visiduino -> Robot -> Sensors. Ak je pod senzorom biela farba na výstupe bloku je číslo 1. Ak je pod senzorom čierna farba na výstupe bloku je číslo 0. V prvej časti videa vyššie sme najskôr prepojili výstup senzorov s LED diódami. Keď sme potom pohybovali bielo/čiernym pásikom pod robotom, LED diódy svietili na základe toho či vidia bielu, alebo čiernu farbu.

Teraz si predstavte, že nakreslíte pod robota čiaru (dostatočne hrubú, aby ju robot videl) a prepojíte bloky Visiduino Robot Sensors s blokom Visiduino Robot Wheels. Ak sa bude nachádzať čiara medzi senzormi (oba senzory vidia bielu farbu), bude sa robot pohybovať dopredu. Ak jeden so senzorov zachytí čiernu farbu, vypne sa príslušný motor a robot sa natočí tak, aby bola čierna čiara znovu medzi senzormi. Týmto spôsobom bude robot sledovať čiaru. ALE, viete čo budú robiť motory, ak pustíte hodnoty 1/0 priamo na motory? Buď sa budú točiť maximálnou rýchlosťou dopredu, alebo budú stáť. Uvedený spôsob riadenia by spôsobovalo, že robot by nevedel sledovať čiaru, ktorá je príliš ohnutá. Preto je potrebné motory trochu spomaliť a to podobným spôsobom, ako ste to spravili pred chvíľou. Výsledok si pozrite vo videu vyššie.

Hotovo :)

Práve ste dokončili základný kurz pre oboznámenie sa s robotom. Dozvedeli ste sa, ako pripojiť robota k PC, čo sú a ako pracujú LED diódy. Naučili ste sa naprogramovať robota tak, aby vedel reagovať na stlačenie tlačidla. Potom ste dokázali rozhýbať robota a naučiť ho spracovávať údaje zo senzorov. V nasledujúcich návodoch sa dočítate, ako naučiť robota ďalšie zaujímavé veci.