Robotika ako hobby
Tak rýchlo, ako nastúpila počítačová éra, prichádza éra robotov. Inteligentné roboty sa stanú samozrejmosťou každej domácnosti. Vynálezy začínajú postupnými krokmi od tých najjednoduchších vďaka nadšencom elektroniky a robotiky.
Robotické súťaže
Vo svete sú čoraz populárnejšie súťaže robotov, ktoré motivujú amatérskych konštruktérov všetkých vekových kategórií. U nás je to už osem rokov súťaž Istrobot v Bratislave. Súťaží sa v štyroch kategóriách. V kategórii Stopár (vo svete známej pod názvom Pathfollower) je cieľom súťažiaceho čo najrýchlejšie prejsť určenú dráhu, ktorú tvorí čierna lepiaca páska na bielom podklade. Aby to nebolo také jednoduché, treba zdolať nástrahy, napr. tunel (zmena svetelných podmienok), prerušenie dráhy (robot musí nájsť druhý koniec) a tehla (robot ju musí obísť).
Robot
V kategórii Myš v bludisku (Micromouse) treba čo najrýchlejšie prejsť bludiskom. Robot si môže bludisko postupne zmapovať a vyhľadávať najkratšiu cestu, pretože sa ráta najkratší čas zo štartovacieho políčka do cieľa. Steny bludiska tvoria biele doštičky dlhé 18 cm upevnené na tmavom podklade.
Myš v bludisku
Kategória Minisumo je robotické sumo, kde je cieľom vytlačiť z ringu súpera neagresívnym spôsobom. Robot nesmie nič vrhať ani strieľať či poškodiť súpera. Musí spĺňať hmotnostné obmedzenie do 500 gramov, maximálne rozmery 10 x 10 cm (výška nie je obmedzená), ako aj prejsť testom priľnavosti k podložke. Po štarte sa však môže ľubovoľným spôsobom meniť.
Sumo robotov
A napokon vo Voľnej jazde (Freestyle) môže súťažiaci predviesť všetko, čo jeho robot dokáže. O víťazovi rozhodnú diváci silou potlesku. Napríklad robotickú ruku na obrázku, ktorá bezpečne uchopila pohár a preliala vodu do nádoby, privítali s nadšením.
Roboticka ruka
Súťaž je o to zaujímavejšia, že roboty musia byť autonómne, t. j. fungovať samostatne bez zásahu človeka, dotyk sa trestá. Tento druh súťaže je u nás pomerne nový. Kategória Micromouse beží vo svete od sedemdesiatych rokov minulého storočia, hoci prvé pokusy sa objavili už v päťdesiatych rokoch; populárna je najmä v Anglicku a Japonsku. Paleta robotických súťaží je skutočne pestrá: robotický futbal v Japonsku, RobotChallenge vo Viedni (podobá sa tej našej), Eurobot tento rok v Nemecku (každoročne iná úloha), profesionálna Grand Challenge v USA (auto má samostatne precestovať sto kilometrov dlhú tŕnistú trať), a pre fajnšmekrov existuje Vojna robotov (Robot Wars) v USA, kde nechýbajú kladivá, sekery, nože, cirkulárky, motorové píly, vŕtačky, plameňomety, žieraviny ani chemické a pyrotechnické zbrane a po bojisku lietajú nerozpoznateľné komponenty.
Ak váš robot náhodou pristane na Mesiaci a pošle odtiaľ pozdrav, firma Google Vám venuje štedrú odmenu 30 miliónov dolárov. Výzvu už zobralo vážne desať tímov a zatiaľ sa zdá, že na tom pracujú dosť aktívne.
Mesačná odmena
Vynaliezavosť konštruktérov nemá hraníc. Materiál, ako sú motorčeky z disketových mechaník, zubné kefky, vrchnáky, platničky z pevného disku, tomu dávajú jedinečný nádych. Nájdeme jednak programovateľné Lego-roboty zo série RCX a NXT, amatérsky zhotovenú elektroniku, ale aj hybridy, napríklad kombináciu mechanickej prevodovky zo stavebnice a amatérskej elektroniky. Podmienkou však je, aby bol robot dielom súťažiaceho. Komerčné Lego-roboty majú svoje prirodzené obmedzenia najmä v náročnejších kategóriách. Naopak, zhotovený robot možno pružne vylepšovať a zvyšovať jeho nádej na úspech v ďalších ročníkoch, je s ním viac zábavy. My sa v článku zameriame na vlastnoručnú elektroniku a pozrieme sa bližšie na hlavné súčiastky robota.
Anatómia robota
Iste sa už pýtate, ako robotu vdýchnuť život a naučiť ho vykonávať danú činnosť. Na to slúži procesor, no nie taký, ktorý nájdete v počítači, ale programovateľný. To znamená, že napíšete program na počítači a „napálite“ ho do procesora cez sériový, paralelný alebo USB kábel. Procesor potom riadi celú elektroniku robota presne tak, ako mu poviete. Okrem toho, že robot takto myslí, potrebuje vnímať okolie. Na to mu slúžia rôzne druhy senzorov. Tieto podnety z okolia procesor spracuje ako vstupy a vytvorí nejaký výstup podľa programu. Výstupom bývajú rôzne zábavné svetielka, zvuk a displej, ale v prvom rade sa robot potrebuje hýbať. A dostaneme sa k motorom, ďalšej dôležitej súčasti robota. Povieme si, aké druhy motorov používajú konštruktéri a prečo.
Mozog robota: procesor
Procesor si môžeme predstaviť ako magickú čiernu skrinku s niekoľkými nohami – pinmi. Na niektoré piny posielame zvonku vstupy tak, že daný pin uzemníme, t. j. privedieme na záporný pól zdroja. Dohodou je stanovené, že zem má binárnu hodnotu 0. V programovacom jazyku procesora existujú funkcie, ktoré jednoducho prezradia, aká hodnota je na danom pine – buď 0, alebo 1. Takisto existujú funkcie, ktoré nastavia danú hodnotu na danom pine, čo môže slúžiť ako výstup. Na tento výstupný pin potom môžeme priamo pripojiť napríklad LED diódu (alebo nepriamo motor so zosilňovačom) a zapínať/vypínať ho ako si naprogramujeme. Medzi mladými konštruktérmi sú populárne procesory PIC programovateľné v Basicu, ja som dal prednosť dostupným procesorom Atmega, ktoré majú širokú podporu.
Procesor
Dajú sa programovať v jazyku C s knižnicou „AVR“. Táto knižnica je kľúčová, pretože obsahuje funkcie na čítanie a nastavovanie pinov a mnoho iných funkcií (napríklad používanie hodín procesora, ak chceme vykonávať načasované úlohy). Na internete sú k všetkému dostupné manuály aj kompletný softvérový balík zadarmo. Predstavme si, že už máme hotový program a potrebujeme ho dostať do procesora. Jednou z možností je použiť programátor. Programátor pripojíme k PC, vložíme doň procesor a s pomocou vhodného programu „napálime“ náš program do procesora. Procesor vyberieme z programátora, vložíme do robota a sledujeme, či robot robí to, čo od neho chceme. Na rozdiel od klasického programovania sa tu viac uplatňuje metóda pokus – omyl. Procesory Atmega, možno programovať priamo cez paralelný kábel, nie je potrebný programátor a nie je potrebné ho ani vyberať z dosky, takže mu časom nezničíme nohy. Procesor obsahuje vnútornú FLASH pamäť, v ktorej bude trvalo uložený náš program, kým ho opäť neprepíšeme.
Pamäť
Ďalšou dôležitou pamäťou je RAM, ktorá je tiež schovaná vnútri procesora a má rovnaký účel ako známa počítačová RAM. Ukladajú sa do nej premenné počas behu procesora, ale po vypnutí prúdu sa, na rozdiel od FLASH pamäte, zmaže. A do tretice, procesory Atmega ešte obsahujú neštandardnú a pre niekoho možno užitočnú pamäť EEPROM, do ktorej si môžeme za behu uložiť premennú, ale po vypnutí prúdu sa nezmaže – niečo ako pevný disk počítača. Dajú sa tam uložiť napríklad rôzne číselné konštanty, ktoré si súťažiaci nastavujú pred súťažou (otáčky kolies, svetelné podmienky). Iste budú zaujímavé typické parametre procesora. Používam konkrétne Atmega32 na frekvencii 16 MHz (porovnateľné so starými počítačmi 386), 32 kilobajtov FLASH, dva kilobajty RAM, jeden kilobajt EEPROM. Vstupno-výstupných pinov je až 32.
Oči robota: senzory
Spracovávať obraz z kamery je veľmi náročné a pre naše úlohy aj nepraktické. Ak chceme, aby robot sledoval čiernu čiaru na bielom podklade, stačí nám posvietiť si na čiaru žiarovkou alebo svetelnou LED diódou (nezabúdajte, že na dráhe je aj tmavý tunel!) a odrazené svetlo prijímať fotodiódou. Tam, kde je tmavá čiara, odrazí sa menej svetla a fotodióda vyšle do obvodu podstatne menší prúd. Tento prúd upravíme vhodnou súčiastkou, aby procesor jednoznačne dostal buď nulu, alebo jednotku („je tam čiara“ alebo „nie je tam čiara“).
LED oči
Spracovávať obraz z kamery je veľmi náročné a pre naše úlohy aj nepraktické. Ak chceme, aby robot sledoval čiernu čiaru na bielom podklade, stačí nám posvietiť si na čiaru žiarovkou alebo svetelnou LED diódou (nezabúdajte, že na dráhe je aj tmavý tunel!) a odrazené svetlo prijímať fotodiódou. Tam, kde je tmavá čiara, odrazí sa menej svetla a fotodióda vyšle do obvodu podstatne menší prúd. Tento prúd upravíme vhodnou súčiastkou, aby procesor jednoznačne dostal buď nulu, alebo jednotku („je tam čiara“ alebo „nie je tam čiara“).
Pohľad zospodu. Vidíme v rade štyri dvojice svetelnej LED diódy a fotodiódy. Robot dokáže zistiť, pod ktorou dvojicou sa práve nachádza tmavá čiara a na základe tejto informácie vypočíta smer pohybu tak, aby čiaru neopustil.
LED diódy
Procesorom postupne meníme frekvenciu blikania diódy, takže niekedy si prijímač všimne odrazený lúč a niekedy nie. Takto vieme približne odhadnúť, ako ďaleko je stena.
Stáva sa, že robota zmätú falošné signály z fotoaparátov a kamier, ktoré tiež merajú vzdialenosť pomocou infračervených lúčov, aby zaostrili. S tým treba rátať. Roboty sa nerady fotia.
Predný pohľad
Pohľad spredu. Infračervená dióda je tienená alobalom a kovovým plechom, aby sa jej svetlo nerozptyľovalo naokolo a nerušilo ostatné prijímače. Prijímač SFH umiestnený pod ňou registruje odrazený lúč svetla. Na obrázku vidno tri dvojice LED-SFH vpredu a po bokoch, tento robot ich však má až sedem. Predný senzor dáva pozor, aby robot do niečoho nenarazil. Bočné senzory merajú vzdialenosť od stien bludiska. Ďalšie senzory sú pre istotu ešte vzadu a majú dômyselnejšiu funkciu (korekcia pohybu a mapovanie bludiska).
Niektorí konštruktéri sa tak nechali inšpirovať prírodou, kde žiadne infrasenzory asi nenájdeme. Spoľahlivým senzorom sa ukazujú byť nárazníky, dotykové spínače a tykadlá, ktoré príroda sama skúšala milióny rokov. Netopiere vysielajú ultrazvuk na detekciu nočného hmyzu, čo sa dá tiež použiť ako senzor vzdialenosti a vyhnúť sa tak rušivému svetlu. A nakoniec to býva laserový lúč. Pokiaľ robot potrebuje zistiť svoju polohu, môže použiť snímač otáčok kolies či GPS navigáciu.
Pohyb robota: motory
Získať dobrý motorček do robota priviedlo mnohých zlatokopov k vyberaniu disketových mechaník a CD-romiek zo starých počítačov. Existujú krokové motory, servomotory a motory na jednosmerný prúd. Každý má svoje výhody. Krokový motor nájdeme v starých disketových mechanikách a jeho výhodou je veľmi presné regulovanie otáčok.
Motor
Jedno otočenie motora tvorí až dvesto krokov, takže môžeme po krokoch presne otáčať motorom, ako aj meniť jeho rýchlosť. Nevýhodou je, že je najpomalší v porovnaní s ostatnými, pretože pri vyšších otáčkach „preskakuje“. Náhradným riešením môže byť modelársky servomotor.
Motor
Riadi napríklad klapky modelárskych lietadiel, pretože sa dá otočiť o presný uhol doprava aj doľava. Pokiaľ je naším cieľom ohýbanie robotickej ruky tam a naspäť, je to fajn, ale čo ak potrebujeme plynulé otáčky kolesa jedným smerom? To nie je problém, väčšina servomotorov sa dá prerobiť vybraním potenciometra, ktorý otáča najväčšie prevodové koliesko a odstránením zarážky, ktorá cielene bráni plnej otáčke kolieska. Jednoduchosť je jeho hlavná výhoda. Nie je potrebný žiaden zosilňovač ani ďalšia elektronika ako u krokových motorov. Nie je potrebná ani prevodovka ako u jednosmerných motorov, pretože tá je už zabudovaná vnútri motora. Dá sa regulovať jeho rýchlosť a dokonca aj smer priamo z výstupu procesora. Ovládanie servomotora posielaním elektrických impulzov priamo z jediného pinu procesora je veľmi jednoduché. Zabudovaná elektronika servomotora očakáva impulz každých 20 milisekúnd. Vypínaním a zapínaním pinu procesora posielame servomotoru požadované impulzy. Ak impulz trvá dve milisekundy, motor sa točí dopredu. Ak jednu milisekundu, motor ide dozadu. Motor stojí pri 1,5 milisekundy a nastavovaním dĺžky trvania impulzu vieme plynule meniť jeho rýchlosť.
Lenže aj servomotor má obmedzenie a v takých rýchlostných kategóriách ako Stopár je už jeho rýchlosť ďaleko prekonaná. Víťazia totiž klasické motorčeky na jednosmerný prúd.
Servomotor
Kým na kúpu servomotora treba rozbiť prasiatko, obyčajný motorček nájdeme všade, napríklad v hračkách, autíčkach, magnetofónoch a podobne. Tu je potrebné zohnať prevodovku alebo ju vybrať z hračky, pretože sám motorček má príliš vysoké otáčky. Vypínanie a zapínanie nepôjde priamo z procesora, ale cez zosilňovač. Regulovanie rýchlosti a smeru už vyžaduje pokročilejšiu elektroniku, ale často postačí len vedieť vypnúť a zapnúť.
A aby sme nezabudli, robot potrebuje zdroj elektrickej energie. Nakoľko robot má byť autonómny a pravidlá súťaží nepovoľujú žiadne vonkajšie káble, robot si musí niesť svoj ťažký zdroj stále so sebou. Už len procesor potrebuje stabilné napätie 5 V a motorom musíme poskytnúť dostatočný prúd. Najčastejšie používané nabíjacie akumulátory svojou veľkosťou a váhou sťažujú konštrukciu.
Začíname
V budúcom čísle si ukážeme, ako zostrojiť jednoduchého robota. Vyskúšame si vlastnú elektronickú schému na skúšobnej doske bez potreby pájkovať, naprogramujeme procesor, ukážeme si konkrétny príklad blikajúcej LED a napokon zostrojíme jednoduchého stopára.
Andrej Osuský