» Elektronika » Arduino »Robotas, einantis labirintais

Robotas, einantis labirintais




Straipsnyje parodytas roboto, kuris keliauja linijomis ir gali pereiti labirintus, sukūrimas, ištyręs labirintą jis gali per jį pereiti trumpiausią kelią. Autorius ilgą laiką kūrė šį projektą, sėkmė jį aplenkė trečią kartą.

Mašinos demonstravimas:


Medžiagos ir įrankiai:
- Arduino RBBB
- mikromotoriai 2 vnt
- Laikikliai 2 vnt varikliams
- Ratai 2 vnt
- rutulinis ratas
- Analoginis atspindžio jutiklis
- Veržlės su varžtais 2 vnt.
- variklio vairuotojas
- Baterijų laikiklis 4 vnt. AAA
- Baterijos (įkraunamos baterijos) AAA 4 vnt
- Byla
- Veržlės, varžtai, poveržlės
- jungiamieji laidai
- litavimas
- replės
- lituoklis
- atsuktuvas

Pirmasis žingsnis. Teorija
Reikėjo autoriaus robotas, kuris pats ras išeitį iš labirinto, po kurio galės optimizuoti kelionę atgal. Kurdami mašiną labirintams, jie vadovavosi kairiosios pusės metodu. Kad būtų aiškiau, turėtumėte įsivaizduoti, kad buvote labirinte, ir visada laikykite kairę ranką prie sienos. Praėję tam tikrą kelią, tai padės jums išeiti iš labirinto, jei jis nėra uždarytas. Robotas gali dirbti tik su atvirais labirintais.

Kairės pusės metodo principai yra gana paprasti:
- Jei galite pasukti į kairę, pasukite į kairę.
- Jei įmanoma judėti tiesiai, judėkite tiesiai.
- Jei galite pasukti į dešinę, pasukite į dešinę.
- Jei esate aklavietėje, pasukite 180 laipsnių.

Taip pat robotui reikia priimti sprendimus sankryžoje, tačiau jei jis posūkyje neišsijungia, tada eis tiesiai. Norėdami sukurti geresnį grįžimo kelią, kiekvienas sprendimas įrašomas į atmintį.
L = posūkis į kairę
R = posūkis į dešinę
S = praleisti posūkį
B = pasukite 180 laipsnių

Šis metodas parodytas žemiau kaip pavyzdys naudojant paprastą labirintą. Robotas įveikė atstumą LBLLBSR komandomis.
Robotas, einantis labirintais







Kelias pasirodė gana ilgas, jį reikia paversti optimaliu SRR. Norėdami tai padaryti, nustatoma, kur robotas pasuko neteisingu keliu. Visur, kur naudojama komanda „B“, kelias bus neteisingas, nes robotas buvo aklavietėje, todėl „B“ turėtų būti pakeistas kažkuo kitu. Pirmasis neteisingas judesys buvo LBL, robotas pasisuko ir apsisuko, tuo tarpu reikėjo tiesiog sekti tiesiai LBL = S. Taigi, yra pastatytas idealus kelias LBL = S, LBS = R. Remdamasis tokiais pakeitimais, robotas sukuria sau idealų trumpą kelią.





Antras žingsnis Roboto važiuoklė.
Roboto važiuoklės pagrindu tapo 0,8 mm storio akrilas, pjovimas lazeriu buvo atliekamas pagal brėžinį. Straipsnio archyve bus piešimo failas iš „AutoCAD“. Nebuvo būtina naudoti tokią medžiagą, tačiau autorius pasiėmė tai, kas buvo prieinama.

Apatinėje dalyje padarytos skylės varikliams, lentoms, ratams ir jutikliams pritvirtinti. Viršutinėje dalyje yra didelė skylė laidams.










Trečias žingsnis Ratų montavimas.
Autorius abu variklius pritvirtino varžtais. Be to, jie tiesiog užmauna ratus ant savo ašies, sulygindami veleną su rato anga.




Ketvirtasis žingsnis. Arduino
Tada autorius pirmiausia vadovavosi „Arduino RBBB“ surinkimo instrukcijomis. Be to, jis nupjovė dalį lentos, kad sumažintų jos dydį. Maitinimo jungtis ir stabilizatorius buvo nupjautos metalinėmis žirklėmis. Po to kairėje plokštės pusėje buvo išlydyta 9 kontaktų jungtis, skirta kontaktams nuo 5 V iki A0, kad jutiklis būtų prijungtas prie jo. Dešinėje plokštės pusėje buvo išlydyta 4 kontaktų jungtis, skirta kontaktams nuo D5 iki D8, o prie jo bus prijungtas variklio valdiklis. Norėdami tiekti energiją, 2 kontaktų jungtis buvo išlydyta į 5 V ir GND.








