This is an old revision of the document!
Pentru functionalitatea de baza se vor folosi: 1x Arduino UNO, 2x Motoare de 12V cu reductor, 1x Driver motor L298N cu punte H dubla, 2x LED, 2x Fotorezistor, 2 x senzori IR, 1x Modul bluetooth.
Robotelul este pornit dintr-un switch plasat pe partea superioara iar acesta in mod default va urmari o linie neagra cu ajutorul senzorilor IR. Dupa dorinta utilizatorului, acesta poate schimba ,prin intermediul modulului bluetooth, linia pe care sa o urmareasca. Se poate decide de la inceput ce linie sa urmareasca intre cea neagra si cea colorata. De asemenea, se poate pe parcurs sa se schimbe linia urmarita la o intersectie intre cele 3.
void loop() { while(Serial.available()>0){ inputByte= Serial.read(); //Serial.println(c); if (inputByte=='Z'){ color = 0; } else if (inputByte=='z'){ color = 1; } if (inputByte=='Y'){ stop_ind = 0; } else if (inputByte == 'y'){ stop_ind = 1; } } Serial.println(color); prv = analogRead(pr); Serial.println(prv); prv2 = analogRead(pr2); Serial.println(prv2); if (color == 0 && !stop_ind) { if ((prv < low_blue_pr || prv > high_blue_pr) && (prv2 < low_blue_pr2 || prv2 > high_blue_pr2)) forward(); else if (prv > low_green_pr && prv < high_green_pr) turnLeft(); else if (prv2 > low_green_pr2 && prv2 < high_green_pr2) turnRight(); } else if (color == 1 && !stop_ind){ if((digitalRead(R_S) == 0)&&(digitalRead(L_S) == 0)){forward();} //daca ambii senzori sunt pe culoarea alba (sau ceva deschis) //atunci robotul merge in fata
if((digitalRead(R_S) == 1)&&(digitalRead(L_S) == 0)){turnRight();} //daca senzorul drept este pe culoarea neagra si cel stang //pe alba atunci robotul trebuie sa vireze la dreapta if((digitalRead(R_S) == 0)&&(digitalRead(L_S) == 1)){turnLeft();} //daca senzorul stang este pe culoarea neagra si cel drept //pe alba atunci robotul trebuie sa vireze la stanga } else { Stop(); } //delay(800);
}
Acest proiect pare simplu la prima vedere dar in realizarea lui m-am lovit de multe probleme hardware cu conexiunile, lipiturile, cu ansablul acela de fotorezistor + led. In acest ultim caz am observat ca ledul lumineaza mai tare cand e conectat la calculator si ii pot citi valorile returnate de fotorezistor si lumineaza mai putin cand e pe baterii asa ca a trebuit sa conectez cele 2 leduri separat la 2 baterii. Proiectul poate fi o jucarie pentru copii mici, un exemplu comercial al unui robotel de genu ar fi Ozobot.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
https://create.arduino.cc/projecthub/saher-iqbal/line-follower-robot-36516b https://create.arduino.cc/projecthub/akshayjoseph666/interfacing-bluetooth-module-hc-05-with-arduino-uno-f5209b https://www.youtube.com/watch?v=8ZN6jzrG6jE https://www.quora.com/How-do-I-make-an-Arduino-line-follower-with-multi-colored-lines https://forum.arduino.cc/t/multi-colored-line-follower/6261