TSI_Arduino_12

Kā iemācīt robotam izvairīties no šķēršļiem

Teksts: Igors Ļaksa, Marina Matafonova

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 apzināt, 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 dataļām, kur ir vairāk variāciju un plašākas iespējas īstenot visdažādākās idejas elektronisko ierīču izveidošanai. Viens no tādiem ražotājiem ir “Arduino”. Drukātās shēmas plates un citas komponentes ar tādu nosaukumu izdomā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 XI gadsimta Itālijas karalim Ivrejas Ardvinam (Arduino d’Ivrea) – 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 papildus 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, ātrāk sanāk izpildīt uzdevumu, bet tiem, kam nav pieredzes – nedaudz lēnāk. Tomēr visiem ir iespēja 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 datalizētāk un pamatīgāk parādīt robotu veidošanas procesu, paskaidrojot katras detaļas nepieciešamību, un izprast 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”.

Komponentes, kas ir nepieciešamas šajā gadījumā: “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 brīvi pieejams un ir nopērkams kā viens komplekts vai arī atsevišķi, izmantojot kādu no globālajām virtuālajām mazumtirdzniecības platformām.

Nepieciešamās komponentes:

Nākamais solis ir salikt visu kopā. Šeit noder elementu turētāji, kurus var izdrukāt uz 3D printera. 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.

Gandrīz pabeigts robots izskatās aptuveni šādi

Nākamais solis: izmantojot vadus ir jāsavieno visas komponentes. 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.

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.

Lūk, šādi izskatās shēma

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.

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.

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.

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ā.

“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!

https://www.delfi.lv/campus/raksti/pirmie-soli-arduino-robotika-ka-iemacit-robotam-izvairities-no-skersliem?id=52865669

contact us

raksti mums