Вы находитесь на странице: 1из 18

Universidad TCNICA PARTICULAR DE LOJA

Escuela de electrnica y telecomunicaciones

Proyecto de Fundamentos de la Programacin


Presentacin del proyecto

Nombres y apellidos:
Mara Enid Pineda Rivas Vanessa Uchuari Katherine Llanes

Loja Ecuador 2009 - 2010

TEMA: ROBOT SEGUIDOR DE LINEA NEGRA OBJETIVOS: Construir un robot que siga una lnea negra utilizando sensores infrarrojos va puerto serial y que supere un recorrido definido en donde se encontrara son curvas, bifurcaciones y rectas: todo esto a partir de algoritmos claros, preciso, finitos. ESPECFICOS: Adicionar una especie de aleta con el fin de detectar y quitar objetos del camino con ayuda de un sensor de ultrasonido. Lograr manipular el robot en caso de bifurcaciones o manchas de modo que sea el usuario el que elija la direccin del robot Implementar algoritmos1 eficientes y claros dentro del lenguaje C++. Lograr la interaccin Usuario-PC para controlar el robot con ayuda del puerto serial HERRAMIENTAS: Hardware para su funcionamiento necesitara: Un Micro controlador PIC 16F819.- Tarjeta de control: contiene un micro controlador que se encarga de tomar el control del motor y las decisiones que debe de realizar el robot. Su cdigo debe ser escrito en lenguaje de programacin orientada a micro controlador PIC y existen varias opciones como por ejemplo: C++, phyton o java.

www.wikipedia.com/microcontroladores

Tres sensores infrarrojos detectores de lnea a 5mm del piso (QRD1114).- esta parte se encarga de detectar la lnea que debe de recorrer el robot. Al igual que el motor, existe diferentes tipos de sensores que se diferencian por su costo; los ms baratos y asequibles son los sensores infrarrojos; los cuales estn formados por un fototransistor y por un LED infrarrojo. J.E. Barco, L.E. Imbacuan, G. D.
Ordoez 1. Sensor infrarrojo

Dos motores de paso2.Un motor paso a paso (o PAP) es un dispositivo electromecnico capaz de convertir una serie de impulsos elctricos en desplazamientos angulares discretos. Esto significa que, a diferencia de un motor convencional (que gira de forma continua), es capaz de avanzar una serie de grados (o
1 2

Algoritmo.- la serie de pasos que se siguen para resolver un problema Motores de paso.- Se crey conveniente cambiar los servo motores por los motores paso a paso porque estos giran 360 mientras que los servos solo giran 180 y para que giren 360 hay que modificarlos

www.robotica.com/motor pasoapaso 1

pasos) a la vez, dependiendo del estado de sus entradas de control. Un motor paso a paso se comporta de la misma manera que un convertidor digital-analgico y puede ser gobernado por impulsos procedentes de sistemas lgicos, tales como microcontroladores u ordenadores.

1 sensor de infrasonido (para la deteccin de


objetos).- Como se ha indicado en la ilustracin, un objeto en la trayectoria de los rayos infrarrojos se reflejar la energa de infrarrojos de nuevo en la cara del mdulo detector de infrarrojos. Simplemente, a http://www.rentron.com 1 su vez en el portador de PWM, tomar el ctodo LED de baja, y muestra la salida del detector de infrarrojos. Una lgica de 0 indica que la energa de infrarrojos es sorprendente que el detector, y un objeto se encuentra en nuestro camino. Una lgica 1 en la salida de los detectores indica que no hay objeto presente para reflejar la energa de infrarrojos de nuevo en la cara del detector. Protoboard de dos regletas. Batera de 9 voltios recargable. Regulador de voltaje modelo 7805.3 1 Servomotor.- El motor del servo tiene algunos circuitos de control y un potencimetro (una resistencia variable) esta es Conectada al eje central del servo motor. Este potencimetro permite a la circuitera de control, supervisar el ngulo actual del servo motor. Si el eje est en el ngulo correcto, entonces el motor est apagado. Si el circuito chequea que el ngulo no es el correcto, el motor girar en la direccin adecuada hasta www.superrobotica.com/ Servomotor llegar al ngulo correcto. El eje del servo es capaz de llegar alrededor de los 180 grados. Normalmente, en algunos llega a los 210 grados, pero vara segn el fabricante. Un servo normal se usa para controlar un movimiento angular de entre 0 y 180 grados. Un servo normal no es mecnicamente capaz de retornar a su lugar, si hay un mayor peso que el sugerido por las especificaciones del fabricante. Software se realizara la comunicacin: PC PIC (Implementado en C++) DESCRIPCIN: Como se llevara a cabo la comunicacin Usuario-robot:
Puerto Serial

