Vous êtes sur la page 1sur 44

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

UNIVERSIDAD AUTNOMA METROPOLITANA IZTAPALAPA

DIVISIN DE CIENCIAS BSICA E INGENIERA

INGENIERA EN ELECTRONICA

Proyecto Final de Ingeniera en electrnica

CARRITO EVASOR DE OBSTACULOS

Asesor: Mauricio Lpez Villaseor Elaboraron: Pablo Arturo Barragn Chvez Ricardo Flores Hernndez Cesar David Salazar Garca

______________________ Visto bueno por asesor


UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -1-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


INDICE

Introduccin.3 Planteamiento del proyecto ..4 Descripcin general de la solucin del problema y construccin del carrito evasor de obstculos ...5 Solucin del problema por Hardware 10 Solucin del problema por Software .16 Conclusiones .42 Bibliografa 44

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -2-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


INTRODUCCIN Desde la invencin del circuito integrado, el desarrollo constante de la electrnica digital ha dado lugar a dispositivos cada vez ms complejos. Entre ellos los microprocesadores y los microcontroladores, los cuales son bsicos en las carreras de ingeniera electrnica. Los microcontroladores se utilizan en circuitos electrnicos comerciales desde hace unos aos de forma masiva, debido a que permiten reducir el tamao y el precio de los equipos. Un ejemplo de stos son los telfonos mviles, las cmaras de video, la televisin digital, la transmisin por satlite y los hornos de microondas. Pero hasta hace poco tiempo, para el aficionado a la electrnica 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. El los ltimos aos 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 lgica discreta. Diversos fabricantes ofrecen amplias gamas de microcontroladores para todas las necesidades. Pero sin duda, hoy en da los microcontroladores ms aceptados para diseos 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 poltica de Microchip al ofrecer la documentacin y todo el software necesario de manera gratuita en su pagina Web www.microchip.com Esto, junto con otras cuestiones tcnicas, han hecho que hoy en da resulte muy fcil incluir los microcontroladores PIC no solo en los diseos de los aficionados a la electrnica, sino tambin en complejos sistemas digitales. Muchas de estas aplicaciones son sobre el control de servomecanismos tales como brazos mecnicos y robots en general. En este proyecto se implementa un carrito evasor de obstculos usando estos microcontroladores PIC. Adems, en este reporte se intenta que el lector logre entender de manera sencilla los pasos en la implementacin del carrito evasor de obstculos y obtenga un panorama de la programacin utilizada en estos dispositivos electrnicos 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 microcontrolador en particular, los dems pueden aprenderse 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 obstculos, usando como microcontrolador los PICs, mostrando los detalles electrnicos de la circuiteria y la programacin, para mejoras y modificaciones futuras que el lector quisiese implementar.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -3-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


PLANTEAMIENTO DEL PROYECTO Se desea desarrollar un carrito que sea controlado por un microcontrolador PIC, mediante el uso de diferentes dispositivos electrnicos, tales como sensores, motores de corriente directa, etc. El objetivo principal del carrito es evadir obstculos 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 tambin de otros ngulos para tener opciones para decidir el cambio de la trayectoria para evadir el obstculo. La solucin a la problemtica planteada en los prrafos 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 descripcin general del proceso de solucin y construccin del carrito.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -4-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


DESCRIPCIN GENERAL DEL PROCESO DE SOLUCIN Y CONSTRUCCIN DEL CARRITO En el planteamiento de la construccin de este robot se consideraron los siguientes puntos: Nivel fsico: comprende la estructura fsica, las unidades motoras, y las etapas de potencia. Nivel de reaccin: esta formado por el conjunto de sensores y los sistemas bsicos para su manejo. Nivel de inteligencia: abarca la planificacin a largo plazo.

Para llegar al modelo final del robot se paso por un proceso de experimentacin, ya que se probaron diferentes carroceras y diferentes tipos de motores. La primer prueba que se hizo como parte del proceso de experimentacin fue hacer un seguidor de lnea en el que se utiliz el PIC 16F84, el cual controlaba las seales 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 lnea 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 lnea deber de seguir el camino sin desviarse de la lnea negra. La eleccin de los colores es obvia, el blanco y el negro tienen unas caractersticas especiales a la hora de reflejar luz que no la tienen otros colores. La construccin del seguidor de lnea nos dejo un primer acercamiento tanto en la programacin del PIC, como la utilizacin de motores de DC. Este conocimiento adquirido fue de gran utilidad para llegar al objetivo final, o sea obtener un robot evasor de obstculos. Debido a que el objetivo de este reporte es explicar el software y el hardware del robot evasor de obstculos, se omiten tanto el programa que se grabo en el PIC 16F84 como el procedimiento para la construccin fsica del seguidor de lnea. Despus de contar con la experiencia obtenida en la realizacin del seguidor de lnea pasamos a la elaboracin del robot. La primera carrocera 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 tena dos motores de DC. El motor posterior controlaba la traccin 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 tenia que activar el motor de traccin. Sin embargo para controlar sus giros se diseo un algoritmo que consista 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 traccin para que el carro retroceda una distancia determinada, a continuacin las llantas delanteras se hacen girar hasta el otro extremo y despus el carro debe avanzar cierta distancia, y por ultimo se manda la instruccin de que por medio de un cierto tiempo de activacin del motor frontal se centren las llantas. Es importante mencionar que al trmino de esta secuencia el carro gira aproximadamente 20. De esta forma, dependiendo del nmero de grados que se quera que el carro girara se repeta esta secuencia el nmero de veces necesario. Como se pretenda tener un carro evasor de obstculos se pens en colocar varios sensores que indicaran si el carro poda seguir avanzando o no. Despus se llego a la conclusin de que solo s necesitara un solo sensor, pues si se montaba en un motor entonces s poda hacer un barrido de 180 para determinar si el carro tenia una posible salida. Pero si no encontraba una salida UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -5-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


entonces se le indicara al motor que moviera el sensor hacia atrs y de esta forma poder medir la distancia trasera y saber cuanto poda retroceder el carro, o en su defecto si no haba distancia suficiente no se movera hacia atrs. 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. Adems como para poner las llantas delanteras al centro se le indicaba al motor frontal que girara un cierto tiempo, entonces al irse descargando las bateras que alimentaban al circuito las llantas ya no quedaban centradas. Esto suceda por que a menor corriente el motor giraba ms despacio y entonces se necesitaba ms tiempo para que las llantas quedaran centradas. Un factor que determino el elevado consumo de corriente fue el peso del carro. Adems de que el carro no hacia 100% lo solicitado, otro factor para decidir cambiar de carro fue el consumo de energa, pues como ya se menciono el gran peso del carro hacia que se acabaran mas rpido las pilas. Esto por supuesto no es rentable. Para solucionar este problema se resolvi cambiar de carrocera y de motores. Ahora la carrocera tena que ser menos pesada y de tamao lo ms pequeo posible. En cuanto a los motores se pens en aquellos que estn montados en un mecanismo de engranes y que hace que tengan un mejor torque. Adems los motores deban consumir poca corriente. As pues, despus de una bsqueda 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 atrs. 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 lnea recta y cuando se quiera que gire, la llantita trasera debe seguir el movimiento. En la figura 1D se ve el robot.

Fig. 1D Robot evasor de obstculos. El inconveniente que s pens que poda presentarse fue tener motores con una marcada diferencia en sus revoluciones, lo cual provocara que el robot no avanzara en lnea recta. Sin UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -6-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


