First Lego League je najväčšia medzinárodná robotická súťaž pre mladých výskumníkov vo veku od 10 do 16 rokov. Deťom z 80 krajín umožňuje prvýkrát naprogramovať svojho robota. Pre mnohých súťažiacich je to však len začiatok dlhej cesty k vývoju skutočných robotov.
Na Slovensku sa First Lego League (FLL) organizuje od roku 2010. FLL umožnila stovkám detí na našich základných školách zostaviť a naprogramovať svojho prvého robota a zažiť krásny pocit, keď TO začne fungovať. Veľa z nich sa absolvovaním tejto súťaže aj skutočne nadchne a inšpiruje k ďalšiemu štúdiu. Deti, rodičia aj organizátori súťaže si však často kladú otázku: Ako ďalej po First Lego League? Ako podchytiť rozvíjajúci sa talent, rozšíriť nadobudnuté vedomosti a nasmerovať mladého technika – výskumníka na cestu skutočného robotického vývoja?
Cesta k sebavedomému a komplexnému vývojárovi
Vzhľadom na rozsah súčasnej robotiky asi nie je možné stanoviť univerzálny postup. . Porovnaním skúseností viacerých vývojárov, ktorí v uplynulých rokoch prešli podobnú cestu, však dokážeme pomenovať aspoň zopár základných vývojových etáp, ktoré je užitočné absolvovať. Vyžaduje si to však značnú dávku odhodlania, motivácie, trpezlivosti a množstva hodín strávených štúdiom aj experimentovaním, ale tá cesta stojí za vynaloženú námahu. Nielen preto, že pocit zadosťučinenia po prekonaní každej prekážky je priam návykový, ale najmä kvôli tomu, že jej výsledkom je sebavedomý komplexný vývojár, schopný samostatnej práce, zvyknutý neustále sa vzdelávať a pracovať na rozvoji svojich zručností. Vďaka rokom poctivej práce si navyše vybuduje aj cit pre vyhľadávanie a spájanie informácií a riešenie širokého spektra problémov. A to je kombinácia vlastností, ktorá je v dnešnom svete mimoriadne žiadaná a umožňuje uplatniť sa v rozličných odvetviach nielen technického charakteru. Odkiaľ teda začať a ako nadviazať na skúsenosti a vedomosti získané vo FLL?
Úplne od začiatku
Robotické stavebnice ako LEGO Mindstorms, Merkur, Bioloid alebo Fishertechnik síce umožnia deťom zažiť pocit nadšenia z prvého vlastnoručne postaveného robota, ale často je to za cenu mnohých zjednodušení a pomôcok, či už z hľadiska mechanického, elektronického alebo programátorského. Ak je naším cieľom preniknúť hlbšie do problematiky robotického vývoja, je nevyhnutné odpútať sa od týchto pomôcok a začať úplne od začiatku, od základov elektroniky. Štúdium elektroniky totiž prirodzeným vývojom privedie mladého výskumníka k jednočipovým mikropočítačom – mikrokontrolérom. Mikrokontroléry ho privedú k programovaniu a návrhu dosiek plošných spojov a dosky plošných spojov k samotnému konštruovaniu.
Prvá LED-ka
Úloha rozblikať prvú diódu, zapojiť klopný obvod, roztočiť jednosmerný motor či spracovať signál zo senzora čiary pre mladého nadšenca, ktorý už zvláda Mindstormy (stavebnica LEGO) a podobné úlohy dokáže naprogramovať za pár minút, neznie až tak lákavo. No pochopenie elementárnych princípov na zapojeniach s využitím iba základných súčiastok je nevyhnutným predpokladom pre ďalšie kroky – je to pilier, od ktorého sa bude odvíjať celý ďalší vývoj.
Na úvod naozaj netreba veľa, postačí kontaktné pole (nástrčná doska z plastu na rýchle osadenie elektrických a elektronických obvodov bez potreby spájkovania ), niekoľko základných súčiastok, päťvoltový adaptér ako zdroj napätia a trocha odhodlania. V súčasnosti už je na internete k dispozícii množstvo návodov aj s konkrétnymi príkladmi pre začiatočníkov, no pre lepšie a ucelenejšie osvojenie si základov je vhodné zohnať si serióznu literatúru. Príkladom môže byť overená príručka Poznávame elektroniku od Václava Malinu.
Začíname mikrokontrolérmi
Základné elektronické zapojenia sú základom, ale na stavbu reálneho robota iba tranzistory, klopné obvody a LED-ky nestačia. Je nevyhnutné pridať ešte jeden kľúčový prvok, ktorý podobne ako NXT kocka v Mindstormoch umožní robota programovať – procesor. Aj tu platí, že čím viac pomôcok sa v tejto etape vzdáme, tým viac sa naučíme. Samozrejme, je možné kúpiť si hotový vývojový modul, prípadne niektoré Arduino (otvorená elektronická platforma založená na používateľsky jednoduchom hardvéri a softvéri), ale pripravili by sme sa tým o to najcennejšie, o vlastné skúsenosti nadobudnuté poctivým štúdiom.
V úvodnej etape poznávania mikrokontrolérov je preto nevyhnutné ísť naozaj až k úplným základom a začať doslova s holým procesorom. Možností je opäť viacero, ale osvedčenou kombináciou je legendárny mikrokontrolér PIC16F84 s príručkou Moderná učebnica programovania PIC mikrokontrolérov od Jiřího Hrbáčka. Začínajúci programátori v nej nájdu sprievodcu základmi assembleru (strojový programovací jazyk) a prácou s procesorom na najnižšej úrovni. Na experimentovanie ešte vždy postačí kontaktné pole a základné súčiastky, akurát k procesoru už treba dokúpiť jednoduchý programátor za niekoľko eur.
Pochopiteľne, pre mindstormákov, ktorí boli doteraz zvyknutí skladať program ako grafickú schému, bude zo začiatku assembler a práca v ňom menším šokom. Ale keď si osvoja základy, prácu s registrami, obsluhu prerušení, a vyskúšajú naprogramovať niekoľko jednoduchých aplikácií, zistia, že to nie je až také komplikované. Odmenou za toto úsilie im budú dôležité skúsenosti s programovaním na najnižšej úrovni a zvládnutie procesora, ktorý im už v tejto etape umožní vytvárať jednoduchšie zapojenia podľa vlastnej potreby.
Od prvého programu k vlastnému robotu
Toto je najdlhšia a najnáročnejšia etapa, skutočná skúška odhodlania mladého vývojára. Vyžaduje zvládnutie nových zručností, no zároveň je vstupenkou do sveta naozajstnej robotiky. Mnohých odradí, ale tým, ktorí vydržia a svojho prvého robota aj skonštruujú, sa pred očami otvorí svet obrovských možností.
Základom je motivácia. Stanoviť si cieľ svojej cesty, robota, ktorého chce mladý vývojár postaviť. Najlepšie takého robota, ktorého z lega len tak hocikto neposkladá. Môže to byť superrýchly robot sledujúci čiaru, sumo robot, hexapod (šesťramenný pavúčí robot), diaľkovo ovládaný robot s kamerou, dron alebo čokoľvek iné, čo bude dostatočne inšpirujúce. Ak si chcem latku náročnosti posunúť ešte vyššie, rovno sa prihlásim na niektorú z robotických súťaží ako Istrobot, RoboCup alebo viedenský RobotChallenge. Nie je potrebné mať od začiatku jasno vo všetkých detailoch, tie sa postupne vyriešia počas vývoja. Podstatné je mať stanovený cieľ a všetky kroky robiť s ohľadom na jeho dosiahnutie.
Čo všetko je teda potrebné zvládnuť? Je toho dosť. Naučiť sa nový programovací jazyk, vymeniť pôvodné PIC procesory za pokročilejší hardvér, začať pracovaťdokumentáciou súčiastok). Ďalej si treba zvyknúť na programovanie vo vývojovom prostredí, používať existujúce softvérové knižnice, naučiť sa kompilovať a ladiť programy, zvládnuť základné komunikačné zbernice a obsluhu periférnych zariadení.
Pokračovanie článku si môžete prečítať v júnovom vydaní časopisu Quark.
Quark si môžete aj objednať tu alebo na adrese: predplatne@quark.sk
Ing. František Ďurovský
Strojnícka Fakulta
Technická univerzita vKošiciach
Ústav automatizácie robotiky a mechatroniky a zároveň
SmartRoboticSystems
smartroboticsys.eu
Foto archív autora, Pixabay