Algoritmos para controlar el robot

El ultimo numero indica la cantidad a la que convierte en este caso 5 voltios

USUARIO
Puerto serial

PC
Algoritmos de envi y recepcin

PIC
Algoritmos de control

HARDWARE

Interfaz amigable

Mdulos principales: para poder cumplir nuestros objetivos desarrollaremos los siguientes mdulos principales:

Envio-Recepcion de datos

Control de recorrido

Deteccin de obstculos

Los mdulos que se desprenden de los principales son los siguientes:

Descripcin de mdulos principales

Envio-Recepcion de archivos

Control de recorrido

Deteccin de obstculos

Cofiguracion de la comunicacin PCPIC por puerto serial

Envio-recepcion de datos y diseo interfaz amigable

Control de lnea negra

Control de Bifurcaciones y manchas

Los algoritmos secundarios han sido divididos como describimos anteriormente para que haya una mejor comprensin de los mismos, a continuacin se detallara los mdulos secundarios. Descripcin del primer modulo principal: Configuracin del PC y del puerto serial Envi y recepcin de datos Diseo de la interfaz amigable

Solo se crey conveniente hacer 2 flujo gramas


Inicio (Configuracion del puerto serial)

Inicializacin de variables ruta=1 //significa que esta en la ruta correcta variables :bandera //respuesta si hay o no comunicacion COM1 (PC)

Mientras {bandera =ERROR} Hacer

abrir COM1 bandera =OK

configurar comunicacion del COM1 mediante el puerto serial: velocidad = 9600 bandios (bits/s) nmero de bit = 8 bits de parada = 1 control de flujo = OFF Pariedad ninguna

Fin

