Autorul poate fi contactat la adresa: Login pentru adresa
Pisicile grijulii ocolesc lucrurile din calea lor pentru a nu le strica. Pisicile adevărate le înlătură/distrug .
Aceasta e ideea de la care am pornit în realizarea acestui proiect, pe care mi-ar plăcea apoi să îl extind cu alte funcționalități asemănătoare unui animăluț(să urmărească oameni, de exemplu).
Proiectul constă într-un roboțel autonom care va detecta obiecte ce îi stau în cale într-un anumit perimetru și le va dărâma. Scopul lui este pentru amuzament și reprezintă un start pentru crearea unui animaluț-jucărie realistic, fiind ceva ce îmi doresc să realizez încă din anul întâi când am văzut proiectele ingenioase ale colegilor mai mari.
La bază, proiectul va conține un cadru cu roți, motoare și driver pentru acestea, făcând posibilă mișcarea robotului. De asemenea, vor fi incluși senzori de distanța care să detecteze atunci când întâlnește un obiect și senzori care să păstreze roboțelul în perimetrul dat.
Principiul de funcționare: cu ajutorul motoarelor, Robocat va fi pus în mișcare aleatoriu. În momentul în care senzorii detectează un obiect, robocat se va apropia încet de acesta și îl va împinge pentru a îl dărâma de pe suprafața data, fără a depași limitele între care va fi încadrată aceasta suprafață.
Listă de piese:
Schema electrică este următoarea:
Mediul de dezvoltare pentru proiect este: Windows, utilizand Notepad++.
Pentru a obtine datele de la senzorul de linie, acestea sunt citite de la ADC si verificate. Astfel, in functie de un prag (determinat prin analiza outputului folosind USART) este verificat daca robotelul iese din perimetru(a detectat linia neagra) sau se afla inca in acesta.
Cat timp isi pastreaza pozitia in perimetru va cauta un obiect in apropierea sa, folosind senzorul HC-SR04 cu ajutorul caruia se masoara distanta folosind semnalele de trigger(tinut pe high pentru o perioada de circa 10-15us si apoi pus pe low) si echo. Odata gasit obiectul plasat cel mai convenabil, robotelul se indreapta spre el cu ajutorul motoarelor controlate cu FPWM si il impinge(tinand cont sa nu iasa din perimetru). Pentru miscarea robotului, am definit functiile de baza de mers inainte/inapoi si de cotire dreapta/stanga, utilizate impreuna si adaptate in functie de punctul in care se afla robotelul.
Robotelul obtinut se poate observa in imaginile de mai sus. Acesta se misca, detecteaza obiectele la distanta lor reala si isi da seama cand atinge linia neagra cu succes. Partea de software mai trebuie imbunatatita si completata in anumite cazuri pentru a putea obtine exact rezultatul final asteptat.
Partea de asamblare a robotelului a fost chiar distractiva deoarece a trebuit sa ma gandesc cum sa montez senzorul de linie cat mai aproape de sol, dar nici prea aproape(intre 3 si 6 mm). Provocarea a venit din configurarea senzorului de distanta pentru a obtine datele corecte si din adaptarea motoarelor pentru a realiza miscarile dorite.
In final, consider ca a fost un proiect interesant, usor dificil deoarece a trebuit sa lucrez cu 2 senzori deodata, dar care m-a ajutat pentru a intelege mai bine informatiile dobandite in timpul semestrului.