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.