SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
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
DESCRIPCION DE LOS BLOQUES
ESTUDIO DEL PROBLEMA:
En este bloque, en realidad lo que se quiere expresar es que, se tuvo que realizar un
estudio del problema que se iba a tratar. Cuando uno ataca un problema debe tener en cuenta
todos 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 moverse
independiente y autónoma. Se debe estudiar el microcontrolador a utilizar, la estructura que se
implementará, los sistemas de tracción a utilizar y la etapa de censado, además se tiene que
estudiar 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 de
potencia que pudiera mover los motores, se tiene que tener en cuenta que estos motores se deben
mover 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 se
describirán más adelante. Con este circuito se tiene lista la etapa de tracción para los motores que
son los que dan el movimiento al robot. Además se debe habilitar el sistema de alimentación, que
será 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 que
implementar una etapa de censado para poder seguir la línea negra. Es importante mencionar lo
sensible que son los sensores en relación a la altura con el suelo, es por eso que se debe tener en
cuenta 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 la
lectura. 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ácticamente
al final del diseño, y fue para poder incluir un zumbador que diera la idea de censado, es decir, se
penso en un diseño de cuatro led más un zumbador que iban conectados a los motores y a los
sensores, 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 un
circuito muy básico para los sensores de choque, pero por problemas de falsos pulso que
generaban 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 el
OSO no podría funcionar correctamente. Se implemento un circuito que era el encargado de
controlar toda la información que ingresaba y toda la información que era necesaria sacar para
activar el robot y sus diferentes componentes.
En nuestro caso se utilizó el microcontrolador PIC 16C66 el cual a diferencia de otros era
muy poderoso en cuanto a memoria e instrucción que se podían utilizar. En este bloque se incluye
la 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ñados
con 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 de
integrabilidad de cada circuito con la CPU.
Al mismo tiempo que se realizó la estructura final del robot, es decir, en esta etapa quedo
defina la forma que tendría el OSO incluyendo la forma de los sensores de choque, la
alimentación y la tapa, que cubrirían los circuitos.
PROGRAMACION:
Este bloque contempla toda la parte de programación, es importante mencionar que en
este punto se realizaron muchos programas, con los cuales se llego finalmente al programa
principal. Aquí se utilizaron programas de prueba para poder conocer las instrucciones y para
poder familiarizarse con el PIC y sus funciones.
Los programas que se realizaron fueron todos hecho en lenguaje ASEMBLY, con lo cual
se tuvo que conocer muy bien las instrucción del microcontrolador. Es importante mencionar que
se 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 cualquier
adversidad, es decir, se realizaron muchas pruebas tanto con el programa principal como con los
diferentes programas de estudio del PIC.
Todas las pruebas fueron realizadas en base a que el OSO HORMIGUERO pudiera seguir
la 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 HORMIGUERO
que 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 que
fue mencionado anteriormente, esto se realiza con el fin de poder entender a cavalidad el
funcionamiento del robot.
CONTROL DE MOTORES:
Este bloque fue nombrado a grosso modo en el apartado anterior, es importante este
bloque 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 de
los componentes del circuito.
El driver de los motores, consiste en la utilización de dos puentes de transistores que
contemplan la parte de potencia, también llamada comúnmente configuración H. Se utilizaron 4
transistores PNP B632 y 4 transistores NPN BD-233, estos transistores fueron diseñados para
trabajar en corte y en saturación. Los puentes fueron alimentados con un voltaje de 3.6 volt., que
es proporcionado por una batería.
Debido al uso que se le dieron a los motores no fue necesario implementar un PWM, ya
que no importaba en cierta manera variar la velocidad de estos. Solo con el voltaje que se les
proporcionaba era suficiente para mover el robot.
Los transistores PNP se activan con cero volts y los transistores NPN se activan con 3.6
volts. Otro de los componentes de esta etapa son los diodos rectificadores, estos son de la familia
1N4007, 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 y
se obtenía las salidas , las cuales eran por ejemplo, los bit de sentido de los motores, con los
cuales 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 7408
4 transistores NPN BD-233
4 transistores PNP B632
8 resistencias de 100 ohm
8 diodos 1N4007
Es importante mencionar que los motores se movían dependiendo de los bit de sentido y los
valores que estos tenían, es por eso que a continuación se dará una tabla con estos bit. Ejemplo
para un solo motor, ya que para el otro es lo mismo.(ver fig.1 en anexo)
Bit 0 Bit 1 Movimiento
0 0 Detenido
0 1 Derecha
1 0 Izquierda
1 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 de
censar continuamente la línea para poder seguirla. El componente principal de funcionamiento del
circuito 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án
ocupados (uno para cada sensor infrarrojo).
Primeramente se realizaron las pruebas sobre los sensores infrarrojos para saber cual
sería el voltaje umbral de trabajo de éstos, es decir, debe existir un cambio de voltaje en uno de
los terminales de cada sensor (0 o 1 lógico) ya sea cuando éste se encuentra dentro o fuera de la
lí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 nos
entregará una excursión de salida de +5V y tierra (0 V). Por lo tanto, la manera principal de hacer
trabajar los comparadores es realizando un diseño tal que en el terminal "v-" obtengamos el voltaje
umbral o de referencia sobre el cual se realizará la comparación. Así, a la salida de los
comparadores tendremos un cero lógico (0 V) si por el terminal "v+" ingresa un voltaje menor al de
referencia 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 salida
corresponde al Sensor 2. Luego estas señales son las que irían directamente al PIC 16C66 y de
acuerdo a los datos entregados por estas el microcontrolador actuará sobre el OSO según el
programa grabado en éste.
Es importante mencionar que cuando los sensores se encuentran dentro de la línea, en
este caso negra, entregarán un uno y en caso que se encuentren fuera entregarán un cero, estos
datos como se dijo irán directamente al PIC, el cual esta programado para actuar sobre el OSO.
Materiales utilizados:
LM 339
2 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 los
sensores 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 dentro
del OSO HORMIGUERO, debido a que no cumple una función de importancia, fue diseñado para
darle un toque más real al censado. Esta etapa contemplaba los siguientes componentes.
Materiales utilizados:
Zumbador
1 resistencia de 180k Ω
1 resistencia de 3.9k Ω
1 resistencia de 560 Ω
2 transistores 2N2222
1 resistencia de 2k Ω
1 oscilador LM 555
Estos son los materiales utilizados para el zumbador, a continuación describimos los materiales
utilizados 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 un
voltaje 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 la
implementació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 instrucciones
para poder programarlo. Cuando se implemento el microcontrolador se debía tener en cuenta el
circuito de oscilación que debe llevar para un buen funcionamiento, el oscilador era de 4Mhz
aproximadamente, 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 de
memoria para programa (EPROM) * 14.
Program memory 8k
I/O pines 22
PWM 2
Timer modules 3
Es importante mencionar que este PIC posee tres puertos, en el caso del OSO
HORMIGUERO se utilizaron el puerto A como entrada, donde se colocaron los sensores de lectura
y los sensores de choque.
En el puerto B en cambio fue programado como salida donde se colocaron dos bit de
sentido de los motores y los otros dos bit de sentido del otro motor fueron colocados en el puerto C
que también fue programado como salida.
Se implemento un oscilador RC que trabajaba a 4Mhz. En los otros pines del
microcontrolador se coloco la alimentación de 5 volt y la tierra que estaba unida a todas las etapas
del robot.
Mapa de memoria del PIC 16C66:
Es importante mencionar que este PIC posee más de un banco de memoria, en este caso
se utilizo el primer banco, que por defecto es el 1, estos bancos se programan con el registro
STATUS.(ver mapa de memoria en anexo)
MODELO ESTRUCTURAL DEL ROBOT:
Cuando hablamos de modelo estructural del robot nos referimos a la forma final del OSO
HORMIGUERO, es decir, como quedo la estructura física con las diferentes etapas y la
implementación de los circuitos utilizados.
Es importante considerar los materiales utilizados, ya que son los que le dan la forma al
robot. Se utilizaron algunos materiales de bajo costo para poder implementar la estructura del
OSO 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 siguiente
forma:
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ía
programar en lenguaje asembly y lenguajes C, se utilizó el primero debido a que las instrucciones
eran de más fácil acceso.
A continuación se muestra un programa que activa los motores para su movimiento, esto
quiere 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á al
lado de cada instrucción la función que cumple.
;ESTE BLOQUE CONFORMA LA CABECERA
PC equ 02 ;dirección del contador de programa
Port_A equ 05 ;dirección primer puerto
Port_B equ 06 ;dirección del segundo puerto
Port_C equ 07 ;dirección del puerto C
motor1 equ 22 ;registro de propósito general
motor2 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, ya
que 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 la
manera de compilar.
SENSORES DE CHOQUE:
En este punto se implemento un circuito y un tipo de sensor de choque, cabe destacar que el
funcionamiento no fue del todo exitoso, pero la forma en que se implementaron fue la más
correcta, debido a un problema en los motores los sensores se activaban en forma falsa, que con
un 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 los
motores 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 poder
conocer 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 los
motores en el robot, se estudio el voltaje necesario para que la velocidad de estos fuera la
adecuada. Además de ver como funcionaban los bit de sentido de cada motor para regular el giro
de estos.
Después de realizar estas pruebas se llego a la conclusión que era necesario alimentar los
motores con 3.6 volt y una corriente superior a 1 amper, ya que con un banco de pilas no era
suficiente para mover los motores, ya que en los cambios de sentido los motores necesitaban una
corriente superior. Ver al mismo tiempo que los puentes, es decir la etapa de potencia estuviera
funcionando correctamente, después de realizado todo esto se pudo implementar los driver de los
motores 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 distancia
optima de estos con el suelo, para no perder el punto de equilibrio necesario para censar
correctamente.
Las pruebas realizadas primero fueron hechas en una protoboard, implementando aquí el
circuito y viendo que resistencias eran las adecuadas, esto llevo como conclusión el voltaje
necesario 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 juntos
uno del otro, lleva como consecuencia que la probabilidad de que los dos salieran de la línea era
muy alta, producto de esto se les separo una cierta distancia, esto también llevo a realizar varias
pruebas.
PRUEBAS CON EL MICROCONTROLADOR:
Aquí fue importante la realización de muchas pruebas, ya que sin el funcionamiento del
microcontrolador 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 como
conclusión la forma de programar los puertos y además comenzar a conocer las instrucciones del
PIC.
Una segunda prueba fue activar dos led, de tal manera de activar por medio de un
interruptor uno a la vez, esto sirvió para poder conocer la forma de programar los puertos y como
utilizar 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, esto
quiere 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 para
poder activar los motores, pero en forma independiente.
Al realizar varias pruebas con diferentes programas, se pudo llegar a mover los motores
en forma independiente, claro que los bit de cada motor salían por puertos distintos y por el puerto
A entraba la señal de control.
Luego con un programa diferente se realizaron pruebas para mover los motores, pero en
este caso se le agregaron los sensores infrarrojo, se tenia que tener en cuenta que los sensores
actuaban en forma simultáneamente con los motores, si el sensor derecho entrega un 1 el motor
izquierdo se debía mover hacia delante, y de esta forma tras varias horas de trabajo se pudo llegar
a mover en forma correcta los motores.
Finalmente la prueba final era mover los motores con los sensores y ya no apoyado de
fuentes 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 se
realizaron 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 no
perder 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 las
pruebas en la parte de software, aquí se realizaron innumerables pruebas en la parte de
programación, buscando el mejor programa para el funcionamiento del OSO. Esto llevo como
conclusió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 es
una versión mejorada del primero en su tipo, pudiéndose implementar con mayor éxito la etapa de
los 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 PIC
y 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 para
poder activar los motores en forma adecuada sin perder fuerza.
Conclusiones
La 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 que
quieren 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 del
proyecto de acuerdo a los márgenes de tiempo establecidos es una perfecta herramienta para
estudiantes 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 microntroladores
PIC vistos por nosotros las variaciones con respectos a otras familias son bastante pequeñas, por
esta razón para alguien que alguna vez a trabajado con cualquier tipo de microprocesador o
microcontrolador podría también hacerlo con cualquier otro dispositivo similar sin ningún
problema.
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 que
pueden haber quedado poco claras en el informe.
Uno de los circuitos que se debiera explicar, es el driver de los motores, en este caso
explicaremos 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 en
cero. Como se puede ver siempre van ha estar trabajando, por ejemplo, el transistor de la derecha
PNP 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 es
similar. 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 al
comparador. Con este circuito se pudo implementar la etapa de sensado de la línea, las salidas
que en este caso son dos, una de cada sensor van directamente al microcontrolador, el cual las
ingresa 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 este
microcontrolador posee más de un banco de memoria. En el caso del OSO HORMIGUERO, se
utilizó el primer banco. Con el registro STATUS, se puede configurar el banco a utilizar.
Indirect.addr. (*) 00h
TMR0 01h
PCL 02h
STATUS 03h
FSR 04h
PORTA 05h
PORTB 06h
PORTC 07h
PORTD 08h
PORTE 09h
PCLATH 0Ah
INTCON 0Bh
PIR1 0Ch
PIR2 0Dh
TMR1L 0Eh
TMR1H 0Fh
T1CON 10h
TMR2 11h
T2CON 12h
SSPBUF 13h
SSPCON 14h
CCPR1L 15h
CCPR1H 16h
CCP1CON 17h
RCSTA 18h
TXREG 19h
RCREG 1Ah
CCPR2L 1Bh
CCPR2H 1Ch
CCP2CON 1Dh
1Eh
1Fh
General Purpose 20h
register
96 Byte
CODIGO FUENTE
El siguiente programa muestra algo distinto al objetivo del robot, este programa hace que el OSO
esquive la línea negra y avance cuando encuentre algo blanco.
;ESTE BLOQUE CONFORMA LA CABECERA
PC equ 02 ;dirección del contador de programa
Port_A equ 05 ;dirección primer puerto
Port_B equ 06 ;dirección del segundo puerto
Port_C equ 07
motor1 equ 22 ;registro de propósito general
motor2 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 ATRAS2
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
el siguiente programa lo que realiza, es implementar una rutina de choque dentro del programa
principal con el objetivo de hacer funcionar a estos sensores. Como se puede ver, dentro del
programa hay rutinas de retardo que son las encargas de dar un lapso de tiempo para que se
ejecuten las instrucciones.
;ESTE BLOQUE CONFORMA LA CABECERA
Port_A equ 05h ;dirección primer puerto
Port_B equ 06h ;dirección del segundo puerto
Port_C equ 07h ;dirección del tres puerto
Aux equ 22h ;registro general
Status equ 03h ;registro de estado
cero equ 02 ;valor de Z
caca equ 05 ;valor para un retardo
reg1 equ 23h ;registro general
valor1 equ 0c ;valor para un retardo
REG equ 24h ;registro general
Valor2 equ 0a ;valor para un retardo
R1 equ 25h ;registro general
choque1 equ 26h ;registro general
choque2 equ 27h ;registro general
catre 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 reg1
sub decfsz reg1 ;decrementa el registro reg1 hasta el valor
cero 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 REG
uno 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 R1
cambio 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 estos
programas se puede hacer una idea de cómo fue estructurada la parte de programación para el
OSO HORMIGUERO.

Mais conteúdo relacionado

Semelhante a Oso Hormiguero informe final de robotica.pdf

Semelhante a Oso Hormiguero informe final de robotica.pdf (20)

Brazo
BrazoBrazo
Brazo
 
CURSO PLC (1)
CURSO PLC (1)CURSO PLC (1)
CURSO PLC (1)
 
Diseño electronico
Diseño electronicoDiseño electronico
Diseño electronico
 
Diseño electronico
Diseño electronicoDiseño electronico
Diseño electronico
 
seguidor-de-linea-negra
seguidor-de-linea-negraseguidor-de-linea-negra
seguidor-de-linea-negra
 
seguidor-de-linea-negra
seguidor-de-linea-negraseguidor-de-linea-negra
seguidor-de-linea-negra
 
Seguidor de linea
Seguidor de lineaSeguidor de linea
Seguidor de linea
 
Tarea1 robótica 1 final
Tarea1 robótica 1 finalTarea1 robótica 1 final
Tarea1 robótica 1 final
 
Pic16 f877
Pic16 f877Pic16 f877
Pic16 f877
 
Proyecto mecatronica industrial control de servomotores
Proyecto mecatronica industrial control de servomotoresProyecto mecatronica industrial control de servomotores
Proyecto mecatronica industrial control de servomotores
 
Presentacionderobotica 090914234424-phpapp02
Presentacionderobotica 090914234424-phpapp02Presentacionderobotica 090914234424-phpapp02
Presentacionderobotica 090914234424-phpapp02
 
Vvcmp
VvcmpVvcmp
Vvcmp
 
Proyecto seguidor de linea
Proyecto seguidor de linea Proyecto seguidor de linea
Proyecto seguidor de linea
 
Robotica
RoboticaRobotica
Robotica
 
Brazo robotico
Brazo roboticoBrazo robotico
Brazo robotico
 
PLC Programador Logico Programable
PLC Programador Logico ProgramablePLC Programador Logico Programable
PLC Programador Logico Programable
 
Banda transportadora-controlada-con-fpga-en-vhdl
Banda transportadora-controlada-con-fpga-en-vhdlBanda transportadora-controlada-con-fpga-en-vhdl
Banda transportadora-controlada-con-fpga-en-vhdl
 
Microcontroladores: Entendiendo los AVR de ATMEL
Microcontroladores: Entendiendo los AVR de ATMELMicrocontroladores: Entendiendo los AVR de ATMEL
Microcontroladores: Entendiendo los AVR de ATMEL
 
Minivoltios fase3
Minivoltios fase3Minivoltios fase3
Minivoltios fase3
 
