Mostrando entradas con la etiqueta Sensores. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sensores. Mostrar todas las entradas

19.7.09

Sensor de Color

Siguiendo con los sensores necesarios para el desarrollo principal del robot, tenemos el sensor de colores, el cual nos ayudara a identificar el color de las cajas que tome nuestro robot y poder calificarlas.
Para ello utilizaremos 3 led y un LDR (resistencia dependiente de luz) y un simple principio de reelección, el cual consta de emitir secuencialmete 3 colores (rojo, azul y verde) y medir la reelección con el LDR por un cierto tiempo, y comparar la caída de voltaje en la resistencia variable de cada uno de los colores.
Para eso utilizaremos un divisor de tensión entre el LDR y una resistencia de 100k, el cual conectaremos a una entrada análoga de Arduino. Ahí con un simple programa podremos leer cada una de los voltajes y comprararlos e identificar el menor voltaje, el cual corresponderá al color de la caja.

Es un esquema bastante sencillo para el funcionamiento del sensor. Importante cabe hacer notar que el armado del sensor debe ser muy cuidadoso en la ubicación de los leds, y la protección que se debe agregar al LDR por el borde, para asi centrar, el campo de sensado solo en el reflejo de los led. En mi caso utilicé un trozo de una manguera de un acuario que encontré por mi casa, la cual calzo perfectamente en el LDR.
Además los leds deben ser de preferencia de alto brillo para así lograr mejor luminosidad sobre la superficie a sensar. También, notar que se debe ajustar las resistencias de los leds para cada uno, y lograr así ajustar la luminosidad igual para todos, ya que como sabemos cada led es fabricado con un material distinto y cada uno con su luminosidad.

La rutina del programa es bastante simple por lo que no la colocare aquí, pero consiste en primero encender un led y guardar el valor, y así con los tres, luego comparar los valores y el menor será el valor correspondiente a la superficie sensada.

13.7.09

Sensor Seguidor de Linea 2

Ahora perfeccionando el sensor de lineas que ya habia posteado antes en el blog (fue mi primera entrada), adquiri por aproximadamente $800 un sensor de reflectivo de rebote, especial para detectar cambios de colores en superficies a una distancia de app 1 mm. Es especial para nuestro proyecto, en el cual necesitamos seguir las lineas del escenario para llegar a nuestro destino.

El sensor

El sensor KTIR0811S (pueden ver el datasheet) es un sensor encapsulado muy pequeño el cual nos permitirá mucha presicion al momento de dejar de detectar la cinta coloreada en el suelo.
Está diseñado para detectar la variación de color blanco y negro sobre una superficie ubicada a una distancia de un milímetro del sensor. ( para mas detalles revisar diagramas del datasheet).



La conexión

Para la conexión ocuparemos un simple divisor de tensión entre una resistencia de 100k y el foto transistor. Además de no olvidar de colocar una resistencia de 220 en serie al diodo emisor para no estropearlo.
Además de realizar la placa ajustada al tamaño de la linea que queremos seguir, recuerda que los sensores deben quedar casi en la orilla por dentro de la linea.
Pronto agregaré imágenes del sensor ya terminado para guiar sus trabajos.

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.