“Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el...

17
“La educación de sus hijos en las mejores manos” - CARRITO EVASOR DE OBSTACULOS - PROFESOR DAVID SILVA 1 “Carrito autómata evasor de obstáculos” 1. Introducción 2. Planteamiento del proyecto 3. Objetivo General 4. Objetivos Especificos 5. Descripción general de la solución del problema y construcción del “carrito evasor de obstáculos” 6. Solución del problema por “Hardware” 7. Solución del problema por “Software” 8. Conclusiones 9. Bibliografía

Transcript of “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el...

Page 1: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 1

“Carrito autómata evasor de

obstáculos”

1. Introducción

2. Planteamiento del proyecto

3. Objetivo General

4. Objetivos Especificos

5. Descripción general de la solución del problema y construcción del

“carrito evasor de obstáculos”

6. Solución del problema por “Hardware”

7. Solución del problema por “Software”

8. Conclusiones

9. Bibliografía

Page 2: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 2

Introducción

Desde la invención del circuito integrado, el desarrollo constante de la electrónica digital ha

dado lugar a dispositivos cada vez más complejos. Entre ellos los microprocesadores y los

Microcontroladores, los cuales son básicos en las carreras de ingeniería electrónica.

Los microcontroladores se utilizan en circuitos electrónicos comerciales desde hace unos años de forma masiva, debido a que permiten reducir el tamaño y el precio de los equipos. Un ejemplo de éstos son los teléfonos móviles, las cámaras de video, la televisión digital, la transmisión por satélite y los hornos de microondas. Pero hasta hace poco tiempo, para el aficionado a la electrónica resultaba poco menos que imposible incluirlos en sus montajes por diversas razones: alto precio, complejidad de los montajes y, principalmente, por la escasez y el alto precio de las herramientas de software.

En los últimos años se ha facilitado enormemente el trabajo con los microcontroladores al bajar los precios, aumentar las prestaciones y simplificar los montajes, de manera que en muchas ocasiones

merece la pena utilizarlos en aplicaciones donde antes se utilizaba lógica discreta.

Diversos fabricantes ofrecen amplias gamas de microcontroladores para todas las necesidades. Pero sin duda, hoy en día los microcontroladores más aceptados para diseños profesionales son los microcontroladores PIC fabricados por Microchip Technology Inc., que recientemente se anunciaba como el mayor fabricante del mundo de microcontroladores de 8 bits.

En este auge ha influido decisivamente la política de Microchip al ofrecer la documentación y todo el software necesario de manera gratuita en su página Web www.microchip.com Esto, junto con otras cuestiones técnicas, han hecho que hoy en día resulte muy fácil incluir los microcontroladores PIC no solo en los diseños de los aficionados a la electrónica, sino también en complejos sistemas digitales.

Muchas de estas aplicaciones son sobre el control de servomecanismos tales como brazos

mecánicos y robots en general.

En este proyecto se implementa un “carrito evasor de obstáculos” usando estos microcontroladores

PIC.

Además, en este reporte se intenta que el lector logre entender de manera sencilla los pasos

en la implementación del carrito evasor de obstáculos y obtenga un panorama de la

programación utilizada en estos dispositivos electrónicos

Se pretende explicar de manera concreta el funcionamiento de algunos microcontroladores, en

nuestro caso utilizamos los microcontroladores Pic16F84 y Pic16F877, aunque cabe mencionar que si se comprende a fondo un microcontroladores en particular, los demás pueden prenderse con facilidad partiendo de la estructura de los mencionados.

La forma en la que se estructuran los temas en este reporte es de tal manera que el lector

entienda con claridad los procedimientos que se llevaron a cabo para implementar el “carrito

evasor de obstáculos”, usando como microcontrolador los PIC´s, mostrando los detalles

electrónicos de la circuitería y la programación, para mejoras y modificaciones futuras que el

lector quisiese implementar.

Page 3: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 3

Planteamiento del proyecto

