Informe Final de Diseño...

19
Informe Final de Diseño Electrónico Claudio Andrés Urzúa Candia Ingeniería Civil Electrónica Hector Vargas Oyarzún Ingeniería Civil Electrónica Introducción Debido al gran interés que presenta el tema de la Robótica, es interesante poder realizar algunos proyectos que nos puedan llevar a ese mágico mundo. El hecho de poder crear una máquina, aunque pequeña, es un desafío importante dentro de la área de la Electrónica. En el presente informe se expondrá el trabajo ha realizar, el cual es implementar un Robot que pueda posicionarse sobre una línea negra y seguirla sin ningún problema. En nuestro caso se le llamo cariñosamente OSO HORMIGUERO. La función que debe cumplir este Robot, es poder seguir una línea negra la cual simula una línea de hormigas, este seguimiento se produce gracias a la implementación de sensores que infrarrojos. El Robot deberá seguir la línea trazada y en caso que de que ésta se le pierda, debe ser capaz poder encontrarla sin problema. Las diferentes etapas para desarrollar este proyecto, están basadas en lograr un buen funcionamiento del Robot. Estas se pueden dividir en: Diseño de etapa de potencia, etapa de implementación de sensores, puesta en marcha del microcontrolador y finalmente la etapa de programación. La filosofía ocupada en este proyecto fue trabajar a conciencia y cumpliendo los tiempos programados. Diseño a nivel de Bloques A continuación se muestra un diagrama de bloques de las etapas del diseño, con el objetivo de dar a entender la forma en como se atacó el problema y la solución a la cual se llegó, dando una pequeña descripción de los bloques para aclarar cualquier duda sobre su uso y descripción de las funciones que cumplen. ZUMBADOR ESTUDIO DEL CONTROL IMPLEMENTACION PROBLEMA DE MOTORES CPU(PIC) CAPTADORES MODELO LINEA OBSCURA ESTRUCTURAL SENSORES PROGRAMACION PRUEBAS CHOQUE Fig 1. DIAGRAMA DE BLOQUES DEL OSO HORMIGUERO

Transcript of Informe Final de Diseño...

Informe Final de Diseño Electrónico

Claudio Andrés Urzúa Candia Ingeniería Civil ElectrónicaHector Vargas Oyarzún Ingeniería Civil Electrónica

Introducción

Debido al gran interés que presenta el tema de la Robótica, es interesante poder realizaralgunos proyectos que nos puedan llevar a ese mágico mundo. El hecho de poder crear unamáquina, aunque pequeña, es un desafío importante dentro de la área de la Electrónica.

En el presente informe se expondrá el trabajo ha realizar, el cual es implementar un Robotque pueda posicionarse sobre una línea negra y seguirla sin ningún problema. En nuestro caso sele llamo cariñosamente OSO HORMIGUERO.

La función que debe cumplir este Robot, es poder seguir una línea negra la cual simulauna línea de hormigas, este seguimiento se produce gracias a la implementación de sensores queinfrarrojos. El Robot deberá seguir la línea trazada y en caso que de que ésta se le pierda, debeser capaz poder encontrarla sin problema.

Las diferentes etapas para desarrollar este proyecto, están basadas en lograr un buenfuncionamiento del Robot. Estas se pueden dividir en: Diseño de etapa de potencia, etapa deimplementación de sensores, puesta en marcha del microcontrolador y finalmente la etapa deprogramación. La filosofía ocupada en este proyecto fue trabajar a conciencia y cumpliendo lostiempos programados.

Diseño a nivel de Bloques

A continuación se muestra un diagrama de bloques de las etapas del diseño, con elobjetivo de dar a entender la forma en como se atacó el problema y la solución a la cual se llegó,dando una pequeña descripción de los bloques para aclarar cualquier duda sobre su uso ydescripción de las funciones que cumplen.

ZUMBADOR

ESTUDIO DEL CONTROL IMPLEMENTACIONPROBLEMA DE MOTORES CPU(PIC)

CAPTADORES MODELO LINEA OBSCURA ESTRUCTURAL

SENSORES PROGRAMACION PRUEBASCHOQUE

Fig 1. DIAGRAMA DE BLOQUES DEL OSO HORMIGUERO

DESCRIPCION DE LOS BLOQUES

ESTUDIO DEL PROBLEMA:

En este bloque, en realidad lo que se quiere expresar es que, se tuvo que realizar unestudio del problema que se iba a tratar. Cuando uno ataca un problema debe tener en cuentatodos los aspectos que se van a realizar, los pro y los contra del proyecto.

Cuando hablamos de robot debemos pensar en una maquina que sea capaz de moverseindependiente y autónoma. Se debe estudiar el microcontrolador a utilizar, la estructura que seimplementará, los sistemas de tracción a utilizar y la etapa de censado, además se tiene queestudiar bien el sistema de control a utilizar.

CONTROL DE MOTORES:

En relación ha este bloque lo que se realizó en general fue implementar un circuito depotencia que pudiera mover los motores, se tiene que tener en cuenta que estos motores se debenmover en forma independiente y en dos sentido, es decir que deben girar para ambos lados.

La implementación del circuito fue realizada con dos puentes de transistores que sedescribirán más adelante. Con este circuito se tiene lista la etapa de tracción para los motores queson los que dan el movimiento al robot. Además se debe habilitar el sistema de alimentación, queserá el encargado de entregar la energía a los motores y puertas lógicas.

CAPTADORES DE LINEA OBSCURA:

Cuando nos referimos a este bloque, lo que queremos decir es que se tuvo queimplementar una etapa de censado para poder seguir la línea negra. Es importante mencionar losensible que son los sensores en relación a la altura con el suelo, es por eso que se debe tener encuenta este aspecto para la implementación, esto se analizará más adelante con más detalle.

En esta etapa del diseño del robot, se consideraron varios aspectos que podían influir en lalectura. Aquí también se contempla el diseño de la nariz del OSO HORMIGUERO.

ZUMBADOR:

En relación con este bloque, nos referimos aún circuito que se implemento prácticamenteal final del diseño, y fue para poder incluir un zumbador que diera la idea de censado, es decir, sepenso en un diseño de cuatro led más un zumbador que iban conectados a los motores y a lossensores, también se explicará más adelante.

SENSORES DE CHOQUE:

Cuando nos referimos a este bloque, lo que se quiere decir es que se implemento uncircuito muy básico para los sensores de choque, pero por problemas de falsos pulso quegeneraban los motores no resulto con éxito esta etapa.

IMPLEMENTACION DE LA CPU (PIC 16C66):

Esta es una de las etapas más importantes del diseño del robot, ya que sin esta etapa elOSO no podría funcionar correctamente. Se implemento un circuito que era el encargado decontrolar toda la información que ingresaba y toda la información que era necesaria sacar paraactivar el robot y sus diferentes componentes.

En nuestro caso se utilizó el microcontrolador PIC 16C66 el cual a diferencia de otros eramuy poderoso en cuanto a memoria e instrucción que se podían utilizar. En este bloque se incluyela implementación del PIC con sus componentes periféricos.

MODELO ESTRUCTURAL DEL ROBOT:

En este bloque lo que se realizó fue implementar físicamente todos los circuitos diseñadoscon anterioridad, ubicarlos en el robot de tal manera de que se vean en forma ordenada.

Después de ubicados los circuitos en la estructura básica se realizó la etapa deintegrabilidad de cada circuito con la CPU.

Al mismo tiempo que se realizó la estructura final del robot, es decir, en esta etapa quedodefina la forma que tendría el OSO incluyendo la forma de los sensores de choque, laalimentación y la tapa, que cubrirían los circuitos.

PROGRAMACION:

Este bloque contempla toda la parte de programación, es importante mencionar que eneste punto se realizaron muchos programas, con los cuales se llego finalmente al programaprincipal. Aquí se utilizaron programas de prueba para poder conocer las instrucciones y parapoder familiarizarse con el PIC y sus funciones.

Los programas que se realizaron fueron todos hecho en lenguaje ASEMBLY, con lo cualse tuvo que conocer muy bien las instrucción del microcontrolador. Es importante mencionar quese realizaron programas muy básicos para el estudio del PIC.

PRUEBAS:

Cuando hablamos de prueba, nos referimos a que el robot debía funcionar ante cualquieradversidad, es decir, se realizaron muchas pruebas tanto con el programa principal como con losdiferentes programas de estudio del PIC.

