Articolul arată crearea unui robot care călătorește de-a lungul liniilor și poate trece prin labirinturi, după ce a studiat labirintul, poate trece prin el în cel mai scurt mod. Autorul a creat mult timp acest proiect, norocul l-a depășit a treia oară.
Demonstrația mașinii:
Materiale și instrumente:
- Arduino BRD
- Micromotoare 2 buc
- Suporturi pentru motoare cu 2 buc
- Roți 2 buc
- roată cu bilă
- Senzor de reflexie analogică
- Piulițe cu șuruburi de 2 buc.
- conducător motor
- Suport baterie 4 buc AAA
- Baterii (baterii reîncărcabile) AAA 4 buc
- Caz
- Piulițe, șuruburi, șaibe
- conectarea firelor
- lipire
- clesti
- fier de lipit
- șurubelniță
Primul pas. Teorie.
Autorul avea nevoie robotul, care însăși va găsi o cale de ieșire din labirint, după care va putea optimiza călătoria de întoarcere. Când au creat o mașină pentru labirinturi, acestea au fost ghidate de metoda din stânga. Pentru a fi mai clar, ar trebui să vă imaginați că ați fost într-un labirint și să țineți întotdeauna mâna stângă pe perete. După trecerea unei anumite căi, acest lucru vă va ajuta să ieșiți din labirint dacă nu este închis. Robotul poate funcționa doar cu labirinturi deschise.
Principiile metodei din stânga sunt destul de simple:
- Dacă puteți vira la stânga, virați la stânga.
- Dacă este posibil să vă deplasați drept, deplasați-vă drept.
- Dacă puteți vira dreapta, virați la dreapta.
- Dacă vă aflați într-un punct mort, întoarceți 180 de grade.
De asemenea, robotul trebuie să ia decizii la intersecție, dar dacă nu se oprește la viraj, atunci va merge drept. Pentru a construi un traseu de întoarcere mai bun, fiecare decizie este scrisă în memorie.
L = viraj stânga
R = viraj dreapta
S = săriți o tură
B = rotiți 180 de grade
Această metodă este prezentată mai jos în acțiune folosind un exemplu de labirint simplu. Robotul a acoperit distanța cu comenzi LBLLBSR.
Calea a parcurs un drum destul de lung, trebuie transformată într-un SRR optim. Pentru a face acest lucru, se stabilește unde robotul s-a îndreptat greșit. Oriunde se folosește comanda „B”, calea va fi incorectă, deoarece robotul se afla într-un impas, deci „B” ar trebui înlocuit cu altceva. Prima mișcare greșită a fost LBL, robotul s-a întors și s-a întors, în timp ce era doar necesar să se urmeze direct LBL = S. Astfel, calea ideală LBL = S, LBS = R este construită. Pe baza unor astfel de înlocuitori, robotul își construiește o cale scurtă ideală pentru sine.
Pasul doi Sasiul robotului.
Acrilul cu o grosime de 0,8 mm a devenit baza pentru șasiul robotului, tăierea a fost efectuată de un laser conform desenului. În arhiva de sub articol va exista un fișier de desen din AutoCAD. Nu a fost necesar să folosiți un astfel de material, dar autorul a luat ceea ce era disponibil.
În partea inferioară, găurile sunt realizate pentru montarea motoarelor, plăcilor, roților și senzorilor. Partea superioară are o gaură mare pentru fire.
Pasul trei Instalarea roților.
Autorul a atașat ambele motoare cu șuruburi. În plus, pur și simplu au pus roți pe osia lor, alinind arborele cu orificiul din roată.
Al patrulea pas. Arduino.
În acest moment, autorul a urmat mai întâi instrucțiunile de asamblare pentru Arbuino RBBB. Mai departe, a tăiat o parte din tablă pentru a-i reduce dimensiunea. Conectorul de alimentare și stabilizatorul au fost tăiate cu foarfece pentru metal. După aceea, un conector cu 9 pini a fost lipit pe partea stângă a plăcii pentru contactele de la 5V la A0 pentru a conecta un senzor la acesta. Un conector cu 4 pini a fost lipit pe partea dreaptă a plăcii pentru contactele de la D5 la D8, iar un controler al motorului va fi conectat la acesta. Pentru alimentare, conectorul cu 2 pini a fost lipit la 5V și GND.
Pasul cinci Controler motor.
Autorul însuși a elaborat o placă de circuit tipărit pentru acest pas, circuitul în format Eagle este atașat în arhiva de sub articol. Primul motor a fost conectat la pinii M1-A și M1-B, al doilea la M2 și M2-B. Prima intrare a primului motor In 1A a fost conectată la al șaptelea pin al Arduino. În 1B a fost conectat la pinul 6 al Arduino. La prima intrare a celui de-al doilea motor, In 2A este conectat la cel de-al 5-lea pin al Arduino. Pin In 2B se conectează la pinul 8 al Arduino. Puterea și pământul sunt conectate la puterea și la sol Arduino.
Pasul șase Senzori.
Acest element este vândut sub forma unei placi de senzori, inițial sunt opt dintre aceștia, cei doi extreme fiind ștersi de autor. Un conector cu 9 pini a fost lipit pe placă, un fir care duce la Arduino va fi conectat la ele. Senzorul detectează o parte albă și neagră a labirintului folosind reflectarea de la suprafață.
Al șaptelea pas. Partea de sus.
Șasiul cu vârful robotului conectat de șuruburi și rafturi. Bateria a fost fixată în partea superioară cu Velcro. Firele de la el erau puse prin orificiul pregătit. La fixare, autorul a decis să nu folosească șuruburile, ci să lase bateria cu Velcro, astfel încât să fie mai ușor să înlocuiți bateriile. Utilizând comutatorul carcasei bateriei, s-a efectuat o verificare a performanței.
Pasul opt. Instalarea senzorilor.
Senzorii au fost strânși în partea de jos a mașinii. Pinul GND este conectat la GND Arduino. În continuare, pinul Vcc este conectat la Arduino 5V. ADC-urile Arduino 5-0 au conectat pinii senzorilor analogici 6-1.
Pasul Nou. Putere.
Arduino tocmai a lipit firele de la baterie. Pornirea și oprirea robotului va fi un comutator al bateriei, așa că s-a decis să se utilizeze lipirea. Aceasta completează ansamblul robotului.
Pasul zece Partea software.
Programul are mai multe funcții responsabile de algoritmul de operare. Funcția „stânga” primește citiri de la senzori și controlează robotul în conformitate cu aceste reguli. Funcția de rotație este activată înainte ca robotul să observe o linie neagră, observând că circulă drept. O funcție de optimizare a căii este, de asemenea, integrată. Programul poate fi descărcat sub articolul din arhivă.
Robot video: