30.3.09

Fabricando el sensor de Lineas "LEGO"

Fabricar un sensor de líneas, suena algo complicado, pero su fabricación se limita a solo detectar por medio de emisiones de luz infraroja las variaciones del reflejo con el suelo.
Lo más complejo es lograr compactarlo en alguna carcaza pequeña que no ocupe el suficiente tamaño para estorbar dentro de nuestro robot. Para ello utilizaremos un clasico "LEGO". Quien no jugo alguna vez con uno de estos durante su niñez (algunos como yo, hasta bastante avanzada edad )

Los Materiales que utilizaremos para este sensor
son:
  • 1 LEGO de 8 puntas
  • 1 Filtro UV (lo saque de un control remoto viejo)
  • 2 fototransistores
  • 1 Led Infrarojo
  • Pegamento
  • 1 trozo de madera
  • Dremel
  • Resistencias y leds varios para verificar el funcionamiento
  • El infaltable Arduino
El detalle de los fototransistores y el Led emisor es que son planos, como los que traían los antiguos mouse. Fueron comprados en Olimex (Datasheet Fototransistor), (Datasheet Led Emisor) y se vende el par.


Bueno.. vamos a lo nuestro.


Primero, tomamos el lego y lo destrozamos por dentro con cualquier herramienta del Dremel, hasta dejarlo completamente hueco. Esta será la c
arcaza de nuestro sensor.

Ahora medimos la distancia del interior del lego y
marcamos la madera para asi introducirla en ella.
Una vez que la madera calza perfectamente al interior del lego, procedemos a medir la línea que queremos seguir. Generalmente se guía por una línea de cinta aislante (19 mm).

Para esto hacemos un calado en la madera como se ve en la imagen para calzar los 2 fototransistores con sus respectivos filtros UV, mas el Led emisor en el medio.
Calculamos el ancho de nuestra cinta, la dividimos en dos y colocamos el centro del led en el y luego a sus costados los fototransistores.

Una vez que nos calza todo dentro del Lego, si pasar el limite para que quede completamente liso por abajo, rellenamos todo con pegamento para que quede bien firme.
Además hacemos unos calados en el borde del lego, para sacar los pines al exterior.

Una vez terminado debería quedar algo mas o menos así:


Una vez terminado el sensor, podremos crear el software en Arduino. Para eso debemos conectar nuestro sensor de la forma que muestra la figura.
Conectamos las salidas de los divisores de tensión generados por la R10K y el foto transistor a las entradas analógicas de Arduino, yo utilizé en particular la entrada 0 y 1

Luego vamos con el código:
Es un código simple en el cual encenderá un led cuando detecte el color blanco, así saber si esta dentro de la línea negra o fuera de ella.
Con esto podremos controlar el giro de los motores y saber cual de ellos detener para que el robot vuelva a la línea que queremos seguir.

Comenzamos con las variables y luego leyendo las entradas analógicas. Calibramos y vemos con que valor de 0 a 1023 el sensor detecta la línea negra.
Con ese valor colocamos la condición para que se encienda un led en una de las salidas digitales.
El código queda así:
int pina = 0;
int pinb=1;
int A = 2;
int B = 4;
int vala=0;
int valb=0;
void setup(){
Serial.begin(19200);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);

}
void loop(){
vala = analogRead(pina);
valb = analogRead(pinb);
Serial.println(valb);
Serial.print(vala);

if(vala>450){
digitalWrite(A, LOW);
}
else{
digitalWrite(A, HIGH);
}
if(valb>450){
digitalWrite(B, LOW);
}
else{
digitalWrite(B, HIGH);
}
}
En este caso, mi sensor detecta la línea sobre el 450 por eso está configurado para encender los led al superar este valor.
Con esto tenemos listo nuestro sensor de líneas para llegar y montar en nuestro robot.


video