Todas las pruebas fueron realizadas en base a que el OSO HORMIGUERO pudiera seguirla línea negra, controlando los motores y las velocidades de esto para que no se volviera loco.

Cumpliendo todas etapas se logro finalmente implementar un Robot llamado OSO HORMIGUEROque al posicionarse sobre una línea obscura la pueda seguir sin problema.

Especificación de componentes por módulo

En esta parte del informe se describirán los diferentes componentes de cada bloque quefue mencionado anteriormente, esto se realiza con el fin de poder entender a cavalidad elfuncionamiento del robot.

CONTROL DE MOTORES:

Este bloque fue nombrado a grosso modo en el apartado anterior, es importante estebloque debido a que sin esta etapa el robot no podría moverse.

Antes de hacer un esquema del circuito de los motores, se hará una pequeña reseña delos componentes del circuito.

El driver de los motores, consiste en la utilización de dos puentes de transistores quecontemplan la parte de potencia, también llamada comúnmente configuración H. Se utilizaron 4transistores PNP B632 y 4 transistores NPN BD-233, estos transistores fueron diseñados paratrabajar en corte y en saturación. Los puentes fueron alimentados con un voltaje de 3.6 volt., quees proporcionado por una batería.

Debido al uso que se le dieron a los motores no fue necesario implementar un PWM, yaque no importaba en cierta manera variar la velocidad de estos. Solo con el voltaje que se lesproporcionaba era suficiente para mover el robot.

Los transistores PNP se activan con cero volts y los transistores NPN se activan con 3.6volts. Otro de los componentes de esta etapa son los diodos rectificadores, estos son de la familia1N4007, que eran los encargados de proteger a los transistores de peak inversos de corriente.

Además se utilizó dos puertas lógicas, en las cuales se ingresaban diferentes entradas yse obtenía las salidas , las cuales eran por ejemplo, los bit de sentido de los motores, con loscuales se les da el sentido de giro de los motores.

Finalmente se utilizaron algunas resistencia para implementar el circuito de los motores.

Materiales utilizados:

2 TTL 74084 transistores NPN BD-2334 transistores PNP B6328 resistencias de 100 ohm8 diodos 1N4007

Es importante mencionar que los motores se movían dependiendo de los bit de sentido y losvalores que estos tenían, es por eso que a continuación se dará una tabla con estos bit. Ejemplopara un solo motor, ya que para el otro es lo mismo.(ver fig.1 en anexo)

Bit 0 Bit 1 Movimiento0 0 Detenido0 1 Derecha1 0 Izquierda1 1 No permitido

CAPTADORES DE LINEA OBSCURA:(SENSORES INFRARROJO)

Cuando se habla de captadores de línea obscura, se refiere a que son los encargados decensar continuamente la línea para poder seguirla. El componente principal de funcionamiento delcircuito corresponde a un amplificador operacional LM339 trabajando como comparador.

Modo de funcionamiento

El LM339 posee en su interior cuatro circuitos comparadores de los cuales solo dos seránocupados (uno para cada sensor infrarrojo).

Primeramente se realizaron las pruebas sobre los sensores infrarrojos para saber cualsería el voltaje umbral de trabajo de éstos, es decir, debe existir un cambio de voltaje en uno delos terminales de cada sensor (0 o 1 lógico) ya sea cuando éste se encuentra dentro o fuera de lalínea. Una vez encontrado este voltaje de transición, se realiza el diseño del circuito.

El LM339 se polariza con 5 V en +Vcc y tierra, de acuerdo a esto el comparador nosentregará una excursión de salida de +5V y tierra (0 V). Por lo tanto, la manera principal de hacertrabajar los comparadores es realizando un diseño tal que en el terminal "v-" obtengamos el voltajeumbral o de referencia sobre el cual se realizará la comparación. Así, a la salida de loscomparadores tendremos un cero lógico (0 V) si por el terminal "v+" ingresa un voltaje menor al dereferencia y un uno lógico (5 V) si por el ingresa un voltaje mayor.

La salida de uno de los comparadores corresponde al Sensor 1 mientras la otra salidacorresponde al Sensor 2. Luego estas señales son las que irían directamente al PIC 16C66 y deacuerdo a los datos entregados por estas el microcontrolador actuará sobre el OSO según elprograma grabado en éste.

