Rakstā parādīts tāda robota izveidošana, kurš pārvietojas pa līnijām un var iziet cauri labirintiem, pēc labirinta izpētes tas var tam visīsākajā veidā iziet cauri. Autors ilgu laiku izveidoja šo projektu, veiksme viņu pārspēja trešo reizi.
Mašīnas demonstrēšana:
Materiāli un instrumenti:
- Arduino RBBB
- mikromotori 2 gab
- Kronšteini 2 gab. Motoriem
- Riteņi 2 gab
- lodīšu ritenis
- analogs atstarošanas sensors
- Uzgriežņi ar skrūvēm 2 gab.
- motora vadītājs
- Baterijas turētājs 4 gab. AAA
- Baterijas (uzlādējamās baterijas) AAA 4 gab
- Lieta
- Uzgriežņi, bultskrūves, paplāksnes
- savienojošie vadi
- lodēt
- knaibles
- lodāmurs
- skrūvgriezis
Pirmais solis. Teorija
Autorei vajadzēja robots, kas pats atradīs izeju no labirinta, pēc kura varēs optimizēt atgriešanos. Veidojot labirintu mašīnu, viņi vadījās pēc kreisās puses metodes. Lai tas būtu skaidrāks, jums vajadzētu iedomāties, ka bijāt labirintā, un vienmēr turiet kreiso roku pie sienas. Pēc noteikta ceļa nobraukšanas tas palīdzēs jums iziet no labirinta, ja tas nav aizvērts. Robots var strādāt tikai ar atvērtiem labirintiem.
Kreisās puses principi ir diezgan vienkārši:
- Ja jūs varat pagriezties pa kreisi, pagriezieties pa kreisi.
- Ja ir iespējams pārvietoties taisni, pārvietojieties taisni.
- Ja jūs varat pagriezties pa labi, tad pagriezieties pa labi.
- Ja atrodaties strupceļā, pagriezieties par 180 grādiem.
Arī robotam jāpieņem lēmumi krustojumā, bet, ja tas neizslēdzas pagriezienā, tad tas brauks taisni. Lai izveidotu labāku atgriešanās ceļu, katrs lēmums tiek ierakstīts atmiņā.
L = pagrieziens pa kreisi
R = pagrieziens pa labi
S = izlaist pagriezienu
B = pagriezt par 180 grādiem
Šī metode ir parādīta zemāk darbībā, kā piemēru izmantojot vienkāršu labirintu. Robots attālumu veica ar LBLLBSR komandām.
Šis ceļš iznāca diezgan garš, tas jāpārveido par optimālu SRR. Lai to izdarītu, tiek noteikts, kur robots pagrieza nepareizo ceļu. Visur, kur tiek izmantota komanda “B”, ceļš būs nepareizs, jo robots atradās strupceļā, tāpēc “B” jāaizstāj ar kaut ko citu. Pirmais nepareizais gājiens bija LBL, robots pagriezās un apgriezās, kamēr bija nepieciešams tikai sekot tieši LBL = S. Tādējādi tiek veidots ideālais ceļš LBL = S, LBS = R. Balstoties uz šādām nomaiņām, robots pats izveido sev ideālu īso ceļu.
Otrais solis Robota šasija.
Par robota šasijas pamatu kļuva akrils ar biezumu 0,8 mm, griešana tika veikta ar lāzeru atbilstoši zīmējumam. Arhīvā zem raksta būs zīmējuma fails no AutoCAD. Nevajadzēja izmantot šādu materiālu, bet autors paņēma to, kas bija pieejams.
Apakšējā daļā ir izveidoti caurumi motoru, dēļu, riteņu un sensoru stiprināšanai. Augšējā daļā ir liels caurums vadiem.
Trešais solis Riteņu uzstādīšana.
Autore abus motorus piestiprināja ar skrūvēm. Turklāt viņi vienkārši uzliek riteņus uz savas ass, saskaņojot vārpstu ar caurumu ritenī.
Ceturtais solis. Arduino
Šajā brīdī autors vispirms sekoja Arduino RBBB montāžas instrukcijām. Turklāt viņš nogrieza daļu tāfeles, lai samazinātu tās izmēru. Strāvas savienotājs un stabilizators tika nogriezti ar metāla šķērēm. Pēc tam 9-kontaktu savienotājs tika pielodēts paneļa kreisajā pusē kontaktiem no 5 V līdz A0, lai tam pievienotu sensoru. 4-kontaktu savienotājs tika pielodēts paneļa labajā pusē kontaktiem no D5 līdz D8, un tam tiks pievienots motora kontrolieris. Strāvas padevei 2-kontaktu savienotājs tika pielodēts līdz 5 V un GND.
Piektais solis Motora kontrolieris.
Autors pats šim solim izstrādāja iespiedshēmas plates, shēma Eagle formātā ir pievienota arhīvā zem raksta. Pirmais motors tika savienots ar tapām M1-A un M1-B, otrais - ar M2 un M2-B. Pirmā motora In 1A pirmā ieeja tika savienota ar Arduino 7. tapu. In 1B tika savienots ar Arduino 6. kontaktu. Pie otrā motora pirmās ieejas In 2A ir savienots ar Arduino 5. tapu. Piespraust 2B savieno ar Arduino 8. piespraudi. Jauda un zeme ir savienota ar Arduino jaudu un zemi.
Sestais solis Sensori
Šis elements tiek pārdots sensoru dēļa veidā, sākotnēji no tiem ir astoņi, divus galējos autors izdzēsa. Plātnei tika pielodēts 9 kontaktu savienotājs, ar tiem tiks savienots vads, kas ved uz Arduino. Sensors nosaka balto un melno labirinta daļu, izmantojot atstarojumu no virsmas.
Septītais solis. Augšējā daļa.
Šasija ar robota augšdaļu, kas savienota ar skrūvēm un bagāžniekiem. Akumulators tika piestiprināts augšpusē ar Velcro. Caur sagatavoto caurumu tika novietoti vadi no viņa. Piestiprinot, autore nolēma neizmantot skrūves, bet gan atstāt akumulatoru ar Velcro, lai būtu vieglāk nomainīt baterijas. Izmantojot akumulatora korpusa slēdzi, tika veikta darbības pārbaude.
Astotais solis. Sensoru uzstādīšana.
Sensori tika pieskrūvēti mašīnas apakšā. GND tapa ir savienota ar GND Arduino. Pēc tam Vcc tapa ir savienota ar 5V Arduino. Arduino 5-0 ADC savienoja analogo 6-1 sensoru tapas.
Deviņi soli. Ēdiens.
Arduino tikai pielodēja vadus no akumulatora. Robota ieslēgšana un izslēgšana būs akumulatora ieslēgšana, tāpēc tika nolemts izmantot lodēšanu. Tas pabeidz robota montāžu.
Desmit solis Programmatūras daļa.
Programmai ir vairākas funkcijas, kas atbild par operācijas algoritmu. Funkcija “kreisā roka” saņem rādījumus no sensoriem un kontrolē robotu saskaņā ar šiem noteikumiem. Rotācijas funkcija tiek ieslēgta, pirms robots pamana melnu līniju, pamanot, ka tas brauc taisni. Ir arī integrēta ceļa optimizācijas funkcija. Programmu var lejupielādēt zem arhīva raksta.
Robota video: