Pentru functionalitatea de baza se vor folosi: 1x Arduino UNO, 2x Motoare de 3-6V 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.