Prezentarea pe scurt a proiectului vostru:
Placuta Arduino UNO va primi informatii de la cei 2 senzori optici. Acesti senzori se afla de o parte si de alta a liniei care trebuie urmarita. In cazul in care un senzor detecteaza linia, informatia este transmisa catre microcontrollerul ATMEGA328 care, la randul lui, controleaza motoarele. Placuta va comanda oprirea rotii de pe partea cu senzorul, pentru ca masinuta sa se redreseze. Roata ramane oprita pana cand celalalt senzor “loveste” linia. Acum, cealalta roata se opreste. Procesul se repeta, linefollower-ul avansand “din greseala in greseala”.
In cazul unei “coliziuni” cu linia (descrisa mai sus), placuta ATMEGA328 va comanda ecranul OLED sa afiseze un anumit mesaj.
In plus, daca exista un obstacol la mai putin de 20 cm distanta in directia inainte, senzorul ultrasonic il va detecta, iar rotile linefollower-ului se vor opri.
Din punct de vedere al software-ului, linefollower-ul nu este foarte complicat. Avand doar 2 senzori infrarosii, am decis ca cea mai buna decizie ar fi sa implementez 2 intreruperi pe pinii PD2 si PD3 ai placutei. Aceste intreruperi vor schimba valoarea unei variabile, iar in bucla principala, in functie de aceasta variabila, voi controla motoarele.
O alta varianta de implementare software a a acestui proiect ar fi citirea direct in bucla principala a valorilor de la senzorii infrarosii.
Principala provocare a acestui proiect a fost asamblarea pieselor hardware astfel incat proiectul sa functioneze. A trebuit sa fiu atent la alimentarea modulului drive si a placutei Arduino astfel incat motoarele sa aiba destula putere sa miste robotul. Asezarea componentelor pe placa de carton a fost de asemenea foarte importanta, intrucat dezechilibrarea robotului putea duce la functionarea gresita a senzorilor infrarosii.