Es importante mencionar que cuando los sensores se encuentran dentro de la línea, eneste caso negra, entregarán un uno y en caso que se encuentren fuera entregarán un cero, estosdatos como se dijo irán directamente al PIC, el cual esta programado para actuar sobre el OSO.

Materiales utilizados:LM 3392 resistencias de 10K Ω2 resistencias de 220 Ω4 resistencias de 22k Ω2 resistencias de 1.5k Ω

A continuación se muestra una figura, donde se visualiza como están colocados lossensores dentro de la nariz del OSO HORMIGUERO. (Ver fig.2 del anexo)

ZUMBADOR:

La implementación de este circuito, en realidad no contempla una parte importante dentrodel OSO HORMIGUERO, debido a que no cumple una función de importancia, fue diseñado paradarle un toque más real al censado. Esta etapa contemplaba los siguientes componentes.

Materiales utilizados:Zumbador1 resistencia de 180k Ω1 resistencia de 3.9k Ω1 resistencia de 560 Ω2 transistores 2N22221 resistencia de 2k Ω1 oscilador LM 555

Estos son los materiales utilizados para el zumbador, a continuación describimos los materialesutilizados para los LED.

Materiales utilizados:

4 resistencias de 220 Ω4 led

Descripción del circuito:La descripción de este circuito ya se explico, en realidad cada led tenia una función en

especial, conectado a cada motor y cada sensor de lectura. El zumbador se alimento con unvoltaje de 5 volts y los led eran alimentados con un voltaje de 3.6 volts.(ver fig. 3 del anexo)

IMPLEMENTACION DE LA CPU (PIC 16C66):

En esta etapa se realizó la implementación de la CPU , que en realidad en este caso es laimplementación del microcontrolador PIC 16C66.

A continuación se muestra el esquema del microcontrolador.

Descripción del PIC 16C66:

El microcontrolador que se utilizó posee las siguientes características. Tiene este microcontrolador una estructura RISC, posee al mismo tiempo 35 instruccionespara poder programarlo. Cuando se implemento el microcontrolador se debía tener en cuenta elcircuito de oscilación que debe llevar para un buen funcionamiento, el oscilador era de 4Mhzaproximadamente, debido al uso no fue necesario calibrar en forma precisa este oscilador.

El PIC se puede alimentar con un voltaje de 5 volt aproximadamente. Posee 8 k dememoria para programa (EPROM) * 14.

Program memory 8kI/O pines 22

PWM 2Timer modules 3

Es importante mencionar que este PIC posee tres puertos, en el caso del OSOHORMIGUERO se utilizaron el puerto A como entrada, donde se colocaron los sensores de lecturay los sensores de choque.

En el puerto B en cambio fue programado como salida donde se colocaron dos bit desentido de los motores y los otros dos bit de sentido del otro motor fueron colocados en el puerto Cque también fue programado como salida.

Se implemento un oscilador RC que trabajaba a 4Mhz. En los otros pines delmicrocontrolador se coloco la alimentación de 5 volt y la tierra que estaba unida a todas las etapasdel robot.

Mapa de memoria del PIC 16C66:

Es importante mencionar que este PIC posee más de un banco de memoria, en este casose utilizo el primer banco, que por defecto es el 1, estos bancos se programan con el registroSTATUS.(ver mapa de memoria en anexo)

MODELO ESTRUCTURAL DEL ROBOT:

Cuando hablamos de modelo estructural del robot nos referimos a la forma final del OSOHORMIGUERO, es decir, como quedo la estructura física con las diferentes etapas y laimplementación de los circuitos utilizados.

Es importante considerar los materiales utilizados, ya que son los que le dan la forma alrobot. Se utilizaron algunos materiales de bajo costo para poder implementar la estructura delOSO HORMIGUERO. Entre los cuales se contempla el diseño de la nariz.

Nuestro proyecto de diseño que cariñosamente llamamos Oso hormiguero poseerá la siguienteforma:

Primeramente observaremos el perfil del diseño:

En segundo lugar, una vista superior:

PROGRAMACION:

En esta etapa se recurrió a información de revistas para poder realizar los programas,cabe destacar que estos fueron realizados en lenguaje asembly, debido a que el PIC se podíaprogramar en lenguaje asembly y lenguajes C, se utilizó el primero debido a que las instruccioneseran de más fácil acceso.

A continuación se muestra un programa que activa los motores para su movimiento, estoquiere decir que, se programo el PIC para que los motores se muevan en forma independiente.Los otros programas realizados se pueden ver en los anexos. Para mayor claridad se explicará allado de cada instrucción la función que cumple.

;ESTE BLOQUE CONFORMA LA CABECERA

PC equ 02 ;dirección del contador de programaPort_A equ 05 ;dirección primer puertoPort_B equ 06 ;dirección del segundo puertoPort_C equ 07 ;dirección del puerto Cmotor1 equ 22 ;registro de propósito generalmotor2 equ 24

;A PARTIR DE ESTE PUNTO EMPIEZA EL PROGRAMA

INICIO movlw 0F ;cargar a W con 1 para tris Port_A ;configurar puerto A como entrada

movlw 0 ;cargar a W con 0 para tris Port_B ;configurar puerto B como salida

movlw 0 tris Port_C

movlw 1 ;cargar a W con 1 para

movwf motor1 ;sacar datos de salida altos en motor1 movlw 1 movwf motor2

SALTO1 movf motor1,w ;sacar dato del registro movwf Port_B ;para activar el bit

btfss Port_A,0 goto ATRAS1 goto ADELANTE1

ADELANTE1 movlw b'00000001' addwf PC ;sumar al contador de programa nop ;si hubo algún sensor nop ;presionado movwf motor1 ;cargar valor en registro goto SALTO2 ;leer sensor de nuevo

ATRAS1 movlw b'00000010' addwf PC nop nop movwf motor1 goto SALTO2

SALTO2 movf motor2,w ;sacar dato del registro movwf Port_C ;para activar el bit

btfss Port_A,1 goto ATRAS2 goto ADELANTE2

ADELANTE2 movlw b'00000010' addwf PC ;sumar al contador de programa

nop ;si hubo algún sensor nop ;presionado

movwf motor2 ;cargar valor en registro goto SALTO1 ;leer sensor de nuevo

ATRAS2 movlw b'00000100' nop nop movwf motor2 goto SALTO1 end

Como se puede ver el programa no es demasiado largo pero cumple con el objetivo, yaque se trato de optimizar al máximo, sin caer en redundancia.

En los anexos se explicará con mayor claridad la forma de escribir un programa y lamanera de compilar.

SENSORES DE CHOQUE:

En este punto se implemento un circuito y un tipo de sensor de choque, cabe destacar que elfuncionamiento no fue del todo exitoso, pero la forma en que se implementaron fue la máscorrecta, debido a un problema en los motores los sensores se activaban en forma falsa, que conun estudio más profundo se podría mejorar.

Sensores de choque

Pruebas realizadas

En primer lugar las pruebas realizadas, fueron varias, se realizaron pruebas con losmotores para ver su buen funcionamiento, luego se realizaron pruebas con los sensores de lectura(infrarrojo), así como también pruebas con el PIC que fueron las más importantes para poderconocer el microcontrolador y finalmente las pruebas con los programas y los sensores de choque.

PRUEBAS CON LOS MOTORES:

Aquí se realizaron varias pruebas con los motores, por ejemplo antes de implementar losmotores en el robot, se estudio el voltaje necesario para que la velocidad de estos fuera laadecuada. Además de ver como funcionaban los bit de sentido de cada motor para regular el girode estos.

Después de realizar estas pruebas se llego a la conclusión que era necesario alimentar losmotores con 3.6 volt y una corriente superior a 1 amper, ya que con un banco de pilas no erasuficiente para mover los motores, ya que en los cambios de sentido los motores necesitaban unacorriente superior. Ver al mismo tiempo que los puentes, es decir la etapa de potencia estuvierafuncionando correctamente, después de realizado todo esto se pudo implementar los driver de losmotores en el robot.

PRUEBAS CON LOS SENSORES DE LECTURA:

Cuando se supo que el OSO trabajaría con sensores de lectura, infrarrojo, se requirióimplementar un circuito para el funcionamiento de estos, lo cual llevo a conocer la forma en que