Se desea desarrollar un “carrito” que sea controlado por un microcontrolador PIC, mediante el

uso de diferentes dispositivos electrónicos, tales como sensores, motores de corriente directa, etc.

El objetivo principal del “carrito” es evadir obstáculos que se encuentren enfrente de su trayectoria de movimiento. Para ello, el microcontrolador que controla el carrito, utilizará un sensor de donde obtendrá lecturas, no solo de la trayectoria de movimiento, sino que también de otros ángulos para tener opciones para decidir el cambio de la trayectoria para evadir el obstáculo.

La solución a la problemática planteada en los párrafos anteriores se puede dividir en

hardware” y en “software”, cada una de estas soluciones se menciona en los siguientes

apartados, pero antes se menciona una descripción general del proceso de solución y construcción del

“carrito”.

Objetivo General.

Que los alumnos de 5to Año de Secundaria al finalizar el curso de Mecatrónica

estén en condiciones de utilizar el software de manera adecuada para realizar

los circuitos impresos y construir el carrito vence obstáculos como producto

final relacionándolo con su vida diaria.

Objetivos Específicos.

Comprender la definición la Mecatrónica y su historia.

Analiza y comprende las partes que conforman la Mecatrónica como aprendizaje en la vida académica y diaria. Discrimina adecuadamente las herramientas que se encuentran dentro del programa. Usa las técnicas aprendidas para construir el circuito impreso. Trabaja en forma grupal para unir tanto la parte mecánica como la parte electrónica. Presenta y expone el proyecto del carrito autómata vence obstáculos.

Page 4: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 4

Descripción general del proceso de solución y

construcción del carrito

En el planteamiento de la construcción de este robot se consideraron los siguientes puntos:

• Nivel físico: comprende la estructura física, las unidades motoras, y las etapas de

potencia.

• Nivel de reacción: está formado por el conjunto de sensores y los sistemas básicos

para su manejo.

• Nivel de inteligencia: abarca la planificación a largo plazo.

Para llegar al modelo final del robot se pasó por un proceso de experimentación, ya que se probaron diferentes carrocerías y diferentes tipos de motores.

La primera prueba que se hizo como parte del proceso de experimentación fue hacer un

“seguidor de línea” en el que se utilizó el PIC 16F84, el cual controlaba las señales emitidas por

dos sensores de infrarrojos modelo CNY-70 (figura 3), los cuales emiten luz infrarroja que es

absorbida por el color negro, esto considerado como un “0” binario, y la luz infrarroja en el color

blanco es reflejada a la base del fototransistor de los sensores que es considerado como “1”

binario. Este seguidor de línea tiene un funcionamiento sencillo, el cual consiste en que si

sobre una superficie blanca dibujamos un circuito negro con curvas y rectas, éste seguidor de

línea deberá de seguir el camino sin desviarse de la línea negra. La elección de los colores es

obvia, el blanco y el negro tienen unas características especiales a la hora de reflejar luz que

no la tienen otros colores.

La construcción del seguidor de línea nos dejó un primer acercamiento tanto en la programación del PIC, como la utilización de motores de DC. Este conocimiento adquirido fue de gran utilidad para llegar al objetivo final, o sea obtener un robot evasor de obstáculos. Debido a que el objetivo de este reporte es explicar el software y el hardware del robot evasor de obstáculos, se omiten tanto el programa que se grabó en el PIC 16F84 como el procedimiento para la construcción física del seguidor de línea.

Después de contar con la experiencia obtenida en la realización del seguidor de línea pasamos

a la elaboración del robot.

La primera carrocería del robot fue la de un carrito de control remoto. Lo único que usamos de él fue su chasis y sus motores, pues se desactivo el circuito de control remoto. Este carrito tenía dos motores de DC. El motor posterior controlaba la tracción en tanto que el motor frontal se encargaba de hacer girar las llantas delanteras de izquierda a derecha y viceversa para poder girar. El control de este carrito fue relativamente sencillo ya que para hacerlo avanzar solo sé tenía que activar el motor de tracción. Sin embargo para controlar sus giros se diseñó un algoritmo que consistía en una secuencia de 5 pasos.

Esta secuencia es como sigue: primero se activa el motor frontal para hacer girar las llantas

delanteras hasta un extremo, luego se activaba el motor de tracción para que el carro retroceda

una distancia determinada, a continuación las llantas delanteras se hacen girar hasta el otro

Page 5: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 5

extremo y después el carro debe avanzar cierta distancia, y por último se manda la instrucción

de que por medio de un cierto tiempo de activación del motor frontal se centren las llantas.

Es importante mencionar que al término de esta secuencia el carro gira aproximadamente 20°. De esta forma, dependiendo del número de grados que se quería que el carro girara se repetía esta secuencia el número de veces necesario.

Como se pretendía tener un carro evasor de obstáculos se pensó en colocar varios sensores que indicaran si el carro podía seguir avanzando o no. Después se llegó a la conclusión de que solo sé necesitaría un solo sensor, pues si se montaba en un motor entonces sé podía hacer un barrido de 180° para determinar si el carro tenía una posible salida. Pero si no encontraba una salida entonces se le indicaría al motor que moviera el sensor hacia atrás y de esta forma poder medir la distancia trasera y saber cuánto podía retroceder el carro, o en su defecto si no había distancia suficiente no se movería hacia atrás.

El primer resultado que se obtuvo fue relativamente satisfactorio. El inconveniente que se presento fue que el carro pesaba mucho y que su consumo de corriente era elevado. Además como para poner las llantas delanteras al centro se le indicaba al motor frontal que girara un cierto tiempo, entonces al irse descargando las baterías que alimentaban al circuito las llantas ya no quedaban centradas. Esto sucedía porque a menor corriente el motor giraba más despacio y entonces se necesitaba más tiempo para que las llantas quedaran centradas. Un factor que determino el elevado consumo de corriente fue el peso del carro.

Además de que el carro no hacia 100% lo solicitado, otro factor para decidir cambiar de carro fue el consumo de energía, pues como ya se mencionó el gran peso del carro hacia que se acabaran más rápido las pilas. Esto por supuesto no es rentable.

Para solucionar este problema se resolvió cambiar de carrocería y de motores. Ahora la

carrocería tenía que ser menos pesada y de tamaño lo más pequeño posible. En cuanto a los

motores se pensó en aquellos que están montados en un mecanismo de engranes y que hace

que tengan un mejor torque. Además los motores debían consumir poca corriente.

Así pues, después de una búsqueda algo tediosa se pudo conseguir el material requerido.

Los motores adquiridos fueron tres motoreductores de poco consumo de corriente y de

relativamente buen torque. Sin embargo la velocidad de éstos no es buena, ya que dos de ellos

tienen a penas 42 RPM y el otro 30 RPM. El precio de este tipo de motores es bajo si los

comparamos con los servomotores.

La nueva estructura del robot fue de triciclo, o sea de tres llantas. Dos llantas se pusieron al

frente y una atrás. Cada llanta delantera tiene un motor. La llanta trasera es loca y se usa para

que el robot tenga un movimiento libre, es decir cuando los dos motores se ponen en marcha al

mismo tiempo el carro se debe ir en línea recta y cuando se quiera que gire, la llantita trasera

debe seguir el movimiento. En la figura 1D se ve el robot.

Page 6: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 6

Fig. 1D Robot evasor de obstáculos.

Page 7: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 7

El inconveniente que sé pensó que podía presentarse fue tener motores con una marcada

diferencia en sus revoluciones, lo cual provocaría que el robot no avanzara en línea recta. Sin

Fácilmente comprensible para quien pretenda leerlo.

• Obtiene resultados de forma rápida.

• Ocupar la menor memoria posible.

• El programa esta subdividido en programas más elementales, es decir el programa es

modular.

De esta forma el programa tiene la estructura de un programa principal y de subrutinas. El programa principal utiliza subrutinas, que a su vez realizan tareas específicas y dan resultados rápidos. Cada subrutina puede usar o no otras subrutinas. Por ejemplo, las subrutinas de retardo son muy usadas por otras subrutinas que realizan ciertas tareas.

De manera general el programa realiza lo siguiente:

Como primer movimiento el sensor analógico GP2Y0A21YK, que está montado en un motor

de DC, gira a la derecha. Este primer movimiento es importante ya que sirve como un punto

de referencia, pues si por algún motivo en cualquier instante el robot se queda sin energía o

se resetea, no importará donde quede posicionado el sensor porque al reiniciarse la secuencia

el sensor primero busca su punto de referencia.

Este párrafo explica el mecanismo y la lógica que se usó para montar el sensor en el motor.

Como ya se mencionó el sensor busca cuatro puntos: derecha, centro, izquierda y atrás. Para

lograr esto se fabricó una placa pequeña, en la cual hay dispuestos cuatro conductores de

cobre, uno en cada lado de la placa. Esta primer placa está sujeta al bastidor del motor B02

1:280. Una segunda placa se montó en el eje del motor; de esta forma cuando el motor gira

también lo hace la placa. La placa que está montada en el eje dispone de un pequeño arco

metálico que está orientado hacia abajo.

Este arco esta polarizado con un voltaje de 5v. De esta forma cuando se hace girar el motor van haciendo contacto el arco metálico con los conductores de cobre. Esta situación provoca que se cierre un circuito y que se polarice cada uno de los conductores, que a su vez están conectados al PIC 16F877. Tomando como referencia el frente del carrito se tiene lo siguiente: los conductores derecho, centro, izquierdo y trasero están conectados a los bits RC4, RC5, RC6 Y RC7 respectivamente. De esta forma cuando el PIC recibe un voltaje alto (5v) en estos bits se realiza una tarea determinada. En la figura 3D se muestra el mecanismo que hace girar al sensor.

La figura 4D muestra un esquema de conexión de los conductores de cobre con los bits

correspondientes en el PIC. RC4

Page 8: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 8

Fig. 4D

Placa con cuatro conductores de cobre

Después se debe posicionar el sensor analógico al centro, es decir en la posición que mida

hacia el frente del carrito.

Si la distancia que el sensor mide es mayor a 20cm el carrito empieza a moverse. La velocidad con la

que se mueve aumenta cuando el sensor mide que hay espacio libre mayor a 80cm.

De esta forma el robot continuo avanzando hasta que el sensor detecta que hay un obstáculo a una distancia aproximada de 80cm. Cuando esto pasa el carrito disminuye su velocidad y se aproxima al obstáculo hasta que se detiene a una distancia de más o menos 20cm.

Cundo el carrito esta frente al obstáculo, el sensor empieza un barrido de 180° empezando desde la derecha y finalizando en la izquierda. Este barrido es muy importante ya que es cuando se hacen las lecturas de las distancias. Cada lectura se da cada medio segundo. Al finalizar este barrido se lee el registro de salidas para saber si hay o no una salida. Si existe una salida el carrito gira hasta encontrarla. Después se vuelve a repetir la secuencia desde el principio, esto es, el sensor busca su punto de referencia luego el centro, etc.

En caso de que no exista una salida al frente, el sensor se mueve hacia atrás para medir si

hay distancia libre para que el robot retroceda. Si el robot puede retroceder, se mueve

aproximadamente 20cm hacia a otras, luego el sensor nuevamente empieza el barrido para

saber si hay o no salida al frente o a los lados.

En caso de que el carro no pueda retroceder se quedara parado, porque no hay salida ni

enfrente ni atrás. En esta situación, para que el robot se mueva uno de los obstáculos debe

quitarse. Es importante aclarar que el robot no está capacitado para trabajar en un contorno de

laberinto.

Un punto importante que debe resaltarse es que cuando el robot encuentra un obstáculo debe

