IMGP0283

CamBot es un prototipo de micro-robot sigue-líneas que usa como elemento para detectar la línea una mini-cámara de TV en vez de los típicos sensores de infrarrojos.

El microcontrolador usado es un PIC 16F84A a 16Mhz, con lo cual es necesario recurrir a la imaginación para poder analizar la imagen, ya que las capacidades de procesamiento son reducidas.

Las primeras pruebas han aportado un resultado bastante satisfactorio,  consiguiendo que el micro-robot sea capaz de seguir una pista con forma elíptica, manteniéndose centrado sobre la línea.

La señal de video es una señal compleja que además de la información sobre la imagen también incluye las señales de sincronismo horizontal y vertical entre otras, por tanto quizás algunos de los conceptos utilizados puedan parecer confusos.

La señal de video generada por una cámara de TV se divide en 625 líneas, según la norma PAL (phase alternating line), que contienen toda la información necesaria para poder representar la imagen en una pantalla de TV. Estas 625 líneas se transmiten de forma alternativa, es decir, primero la líneas pares y después la impares dando lugar a una frecuencia de muestreo de la imagen de 25 Hz (25 imágenes por segundo), esta velocidad de transmisión de la imagen es la mínima necesaria para que el ojo humano no pueda apreciar ningún parpadeo en la pantalla de TV.

 

IMGP02852

IMGP02842

IMGP02862

 

 

 

 

 

 

 

Esquema

esquema

 

La señal de vídeo se aplica al comparador IC2 y al extractor de sincronismos IC3. IC2 compara el nivel de la señal de vídeo con una tensión de referencia dada por el potenciómetro R7, cuando la señal de vídeo cae por debajo del nivel de referencia la salida del comparador pasa a nivel alto. El extractor de sincronismos IC3 descompone la señal de vídeo para obtener las señales de vídeo compuesto, sincronismo horizontal y sincronismo vertical que se envían al microcontrolador.

El microcontrolador es un PIC16F84A, se encarga de procesar las señales de entrada para generar el pulso PWM que se aplica a los servomotores y así mantener el micro-robot sobre la línea.

El esquema se ha realizado con Eagle 5.0.0.

 

Funcionamiento

video3El principio de funcionamiento del micro-robot se basa en el análisis de una línea de la señal de vídeo. Los niveles de tensión varían dependiendo del color de la imagen, así, el color blanco se corresponde con el nivel alto de tensión y el color negro con un nivel bajo pero sin llegar a ser 0 V ya que por debajo del nivel de negro están las señales de sincronismo.

La señal de sincronismo vertical de 50 Hz es la encargada de iniciar todo el proceso, en el flanco de subida, se configura TMR0 como contador para contar los pulsos de la señal de sincronismo horizontal (líneas de la imagen) y se precarga con el valor necesario para poder detectar el número de  línea de la imagen que se desea analizar.

Tras la configuración de TMR0 se pasa a generar la señal PWM necesaria para controlar los dos servomotores. La duración máxima del pulso PWM es de 2 ms, después de los cuales el microcontrolador pasa  a esperar el desbordamiento del contador TMR0 que indicará que se ha alcanzado la línea de la señal de vídeo seleccionada.

TMR0 se configura como temporizador y se comienza a contar el tiempo que transcurre desde el inicio de la señal de vídeo hasta que el comparador pone a nivel alto la salida, lo que indicará la posición de la línea de la pista, cuanto mas tiempo trascurra mas a la izquierda estará el micro-robot sobre la línea de la pista. Después que el comparador haya activado la salida se cuenta el tiempo que esta en nivel alto, para medir el ancho de la línea de la pista. Finalizado el rastreo de la línea de la imagen, se pasa a realizar los cálculos necesario para poder generar la señal PWM adecuada para que el micro-robot pueda seguir la línea de la pista.

 

Programa

La programación se ha realizado en ensamblador, el proyecto fue creado con MPLAB.

Archivos adjuntos:
Archivo
Descargar este archivo (Esquema.zip)Esquema
Descargar este archivo (Programa ASM.zip)Programa