Maze Runner
Autor
Introducere
acest proiect prezintă un robot ce caută să găsească ieșirea dintr-un labirint
scopul acestui proiect este rezolvarea oricărui labirint folosind regula de dreapta, adica robotul urmarește peretele drept până la finalul labirintului
mi-a venit acesta idee de la concursurile de roboți unde se regăsește o categorie ce are ca scop crearea unui astfel de robot și am vrut să văd daca aș fi în stare să construiesc așa ceva
utilitatea acestui proiect se regăsește în secreția de endorfină creată în urma construiri și perfecționării proiectului și în concurarea cu alte persoane pentru a vedea al cărui robot rezolvă labirintul mai repede
Descriere generală
Sumar implementare
Acest robot folosește doi senzori de distanță pentru a afla dacă este o cale liberă în partea din dreapta sau este un perete în față. În primul caz vrează spre dreapta, în al doilea, virează spre stânga. Direcția de mers a motoarelor ce controlează roțile este manipulată de driver-ul de motoare ce este mai departe controlat de plăcuța Arduino după codul din ea. Acest robot mai are și funcția de start și stop ce poate fi accesată cu ajutorul modulului bluetooth ce poate fi controlat cu orice alt dispozitiv bluetooth.
Schemă bloc
Hardware Design
Listă de componente
Schemă electrică
Software Design
Mediu de dezvoltare: Arduino IDE
Funcția walkForward primește ca parametru un întreg x și setează motoarele pentru a merge înainte timp de x milisecunde, după care le setează să se oprească timp de 50 de milisecunde.
Funcția turnRight primește ca parametru un întreg x și apelează funcția walkForward pentru 150 de milisecunde la începutul și sfârșitul funcției, după care setează motoarele să întoarcă înspre dreapta.
Funcția turnLeft primește ca parametru un întreg x și apelează funcția walkForward pentru 150 de milisecunde la începutul și sfârșitul funcției, după care setează motoarele să întoarcă înspre stânga.
Funcția spaceUntilFront întoarce disanța până la peretele din față.
Funcția spaceUntilRight întoarce disanța până la peretele din dreapta.
Funcția setup setează starea pinilor.
Funcția loop așteaptă semnalul de start din partea driver-ului de bluetooth, iar când îl primește testează să vadă dacă mai este distanță până la peretele din față, în caz contrar întoarce înspre stânga, iar dacă mai este testează dacă este un perete în dreapta, dacă este robotul o ia înainte, altfel o ia la dreapta, testând mereu dacă are loc în față și dacă trebuie să se oprească din cauza semnalului primit prin bluetooth.
Rezultate Obţinute
Concluzii
Deși proiectul a ieșit destul de bine, se puteau face mai multe îmbunătățiri:
În primul rând nu este nicio modalitate concretă de a îi spune robotului să se întoarcă 90 de grade
În al doilea rând, cauciucurile sunt de proastă calitate și au probleme pe anumite tipuri de teren
În al treilea rând, senzorii sunt de proastă calitate, unul dintre ei s-a defectat, noroc că aveam unul de rezervă, distanța nu este exactă, iar uneori este mult mai mare
Nu există nicio cale de calcul a distanței parcurse, deci nu se poate face un algoritm care să repete traseul, fără a folosi senzorii pentru a doua parcurgere de labirint
Senzorul bluetooth trebuia pus împreună cu un buton, pentru a nu fi nevoie să fie deconectat de fiecare dată când trebuie încărcat codul
Download
Bibliografie/Resurse