embargo los motores que se consiguieron tienen casi el mismo nmero de revoluciones y con un adecuado torque. La primera base del carro fue de plstico delgado, pero al colocar los motores y el circuito la base se pandeo. Por lo que se opto por cambiar la plataforma. El nuevo material de sta fue de madera delgada, obteniendo una mayor estabilidad y una mejor facilidad para trabajar con ella, pues si se requiere hacer una perforacin o poner algn aditamento especial es ms cmodo. Al montar todo en su sitio y hacer las pruebas correspondientes se presento el problema de que la llanta loca no giraba correctamente provocando que el robot no se desplazara en lnea recta, esto debido al tipo de superficie en la cual se realizaron las pruebas. Para resolver este inconveniente se consigui una llanta loca con diferentes caractersticas, entre las que destacan un menor tamao, menor peso y mejor juego. El mecanismo para mover el sensor analgico fue el mismo que se utilizo en el primer robot, es decir, el sensor se acoplo en un motor de DC. La figura 2D muestra al sensor montado en el motor. de DC.

Fig. 2D Sensor analgico montado en motor de DC. Comparando a nivel software los dos carritos bsicamente tienen el mismo programa, lo nico que cambia es la parte donde se manda que el robot busque la salida, pues como ya se menciono el primer carro utiliza una secuencia de 5 pasos para poder girar, en tanto que el segundo gira al hacer funcionar un motor en un sentido y el otro en sentido opuesto. El programa que se grabo en el PIC 16F877 es el encargado de que el robot no choque, evada obstculos y tome la mejor decisin para evadirlos. El PIC 16F877 se encarga de recibir informacin del exterior y procesarla, sin embargo la forma en como se procesa esta informacin depende de la lgica del diseo del programa. Para resolver un problema mediante la programacin existen distintas formas o modos de solucionarlo. Sin embargo el programa que se realizo cumple con lo siguiente: UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -7-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Fcilmente comprensible para quien pretenda leerlo. Obtiene resultados de forma rpida. Ocupar la menor memoria posible. El programa esta subdividido en programas ms 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 especficas y dan resultados rpidos. 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 analgico GP2Y0A21YK, que esta 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 algn motivo en cualquier instante el robot se queda sin energa o se resetea, no importar donde quede posicionado el sensor por que al reiniciarse la secuencia el sensor primero busca su punto de referencia. Este prrafo explica el mecanismo y la lgica que se uso para montar el sensor en el motor. Como ya se menciono el sensor busca cuatro puntos: derecha, centro, izquierda y atrs. Para lograr esto se fabrico una placa pequea, en la cual hay dispuestos cuatro conductores de cobre, uno en cada lado de la placa. Esta primer placa esta sujeta al bastidor del motor B02 1:280. Una segunda placa se monto en el eje del motor; de esta forma cuando el motor gira tambin lo hace la placa. La placa que esta montada en el eje dispone de un pequeo arco metlico que esta 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 metlico con los conductores de cobre. Esta situacin provoca que se cierre un circuito y que se polarice cada uno de los conductores, que a su vez estn conectados al PIC 16F877. Tomando como referencia el frente del carrito se tiene lo siguiente: los conductores derecho, centro, izquierdo y trasero estn 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.

Fig. 3D Mecanismo para mover sensor analgico

La figura 4D muestra un esquema de conexin de los conductores de cobre con los bits correspondientes en el PIC. UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -8-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Centro RC5

Izquierda RC6

Derecha RC4

RC7 Atrs Fig. 4D Placa con cuatro conductores de cobre

Despus se debe posicionar el sensor analgico al centro, es decir en la posicin 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 continua avanzando hasta que el sensor detecta que hay un obstculo a una distancia aproximada de 80cm. Cuando esto pasa el carrito disminuye su velocidad y se aproxima al obstculo hasta que se detiene a una distancia de ms o menos 20cm. Cundo el carrito esta frente al obstculo, 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. Despus 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 atrs para medir si hay distancia libre para que el robot retroceda. Si el robot puede retroceder, se mueve aproximadamente 20cm hacia a tras, 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, por que no hay salida ni enfrente ni atrs. En esta situacin, para que el robot se mueva uno de los obstculos debe quitarse. Es importante aclarar que el robot no esta capacitado para trabajar en un contorno de laberinto. Un punto importante que debe resaltarse es que cuando el robot encuentra un obstculo debe decidir cual es la mejor trayectoria de movimiento. Es decir, si el carrito queda mas a la derecha del obstculo y a pesar de que a al izquierda de ste tambin haya salida, debe girar a la derecha porque es la trayectoria de movimiento ms corta. La figura 5D ejemplifica esta situacin.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. -9-

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Obstculo
Mejor trayectoria de movimiento Trayectorias de movimiento 30

Robot

Fig. 5D Situacin en la que el robot debe decidir la mejor trayectoria de movimiento

En esta figura se aprecia que cada 30 se hace una lectura. De esta forma se realizan un total de siete lecturas. A dems se muestra que a pesar de que tambin hay salidas a la derecha y a la izquierda, la ms conveniente es la que se encuentra ms cercana al obstculo, por que el robot no tiene que girar mucho para evadir el objeto.

SOLUCIN POR HARDWARE Para solucionar el problema de Hardware (mencionados anteriormente) se tuvo que elegir minuciosamente el material (componentes electrnicos y motores) de acuerdo a las necesidades del carrito evasor de obstculos, basndonos en sus caractersticas tcnicas. Los materiales utilizados se mencionan a continuacin: Material utilizado: 1 PIC 16F84 1 PIC 16F877 2 Sensores infrarrojos CNY- 70. 2 motoreductores modelo B02 1:280 1 motorreductor modelo B01 1:200 1 sensor analgico Sharp modelo GP2Y0A21YK 2 Drivers L293D 3 Reguladores de voltaje LM7805 1 Cristal a 4Mhz con dos capacitores de 22pF

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 10 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Especificaciones del material:

Memoria programa Memoria de datos EEPROM Memoria de datos Ram Instrucciones Interrupciones Entradas / Salidas Terminales Frecuencia maxima Timer / Contador Convertidos A/D Canales PWM

PIC16F84 1k X 14 64 bytes 68 bytes 35 4 13 18 10 Mhz 8 bits No No

PIC16F87 8 Kbytes 256 bytes 368 bytes 35 14 33 40 20 Mhz 3 Timers Si 2

2 de 8 bits 1 de 16 bits

Figura 2. Diagrama del PIC16F877.

Figura 1. Diagrama del PIC16F84.

Sensor infrarrojo CNY- 70. El CNY70, que se muestra en la figura 3, es un sensor ptico reflexivo que tiene una construccin compacta dnde el emisor de luz y el receptor se colocan en la misma direccin para detectar la presencia de un objeto utilizando la reflexin del infrarrojo sobre el objeto. La longitud de onda de trabajo es 950nm. El detector consiste en un fototransistor. Caractersticas: La construccin compacta con distancia de centro-a-centro de 0.1 ' (pulgadas) No necesita ningn ambiente especial. Seal de salida alta. El coeficiente de temperatura bajo. Detector provista de filtro ptico. El ratio de corriente de transferencia (CTR) tpico es del 5%.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 11 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Figura 3. Sensores infrarrojos CNY-70. Motoreductor B02 1:280. Caractersticas a 5Vdc: - Torque 4.6 KgF*cm (cantidad de fuerza aplicada) - Velocidad 30 RPM. - Consumo de corriente sin carga (sin peso): 80 mA. - Consumo de corriente mxima: 600mA. Cuenta con una salida con eje de 5mm de dimetro 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 analgico modelo GP2Y0A21YK que se muestra en la figura 6.

