Guia Robot Movil Seguidor de Linea

download Guia Robot Movil Seguidor de Linea

of 30

Transcript of Guia Robot Movil Seguidor de Linea

  • UNIVERSIDAD VERACRUZANA FACULTAD DE INGENIERA

    CIUDAD MENDOZA, VER.

    Octubre 2013

  • CONTENIDO PRESENTACIN ................................................................................................................................... 3

    1. CONFIGURACIN DIFERENCIAL ....................................................................................................... 4

    2. MOTORES ........................................................................................................................................ 4

    3. RUEDA LOCA ................................................................................................................................... 5

    4. SENSORES ........................................................................................................................................ 6

    5. ESTRATEGIA BSICA DE CONTROL .................................................................................................. 9

    5.1 LNEA RECTA ............................................................................................................................ 10

    5.2 CURVA IZQUIERDA .................................................................................................................. 10

    5.3 CURVA DERECHA ..................................................................................................................... 11

    6. CONTROL DEL ROBOT MVIL ........................................................................................................ 12

    6.1 CONTROL MEDIANTE MICROCONTROLADORES ..................................................................... 12

    6.1.1 DIAGRAMA DE FLUJO ....................................................................................................... 14

    6.1.2 PROGRAMACIN DEL PIC ................................................................................................. 15

    6.1.2.1 PROGRAMACIN EN LENGUAJE C ............................................................................. 15

    6.1.2.2 PROGRAMACIN EN LENGUAJE ENSAMBLADOR ...................................................... 17

    6.1.2.3 GRABAR PROGRAMA EN EL PIC ................................................................................. 19

    6.1.3 PROGRAMACIN DEL ARDUINO UNO .............................................................................. 22

    6.1.3.1 GRABAR PROGRAMA EN ARDUINO UNO .................................................................. 24

    6.2 CONTROL MEDIANTE COMPUERTAS LGICAS ........................................................................ 25

    7. ALIMENTACIN DEL ROBOT MVIL .............................................................................................. 29

    REFERENCIAS ..................................................................................................................................... 30

  • PRESENTACIN La presente gua ha sido elaborada con la finalidad de servir como documento de apoyo para que los participantes del Primer concurso de robots mviles seguidores de lnea 2013 puedan desarrollar sus proyectos, contando con los elementos mnimos tericos para su desarrollo. En la gua se presenta un robot mvil seguidor de lnea de configuracin diferencial. El robot mvil emplea dos sensores CNY70 configurados para detectar el color negro y con base en esta informacin, decidir la accin de maniobra adecuada para seguir una lnea negra sobre fondo blanco. La estrategia de control presentada para el robot mvil es muy sencilla y esta se aplica para el control del robot mediante los microcontroladores PIC y Arduino, y tambin para las compuertas lgicas. De esta manera, se dan a los participantes diferentes opciones para que desarrollen el control de su robot mvil seguidor de lnea. Los equipos participantes tienen la completa libertad de utilizar los programas presentados en esta gua, modificarlos o mejorarlos, para hacer ms inteligente a su robot mvil. Tal como lo indican las bases de la convocatoria de este concurso, los equipos participantes tienen la libertad de elegir la cantidad de sensores a utilizar, sin embargo los sensores slo pueden ser CNY70. Por otro lado, la configuracin del robot slo puede ser la configuracin diferencial. El tamao de las ruedas y el tamao del robot queda a eleccin de los equipos participantes. La alimentacin del robot mvil debe ser a 5V para todo el sistema, segn se indica en las bases del concurso. Para ello se utilizarn 4 pilas AA de la marca duracell, conectadas en serie, dando como resultado un voltaje de 6V. Este voltaje debe bajarse a 5V mediante un regulador de voltaje. Al final de esta gua se explica cmo se realiza la regulacin de voltaje. Es muy importante que los equipos participantes respeten las bases del concurso, de lo contrario no ser vlida su participacin. Por ltimo, agradecemos enormemente a todos los participantes en este concurso, pues estamos seguros que gracias a su entusiasmo el evento resultar todo un xito.

    Atentamente

    Miembros del cuerpo acadmico UV-CA-318

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    1. CONFIGURACIN DIFERENCIAL

    El robot mvil de configuracin diferencial posee dos ruedas colocadas en un eje comn, donde cada rueda se controla de forma independiente. Los movimientos posibles de este tipo de robot mvil son:

    Lnea Recta En arco Giro sobre su propio eje

    Para mantener el balance, este robot mvil requiere de una o dos ruedas adicionales (ruedas locas). As, para un mvil con tres ruedas se dice que estn dispuestas en forma de tringulo, mientras que para un mvil con cuatro ruedas se dice que estn dispuestas en forma de diamante. Puesto que los robots mviles de configuracin diferencial mueven sus dos ruedas de forma independiente, es necesario que cada rueda est conectada a un motor. En la figura 1a se observa un mvil de configuracin diferencial con tres ruedas y la figura 1b muestra uno de cuatro ruedas.

    Figura 1. Robot mvil de configuracin diferencial. a) tres ruedas, b) cuatro ruedas.

    2. MOTORES Los motores empleados para los robots mviles son generalmente de corriente directa. Los motores de CD por s solos no tienen el torque suficiente para mover la estructura del robot mvil. Por otro lado, los motores de CD son normalmente ms veloces de lo que requiere un robot mvil. Por ello, es necesario que se conecte un tren de engranes a los motores para reducir su velocidad a una magnitud ms favorable, a la vez que se incrementa el torque de dichos motores.

    Los participantes debern elegir un tren de engranes que les brinden la reduccin de velocidad adecuada. Existen en el mercado motores que ya traen acoplados un tren de engranes, con distintas relaciones de velocidad como 100:1, 131:1, 120:1, 30:1, 180:1,

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    280:1, 131:1. En la figura 2 se muestran algunos ejemplos de motores de CD con diferentes reductores de velocidad.

    Figura 2. Motores de corriente directa con diferentes trenes de engranes.

    En la figura 3 se muestra un ejemplo de un motor CD con su reductor, en acoplamiento con su rueda correspondiente.

    Figura 3. Motor de CD acoplado a rueda.

    3. RUEDA LOCA Ya se mencion que los robots mviles de configuracin diferencial requieren de una o dos ruedas cuya nica funcin es mantener su balance. A estas ruedas se les llama ruedas locas. En la figura 4 se muestran algunos ejemplos de una rueda loca.

    Figura 4. Ejemplos de rueda locas.

    Tambin se puede obtener una rueda loca de manera sencilla, utilizando un desecho de algn desodorante con roll on. En la figura 5 se muestra un ejemplo de ello.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Figura 5. Rueda loca que se puede obtener de un desodorante roll on.

    4. SENSORES Para que el robot mvil sea capaz de seguir una lnea, en el Primer concurso de robots mviles seguidores de lnea 2013 se ha determinado que los participantes utilicen nicamente los sensores CNY70, los cuales sern capaces de diferenciar dos colores, negro y blanco. El CNY70 es un sensor ptico reflectivo con salida a transistor. En la figura 6 se muestran los detalles de este sensor. Para ms detalles del funcionamiento del sensor, se recomienda leer (Vishay Semiconductor GmbH, 2000).

    Figura 6. Sensor CNY70.

    El sensor CNY70 puede configurarse para trabajar en modo digital, empleando un circuito electrnico que utiliza al amplificador operacional LM358N y un preset o potencimetro (resistencia variable). El amplificador trabaja como comparador en este circuito y el potencimetro trabaja como divisor de tensin. Para conocer ms a fondo el funcionamiento del circuito electrnico se recomienda leer (Palacios, Remiro, & Lpez, 2004).

    En la figura 7 se muestra el circuito electrnico para configurar el sensor CNY70 como detector de color blanco. Si la tensin en la entrada no inversora del amplificador operacional es mayor que la tensin que hay en la entrada de inversin, entonces la salida del amplificador operacional LM358N se pone a 1 (en presencia de color blanco), de lo contrario las salida se pone a 0 (en presencia de color negro).

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Figura 7. Circuito electrnico del sensor CNY70 para detectar color blanco.

    En la figura 8 se muestra la implementacin en protoboard del circuito del sensor CNY70 configurado para detectar color blanco. En este circuito se conect un led a la salida del amplificador operacional LM358N para comprobar su funcionamiento.

    Figura 8. Sensor CNY70 configurado para detectar color blanco.

    El sensor CNY70 tambin se puede configurar para que detecte el color negro. En la figura 9 se muestra este circuito electrnico, en el cual la salida del amplificador operacional LM358N se pone a 1 en presencia de color negro, mientras que se pone a 0 en presencia de color blanco.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Figura 9. Circuito electrnico del sensor CNY70 para detectar color negro.

    En la figura 10 se muestra la implementacin en protoboard del circuito del sensor CNY70 configurado para detectar color negro.

    Figura 10. Sensor CNY70 configurado para detectar color negro.

    Los equipos participantes en este concurso pueden elegir cualquiera de las dos configuraciones presentadas para trabajar con el sensor CNY70. En el CD de informacin hay un video que demuestra el funcionamiento del sensor CNY70, configurado para detectar el color negro.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    En las bases de la convocatoria presentada para este concurso se mencion que los participantes tienen la completa libertad de elegir el nmero de sensores que utilizar su robot mvil. As, los participantes pueden emplear alguna de las configuraciones de sensores mostradas en la figura 11, u otras distintas a las presentadas. Lo importante es que los participantes realicen un balance entre la complejidad de la configuracin elegida y la efectividad del robot mvil al seguir la lnea.

    a) b) c)

    d) e) f)

    Figura 11. Distintas configuraciones de sensores para el robot mvil. Enseguida se presenta la lista de componentes requeridos para configurar 2 sensores CNY70.

    CANTIDAD COMPONENTE 2 Sensor ptico CNY70 1 Amplificador operacional LM358N 2 Resistencia de 220 2 Resistencia de 18 k 2 Resistencia variable (potencimetro, preset) de 10 k

    5. ESTRATEGIA BSICA DE CONTROL En seguida se presenta, a manera de ejemplo, una estrategia bsica para el seguimiento de una lnea negra sobre fondo blanco. Los participantes pueden desarrollar su propia estrategia de control para participar en el concurso.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    La estrategia que se presenta a continuacin toma como base a un robot mvil de configuracin diferencial con dos sensores colocados como se muestra en la figura 11a. Adems se considerar que los sensores estn configurados para detectar el color negro (la salida del sensor se pone a 1 en presencia del color negro). Bajo estas condiciones, se presentan tres situaciones posibles con las que se enfrenta el robot mvil para pueda seguir una lnea negra sobre fondo blanco, las cuales se presentan a continuacin. 5.1 LNEA RECTA En la figura 12 se presenta la situacin en la que el robot mvil se encuentra ante una lnea recta. Cuando esto ocurre ambos sensores tienen salida 0 y se toma la decisin de hacer que ambos motores giren para hacer que el robot mvil avance.

    Figura 12. Robot mvil avanzando en lnea recta.

    5.2 CURVA IZQUIERDA En la figura 13 se presenta la situacin en la que el robot mvil se encuentra ante una curva izquierda. Cuando esto ocurre el sensor izquierdo tiene salida 1, mientras que el sensor derecho tiene salida 0. Bajo esta condicin, se toma la decisin de hacer girar el motor izquierdo en reversa y al motor derecho que gire en avance. De esta manera se logra que el robot mvil gire hacia la izquierda.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Figura 13. Robot mvil girando hacia la izquierda.

    5.3 CURVA DERECHA En la figura 14 se presenta la situacin en la que el robot mvil se encuentra ante una curva derecha. Cuando esto ocurre el sensor izquierdo tiene salida 0, mientras que el sensor derecho tiene salida 1. Bajo esta condicin, se toma la decisin de hacer girar el motor izquierdo en avance y al motor derecho que gire en reversa. De esta manera se consigue que el robot mvil gire hacia la derecha.

    Figura 14. Robot mvil girando hacia la derecha.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Por ltimo, se hace notar que no se considera una cuarta posibilidad en la que ambos sensores detecten el color negro al mismo tiempo. Esta posibilidad est excluida en el algoritmo de control propuesto, sin embargo los participantes pueden agregar esta posibilidad y decidir qu har el robot mvil ante esta situacin (por ejemplo parar, seguir, o ir en reversa). 6. CONTROL DEL ROBOT MVIL Para poner en prctica la estrategia de control planteada en la seccin anterior, enseguida se presentan dos controles: control mediante microcontroladores y control mediante compuertas lgicas. Los ejemplos de control que se presentarn corresponden controlarn el robot mvil descrito en la seccin 5. 6.1 CONTROL MEDIANTE MICROCONTROLADORES En la presente convocatoria de robots mviles seguidores de lnea se ha planteado que los participantes pueden emplear dos tipos de microcontroladores, que son: PIC y Arduino. Enseguida se presenta un ejemplo del control de un robot mvil mediante estos microcontroladores. 6.1.1 CONTROL MEDIANTE PIC En esta seccin se presenta el ejemplo de control del robot mvil mediante el microcontrolador PIC de la marca Microchip. El microcontrolador que se utilizar para este ejemplo es el microcontrolador PIC16F84A. Los datos tcnicos de este microcontrolador se encuentran en (Microchip Technology Inc., 2001). En la seccin 4 se present la lista de componentes requeridos para configurar 2 sensores CNY70. Ahora se muestra la lista de componentes adicionales requeridos para realizar el control del robot mvil.

    CANTIDAD COMPONENTE 1 Microcontrolador PIC16F84A 1 Driver L293B 1 Oscilador de 4MHz 1 Resistencia de 10 k 2 Capacitores de 27 pF (pueden ser de 22 nF a 33 nF) 2 Capacitores de 100 nF 2 Motores de CD

    Enseguida se presenta un diagrama electrnico de conexiones para el control del robot mvil mediante el PIC16F84A. Los participantes del concurso pueden elegir distintas

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    entradas y salidas para controlar su robot mvil, as como otro modelo de microcontrolador PIC, si as lo desean.

    Figura 15. Circuito electrnico para el control del robot mvil mediante el PIC16F84A.

    En la figura 5 los nmeros de pines de las conexiones realizadas en el PIC16F84A y en el integrado L293B no se ven muy bien, por ello se presentan enseguida ambos componentes para que se puedan observar las numeraciones de sus pines.

    a) b) Figura 16. Pines del microcontrolador PIC16F84A. a) Esquema, b) integrado.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    a) b)

    Figura 17. Pines del Driver L293B. a) Esquema, b) integrado.

    En este punto, se debe hacer notar que para accionar los motores de CD es necesario incorporar un driver L293B, el cual se encargar de suministrar la corriente necesaria requerida por los motores de CD (hasta 1A), ya que las salidas de cada pin del microcontrolador no pueden exceder los 20mA, lo cual no es suficiente para hacer funcionar directamente a los motores. 6.1.1 DIAGRAMA DE FLUJO En la seccin 5 se describi la estrategia de control a seguir. Enseguida, en la figura 18 se presenta el diagrama de flujo que realiza dicha estrategia.

    Figura 18. Diagrama de flujo de la estrategia de control.

    RA2==0 y RA3==0?

    S.I. Sensor izquierdo (Entrada RA2) S.D. Sensor derecho (Entrada RA3) M.I. Motor izquierdo (Salidas RB0 y RB1) M.D. Motor derecho (Salidas RB3 y RB4)

    (M.I. en avance) Salida RB0 = 1; Salida RB1= 0;

    (M.D. en avance) Salida RB3 = 1; Salida RB4= 0;

    RA2==1 y RA3==0?

    (M.I. en reversa) Salida RB0 = 0; Salida RB1= 1;

    (M.D. en avance) Salida RB3 = 1; Salida RB4= 0;

    RA2==0 y RA3==1?

    (M.I. en avance) Salida RB0 = 1; Salida RB1= 0;

    (M.D. en reversa) Salida RB3 = 0; Salida RB4= 1;

    Inicio

    SI SI SI NO NO NO

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    En el diagrama de flujo se observa que se debe cumplir una de las tres condiciones posibles planteadas en la estrategia de control, es decir: lnea recta, curva izquierda y curva derecha. Para ello, se considera el estado de los dos sensores pticos CNY70. Puede observarse tambin que para accionar los motores de CD en alguna direccin es necesario activar dos salidas. Por ejemplo, para que el motor de CD que acciona la rueda izquierda gire en avance la salida RB0 se pone a 1 y la salida RB1 se pone 0. Para hacerlo girar en reversa se debern invertir las salidas, es decir, la salida RB0 se pone a 0 y la salida RB1 se pone a 1. Cumplida cualquiera de las tres condiciones y ejecutada la orden de accionamiento de los motores, se observa en el diagrama de flujo que se regresar nuevamente a preguntar por el estado de los sensores CNY70, este proceso se repite de manera indefinida. 6.1.2 PROGRAMACIN DEL PIC Existen diferentes lenguajes para programar los microcontroladores PIC como el lenguaje ensamblador, el lenguaje C y PBasic, por mencionar algunos. Enseguida se presenta la programacin del robot mvil empleando el lenguaje C y el lenguaje ensamblador. 6.1.2.1 PROGRAMACIN EN LENGUAJE C Para programar el microcontrolador PIC en lenguaje C se utiliza el compilador llamado PCW, de la empresa CCS. Este compilador es uno de los ms utilizados para la programacin de PICs en la actualidad. En la figura 19 se presenta una imagen de la ventana de trabajo de este compilador.

    Figura 19. Ventana de trabajo del compilador PCW.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Enseguida se presenta el listado completo del programa realizado en el compilador PCW. En el CD de informacin hay una carpeta llamada programa robot movil en PCW, la cual incluye el proyecto completo. // Programa para robot mvil seguidor de lnea negra sobre fondo blanco // Sensores CNY70 configurados para detectar el color negro // RA2=A2=SENSOR IZQUIERDO RA3=A3=SENSOR DERECHO // RB0=B0 y RB1=B1 SALIDAS PARA ACCIONAMIENTO DE MOTOR IZQUIERDO // RB3=B3 y RB4=B4 SALIDAS PARA ACCIONAMIENTO DE MOTOR DERECHO #include // Se incluyen las definiciones de registros del PIC a utilizar #FUSES NOWDT // Se deshabilita el Watch Dog Timer #FUSES XT // Definicin del oscilador a utilizar (cristal de cuarzo de 4MHz) #FUSES NOPUT // Se deshabilita el Power Up Timer #FUSES NOPROTECT // Sin proteccin de lectura para el cdigo #use delay(clock=4000000) // Se indica la frecuencia de trabajo a 4MHz #use fast_io(A) // Configuracin rpida del puerto A #use fast_io(B) // Configuracin rpida del puerto B void main() { set_tris_a(0xFF); // Se configura todo el puerto A como entradas set_tris_b(0x00); // Se configura todo el puerto B como salidas while (true){ // LINEA RECTA? if (input(PIN_A2)==0 & input(PIN_A3)==0){ // MOTOR IZQUIERDO EN AVANCE output_high(PIN_B0); //RB0=1 output_low(PIN_B1); //RB1=0 // MOTOR DERECHO EN AVANCE output_high(PIN_B3); //RB3=1 output_low(PIN_B4); //RB4=0 } // CURVA IZQUIERDA? else if (input(PIN_A2)==1 & input(PIN_A3)==0){ // MOTOR IZQUIERDO EN REVERSA output_low(PIN_B0); //RB0=0 output_high(PIN_B1); //RB1=1 // MOTOR DERECHO EN AVANCE output_high(PIN_B3); //RB3=1 output_low(PIN_B4); //RB4=0 } // CURVA DERECHA?

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    else if (input(PIN_A2)==0 & input(PIN_A3)==1){ // MOTOR IZQUIERDO EN AVANCE output_high(PIN_B0); //RB0=1 output_low(PIN_B1); //RB1=0 // MOTOR DERECHO EN REVERSA output_low(PIN_B3); //RB3=0 output_high(PIN_B4); //RB4=1 } } } 6.1.2.2 PROGRAMACIN EN LENGUAJE ENSAMBLADOR Para programar el microcontrolador PIC en lenguaje ensamblador se utiliza el compilador llamado MPLAB, de la empresa Microchip. En la figura 20 se presenta una imagen de la ventana de trabajo de este compilador.

    Figura 20. Ventana de trabajo del compilador MPLAB.

    Enseguida se presenta el listado completo del programa realizado en el compilador MPLAB. En el CD de informacin hay una carpeta llamada programa robot movil en MPLAB, la cual incluye el proyecto completo. ;Programa para robot mvil seguidor de lnea negra sobre fondo blanco ;Sensores CNY70 configurados para detectar el color negro ;RA2=SENSOR IZQUIERDO RA3=SENSOR DERECHO ;RB0 y RB1 SALIDAS PARA ACCIONAMIENTO DE MOTOR IZQUIERDO

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    ;RB3 y RB4 SALIDAS PARA ACCIONAMIENTO DE MOTOR DERECHO __CONFIG _CP_OFF&_WDT_OFF&_PWRTE_OFF&_XT_OSC ;CONFIGURACIN DEL PIC LIST P=16F84A ;Se indica el PIC a utilizar INCLUDE ;Se incluyen las definiciones del PIC CBLOCK 0x0C ;Se indica la direccin de registro inicial para almacenar las variables DREC ;Almacenar en memoria DREC = Lnea recta DIZQ ;Almacenar en memoria DIZQ = Curva izquierda DDER ;Almacenar en memoria DDER = Curva derecha ENDC ORG 0 ;El programa comienza en la direccin 0 GOTO INICIO INICIO BSF STATUS,RP0 ;Acceso al Banco 1 del PIC para configuracin MOVLW b'11111111' MOVWF TRISA ;Se configura el Puerto A como entradas MOVLW b'00000000' MOVWF TRISB ;Se configura el puerto B como salidas BCF STATUS,RP0 ;Acceso al Banco 0 del PIC MOVLW b'00000000' MOVWF DREC ;Se define la condicin de Lnea recta (RA2=0, RA3=0) MOVLW b'00000100' MOVWF DIZQ ;Se define la condicin de curva izquierda (RA2=1, RA3=0) MOVLW b'00001000' MOVWF DDER ;Se define la condicin de curva derecha (RA2=0, RA3=1) ANDLW b'00000000' XORWF DREC,W ;RA2=0 y RA3=0? (lnea recta) BTFSC STATUS,Z ;Si la condicin se cumple GOTO RECTA ;Se indica que se ejecute la tarea RECTA MOVF PORTA,W ;Se lee el puerto A ANDLW b'00000100'

    XORWF DIZQ,W ;RA2=1 y RA3=0? (curva izquierda) BTFSC STATUS,Z ;Si la condicin se cumple GOTO IZQUIERDA ;Se indica que se ejecute la tarea IZQUIERDA MOVF PORTA,W ;Se lee el puerto A ANDLW b'00001000' XORWF DDER,W ;RA2=0 y RA3=1? (curva derecha) BTFSC STATUS,Z ;Si la condicin se cumple GOTO DERECHA ;Se indica que se ejecute la tarea DERECHA RECTA ;Motor izquierdo en avance bsf PORTB,0 ; RB0=1 bcf PORTB,1 ; RB1=0 ;Motor derecho en avance bsf PORTB,3 ; RB3=1

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    bcf PORTB,4 ; RB4=0 GOTO PRINCIPAL IZQUIERDA ;Motor izquierdo en reversa bcf PORTB,0 ; RB0=0 bsf PORTB,1 ; RB1=1 ; motor derecho en avance bsf PORTB,3 ; RB3=1 bcf PORTB,4 ; RB4=0 GOTO PRINCIPAL DERECHA ; motor izquierdo en avance bsf PORTB,0 ; RB0=1 bcf PORTB,1 ; RB1=0 ; motor derecho en reversa bcf PORTB,3 ; RB3=0 bsf PORTB,4 ; RB4=1 GOTO PRINCIPAL END ;Fin del programa 6.1.2.3 GRABAR PROGRAMA EN EL PIC Una vez que se ha realizado el programa para el control de robot mvil, es necesario grabarlo en el microcontrolador PIC. Sin importar en que lenguaje se haya realizado el programa, una vez compilado el proyecto se obtiene un archivo en formato hexadecimal (.HEX), el cual es el archivo que se guarda en el PIC. Para lograr esto, se utiliza un programador de PICs. Existe una gran variedad de programadores de PICs en el mercado. En este ejemplo se utiliza el programador de PICs llamado MASTER PROG, el cual se muestra en la figura 21. Este programador se conecta a la PC mediante el puerto USB.

    Figura 21. Programador de PICs MASTER PROG.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Para grabar el archivo hexadecimal en el PIC16F84A, es necesario colocar el PIC sobre la base del programador y asegurarlo mediante la palanca de sujecin. Enseguida se abre la interfaz de usuario del programador, se da clic en el men Archivo y se escoge la opcin Abrir HEX, tal como se muestra en la figura 22.

    Figura 22. Programador de PICs MASTER PROG.

    Se escoge el archivo hexadecimal que se desea grabar en el PIC y finalmente se presiona el bot Escribir. La interfaz enva el mensaje Programacin Correcta! al terminar el proceso, ver figura 23.

    Figura 23. Grabacin exitosa del archivo hexadecimal.

    6.1.2 CONTROL MEDIANTE ARDUINO Actualmente existen en el mercado diferentes mdulos de Arduino. La ventaja de ellos es que son sistemas que se encuentran listos para que los usuarios conecten las entradas y salidas de su sistema, lo cual disminuye en gran medida el tiempo de desarrollo de los sistemas. En esta seccin se presenta el control del robot mvil seguidor de lnea mediante el mdulo Arduino Uno. En la figura 24 se muestra una fotografa de este mdulo. El circuito electrnico empleado para el microcontrolador PIC es el mismo que se emplear para el mdulo Arduino Uno. Las nicas diferencias son los pines que se ocupan para las entradas y las salidas. En la figura 25 se muestra el circuito electrnico empleado.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Figura 24. Mdulo Arduino Uno.

    Figura 25. Circuito electrnico para el control del robot mvil mediante Arduino Uno.

    En la figura 26 se muestra el diagrama esquemtico del Arduino Uno, para que los participantes puedan observar mejor las conexiones de los pines realizadas en el circuito.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Figura 26. Diagrama esquemtico del mdulo Arduino Uno.

    En el circuito de la figura 25 se observa que el sensor izquierdo se conecta al pin D9 del mdulo Arduino Uno, en tanto que el sensor derecho se conecta al pin D8. El motor izquierdo ser accionado por las seales de los pines D4 y D5. Por otro lado, el motor derecho ser accionado por las seales de los pines D0 y D1. 6.1.3 PROGRAMACIN DEL ARDUINO UNO Para programar el mdulo Arduino Uno se utilizar el lenguaje C. El compilador a utilizar en este caso es Arduino. En la figura 27 se presenta una imagen de la ventana de trabajo de este compilador.

    Figura 27. Ventana de trabajo del compilador Arduino.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Enseguida se presenta el listado completo del programa realizado en el compilador Arduino. En el CD de informacin hay una carpeta llamada programa robot movil en Arduino, la cual incluye el proyecto completo. /* Programa para robot mvil seguidor de lnea negra sobre fondo blanco Sensores CNY70 configurados para detectar el color negro D9=SENSOR IZQUIERDO D8=SENSOR DERECHO D4 y D5 SALIDAS PARA ACCIONAMIENTO DE MOTOR IZQUIERDO D0 y D1 SALIDAS PARA ACCIONAMIENTO DE MOTOR DERECHO */ // Configuracin de pines const int sen_izq = 9; // Pin D9 const int sen_der = 8; // Pin D8 const int m_izq_a = 4; // Pin D4 const int m_izq_b = 5; // Pin D5 const int m_der_a = 0; // Pin D0 const int m_der_b = 1; // Pin D1 void setup() { // Configuracin de entradas pinMode(sen_izq, INPUT); pinMode(sen_der, INPUT); // Configuracin de salidas pinMode(m_izq_a, OUTPUT); pinMode(m_izq_b, OUTPUT); pinMode(m_der_a, OUTPUT); pinMode(m_der_b, OUTPUT); } void loop(){ // LNEA RECTA? if ((digitalRead(sen_izq)==LOW) & (digitalRead(sen_der)==LOW)){ //MOTOR IZQUIERDO EN AVANCE digitalWrite(m_izq_a, HIGH); digitalWrite(m_izq_b, LOW); //MOTOR DERECHO EN AVANCE digitalWrite(m_der_a, HIGH); digitalWrite(m_der_b, LOW); } // CURVA IZQUIERDA? else if ((digitalRead(sen_izq)==HIGH) & (digitalRead(sen_der)==LOW)){ //MOTOR IZQUIERDO EN REVERSA

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    digitalWrite(m_izq_a, LOW); digitalWrite(m_izq_b, HIGH); //MOTOR DERECHO EN AVANCE digitalWrite(m_der_a, HIGH); digitalWrite(m_der_b, LOW); } // CURVA DERECHA? else if ((digitalRead(sen_izq)==LOW) & (digitalRead(sen_der)==HIGH)){ //MOTOR IZQUIERDO EN AVANCE digitalWrite(m_izq_a, HIGH); digitalWrite(m_izq_b, LOW); //MOTOR DERECHO EN REVERSA digitalWrite(m_der_a, LOW); digitalWrite(m_der_b, HIGH); } } 6.1.3.1 GRABAR PROGRAMA EN ARDUINO UNO Antes de grabar el programa en Arduino Uno, es necesario Verificar que la programacin es correcta. Para ello se presiona el botn con el smbolo de palomita en el compilador Arduino, ver figura 28. El programa es compilado y verificado, en caso de existir errores el compilador enva el mensaje pertinente.

    Figura 28. Verificacin de sintaxis del programa en Arduino.

    Si el programa est correcto, el siguiente paso es Cargar el programa en el mdulo Arduino Uno. Para ello se conecta el mdulo a la PC mediante el puerto USB y en el compilador se presiona el botn con el smbolo de flecha derecha, ver figura 29. Con esto el programa queda grabado en el mdulo Arduino Uno.

    Figura 29. Grabacin de archivo en el mdulo Arduino Uno.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    6.2 CONTROL MEDIANTE COMPUERTAS LGICAS En esta ltima seccin se explica la forma en que puede realizarse el control del robot mvil seguidor de lnea mediante compuertas lgicas. La estrategia de control sigue siendo la misma que se present en la seccin 5. Sin embargo, aqu s se decidir un determinado funcionamiento del robot mvil para la posibilidad de que ambos sensores detecten negro, con el fin de evitar ambigedad en la salida de las compuertas lgicas. As, cuando ambos sensores detecten el color negro, se decidir que el robot mvil se detenga. En el control con microcontroladores no se program esta posibilidad porque la pista a utilizar no presentar este caso. En la figura 30 se muestra la nomenclatura utilizada para las entradas y salidas, Las cuales se listan a continuacin: S1 = Sensor izquierdo = Sensor 1 S2 = Sensor derecho = Sensor 2 P1 = Habilitar motor 1 = Habilitar motor izquierdo P2 = Habilitar motor 2 = Habilitar motor derecho SG1 = Sentido de giro del motor 1 = Sentido de giro del motor izquierdo SG2 = Sentido de giro del motor 2 = Sentido de giro del motor derecho

    Figura 30. Nomenclatura empleada para el control mediante compuertas lgicas.

    En la tabla siguiente se muestran las cuatro posibles combinaciones de los sensores izquierdo y derecho, as como el efecto que tienen sobre el accionamiento de los motores izquierdo y derecho.

    S1 S2 P1 SG1 Motor

    1 P2 SG2 Motor

    2 0 0 1 0 Avance 1 0 Avance 0 1 1 0 Avance 1 1 Reversa 1 0 1 1 Reversa 1 0 Avance 1 1 0 X Paro 0 X Paro

    En el primer caso ambos sensores estn a 0, por lo que se desea que el robot mvil avance en lnea recta. Por lo tanto, se deben habilitar ambos motores, es decir, P1 y P2 se

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    ponen a 1. Adems se debe indicar que el sentido de giro de ambos motores sea en Avance, para lo cual en este caso se ponen a 0 SG1 y SG2. En el segundo caso se presenta curva a la derecha, pues el sensor derecho (S2) est a 1 y el sensor izquierdo (S1) est a 0. Para que el robot mvil gire hacia a la derecha ambos motores deben estar habilitados, por lo que tanto P1 como P2 se ponen a 1 y adems, el motor 2 (motor derecho) debe girar en Reversa (SG2=1) y el motor 1 (motor izquierdo) debe girar en Avance (SG1=0). En el tercer caso se presenta curva a la izquierda, pues el sensor izquierdo (S1) est a 1 y el sensor derecho (S2) est a 0. Para que el robot mvil gire hacia a la izquierda ambos motores deben estar habilitados, por lo que tanto P1 como P2 se ponen a 1 y adems, el motor 1 (motor izquierdo) debe girar en Reversa (SG1=1) y el motor 2 (motor derecho) debe girar en Avance (SG2=0). En el cuarto caso ambos sensores estn a 1, indicando que ambos detectan el color negro, por lo que se desea que el robot mvil de detenga. Por lo tanto, se deben deshabilitar ambos motores, es decir, P1 y P2 se ponen a 0. Deshabilitados los motores, no importa el sentido de giro que tengan, pues no podrn girar. En la tabla se observa una X como valor de SG1 y SG2, lo cual indica que su valor puede ser 0 1. De la tabla anterior, se puede establecer ahora la tabla de verdad que indicar cuando se debe habilitar el motor izquierdo (Motor 1).

    S1 S2 P1 0 0 1 0 1 1 1 0 1 1 1 0

    Al observar esta tabla se concluye que la salida P1 se obtiene mediante la funcin lgica NO Y (NAND), es decir: ! = ! ! De la misma forma, se escribe la tabla de verdad que indicar cuando se debe habilitar el motor derecho (Motor 2).

    S1 S2 P2 0 0 1 0 1 1 1 0 1 1 1 0

    Al observar esta tabla se concluye que la salida P2 tambin se obtiene mediante la funcin lgica NO Y (NAND), es decir: ! = ! !

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Con respecto del sentido de giro de los motores, tambin se establece su tabla de verdad para cada uno. La tabla de verdad para el sentido de giro del motor izquierdo (SG1) es la siguiente.

    S1 S2 SG1 0 0 0 0 1 0 1 0 1 1 1 X

    Se escribe la funcin lgica y se aplican teoremas de lgebra booleana para simplificar la funcin, la cual queda como: ! = ! ! + ! ! = ! ! + ! = ! ! = ! La tabla de verdad para el sentido de giro del motor derecho (SG2) es la siguiente.

    S1 S2 SG2 0 0 0 0 1 1 1 0 0 1 1 X

    Al igual que en el caso anterior, se escribe la funcin lgica y se aplican teoremas de lgebra booleana para simplificar la funcin, la cual queda como: ! = ! ! + ! ! =! ! + ! = ! ! = ! Con los resultados obtenidos, se concluye que slo necesita una compuerta lgica para controlar el robot mvil, la compuerta lgica NAND. Sin embargo, para hacer girar los motores, se emplea el Driver L293B, que como ya se mostr requiere dos conexiones para dar el sentido de giro a un motor. As, se agregar una compuerta NOT a cada seal de sentido de giro de los motores para que se consiga su funcionamiento. Por lo tanto, se requiere una compuerta lgica NAND (7400) y una compuerta lgica NOT (7404). El esquema del circuito lgico del control del robot mvil seguidor de lnea negra sobre fondo blanco queda como se muestra en la figura 31.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    Figura 31. Esquema del control del robot mvil mediante compuertas lgicas.

    Por ltimo, se muestra en la figura 32 el circuito electrnico completo empleado para el control del robot mvil mediante compuertas lgicas. Los participantes deben notar que el esquema el circuito es prcticamente el mismo que para el control por medio de microcontrolador, slo que los elementos de la figura 32 sustituyen al PIC16F84A o al Arduino Uno.

    Figura 32. Circuito electrnico para el control del robot mvil mediante compuertas

    lgicas.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    En la figura 33a se muestra la distribucin de pines de la compuerta lgica NAND (7400) y en la figura 33b se muestra la distribucin de pines de la compuerta lgica NOT (7404).

    Figura 33. Conexiones de pines de las compuertas lgicas NAND y NOT.

    7. ALIMENTACIN DEL ROBOT MVIL En las bases de la convocatoria del Primer concurso de robots mviles seguidores de lnea 2013 se indica que la alimentacin del robot mvil se debe realizar mediante 4 pilas AA, cuya salida se debe conectar a un regulador de 5V (7805). As de la salida del regulador de 5V se debe alimentar al robot mvil. Enseguida, en la figura 34 se muestra el diagrama de conexiones de este regulador.

    Figura 34. Conexiones del regulador de voltaje 7805.

  • Robot mvil seguidor de lnea

    Elabor M.C. Jess Medina Cervantes

    REFERENCIAS Microchip Technology Inc. (2001). PIC16F84A Data Sheet. U.S.A.

    Palacios, E., Remiro, F., & Lpez, L. (2004). Microcontrolador PIC16F84, Desarrollo de proyectos. Mxico: Alfaomega.

    Vishay Semiconductor GmbH. (5 de Abril de 2000). Reflective Optical Sensor with Transistor Output. Heilbronn, Germany.