Seguidores productos
Seguidores productosSeguidores productos
Seguidores productos
 

Mais de Edwin4321

Apuntes de microcontroladores _PIC16F84 apunte.pdf
Apuntes de microcontroladores _PIC16F84 apunte.pdfApuntes de microcontroladores _PIC16F84 apunte.pdf
Apuntes de microcontroladores _PIC16F84 apunte.pdfEdwin4321
 
Microcontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdfMicrocontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdfEdwin4321
 
Manual de PicBasic para icrocontroladores de microchip.pdf
Manual de PicBasic para icrocontroladores de microchip.pdfManual de PicBasic para icrocontroladores de microchip.pdf
Manual de PicBasic para icrocontroladores de microchip.pdfEdwin4321
 
Técnicas e Instrumentos de Evaluación.pdf
Técnicas e Instrumentos de Evaluación.pdfTécnicas e Instrumentos de Evaluación.pdf
Técnicas e Instrumentos de Evaluación.pdfEdwin4321
 
Programador de microcontroladores de microchip 16f628a.pdf
Programador de microcontroladores de microchip 16f628a.pdfProgramador de microcontroladores de microchip 16f628a.pdf
Programador de microcontroladores de microchip 16f628a.pdfEdwin4321
 
Migracion del pic 16f628a al pic microchip 40048a.pdf
Migracion del pic 16f628a al pic microchip 40048a.pdfMigracion del pic 16f628a al pic microchip 40048a.pdf
Migracion del pic 16f628a al pic microchip 40048a.pdfEdwin4321
 
Marcador Electronico Para Deportes Basketball.pdf
Marcador Electronico Para Deportes Basketball.pdfMarcador Electronico Para Deportes Basketball.pdf
Marcador Electronico Para Deportes Basketball.pdfEdwin4321
 
manual de microcontroladores Pic de microchip modelo 16f62xxx.pdf
manual de microcontroladores Pic de microchip modelo 16f62xxx.pdfmanual de microcontroladores Pic de microchip modelo 16f62xxx.pdf
manual de microcontroladores Pic de microchip modelo 16f62xxx.pdfEdwin4321
 
Profesores excelentes libro de consulat de docencia en educacion.pdf
Profesores excelentes libro de consulat de docencia en educacion.pdfProfesores excelentes libro de consulat de docencia en educacion.pdf
Profesores excelentes libro de consulat de docencia en educacion.pdfEdwin4321
 
manual de microcontroldores Pic 16f628a de microchip.pdf
manual de microcontroldores Pic 16f628a de microchip.pdfmanual de microcontroldores Pic 16f628a de microchip.pdf
manual de microcontroldores Pic 16f628a de microchip.pdfEdwin4321
 
Proteus Introduccion al software electronico de diseño y simulacion .pdf
Proteus Introduccion al software electronico de diseño y simulacion .pdfProteus Introduccion al software electronico de diseño y simulacion .pdf
Proteus Introduccion al software electronico de diseño y simulacion .pdfEdwin4321
 
Manual de Ares del programa de software electronico Proteus.pdf
Manual de Ares  del programa de software electronico Proteus.pdfManual de Ares  del programa de software electronico Proteus.pdf
Manual de Ares del programa de software electronico Proteus.pdfEdwin4321
 
Presentacion Tecnicas de Simulacion electrica pptx
Presentacion Tecnicas de Simulacion electrica pptxPresentacion Tecnicas de Simulacion electrica pptx
Presentacion Tecnicas de Simulacion electrica pptxEdwin4321
 
Introduction to livewire electronic design.pdf
Introduction to livewire electronic design.pdfIntroduction to livewire electronic design.pdf
Introduction to livewire electronic design.pdfEdwin4321
 
Técnicas de análisis y Diseño para electrónica industrial.pdf
Técnicas de análisis y Diseño para electrónica industrial.pdfTécnicas de análisis y Diseño para electrónica industrial.pdf
Técnicas de análisis y Diseño para electrónica industrial.pdfEdwin4321
 
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdfCAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdfEdwin4321
 