Figura 4. Motoreductor B02 1:280.

Motoreductor B01 1:200 Descripcin: Motoreductor B01 1:200. Caractersticas a 5Vdc: - Torque 3.4 KgF*cm (cantidad de fuerza aplicada) - Velocidad 42 RPM. - Consumo de corriente sin carga: 80 mA. - Consumo de corriente atrancado: 600mA. Cuenta con una salida con eje de 5mm de dimetro y orificios para facilitar su montaje con tornillos. Medidas: 65mm X 22 mm X 18.5mm. Peso: 32gr. UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 12 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


Este motoreductor, que se muestra en la figura 5, se utiliz para mover las llantas de Cintra modelo RS65AM7 con orificio de 5mm, estas llantas se muestran en la figura 5(a).

Figura 5. Motoreductor B01 1:200.

Figura 5(a). Par de Ruedas de Cintra amarillo modelo RS65AM7.

Sensor GP2Y0A21YK. Sensor de distancia analgico SHARP. Sustituto del GP2D12. Este sensor, que se muestra en la figura 6, puede determinar la distancia a la que se encuentra un objeto en un intervalo de 10 a 80 cm. Tiene un conector de tres pines: 1. Salida. Esta vara su voltaje con respecto a tierra dependiendo de la distancia a la que se encuentre el objeto o pared del sensor. 2. Tierra. 3. Vcc. El voltaje de operacin debe de ser de 4.5 v. a 5.5 vdc.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 13 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Figura 6. Sensor analgico GP2Y0A21YK. El L293D, que se muestra en la figura 7, es un circuito integrado o chip, que puede ser utilizado para controlar simultneamente la velocidad y direccin de dos motores de corriente continua (contine dos puentes H). Contiene 4 terminales digitales (2,7,10, 15) para controlar la direccin de los motores. Los pines "enable" (1,9) admiten como entrada una seal PWM, y se utiliza para controlar la velocidad de los motores con la tcnica de modulacin de ancho de pulso. Los motores van conectados entre uno de los pines 3, 6, 11, o 14. La tensin Vss es la que alimentar y dar potencia al motor. A continuacin se explica brevemente lo que significa PWM o Pulse Width Modulation. La modulacin de la anchura de pulsos es usada en diferentes aplicaciones, siendo las ms comunes el control de servomotores y como sistema de comunicacin. En el caso de control de servomotores el funcionamiento es como sigue; la velocidad de rotacin del motor ser funcin de la anchura del pulso. Dado que la velocidad de rotacin depende del valor medio de la tensin suministrada, cuanto ms ancho sea el pulso mayor ser el valor medio de la tensin aplicada al motor y por ende mayor velocidad de rotacin. En caso de querer disminuir la velocidad de este, solo se debe aplicar pulsos ms estrechos, los cuales darn como resultado un valor medio neto de tensin aplicada al motor menor que en el caso anterior. Para lograr estos pulsos se uso el PIC 16F877. En el programa que se grabo en el PIC se usan los registros Ciclos_ON y Ciclos_OFF para controlar la velocidad de los motores. En el registro Ciclos_ON se almacena el tiempo que el motor estar energizado, y en el registro Ciclos_OFF se guarda el tiempo que el motor estar desconectado. La salida del PIC se conecta al L293D para que se aumente la corriente y hacer que los motores funcionen. La salida del PIC se conecta al L293D para que se aumente la corriente y hacer que los motores funcionen. En la grfica 1 se ve que a mayor tiempo de activacin del voltaje alto aumenta el ciclo de trabajo; y a menor tiempo de activacin del voltaje alto el ciclo de trabajo es menor. Cuando este tipo de modulacin se aplica a un motor de DC se logra controlar su velocidad.

Grafica 1. Modulacin PWM

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 14 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


Los dos motoreductorres B01 1:200. que hacen girar las llantas frontales estn conectados como lo muestra la siguiente figura.

RB2 RB0 RB3

Motor llanta Izquierda

Motor llanta derecha

RB1

RB4 RB5

Figura 7. L293D.

Para hacer funcionar el motoreductor B02 1:280, que hace girar el sensor se usa otro L293D. Bsicamente se conecta igual que en la figura anterior, excepto que los bits de control cambian. El bit de habilitacin es el RC2 y los bits de control son RC0 y RC1. Cabe mencionar que de este segundo L293D solo se usa un canal. Reguladores de voltaje LM7805: En la mayora de las aplicaciones se requiere una tensin fija y estable de un determinado valor. La lnea de reguladores ideales para este tipo de necesidades es la conocida como LM78XX. Las primera letras y dos nmero corresponden a la denominacin, mientras que las dos ltimas XX deben ser reemplazados por la tensin de salida requerida, que en nuestro caso es de 5V. Cada uno de estos dispositivos posee slo tres terminales, la terminal 1 (I) corresponde a la entrada de tensin 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.

Figura 8. Regulador de voltaje LM7805.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 15 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


Cristal 4Mhz: Se llama oscilador de cristal a aquel oscilador que incluye en su realimentacin un resonador piezoelctrico. El oscilador de cristal, que se muestra en la figura 9, se caracteriza por su estabilidad de frecuencia y pureza de fase, dada por el resonador. La frecuencia es estable frente a variaciones de la tensin de alimentacin. La dependencia con la temperatura depende del resonador, pero un valor tpico para cristales de cuarzo es de 0' 005% del valor a 25C, en el margen de 0 a 70C. Estos osciladores admiten un pequeo ajuste de frecuencia, con un condensador en serie con el resonador, que aproxima la frecuencia de este, de la resonancia serie a la paralela. Este ajuste se puede utilizar en los VCO para modular su salida. El VCO (Oscilador Controlado por Voltaje) es un oscilador electrnico diseado especficamente para ser controlado en frecuencia de la oscilacin por una entrada de voltaje. La frecuencia de la oscilacin vara con el voltaje de corriente continua que se aplica, mientras que las seales de modulacin se pueden alimentar en el VCO para generar la modulacin en frecuencia (FM), la modulacin en fase (PM) y la modulacin pulse width (PWM).

Figura 9. Cristal.

SOLUCION POR SOFTWARE La solucin 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 continuacin se describen tanto el programa principal como sus subrutinas. Esta descripcin consta de dos partes: una explicacin de lo que hace cada rutina y su diagrama de flujo correspondiente.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 16 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Programa Principal Este programa contiene las subrutinas que hacen que el carrito funcione. El orden en el cual estn dispuestas las subrutinas es muy importante, ya que si se altera el resultado ser un programa que no haga lo que debe hacer. A continuacin se menciona de manera general el funcionamiento de cada subrutina. Cuando el robot encuentra un obstculo, este se detiene y su sensor comienza a realizar un barrido de 180 para determinar las posibles direcciones de trayectoria de movimiento; como se estableci la lectura del sensor se realiza cada 30, permitindose un total de 7 lecturas. Sin embargo, para lograr esta rotacin de 30, en la implantacin del programa en el PIC, se estableci un periodo de tiempo para permitir la rotacin del motor que controla el movimiento del sensor; en la prctica se observa que es de 500ms. Este periodo de tiempo se obtiene utilizando interrupciones, con la ayuda del TIMER0, del Preescalar y de un registro llamado AumentoPreescalar. Recuerde que el mximo tiempo logrado con el TIMER0 y el preescalar es de aproximadamente 65.5ms (mximo tiempo antes del desbordamiento del TIMER0). Pero el inconveniente de usar esta interrupcion, 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 de la interrupcin, pero en este caso no se necesita que el sensor empiece a barrer, por que el carrito esta avanzando y no a encontrado un obstculo. Considerando que la interrupcin se da cada cierto tiempo sin importar que est haciendo el robot y que slo se requiere ejecutar la parte del algoritmo de la interrupcin 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 interrupcin, es decir, a pesar de que se de la interrupcin no siempre se procede a ejecutar todo el algoritmo de la rutina de interrupcin y solo cuando se habilita la bandera, esta bandera se implementa con el bit 0 del registro AutorizaInterrupcin. El programa empieza de la siguiente forma: El bit 0 del registro AutorizarInterrupcion se pone a cero. Esto se hace para que al momento de que suceda la interrupcin no se entre a la parte importante de la subrutina que atiende la interrupcin, sino que solo se vuelva habilitar la interrupcin 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 explico anteriormente esta polarizacin ocurre cundo el arco metlico que esta montado en la placa que esta sujeta al eje del motor hace contacto con el conductor correspondiente. Ya se menciono que existe una placa que esta 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 obstculo. El registro RegistroSalidas debe limpiarse antes de que sea utilizado. Este registro almacena las posiciones donde hay una salida. UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 17 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

La llamada limpia_Mascara hace que el registro Mascara tome el valor de b00000001. Se empieza con este valor pues es la posicin de la primera lectura. Para la siguiente lectura la mascara deber tener el valor b00000010, y la siguiente el valor b00000100, etc. Es decir se va rotando el registro mascara en cada nueva lectura. Siguiendo el orden del Programa Principal, nuevamente a parece la llamada de subrutina derecha para que se pueda empezar el barrido de 180 a partir de la derecha. El bit 0 del registro PrimeraLectura se pone a uno para hacer la primer lectura. Se debe hacer esto por que cuando el sensor esta a la derecha es cuando se autoriza la interrupcin y entonces se necesita que pasen 500ms para hacer la primer lectura, es decir no se estara tomando lectura del extremo derecho. Pero cuando se activa el registro PrimeraLectura se garantiza que se haga una lectura en el extremo derecho. Una vez que el sensor esta colocado a la derecha se debe poner el bit 0 del registro AutorizarInterrupcion en uno para que cuando entre la interrupcin 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 llevandose a cavo la correspondiente conversin 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 interrupcin queda habilitada y por tanto se hacen las lecturas. Despus hay que volver a poner el bit 0 del registro AutorizarInterrupcion a cero para unicamente limpiar la bandera de desbordamiento de TIMER0 al entrar a la rutina de interrupcin. La subrutina LeeSalidas 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 GiraSalida 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.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 18 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Principallll

AutorizarInterrupcion bo

Call derecha

Call centro Principal+3 Call avanza Principal+4 RegistroSalidas b00000000

Limpia_Mascara

Call derecha

PrimeraLectura b0

AutorizarInterrupcion b0

Call izquierda

AutorizarInterrupcion b0

Call LeeSalidas

GiraSalida

Si
CentroPorIzq

HaySalida = 0

No
Retrocede

Fig. 10 Diagrama de flujo del Programa Principal. UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 19 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Subrutina: derecha

Esta subrutina se encarga de mover el sensor analgico (fig. 4D), que esta montado en un motor de DC de 5v (fig. 3D), hacia la derecha. Su funcionamiento es como sigue: por medio de la subrutina Velocidad se hace girar el motor. Este motor gira hasta que encuentra un sensor (conductor de cobre). Lo que hace este sensor es mandar un voltaje alto. Entonces cuando el bit 4 del puerto C recibe un voltaje alto el motor se detiene. Se detiene por que la subrutina Velocidad se manda llamar reiterativamente siempre y cuando el bit 4 del puerto C no tenga un voltaje alto. En el Programa Principal es necesario hacer una primera llamada de esta subrutina porque la posicin del sensor no es nica. Es decir, en el momento en el cual se decida apagar el carrito la posicin del sensor puede ser cualquiera. Entonces al volver a encender el carrito se debe contar con un punto de referencia, el cual sirva para ubicar el sensor y a partir de esa posicin empezar los de ms movimientos. En el diagrama de flujo se repite el bucle de la macro Velocidad que corresponde a poner en marcha el motor que hace girar el sensor, se rompe cuando por el puerto PORTC en su bit 4 se detecta un voltaje alto. La figura 11 muestra el diagrama de flujo de esta subrutina.

Derecha

Macro Velocidad Ciclos_ON=9 Ciclos OFF=1 Sentido

No PORTC b4 =1

Si

RETURN

Fig. 11 Diagrama de flujo de subrutina derecha

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 20 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Subrutina: centro Esta subrutina sirve para mover el sensor analgico hacia el centro (fig. 4D). Su funcionamiento es igual que el de la subrutina Derecha, excepto que el motor se para cuando el bit 5 del puerto C recibe un voltaje alto. La figura 12 muestra su diagrama de flujo.

En el Programa Principal se usa esta subrutina para posicionar el sensor analgico al centro y de esta forma poder medir si hay o no un obstculo que evite la trayectoria de movimiento hacia delante del carrito. Si no se hiciera esta llamada de subrutina el sensor tendra cualquier posicin y entonces el carro no seria capaz de determinar si tiene camino libre o no.

Centro

Macro Velocidad Ciclos_ON=9 Ciclos OFF=1 Sentido No

No Si PORTC b5 =1

Si

RETURN

Fig. 12 Diagrama de flujo de subrutina centro

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 21 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


Subrutina: avanza

La subrutina Avanza sirve para mover el carrito hacia delante. Sin embargo se encarga adems no solo de mover el carro sino tambin de saber cual es la distancia que hay del obstculo al carro y dependiendo de esta distancia aumentar o disminuir la velocidad. Tambin realiza la funcin de que una vez detectado un estorbo, el carro debe acercarse a l a no menos de 20cm, y una vez estando a esa distancia indicar al carro que se detenga. La justificacin de la conversin A/D que se uso en el programa fue a la derecha. La mxima velocidad se obtiene cuando no hay ningn objeto a una distancia no menor de 80cm aproximadamente. En cambio si a esta distancia se encuentra el objeto, entonces disminuye la velocidad. Hay que recordar que el sensor analgico tiene un intervalo de medicin comprendido entre 10 y 80 cm. Lo que significa que dependiendo de la distancia que cens su salida tendr un voltaje proporcional. Para que el PIC pueda trabajar con este valor es necesario pasar este voltaje por el convertidor A/D incluido en el PIC. Como el PIC utiliza 10 bits para la conversin hay dos registros (ADRESH y ADRESL) donde se almacena el resultado. Tambin hay que decidir hacia donde se quiere que se haga la justificacin del almacenamiento del resultado de la conversin. Es decir como el PIC usa 10 bits y como los registros son de 8 bits, entonces un registro almacenara 8 bits en tanto que el otro solo guardara 2 bits. Cuando se selecciona justificacin a la derecha el registro ADRESL guardara los 8 bits menos significativos de la conversin, mientras que el registro ADRESH tendr los 2 bits ms significativos. Si la justificacin es a la izquierda el registro ADRESH almacenara los 8 bits ms significativos y el ADRESL los 2 bits menos significativos. Como el objetivo es que el carro no choque, entonces conforme avanza se debe ir censando el camino. Para lograr esto se hace una llamada a la subrutina ConversionA_D, la cual toma una lectura de la distancia que esta midiendo el sensor analgico y despus hace su conversin. Como ya se menciono el resultado de esta conversin se almacena en los registro ADRESH y ADRESL. Pero por razones prcticas en el programa se vaca el contenido de estos registros en los registros ParteAlta y ParteBaja, respectivamente. Una vez que se tiene el resultado de la conversin se analiza el contenido de los registro ParteAlta y ParteBaja. Es importante aclarar que los voltajes de referencia del convertidor A/D se seleccionaron de 5v y tierra, entonces si se cuenta con 10 bits esto implica 2 niveles de voltaje para la conversin A/D. Cada nivel tiene un valor de 5 210 V, o sea 4.88 mV. Por otra parte para distancias menores a 20cm el sensor tiene voltaje de salida mayor a 1.25V, entonces 8 bits no serian suficientes para hacer la conversin A/D de estas distancias. Esto es as porque con 8 bits se tienen 256 niveles de voltaje y como cada nivel tiene un valor de 4.88mV, entonces el mximo voltaje que se podra convertir sera 256*4.88mV que es igual a 1.25V. Para distancias mayores a 20cm se necesita solo un registro (ADRESL) ya que el sensor da voltajes de salida menores a 1.25V. De manera que para identificar si la distancia que hay entre el carrito y el obstculo es menor de 20cm, es suficiente con verificar el estado del registro ParteAlta, es decir, si este ultimo registro esta en cero se detiene el carrito.
10

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 22 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


Como para distancias mayores a 20cm solo se necesitan 8 bits se pasa al anlisis del registro ParteBaja. Como se esta interesado en que el carro tenga su mayor velocidad cuando tiene espacio libre mayor a 80cm y su menor velocidad a distancias menores de 40cm, se impone una condicione para obtener estos resultados. Si el registro ParteBaja tiene un valor menor a 150 se asigna la mxima velocidad, en caso contrario se asigna la menor velocidad. Se aclara que solo hay dos velocidades. Es importante sealar que bastara analizar el registro ParteBaja, por que con un solo registro se pueden medir distancias mayores a 20cm, sin embargo se contempla la posibilidad de que en algn momento dado el carro este a distancias menores de 20cm. Esto puede pasar cuando el carro se coloca frente a un obstculo a una distancia menor de 20cm, o cuando el carro esta avanzando y se coloca un objeto frente a el a una distancia menor de 20cm Con el registro ParteBaja es posible medir hasta distancias mayores a 15 cm, pero para distancias menores a esta se necesitara del registro ParteAlta. Entonces para distancia menores a 20cm y mayores a 15 cm solo hay que revisar el registro ParteBaja (el registro ParteAlta estara en ceros), pero para distancias menores a15 cm se tiene que revisar el registro ParteAlta. La figura 13 muestra el diagrama de flujo de esta subrutina.

Avanza

Call ConversionA_D

Si
ParteAlta >0

No Si
ParteBaja >250

No Si
ParteBaja >150

No
Macro Velocidad Ciclos_ON=9 Ciclos OFF=1 Sentido

detener Macro Velocidad Ciclos_ON=9 Ciclos OFF=1 Sentido

RETURN

Fig. 13 Diagrama de flujo de subrutina avanza


UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 23 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Subrutina: retrocede Se encarga de mover el carro hacia atrs. Primero llama la subrutina atrs para que el sensor apunte para atrs. Luego manda llamar la subrutina mide_Distancia_tracera, la cual se encarga de medir si hay o no espacio suficiente para que el carro se haga hacia atrs. Sin embargo existe un contador llamado Distancia_de_reversa, el cual indica que a pesar de que haya libre camino de reversa la mxima distancia que puede retroceder es de 20cm. De esta forma, esta rutina termina ya sea por que no hay espacio suficiente para retroceder o por que el carrito ya retrocedi lo suficiente (20cm). Cualquiera que sea el motivo por el que termina la subrutina el regreso lleva a la parte del Programa Principal con etiqueta sensar. La figura 14 muestra el diagrama de flujo de este procedimiento
retrocede

Distancia_de_reversa

d250

atras

libre

mide_Distancia_tracera

No
HaySalida b0 =1

Si
Macro Velocidad Ciclos_ON=9 Ciclos OFF=1 Sentido

Decrementa Distancia_de_reversa

Si
Distancia_de_reversa =0 Goto sensar

No

Fig. 14 Diagrama de flujo de subrutina retrocede UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 24 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Subrutina: GiraSalida

Hace que el carro gire hacia donde se encuentra la salida ms prxima (fig. 5D). Analiza el registro RegistroSalidas para saber de que lado se encuentra la salida. Por medio de la rutina velocidad el carrito se mueve. Este movimiento contina hasta que se detecta la salida. La figura 15 muestra el diagrama de flujo de esta rutina.
GiraSalida

No
RegistroSalidas b3=0

Si
centro_por_Izq

No
La salida esta a la derecha? GiraIzquierda

Si
GiraDerecha

RevisaSalida

Si
ParteAlta >0

No Si
ParteBaja > 90

No
Goto Principal+3

Detener carro

Fig. 15 Diagrama de flujo de subrutina GiraSalida

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 25 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Subrutina: interrupcin Esta subrutina es la rutina de interrupcin. Como ya se menciono anteriormente solo se trabaja con la interrupcin por desbordamiento del TIMER0. Cuando el sensor esta a la derecha es cuando se debe autorizar la interrupcin y empezar a medir las distancias del carro al obstculo. Cuando el bit 0 del registro AutorizarInterrupcion y el del registro PrimeraLectura estn en uno se hace la primer lectura de distancia, que corresponde a la distancia que hay del carro a su derecha, luego se empieza a decrementar el registro AumentoPrescaler, cuando llega a cero se da la segunda lectura de distancia. Se inicializa el registro AumentoPrescaler (se usa este registro para conseguir el periodo de tiempo de 500ms, ya que con el taimer y el prescaler no es suficiente) y nuevamente se empieza a decrementar hasta que llegue a cero y as hacer la tercera lectura de distancia. Este proceso continua hasta que el bit 0 del registro AutorizarInterrupcion se pone a cero. La subrutina se divide en dos partes. Una para atender la interrupcin pero sin entrar al algoritmo que hace las lecturas de distancias y sus correspondientes conversiones A/D. Y otra que si entra a esta rutina. La figura 16 muestra el diagrama de flujo correspondiente.
interrupcion

Si
AutorizarInterrupcion b0 =0

No
PrimeraLectura b0 =0

No Si

decrementa AumentoPrescaler

No
AumentoPrescaler = 0

Si

Call conversionA_D

Call guarda_conversionA_D

FinInterrupcion retfie

Fig. 16 Diagrama de flujo de subrutina GiraSalida UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 26 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Subrutina: conversionA_D Esta subrutina se encarga de hacer la conversin A/D de las distancias que mide el sensor analgico. Una vez hecha la conversin, el resultado se guarda en los registro ParteAlta y ParteBaja. Son necesarios dos registros porque la conversin usa diez bits. En general el procedimiento es el siguiente: se lee la seal analgica, se hace su conversin A/D y el resultado se vaca en los registros ParteAlta y ParteBaja. La figura 17 muestra su diagrama de flujo.

conversionA_D

Leer puerto analgico

conversin A/D

No Si

Ya termino conversion

Vaca resultado de conversin en registros ParteAlta y ParteBaja

RETURN

Fig. 17 Diagrama de flujo de subrutina conversionA_D

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 27 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Subrutina: guarda_conversionA_D Se encarga de guardar las posiciones de las distancias que son favorables. Como cada distancia se mide aproximadamente cada medio segundo y debido a que el sensor tarda aproximadamente tres y medio segundos en girar 180 esto implica que se podrn medir siete distancias. La posicin de cada distancia esta representada por cada bit del registro RegistroSalidas. Se usa el registro Mascara para activar o no el bit correspondiente a la posicin de cada distancia. El registro Mascara se va rotando a cada nueva lectura de distancia. En cuanto se verifica que la distancia es favorable se aplica la operacin lgica OR entre los registros Mascara y RegistroSalidas. Esta operacin hace que los bits del registro RegistroSalidas vayan indicando si hay o no una salida para el carrito. La figura 18 corresponde a su diagrama de flujo.

guarda_conversionA

Si
ParteAlta > o

No Si
ParteBaja > 90

No
Activa posicin Mascara or RegistroSalidas

Rota mascara

RETURN

Fig. 18 Diagrama de flujo de subrutina guarda_conversionA_D

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 28 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Subrutina: mide_Distancia_tracera

Esta rutina usa el sensor analgico para medir la distancia trasera del carrito. Su resultado indica si el carro tiene o no distancia suficiente para retroceder. Si hay distancia libre para que el carro se mueva hacia atrs el bit 0 del registro HaySalida se pone en uno, en caso contrario se pone a cero. La figura 19 muestra el diagrama de flujo correspondiente.

mide_Distancia_tracera

HaySalida b0

conversionA_D

Si
ParteAlta > 0

No Si
ParteBaja >25 0

No
HaySalida b0 1

RETURN

Fig. 19 Diagrama de flujo de subrutina mide_Distancia_tracera

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 29 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

Macro: Velocidad Esta macro se encarga de mover los tres motores. Esta macro tiene tres parametro: Ciclos_ON, Ciclos_OFF y sentido. Ciclos_On y Ciclos_OFF sirven para controlar la velocidad del motor mediante la modulacin PWM, y sentido sirve para indicar si el motor se mover hacia la derecha o asa la izquierda. Como ya se menciono esta macro esta en funcin de los parmetros que reciba. Dependiendo de que motor se mueva el carro comenzara a dezplazarse hacia delante o hacia atrs; si el motor que se activa es el del sensor, entonces el sensor comienza a girar. A continuacin, en la figura 20, se muestra el diagrama de flujo correspondiente a esta rutina.
Macro Velocidad

Carga Ciclos_ON Carga Ciclos_OFF Carga sentido

Mueve sentido al puerto

Call Retardo_500us

Ciclos_ON

Ciclos_ON-1 No

Ciclos_ON = 0 Si

Desactiva Puerto

Call Retardo_500us

Ciclos_OFF

Ciclos_OFF-1 No

Ciclos_OFF = 0 Si

Termina Macro Velocidad

Figura 20. Diagrama de flujo de subrutina velocidad. UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 30 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

;********************************************************************* ;PROGRAMA PARA MOVER UN CARRITO: ;EL CARRITO NO DEBE CHOCAR ;DEBE DISMINUIR O AUMENTAR SU VELOCIDA DEPENDIENDO SI HAY O NO UN OBSTACULO ;SI EN FRENTE NO HAY SALIDA DEBE RETROCEDER ;********************************************************************* ;********************************************************************* LIST P=16F877A include<p16f877A.inc> __CONFIG & _XT_OSC Radix _CP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _LVP_OFF & _WRT_OFF & _DEBUG_OFF Hex

;DECLARACION DE CONSTANTES O EQUIVALENCIAS ;----------------------------------------CBLOCK 0x20 DELAY_50us DELAY_500us Ciclos_ON Ciclos_OFF ParteBaja ParteAlta AutorizarInterrupcion RegistroSalidas Distancia_de_reversa AumentoPrescaler PrimeraLectura HaySalida Distancia Mascara MascaraAux contador SalidaNumero ENDC

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 31 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

;********************************************************** ;definicion de macro para velocidad ;********************************************************** velocidad macro PORT,sentido,ciclos_on,ciclos_off local local movlw movwf movlw movwf Motor_ON movlw movwf call decfsz goto Motor_OFF clrf call decfsz goto endm PORT Retardo_500us Ciclos_OFF,F Motor_OFF+1 ; SI (Ciclos_OFF)=0 TERMINA MACRO. ; INHABILITA LOS DRIVRES. MOTOR PARADO. sentido PORT Retardo_500us Ciclos_ON,F Motor_ON+2 ;SI (Ciclos_ON)=0 salta a Motor_OFF. ;HABILITA LOS DRIVER. MOTOR EN MARCHA. Motor_ON Motor_OFF ciclos_on Ciclos_ON ciclos_off Ciclos_OFF ;CARGA EL REGISTRO Ciclos_ON con el valor de la ;constante ciclos_on ;CARGA EL REGISTRO Ciclos_OFF con el valor de la ;constante ciclos_off

;********************************************************** ;INICO DEL PROGRAMA ;********************************************************** org goto org goto 0 inicio 4 interrupcion

inicio clrf clrf PORTB PORTC

bsf bsf movlw movwf bsf

STATUS,RP0 ADCON0,7 b'00000111' OPTION_REG PORTA,0

;ACCEDER BANCO 1 ;ADCON0=ADCON1, PRIMER BIT DE PUERTO ;(A) QUEDA DECLARADO COMO ENTRADA ANALOGICA ;PRESCALER DE 256 ASIGNADO AL TMRO ;PRIMER BIT DE PUERTO(A) COMO ENTRADA

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 32 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


clrf movlw movwf bcf PORTB b'11110000' PORTC STATUS,RP0 ;PUERTO(C) QUEDA DECLARADO COMO ENTRADA Y SALIDA ;ACCEDER BANCO 0 ;PUERTO(B) QUEDA DECLARADO SALIDA

movlw movwf movlw movwf movlw movwf

d'60' TMR0 d'12' AumentoPrescaler b'10100000' INTCON ;CARGA EL REGISTRO AumentoPrescaler ;AUTORIZA LA INTERRUPCION TMRO Y LA GIE ;CARGA EL TMRO PARA QUE CUENTE 195

;********************************************************** ;PROGRAMA PRINCIPAL ;********************************************************** Principal bcf call call call clrf call call bsf bsf call bcf call btfss goto call goto AutorizarInterrupcion,0 Derecha Centro Avanza RegistroSalidas LimpiaMascara Derecha PrimeraLectura,0 AutorizarInterrupcion,0 Izquierda AutorizarInterrupcion,0 LeeSalidas HaySalida,0 Retrocede CentroPorIzq GiraSalida ;EL CARRO BUSCA LA SALIDA ;EL CARRO RETROCEDE ;SE AUTORIZA LA INTERRUPCION ;SENSORE GIRA A LA IZQUIERDA ;SE DETIENE INTERRUPCION ;VERIFICA SI HAY SALIDAS ;NO SE AUTORIZA INTERRUPCION ;SENSOR GIRA A LA DERECHA ;SENSOR GIRA A LA IZQUIERDA ;EL CARRO AVANZA ;SE PONEN A CERO TODAS LAS SALIDAS ;LA MASCARA SE CARGA ;SENSOR GIRA A LA DERECHA

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 33 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