Page 9: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 9

decidir cuál es la mejor trayectoria de movimiento. Es decir, si el carrito queda

más a la derecha del obstáculo y a pesar de que a la izquierda de éste también haya salida,

debe girar a la derecha

En esta figura se aprecia que cada 30° se hace una lectura. De esta forma se realizan un total

de siete lecturas. A demás se muestra que a pesar de que también hay salidas a la derecha y

a la izquierda, la más conveniente es la que se encuentra más cercana al obstáculo, por que el

robot no tiene que girar mucho para evadir el objeto.

Solución por “hardware”

Para solucionar el problema de Hardware (mencionados anteriormente) se tuvo que elegir minuciosamente el material (componentes electrónicos y motores) de acuerdo a las necesidades del “carrito evasor de obstáculos”, basándonos en sus características técnicas. Los materiales utilizados se mencionan a continuación:

Material utilizado:

1 PIC 16F84

1 PIC 16F877 2 Sensores infrarrojos CNY- 70. 2 Motoreductores modelo B02 1:280

1 Motoreductor modelo B01 1:200 1 Sensor analógico Sharp modelo GP2Y0A21YK 2 Driver´s L293D 3 Reguladores de voltaje LM7805 1 Cristal a 4Mhz con dos capacitores de 22pF

Page 10: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 10

Sensor infrarrojo CNY- 70.

El CNY70, que se muestra en la figura 3, es un sensor óptico reflexivo que tiene una

construcción compacta dónde el emisor de luz y el receptor se colocan en la misma dirección

para detectar la presencia de un objeto utilizando la reflexión del infrarrojo sobre el objeto. La longitud

de onda de trabajo es 950nm. El detector consiste en un fototransistor.

Características:

La construcción compacta con distancia de centro-a-centro de 0.1 ' (pulgadas)

No necesita ningún ambiente especial. Señal de salida alta. El coeficiente de temperatura bajo. Detector provista de filtro óptico. El ratio de corriente de transferencia (CTR) típico es del 5%.

Page 11: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 11

Motoreductor B02 1:280.

Características a 5Vdc:

- Torque 4.6 Kg F*cm (cantidad de fuerza aplicada) - Velocidad 30 RPM. - Consumo de corriente sin carga (sin peso): 80 m A. - Consumo de corriente máxima: 600mA.

Cuenta con una salida con eje de 5mm de diámetro y orificios para facilitar su montaje con tornillos. Medidas: 55mm X 47 mm X 22mm. Peso: 32gr.

Este Motoreductor, que se muestra en la figura 4, se utilizó para mover el sensor analógico modelo GP2Y0A21YK que se muestra en la figura 6.

Page 12: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 12

Reguladores de voltaje LM7805:

En la mayoría de las aplicaciones se requiere una tensión fija y estable de un determinado

valor. La línea de reguladores ideales para este tipo de necesidades es la conocida como

LM78XX. La primera letra y dos números corresponden a la denominación, mientras que las dos

últimas XX deben ser reemplazados por la tensión de salida requerida, que en nuestro caso es

de 5V. Cada uno de estos dispositivos posee sólo tres terminales, la terminal 1 (I) corresponde

a la entrada de tensión no regulada, la Terminal 2 (C ) es tierra y la terminal 3 (O) es la salida

regulada. En la figura 8 se muestra en diagrama del LM7805.

Solución por “software”

La solución por Software no fue un gran problema ya que se hizo modular (como se mencionó

anteriormente), haciendo subrutinas que son llamadas por el programa principal. A

continuación se describen tanto el programa principal como sus subrutinas. Esta descripción

consta de dos partes: una explicación de lo que hace cada rutina y su diagrama de flujo

correspondiente.

Este programa contiene las subrutinas que hacen que el carrito funcione. El orden en el cual

están dispuestas las subrutinas es muy importante, ya que si se altera el resultado será un

programa que no haga lo que debe hacer.