Inicio(Desarrollo_interfazamigable_interraccion_PCUsuario(tramsmicion de ordenes)

constantes derecha, izquierda, delante, atras, salir variable rta

Inicializar modo grfico

Llamar a GUI (biblioteca grafica de C++) Detectar posicin del MOUSE Ir a cordenadas de flecha izquierda Trazar cuadro Pintarlo guardar en variable izquierda Ir a cordenadas de flecha derecha Trazar cuadro Pintarlo Guardar en variable derecha Ir a cordenadas de flecha adelante Trazar cuadro Pintarlo Guardar en variable adelante Ir a cordenadas de flecha atras Trazar cuadro Pintarlo Guardar en variable atras Ir a cordenadas de flecha salir Trazar cuadro Pintarlo Guardar en variable Salir

Transmitir la orden por puerto serial: //Interaccion PC-usuario Compracin con constantes

Si {hay click } Entonces Si

Guardar en variable rta posicin (x,y)

Ir a control de linea recta

De otro modo

Segun {rta} Hacer

1. izquierda

2. derecha

3. atras

envie orden girar izquierda

envie orden girar derecha

envie orden ir atras

Fin

Descripcin del segundo modulo principal: Control del recorrido en lnea recta y curvas Deteccin de bifurcaciones y machas

Inicio (Control de desplazamiento de lnea recta)

Verificar sensores de reflexion infraroja Estados de los sensores Estado1="Bajo"=0 Estado2="alto"=1 Posisionar motores paso a paso (m1 y m2) en posicion ideal (linea recta) Inicializacion de sensores: s1=derecha s3=izquierda s2=central m1=motor derecho m2=motor izquierdo

Mientras {s1==1} Hacer

m2=prendido m1=apagado

Mientras {s2==1} Hacer

m1=prendido m2=prendido

Mientras {s3==1} Hacer

m1=prendido m2=apagado

Fin

Inicio (Para detectar bifurcaciones)

Verificar motores m1, m2

Si no Ir a control de linea recta

Si (s1==1 y s2==1 y s3==1) entonces

Si

Esperar dato de COM 1

P Preguntar al usuario su direccion

Repetir

Leer respuesta

Segn (respuesta) hacer

Caso1. (derecha)

Caso2. (adelante o atrs)

Caso 3 (izquierda)

m2=prendido m1=apagado

m2=prendido m1= prendido

m1=prendido m2=apagado

Mientras (s1==1 y s2==1 y s3==1) entonces

Fin

Descripcin del tercer modulo principal: Deteccin de objetos


Inicio (Deteccin de objetos)

sensor ultrasonido =s4 Estados de deteccion: S4=1 (objeto detectado) S4=0 (no detectado) Inicializar variable del servomotor m3

Mientras Si (s4=1) hacer Si activar m3 hasta quitar objeto regresar a posicion inicial

DESCRIPICION DE SU FUNCIONAMIENTO En cuanto al recorrido todo el recorrido que hace el robot4 es dirigido por los sensores; los cuales rastrean la lnea negra del suelo. Los rastreadores suelen tener ms de 2 sensores (en nuestro caso tres) los cuales estn localizados en la parte inferior del robot a 5mm del suelo. Estos sensores trabajan de una forma muy peculiar: cuando uno de los sensores detecta el color blanco significa que la estructura se est saliendo de la lnea negra, cuando esto ocurre los sensores mandan pulsos elctricos al PIC el cual despus de una conversin analgica y por medio del lenguaje detecta la seal y enva ordenes a los motores paso a paso para que corrijan su curso y vuelvan a la trayectoria deseada esto generalmente sucede en las curvas, adems se deber destacar que cuando este en el curso correcto el sensor central estar sensando. En cuanto a las manchas: cuando el robot llegue a la mancha los tres sensores estarn sensando y el usuario por medio de la interfaz amigable le podr guiar por donde debe desplazarse todo esto dentro de la mancha. En cuanto a las bifurcaciones: es un procedimiento similar al de las manchas el usuario tiene total control sobre el robot. Cabe destacar que esto solo sucede en bifurcaciones y
4

Robot, mquina controlada por ordenador y programada para moverse, manipular objetos y realizar trabajos a la vez que interacciona con su entorno.

manchas; en lneas rectas si intentamos desviarlo no lo conseguiremos porque dejara de ser un seguidor de lnea negra. En cuanto a la deteccin de objetos: para lograr la deteccin se usara un sensor ultrasonido que tiene 4 patillas cuando el robot est en marcha, este sensor por medio de la reflexin de ondas de sonido detecta el objeto la distancia a la que detectara los objetos deber ser calibrada y puede ser de 3cm a 5cm, cuando esto sucede se le enva la orden al servo motor que gire 180 y luego regrese a la posicin inicial de este modo se quitaran los objetos u obstculos, los servos se activan por medio de pulsos si le da el mximo pulso gira los 180 y para que regrese a su posicin inicial es algo similar. Desarrollo de algoritmos Solo se detallaran los subprogramas, la razn de hacer algoritmos y flujo gramas es porque los flujo gramas son ms sencillos de entender, pero los algoritmos son ms fciles de traducir a lenguaje de alto nivel. Primer modulo: se detallaran dos subprogramas Primero: 1. 2. 3. 4. 5. Proceso envio-recepcin de PIC <-> PC Inicializacin de variables ruta=1 //significa que esta en la ruta correcta variables :bandera //respuesta si hay o no comunicacion COM1 (PC) Mientras {bandera =ERROR} Hacer { abrir COM1 bandera =OK } 6. FinMientras configurar comunicacion del COM1 mediante el puerto serial: velocidad = 9600 bandios (bits/s) nmero de bit = 8 bits de parada = 1 control de flujo = OFF Pariedad ninguna //comprobacion de que es correcto el dato recido o //enviado va al final de los bits y luego el bit de parada 7. FinProceso

Segundo: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Proceso Desarrollo_interfazamigable_interraccion_PC-Usuario(tramsmicion de ordenes) constantes derecha, izquierda, delante, atras, salir variable rta Inicializar modo grfico Llamar a GUI (biblioteca grafica de C++) Detectar posicin del MOUSE Ir a coordenadas de flecha izquierda Trazar cuadro Pintarlo guardar en variable izquierda Ir a coordenadas de flecha derecha Trazar cuadro Pintarlo Guardar en variable derecha Ir a coordenadas de flecha adelante Trazar cuadro Pintarlo Guardar en variable adelante Ir a coordenadas de flecha atrs Trazar cuadro Pintarlo Guardar en variable atrs Ir a coordenadas de flecha salir Trazar cuadro Pintarlo Guardar en variable Salir Transmitir la orden por puerto serial: //Interaccin PC-usuario Comparacin con constantes Si (hay click ) Entonces { Guardar en variable rta posicin (x,y) } 30. FinSi 31. Segun (rta) Hacer { 1. izquierda envie orden girar izquierda } { 2. derecha envie orden girar derecha

} { 3. atras envie orden ir atras } De Otro Modo: { Ir a control de linea recta } 32. FinSegun 33. FinProceso Segundo modulo principal: son dos submdulos Primero: //Programa para el control del desplazamiento en la lnea negra 1. Proceso 2. Verificar sensores de reflexin infrarroja 3. Estados de los sensores 4. Estado1="Bajo"=0 5. Estado2="alto"=1 6. Posicionar motores paso a paso (m1 y m2) en posicin ideal (lnea recta) 7. Inicializacin de sensores 8. s1=derecha 9. s3=izquierda 10. s2=central 11. m1=motor derecho 12. m2=motor izquierdo 13. Mientras (s1==1) Hacer { m2=prendido m1=apagado } 14. Finmientras 15. Mientras (s3==1) Hacer { m1=prendido m2=apagado } 16. FinMientras 17. Mientras (s2==1) Hacer { m2=prendido

