Robotikas nodarbība ar "Arduino"
Foto: Publicitātes foto
Kad mēs pārvietojamies istabā, parasti neietriecamies mēbelēs un citos cilvēkos. Tas notiek automātiski, mēs pat neapzināmies darbu, ko dara mūsu smadzenes, lai viss izdotos. Ja gribam, lai tikpat veikls būtu arī pašu uzbūvētais robots, nepieciešams saprast, kas tam ir vajadzīgs šī uzdevuma veikšanai, nodrošināt ar aprīkojumu un izveidot attiecīgu programmu. Šoreiz pastāstīsim, kā šādu uzdevumu risināja Transporta un sakaru institūta (TSI) studiju programmas "Robotika" pirmā kursa studenti.

Jau stāstījām, ka parasti sākumskolas un pamatskolas vecuma bērni sāk savas gaitas aizraujošajā robotikas pasaulē ar "LEGO Mindtorms" komplektu palīdzību. Sasniedzot vidusskolas vecumu un iekrājot kādu zināšanu un pieredzes apjomu, robotikas entuziasti var pāriet pie citu ražotāju platformām, kur ir vairāk variāciju un plašākas iespējas īstenot visdažādākās elektronisko projektu idejas. Viens no tādiem ražotājiem ir "Arduino".

Drukātās shēmas plates un citas komponentes ar tādu nosaukumu radīja 2005. gadā un vēlāk arī pilnveidoja pasniedzēju un studentu grupa no Interaktīvā dizaina institūta Itālijas pilsētā Ivrejā. Grupas dalībnieki tikās un apsprieda projektu vietējā bārā, kas tika nosaukts par godu 11. gadsimta Itālijas karalim Ivrejas Ardvinam (Arduino d'Ivrea), un tur arī smēlās iedvesmu sava izgudrojuma nosaukumam. "Arduino" izgudrotāju mērķis bija izveidot pietiekami lētu elektronikas platformu ar atvērtā pirmkoda programmatūru un aparatūru, lai gan viņu augstskolas studenti, gan visi pārējie studenti pasaulē, kas vēlas eksperimentēt ar elektronisko ierīču projektēšanu, varētu to atļauties.

Foto: Adobe Stock

Tieši "Arduino" komplektus un papildu komponentes izmanto TSI programmas "Robotika" pirmā kursa studenti praktiskajās nodarbībās, par kurām šoreiz stāstām. Jāsaka, ka ne visiem programmas studentiem ir vienāds zināšanu līmenis. Tiem, kas vidusskolas laikā aizrāvušies ar robotiku, uzdevumu izpildīt izdodas ātrāk, bet tiem, kam nav pieredzes – nedaudz lēnāk. Tomēr visiem ir iespējams veiksmīgi ar to tikt galā, jo mācību procesa sākumā studenti iziet cauri katram posmam – pasniedzējs pastāsta, kā strādā katrs sensors, motors un citas komponentes, un tikai tad pēc tam saliek to visu kopā vienā sistēmā.

Sagatavošanās process


"Pirmā iepazīšanās ar robotiku vienmēr ir interesantāka, ja uzsāk kādu reālu projektu. Mērķis bija pirmā kursa studentiem pēc iespējas detalizētāk un pamatīgāk parādīt robotu veidošanas procesu, paskaidrojot katras detaļas nepieciešamību, lai izprastu darbības principus," skaidro Igors Ļaksa, TSI Telekomunikāciju, elektronikas un robotikas centra inženieris un šo praktisko nodarbību vadītājs. "Izmantojam atvērtā koda elektronikas platformu "Arduino", jo tai pamatā ir elastīga, viegli lietojama aparatūra un programmatūra. Rezultātā tika izveidots robots, kurš spēj atpazīt un apbraukt šķēršļus."

Šajā gadījumā nepieciešamās komponentes: "Arduino Uno" plate, robota automašīnas šasija, divi motori ar riteņiem, motora draiveris, servomotors, ultraskaņas sensors, viens universālais ritenis, kā arī baterija un vadu komplekts. Tas viss ir nopērkams kā viens komplekts vai arī atsevišķi, izmantojot kādu no globālajām virtuālajām mazumtirdzniecības platformām.


Nākamais solis – salikt visu kopā. Šeit noder elementu turētāji, kurus var izdrukāt ar 3D printeri. Tas atvieglo visu detaļu izvietošanu uz mašīnas platformas, kur vēlāk viss tiek nostiprināts ar skrūvēm. Ja tādas iespējas nav, vienmēr var izlīdzēt arī karstā līme.

Foto: Publicitātes foto
Gandrīz pabeigts robots izskatās aptuveni šādi


Nākamais solis: izmantojot vadus, ir pareizi jāsavieno visas komponentes, kā tas redzams attēlā nedaudz zemāk. Robota principiālo shēmu var izstrādāt, izmantojot "Fritzing" programmatūru, kas paredzēta elektroniskās aparatūras projektēšanai un dod iespēju no eksperimentēšanas ar prototipu pāriet pie pastāvīgas shēmas izveides.

Kā iemācīt robotam orientēties telpā?


"Arduino Uno" plate apvieno mikroprocesoru un ieejas/izejas (I/O) spraudņus. Vispirms pievienojam platei abus lielos līdzstrāvas motorus, kuru pamatfunkcija būs mašīnas riteņu griešana.

Savienošana ar "Arduino" plati notiek caur motoru draiveri, kas ļauj kontrolēt motora ātrumu un griešanās virzienu. Motora draiveris ir nepieciešams, lai palielinātu "Arduino" plates jaudu (strāvas stiprumu), lai motori vispār varētu darboties. Pēc būtības draiveris ir strāvas pastiprinātājs, un tā pamatuzdevums ir mainīt strāvas plūšanas virzienu caur motoru, tādējādi mainot arī motora griešanās virzienu. Bieži vien draiveris arī ļauj kontrolēt motora ātrumu, mainot ciparu signāla impulsa platumu. Pievadot pie motora impulsu sēriju ar dažādiem platumiem, tiek regulēts motora ātrums.

Foto: Publicitātes foto
Lai robots varētu pagriezties, katram ritenim nepieciešams savs līdzstrāvas motors


Lai pārbaudītu motora darbību, izmantojot "Arduino" programmatūru, rakstam noteiktu programmas kodu, pēc kura mašīna spēj pārvietoties dažādos virzienos un ar dažādu ātrumu. Pagaidām gan robots nespēj redzēt šķēršļus un tos apbraukt – tas ir nākamais "robota evolūcijas" uzdevums. Lai robots spētu "redzēt", tam nepieciešams pievienot ultraskaņas sensoru. To iemontējam kopā ar servomotoru, lai šis robota bloks spētu skenēt attālumu griežoties 180 grādu diapazonā. Ieraugot šķērsli, robotam tas ir jāapbrauc no labās vai kreisās puses – atkarībā no tā, kurā pusē ir lielāka vieta manevriem.

Foto: Publicitātes foto

Ultraskaņas sensors sastāv no raidītāja un uztvērēja, un tā darbības princips ir sekojošs – tas pārraida astoņu impulsu signālu. Šis noteiktais signālu skaits ir kā ierīces unikālais "ultraskaņas paraksts", tas ļauj uztvērējam atšķirt pārraidīto signālu no apkārtējo signālu "trokšņa". Astoņi ultraskaņas impulsi virzās prom no raidītāja. Ja robota priekšā ir kāds objekts, signāls atstarojas atpakaļ un tiek piefiksēts ar uztvērēju. Visā šajā procesā tiek mērīts laiks, kas pagājis, signālam veicot attālumu no raidītāja līdz uztvērējam. Zinot šo laiku un izmantojot skolā iegūtās fizikas un matemātikas zināšanas (skaņas ātrums gaisā ≈343 m/s), vēlāk programmēšanas procesā "iemācīsim" robotam noteikt attālumu līdz sastaptajam objektam. Iegūto informāciju robots izmantos, lai veiktu pagriezienu pareizajā virzienā un šķērsli apbrauktu.
Foto: Publicitātes foto
Robota "acis" – ultraskaņas sensors attāluma noteikšanai līdz objektiem


Kad visi robota elementi ir iepazīti un pievienoti, uzlabojam mašīnas braukšanas programmu, padarot robotu "viedāku". "Arduino" rakstīto programmu sauc par skici. Izstrādātāji ir parūpējušies arī par to, lai būtiski atvieglotu programmēšanu, jo ir daudz jau gatavu piemēru un plaša programmēšanas funkciju bibliotēka. Tas padara projekta realizāciju pieejamāku arī cilvēkiem, kuriem nav lielas pieredzes programmēšanā.

Foto: Publicitātes foto

"Arduino" integrētā izstrādes vide izmanto C++ līdzīgu programmēšanas valodu un ļauj jums rakstīt kodu, apkopot to un pēc tam augšupielādēt "Arduino Uno" platē.

Atliek tikai pievienot ārējo barošanas avotu, un robots, kas izvairās no šķēršļiem, ir gatavs!

Seko "Delfi" arī Instagram vai YouTube profilā – pievienojies, lai uzzinātu svarīgāko un interesantāko pirmais!