A continuación se menciona de manera general el funcionamiento de cada subrutina.

Cuando el robot encuentra un obstáculo, este se detiene y su sensor comienza a realizar un barrido de 180° para determinar las posibles direcciones de trayectoria de movimiento; como estableció la lectura del sensor se realiza cada 30°, permitiéndose un total de 7 lecturas. Sin embargo, para lograr esta rotación de 30°, en la implantación del programa en el PIC, se estableció un periodo de tiempo para permitir la rotación del motor que controla el movimiento

Page 13: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 13

del sensor; en la práctica se observa que es de 500ms. Este periodo de tiempo se obtiene utilizando interrupciones, con la ayuda del TIMER0, del Pre escalar y de un registro llamado AumentoPreescalar. Recuerde que el máximo tiempo logrado con el TIMER0 y el pre escalar es de aproximadamente 65.5ms (máximo tiempo antes del desbordamiento del TIMER0). Pero el inconveniente de usar esta interrupción, es que ésta ocurre cada cierto tiempo, no importando que actividad este realizando el robot; si el robot avanza una distancia considerable, es obvio que se cumplirá el tiempo necesario para que se dé la interrupción, pero en este caso no se necesita que el sensor empiece a barrer, porque el carrito está avanzando y no a encontrado un obstáculo.

Considerando que la interrupción se da cada cierto tiempo sin importar que esté haciendo el

robot y que sólo se requiere ejecutar la parte del algoritmo de la interrupción que hace rotar el

motor del sensor cuando el sensor esté en el proceso de barrido, se usa una bandera para

indicar cuando, propiamente dicho, se debe atender a ésta interrupción, es decir, a pesar de

que se dé la interrupción no siempre se procede a ejecutar todo el algoritmo de la rutina de

interrupción y solo cuando se habilita la bandera, esta bandera se implementa con el bit 0 del

registro

Autoriza Interrupción.

El programa empieza de la siguiente forma: El bit 0 del registro Autorizar Interrupción se pone a cero. Esto se hace para que al momento de que suceda la interrupción no se entre a la parte importante de la subrutina que atiende la interrupción, sino que solo se vuelva habilitar la interrupción y continuar el proceso hasta que se llega a la parte donde empieza el barrido del sensor.

La llamada de la subrutina derecha hace que el motor que controla el sensor gire a la derecha. Esto es importante porque es un punto de referencia que hace que el programa no se pierda. Cuando el motor empieza a girar se detiene cuando el conductor de cobre que se conecta al bit RC4 se polariza. Como ya se explicó anteriormente esta polarización ocurre cundo el arco metálico que está montado en la placa que está sujeta al eje del motor hace contacto con el conductor correspondiente. Ya se mencionó que existe una placa que está sujeta al chasis del motor que hace girar el sensor, esta placa tiene en cada uno de sus lados un conductor (ver fig.3D) y por tanto hay cuatro conductores conectados en los bits correspondientes del PIC.

La llamada de la subrutina centro hace que el motor que controla el sensor gire al centro. El

motor se detiene cuando el conductor conectado al bit RC5 es polarizado. El sensor debe

estar ubicado al centro para que empiece a medir si hay o no espacio libre para que el carrito

avance. La subrutina avanza se encarga de que el carrito se mueva, hasta encontrar un

obstáculo.

El registro Registra Salidas debe limpiarse antes de que sea utilizado. Este registro almacena las

posiciones donde hay una salida.

La llamada limpia Mascara hace que el registro Mascara tome el valor de b’00000001’. Se

empieza con este valor pues es la posición de la primera lectura. Para la siguiente lectura la

máscara deberá tener el valor b’00000010’, y la siguiente el valor b’00000100’, etc. Es decir se

va rotando el registro mascara en cada nueva lectura.

Siguiendo el orden del Programa Principal, nuevamente a parecer la llamada de subrutina

derecha para que se pueda empezar el barrido de 180° a partir de la derecha. El bit 0 del