m1=prendido } FinMientras Fin Proceso

18. 19. Segundo: 1. 2. 3. 4. 5.

6. 7. 8. 9. 10.

Proceso detectar_bifurcaciones Verificar motores m1 y m2 m1=derecho m2=izquierdo Si {s1==1 y s2=1 y s3==1} Entonces { Esperar dato de COM 1 } Sino { ir a control de lnea recta FinSi Repetir { Preguntar al usuario direccin Leer respuesta Segn (respuesta) Hacer Caso 1. ("derecha"): { m2=prendido m1=apagado } Caso 2. ("izquierda"): { m1=prendido m2=apagado } Caso 3. (adelante o atrs) { m1=prendido m2=prendido }

11. FinSegun 12. Mientras (s1=1 y s2=1 y s3=1)

13. FinProceso Tercer modulo principal: referente a la deteccin de objetos 1. 2. 3. 4. 5. 6. 7. Proceso deteccion_de_obstaculos sensor ultrasonido =s4 Estados de deteccion: S4=1 (objeto detectado) S4=0 (no detectado) Inicializar variable del servomotor m3 mientras (s4=1)hacer activar m3 hasta quitar objeto regresar a posicion inicial 8. Fin mientras 9. FinProceso

Proyecto integrador de un seguidor de lnea y detector de objetos. Proyecto de la universidad de Santo Tomas. Ao 2006

METODOLOGIA La primera fase de la resolucin de un proyecto es el anlisis del problema o lo que es lo mismo la eleccin de un tema. Esta fase requiere una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada en nuestro caso es la resolucin del robot seguidor de una lnea negra en donde hay que analizar el algoritmo e implementarlo a lenguaje de alto nivel.

Los mtodos ms eficaces para el proceso de diseo se basan en el conocido mtodo: divide y vencers, es decir la resolucin de un problema complejo se realiza dividiendo el problema en subproblemas y dividir estos subproblemas en otros de nivel ms bajo, hasta que pueda ser implementada una solucin en la computadora. Este mtodo se conoce tcnicamente como diseo modular. Nuestro proyecto tendr un programa bien diseado que tendr un modulo principal y de este se desprenden los subprogramas (mdulos de nivel ms bajo) que a su vez pueden llamar a otros subprogramas dependiendo de las necesidades. El mtodo a usar en el proyecto es el cientfico-experimental 5 La razn de utilizar el mtodo cientfico es porque en la robtica y la programacin se debe conocer y definir los conceptos cientficos como por ejemplo: que es un diodo, PIC, sensores, servos, transistores, resistores y condensadores. Adems debemos tener claro lo que es la microelectrnica y la programacin; adems se usa la observacin como principal medio para resolver las inquietudes y dudas que se presentan en la elaboracin del proyecto. El experimental porque para poder elaborar el proyecto hay que realizar varias experiencias para ir perfeccionando el modelo hasta que cumpla las necesidades del usuario. A continuacin detallaremos las herramientas que vamos a usar en las fases de resolucin: La prueba de ejecucin manual para ver si el algoritmo es consistente Comprobar si los mdulos estn bien estructurados, subdivididos y si son eficientes finitos y claros

Del anlisis de Algoritmos

Fases de Comprobacin Para El programa Una vez hecho el robot probar si los algoritmos logran que haga la tarea y si su masa y velocidad influyen de alguna manera o si son despreciables

Por el mtodo paso a paso el proyecto tendr las siguientes fases principales: Primero elaborar el proyecto u informe Luego realizarlo construirlo con todas las indicaciones especificadas Probar si es efectivo y si sus algoritmos son los ms ptimos para su resolucin
5

Mtodo cientfico, mtodo de estudio sistemtico de la naturaleza que incluye las tcnicas de observacin, reglas para el razonamiento y la prediccin, ideas sobre la experimentacin planificada y los modos de comunicar los resultados experimentales y tericos.

ALCANCE Y RESULTADOS ESPERADOS: El propsito del proyecto es lograr que un robot seguidor de lnea negra sigua una trayectoria trazada anteriormente en la que haya algunas situaciones en las que el robot interactu con el usuario para recibir rdenes directas de l y as superar situaciones como bifurcaciones y manchas. En otras situaciones tendr que corregir su curso para no salirse del camino haciendo uso de sus sensores y la habilidad proporcionada al PIC para que con la mayor precisin le diga exactamente lo que deben corregir a los motores paso a paso para volver a la posicin normal, esto generalmente sucede en las curvas. Cabe recalcar que una de nuestras metas es poder mejorar nuestro proyecto adicionndole un pequeo brazo capas de quitar objetos del camino que estn siendo obstculo en su trayectoria este tendr adicionado otro motor, una especie de aleta que servir para quitar objetos La lnea que deber seguir es de un ancho 2cm y funcionara con 5voltios, 3 sensores uno derecho e izquierdo y uno central, dos motores paso a paso para cada extremo un servo para la aleta con la que deshar de obstculos los mismos que sern detectados por un sensor ultrasonido que reconocer los objetos a una distancia determinada que puede ser de 2 a 5cm esto ser calibrado con anterioridad y se elegir la distancia ms apropiada. LIMITACIONES: El robot solo se guiara con rdenes directas del usuario transmitidas por el puerto serial en bifurcaciones y manchas donde por s mismo no puede elegir su trayectoria, las mismas que sern pedidas por el robot oportunamente. Quitar objetos de su camino es algo que lo har automticamente sin dejar participar al usuario, adems si el robot estando en una lnea recta recibe rdenes de desviarse no lo har porque es un seguidor de lnea negra y se desviara de nuestros objetivos BIBLIOGRAFA: [1]www.conocimientoenlinea.com/index.php?option=content&task=view&id=771http://a rticulo.mercadolibre.com.mx/MLM-29976788-proyectos-electronicos-microcontroladorpic-asesoria-diseno-_JM [2]Morgan Garavito Vsquez - mor6an1@hotmail.com Edwin Gonzales querubn Wilmer yesid granados Facultad: Ing. Mecatronica Universidad santo tomas Bucaramanga 2006 Proyecto integrador Robot seguidor de lnea con reconocimiento de objetos y Reconocimiento de espacios Presentado a: Ing. Juan Carlos Villamizar. Asignatura: Robtica II Universidad santo tomas Bucaramanga 2006 [3]J.E. Barco, L.E. Imbacuan, G. D. Ordoez, Universidad de Nario/ construccin de un Robot
seguidor de lnea

[4]Revista de electrnica y computadores /PUBLICACINES CEKIT /pagina 13 /Impresa en Colombia [5]Nell Dale universidad de Texas /Programacin y resolucin de problemas con C++/pgina 4/Impreso en Mxico [6]Nell Dale /Fundamentos de la programacin/pgina 42/Impreso en Mxico

Вам также может понравиться