;********************************************************** ;SUBRUTINA PARA AVANZAR EL CARRO ;********************************************************** Avanza call movlw subwf btfss goto conversionA_D d'1' ParteAlta,W STATUS,C otra_Distancia ;SE REVISA QUE EL CARRO NO CHOQUE ;SE LEE DATO EXTERNO Y SE CONVIERTE

otra_Distancia movlw subwf btfsc goto d'250' ParteBaja,W STATUS,C mayor_a_20cm ;PARA SABER SI EL VALOR DE LA CONVERSION A/D ;ES MENOR A 250 ;EL CARRO TIENE ESPACIO LIBRE MAYOR A 20cm

mayor_a_20cm movlw subwf btfsc goto despacio velocidad PORTB,b'00110110',d'4',d'6' goto rapido velocidad PORTB,b'00110110',d'9',d'1' goto detener clrf return PORTB Avanza Avanza d'150' ParteBaja,W STATUS,C rapido

;ESTE PROCEDIMIENTO ES PARA SABER ;QUE TANTA DISTANCIA LIBRE TIENE ;EL CARRO

;EL CARRO AVANZA DESPACIO

;EL CARRO AVANZA RAPIDO

;EL CARRO SE DETIENE

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 34 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

;********************************************************** ;SUBRUTINA PARA RETROCEDER EL CARRO

;********************************************************** Retrocede movlw movwf call libre call btfss goto mide_Distancia_tracera HaySalida,0 Principal+4 ;RUTINA PARA QUE NO CHOQUE EL CARRO ;CUANDO VA DE REVERSA ;SI NO PUEDE RETROCEDER SE REPITE ; PROCEDIMIENTO DE SENSAR AL FRENTE ;DECREMENTO DE LA DISTANCIA TRACERA ;QUE EL CARRO DEBE RETROCEDER ;SI EL CARRO RETROCEDE LA DISTANCIA ; PREFIJADA, SE REPITE PROCEDIMIENTO ; DE SENSAR AL FRENTE ;********************************************************* ;SUBRUTINA PARA QUE EL CARRO GIRE A SALIDA ;********************************************************** GiraSalida btfsc goto movlw movwf movlw movwf rota rlf movf andwf btfss goto rrf movf andwf btfss MascaraAux,F MascaraAux,W RegistroSalidas,W STATUS,Z GiraIzquierda Mascara,F Mascara,W RegistroSalidas,W STATUS,Z ;SE ROTA LA MASCARA A LA IZQUIERDA ;EL VALOR SE GUARDA EN LA MISMA MASCARA ;SE PREGUNTA SI EL REGISTRO DE SALIDAS ;TIENE UNA SALIDA EN ESA POSICION ;SI HAY SALIDA SE GIRA A LA IZQUIERDA ;SE ROTA LA MASCARA A LA DERECHA ;EL VALOR SE GUARDA EN LA MISMA MASCARA ;SE PREGUNTA SI EL REGISTRO DE SALIDAS ;TIENE UNA SALIDA EN ESA POSICION RegistroSalidas,3 Principal+3 b'00001000' Mascara b'00001000' MascaraAux ;SE CARGAN LAS MASCARAS CON EL MISMO ;VALOR PARA QUE EMPIECEN DESDE LA POSICION ;CENTRAL, Y A PARTIR DE AH MOVERSE. ;SI LA SALIDA ESTA AL FRENTE ;EL CARRO EMPIZA DESDE EL PRINCIPIO d'250' Duitancia_de_reversa atras ;MUEVE EL SENSOR HACIA ATRAZ

velocidad PORTB,b'00101101',d'9',d'1' decfsz goto goto Distancia_de_reversa,F libre Principal+4

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 35 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


goto incf goto rota GiraIzquierda movlw movwf d'110' contador ;EL CARRO GIRA A LA IZQUIERDA GiraDerecha SalidaNumero,F ;SI HAY SALIDA SE GIRA A LA DERECHA ;SE INCREMENTA EL REGISTRO QUE INDICA EN QUE ;POSICION SE ENCONTRO LA SALIDA

velocidad PORTB,b'00101110',d'5',d'5' decfsz goto decfsz goto goto contador,F GiraIzquierda+2 SalidaNumero,F GiraIzquierda FinGiraSalida

GiraDerecha movlw movwf d'110' contador ;EL CARRO GIRA A LA DERECHA

velocidad PORTB,b'00110101',d'5',d'5' decfsz goto decfsz goto goto contador,F GiraDerecha+2 SalidaNumero,F GiraDerecha FinGiraSalida

FinGiraSalida clrf goto PORTB Principal+3

;********************************************************* ;SUBRUTINA PARA REVISAR SI EL CARRO YA ENCONTRO LA SALIDA ;********************************************************** RevisaSalida call movlw subwf btfss DELANTE goto return MidePerteBaja movlw subwf d'90' ParteBaja,W conversionA_D d'1' ParteAlta,W STATUS,C MidePerteBaja ;LAS INSTRUCCIONES SIGUIENTES SON PARA ;SABER SI EL CARRO SE MOVIO LO SUFICIENTE ;COMO PARA QUE EL SENSOR MIDA QUE HAY ESPACIO ;SUFICIENTE PARA QUE EL CARRO AVANCE HACIA

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 36 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


btfss bsf return ;********************************************************** ;SUBRUTINA PARA ATENDER LA INTERRUPCION ;********************************************************** interrupcion btfss goto btfsc goto decfsz goto Empieza call call RegresoRapido movlw movwf FinInterrupcion movlw movwf bcf bcf retfie d'60' TMR0 INTCON,T0IF PrimeraLectura,0 ;AUTORIZA INTERRUPCON POR TMRO ;RECARGA EL TMRO ;REPONE FLAG DEL TMRO d'12' AumentoPrescaler ;RECARGA EL REGISTRO AumentoPrescaler conversionA_D guarda_conversionA_D ;PARA HACER CONVERSION A/D DE LAS DISTANCIAS ;GUARDA LAS DISTANCIAS SATISFACTORIAS AutorizarInterrupcion,0 RegresoRapido PrimeraLectura,0 Empieza AumentoPrescaler,F FinInterrupcion ;HASTA QUE ESTE REGISTRO MARQUE CERO ;SE PODRA ENTRAR A LA INTERRUPCION ;PREGUNTA SI PUEDE ENTRAR A LA INTERRUPCION STATUS,C HaySalida,0

;********************************************************** ;SUBRUTINA PARA CONVERSION A/D ;********************************************************** conversionA_D bsf ANALOGICO convertir call bsf espera btfsc goto bsf CONVERSION movf bcf ADCON0,2 espera STATUS,RP0 ADRESH,W STATUS,RP0 ;ACCEDER BANCO 1 PARA OBTENER PARTE BAJA DE ;SE OBTIENE PARTE BAJA DE CONVERSION A/D ;ACCEDER BANCO 0 ;PREGUNTA SI YA TERMINO CONVERSION A/D Retardo_50us ADCON0,2 ;TIEMPO PARA OBTENER LECTURA ANALOGICA ;INICIAR CONVERSION A/D ADCON0,0 ;ACTIVAR REGISTRO ADCON0 PARA LEER PUERTO

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 37 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