estos trabajaban, se realizaron diferentes pruebas con el objetivo de saber cual era la distanciaoptima de estos con el suelo, para no perder el punto de equilibrio necesario para censarcorrectamente.

Las pruebas realizadas primero fueron hechas en una protoboard, implementando aquí elcircuito y viendo que resistencias eran las adecuadas, esto llevo como conclusión el voltajenecesario para activar estos sensores. Al mismo tiempo se pudo concluir la distancia con el suelo,la cual era aproximadamente de 4 a 5 mm del suelo.

Es importante mencionar que debido a que los sensores se encuentran demasiado juntosuno del otro, lleva como consecuencia que la probabilidad de que los dos salieran de la línea eramuy alta, producto de esto se les separo una cierta distancia, esto también llevo a realizar variaspruebas.

PRUEBAS CON EL MICROCONTROLADOR:

Aquí fue importante la realización de muchas pruebas, ya que sin el funcionamiento delmicrocontrolador no funciona el robot.

Una de las primeras pruebas fue implementar un circuito para encender y apagar un led,con esto se estudio la habilitación de los puertos como entradas y salidas. Esto llevo comoconclusión la forma de programar los puertos y además comenzar a conocer las instrucciones delPIC.

Una segunda prueba fue activar dos led, de tal manera de activar por medio de uninterruptor uno a la vez, esto sirvió para poder conocer la forma de programar los puertos y comoutilizar los retardos de tal manera de mantener activado los led por un cierto instante.

Siguiendo con las pruebas, se realizaron varias pruebas con los motores y el PIC, estoquiere decir que se implemento un programa que hiciera mover los motores simultáneamente,controlados por el PIC. Esto llevo como conclusión que era necesario modificar el programa parapoder activar los motores, pero en forma independiente.

Al realizar varias pruebas con diferentes programas, se pudo llegar a mover los motoresen forma independiente, claro que los bit de cada motor salían por puertos distintos y por el puertoA entraba la señal de control.

Luego con un programa diferente se realizaron pruebas para mover los motores, pero eneste caso se le agregaron los sensores infrarrojo, se tenia que tener en cuenta que los sensoresactuaban en forma simultáneamente con los motores, si el sensor derecho entrega un 1 el motorizquierdo se debía mover hacia delante, y de esta forma tras varias horas de trabajo se pudo llegara mover en forma correcta los motores.

Finalmente la prueba final era mover los motores con los sensores y ya no apoyado defuentes de alimentación, sino que en forma independiente (sin cables).

Después de tener claro el funcionamiento y la forma en que debía moverse el OSO serealizaron pruebas ya actuando sobre la línea obscura y regulando la velocidad de los motores.Aquí las pruebas llevaron a la conclusión que el OSO debía tener una velocidad moderada para noperder la línea. Se regulo el sistema de las ruedas para un mejor funcionamiento.

PRUEBAS EN LA PARTE DE PROGRAMACION:

Después de tener toda la parte de hardware implementada es necesario realizar laspruebas en la parte de software, aquí se realizaron innumerables pruebas en la parte deprogramación, buscando el mejor programa para el funcionamiento del OSO. Esto llevo comoconclusión un programa capaz de realizar las pruebas requeridas por el robot.

Recomendaciones a la solución

Una recomendación que puede hacerse, es que en este caso el OSO HORMIGUERO esuna versión mejorada del primero en su tipo, pudiéndose implementar con mayor éxito la etapa delos sensores de choque.

REQUERIMIENTOS DE POTENCIA, RANGOS DE OPERACIÓN Y LIMITACIONES

Los rangos de operación del OSO son mentener un voltaje cercano a los 5 volt para el PICy las otras partes de los circuitos, y un voltaje de 3.6 volts para la etapa de potencia.

Las limitaciones son que la corriente no puede ser inferior a 1.5 amper por lo menos parapoder activar los motores en forma adecuada sin perder fuerza.

ConclusionesLa gran cantidad de aplicaciones que hoy en día nos presentan las diferentes familias de

