Escolar Documentos
Profissional Documentos
Cultura Documentos
Nombre Alumno (s): Gonzalo Quiroga Q. Vernica Veneros C. Seccin: 171 Nombre Profesor: Patricio Galarce. Fecha: 14 de abril de 2014
ndice
Contenido
DESCRIPCIN DEL PROYECTO. OBJETIVO: FUNCIONAMIENTO. DIAGRAMA EN BLOQUE. DESCRIPCIN DE CADA BLOQUE. ADQUISICIN DE IMGENES EN VIDEO POR WEBCAM: ADQUISICIN DE DATOS: INICIO DE PROGRAMA: ANLISIS DE LA INFORMACIN ADQUIRIDA POR LA WEBCAM: PREPARACIN PARA ANLISIS: ANLISIS DE LAS IMGENES: GUARDAR INFORMACIN: COMUNICACIN ENTRE MATLAB Y EL MICROCONTROLADOR: BLOQUE MATLAB: BLOQUE MICROCONTROLADOR: CONTROL DE SEGUIDOR DE COLORES: Control: ALGORITMOS. ALGORITMO DISPOSITIVO MAESTRO (PROGRAMACIN EN MATLAB): ALGORITMO DISPOSITIVO ESCLAVO (PIC 16F877A) EXPLICACIN ALGORITMOS. ALGORITMO DISPOSITIVO MAESTRO: EXPLICACIN ALGORITMO DISPOSITIVO ESCLAVO (PIC 16F877A) 3 3 4 5 6 6 6 6 6 6 7 7 7 7 8 8 8 9 9 10 11 11 13
Objetivo:
Desarrollar el proyecto de Seguidor de Colores con Matlab, aprovechando esto como una oportunidad para aprender un manejo ms detallado de esta herramienta. Poder familiarizarse ms con otros recursos de programacin para llevar a cabo el proyecto como lenguaje de programacin C, entornos de desarrollo grficos de Labview, Visual Basic y de Matlab. Implementar mejoras al prototipo de Seguidor de Colores con Matlab a medida que se lleva a cabo su implementacin y programacin.
Funcionamiento.
El funcionamiento del seguidor inicia cuando se prende el ordenador y se habilita por medio de ste la cmara webcam para encenderla. Adems se debe abrir el archivo en matlab que contiene el programa de anlisis de colores y energizar adecuadamente el seguidor de colores (dgase microcontrolador y actuadores que este requiere como los motores para mover el seguidor). Una vez llevado a cabo estos pasos bsicos, se da comienzo realmente al funcionamiento del seguidor de colores.
Cuando se enciende la cmara webcam, esta enva las imgenes de video al computador, estas son abiertas en el programa de matlab con la funcin videoinput(), la transmisin de video es segmentada en frames (la cantidad de frames , y el tiempo que se mantenga la adquisicin de estos es configurado en el programa). Ya una vez que se tiene acceso a la informacin, esta es procesada en un bucle del programa donde se da inicio al anlisis con la funcin start(), posteriormente se pasa a escala de grises y filtrado entre parte de las operaciones para que finalmente el programa distinga el color rojo. En base a esta distincin, en el otro bucle del programa es el encargado de capturar en el centro de un rectngulo el objeto de color rojo, junto a este rectngulo aparecen los ejes de posicin (X, Y) del centro del rectngulo. Los valores que toman los ejes (X, Y) son almacenados en variables, los valores que toman estas variables son la esencia del programa. La informacin contenida en las variables de matlab son enviadas por el dispositivo bluetooth del computador hacia el modulo bluetooth H06, que se comunica directamente con el microcontrolador de forma serial. La informacin que ingresa de forma serial al microcontrolador es procesada por el programa contenido en ste, y todas las ordenes que ste d, dependen de los valores que tomen los valores de los ejes (X, Y). Si el programa en el micro obtiene un comparacin que indica que el objeto rojo est muy cerca, este activa la funcin de un puente H que controla un motor DC, para que retroceda el carro, si la comparacin de datos del programa indica que el objeto rojo est muy lejos, har el mismo procedimiento anterior pero esta vez para que se acerque, tambin si el objeto se va u aparece por el lado izquierdo o derecho, actua un servo motor que direcciona dos ruedas, para que avances y retrocesos del seguidor de colores sea diagonal. Este es el funcionamiento del seguidor de colores desde el ingreso de datos a la salida de ellos expresndose por medio del movimiento de un carro prototipo con webcam.
Diagrama en Bloque.
Indica actividad o proceso que se lleva a cabo en cada bloque. Indica el hardware y/o perifrico de entrada - salida de datos, actuadores.
Ordenador.
Seguidor de Colores.
Inicio de Programa:
Al dar inicio el programa, primero se deben preguntar los datos de la webcam los cuales se obtienen con la funcin imaqhwinfo(winvideo) en la que se entregan datos como la resolucin, pixeles, nombre del dispositivo entre otros y posterior a eso, se debe configurar las propiedades, frames a generar, intervalo de imagen por frames y calidad en la que se requiere utilizar la transmisin de video por la webcam. Ya realizado esto recin se da inicio a la puesta en marcha del programa con la funcin start(vid). Cuando se ejecuta esto en el Command Windows de matlab se abre una ventana que muestra la transmisin de la webcam.
Guardar informacin:
Esta etapa consiste en guardar la informacin resultante de todo el anlisis, que en este caso son los valores correspondientes que toman los ejes (X, Y), estos resultados del movimiento del objeto rojo en la pantalla son almacenados en variables que son la informacin enviada desde matlab hacia el microcontrolador para su posterior procesamiento.
Bloque Microcontrolador:
Este bloque es ms breve, aqu la informacin enviada por matlab es receptada por un mdulo bluetooth H06, el cual va conectado al microcontrolador a travs de un protoboard, la informacin que recibe este mdulo, la traduce a un formato serial por medio del cual se comunica con el microcontrolador, de este manera este circuito integrado recibe la informacin desde el programa matlab en el computador y se encuentra habilitado ahora, para procesarla y realizar las instrucciones correspondientes segn los valores de los datos.
Algoritmos.
Algoritmo dispositivo maestro (programacin en MatLab):
Obtener informacin de webcam conectada a la computadora; Ingresar direccin y configuracin webcam; Setear cantidad de imgenes por disparo a infinito; Setear formato de color de la imagen de video a RGB; Setear intervalo de captura por imgenes/segundo a 1; Obtener nombre y canal de dispositivo bluetooth; Iniciar dispositivo bluetooth; Iniciar la captura de video; Mientras (la cantidad de imagenes capturadas sea menor o igual a 3000) Obtener captura de imagen del video; Obtener el componente rojo de la imagen en escala de gris; Filtrar ruido de la imagen; Convertir la imagen de escala de gris a binario; Remover objetos demasiado pequeos de la imagen binaria (menores a 300px a 700 px); Etiquetar los elementos dentro de la imagen binaria (hasta 4); //(Inicio de anlisis de la imagen) Agregar caractersticas a la imagen (tamao, posicin, contorno); Activar visualizacin de las imgenes; Mantener visualizacin; Repeticin para todos los objetos rojos Agregar contorno al objeto Agregar marca de centro del objeto Agregar rea del objeto Setear caractersticas del contorno (posicin, color y espesor); Plotear sobre la imagen los valores de rea, posicin eje X y posicin eje Y; Establecer fuente, tamao y color de los textos; Enviar valor de rea y posicin del objeto va bluetooth al PIC; Fin de repeticin Terminar mantener visualizacin; Fin de mientras Detener video; Limpiar datos de video; Borrar todo;
Explicacion algoritmos.
Algoritmo dispositivo maestro:
Obtener informacin de webcam conectada a la computadora; Ingresar direccin y configuracin webcam; Setear cantidad de imgenes por disparo a infinito; Setear formato de color de la imagen de video a RGB; Setear intervalo de captura por imgenes/segundo a 1;
Estas funciones sirven para detectar la cmara web que se encuentra conectada al computador via USB, luego se obtienen los datos de direccin, nombre, y tamao de la imagen de video. Luego se establece la cantidad mxima de frames de video capturadas, este valor lo seteamos a infinito para que el video no se detenga en ningn momento. El seteo del color de la imagen de video puede ser en colores (RGB), en escala de grises y en blanco y negro. El intervalo de captura de imgenes determina cada cuantos frames de video se tomara una muestra.
Obtener nombre y canal de dispositivo bluetooth; Iniciar dispositivo bluetooth;
Comandos para la configuracin del dispositivo bluetooth, donde se detecta la direccin, el nombre y el canal de comunicacin perteneciente a este. Luego se produce la activacin del dispositivo para comunicacin serie.
Obtener captura de imagen del video; Obtener el componente rojo de la imagen en escala de gris; Filtrar ruido de la imagen; Convertir la imagen de escala de gris a binario; Remover objetos demasiado pequeos de la imagen binaria (menores a 300px a 700 px); Etiquetar los elementos dentro de la imagen binaria (hasta 4);
Esta parte del programa corresponde al proceso de filtrado de imagen donde primeramente se obtiene una captura de imagen de video, luego esta imagen se transforma de RGB a escala de grises para obtener el valor del componente de color rojo de la imagen. A continuacin se filtra el ruido de la imagen estableciendo un cierto valor para eliminar pequeas impurezas dentro de esta. Luego se convierte la imagen desde escala de grises a una imagen de tipo binario en la cual los objetos de color rojo se vern completamente blancos y todo lo dems se ver completamente negro. Luego se removern todos los objetos de tamao menor al especificado, logrando una mejor discriminacin de los objetos detectados y evitar fallas. Finalmente se le da etiqueta a los objetos detectados binariamente.
Agregar caractersticas a la imagen (tamao, posicin, contorno); Activar visualizacin de las imgenes; Mantener visualizacin; Repeticin para todos los objetos rojos Agregar contorno al objeto Agregar marca de centro del objeto Agregar rea del objeto Setear caractersticas del contorno (posicin, color y espesor); Plotear sobre la imagen los valores de rea, posicin eje X y posicin eje Y; Establecer fuente, tamao y color de los textos; Enviar valor de rea y posicin del objeto via bluetooth al PIC;
Se agregan caractersticas a la imagen binaria como el tamao dentro de la matriz, la posicin y el contorno para luego ser utilizadas como variables. Se activa la visualizacin de las imgenes en una figura de matlab y se retiene. A continuacin, para todos los objetos detectados dentro de la imagen binaria se agrega un contorno rectangular ajustado al tamao de este, se agrega un cursor en el centro del objeto, y ese obtiene el valor escalar del rea. Luego se procede a imprimir los valores de posicin X e Y, adems del valor del rea en pantalla en tiempo real estableciendo la fuente, el tamao y el color de los textos a desplegar. Finalmente se enva el valor del rea y de la posicin X va bluetooth al mdulo HC-06 que transformara esta seal a serial para ser leda por el PIC.
Inclusin de las de la librera de cabecera del PIC 16F877A, adems del seteo de la velocidad de reloj, inclusin de la librera para controlar el dispositivo LCD donde se mostraran datos del programa. Adems se establece la tasa de transmisin en baudios que debe ser igual tanto en el dispositivo emisor como en el dispositivo receptor, adems de la resolucin en bits de la transmisin. Se establecen los pines en los cuales se realizara la transmisin y la recepcin de los datos.
Declarar variable A=char para almacenar datos; Interrupcin para recepcin de datos USART Recepcin de valor de rea y posicin va USART en variable A; Mostrar variables en LCD;
Se declara una variable tipo carcter dentro de la cual se almacenaran los datos que se reciban por el puerto USART del PIC, a continuacin se encuentra la lnea de interrupcin del programa la cual se activa cada vez que se recibe un dato por el puerto USART. Luego se transfiere la informacin capturada a la variable A la cual es mostrada por la pantalla del LCD.
Si el rea del objeto detectado es muy grande: Retroceder por 500ms; Si el rea del objeto es demasiado pequeo: Avanzar por 500ms; Fin de comparacin; Si el objeto est en el borde derecho de la imagen: Mover durante 300ms; Si no, si el objeto est en el borde izquierdo de la imagen: Mover izquierda durante 300ms;
Seccin de comparaciones, en esta parte se realizan comparaciones para actuar con respecto a la cercana, lejana y posicin horizontal del objeto, con el fin de poder seguir el objeto de determinado color de la mejor forma posible.
Inicio rutina interrupcin: Habilitar interrupcin; Setear puerto d como salida para lcd; Setear puerto b para salida actuadores; Inicializar puerto d; Inicializar puerto b; Loop mientras infinito
Seccin de la rutina de interrupcin. En esta parte del programa se realiza la parte del programa donde se establecen las configuraciones de puertos del PIC, para as controlar el LCD y las salidas digitales para mover motores desde el micro controlador, Finalizando con un loop infinito para mantener el programa en funcionamiento indefinidamente.