Minigolfa spēle ar "Lego" robotu turpinās tikai vienu minūti, bet, lai saliktu un ieprogrammētu šo vidējas grūtības pakāpes konstrukciju, ir nepieciešamas aptuveni trīs līdz četras stundas. Transporta un sakaru institūta (TSI) Robotikas kluba dalībniekiem, kuri ir strādāja pie šī robota, protams, bija arī pasniedzēja atbalsts. Lūk, kā viņi to dabūja gatavu!
Kā radās ideja?
Kā jau daudzos robotikas pulciņos gan Latvijā, gan visā pasaulē, TSI Robotikas kluba dalībnieki izmanto "Lego Mindstorms" komplektus. Tie ir paredzēti bērniem no 10 gadu vecuma, bet der robotikas entuziastiem līdz pat sirmam vecumam. Komplektam ir pievienotas arī dažādu robotu instrukcijas.
"Gatavo ražotāja instrukciju skaits ir limitēts," stāsta TSI Robotikas kluba vadītājs Igors Ļaksa un turpina: "Par laimi internetā robotikas entuziasti ir publicējuši neskaitāmas pašu izdomāto robotu modeļu būvēšanas pamācības. Ir no kā izvēlēties. Ir pieejama arī speciāla programmatūra, kas ļauj sastādīt instrukcijas pašiem." Šajā gadījumā viss sākās ar īsu video, ko Igors bija atradis tīmeklī, un kur bija redzama gatava minigolfa spēle:
Instrukcijas nebija, bet Robotikas kluba pasniedzējam ir pietiekami daudz pieredzes, lai iztiktu bez tās.
"Man vajadzēja aptuveni vienu dienu, lai no "Lego Mindstorms" komplekta uztaisītu līdzīgu robotu. Tas nesanāca identisks, bet tas arī nav vajadzīgs. Pēc tam es sagatavoju instrukciju kluba audzēkņiem, un viņi ķērās pie darba, lai atkārtoti izveidotu to pašu konstrukciju," skaidro Ļaksa.
Robota tapšanas process
Sākumā bērni pēc dotās instrukcijas uzbūvē pašu minigolfa laukumu.
"Šī ir samērā liela konstrukcija. Mums dažas daļas jau iedeva gatavas, bet vajadzēja aptuveni divarpus stundas, lai to saliktu," stāsta TSI Robotikas kluba jaunākās grupas dalībnieks Kirills Lobanovs, kuram ir 11 gadi un kurš klubā darbojas jau gadu.
Pasniedzējs skaidro – bērni zina, ka būvēšanas procesā nevar akli uzticēties instrukcijai un pašiem ir jādomā līdzi, vai konstrukcija ir pietiekami izturīga, vai kādā vietā tā nelokās, vai nevajag to papildus nostiprināt. Šajā gadījumā, ja bumbiņas ripošanas laukumam neuzliek papildus šķērsstiprinājumus, tad tas ir diezgan ļodzīgs un kustīgs, kas var ietekmēt spēles rezultātu.
Uz spēles laukuma novieto arī pie motora piestiprināto golfa nūju un EV3 programmēšanas moduli – robota "smadzenes". Uz vadības moduļa ekrāna tiks attēlota spēles informācija. Lai golfa nūja grieztos abos virzienos, pievieno arī divus pieskārienu sensorus, vai, vienkāršāk sakot, "pogas". Vēlāk tiek ieprogrammēts, ka, piespiežot kreiso sensoru, motoram jāgriežas pulksteņa rādītāja virzienā, bet izmantojot labo sensoru – pretējā virzienā. Programma visu laiku skenē "pogas" stāvokli. Ja neviens sensors nav nospiests – motors nedarbojas. Pēc sensora nospiešanas EV3 modulis saņem signālu un nosūta motoram komandu darboties ar noteiktu ātrumu un griešanās virzienu.
Pie golfa bedrītes apakšas tiek piestiprināts gaismas sensors, kas ļauj fiksēt bumbiņas precīzu trāpījumu un palīdz saskaitīt katru veiksmīgo sitienu. Gaismas sensoru ir jāmāk novietot pareizi. Ja to uzliks par tālu, tad tas var strādāt neprecīzi.
Kā "iemācīt" robotam spēlēt golfu
Kad konstrukcija ir gatava, pienāk laiks ierīces programmēšanai. "Programmēšana ir sarežģītākā, bet arī visinteresantākā daļa," uzskata Kirills. Galu galā jāsanāk spēlei, kur mērķis ir vienas minūtes laikā iesist bumbiņu bedrītē pēc iespējas vairāk reižu. Jaunā robotikas speciālista uzdevums ir uzrakstīt pilnvērtīgu golfa spēles programmu, kas spēs nodrošināt laika kontroli un rezultāta fiksēšanu un apkopošanu.
Te vispirms ir jāpiemeklē un jāieprogrammē motora (nūjas sitiena) optimālais ātrums un griešanās virziens. Jo lielāks ātrums, jo grūtāk izdarīt precīzu sitienu. Bumbiņa var pat izlidot ārā no konstrukcijas. Pie pārāk maza ātruma bumbiņa var netikt aizmesta pietiekoši tālu, lai iekristu bedrītē. Tāpēc konstruētājam pašam jāatrod optimālais ātrums, lai spēle nebūtu pārāk viegla vai pārāk grūta. Tas izdarāms manuāli, eksperimentējot ar dažādām ātruma vērtībām.
Tālāk ir jāuzraksta programmas daļa, kas atbildēs pār precīzu sitienu noteikšanu un saskaitīšanu. Izmantojot zināšanas par to, ka no dažādiem priekšmetiem gaisma atstarojas ar dažādu intensitāti, var ieprogrammēt, lai gaismas sensors "sajustu" tieši bumbiņas iekrišanas brīdi. Tad tas reģistrē gūtu punktu un nodod šo informāciju spēles vadības sistēmai. Tālāk programma tiek papildināta ar loģiskām un matemātiskām funkcijām, lai nodrošinātu precīzu rezultāta saskaitīšanu. Programma veic ierakstu savā atmiņā pēc katra precīza trāpījuma, pierēķinot pie rezultāta +1 un atkal to iegaumē. Pirms skaitīšanas sākuma atmiņa tiek notīrīta, iestatot tajā sakuma skaitli 0. Tad sanāk ka 0+1=1; 1+1 = 2; 2 + 1 = 3 un tā tālāk. Vienlaicīgi rezultāts parādās un mainās uz ekrāna.
Noslēgumā tiek ieprogrammēts spēles taimeris, kas paziņos par spēles sākumu un beigām, bet spēles rezultāts tiks izvadīts uz programmēšanas moduļa displeja. "Mēs uzliekam, ka laiks tiek skaitīts no brīža, kad pirmā bumbiņa ir iesista bedrītē. Pēc tam spēle turpinās vēl 60 sekundes," skaidro Igors Ļaksa.
Kad viss darbojas, programmu var papildināt arī ar dažādiem skaņas un gaismas efektiem. Vadības modulis var apsveikt spēlētāju ar katru veiksmīgo sitienu, ieslēdzot krāšņas gaismiņas. Viens no klubā izgatavotajiem spēles modeļiem pie katru veiksmīga trāpījuma atkārtoja: "Fantastic!" jeb "Fantastiski!"
Spēle ir gatava!
"Šo spēli var padarīt arī par pilnīgi autonomu, lai robots pats spēj veikt sitienus. Lai to paveiktu, laukumam var pievienot ultraskaņas vai infrasarkano sensoru, kas, mērot attālumu, spēj noteikt bumbiņas atrašanās vietu uz starta līnijas. Izmantojot noteiktu algoritmu, robots var iemācīties veikt tikai precīzus sitienus un vienmēr trāpīt bedrītē," piebilda Robotikas kluba vadītājs.
Grūtības pakāpes neierobežotas
Katram vecumam un sagatavotības pakāpei robotikas nodarbībās var piemeklēt piemērotus uzdevumus. "Robotikā labā lieta ir tā, ka pievienoties nodarbībām var jebkurā brīdī. Neviens jums neteiks, ka vilciens ir aizbraucis un jums vairs nav ko darīt ar robotiem," uzskata Igors Ļaksa.
Piemēram, jaunākajai kluba grupai viņš gan palīdzēja ar robota-golfa spēlētāja salikšanu, gan parādīja, kā rakstīt programmu, kaut gan bērniem bija arī pašiem jāpiedomā un jāveic dažas izmaiņas. Vecākās grupas dalībnieki jau pildīja šo uzdevumu patstāvīgi. Sākot no 14-15 gadu vecuma pusaudži jau spēj izdomāt savas konstrukcijas un paši tās arī programmēt. Vēl lielāks izaicinājums ir tiem, kas gatavojas robotikas turnīriem – tur ir jārada roboti pēc noteikumiem, piemēram, ar noteiktu izmēru vai svaru, nerunājot par funkcionalitāti.
Šis robots ir salikts no viena "Lego Mindstorms" komplekta. Tas satur visus nepieciešamos elementus – vadības moduli, motoru un dažādus sensorus. Ar to visu pietiek, lai bērni apgūtu robotikas pamatus – konstruēšanas un programmēšanas principus. Pie tā var arī apstāties jebkurā vecumā. Tomēr, ja ir vēlēšanās iet "dziļāk", vidusskolas vecuma bērni var pāriet pie robotiem uz "Arduino" platformas.
"Arduino" ir ierīce, pie kuras jūs varat pieslēgt daudzas dažādas elektroniskās komponentes un likt tām darboties kopā, izmantojot programmu, kas uzrakstīta C++ programmēšanas valodā. Ar "Arduino" jūs varat veidot savus projektus arī no nulles – ņem drukātās shēmas plati un lodē virsū nepieciešamos elementus. Robota korpusu veido vai nu no sadzīvē lietotiem materiāliem, vai, ja ir tādas iemaņas un iespēja, veido nepieciešamo detaļu 3D dizainu un izdrukā 3D printerī. Var arī ņemt novecojušos robotus un pārtaisīt, pievienot jaunas detaļas un "mācīt" viņiem kaut ko pilnīgi jaunu. Protams, šajā zināšanu līmenī parādās ļoti plašas iespējas.
"Robotikas nodarbības ir lielisks veids, kā radīt bērnam interesi par tehnoloģijām un eksaktajām zinātnēm. Nevajag stāstīt, ka matemātika ir ļoti sarežģīta, bet to ir nepieciešams mācīties. Te viņi savām acīm redz elementus, ar kuriem saskaras katru dienu, piemēram, sensorus, un saprot, kā tas viss darbojas un kāds matemātikai sakars ar to visu," atzīmē Igors Ļaksa.
Ar robotu – pie cilvēkiem
Robotikas klubi un pulciņi piesaista bērnus ne tikai pašas robotikas dēļ. Tikpat svarīgi viņiem ir satikt domubiedrus.
Latvijā arī ir plašas iespējas mēroties spēkiem ar citiem robotikas faniem. Šogad mūsu valstī jau 14. reizi notiek Robotikas čempionāts. Turklāt sacensību posmi notiek dažādās pilsētās, ne tikai Rīgā.
"Ir skaidrs, ka visi vēlas uzvarēt, taču tas nav iespējams. Bērniem nav viegli ar cieņu zaudēt, bet viņi mācās no savām kļūdām un kopumā sāk saprast, ka kļūdas ir normāla lieta, tā ir jebkuras mācīšanās sastāvdaļa. Ir vienkārši jāizdara secinājumi un jādodas tālāk uz savu mērķi. Dalība robotikas sacensībās attīsta patstāvīgumu un atbildību, palīdz izaugt un norūda, jo kritiskos brīžos ar savu robotu jātiek galā ātri un paša spēkiem," spriež Igors Ļaksa, kura vadībā bērni jau vairākus gadus startē turnīros un arī izcīna uzvaras.
Kirills Lobanovs atzīst, ka viņam mierīgs darbs kluba nodarbībās patīk labāk nekā sacensības.
"Sacensībām ir jābūt psiholoģiski sagatavotam, ir vajadzīgi spēcīgi nervi. Tiek dots tikai viens mēģinājums, un nedrīkst pārāk uztraukties, ja tas neizdodas, citādi zudīs koncentrēšanās spējas un neveiksies nevienā citā disciplīnā. Ne visiem izdodas veiksmīgi startēt turnīros, jo nepietiek tikai ar spēcīgu robotu. Toties, ja izdodas uzvarēt, tad uzreiz sajūties ļoti "kruti" gan savu draugu priekšā, gan arī pasniedzēja priekšā, jo esi attaisnojis viņa cerības," tā Kirills.