Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
MEXICO D.F. 2008 INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA ROBOT MÓVIL PARA EXPLORACIÓN EN LUGARES DE DIFÍCIL ACCESO PARA EL SER HUMANO T É S I S P A R A O B T E N E R E L T I T U L O D E : INGENIERO EN COMUNICACIONES Y ELECTRONICA P R E S E N T A N MARIO ROBERTO PANCICH GUZMAN KARLOS JESUS PEREZ LOPEZ ENRIQUE TOVAR HERNÁNDEZ ASESORES: DR. FRANCISCO JAVIER GALLEGOS FUNES ING. GERARDO GIL MARTINEZ GALVAN AGRADECIMIENTOS A MIS PAPÁS: Agradezco a mis padres María Trinidad Guzmán Ramírez y Mario Pancich Olivares por su gran esfuerzo y sacrificio para concluir esta parte de mi formación académica que fue tan importante para mi. A MIS HERMANOS Y HERMANAS: Gracias por estar en todo momento conmigo, apoyándome en lo que esta a su alcance, también por sus diferentes puntos de vista que en algún momento fuero de gran utilidad para mi crecimiento y formación. A MIS ASESORES: Quiero darle gracias a mis asesores de tesis Dr. Francisco Javier Gallegos Funes e Ing. Gerardo Gil Martínez Galván por haberme apoyado en todo momento en la realización de este proyecto de tesis, ya que sus conocimientos, consejos y aportaciones fueron fundamentales para la realización de este documento. DE: MARIO ROBERTO PANCICH GUZMÁN AGRADECIMIENTO Quiero agradecer a mis padres que sin el apoyo de ellos pienso que no habría logrado este paso tan importante, el ser ING. EN COMUNICACIONES Y ELECTRONICA, ya que con esto les estoy respondiendo a esa confianza que siempre me han tenido. PAPA Esta TESIS y TITULO quiero dedicárselo a mi PAPÁ (Abuelo Materno) por todo el apoyo que siempre me brindo para poder a llegar a ser un profesionista, como ahora lo he logrado y que se sienta muy orgulloso de mi. Por último solo quiero decirte MUCHAS GRACIAS PÁ. MAMÁ También le dedico este gran logro a mi MAMÄ, porque sin ella no seria la persona que soy, por todo su apoyo, su comprensión, por las buenas, y las malas situaciones que hemos pasado, por todo eso solo quiero darte las GRACIAS POR TODO. HERMANOS A mis hermanos quiero darles las gracias por su apoyo y motivación, por salir adelante con este gran logro, se los dedico y solo quiero decirles que espero no decepcionarlos y que sigan orgullosos de mi. DE: KARLOS JESUS PEREZ LOPEZ AGRADECIMIENTOS Gracias Dios por darme la vida, por dejarme nacer en este maravilloso país, México. Por darme una familia que me apoya en todo momento y por toda la gente que me rodea y me quiere. A MI MAMÁ Y PAPÁ: Gracias mama y papa por todo su apoyo, amor y comprensión, por orientarme y darme palabras de aliento cuando más lo necesitaba, por haberme enseñado que si quiero algo debo luchar y hacer todo para conseguirlo. En todo momento los llevo conmigo. A MIS HERMANOS: Gracias a mis hermanos por su compañía y apoyo, por los grandes momentos que hemos pasado juntos y que a pesar de las diferencias que algunas veces tenemos, se que cuento con ustedes siempre. Los quiero mucho. A MIS PROFESORES: Gracias a mis profesores por transmitirme sus conocimientos, ya que su dedicación en su enseñanza es lo que me ha permitido lograr esta meta A MIS AMIGOS Y COMPAÑEROS: Gracias a mis amigos y compañeros por su confianza y lealtad, por haber compartido tantos buenos momentos conmigo, que de alguna forma sirvieron para desarrollarme como persona. Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber. Gracias a todos. DE: ENRIQUE TOVAR HERNÁNDEZ. i OBJETIVO Diseñar un robot móvil que tenga la capacidad de tomar medidas físicas, como: temperatura, niveles de gas LP; así como la facilidad de tener movimiento controlado por radio frecuencia y poder medir a que distancia se encuentra un objeto del robot móvil. Mediante la utilización del sensor de gas TGS-2610 se podrá medir los niveles de gas LP en un lugar y así poder determinar si los niveles son peligrosos y poder evitar accidentes como explosiones, intoxicación, etc. Con el sensor ultrasónico UCM-R40K1 se podrá medir la distancia de los objetos que se le puedan presentar al robot en su trayectoria. Y mediante el sensor de temperatura AD590 mediremos en un lugar donde se requieran altas temperaturas, bajas temperaturas o temperaturas específicas. Por último, con la utilización del PIC18F452 y módulos de RF XBee, poder crear una interfaz de comunicación entre el usuario y el robot móvil para conocer los factores que se presentan en el lugar que se esté explorando. ii JUSTIFICACION Mediante este robot móvil se podrán realizar tareas en lugares de difícil acceso para el ser humano y en lugares hostiles como: Altos niveles de gases tóxicos. Riesgo de explosión. Medir la temperatura en lugares donde se necesita mantenerla a cierto nivel. Por otra parte con la ayuda del sensor ultrasónico se podrá medir la distancia de un objeto para que el usuario determine la dirección del móvil y de ser necesario esquivar el objeto. En ciertas ocasiones hay laboratorios en los cuales se utilizan químicos altamente peligrosos como pólvora, TNT ó nitrógeno y estos a su vez necesitan de una temperatura exacta para evitar alguna reacción química mortal. Entonces el robot de exploración podrá ser enviado a esa parte del laboratorio para examinar que la temperatura sea la correcta de lo contrario tomar las precauciones adecuadas. Hay construcciones como edificios donde la electricidad, el gas y el agua son suministrados en tuberías aisladas. En estos lugares por lo regular solo entran personas capacitadas para darle mantenimiento a la instalación, pero algunas veces el deterioro de los materiales produce fugas indeseadas así mismo por precaución el robot de exploración podrá ser enviado para medir el nivel de gas LP y dependiendo de esta medida el usuario determinará la forma de corregir este problema. Además, como el robot móvil tendrá la capacidad de movimiento a largas distancias por medio de RF el ser Humano estará libre de algún incidente que podría pasar en el lugar explorado. iii INTRODUCCIÓN La palabra robot fue usada por primera vez en el año 1921, cuando el escritor checo Karel Capek (1890 - 1938) estrena en el teatro nacional de Praga su obra Rossum's Universal Robot (R.U.R.). Su origen es de la palabra eslava robota, que se refiere al trabajo realizado de manera forzada. Pero el robot industrial, que se conoce y emplea en nuestros días, no surge como consecuencia de la tendencia o afición de reproducir seres vivientes, sino de la necesidad. Fue la necesidad la que dio origen a la agricultura, el pastoreo, la caza, la pesca, etc. Más adelante, la necesidad provoca la primera revolución industrial con el descubrimiento de la máquina de vapor de Watt y, actualmente, la necesidad ha cubierto de computadoras la faz de la tierra. HISTORIA DELA ROBÓTICA INDUSTRIAL El robot industrial que se conoce y utiliza en nuestros días nace con el objetivo de aumentar la productividad, mejorar la calidad de las piezas fabricadas y evitar la realización de trabajos tediosos o peligrosos para el hombre. George Devol, es considerado el padre de la Robótica Industrial, y a él se debe la patente de un manipulador programable en 1956, que fue el propulsor del robot industrial. A partir de ahí se fueron instalando en las fábricas cada vez más robots dedicados a diversas funciones, gracias entre otras cosas a los progresos en electrónica e informática, que instauraron el microprocesador para el manejo de estas máquinas de un modo potente, flexible y económico. El número de robots industriales existentes actualmente en el mundo supera con creces el millón de unidades. Un robot industrial se suele caracterizar por sus grandes dimensiones y su posicionamiento fijo. Se distingue en él un manipulador ó brazo mecánico al que se acoplan las diversas herramientas según la tarea, y es controlado por un sistema basado en un procesador. Los más sofisticados poseen sensores para detectar parámetros del entorno y alterar su funcionamiento en función de la información recibida, aunque este no es un factor determinante. Trabajos que hasta hace poco era inconcebible que los realizase una máquina, hoy los efectúa un robot con rapidez y precisión, como sucede con el trasquilado de las ovejas. La industria que más robots aglutina es la industria automóvil. http://cfievalladolid2.net/tecno/cyr_01/robotica/industrial.htm iv ROBÓTICA INDUSTRIAL VS MICROROBÓTICA En comparación de los grandes robots industriales, los robots a los que nos referimos en esta obra, también llamados micro-robots o microbots, parecen un simple juguete. Pueden tener forma de vehículo, de animal, de criatura robótica, etc. pero todos tienen una característica común: la inteligencia necesaria para realizar tareas en un entorno que puede variar y al cual pueden adaptar. La ciencia que estudia los microbots es la microbótica, y gracias a su expansión y continua evolución están invadiendo cada vez más facetas de nuestra vida, facilitándola y haciéndola más agradable. Un microbot es un pequeño robot móvil y programable que realiza una sencilla tarea. Su cerebro consiste en un microcontrolador que gobierna todas sus acciones y según el trabajo encomendado precisa de un programa concreto, y de unas entradas de información y salidas para los actuadores. Su tamaño, potencia y precio es considerablemente menor al de un robot industrial, pero sobre todo difiere de éste en el tipo de tareas a las que se dedica. Los microbots no intentan quitar el puesto a los robots industriales. No están diseñados para llevar a cabo operaciones que exijan elevadas potencias y complicados algoritmos. Los microbots están destinados a resolver tareas pequeñas con rapidez y precisión. Limpian, detectan o buscan elementos concretos, miden y toman el valor de magnitudes, transportan pequeñas piezas, vigilan y supervisan, guían a invidentes, ayudan a minusválidos, exploran zonas peligrosas para el hombre y hasta son magníficos compañeros de juegos. La movilidad es un factor clave en la filosofía del microbot para posibilitar la realización de muchas actividades, por eso su imagen no se asemeja a la de un brazo, si no que se parece más a la de un vehículo con ruedas motrices. FUTURO Los microbots comenzaron siendo dispositivos propios de la investigación, pues su diseño, su construcción y su aplicación requerían importantes recursos económicos y humanos. Los microcontroladores permitieron su masificación, al rebajar su precio drásticamente. Estas <<bestiecillas inteligentes>> pueden desarrollar con eficacia muchas aplicaciones, desde ayuda de todo tipo en tareas cotidianas, hasta servir como <<cobayas>> en experimentos relacionados con otras áreas. No obstante, hay muchos campos sobre los que queda mucho por hace, porque aunque ya es posible fabricar robots que sirvan para casi v cualquier operación, se sigue hablando de prototipos, fases experimentales, etapas de investigación, etc. Es sólo cuestión de tiempo. El primer problema reside en que aún son demasiado caros, en la mayoría de los casos no por los materiales en sí, sino porque se deben amortizar los gastos en investigación e inversión inicial. Los avances tecnológicos parten de la tarea industrial y del ejército, y cuando quedan obsoletos se venden al público. INDICE PAGINA OBJETIVO ...................................................................................................................................................................... i JUSTIFICACION ............................................................................................................................................................ ii INTRODUCCION ........................................................................................................................................................... iii CAPITULO 1: ROBOTICA MOVIL ................................................................................................................................. 1 1.1 FUNDAMENTOS DE ROBOTICA MOVIL ............................................................................................................. 1 1.1.1 CONCEPTO DE ROBOTICA MOVIL ............................................................................................................ 2 1.1.2 CONFIGURACION DE ROBOTS MOVILES ................................................................................................ 2 1.2 ACTUDADORES UTILIZADOS EN LA ROBOTICA MOVIL .................................................................................. 8 1.3 CONTROLADORES INTELIGENTES EMPLEADOS EN LA ROBOTICA MOVIL ............................................... 11 1.3.1 MICROCONTROLADOR (PIC) ................................................................................................................... 13 CAPITULO 2: DISPOSITIVOS DEL MOVIL ................................................................................................................ 14 2.1 SENSOR DE TEMPERATURA (AD590) ............................................................................................................. 14 2.1.1 CARACTERISTICAS Y DESCRIPCION DEL AD590 ................................................................................. 14 2.2 SENSOR DE GAS (TGS-2610) ........................................................................................................................... 18 2.2.1 CARACTERISTICAS Y DESCRIPCION DEL TGS-2610 ........................................................................... 19 2.3 SENSOR ULTRASONICO (UCM-R40K1) .......................................................................................................... 21 2.4 MICROCONTROLADOR PIC18F452 ................................................................................................................. 22 2.4.1 CONFIGURACION DEL OSCILADOR ....................................................................................................... 25 2.4.2 TIMER (TEMPORIZADORES/CONTADORES) ......................................................................................... 27 2.4.2.1 MODULO TIMER 0 ............................................................................................................................. 27 2.4.2.2 MODULO TIMER 1 ............................................................................................................................. 31 2.4.3 PWM(MODULACION POR ANCHO DE PULSO) ....................................................................................... 36 2.4.3.1 PERIODO DEL PWM .........................................................................................................................37 2.4.3.2 CICLO UTIL DEL PWM ...................................................................................................................... 37 2.4.3.3 CONFIGURACION PARA LA OPERACIÓN COMO PWM ................................................................. 38 2.4.4 MODULO CONVERSOR ANALOGICO-DIGITAL (A/D) ............................................................................. 39 2.4.4.1 REQUERIMIENTOS DE ADQUISICION DEL A/D ............................................................................. 44 2.4.4.2 SELECCIÓN DEL RELOJ DE CONVERSION DEL A/D..................................................................... 45 2.4.4.3 CONFIGURACION ANALOGICA DEL PUERTO ............................................................................... 45 2.4.4.4 CONVERSIONES A/D ........................................................................................................................ 46 2.4.4.5 REGISTROS DEL RESULTADO DEL MODULO A/D ........................................................................ 47 2.4.5 USART ....................................................................................................................................................... 47 2.4.5.1 USART: GENERADOR DE PROPORCION DE BAUDIOS (BRG) ..................................................... 51 2.4.5.2 PROBANDO ....................................................................................................................................... 51 2.4.5.3 MODO ASINCRONO USART ............................................................................................................. 52 2.4.5.4 TRANSMISOR ASINCRONO USART ................................................................................................ 52 2.4.5.5 RECEPTOR ASINCRONO USART .................................................................................................... 54 2.5 MODULOS DE RF XBEE SERIE 2 OEM ............................................................................................................. 55 2.5.1 MODULO DE OPERACIÓN RF (XBEE) ..................................................................................................... 56 2.5.1.1 COMUNICACIONES SERIALES ........................................................................................................ 56 2.5.1.2 FLUJO DE DATOS UART .................................................................................................................. 56 2.5.1.3 BUFFERS SERIALES ........................................................................................................................ 57 2.5.1.4 CONTROL DE FLUJO SERIAL .......................................................................................................... 59 2.6 SERVOMOTOR HS-311 ..................................................................................................................................... 60 CAPITULO 3: FUNCIONAMIENTO Y DISEÑO DEL ROBOT MOVIL ......................................................................... 62 3.1 FUNCIONAMIENTO DEL SENSOR ULTRASONICO UCMR40K1 PARA MEDIR DISTANCIA .......................... 62 3.1.1 CONSIDERACIONES MATEMATICAS PARA MEDIR DISTANCIA ........................................................... 63 3.1.2 DISEÑO DEL CIRCUITO DEL SENSOR ULTRASONICO UCM-R40K1 .................................................... 64 3.2 FUNCIONAMIENTO DEL SENSOR DE GAS (TGS-2610) .................................................................................. 65 3.2.1 RESULTADO DE PORCENTAJE LEL ....................................................................................................... 66 3.2.2 CONSIDERACIONES PARA EL SENSOR TGS-2610 ............................................................................... 66 3.3 FUNCIONAMIENTO DEL SENSOR DE TEMPERATURA AD590 ...................................................................... 68 3.3.1 DISEÑO DEL CIRCUITO ACONDICIONADOR DE SEÑAL (SCC) PARA EL AD590 ................................ 69 3.4 MOTOR DE CD Y SERVOMOTOR HS-311 ........................................................................................................ 75 3.5 APLICACION DEL MICROCONTROLADOR EN EL ROBOT ............................................................................. 77 3.5.1 ESTRUCTURA DEL MICROCONTROLADOR MONTADO EN EL ROBOT MOVIL .................................. 77 3.5.2 ESTRUCTURA DEL MICROCONTROLADOR DE CONTROL OPERADO POR EL USUARIO. ....................................................................................................................................... 79 3.6 MEMORIA DE CONSUMO DE ENERGIA DEL ROBOT MOVIL ......................................................................... 81 CAPITULO 4: CONSIDERACIONES ECONOMICAS DEL PROYECTO .................................................................... 82 4.1 RECURSOS HUMANOS .................................................................................................................................... 82 4.2 RECURSOS DE INFRAESTRUCTURA.............................................................................................................. 82 4.3 RECUSOS MATERIALES .................................................................................................................................. 83 4.4 PROGRAMA DE ACTIVIDADES ........................................................................................................................ 84 4.5 COSTO DEL PROYECTO .................................................................................................................................. 85 CONCLUSIONES ......................................................................................................................................................... 87 RECOMENDACIONES ................................................................................................................................................ 88 INFORMACION DE CONSULTA ................................................................................................................................. 91 GLOSARIO .................................................................................................................................................................. 93 ACRONIMOS ............................................................................................................................................................... 94 LISTA DE FIGURAS .................................................................................................................................................... 97 LISTA DE TABLAS ...................................................................................................................................................... 99 ANEXO A: PROGRAMA DE ACTIVIDADES DEL ROBOT MOVIL .......................................................................... 100 ANEXO B: DIAGRAMA PCB DEL MDU ................................................................................................................... 101 ANEXO C: PCB DEL SENSOR DE GAS Y TEMPERATURA ................................................................................... 102 ANEXO D: PROTOTIPO FISICO DE ROBOT MOVIL ............................................................................................... 103 CAPITULO 1 1 CCAAPPIITTUULLOO 11:: RROOBBOOTTIICCAA MMOOVVIILL Este capítulo presenta los fundamentos relacionados con la robótica móvil, se profundiza en la configuración de robots móviles sobre ruedas, finalmente se describen el hardware de uso común en la robótica móvil y algunas técnicas para dotar de inteligencia artificial a un robot móvil. 11..11 FFUUNNDDAAMMEENNTTOOSS DDEE RROOBBOOTTIICCAA MMOOVVIILL La robótica móvil es un campo que se encuentra en estado de rápidaexpansión en el mundo académico e industrial. Con el paso del tiempo los robots móviles han llegado a ser más inteligentes y capaces de realizar tareas en forma autónoma, haciendo posible su incorporación en lugares distantes e inaccesibles, como los que se muestran en la Figura 1.1 [1]. Figura 1.1 Robots móviles. Un concepto que va de la mano con la robótica móvil es la llamada teleoperación robótica. Esta rama constituye una tecnología idónea para aplicaciones que se desarrollan en entornos peligrosos u hostiles a los que una persona no puede acceder directamente. Una ayuda inestimable en la mejora de resultados obtenidos con la teleoperación robótica en tareas de este tipo es la realidad virtual, la forma en que estas dos tecnologías se interrelacionan, un aspecto importante que debe considerarse y es motivo para que estas áreas se unan, es el problema de retardo o pérdida en la transferencia de información que fluye desde el entorno remoto hacia el local, esta situación puede presentarse cuando un robot está provisto de cámaras como instrumentos para explorar el entorno en estudio. Bajo esta condición resulta ser más práctico generar un entorno de navegación basada en modelos tridimensionales o virtuales [2]. CAPITULO 1 2 11..11..11 CCOONNCCEEPPTTOO DDEE RROOBBOOTTIICCAA MMÓÓVVIILL La robótica móvil es un área de intensa investigación cuyo objetivo es el desarrollo de robots móviles autónomos que puedan desenvolverse en ambientes dinámicos [3]. 11..11..22 CCOONNFFIIGGUURRAACCIIOONN DDEE RROOBBOOTTSS MMÓÓVVIILLEESS Aunque existen diferentes tipos de robots móviles (bípedos, hexápodos, acuáticos, entre otros), este punto solo se enfocará sobre robots móviles sobre ruedas y para aplicaciones en ambientes controlados (interiores), a continuación se presentan los tipos y características más importantes que rigen el comportamiento de tales robots [4]. Triciclo Básico con Conducción Sincronizada El concepto de diseño más simple se basa en una llanta que tiene la capacidad de impulsar y direccionar, esta configuración requiere dos ruedas pasivas en la parte posterior, dado que siempre son requeridos por lo menos tres puntos de contacto para estabilizar una plataforma [4]. Dicha configuración se presenta en la Figura 1.2. Figura 1.2 Robot Móvil con Configuración de Triciclo. La velocidad lineal y angular de este tipo de robots están completamente desacopladas, así que para impulsarlo en línea recta, la llanta frontal debe estar posicionada en el centro y debe ser impulsado a la velocidad deseada. La Figura 1.3 muestra el guiado para algunas configuraciones de direccionamiento. Este tipo de diseño no tiene la capacidad de girar sobre su centro de gravedad, con la llanta delantera puesta a 90° el robot girará cerca del punto medio entre las dos llantas posteriores, así que el radio mínimo de giro es la distancia entre la llanta delantera y el punto medio de las llantas de atrás. CAPITULO 1 3 Figura 1.3 Conducción y Rotación de un Robot con Configuración de Triciclo. Una extensión de los robots configurados como triciclo son los de conducción sincronizada ver Figura 1.4, sin embargo aquí se tienen tres llantas las cuales permiten el desplazamiento y controlan la orientación del robot, todas las llantas se rotan de tal forma que apunten al mismo punto, ver Figura 1.5, esto se logra usando un motor y una cadena para controlar la orientación y otro motor para controlar el desplazamiento. Un robot de este tipo puede ser considerado como Omnidireccional debido a que tiene la capacidad de ser orientado en cualquier dirección, sin embargo, debe detenerse y realinear sus llantas cuando va desplazándose en línea recta y se quiere hacer rotar, puesto que no puede desplazarse y girar al mismo tiempo. Figura 1.4 Robot con Conducción Síncrona. Figura 1.5 Direccionamiento de un Robot Síncrono CAPITULO 1 4 Guiado Diferencial con Llantas y Orugas Este diseño tiene dos motores fijos sobre el lado derecho e izquierdo del robot y ambos tienen la capacidad de impulsar independientemente al robot [4]. Puesto que siempre es necesario contar con tres puntos de soporte, este diseño requiere una o dos llantas pasivas adicionales, dependiendo de la localización de los motores, ver Figura 1.6. El guiado diferencial es mecánicamente más simple que un robot configurado como triciclo, porque no se requiere que uno de los motores se haga rotar para cambiar la orientación. Sin embargo, el control del desplazamiento es más complejo que la configuración de triciclo, debido a que se requiere siempre de la coordinación de ambos motores. Figura 1.6 Robots Móviles con Configuración Diferencial. La configuración con una sola rueda pasiva no puede disponer de una llanta con motor en el centro del robot por razones de estabilidad, así que cuando se hace girar, el robot rotará en el punto medio donde están los motores. El diseño con dos ruedas pasivas, una en la parte frontal y otra en la posterior permite que el robot gire sobre su centro de gravedad. Sin embargo, este diseño puede introducir problemas de direccionamiento debido a que el contacto con la superficie tiene cuatro puntos de soporte. La Figura 1.7 muestra el desplazamiento del robot en CAPITULO 1 5 función de la velocidad de sus motores, sí ambos motores tienen la misma velocidad, el robot se desplazará en línea recta ya sea hacia adelante o atrás, si uno de los motores tiene una mayor velocidad que el otro, el robot se desplazará formando un arco, sí ambos motores giran a la misma velocidad pero en dirección opuesta, el robot girará sobre su centro de gravedad. Figura 1.7 Conducción y Rotación de un Robot con Configuración Diferencial. Un caso especial de robots con guiado diferencial son los que emplean orugas en lugar de llantas, la única diferencia que presentan, es una mejor maniobrabilidad en terrenos rugosos y alta fricción al girar, debido a sus múltiples puntos de contacto con la superficie. La Figura 1.8 muestra un robot de este tipo. Figura 1.8 Robot con Orugas. Direccionamiento de Ackermann [4] El sistema de locomoción de un automóvil, consiste de dos llantas combinadas en la parte trasera que permiten impulsar y dos llantas también combinadas en la parte delantera cuya función es dar orientación al móvil, esto es conocido como direccionamiento de Ackermann, ver Figura 1.9. El desplazamiento en línea recta no presenta ningún problema dado que las llantas CAPITULO 1 6 de atrás son impulsadas por un mismo motor, sin embargo estas presentan deslizamiento en las curvas, y la mayor limitante que tiene un robot de este tipo es que no puede girar sobre su centro de gravedad. Figura 1.9 Robot con Direccionamiento de Ackermann. Guiado Omni Direccional Hasta el momento las plataformas móviles presentan la misma deficiencia, no poder desplazarse en cualquier dirección, en contraste a esto, el robot con guiado omni-direccional es capaz de moverse en todas direcciones, esta propiedad está relacionada con el tipo de llantas que utiliza, ver Figura 1.10 [4]. Dichas llantas están cubiertas con cilindros que rotan libremente, es importante indicar que las llantas son manipuladas por los motores, pero los cilindros no. Un robot de este tipo puede ser construido ya sea con tres o cuatro llantas, sin embargo la orientación de los cilindros en las llantas difiere, en el caso de un robot con tres llantas, ver Figura 1.11, los cilindros deben estar a 90° con respecto al eje de la llanta, en cambio en un modelo con cuatro llantas, ver Figura 1.12, se requiereque los cilindros estén a 45°. Figura 1.10 Llantas Omni-Direccionales. CAPITULO 1 7 Figura 1.11 Robot Omni-Direccional con tres llantas Figura 1.12 Robot Omni-Direccional con cuatro llantas La Tabla 1.1 muestra los movimientos básicos que rigen la cinemática de un robot con cuatro llantas, es decir, los desplazamientos hacia adelante, atrás, hacia un lado y rotación sobre su centro de gravedad [4]. La Figura 1.13 ilustra dichos movimientos de acuerdo a la Tabla 1.1. Tabla 1.1. Movimientos Básicos de un Robot guiado Omni-Direccionalmente de cuatro llantas. DESPLAZAMIENTO MOVIMIENTO DE MOTORES Hacia delante Todos los motores hacia adelante Hacia atrás Todos los motores hacia atrás Deslizase hacia la izquierda 1,4: atrás y 2,3: adelante Deslizase hacia la derecha 1,4: adelante y 2,3: atrás Girar con las manecillas del reloj 1,3: adelante y 2,4: atrás Girar contra las manecillas del reloj 1,3: atrás y 2,4: adelante CAPITULO 1 8 Figura 1.13 Movimientos Básicos de un Robot Omni-Direccional. 11..22 AACCTTUUAADDOORREESS UUTTIILLIIZZAADDOOSS EENN LLAA RROOBBÓÓTTIICCAA MMÓÓVVIILL Los seres vivos cuentan con una serie de sentidos que le sirven para obtener información del ambiente y su sistema de navegación utiliza la información obtenida de estos sentidos para poder conocer y desplazarse en el mundo. Al igual que los seres vivos un robot autónomo debe contar con sentidos que le permitan conocer su entorno, para ello debe estar provisto de una serie de sensores cuya información será utilizada por el sistema de control y por el algoritmo de navegación para definir la ruta a seguir. Entre los sensores más usados se tienen: sensores ópticos (fotorresistencias, infrarrojos), sensores de ultrasonido, visión artificial basada en una cámara (detección de contornos, colores). Encoders Cuando se usan motores a pasos para el desplazamiento de un robot se pueden contar las vueltas a partir de los pasos que da cada llanta y con ellos se puede determinar la distancia recorrida por el robot, sin embargo muchos robots utilizan motores de CD ya que estos consumen menos potencia, para medir la distancia recorrida por cada llanta se utilizan los encoders. Hay básicamente dos tipos de sensores, los cuales se muestran en la Figura 1.14 [5]. a) Encoders Incrementales b) Encoders de Cuadratura Figura 1.14 Tipos de Encoders. A) Incrementales: Permiten contar el número de ranuras por las que pasa el haz o las marcas blancas en que este se refleja, ver Figura 1.14a, a partir de ello podemos conocer la velocidad o el desplazamiento de las llantas. CAPITULO 1 9 B) Cuadratura: Pueden hacer lo mismo que los sensores incrementales, pero tienen la capacidad de determinar el sentido de giro de un motor. Para ello están provistos de otro sensor, ver Figura 1.14b, de tal forma que si el sensor Encoder 1 recibe la señal primero el movimiento es en sentido de las manecillas del reloj, en cambio si Encoder 2 recibe primero el movimiento será en contra de las manecillas del reloj. Los actuadores son los músculos de un robot, es decir son los elementos que convierten la energía de alimentación en movimiento. En la robótica móvil existen básicamente tres tipos de motores de uso común, mostrados en la Figura 1.15: Estos motores pueden ser de corriente directa, motores a pasos y servomotores. a) Corriente Directa b) A pasos c) Servomotores Figura 1.15 Tipos de Motores. La selección de un motor obedece al tipo de robot que se pretende desarrollar. Por ejemplo, un motor de corriente directa puede ser utilizado para cualquier diseño, aunque es ideal para robots grandes, sin embargo presenta los inconvenientes de ser demasiado rápido (por lo tanto requiere un tren de engranaje reductor) y un control complejo (PWM – Modulación del Ancho del Pulso). Un motor a pasos es recomendado para robots muy ligeros, en general seguidores de líneas o solucionadores de laberintos, estos motores ofrecen un control preciso de velocidad, sus limitantes son el gran tamaño para la baja potencia que proporcionan, demandan demasiada corriente y necesitan un control muy complejo. Un servomotor es usado principalmente en robots pequeños o articulados, básicamente son un motor de DC que cuenta con un tren de engranaje dentro de un encapsulado, en general son los más versátiles para ser implementados físicamente y ser manipulados mediante un controlador que genere una señal PWM, no obstante, el control de la velocidad y su capacidad para soportar un bajo peso son sus principales inconvenientes. CAPITULO 1 10 Servomotores [6] Un servo motor (también llamado servo) es un dispositivo que tiene la capacidad de ser ubicado en cualquier posición dentro de su rango de operación y mantenerse en dicha posición. Conformado por un motor de corriente directa muy pequeño, un tren de engranaje reductor que permite incrementar su torque, una tarjeta controladora que convierte la señal PWM recibida en movimiento del eje de salida y un potenciómetro que mide la posición de salida del eje. La tarjeta dispone de retroalimentación y monitorea constantemente la información generada por el resistor variable, de tal forma que permite posicionar y mantener el eje del motor. La señal PWM utilizada para manipular los servos tiene una frecuencia de 50 Hz, así que los pulsos son generados cada 20 ms. El ancho del pulso especifica la posición deseada en el eje del motor, Figura 1.16. Por ejemplo, una señal con un ancho de 1.25 ms llevara el motor a 0°, una de 1.5 ms lo pondrá a 90° y con una de 1.75 ms hará que el motor este en 180°. Figura 1.16 Control de Servomotores. Servomotores Modificados (Analógicos/Digitales) Es posible modificar un servomotor para eliminar su restricción de giro y permitirle una rotación continua (el proceso para llevar a cabo esta operación puede encontrarse en la literatura), sin embargo, es posible adquirir servos modificados por el fabricante. Estos dispositivos alterados permiten incrementar la velocidad de rotación del motor dependiendo del pulso en su entrada PWM. Al aplicar un pulso de 1.5 ms hará que el motor se detenga. Un pulso menor a 1.5 ms provocará que el motor gire en sentido contrario a las manecillas del reloj, por ende cuando el pulso es mayor a 1.5 ms girará con las manecillas del reloj. Los CAPITULO 1 11 servomotores modificados pueden ser analógicos, Figura 1.17a, o digitales Figura 1.17b. En el caso de los analógicos, estos disponente de electrónica analógica y ofrecen la ventaja de poderse calibrar (llevándolo al punto de reposo) utilizando el potenciómetro. En el caso de los digitales, cuentan con un circuito integrado el cual ya no permite hacer modificaciones, sin embargo no requieren de calibración puesto que el ajuste es preciso. a) Servo Analógico b) Servo Digital Figura 1.17 Servos Modificados. 11 .. 33 CC OO NN TT RR OO LL AA DD OO RR EE SS II NN TT EE LL II GG EE NN TT EE SS EE MM PP LL EE AA DD OO SS EE NN LL AA RR OO BB ÓÓ TT II CC AA MM ÓÓ VV II LL La navegación autónoma de robots móviles en entornos no estructurados constituye uno de los retos más importantes en el campo de la robótica móvil, quizá por esto se han propuesto muchas estrategias (implementación de algunas técnicas de inteligencia artificial) para solucionar este problema[10]. Aunque con el paso del tiempo se han desarrollado una gran variedad de controladores inteligentes, los más usados son los siguientes: Redes Neuronales [11] Las redes neuronales artificiales son estructuras computacionales que emulan ligeramente a las redes neuronales naturales [11]. Frecuentemente son usadas para problemas de clasificación o toma de decisiones que no tienen una solución algorítmica simple o directa. La belleza de las redes neuronales es su habilidad para generar la salida deseada en función de una entrada y un conjunto de casos de entrenamiento sin necesidad de programación explícita, siendo capaz de generalizar casos no vistos previamente. Una red neuronal está formada por un número de unidades individuales llamadas neuronas que están ligadas unas con otras vía conexiones. Cada neurona tiene un número de entradas, un nodo de procesamiento y una CAPITULO 1 12 salida, mientras cada conexión entre neuronas está asociada con un peso. Cada neurona constantemente evalúa sus entradas, calcula su valor local de activación acorde a una fórmula (umbral) y produce un valor de salida. Algoritmos Genéticos [13] Es una técnica basada en los principios de la teoría de Darwin de la evolución para progresar hacia una solución. Operan iterativamente evolucionando una solución desde una historia de soluciones potenciales, las cuales son manipuladas por un número de operaciones inspiradas biológicamente. Aunque sólo es una aproximación biológica real del proceso evolutivo, está demostrado que es un poderoso y robusto medio para resolver problemas. Lógica Difusa [15] La lógica difusa provee una poderosa herramienta que permite tomar información incompleta e imprecisa y representarla de tal forma que pueda ser fácilmente procesada frecuentemente en forma de reglas lingüísticas. Un diagrama a bloques de un controlador difuso para un robot se muestra en la Figura 1.18 y está compuesto por cuatro elementos: Figura 1.18 Diagrama a Bloques de un Controlador difuso para un Robot. Fuzificación convierte las entradas del controlador a información que el mecanismo de inferencia pueda usar fácilmente para activar y aplicar reglas. Un conjunto de reglas Sí-Entonces las cuales contienen las descripción lingüística para lograr un buen control. CAPITULO 1 13 Mecanismo de inferencias lleva a cabo la toma de decisiones, para ello toma la información actual en las entradas y selecciona una o más reglas que sean las apropiadas para el control del robot. Defuzificación convierte las señales de salida en información de entrada para el robot. 11..33..11 MMIICCRROOCCOONNTTRROOLLAADDOORR ((PPIICC)) [[1166]] Es un circuito integrado programable que contiene todos los componentes de una computadora. Se emplea para controlar el funcionamiento de una tarea determinada y debido a su tamaño reducido, suele ir incorporado en el propio dispositivo al que gobierna. En su memoria solo reside un programa destinado a gobernar una aplicación determinada; sus líneas de entrada/salida soportan las conexiones de los sensores y motores del dispositivo a controlar, y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos. Una vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea asignada. Un microcontrolador es un sistema cerrado que contiene un computador completo y de prestaciones limitadas que no se pueden modificar. Las partes principales del microcontrolador son: 1. Procesador. 2. Memoria no volátil para contener el programa (ROM). 3. Memoria de lectura y escritura para guardar los datos (RAM). 4. Líneas de E/S para los controladores de periféricos: a. Comunicación Paralelo b. Comunicación Serie c. Diversas puertas de comunicación (bus I2C, USB, etc.) 5. Recursos auxiliares a. Circuito de reloj b. Temporizadores c. Perro guardian (Watch Dog Timer) d. Convertidores A/D (Analógicos/Digitales) y D/A (Digitales/Analógicos) e. Comparadores Analógicos f. Protección ante fallos de la alimentación g. Estado de reposo o de bajo consumo. CAPITULO 2 14 CC AA PP ÍÍ TT UU LL OO 22 :: DD II SS PP OO SS II TT II VV OO SS DD EE LL RR OO BB OO TT MM ÓÓ VV II LL Este capítulo presenta la descripción y funcionamiento de los sensores [17]: Ultrasónico [21] De Temperatura [18] De Gas [19] Así como el servomotor y los módulos de RF XBee para comunicar al robot móvil con el usuario a larga distancia. Por último se describen las configuraciones importantes que utilizaremos para la programación del microcontrolador PIC18F452 para el manejo de los sensores, módulos de RF y motores. 22..11 SSEENNSSOORR DDEE TTEEMMPPEERRAATTUURRAA ((AADD559900)) [[1188]] Estos sensores se agrupan en cuatro categorías principales: salida de voltaje, salida de corriente, salida de resistencia y salida digital. Con salida de voltaje podemos encontrar los muy comunes LM35 (°C) y LM34 (°K) de National Semiconductor. Con salida de corriente uno de los más conocidos es el AD590, de Analog Devices. Con salida digital son conocidos el LM56 y LM75 (también de National). Los de salida de resistencia son menos comunes, fabricados por Phillips y Siemens. La Figura 2.1 muestra los tipos de sensores de temperatura físicamente: Figura 2.1 Sensor de Temperatura AD590 22..11..11 CCAARRAACCTTEERRÍÍSSTTIICCAASS YY DDEESSCCRRIIPPCCIIÓÓNN DDEELL AADD559900 Características: Corriente Lineal de Salida: 1µA/°K Dispositivo con dos terminales: Voltaje de Entrada/Corriente a la Salida Rango del Dispositivo: -55 °C a +150 °C CAPITULO 2 15 (2.1) Rango de Alimentación del Dispositivo: 4 VCD a +30 VCD DESCRIPCIÓN DEL DISPOSITIVO El AD590 es un circuito integrado transductor de temperatura de dos terminales que produce una corriente de salida proporcional a la temperatura absoluta. Para los voltajes del suministro entre +4 V y +30 V el dispositivo actúa como una impedancia alta, y corriente constante que pasa es de 1 µA/K. El láser que arregla la resistencia cinematográfica delgada del chip se usa para calibrar el dispositivo a 289.2 µA en 298.2K (+25 °C). El AD590 debe usarse en cualquier temperatura que permita la aplicación debajo de +150 °C en que los sensores de temperatura eléctricos convencionales son actualmente empleados. El costo bajo inherente de un circuito integrado monolítico combinado con la eliminación de circuitería de apoyo hace una alternativa atractiva al AD590 para muchas situaciones de medida de temperatura. No se necesitan para la aplicación del AD590, una circuitería lineal, amplificadores de voltaje de precisión y compensación de unión fría debido al hecho de un material al estar a diferentes temperaturas en sus extremos provocara una diferencia de potencial. Además de la medida de temperatura, las aplicaciones incluyen compensación de temperatura o corrección de componentes discretos y detección del nivel de fluido. El AD590 está disponible en forma de chip, es conveniente para los circuitos híbridos y las medidas de temperatura rápidas en los ambientes protegidos. El AD590 es particularmente útil en las aplicaciones remotas. El dispositivo es insensible a picos de voltaje, debido a su impedancia alta y corriente de salida. Las características de rendimiento también hacen a los AD590 fácil para múltiples funciones como: la corriente puede cambiarse por un multiplexor CMOS o el voltaje de suministro puede cambiarse por una compuerta lógica de salida. La Figura 2.2 presenta la escala de temperaturas en ºF, ºR, ºK y ºC, y laecuación (2.1) se utiliza para hacer la conversión matemática de dichas temperaturas. CAPITULO 2 16 Figura 2.2 Escala de Temperaturas en ºK y ºC Puntos importantes del Dispositivo 1. El AD590 es un sensor de temperatura de dos terminales que requiere sólo un suministro de voltaje DC (+4 V a +30 V). En la aplicación de este dispositivo son innecesarios circuitos lineales, filtros, transmisores costosos. 2. El Estado del Arte del nivel ajustable en conjunto con la extensa prueba final, asegura que las unidades del AD590 son fácilmente intercambiables. 3. Los resultados de rechazo de interfaz superiores de salida será una corriente en lugar de un voltaje. Además, los requisitos de energía son bajos (1.5 mW @ 5V @ +25 °C). Estas características hacen a los AD590 fácil de aplicar como un sensor remoto. 4. La impedancia de salida alta (> 10 MΩ) proporciona un rechazo excelente de voltaje de suministro y rizo. Por ejemplo, cambiando los resultados de voltaje de 5 V a 10 V en sólo un 1 µA de corriente máxima, o 1 °C de error equivalente. 5. El AD590 es eléctricamente durable: resistirá un voltaje de envío de 44 V y el voltaje inverso de 20 V. De, irregularidades del suministro o inversión del pin no dañarán el dispositivo. Descripción del Circuito: El AD590 usa una propiedad fundamental de los transistores de silicón de la cual están hechos para realizar su característica proporcional de temperatura: si dos transistores idénticos son operados a una proporción constante de densidades de corriente de colector, r, entonces la diferencia entre sus voltajes de base y emisor se rige con la ecuación (2.2): CAPITULO 2 17 (2.2) Donde k es la constante de Boltzman y q es la constante de la carga del electrón, el voltaje resultante es directamente Proporcional a la Temperatura Absoluta (PTAT). En el AD590, este PTAT de voltaje es convertido a una PTAT de corriente por bajo coeficiente de temperatura de resistores delgados. La corriente total del dispositivo es forzado entonces para ser múltiples de estos PTAT de corriente. De la Figura 2.3 el AD590, Q8 y Q11 son los transistores que producen el PTAT de voltaje, R5 y R6 convierten el voltaje a corriente. Q10 cuya corriente de colector pasa por Q9 y Q11, polariza y filtra la corriente para el resto del circuito, forzando la corriente total para ser proporcional a la temperatura absoluta. R5 y R6 son elementos internos ajustables para calibrar al dispositivo a +25 °C. La Figura 2.4 muestra la característica típica de V-I del circuito a +25 °C y a temperaturas extremas. Figura 2.3 Configuración del AD590 CAPITULO 2 18 Figura 2.4 Curvas Características Típicas del AD590 de V – I 22..22 SSEENNSSOORR DDEE GGAASS ((TTGGSS--22661100)) [[2200]] Siempre que se procese, almacene o transporte combustible o sustancias toxicas en la industria o en los sistemas de distribución existe un riesgo potencial del medio ambiente y la vida de los operarios o usuarios de los sistema. Por ejemplo, el escape de gases de combustibles líquidos, despresurización accidental de gas, pérdidas en cañerías pueden terminar en situaciones de alta peligrosidad. El derrame de sustancias combustibles pueden generar alta densidad de gases explosivos, una sola chispa puede generar una explosión y fuego, produciendo no solo la destrucción de las instalaciones, sino también la posible pérdida de vidas humanas. Para la instalación de un sensor de gas se recomienda tener en cuenta que gases se desean medir, que concentraciones, que cantidades y ambiente donde se realicen las operaciones, ver Figura 2.5. Además analizar la cantidad de sensores de gas que deberían ser instalados, en que lugares y su calibración. Para los sistemas de procesamiento de la señal entregada por el sensor se debe tener en cuenta cuales serian los niveles de disparo de alarma por detección y como esa alarma es procesada por el sistema. El posicionamiento del o de los sensores dependerá del tipo de falla o fuga que se desea detectar. Si se desea detectar la fuga en una válvula o elemento, el sensor debe estar instalado cerca del elemento. Si se requiere detectar el exceso de concentraciones de gas en un ambiente amplio, entonces se deberán instalar varios sensores en el ambiente. Para monitorear el almacenamiento de combustibles líquidos, se recomienda distribuir los sensores en una grilla, generalmente un sensor puede monitorear un área de unos 500 a 100 pies ft2 y en el CAPITULO 2 19 almacenamiento de solventes puede ser una solución de compromiso tomar un diámetro de 30 ft. Figura 2.5 Sensor de Gas TGS-2610 22..22..11 CCAARRAACCTTEERRÍÍSSTTIICCAASS YY DDEESSCCRRIIPPCCIIÓÓNN DDEELL SSEENNSSOORR DDEE GGAASS TTGGSS--22661100[[2200]] CCaarraacctteerrííssttiiccaass Bajo consumo de Energía. Voltaje de alimentación (Vc) 5.0 V±0.2 V DC/AC Rango típico de detección 500-10,000 ppm Corriente de consumo 56 mA Sensible al gas LP y a sus gases componentes (por ejemplo, propano y butano). Larga Vida y bajo costo. DESCRIPCIÓN DEL DISPOSITIVO El TGS 2610, ver Figura 2.5, es altamente sensible al propano y al butano, haciéndolo ideal para monitoreo de LPG (Liquid Propane Gas). Debido a su baja sensibilidad a los vapores de alcohol (típico gas interferente en ambientes residencial), este sensor es ideal para aplicaciones de alarmas de gas. Gracias a la miniaturización del chip, el TGS 2610 requiere de una corriente de calefactor de solo 56 mA y el dispositivo está contenido en un encapsulado estándar TO-5. La Figura 2.6 representa a las características típicas de sensibilidad, todos los datos fueron recopilados bajo condiciones estándar de prueba. El eje Y se indica como una relación de la resistencia del Sensor (RS/R0), la cual es definida como: RS = Resistencia del sensor en los gases mostrados a diferentes concentraciones. R0 = Resistencia del sensor en 1800 ppm de iso-butano. CAPITULO 2 20 FFiigguurraa 22..66 CCaarraacctteerrííssttiiccaass ddee SSeennssiibbiilliiddaadd La Figura 2.7 muestra el circuito básico de medición. El sensor requiere dos entradas de voltaje: voltaje de calefactor (VH) y voltaje del circuito (VC).VH se aplica en el calefactor con la finalidad de mantener al elemento sensible a una temperatura óptima específica. El voltaje del circuito VC se aplica para permitir la medición del voltaje (VRL) a través del resistor de carga (RL) el cual se conecta en serie con el sensor, al aumentar la concentración de gas, el valor de RS disminuirá de acuerdo a la gráfica de la Figura 2.6, por lo que el voltaje a través de RL aumentará, ya que las Resistencias RS y RL se encuentran en serie, el valor del voltaje VRL puede obtenerse bajo la fórmula de un simple divisor de voltaje. Figura 2.7 Circuito Básico de Medición CAPITULO 2 21 El valor de RL debe escogerse para optimizar el valor del umbral de alarmado, manteniendo siempre la potencia disipada del sensor (PS) debajo del límite de 15mW. PS será mayor cuando el valor de RS sea igual a RL debido a la exposición al gas. 22..33 SSEENNSSOORR UULLTTRRAASSÓÓNNIICCOO ((UUCCMM--RR4400KK11)) [[2211]] Los medidores ultrasónicos de distancia que se utilizan en los robots son, básicamente, un sistema de sonar. En el módulo de medición, un emisor lanza un tren de pulsos ultrasónicos y espera el rebote, midiendo el tiempo entre la emisión y el retorno, lo que da como resultado la distancia entre el emisor yel objeto donde se produjo el rebote. Se pueden señalar dos estrategias en estos medidores: los que tienen un emisor y un receptor separados y los que alternan la función (por medio del circuito) sobre un mismo emisor/receptor piezoeléctrico. El ultrasonido hace referencia a las frecuencias arriba de 20 KHz (limite de sonido audible). Las altas frecuencias tienen longitudes de onda cortas lo que hace al reflejarse en objetos, estas puedan ser leídas. Desafortunadamente las frecuencias muy altas son difíciles de generar y leer. La generación y lectura de ultrasonido se hace a través de dos unidades piezoeléctricas en donde una de ellas es el emisor y la otra el receptor de ondas de presión ultrasónicas. Para esto, la unidad emisora debe excitarse con una señal adecuada en amplitud y frecuencia. La unidad receptora transducirá todas aquellas ondas de presión ultrasónicas de 40KHz que lleguen a excitarla. El ultrasonido es aplicado comúnmente en detectores de movimiento, medidores de distancia, diagnostico médico, limpieza, pruebas no destructivas (para detectar imperfecciones en materiales), soldadura entre otras más. El número de parte incluye al transmisor y al receptor, marcados con T y R. En la Figura 2.8 se muestra físicamente el este sensor tanto el transmisor como el receptor. En la Figura 2.9 se observa la composición interna de este sensor. Figura 2.8 Sensor ultrasónico UCM-R40K1. (Transmisor y receptor) CAPITULO 2 22 Figura 2.9 Composición interna del UCM-R40K1. La Tabla 2.1 muestra las características del sensor Ultrasónico: Tabla 2.1 Características del Sensor Ultrasónico Características MDU (MEDIDOR DE DISTANCIA ULTRASONICO) Tipo de Sensor Ultrasónico de reflexión Frecuencia 40KHz Distancia mínima 25cm Distancia máxima 300cm Resolución 1 cm Sensibilidad Detecta un objeto de diámetro 8cm a < 1m Tensión de entrada 9V Consumo de corriente 60 mA tip. 2.4 MICROCONTROLADOR PIC18F452 [22] El microcontrolador, como se menciono en el capitulo anterior, es un sistema cerrado y se emplea para controlar el funcionamiento de una tarea determinada, y en nuestro caso, será el dispositivo que controlara todos los sensores y procesara las señales de estos para ser transmitidos por medio de los módulos de RF. CARACTERISTICAS Compilador C mejora la arquitectura/conjunto de instrucciones: o El código fuente es compatible con el conjunto de instrucciones de los PIC16 y PIC17. CAPITULO 2 23 La memoria del programa lineal direcciona 32 Kbytes La memoria de los datos lineales direcciona 1.5 Kbytes La Tabla 2.2 muestra la capacidad de memoria RAM y ROM de diferentes PIC. Tabla 2.2 Memoria RAM y ROM para diferentes PIC A 10 MIPs para la operación: o DC - 40 MHz a la entrada osc/reloj o MHz - 10 MHz. a la entada osc/reloj con el PLL activo Instrucciones de 16 bits, 8 bits para el camino de datos. Niveles de prioridad para las interrupciones. CARACTERÍSTICAS PERIFÉRICAS: Alta corriente de consumo/fuente 25mA/25mA Tres pines de interrupción externa. Módulo Timer0: 8 bits/16 bits reloj/contador con 8 bits de preescaler programable Módulo Timer1: 16 bits reloj/contador Modulo Timer2: 8 bits reloj/contador con 8 bits de registro de periodo (tiempo-base para PWM) Módulo Timer3: 16 bits reloj/contador Opción secundaria de reloj oscilador Timer1/Timer3 Dos módulos de Captura/Comparación/PWM (CCP) CAPITULO 2 24 CCP pines que pueden ser configurados como: o Entrada de Captura: 16 bits de captura, máxima resolución 6.25 ηs (TCY/16) o 16 bits de comparación, máxima resolución 100 ηs (TCY) o Salida PWM: PWM resolución es de 1 bit a 10 bits, Máxima frecuencia a 8 bits: 156 kHz Máxima frecuencia a 16 bits: 39 kHz o Modulo de direccionamiento USART Apoyado del RS-485 o RS-232 o Modulo de Puerto Paralelo Esclavo (PSP) Características Analógicas Compatible con el modulo de conversión Analógico-Digital de 10 bits: o Velocidad de Muestreo Rápida o Conversión disponible durante el SLEEP o Linealidad < 1LSb Detección de Bajo Voltaje Programable (PLVD) o Soportes de Interrupción en Detección de Bajo Voltaje Características Especiales del Microcontrolador 100,000 ciclos de borrado/escritura de memoria programable FLASH 1,000,000 ciclos de borrado/escritura de memoria de datos EEPROM Retención de Datos en la memoria Flash/EEPROM mayor a 40 años Reprogramable con el mismo Software de Control Power-on Reset (POR), Power-up Timer (PWRT) and Oscillator Start-up Timer (OST) Reloj de Vigilancia (WDT) con su propio oscilador RC para rehabilitar la operación Código de Protección programable Ahorro de Energía en modo SLEEP Opciones Seleccionables de Oscilador incluyendo: o 4X fase de bloque del bucle ( del primer oscilador) o Oscilador Secundario (32kHz) como reloj de entrada Tecnología CMOS Bajo Consumo, Alta Velocidad en tecnología FLASH/EEPROM CAPITULO 2 25 Diseño Totalmente Estático Amplio Rango de Operación de Voltaje (2.0V a 5.5V) Rangos de Temperatura Extensos e Industriales Bajo Consumo de Energía: o Corriente Típica < 1.6mA a 5V y 4MHz o Corriente Típica de 25 µA a 3V y 32KHz o Corriente Típica en Espera < 0.2 µA 2.4.1 CONFIGURACION DEL OSCILADOR La configuración del oscilador en el microcontrolador sirve para poder escoger la fuente de oscilación y la forma en que nuestro microcontrolador generara las oscilaciones necesarias para funcionar, que en nuestro caso utilizamos un cristal (XT) de 4 MHz. Tipos de Osciladores El PIC 18F452 puede operar en 8 diferentes modos de osciladores. El usuario puede programar tres bits de configuración (FOSC2, FOSC1 y FOSC0) para seleccionar uno de esos 8 modos. En la Tabla 2.3 se muestran los diferentes tipos de osciladores. Tabla 2.3 Tipos de Osciladores 1. LP Cristal de Bajo Poder 2. XT Cristal/Resonador 3. HS Alta Velocidad Cristal/Resonador 4. HS + PLL Alta Velocidad Cristal/Resonador con PLL habilitado 5. RC Resistor/Capacitor Externo 6. RCIO Resistor/Capacitor Externo con pines de entrada/salida habilitados 7. EC Reloj Externo 8. ECIO Reloj Externo con pin de entrada/salida habilitado Oscilador de Cristal/Resonadores Cerámicos En los modos de oscilador (XT, LP, HS o HS + PLL), un cristal o resonador cerámico está conectado a los pines OSC1 y OSC2 para establecer la oscilación. La Figura 2.10 muestra la conexión de los pines. El diseño del oscilador para el PIC18F452 requiere el uso de un cristal en paralelo. CAPITULO 2 26 Figura 2.10 Operación del resonador de cristal/cerámico (configuración hs, xt ò lp) NOTA: 1. Ver la Tabla 2.4 y Tabla 2.5 para valores recomendados de capacitores C1 y C2. 2. Un resistor en serie (RS) puede ser requerido para eliminar un corto por el cristal. 3. RF varía según el modo de oscilador elegido. Tabla 2.4 Selección del Capacitor para Resonadores Cerámicos Rangos Probados Modo Frecuencia C1 C2 XT 455 kHz 68 – 100 pF 68 – 100 pF 2.0 MHz 15 – 68 pF 15 – 68 pF 4.0 MHz 15 – 68 pF 15 – 68 pF HS 8.0 MHz 10 – 68 pF 10 – 68 pF 16.0 MHz 10 – 22 pF 10 – 22 pF NOTA: 1. Altos valores de capacitancia incrementa la estabilidad del oscilador, pero también incrementa el tiempo de comienzo. 2. Cuando opera por debajo de los 3V VDD, o cuando usas cierto resonador cerámico a algún voltaje, puede ser necesario usar ganancia alta en modo HS, probar una frecuencia de resonancia más baja, o un interruptor para un oscilador de cristal. 3. Como cada resonador/cristal tiene sus propias características, el usuario deberá consultar la fabricación del resonador/cristal para colocar los valores apropiados de los componentesexternos, o verificar el desempeño del oscilador. CAPITULO 2 27 Tabla 2.5 Selección del Capacitor para el Oscilador de Cristal Rangos Probados Modo Frecuencia C1 C2 LP 32.0 kHz 33 pF 33 pF 200 kHz 15 pF 15 pF XT 200 kHz 22 – 68 pF 22 – 68 pF 1.0 MHz 15 pF 15 pF 4.0 MHz 15 pF 15 pF HS 4.0 MHz 15 pF 15 pF 8.0 MHz 15 – 33 pF 15 – 33 pF 20.0 MHz 15 – 33 pF 15 – 33 pF 25.0 MHz 15 – 33 pF 15 – 33 pF NOTA: 1. Altos valores de capacitancia incrementa la estabilidad del oscilador, pero también incrementa el tiempo de comienzo. 2. De la Figura 2.10, RS puede ser requerida para el modo HS, así como el modo XT, para evitar manejo incorrecto de cristales. 3. Como cada resonador/cristal tiene sus propias características, el usuario deberá consultar la fabricación del resonador/cristal para colocar los valores apropiados de los componentes externos, o verificar el desempeño del oscilador. 2.4.2 TIMER (TEMPORIZADORES/CONTADORES) El microcontrolador cuenta con unos módulos llamadas Timer, y estos se pueden configurar como Temporizadores o Contadores. En este proyecto son utilizados como timers o temporizadores para poder ejecutar y así poder tener ciertos retardos en la ejecución del programa, para generar señales de salida o dar tiempo para que el sistema adquiera las mediciones necesarias de los sensores. 2.4.2.1 MODULO TIMER 0 El modulo Timer0 tiene las siguientes características: Contador/Temporizador de 8 o 16 bits seleccionable en el programa. CAPITULO 2 28 Es posible Leerlo y escribirlo 8 bits dedicados para programar el preescaler. Fuente de reloj seleccionable externo o interna El registro T0CON, Figura 2.11, es un registro de lectura y escritura que controla todos los aspectos del Timer0, incluyendo la selección del preescaler. Figura 2.11 Registro de Control del Timer 0: T0CON bit 7 TMR0ON: Timer0 Bit de Control de encendido/apagado 1 = habilita al Timer0 0 = apaga al Timer0 bit 6 T08BIT: Timer0 Bit de Control de 8-bit/16-bit 1 = el Timer0 está configurado como un contador/reloj de 8-bits 0 = el Timer0 está configurado como un contador/reloj de16-bits bit 5 T0CS: Timer0 Bit de selección del reloj 1 = cambio en el pin T0CKI 0 = Instrucción interna del ciclo de reloj (CLKO) bit 4 T0SE: Timer0 Source Edge Select bit 1 = Incremento de alto a bajo en el pin T0CKI 0 = Incremento de bajo a alto en el pin T0CKI bit 3 PSA: Timer0 Bit de Asignación del Preescaler 1 = el preescaler del Timer0 no está asignado. La entrada del reloj del Timer0 omite el preescaler. 0 = el preescaler del Timer0 está asignado. La entrada del reloj del Timer0 viene de la salida del preescaler. CAPITULO 2 29 bit 2-0 T0PS2:T0PS0: Timer0 Bits de Selección del Preescaler 111 = 1:256 valor del preescaler 110 = 1:128 valor del preescaler 101 = 1:64 valor del preescaler 100 = 1:32 valor del preescaler 011 = 1:16 valor del preescaler 010 = 1:8 valor del preescaler 001 = 1:4 valor del preescaler 000 = 1:2 valor del preescaler Leyenda: R = bit de lectura W = bit de escritura U = bit sin implementar, se lee como un „0‟ - n = valor de POR „1‟ = bit de encendido ‟0‟ = bit de borrado x = Bit desconocido La Figura 2.12 muestra un diagrama a bloques del modulo Timer0 en modo de 8 bits y la Figura 2.13 muestra un diagrama a bloques simplificado del modulo Timer0 en modo de 16 bits. Figura 2.12 Diagrama a Bloques del Timer0 en modo 8-bits CAPITULO 2 30 Figura 2.13 Diagrama a Bloques del Timer0 en modo 16-bits OPERACIÓN DEL TIMER 0 El Timer0 puede operar como reloj o como un contador. El modo reloj se selecciona poniendo el bit T0CS. En modo reloj, el modulo Timer0 incrementara cada ciclo de la instrucción (sin preescaler). Si el registro TMR0L esta como escritura, el incremento se invalida para los dos siguientes ciclos de instrucción. Al usarlo, puede trabajar alrededor de este escribiendo un valor ajustado para el registro TMR0L. El modo contador se selecciona poniendo el bit T0CS. En modo contador, el Timer0 se incrementara, en cada flanco se subida o bajada del pin RA4/T0CK1. Cuando la entrada del reloj externa es usada por el Timer0, debe reunir ciertos requisitos. Los requerimientos aseguran que el reloj externo pueda ser sincronizado con la fase del reloj interno (TOSC). También, hay un retardo en el incremento actual del Timer0 después de la sincronización. PREESCALER Un contador de 8 bits está disponible como un preescaler por el modulo Timer0. El preescaler no se lee o escribe. Los bits PSA y T0PS2-T0PS0 determinan la asignación del preescaler y la relación del preescaler. CAPITULO 2 31 Limpiar el bit PSA, asignara al preescaler para el modulo Timer0. Cuando el preescaler es asignado para el modulo Timer0, los valores del preescaler que son seleccionables son 1:2, 1:4,…,1:256. INTERRUPCION DEL TIMER 0 La interrupción del TMR0 es generada cuando el registro TMR0 se desborda de FFh a 00H en modo de 8 bits, o FFFFh a 0000h en modo de 16 bits. Este desbordamiento establece al bit TMR0IF. La interrupción puede ser enmascarada limpiando el bit TMR0IE. El bit TMR0IE debe ser limpiado en el programa por medio de una Rutina de Servicio de Interrupciones del modulo del Timer0 antes de rehabilitar esta interrupción. La interrupción TMR0 no puede habilitar el microcontrolador del proceso de DESCANSO (SLEEP). TIMER DE 16-BITS EN MODO DE LECTURA Y ESCRITURA El TMR0H no es el byte alto del reloj/contador en el modo de 16-bits, pero es una versión de almacenado del byte alto del Timer0, ver Figura 2.13. El byte alto del Timer0 reloj/contador no es directamente leible o escribible. El TMR0H es actualizado con el contendido del byte alto del Timer0 durante una lectura del TMR0L. Esto proporciona la habilidad de leer todos los 16-bits del Timer0 sin tener que verificar cual era el valor de lectura del byte alto o bajo debido a una mezcla entre lecturas sucesivas del byte alto y byte bajo. Una escritura al byte alto del Timer0 deberá tener lugar a través del registro de almacenamiento TMR0H. El byte alto del Timer0 es actualizado con el contenido de TMR0H cuando ha ocurrido un escrito en TMR0L. Esto permite a todos los 16-bits del Timer0 ser una vez más actualizados. 2.4.2.2 MODULO TIMER 1 El modulo Timer1 reloj/contador tiene las siguientes características: Reloj/Contador de 16-bits (2 registros de 8-bits: TMR1H y TMR1L) Ambos registros son de lectura y escritura Reloj seleccionable: interno o externo Interrupción de desbordamiento de FFFFh a 0000h CAPITULO 2 32 RESET después un evento especial en el modulo de disparo CCP. El registro T1CON, Figura 2.14, sirve para el control del Timer1. Este registro controla el modo de operación del modulo del Timer1, y contiene al bit de habilitación del oscilador del Timer1 (T1OSCEN). El Timer1 puede ser habilitado o deshabilitado fijando o borrando el bit de control TMR1ON (T1CON<0>). Figura 2.14 Registro de Control del Timer 1: T1CON bit 7 RD16: bit de modo habilitado de 16-bits de lectura/escritura 1 = habilita el registro de lectura/escritura del Timer1 en una operación de 16-bits 0 = habilita el registro de lectura/escritura del Timer1 en dos operaciones de 8-bits bit 6 Sin Usar: se lee como „0‟ bit 5-4 T1CKPS1:T1CKPS0: bits de selección de entrada del Timer1 del preescaler de reloj. 11 = Valor del preescaler 1:8 10 = Valor del preescaler 1:4 01 = Valor del preescaler 1:2 00 = Valor del preescaler 1:1 bit 3 T1OSCEN: bit de habilitación del Oscilador del Timer11 = el Oscilador del Timer1 está habilitado 0 = el Oscilador del Timer1 está bloqueado bit 2 T1SYNC: bit de entrada de selección de reloj externo síncrono del Timer1 Cuando TMR1CS = 1: 1 = la entrada externa de reloj no sincroniza 0 = la entrada externa de reloj sincroniza Cuando TMR1CS = 0: Este bit es ignorado. El Timer1 utiliza el reloj interno. CAPITULO 2 33 bit 1 TMR1CS: bit de selección de la fuente de reloj 1 = reloj externo del pin RC0/T1OSO/T13CKI (en flanco de subida) 0 = reloj interno (FOSC/4) bit 0 TMR1ON: bit de encendido del Timer1 1 = Timer1 habilitado 0 = Timer1 apagado Leyenda: R = bit de lectura W = bit de escritura U = bit sin implementar, se lee como un „0‟ - n = valor de POR „1‟ = bit de encendido ‟0‟ = bit de borrado x = Bit desconocido OPERACIÓN DEL TIMER 1 El Timer1 puede operar en uno de estos modos: Como un Cronometro Como un contador Síncrono Como un contador Asíncrono El modo de operación está determinado por el bit de reloj de selección, TMR1CS (T1CON<1>). Cuando TMR1CS = 0, el Timer1 incrementa cada ciclo de instrucción. Cuando TMR1CS = 1, el Timer1 incrementa en cada flanco de subida del reloj de entrada externo o el oscilador del Timer1, si está habilitado. Cuando el oscilador del Timer1 está habilitado (T1OSCEN está establecido), los pines RC1/ T1OSI y RC0/T1OSO/T1CKI llegan a ser entradas. Esto es, el valor de TRISC<1:0> es ignorado, y los pines son leídos como „0‟. El Timer1 también una entrada de RESET interna. Este RESET puede ser generado por el modulo CCP. La Figura 2.15 muestra un diagrama a bloques del modulo del Timer1. CAPITULO 2 34 Figura 2.15 Diagrama a Bloques del Timer1 La Figura 2.16 muestra un diagrama a bloques del Timer 1 en modo de 16 bits de lectura y escritura. Figura 2.16 Diagrama a Bloques del Timer1 en modo de 16-bits de lectura/escritura Oscilador del Timer 1 Un circuito oscilador de cristal está construido entre los pines T1OSI (entrada) y T1OSO (amplificador de salida). Esto se habilita poniendo el bit de control T1OSCEN (T1CON<3>). El CAPITULO 2 35 oscilador es un oscilador de bajo poder con un valor arriba de 200 kHz. Continuara corriendo durante el SLEEP. Esto es para un cristal de 32 kHz El usuario deberá proporcionar un software para el tiempo de retardo para asegurar la salida adecuada del oscilador del Timer1. Interrupción Timer 1 El registro par TMR1 (TMR1H:TMR1L) incrementan de 0000h a FFFFh y regresa a 0000h. La interrupción TMR1, si está habilitada, esta generando un desbordamiento, que esta TMR1IF (PIR1<0>). Esta interrupción puede estar habilitada o deshabilitada para establecer o parar la interrupción, habilitado el bit de la interrupción del TMR1, TMR1IE (PIE1<0>). Restableciendo el Timer1 usando un CCP de Disparo de Salida Si el modulo CCP está configurado en modo de comparación para generar un “evento especial de disparo” (CCP1M3:CCP1M0=1011), esta señal restaurara al Timer1 y empezara una conversión A/D (si el modulo de A/D está habilitado). El Timer1 debe estar configurado por otro Timer o contador en modo síncrono para tener la ventaja de esta característica. Si el Timer1 está corriendo como contador en modo asíncrono, no puede trabajar esta operación de RESET. Timer1 de 16-bits en modo de lectura y escritura Cuando el bit de control RD16 (T1CON<7>) está establecido, la dirección TMR1H está asignada para un registro de almacenamiento para el byte alto del Timer1. Una lectura del TMR1L cargara el contenido del byte alto del Timer1 dentro del byte alto de almacenamiento del Timer1. Esto le proporciona al usuario la habilidad con precisión de leer todos los 16-bits del Timer1 sin tener que determinar si una lectura del byte alto seguido de una lectura del byte bajo es válida, debido a un mezcla entre lecturas. Una escritura para el byte alto del Timer1 debe también tener lugar a través del registro de almacenamiento TMR1H. El byte alto del Timer1 es actualizado con el contenido del TMR1H cuando ocurre una escritura en TMR1L. Esto le permite al usuario escribir todos los 16-bits, el byte alto y bajo en seguida del Timer1. CAPITULO 2 36 El byte alto del Timer1 no es directamente leíble o escribible en este modo. Todas las lecturas y escrituras deben tener lugar a través byte alto del registro de almacenamiento del Timer1. La escritura para TMR1H no limpie al preescaler del Timer1. El preescaler es solo limpiado en escrituras para TMR1L. 2.4.3 PWM (MODULACION POR ANCHO DE PULSO) En el modo de Modulación por Ancho de Pulso (PWM), el pin CCP1 produce una salida Modulada en Ancho de Pulso de 10 bits. El pin CCP1 esta multiplexado con el latch de datos del Puerto C, el bit TRISC<2> debe ser limpiado para hacer el pin CCP1 como salida. Nota: Limpiar el registro CCP1CON forzara el latch de salida CCP1 de PWM a un nivel bajo de default. La Figura 2.17 muestra un diagrama a bloques simplificado del modulo CCP en modo PWM. Para un procedimiento paso a paso sobre como configurar el modulo CCP para la operación de PWM, ver sección 2.4.3.3. Figura 2.17 Diagrama a bloques de PWM CAPITULO 2 37 Una salida de PWM, Figura 2.18, tiene una base de tiempo (periodo) y un tiempo en que la salida se mantiene alto (ciclo útil). La frecuencia de un PWM es el inverso del periodo (1/periodo). Figura 2.18 Salida PWM 2.4.3.1 PERIODO DEL PWM El periodo del PWM es especificado por la escritura del registro PR2. El periodo del PWM puede ser calculado usando la fórmula 2.3 como se muestra a continuación: (2.3) La frecuencia del PWM es definida como 1/ [Periodo PWM]. Cuando TMR2 es igual a PR2, los siguientes tres eventos ocurren en el siguiente ciclo: TMR2 es restablecido El pin CCP1 es fijado (excepción: si el ciclo útil del PWM=0%, el pin CCP1 no podrá ser fijado). El ciclo útil del PWM es latched desde CCPR1L dentro CCPR1H. Nota: El postscaler del Timer2 no es usado en la determinación de la frecuencia del PWM. El postscaler puede ser programado a diferentes frecuencias a través del PWM. 2.4.3.2 CICLO UTIL DEL PWM El ciclo útil del PWM es especificado por la escritura del registro CCPR1L y los bits CCP1CON<5:4>. Más de 10 bits de resolución están disponibles. El registro CCPR1L contiene los 8 bits Más significativos y los bits CCP1CON<5:4> contienen los dos bits Menos CAPITULO 2 38 significativos. Este valor de 10 bits está representado por CCPR1L:CCP1CON<5:4>. La siguiente ecuación es usada para calcular el ciclo útil del PWM en tiempo: Ciclo Útil PWM = (CCPR1L:CCP1CON<5:4>) •TOSC • (TMR2 valor del preescaler) (2.4) CCPR1L y CCP1CON<5:4> pueden ser escritos en cualquier momento, pero el valor del ciclo útil no está dentro de CCPR1H hasta después de un encuentro entre PR2 y TMR2 (por ejemplo: el periodo es completo). En el modo PWM, CCPR1H es solo un registro de lectura. El registro CCPR1H y 2 bits de un latch interno son usados como un buffer doble del ciclo útil de PWM. Este doble buffer es esencial para el funcionamiento del PWM sin fallas técnicas. Cuando el CCPR1H y los dos bits del latch coinciden TMR2 es concatenado con un flip-flop Q de 2 bits o 2 bits del preesclaer del TMR2, el pin CCP1 es limpiado. La máxima resolución del PWM (en bits) para una frecuencia de PWM dada es calculada con la ecuación 2.5, como se muestra a continuación: (2.5) Nota: Si el ciclo útil del PWM es más grande que el periodo PWM, el pin CCP1 no podrá ser limpiado. 2.4.3.3 CONFIGURACION
Compartir