microcontroladores hace de este trabajo un material de estudio importante para las personas quequieren incursionar en el mundo de la robótica (microcontroladores Pic, microprocesadores, etc...),de esta manera el estudio del problema, la implementación, y posterior puesta en marcha delproyecto de acuerdo a los márgenes de tiempo establecidos es una perfecta herramienta paraestudiantes que al igual que nosotros deben realizar proyectos de trabajo similares a éste.

Como conclusión más técnica se puede decir que dentro del universo de microntroladoresPIC vistos por nosotros las variaciones con respectos a otras familias son bastante pequeñas, poresta razón para alguien que alguna vez a trabajado con cualquier tipo de microprocesador omicrocontrolador podría también hacerlo con cualquier otro dispositivo similar sin ningúnproblema.

Bibliografía y referencias

[1] revista, "CIKA Electrónica SRL".[2] Microchip, “Manuales para los Microcontroladores”.

Anexos

En los siguientes apartados se explicara con esquemas y programas algunas etapas quepueden haber quedado poco claras en el informe.

Uno de los circuitos que se debiera explicar, es el driver de los motores, en este casoexplicaremos solo uno, ya que el otro es similar.

En este caso cuando el motor gira en un sentido, se activa un bit y el otro permanece encero. Como se puede ver siempre van ha estar trabajando, por ejemplo, el transistor de la derechaPNP con el de la izquierda NPN.

Las puertas lógicas son alimentadas con 5 volts.

Fig.1 driver de los motores

Es importante mencionar que este driver es solo de un motor, ya que para el otro motor essimilar. Las componentes están especificados en los apartados anteriores.

Circuito de los Sensores Infrarrojos

Fig.2 circuito de los sensores infrarrojos

Se puede ver claramente la función del comparador y como se ingresan las señales alcomparador. Con este circuito se pudo implementar la etapa de sensado de la línea, las salidasque en este caso son dos, una de cada sensor van directamente al microcontrolador, el cual lasingresa como entradas para activar los motores.

CIRCUITO DEL ZUMBADOR:

Fig.3 circuito del zumbador

MAPA DE MEMORIA:

En este punto se muestra un mapa de memoria del PIC 16C66, es importante destacar que estemicrocontrolador posee más de un banco de memoria. En el caso del OSO HORMIGUERO, seutilizó el primer banco. Con el registro STATUS, se puede configurar el banco a utilizar.

Indirect.addr. (*) 00hTMR0 01hPCL 02hSTATUS 03hFSR 04hPORTA 05hPORTB 06hPORTC 07hPORTD 08hPORTE 09hPCLATH 0AhINTCON 0BhPIR1 0ChPIR2 0DhTMR1L 0EhTMR1H 0FhT1CON 10hTMR2 11hT2CON 12hSSPBUF 13hSSPCON 14hCCPR1L 15hCCPR1H 16hCCP1CON 17hRCSTA 18hTXREG 19hRCREG 1AhCCPR2L 1BhCCPR2H 1ChCCP2CON 1Dh

1Eh

1FhGeneral Purpose 20hregister96 Byte

CODIGO FUENTE

El siguiente programa muestra algo distinto al objetivo del robot, este programa hace que el OSOesquive la línea negra y avance cuando encuentre algo blanco.

;ESTE BLOQUE CONFORMA LA CABECERA

PC equ 02 ;dirección del contador de programaPort_A equ 05 ;dirección primer puertoPort_B equ 06 ;dirección del segundo puertoPort_C equ 07motor1 equ 22 ;registro de propósito generalmotor2 equ 24

;A PARTIR DE ESTE PUNTO EMPIEZA EL PROGRAMA

INICIO movlw 0F ;cargar a W con 1 para tris Port_A ;configurar puerto A como

entrada movlw 0 ;cargar a W con 0 para tris Port_B ;configurar puerto B como salida

movlw 0 tris Port_C

movlw 1 ;cargar a W con 1 para movwf motor1 ;sacar datos de salida altos en motor1

movlw 1 movwf motor2

SALTO1 movf motor1,w ;sacar dato del registro movwf Port_B ;para activar el bit

btfss Port_A,0 goto ADELANTE1 goto ATRAS1

ADELANTE1 movlw b'00000001' addwf PC ;sumar al contador de programa nop ;si hubo algún sensor nop ;presionado movwf motor1 ;cargar valor en registro goto SALTO2 ;leer sensor de nuevo