movwf movf movwf return ;********************************************************** ;SUBRUTINA PARA GUARDAR LAS CONVERSIONES A/D UTILES ;********************************************************** guarda_conversionA_D movlw subwf btfss goto bcf rlf return Verifica movlw subwf btfss goto fin bcf rlf return STATUS,C Mascara,F ;PONE A CERO EL BIT C PARA QUE NO AFECTE ;ROTACION IZQUIERDA DEL REGISTRO MASCARA d'90' ParteBaja,W STATUS,C activa_posicion ;PARA SABER SI LA CONVERSION A/D ES MENOR ; A 90. ESTE NUMERO ESRA RELACIONADO CON LA ;DISTANCIA MEDIDA d'1' ParteAlta,W STATUS,C Verifica STATUS,C Mascara,F ;PONE A CERO EL BIT C PARA QUE NO AFECTE ;ROTACION IZQUIERDA DEL REGISTRO MASCARA ;PARA SABER SI LA CONVERSION A/D SOLO ;OCUPO EL REGISTRO ADRESL ParteBaja ADRESH,W ParteAlta ;GUARDAR PARTE BAJA EN REGISTRO ;OBTENER PARTE ALTA DE CONVERSION ;GUARDAR PARTE ALTA DE CONVERSION

activa_posicion movf iorwf goto Mascara,W RegistroSalidas,F fin ;CARGA LA MASCARA EL REGISTRO W ; PARA VACIAR LA MASCARA EN EL REGISTRO ;DE SALIDAS

;********************************************************** ;SUBRUTINA PARA MEDIR DISTANCIA TRACERA ;********************************************************** mide_Distancia_tracera call movlw subwf btfss goto return verifica conversionA_D d'1' ParteAlta,W STATUS,C verifica ;PARA SABER SI LA CONVERSION A/D ;OCUPO EL REGISTRO ADRESH

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 38 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


movlw subwf btfss bsf return d'220' ParteBaja,W STATUS,C HaySalida,0 ;PARA SABER SI EL VALOR DE LA ;CONVERSION A/D ES MENOR A 250 ;ESTE NUMERO ESTA RELACIONADO CON ;LA DISTANCIA MEDIDA

;********************************************************** ;SUBRUTINAS PARA UBICAR PUNTOS DE REFERENCIA ;********************************************************** Derecha velocidad PORTC,b'00000101',d'3',d'7' btfss goto return ;********************************************************** Centro velocidad PORTC,b'00000110',d'3',d'7' btfss goto return ;********************************************************** Izquierda velocidad PORTC,b'00000110',d'3',d'7' btfss goto return ;********************************************************** atras velocidad PORTC,b'00000110',d'3',d'7' btfss goto return ;********************************************************** CentroPorIzq velocidad PORTC,b'00000101',d'3',d'7' btfss goto return PORTC,5 CentroPorIzq ;CUANDO EL BIT 5 DEL PUERTO C ES UNO ;EL SENSOR SE DETIENE PORTC,7 atras ;CUANDO EL BIT 7 DEL PUERTO C ES UNO ;EL SENSOR SE DETIENE PORTC,6 Izquierda ;CUANDO EL BIT 6 DEL PUERTO C ES UNO ;EL SENSOR SE DETIENE PORTC,5 Centro ;CUANDO EL BIT 5 DEL PUERTO C ES UNO ;EL SENSOR SE DETIENE PORTC,4 Derecha ;CUANDO EL BIT 4 DEL PUERTO C ES UNO ;EL SENSOR SE DETIENE

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 39 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS

;********************************************************** ;SUBRUTINA PARA LEER REGISTRO DE SALIDAS ;********************************************************** LeeSalidas bcf movlw subwf d'1' RegistroSalidas,W ;VERIFICA SI HAY SALIDA HaySalida,0 ;INDICA QUE NO HAY SALIDA

btfsc STATUS,C bsf return HaySalida,0 ;INDICA QUE HAY SALIDA

;********************************************************** ;SUBRUTINA PARA LIMPIAR LA MASCARA ;********************************************************** LimpiaMascara movlw movwf return b'00000001' Mascara ;LA MASCARA QUEDA CARGADA CON EL ;VALOR CONVENIENTE

;********************************************************** ;RETARDOS ;********************************************************** ;LAS SIGUIENTES SUBRUTINAS UTILIZAN UN CONTADOR, EL CUAL VAN DECRE ;MENTANDO. ESTE PROCESO HACE QUE SE CONSUMA TIEMPO. DE ESTA FORMA ;LAS SUBRUTINAS SIRVEN COMO TIEMPOS DE RETARDO ;**********************************************************

;RETARDO 20uSeg ;********************************************************** Retardo_50us movlw d'16' movwf DELAY_50us LOP_50us decfsz DELAY_50us,F goto LOP_50us return

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 40 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


;RETARDO 500uSeg ;********************************************************** Retardo_500us movlw movwf LOP_500us decfsz goto nop return DELAY_500us,F LOP_500us d'166' DELAY_500us

;RETARDO 100 mSeg ;**********************************************************

END

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 41 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


CONCLUSIONES A pesar de que el robot no es muy competitivo, presenta caractersticas interesantes. Sin embargo tiene detalles desafortunados como es el alto consumo de corriente debido al sensor analgico que se utiliz, ya que es el que consume en la mayor parte del tiempo ms corriente por que est tomando lecturas todo el tiempo en que el carrito esta en movimiento. Se propone para mejoras futuras hacer que este sensor solo este activado por intervalos cortos de tiempo para mejorar el rendimiento de energa. Por otra parte, el diseo, montaje y programacin del robot, a sido una experiencia, aunque ardua (ya que requiere mucho tiempo), muy divertida. Este robot es una primera aproximacin, que sin lugar a dudas puede ser mejorado. Las mejoras pueden darse desde la parte mecnica hasta la forma de energizar el circuito, como por ejemplo; pueden usarse brazos mecnicos, adaptar una cmara de video, se puede alimentar con celdas solares, entre otras mejoras. Sin embargo el resultado obtenido es aceptable.

Figura 12. Carrito Evasor de Obstculos. La utilizacin de celdas solares puede ser utilizado para que el carrito utilice energa solar y energa de una batera, y que adems estas celdas solares recarguen las bateras de alimentacin del carrito, esto con el fin de que el carrito funcione en cualquier momento y no se tengan problemas de energa.

21.1:- Brazos mecnicos.

21.2.- Plataforma mecnica.

21.3.- Celdas solares.

Figura 21. Posibles avances del robot. UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 42 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


Las experiencias que se obtuvieron al hacer el carrito fueron varias, entre ellas estan: 1.- La construccin del robot nos ayud a comprender el uso y funcionamiento de los microcontroladores PICs. 2.- En la parte de hardware, aprendimos a optimizar el uso de la energa, ya que tuvimos que investigar las caractersticas de los dispositivos, pero en particular la de los motores por ser los que consumen ms corriente. 3.- Al emprender cualquier proyecto es importante considerar desde el inicio los materiales y dispositivos que se van a utilizar, esto con el fin de disminuir tiempo y costos de bsqueda.

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 43 -

REPORTE PROYECTO DE INGENIERA EN ELECTRNICA I y II

CARRITO EVASOR DE OBSTACULOS


BIBLIOGRAFA: Palacios, Enrique; Remiro, Fernando y Lpez, Lucas. Microcontrolador PIC16F84, desarrollo de proyectos, Segunda Edicin. Editorial Alfo Omega Rama. Pgina de Internet: http://www.microchip.com Pgina de Internet: http://www.robodacta.com

UNIVERSIDAD AUTNOMA METROPOLITANA Unidad Iztapalapa Fecha de elaboracin: Martes, 16 de Enero de 2007. - 44 -

Vous aimerez peut-être aussi