registro Primera Lectura se pone a uno para hacer la primer lectura. Se debe hacer esto porque

cuando el sensor está a la derecha es cuando se autoriza la interrupción y entonces se

Page 14: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 14

necesita que pasen 500ms para hacer la primer lectura, es decir no se estaría tomando lectura

del extremo derecho. Pero cuando se activa el registro Primera Lectura se garantiza que se haga una lectura en el extremo derecho.

Una vez que el sensor está colocado a la derecha se debe poner el bit 0 del registro Autorizar Interrupción en uno para que cuando entre la interrupción se pueda acceder a la parte del algoritmo en la cual se empieza la lectura, a intervalos de 500ms, de la distancia que hay del carrito a su alrededor y llevándose a cavo la correspondiente conversión A/D.

La subrutina izquierda hace que el sensor gire hasta que llegue a la izquierda. El sensor gira

hasta que el conductor conectado al bit RC6 se polariza. Hay que recordar que el sensor

estaba ubicado en la derecha. De esta forma cuando el sensor llegue a la izquierda habrá

girado 180°. En el transcurso de este barrido es cuando la interrupción queda habilitada y por

tanto se hacen las lecturas.

Después hay que volver a poner el bit 0 del registro Autorizar Interrupción a cero para

únicamente limpiar la bandera de desbordamiento de TIMER0 al entrar a la rutina de

interrupción.

La subrutina Lee Salidas se encarga de preguntar si hay o no una trayectoria de movimiento. Es

decir, como resultado del barrido de 180° se puede tener o no una trayectoria de movimiento.

Si hay una trayectoria de movimiento se ejecuta la subrutina Gira Salida la cual permite identificar un movimiento del carrito hacia la derecha o la izquierda. Si no hay trayectoria el carro debe retroceder, este movimiento se logra con la subrutina retrocede. En la figura 10 se muestra el diagrama de flujo del programa principal.

Page 15: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 15

Page 16: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 16

Conclusiones

A pesar de que el robot no es muy competitivo, presenta características interesantes. Sin

embargo tiene detalles desafortunados como es el alto consumo de corriente debido al sensor

analógico que se utilizó, ya que es el que consume en la mayor parte del tiempo más corriente

porque está tomando lecturas todo el tiempo en que el “carrito” está en movimiento. Se

propone para mejoras futuras hacer que este sensor solo este activado por intervalos cortos

de tiempo para mejorar el rendimiento de energía.

Por otra parte, el diseño, montaje y programación del robot, a sido una experiencia, aunque

ardua (ya que requiere mucho tiempo), muy divertida.

Este robot es una primera aproximación, que sin lugar a dudas puede ser mejorado. Las

mejoras pueden darse desde la parte mecánica hasta la forma de energizar el circuito, como

por ejemplo; pueden usarse brazos mecánicos, adaptar una cámara de video, se puede

alimentar con celdas solares, entre otras mejoras. Sin embargo el resultado obtenido es

aceptable.

Figura 12. Carrito Evasor de Obstáculos.

Page 17: “Carrito autómata evasor de obstáculos” · “seguidor de línea” en el que se utilizó el PIC 16F84, ... (figura 3), los cuales emiten luz infrarroja que es absorbida por

“La educación de sus hijos en las mejores manos”

- CARRITO EVASOR DE OBSTACULOS -

PROFESOR DAVID SILVA 17

La utilización de celdas solares puede ser utilizado para que el carrito utilice

energía solar y energía de una batería, y que además estas celdas solares

recarguen las baterías de alimentación del “carrito”, esto con el fin de que el

carrito funcione en cualquier momento y no se tengan problemas de energía.

Bibliografía:

Palacios, Enrique; Remiro, Fernando y López, Lucas. Microcontrolador

PIC16F84, desarrollo de

Proyectos, Segunda Edición. Editorial Alfo Omega – Rama.

Página de Internet: http://www.microchip.com

Página de Internet: http://www.robodacta.com