Tabla de contenidos de microcontroladores Pic
Tabla de contenidos de microcontroladores PicTabla de contenidos de microcontroladores Pic
Tabla de contenidos de microcontroladores PicEdwin4321
 
Tecnicas de instrumentos de evaluacion pedagogica
Tecnicas de instrumentos de evaluacion pedagogicaTecnicas de instrumentos de evaluacion pedagogica
Tecnicas de instrumentos de evaluacion pedagogicaEdwin4321
 
Introduccion a los Microcontroladores y/o microprocesadores PIC
Introduccion a los Microcontroladores y/o microprocesadores PICIntroduccion a los Microcontroladores y/o microprocesadores PIC
Introduccion a los Microcontroladores y/o microprocesadores PICEdwin4321
 
Cuaderno_Arduino.pdf
Cuaderno_Arduino.pdfCuaderno_Arduino.pdf
Cuaderno_Arduino.pdfEdwin4321
 

Mais de Edwin4321 (20)

Apuntes de microcontroladores _PIC16F84 apunte.pdf
Apuntes de microcontroladores _PIC16F84 apunte.pdfApuntes de microcontroladores _PIC16F84 apunte.pdf
Apuntes de microcontroladores _PIC16F84 apunte.pdf
 
Microcontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdfMicrocontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdf
 
Manual de PicBasic para icrocontroladores de microchip.pdf
Manual de PicBasic para icrocontroladores de microchip.pdfManual de PicBasic para icrocontroladores de microchip.pdf
Manual de PicBasic para icrocontroladores de microchip.pdf
 
Técnicas e Instrumentos de Evaluación.pdf
Técnicas e Instrumentos de Evaluación.pdfTécnicas e Instrumentos de Evaluación.pdf
Técnicas e Instrumentos de Evaluación.pdf
 
Programador de microcontroladores de microchip 16f628a.pdf
Programador de microcontroladores de microchip 16f628a.pdfProgramador de microcontroladores de microchip 16f628a.pdf
Programador de microcontroladores de microchip 16f628a.pdf
 
Migracion del pic 16f628a al pic microchip 40048a.pdf
Migracion del pic 16f628a al pic microchip 40048a.pdfMigracion del pic 16f628a al pic microchip 40048a.pdf
Migracion del pic 16f628a al pic microchip 40048a.pdf
 
Marcador Electronico Para Deportes Basketball.pdf
Marcador Electronico Para Deportes Basketball.pdfMarcador Electronico Para Deportes Basketball.pdf
Marcador Electronico Para Deportes Basketball.pdf
 
manual de microcontroladores Pic de microchip modelo 16f62xxx.pdf
manual de microcontroladores Pic de microchip modelo 16f62xxx.pdfmanual de microcontroladores Pic de microchip modelo 16f62xxx.pdf
manual de microcontroladores Pic de microchip modelo 16f62xxx.pdf
 
Profesores excelentes libro de consulat de docencia en educacion.pdf
Profesores excelentes libro de consulat de docencia en educacion.pdfProfesores excelentes libro de consulat de docencia en educacion.pdf
Profesores excelentes libro de consulat de docencia en educacion.pdf
 
manual de microcontroldores Pic 16f628a de microchip.pdf
manual de microcontroldores Pic 16f628a de microchip.pdfmanual de microcontroldores Pic 16f628a de microchip.pdf
manual de microcontroldores Pic 16f628a de microchip.pdf
 
Proteus Introduccion al software electronico de diseño y simulacion .pdf
Proteus Introduccion al software electronico de diseño y simulacion .pdfProteus Introduccion al software electronico de diseño y simulacion .pdf
Proteus Introduccion al software electronico de diseño y simulacion .pdf
 
Manual de Ares del programa de software electronico Proteus.pdf
Manual de Ares  del programa de software electronico Proteus.pdfManual de Ares  del programa de software electronico Proteus.pdf
Manual de Ares del programa de software electronico Proteus.pdf
 
Presentacion Tecnicas de Simulacion electrica pptx
Presentacion Tecnicas de Simulacion electrica pptxPresentacion Tecnicas de Simulacion electrica pptx
Presentacion Tecnicas de Simulacion electrica pptx
 
Introduction to livewire electronic design.pdf
Introduction to livewire electronic design.pdfIntroduction to livewire electronic design.pdf
Introduction to livewire electronic design.pdf
 
Técnicas de análisis y Diseño para electrónica industrial.pdf
Técnicas de análisis y Diseño para electrónica industrial.pdfTécnicas de análisis y Diseño para electrónica industrial.pdf
Técnicas de análisis y Diseño para electrónica industrial.pdf
 
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdfCAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
 
Tabla de contenidos de microcontroladores Pic
Tabla de contenidos de microcontroladores PicTabla de contenidos de microcontroladores Pic
Tabla de contenidos de microcontroladores Pic
 
Tecnicas de instrumentos de evaluacion pedagogica
Tecnicas de instrumentos de evaluacion pedagogicaTecnicas de instrumentos de evaluacion pedagogica
Tecnicas de instrumentos de evaluacion pedagogica
 
Introduccion a los Microcontroladores y/o microprocesadores PIC
Introduccion a los Microcontroladores y/o microprocesadores PICIntroduccion a los Microcontroladores y/o microprocesadores PIC
Introduccion a los Microcontroladores y/o microprocesadores PIC
 
