Mi-am ales ca tema pentru proiect un robot care are ca scop urmarirea unui traseu definit de o banda de culoare neagra pe un fundal alb. Inspiratia pentru acest proiect a fost conturata de trenurile care se conduc singure, care m-au facut curioasa sa incerc si eu sa fac ceva asemanator, la nivel minimalist, pentru a intelege mai bine procesul din spate. Acest proiect este util in dezvoltarea autovehiculelor self-driving.
Piesele necesare pentru realizarea proiectului sunt:
Schema de legătură
Mediu de dezvoltare folosit: Arduino IDE
int SensorLeft = 1; int SensorRight = 0; int enR = 11; int in1R = 10; int in2R = 9; int in3L = 7; int in4L = 6; int enL = 5; int speed = 255; void setup() { pinMode(SensorLeft, INPUT); pinMode(SensorRight, INPUT); pinMode(enR, OUTPUT); pinMode(enL, OUTPUT); pinMode(in1R, OUTPUT); pinMode(in2R, OUTPUT); pinMode(in3L, OUTPUT); pinMode(in4L, OUTPUT); Serial.begin(9600); } void loop() { int readSensorRight = analogRead(SensorRight) < 300 ? 1 : 0; int readSensorLeft = analogRead(SensorLeft) < 300 ? 1 : 0; if(readSensorRight == 0 && readSensorLeft == 0) {forward();} if(readSensorRight == 1 && readSensorLeft == 0) {right();} if(readSensorRight == 0 && readSensorLeft == 1) {left();} if(readSensorRight == 1 && readSensorLeft == 1) {stop();} } void forward() { digitalWrite(in1R, LOW); digitalWrite(in2R, HIGH); analogWrite(enR, speed); digitalWrite(in3L, LOW); digitalWrite(in4L, HIGH); analogWrite(enL, speed); } void right() { digitalWrite(in1R, LOW); digitalWrite(in2R, HIGH); analogWrite(enR, speed); digitalWrite(in3L, LOW); digitalWrite(in4L, LOW); analogWrite(enL, LOW); } void left() { digitalWrite(in1R, LOW); digitalWrite(in2R, LOW); analogWrite(enR, LOW); digitalWrite(in3L, LOW); digitalWrite(in4L, HIGH); analogWrite(enL, speed); } void stop() { digitalWrite(in1R, LOW); digitalWrite(in2R, LOW); analogWrite(enR, LOW); digitalWrite(in3L, LOW); digitalWrite(in4L, LOW); analogWrite(enL, LOW); }
Masina urmeaza linia conform cerintelor, facand virajele necesare.
A fost mai greu decat pare :). Mi-a luat cateva ore bune sa-mi dau seama ce gresesc deoarece mi se tot reseta placuta la cateva secunde. Pana la urma l-am luat de la zero pentru a treia oara si doamne ajuta a mers :). In concluzie, a fost greu, dar am invatat mai bine conceptele necesare deoarece le-am pus in practica, fixand informatia.