ATRAS1 movlw b'00000010' addwf PC nop nop movwf motor1 goto SALTO2

SALTO2 movf motor2,w ;sacar dato del registro movwf Port_C ;para activar el bit

btfss Port_A,1 goto ADELANTE2 goto ATRAS2ADELANTE2 movlw b'00000010' addwf PC ;sumar al contador de programa nop ;si hubo algún sensor nop ;presionado

movwf motor2 ;cargar valor en registro goto SALTO1 ;leer sensor de nuevo

ATRAS2 movlw b'00000100' nop nop movwf motor2 goto SALTO1 end

el siguiente programa lo que realiza, es implementar una rutina de choque dentro del programaprincipal con el objetivo de hacer funcionar a estos sensores. Como se puede ver, dentro delprograma hay rutinas de retardo que son las encargas de dar un lapso de tiempo para que seejecuten las instrucciones.

;ESTE BLOQUE CONFORMA LA CABECERA

Port_A equ 05h ;dirección primer puertoPort_B equ 06h ;dirección del segundo puertoPort_C equ 07h ;dirección del tres puertoAux equ 22h ;registro generalStatus equ 03h ;registro de estadocero equ 02 ;valor de Z

caca equ 05 ;valor para un retardoreg1 equ 23h ;registro general

valor1 equ 0c ;valor para un retardoREG equ 24h ;registro general

Valor2 equ 0a ;valor para un retardoR1 equ 25h ;registro general

choque1 equ 26h ;registro generalchoque2 equ 27h ;registro generalcatre equ 28h ;registro general

valor equ 0Ch ;valor para guardar

reset org 0 goto INICIO

clear movlw caca ;carga un valor a w movwf reg1 ;carga el valor de w en reg1sub decfsz reg1 ;decrementa el registro reg1 hasta el valorcero goto sub ;salta a sub retlw 0 ;fin del decremento

Retardo movlw valor1 ;carga un valor a w movwf REG ;carga el valor de w en el registro REGuno decfsz REG ;decrementa el registro REG goto uno ;salta a uno retlw 0 ;fin del decremento

hola movlw Valor2 ;carga un valor a w movwf R1 ;carga el valor de w en el registro R1cambio decfsz R1 ;decrementa el registro R1 goto cambio ;salta a cambio retlw 0 ;fin del decremento

;A PARTIR DE ESTE PUNTO EMPIEZA EL PROGRAMA

INICIO movlw 0F ;cargar a W con 1 para tris Port_A ;configurar puerto A como entrada

movlw 0 ;cargar a W con 0 para tris Port_B ;configurar puerto B como salida

movlw 0 ;cargar a W con 0 para tris Port_C ;configurar puerto C como salida

;************choque***********************

partida movf Port_A,w ;lo que esta en el puerto A se va a w movwf Aux ;carga el valor de w al registro Aux andlw b'00000100' ;hace un and entre Aux y 00000100 movwf choque1 ;carga el valor de w en choque1 btfsc choque1,2 ;pregunta por el bit 2 del registro goto atras ;salta atras si el bit 2 es 1 goto adelante ;salta adelante si el bit 2 es cero

adelante movlw 01h ;carga el valor 1 en w movwf Port_B ;carga el valor de w en puerto B movlw 02h movwf Port_C Call clear ;llama al retardo clear movlw 0 ;carga el valor 0 en w movwf Port_B ;carga el valor de w en puerto B movwf Port_C Call hola ;llama retardo hola goto partida ;salta a partida

atras movlw valor ;carga el valor de valor en w movwf catre ;carga el valor de w en registro catre

vuelve decfsz catre ;decrementa el registro catre goto patras ;salta para patras goto partida ;salta a partida

patras movlw 02h ;carga el valor 02 en w movwf Port_B ;carga el valor de w en puerto B movlw 04h movwf Port_C Call Retardo ;llama a retardo movlw 0 ;carga el valor 0 en w movwf Port_B ;carga el valor de w en puerto B movwf Port_C Call hola ;llama a retardo goto vuelve ;salta a vuelve end

en realidad prodriamos seguir mostrando programas pero no va al caso, con estosprogramas se puede hacer una idea de cómo fue estructurada la parte de programación para elOSO HORMIGUERO.