Cuaderno_Arduino.pdf
Cuaderno_Arduino.pdfCuaderno_Arduino.pdf
Cuaderno_Arduino.pdf
 

Último

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 

Último (20)

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 

Oso Hormiguero informe final de robotica.pdf

  • 1. 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
  • 2. DESCRIPCION DE LOS BLOQUES ESTUDIO DEL PROBLEMA: En este bloque, en realidad lo que se quiere expresar es que, se tuvo que realizar un estudio del problema que se iba a tratar. Cuando uno ataca un problema debe tener en cuenta todos 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 moverse independiente y autónoma. Se debe estudiar el microcontrolador a utilizar, la estructura que se implementará, los sistemas de tracción a utilizar y la etapa de censado, además se tiene que estudiar 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 de potencia que pudiera mover los motores, se tiene que tener en cuenta que estos motores se deben mover 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 se describirán más adelante. Con este circuito se tiene lista la etapa de tracción para los motores que son los que dan el movimiento al robot. Además se debe habilitar el sistema de alimentación, que será 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 que implementar una etapa de censado para poder seguir la línea negra. Es importante mencionar lo sensible que son los sensores en relación a la altura con el suelo, es por eso que se debe tener en cuenta 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 la lectura. 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ácticamente al final del diseño, y fue para poder incluir un zumbador que diera la idea de censado, es decir, se penso en un diseño de cuatro led más un zumbador que iban conectados a los motores y a los sensores, 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 un circuito muy básico para los sensores de choque, pero por problemas de falsos pulso que generaban 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 el OSO no podría funcionar correctamente. Se implemento un circuito que era el encargado de controlar toda la información que ingresaba y toda la información que era necesaria sacar para activar el robot y sus diferentes componentes.
  • 3. En nuestro caso se utilizó el microcontrolador PIC 16C66 el cual a diferencia de otros era muy poderoso en cuanto a memoria e instrucción que se podían utilizar. En este bloque se incluye la 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ñados con 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 de integrabilidad de cada circuito con la CPU. Al mismo tiempo que se realizó la estructura final del robot, es decir, en esta etapa quedo defina la forma que tendría el OSO incluyendo la forma de los sensores de choque, la alimentación y la tapa, que cubrirían los circuitos. PROGRAMACION: Este bloque contempla toda la parte de programación, es importante mencionar que en este punto se realizaron muchos programas, con los cuales se llego finalmente al programa principal. Aquí se utilizaron programas de prueba para poder conocer las instrucciones y para poder familiarizarse con el PIC y sus funciones. Los programas que se realizaron fueron todos hecho en lenguaje ASEMBLY, con lo cual se tuvo que conocer muy bien las instrucción del microcontrolador. Es importante mencionar que se 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 cualquier adversidad, es decir, se realizaron muchas pruebas tanto con el programa principal como con los diferentes programas de estudio del PIC. Todas las pruebas fueron realizadas en base a que el OSO HORMIGUERO pudiera seguir la 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 HORMIGUERO que 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 que fue mencionado anteriormente, esto se realiza con el fin de poder entender a cavalidad el funcionamiento del robot. CONTROL DE MOTORES: Este bloque fue nombrado a grosso modo en el apartado anterior, es importante este bloque 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 de los componentes del circuito. El driver de los motores, consiste en la utilización de dos puentes de transistores que contemplan la parte de potencia, también llamada comúnmente configuración H. Se utilizaron 4 transistores PNP B632 y 4 transistores NPN BD-233, estos transistores fueron diseñados para trabajar en corte y en saturación. Los puentes fueron alimentados con un voltaje de 3.6 volt., que es proporcionado por una batería.
  • 4. Debido al uso que se le dieron a los motores no fue necesario implementar un PWM, ya que no importaba en cierta manera variar la velocidad de estos. Solo con el voltaje que se les proporcionaba era suficiente para mover el robot. Los transistores PNP se activan con cero volts y los transistores NPN se activan con 3.6 volts. Otro de los componentes de esta etapa son los diodos rectificadores, estos son de la familia 1N4007, 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 y se obtenía las salidas , las cuales eran por ejemplo, los bit de sentido de los motores, con los cuales 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 7408 4 transistores NPN BD-233 4 transistores PNP B632 8 resistencias de 100 ohm 8 diodos 1N4007 Es importante mencionar que los motores se movían dependiendo de los bit de sentido y los valores que estos tenían, es por eso que a continuación se dará una tabla con estos bit. Ejemplo para un solo motor, ya que para el otro es lo mismo.(ver fig.1 en anexo) Bit 0 Bit 1 Movimiento 0 0 Detenido 0 1 Derecha 1 0 Izquierda 1 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 de censar continuamente la línea para poder seguirla. El componente principal de funcionamiento del circuito 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án ocupados (uno para cada sensor infrarrojo). Primeramente se realizaron las pruebas sobre los sensores infrarrojos para saber cual sería el voltaje umbral de trabajo de éstos, es decir, debe existir un cambio de voltaje en uno de los terminales de cada sensor (0 o 1 lógico) ya sea cuando éste se encuentra dentro o fuera de la lí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 nos entregará una excursión de salida de +5V y tierra (0 V). Por lo tanto, la manera principal de hacer trabajar los comparadores es realizando un diseño tal que en el terminal "v-" obtengamos el voltaje umbral o de referencia sobre el cual se realizará la comparación. Así, a la salida de los comparadores tendremos un cero lógico (0 V) si por el terminal "v+" ingresa un voltaje menor al de referencia 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 salida corresponde al Sensor 2. Luego estas señales son las que irían directamente al PIC 16C66 y de acuerdo a los datos entregados por estas el microcontrolador actuará sobre el OSO según el programa grabado en éste.
  • 5. Es importante mencionar que cuando los sensores se encuentran dentro de la línea, en este caso negra, entregarán un uno y en caso que se encuentren fuera entregarán un cero, estos datos como se dijo irán directamente al PIC, el cual esta programado para actuar sobre el OSO. Materiales utilizados: LM 339 2 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 los sensores 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 dentro del OSO HORMIGUERO, debido a que no cumple una función de importancia, fue diseñado para darle un toque más real al censado. Esta etapa contemplaba los siguientes componentes. Materiales utilizados: Zumbador 1 resistencia de 180k Ω 1 resistencia de 3.9k Ω 1 resistencia de 560 Ω 2 transistores 2N2222 1 resistencia de 2k Ω 1 oscilador LM 555 Estos son los materiales utilizados para el zumbador, a continuación describimos los materiales utilizados para los LED. Materiales utilizados: 4 resistencias de 220 Ω 4 led
  • 6. 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 un voltaje 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 la implementació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 instrucciones para poder programarlo. Cuando se implemento el microcontrolador se debía tener en cuenta el circuito de oscilación que debe llevar para un buen funcionamiento, el oscilador era de 4Mhz aproximadamente, 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 de memoria para programa (EPROM) * 14. Program memory 8k I/O pines 22 PWM 2 Timer modules 3
  • 7. Es importante mencionar que este PIC posee tres puertos, en el caso del OSO HORMIGUERO se utilizaron el puerto A como entrada, donde se colocaron los sensores de lectura y los sensores de choque. En el puerto B en cambio fue programado como salida donde se colocaron dos bit de sentido de los motores y los otros dos bit de sentido del otro motor fueron colocados en el puerto C que también fue programado como salida. Se implemento un oscilador RC que trabajaba a 4Mhz. En los otros pines del microcontrolador se coloco la alimentación de 5 volt y la tierra que estaba unida a todas las etapas del robot. Mapa de memoria del PIC 16C66: Es importante mencionar que este PIC posee más de un banco de memoria, en este caso se utilizo el primer banco, que por defecto es el 1, estos bancos se programan con el registro STATUS.(ver mapa de memoria en anexo) MODELO ESTRUCTURAL DEL ROBOT: Cuando hablamos de modelo estructural del robot nos referimos a la forma final del OSO HORMIGUERO, es decir, como quedo la estructura física con las diferentes etapas y la implementación de los circuitos utilizados. Es importante considerar los materiales utilizados, ya que son los que le dan la forma al robot. Se utilizaron algunos materiales de bajo costo para poder implementar la estructura del OSO 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 siguiente forma: Primeramente observaremos el perfil del diseño: En segundo lugar, una vista superior:
  • 8. 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ía programar en lenguaje asembly y lenguajes C, se utilizó el primero debido a que las instrucciones eran de más fácil acceso. A continuación se muestra un programa que activa los motores para su movimiento, esto quiere 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á al lado de cada instrucción la función que cumple. ;ESTE BLOQUE CONFORMA LA CABECERA PC equ 02 ;dirección del contador de programa Port_A equ 05 ;dirección primer puerto Port_B equ 06 ;dirección del segundo puerto Port_C equ 07 ;dirección del puerto C motor1 equ 22 ;registro de propósito general motor2 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
  • 9. 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, ya que 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 la manera de compilar. SENSORES DE CHOQUE: En este punto se implemento un circuito y un tipo de sensor de choque, cabe destacar que el funcionamiento no fue del todo exitoso, pero la forma en que se implementaron fue la más correcta, debido a un problema en los motores los sensores se activaban en forma falsa, que con un estudio más profundo se podría mejorar.
  • 10. Sensores de choque Pruebas realizadas En primer lugar las pruebas realizadas, fueron varias, se realizaron pruebas con los motores 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 poder conocer 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 los motores en el robot, se estudio el voltaje necesario para que la velocidad de estos fuera la adecuada. Además de ver como funcionaban los bit de sentido de cada motor para regular el giro de estos. Después de realizar estas pruebas se llego a la conclusión que era necesario alimentar los motores con 3.6 volt y una corriente superior a 1 amper, ya que con un banco de pilas no era suficiente para mover los motores, ya que en los cambios de sentido los motores necesitaban una corriente superior. Ver al mismo tiempo que los puentes, es decir la etapa de potencia estuviera funcionando correctamente, después de realizado todo esto se pudo implementar los driver de los motores 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
  • 11. estos trabajaban, se realizaron diferentes pruebas con el objetivo de saber cual era la distancia optima de estos con el suelo, para no perder el punto de equilibrio necesario para censar correctamente. Las pruebas realizadas primero fueron hechas en una protoboard, implementando aquí el circuito y viendo que resistencias eran las adecuadas, esto llevo como conclusión el voltaje necesario 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 juntos uno del otro, lleva como consecuencia que la probabilidad de que los dos salieran de la línea era muy alta, producto de esto se les separo una cierta distancia, esto también llevo a realizar varias pruebas. PRUEBAS CON EL MICROCONTROLADOR: Aquí fue importante la realización de muchas pruebas, ya que sin el funcionamiento del microcontrolador 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 como conclusión la forma de programar los puertos y además comenzar a conocer las instrucciones del PIC. Una segunda prueba fue activar dos led, de tal manera de activar por medio de un interruptor uno a la vez, esto sirvió para poder conocer la forma de programar los puertos y como utilizar 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, esto quiere 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 para poder activar los motores, pero en forma independiente. Al realizar varias pruebas con diferentes programas, se pudo llegar a mover los motores en forma independiente, claro que los bit de cada motor salían por puertos distintos y por el puerto A entraba la señal de control. Luego con un programa diferente se realizaron pruebas para mover los motores, pero en este caso se le agregaron los sensores infrarrojo, se tenia que tener en cuenta que los sensores actuaban en forma simultáneamente con los motores, si el sensor derecho entrega un 1 el motor izquierdo se debía mover hacia delante, y de esta forma tras varias horas de trabajo se pudo llegar a mover en forma correcta los motores. Finalmente la prueba final era mover los motores con los sensores y ya no apoyado de fuentes 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 se realizaron 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 no perder 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 las pruebas en la parte de software, aquí se realizaron innumerables pruebas en la parte de programación, buscando el mejor programa para el funcionamiento del OSO. Esto llevo como conclusión un programa capaz de realizar las pruebas requeridas por el robot. Recomendaciones a la solución
  • 12. Una recomendación que puede hacerse, es que en este caso el OSO HORMIGUERO es una versión mejorada del primero en su tipo, pudiéndose implementar con mayor éxito la etapa de los 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 PIC y 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 para poder activar los motores en forma adecuada sin perder fuerza. Conclusiones La 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 que quieren 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 del proyecto de acuerdo a los márgenes de tiempo establecidos es una perfecta herramienta para estudiantes 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 microntroladores PIC vistos por nosotros las variaciones con respectos a otras familias son bastante pequeñas, por esta razón para alguien que alguna vez a trabajado con cualquier tipo de microprocesador o microcontrolador podría también hacerlo con cualquier otro dispositivo similar sin ningún problema. Bibliografía y referencias [1] revista, "CIKA Electrónica SRL". [2] Microchip, “Manuales para los Microcontroladores”.
  • 13. Anexos En los siguientes apartados se explicara con esquemas y programas algunas etapas que pueden haber quedado poco claras en el informe. Uno de los circuitos que se debiera explicar, es el driver de los motores, en este caso explicaremos 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 en cero. Como se puede ver siempre van ha estar trabajando, por ejemplo, el transistor de la derecha PNP 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 es similar. Las componentes están especificados en los apartados anteriores.
  • 14. 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 al comparador. Con este circuito se pudo implementar la etapa de sensado de la línea, las salidas que en este caso son dos, una de cada sensor van directamente al microcontrolador, el cual las ingresa como entradas para activar los motores.
  • 15. CIRCUITO DEL ZUMBADOR: Fig.3 circuito del zumbador
  • 16. MAPA DE MEMORIA: En este punto se muestra un mapa de memoria del PIC 16C66, es importante destacar que este microcontrolador posee más de un banco de memoria. En el caso del OSO HORMIGUERO, se utilizó el primer banco. Con el registro STATUS, se puede configurar el banco a utilizar. Indirect.addr. (*) 00h TMR0 01h PCL 02h STATUS 03h FSR 04h PORTA 05h PORTB 06h PORTC 07h PORTD 08h PORTE 09h PCLATH 0Ah INTCON 0Bh PIR1 0Ch PIR2 0Dh TMR1L 0Eh TMR1H 0Fh T1CON 10h TMR2 11h T2CON 12h SSPBUF 13h SSPCON 14h CCPR1L 15h CCPR1H 16h CCP1CON 17h RCSTA 18h TXREG 19h RCREG 1Ah CCPR2L 1Bh CCPR2H 1Ch CCP2CON 1Dh 1Eh 1Fh General Purpose 20h register 96 Byte
  • 17. CODIGO FUENTE El siguiente programa muestra algo distinto al objetivo del robot, este programa hace que el OSO esquive la línea negra y avance cuando encuentre algo blanco. ;ESTE BLOQUE CONFORMA LA CABECERA PC equ 02 ;dirección del contador de programa Port_A equ 05 ;dirección primer puerto Port_B equ 06 ;dirección del segundo puerto Port_C equ 07 motor1 equ 22 ;registro de propósito general motor2 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 ATRAS2 ADELANTE2 movlw b'00000010' addwf PC ;sumar al contador de programa nop ;si hubo algún sensor nop ;presionado
  • 18. 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 programa principal con el objetivo de hacer funcionar a estos sensores. Como se puede ver, dentro del programa hay rutinas de retardo que son las encargas de dar un lapso de tiempo para que se ejecuten las instrucciones. ;ESTE BLOQUE CONFORMA LA CABECERA Port_A equ 05h ;dirección primer puerto Port_B equ 06h ;dirección del segundo puerto Port_C equ 07h ;dirección del tres puerto Aux equ 22h ;registro general Status equ 03h ;registro de estado cero equ 02 ;valor de Z caca equ 05 ;valor para un retardo reg1 equ 23h ;registro general valor1 equ 0c ;valor para un retardo REG equ 24h ;registro general Valor2 equ 0a ;valor para un retardo R1 equ 25h ;registro general choque1 equ 26h ;registro general choque2 equ 27h ;registro general catre 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 reg1 sub decfsz reg1 ;decrementa el registro reg1 hasta el valor cero 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 REG uno 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 R1 cambio decfsz R1 ;decrementa el registro R1 goto cambio ;salta a cambio retlw 0 ;fin del decremento
  • 19. ;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 estos programas se puede hacer una idea de cómo fue estructurada la parte de programación para el OSO HORMIGUERO.