Proiectul consta intr-un robot care stie sa urmareasca o linie pe un traseu care are 4 capete:1 capat este destinat pentru primirea cutiei (voi avea 3 cutii de culori diferite) si 3 capete pentru depozitarea cutiilor. Robotul va urmarii un traseu ghidat de o linie cu scopul de a duce cutia in zona corespunzatoare ei (una dintre cele 3 capete). In functie de culoarea cutiei, la o rascruce el va sti in ce directie sa mearga pentru a duce cutia si pentu a o lasa acolo, revenind apoi in zona de colectare a cutiilor.
Robotul se va deplasa pe 2 roti, avand o roata pivotanta pentru echilibru. El va fi pornit din capatul in care asteapta sa primeasca cutii, cu ajutorul unui switch. Dupa ce robotul primeste cutia, el se va intoarce cu 180 de grade si va urmari linia, folosind un modul pentru urmarirea liniei, pana cand ajunge la o intersectie. In acel moment, in functie de culoarea cutitei, el va decide pe ce cale o va lua pentru a ajunge in capatul potrivit. Cand va ajunge acolo, robotul se va folosi de un servomotor pentru a arunca cutia jos, dupa care el sa va intoarce in pozitia initiala, adica in capatul de unde colecteaza cutii.
Pe langa componente robotului, voi confectiona o 'arena' in care robotul se va deplasa si in care se vor afla cele 4 capete povestite anterior si cutiile care vor fi de trei culori diferite(rosu, verde si albastru).
Lista de piese:
Pentru dezvoltarea proiectului am folosit arduino IDE, impreuna cu libraria pentru servomotare.
Pentru o buna deplasare a robotul in timp ce urmareste o linie am folosit un controller PID, in care eroarea este cat de deplasat este robotul fata de linie (valoare obtinuta din senzorul pentru urmarirea liniei). Pentru deplasarea efectiva, am creat functia goForward(), care primeste ca parametrii viteze care vor fi trimise fiecarui motor in parte.
Pentru detectia culorii cuburilor senzorul primeste pe doi pini o comanda care ii schimba culoarea pe care el trebuie sa o setecteze (adica el, pe rand, va trebui sa transmita cat de “rosu”, “verde” si “albastru” vede in fata lui). Cu aceste date si cu niste valori gasite prin incercari, senzorul detecteaza cu usurinta si fara eroare coluarea cuburilor.
Pentru deplasarea pe traseu, robotul functioneaza dupa un principiu simplu: numara prin cate “intersectii” a umblat (atunci cand toti senzorii mai putin cel din mijloc vad linia neagra robotul considera ca se afla intr-o intersectie). In functie de numarul de intersectii prin care a trecut, robotul stie care va fi actiunea pe care trebuie sa o ia mai departe.
In plus, am implementat si o intrerupere, al carui pin folosit a fost legat la un switch care, in momnetul cand ii este schimbata starea, intreruperea se va activa si va porti robotul.
A fost o experienta unica, plina de obstacole (dintre care credeam ca nu mai pot sa trec peste), dar cu un rezultat de care sunt foarte incantat si multumit.