En el siguiente video se muestra el Robot Sanduino A01 seguidor de línea.
El programa siguiente, es la versión inicial para lograr que el robot siga la línea como se muestra en el video.
/* Programa: SanduinoSigueLinea.ino
Autor: Julio Sandria (Enero 2015)
Taller Robótica 2015
Robot Sanduino seguidor de línea
con dos sensores de luz
*/
int pinSensorLuzI = 2;
int pinSensorLuzD = 4;
int valorSensorLuzI = 0;
int valorSensorLuzD = 0;
int tAvanza = 50;
int tGiro = 50;
int tAlto = 50;
void setup() {
pinMode(pinSensorLuzI,INPUT);
pinMode(pinSensorLuzD,INPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
delay(3000);
}
void loop() {
valorSensorLuzI = digitalRead(pinSensorLuzI);
valorSensorLuzD = digitalRead(pinSensorLuzD);
if( valorSensorLuzI == 0 && valorSensorLuzD == 0 ) {
avanza(tAvanza);
}
if( valorSensorLuzI == 1 ) {
izquierda(tGiro);
}
if( valorSensorLuzD == 1 ) {
derecha(tGiro);
}
alto(tAlto);
}
void avanza(int ms) {
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(ms);
}
void retrocede(int ms) {
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(ms);
}
void izquierda(int ms) {
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(ms);
}
void derecha(int ms) {
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(ms);
}
void alto(int ms) {
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
delay(ms);
}
Copia el programa en el software Arduino y cárgalo a la tarjeta Arduino del Robot Sanduino A01.
¿Quieres aumentar la velocidad del robot? Prueba cambiando poco a poco las variables tAvanza, tGiro y tAlto.