Penktas žingsnis Variklio valdiklis.
Pats autorius šiam žingsniui sukūrė spausdintą plokštę, „Eagle“ formato grandinė pridedama archyve po straipsniu. Pirmasis variklis buvo prijungtas prie kaiščių M1-A ir M1-B, antrasis - prie M2 ir M2-B. Pirmasis pirmojo „In 1A“ variklio įėjimas buvo prijungtas prie 7-ojo „Arduino“ kaiščio. 1B buvo prijungtas prie Arduino 6 kaiščio. Prie pirmojo antrojo variklio įėjimo In 2A yra prijungtas prie 5-ojo Arduino kaiščio. „Pin In 2B“ jungiamas prie „Arduino“ 8 kaiščio. Maitinimas ir įžeminimas yra prijungti prie Arduino galios ir žemės.








Šeštas žingsnis Jutikliai
Šis elementas parduodamas jutiklių lentos pavidalu, iš pradžių jų yra aštuoni, du kraštutinius autorius išbraukė. Prie plokštės buvo išlydyta 9 kontaktų jungtis, prie jų bus prijungta viela, vedanti į Arduino. Jutiklis nustato baltą ir juodą labirinto dalis, atspindėdamas paviršių.




Septintas žingsnis. Viršutinė dalis.
Važiuoklė su roboto viršutine dalimi, sujungta varžtais ir stelažais. Baterija buvo viršuje pritvirtinta Velcro. Laidai iš jo buvo nutiesti per paruoštą skylę. Pritvirtindamas autorius nusprendė nenaudoti varžtų, o palikti akumuliatorių su „Velcro“, kad būtų lengviau pakeisti baterijas. Naudojant akumuliatoriaus dėklo jungiklį, buvo patikrintas jo veikimas.








Aštuntas žingsnis. Jutiklių montavimas.
Jutikliai buvo pritvirtinti prie mašinos apačios. GND kaištis yra prijungtas prie GND Arduino. Tada „Vcc“ kaištis prijungtas prie „5V Arduino“. „Arduino 5-0 ADC“ sujungė analoginių 6-1 jutiklių kaiščius.






Devynis žingsnis. Maistas.
Arduino tiesiog litavo akumuliatoriaus laidus. Įjungus ir išjungus robotą bus įjungtas akumuliatorius, todėl buvo nuspręsta naudoti litavimą. Tai užbaigia roboto surinkimą.


Dešimtas žingsnis Programinės įrangos dalis.
Programa turi keletą funkcijų, atsakingų už operacijos algoritmą. „Kairės rankos“ funkcija priima jutiklių rodmenis ir kontroliuoja robotą pagal šias taisykles. Sukimosi funkcija įjungiama prieš robotą pastebėjus juodą liniją, pastebėjus, kad jis važiuoja tiesiai. Taip pat integruota kelio optimizavimo funkcija. Programą galima atsisiųsti pagal straipsnį archyve.


Roboto vaizdo įrašas:


labirintas-sprendimas-robotas.rar [28,67 Kb] (atsisiuntimai: 545)
5.5
5.5
5.5

Pridėti komentarą

    • šypsotisšypsosixaxagerainežiniaYahoonea
      viršininkassubraižytikvailystaiptaip-taipagresyvusslapta
      atsiprašaušoktišokis2šokis3atleiskpadėtigėrimai
      sustotidraugaigeraigerašvilpukassupyktiliežuvis
      rūkytiplojimaiklastingaspareikštiniokojantisdon-t_mentionatsisiųsti
      šilumanedrąsusjuoktis1mdasusitikimasmoskingneigiamas
      not_ipopkornasnubaustiskaitytigąsdintigąsdinapaieška
      gundytiačiūtaito_clueumnikūmussusitarti
      blogaibičiųjuoda akisblum3skaistalaipasigirtinuobodulys
      cenzūruotamalonumasslapta2grasintipergalęju„sun_bespectacled“
      šoktipagarbalolišlenktaslaukiamekrutojusya_za
      ya_dobryipagalbininkasne_huliganne_othodifludisuždraustiarti

Mes patariame perskaityti:

Perduokite jį išmaniajam telefonui ...