DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERÍA GRADO LICENCIATURA EN INGENIERÍA ELECTRÓNICA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT MÓVIL AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y RF(RADIO FRECUENCIA) ASESOR DR. FAUSTO CASCO SÁNCHEZ ALUMNOS PÉREZ LÓPEZ JOEL CASTRO VARGAS AMILCAR JAVIER PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. INDICE 1. PLANTEMIENTO GENERAL ........................................................................... 5 1.1 Objetivo ................................................................................................... 5 1.2 Descripción .............................................................................................. 5 2. INTRODUCCION A LA ROBOTICA ................................................................ 6 2.1 Definición de Robot. .................................................................................. 6 2.4 Tipos de robot. ......................................................................................... 7 2.3 Robots Móviles. ....................................................................................... 10 3. INTRODUCCIÓN A LOS MICROCONTROLADORES. ..................................... 18 3.1 Controlador y microcontrolador. ................................................................ 18 3.2 Diferencia entre microprocesador y microcontrolador. .................................. 20 3.3 Aplicaciones de los microcontroladores. ..................................................... 22 3.4 El mercado de los microcontroladores. ....................................................... 23 3.5 ¿Qué microcontrolador emplear? ............................................................... 24 3.6 Recursos comunes a todos los microcontroladores. ...................................... 28 3.6.1 Arquitectura básica ......................................................................... 28 3.6.2 El procesador o CPU ........................................................................ 30 3.6.3 Memoria ........................................................................................ 31 3.6.4 Puertas de Entrada y Salida ............................................................. 34 3.6.5 Reloj principal ................................................................................ 34 3.7 Recursos especiales ................................................................................. 34 3.7.1 Temporizadores o “Timers” .............................................................. 35 3.7.2 Perro guardián o “Watchdog”............................................................ 36 3.7.3 Protección ante fallo de alimentación o “Brownout” ............................. 36 3.7.4 Estado de reposo ó de bajo consumo ................................................. 36 3.7.5 Conversor A/D (CAD) ...................................................................... 37 3.7.6 Conversor D/A (CDA) ..................................................................... 37 3.7.7 Comparador analógico ..................................................................... 37 3.7.8 Modulador de anchura de impulsos o PWM ......................................... 37 3.7.9 Puertas de E/S digitales ................................................................... 38 3.7.10 Puertas de comunicación ................................................................ 38 3.8 Herramientas para el desarrollo de aplicaciones. ............................................. 39 4. LA FAMILIA DE LOS PIC COMO ELECCIÓN. ................................................ 41 4.1 Características relevantes......................................................................... 42 2 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 4.1.1 Arquitectura. .................................................................................. 42 4.1.2 Segmentación. ............................................................................... 42 4.1.3 Formato de las instrucciones. ........................................................... 43 4.1.4 Juego de instrucciones..................................................................... 43 4.1.5 Todas las instrucciones son ortogonales ............................................. 43 4.1.6 Arquitectura basada en un “banco de registros” .................................. 43 4.1.7 Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes............................................................................................... 43 4.1.8 Herramientas de soporte potentes y económicas................................. 44 4.2 Las gamas de PIC.................................................................................... 44 4.2.1 La gama enana: PIC12C(F)XXX de 8 pines ......................................... 45 4.2.2 Gama baja o básica: PIC16C5X con instrucciones de 12 bits................. 46 4.2.3 Gama media. PIC16CXXX con instrucciones de 14 bits ......................... 48 4.2.4 Gama alta: PIC17CXXX con instrucciones de 16 bits. ........................... 49 5. MOTORES .................................................................................................. 51 5.1 Concepto ............................................................................................... 51 5.2 Motores de C.A. ...................................................................................... 51 5.2.1 Concepto ....................................................................................... 51 5.2.2 Tipos de motores de C.A. ................................................................. 52 5.3 Motores CD ............................................................................................ 53 5.3.1 Concepto ....................................................................................... 53 5.3.2 Tipos de motores de CD ................................................................... 53 5.3.2 Motores convencionales de imán permanente ..................................... 54 5.3.3 Motores de paso ............................................................................. 56 5.3.3.1 Estructura ............................................................................. 56 5.3.3.2 Principio de operación ............................................................ 58 6. PUENTE H. ................................................................................................ 61 6.2 Características ........................................................................................ 61 6.3 Funcionamiento ...................................................................................... 62 6.4 Presentaciones de los Puentes H. .............................................................. 63 6.4 Configuraciones del L293. ........................................................................ 64 7. PLANIFICACIÓN Y DISEÑO DEL ROBOT MÓVIL AUTONOMO. ..................... 67 7.1 Descripción de niveles de un robot autónomo ............................................. 67 7.2 Nivel Físico ............................................................................................. 67 7.2.1 Motores de corriente continua ............................................................ 67 3 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 7.2.2 Estructura ....................................................................................... 68 7.2.3 Movilidad de la estructura: Ruedas o llantas ........................................ 69 7.2.4 Etapa de potencia ............................................................................. 71 7.3 Nivel de Reacción y Control ...................................................................... 76 8. CONCLUSIONES ........................................................................................ 78 9. BIBLIOGRAFIA ......................................................................................... 80 ANEXOS ....................................................................................................... 82 4 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 1. PLANTEMIENTO GENERAL. 1.1 Objetivo. El análisis, diseño y construcción de un autómata de tipo ROVER, utilizando como medio de comunicación la radio frecuencia y un microcontrolador para la lógica de control. 1.2 Descripción. Nuestro diseño esta comprendido por dos grandes etapas, la primera comprende la codificación de las instrucciones de movimiento, así como su envío a través de R. F., la segunda comprende tres bloques los cuales son Recepción, Microcontrolador y Potencia, en esta última incluimos los motores. TRANSMISOR RECEPTOR CODIFICADOR DE INSTRUCCIONES MICROCONTROLADOR POTENCIA MOTORES Figura 1.1 Diagrama a Bloques 5 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 2. INTRODUCCION A LA ROBOTICA 2.1 Definición de Robot. Un robot es un dispositivo electro-mecánico, que desempeña tareas automáticamente, ya sea de acuerdo a supervisión humana directa, a través de un programa predefinido o siguiendo un conjunto de reglas generales, utilizando técnicas de inteligencia artificial. Generalmente estas tareas reemplazan, asemejan o extienden el trabajo humano, como ensamble en líneas de manufactura, manipulación de objetos pesados o peligrosos, trabajo en el espacio, etc. Un robot también se puede definir como una entidad Figura 2.1 Robot tipo humano (fabricado por Toyota) hecha por el hombre con un cuerpo y una conexión de retroalimentación inteligente entre el sentido y la acción – no bajo la acción directa del control humano. Usualmente, la inteligencia es una computadora o un microcontrolador ejecutando un programa. Sin embargo, se ha avanzado mucho en el campo de los robots con inteligencia alámbrica. Las acciones de este tipo de robots son generalmente llevadas a cabo por motores o actuadores que mueven extremidades o impulsan al robot. Asimismo, el término robot ha sido utilizado como un término general que define a un hombre mecánico o autómata, que imita a un animal ya sea real o imaginario, pero se ha venido aplicando a muchas máquinas que reemplazan directamente a un humano o animal en el trabajo o el juego. Esta definición podría implicar que un robot es una forma de biomimetismo. “En la Tierra a menudo los robots asumen tareas repetitivas o cuando la salud humana puede correr peligro. Son utilizados para ensamblar automóviles, desactivar bombas, soldar tubos en el fondo del mar y trabajos en centrales nucleares”, comenta Gianfranco Visentin, Jefe de Automatización de la Sección de Robótica de la ESA en el ESTEC, Holanda. 6 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 2.2 Prototipo del Aramies/Escorpion “En el espacio es aún más atractivo utilizar robots”, acentúa. “Pueden apoyar o sustituir a la gente para realizar las tareas que son demasiado peligrosas, difíciles, repetitivas, que consumen mucho tiempo o incluso imposibles para los astronautas. Pueden ser más rápidos y precisos que las personas” En broma añade, “Pueden trabajar 24 horas al día y no se detienen para almorzar o dormir”. 2.4 Tipos de robot. Es complejo dar una clasificación exacta de estos, pues depende mucho del área de aplicación para la cual se diseña y construye un robot, así como el software y el tipo de mecanismos que lo hacen funcionar. Normalmente pueden ser clasificados de acuerdo a su generación, a su nivel de inteligencia, a su nivel de control, y a su nivel de lenguaje de programación La generación de un robot se determina por el orden histórico de desarrollos en la robótica. Cinco generaciones son normalmente asignadas a los robots industriales. La tercera generación es utilizada en la industria, la cuarta se desarrolla en los laboratorios de investigación, y la quinta generación aún no existe. 7 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 1. Robots Play-back, los cuales regeneran una secuencia de instrucciones grabadas, como un robot utilizado en recubrimiento por spray o soldadura por arco. Estos robots comúnmente tienen un control de lazo abierto. 2. Robots controlados por sensores, estos tienen un control en lazo cerrado de movimientos manipulados, y hacen decisiones basados en datos obtenidos por sensores. 3. Robots controlados por visión, donde los robots pueden manipular un objeto al utilizar información desde un sistema de visión. 4. Robots controlados adaptablemente, donde los robots pueden automáticamente reprogramar sus acciones sobre la base de los datos obtenidos por los sensores. 5. Robots con inteligencia artificial, donde los robots utilizan las técnicas de inteligencia artificial para hacer sus propias decisiones y resolver problemas. 6. Los robots médicos son fundamentalmente, prótesis que se adaptan al cuerpo y están dotados de potentes sistemas de mando. Con ellos se logra igualar al cuerpo con precisión los movimientos y funciones de los órganos o extremidades que suplen. 7. Los androides son robots que se parecen y actúan como seres humanos. Los robots de hoy día vienen en todas las formas y tamaños, pero a excepción de los que aparecen en las ferias y espectáculos, no se parecen a las personas y por tanto no son androides. Actualmente, los androides reales sólo existen en la imaginación y en las películas de ficción. 8. Los robots móviles están provistos de patas, ruedas u orugas que los capacitan para desplazarse de acuerdo a su programación. Elaboran la información que reciben a través de sus propios sistemas de sensores y se emplean en determinado tipo de instalaciones industriales, sobre todo para el transporte de mercancías en cadenas de producción y almacenes. También se utilizan 8 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. robots de este tipo para la investigación en lugares de difícil acceso o muy distantes, como es el caso de la exploración espacial y las investigaciones o rescates submarinos. La Asociación de Robots Japonesa (JIRA) clasifica los robots dentro de seis clases tomando como base su nivel de inteligencia: 1. Dispositivos de manejo manual, controlados por una persona. 2. Robots de secuencia arreglada. 3. Robots de secuencia variable, donde un operador puede modificar la secuencia fácilmente. 4. Robots regeneradores, donde el operador humano conduce el robot a través de la tarea. 5. Robots de control numérico, donde el operador alimenta la programación del movimiento, hasta que se enseñe manualmente la tarea. 6. Robots inteligentes, los cuales pueden entender e interactuar con cambios en el medio ambiente. Los programas en el controlador del robot pueden ser agrupados de acuerdo al nivel de control que realizan. 1. Nivel de inteligencia artificial, donde el programa aceptará un comando como "levantar el producto" y descomponerlo dentro de una secuencia de comandos de bajo nivel basados en un modelo estratégico de las tareas. 2. Nivel de modo de control, donde los movimientos del sistema son modelados, para lo que se incluye la interacción dinámica entre los diferentes mecanismos, trayectorias planeadas, y los puntos de asignación seleccionados. 3. Nivel de servo sistemas, donde los actuadores controlan los parámetros de los mecanismos con el uso de una retroalimentación interna de los datos obtenidos por los sensores, y la ruta es 9 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. modificada sobre la base de los datos que se obtienen de sensores externos. Todas las detecciones de fallas y mecanismos de corrección son implementadas en este nivel. En la clasificación final se considerara el nivel del lenguaje de programación. La clave para una aplicación efectiva de los robots para una amplia variedad de tareas, es el desarrollo de lenguajes de alto nivel. Existen muchos sistemas de programación de robots, aunque la mayoría del software más avanzado se encuentra en los laboratorios de investigación. Los sistemas de programación de robots caen dentro de tres clases: 1.- Sistemas guiados, en el cual el usuario conduce el robot a través de los movimientos a ser realizados. 2.- Sistemas de programación de nivel-robot, en los cuales el usuario escribe un programa de computadora al especificar el movimiento y el censado. 3.- Sistemas de programación de nivel-tarea, en el cual el usuario especifica la operación por sus acciones sobre los objetos que el robot manipula. 2.3 Robots Móviles. De acuerdo a la definición anterior podemos decir que en el campo de la Robótica se entiende por Robot Móvil a todo robot que utiliza ruedas u orugas como sistema de locomoción. Tradicionalmente a los robots móviles se les denomina ROVER o trotamundos. Figura 2.3 Ejemplos de robots ROVER 10 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 2.4 Niveles de Desarrollo. Una posible organización para el diseño y construcción de robots es la propuesta por la empresa Microbótica: dividir el proceso de creación de robots en seis niveles distintos. A esta técnica la han llamado La TorreBOT. La conclusión de cada una de estas etapas no permitirá tener robot móvil robusto y fiable en su funcionamiento, así como mayor capacidad de independencia. Nivel de cooperación Nivel 6 Nivel 5 Nivel de comunidad Nivel 4 Nivel de Inteligencia Nivel 3 Nivel de Control Nivel 2 Nivel de Reacción Nivel 1 Nivel Físico Figura 2.4 Niveles de desarrollo de un Micro robot 2.4.1 Nivel físico. En este nivel, el primero de todos en el proceso de construcción, hay que: determinar cuál será la estructura física del robot; qué y cuántos motores se van a utilizar y cómo se van a disponer en la estructura; y qué y cuántas etapas de potencias se van a necesitar. a) Estructuras. Para la construcción de un robot se pueden utilizar muchos tipos de estructuras, que dependerán de la función que se quiera realizar. La estructura es la encargada de darle forma al robot y sostener sus componentes. Puede estar constituida por numerosos materiales, como plásticos, metales, etc. y tener muchas formas diferentes. Así como en la naturaleza, los robots pueden ser del tipo "endoesqueleto", donde la estructura es interna y los demás componentes externos, o "exoesqueleto", donde la estructura es externa y cubre los demás elementos. Los medios de locomoción son sistemas que permiten al robot desplazarse de un sitio a otro si éste debe hacerlo. El más utilizado y simple es el de las ruedas, y le siguen en importancia las patas y las orugas. A la hora de diseñar la tracción del robot utilizando ruedas, se puede optar por las siguientes estructuras generales: 11 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Estructura con dirección diferencial, formada por dos ruedas de tracción independientes y una rueda loca (rueda capaz de rodar y pivotar sobre si misma). Estructura de triciclo, formada por dos ruedas de tracción y una de dirección independientes. Estructura similar a los coches tradicionales, formada por dos ruedas tractoras con control de la dirección y dos ruedas sin tracción. b) Motores. A la hora de elegir un motor, se debe tener en cuenta que existen varios factores como son: la velocidad, el par de arranque, el frenado, la inercia y el modo de control. Los motores que se emplean con más frecuencia en los robots para producir movimiento son los motores eléctricos y los servomotores, aunque también existen los hidráulicos y los neumáticos. Ya dedicaremos el capítulo 5 para describir la teoría relacionada con este tema. c) Etapas de potencia. La fuente de alimentación de los robots depende de la aplicación que se les dé a los mismos. Así, si el robot se tiene que desplazar autónomamente, se alimentará seguramente con baterías eléctricas recargables, mientras que si no requiere desplazarse, o sólo lo debe hacer mínimamente, se puede alimentar mediante corriente alterna a través de un convertidor. En los robots de juguete o didácticos se pueden emplear baterías comunes o pilas, y en los de muy bajo consumo celdas solares. 2.4.2 Nivel de reacción. En este nivel se agrupan los transductores, sensores y los sistemas básicos para el manejo de variables externas que determinan una cierta respuesta o comportamiento, además le dan mayor grado de independencia a un robot. 12 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Los diagramas de respuestas a estímulos se utilizan para la representación gráfica de comportamientos específicos. Cada comportamiento se representa como una respuesta a un estímulo dado: Figura 2.5 Diagrama de respuesta a estímulos Al igual que los diagramas de respuestas a estímulos, cada comportamiento se representa como una respuesta a un estímulo dado, pero utilizando notación matemática: c (e) = r donde: c es un comportamiento determinado, e es un estímulo y r es una respuesta. El diagrama de respuestas a estímulos es la metodología más intuitiva para expresar el comportamiento. 2.4.2.1 Transductores y sensores. Un transductor es un dispositivo que transforma un tipo de variable física (por ejemplo, fuerza, presión, temperatura, velocidad, etc.) en otro. Un sensor es un transductor que se utiliza para medir una variable física de interés. Cualquier sensor o transductor necesita esta calibrado para ser útil como dispositivos de medida. La calibración es el procedimiento mediante el cual se establece la relación entre la variable medida y la señal de salida convertida. Los transductores y los sensores pueden clasificarse en dos tipos básicos, 13 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. dependiendo de la forma de la señal convertida. Los dos tipos son: transductores analógicos, transductores digitales Los transductores analógicos proporcionan una señal analógica continua, por ejemplo voltaje o corriente eléctrica. Esta señal puede ser tomada como el valor de la variable física que se mide. Las señales eléctricas suministradas pueden ser manipuladas por circuitos electrónicos, cuantificadas por conversores A/D y analizadas por microcontroladores. Los transductores digitales producen una señal de salida digital, en la forma de un conjunto de bits de estado en paralelo o formando una serie de pulsaciones que pueden ser contadas. En una u otra forma, las señales digitales representan el valor de la variable medida. Los transductores digitales suelen ofrecer la ventaja de ser más compatibles con las computadoras digitales que los sensores analógicos en la automatización y en el control de procesos. Un sensor es un dispositivo capaz de transformar magnitudes físicas o químicas, llamadas variables de instrumentación, en magnitudes eléctricas. Las variables de instrumentación dependen del tipo de sensor y pueden ser por ejemplo temperatura, intensidad luminosa, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, pH, etc. Una magnitud eléctrica obtenida puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como en un sensor de humedad), una tensión eléctrica (como en un termopar), una corriente eléctrica (como un fototransistor), etc. Un sensor se diferencia de un transductor en que el sensor está siempre en contacto con la variable a medir o a controlar. Recordando que la señal que nos entrega el sensor no solo sirve para medir la variable, si no también para convertirla mediante circuitos electrónicos en una señal estándar (4 a 20 mA, o 1 a 5V DC) para tener una relación lineal con los cambios de la variable sensada dentro de un rango (span), para fines de control de dicha variable en un proceso. Sensores de fuerza: micro-interruptores, “bigotes”, acelerómetros, sensores de curvatura. 14 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Sensores de sonido: micrófonos, sensores de películas piezoeléctricas, sonar. Sensores de posición y orientación: encoders, giroscopios, sensores de inclinación, acelerómetros, brújulas. Sensores de proximidad: infrarrojos, sonar, láser. Sensores de contacto: bumpers, materiales que cambian la resistencia o capacitancia al acercarse a un obstáculo, “bigotes”, sensores de curvatura, medidores de corriente. Sensores internos (permiten al robot conocer su estado interno en cada momento): encoders, brújulas, giroscopios, acelerómetros, GPS, medidores de energía, medidores de corriente, medidores de temperatura. 2.4.3 Nivel de control. Esta etapa incluye los circuitos electrónicos desde los más básicos como compuertas básicas digitales, flip-flop´s, PAL´s y GAL´s, hasta los más complejos como microprocesadores y/o microcontroladores o FPGA´s. Los microcontroladores con más éxito son los PIC, fabricados por la empresa americana Arizona Microchip. Son microcontroladores que, por su bajo costo y sus altas prestaciones, pueden ser utilizados en pequeños y grandes proyectos. Todos sus circuitos comparten la misma arquitectura interna y disponen de recursos similares, aunque poseen diferentes tamaños de memoria, distinto número de puertos de E / S, etc. Sus características principales las analizaremos en el capítulo 4. 2.4.4 Nivel de inteligencia. En esta etapa debemos considerar el funcionamiento del robot a través de algoritmos programados con cierta independencia de los sensores. Esta etapa es una de las más complejas autómatas. Figura 2.6 Algoritmo de visión a través de un FPGA. 15 . dentro del diseño de PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA 16 ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 2.4.5 Nivel de comunidad Este nivel comprende el funcionamiento de varios robots sin que ninguno tenga conocimiento explícito de la existencia de otros robots en el mismo entorno. Figura 2.7 Comunidad de robots cooperativos. 2.4.6 Nivel de cooperación Los programadores buscaran que su diseño sea capaz de reconocer a otros robots dentro de su entorno o escenario. Los robots pueden compartir datos y buscar el desarrollo de un trabajo o tarea de principio a fin. Figura 2.8 Cooperación entre robots. 17 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 3. INTRODUCCIÓN A LOS MICROCONTROLADORES. Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los teléfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la invasión acaba de comenzar y el nacimiento del siglo XXI será 3.1 Microcontroladores testigo de la conquista masiva de estos diminutos dispositivos, que gobernarán la mayor parte de los aparatos que fabricaremos y usaremos los humanos. 3.1 Controlador y microcontrolador. Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna y, cuando traspasa los límites prefijados, genera las señales adecuadas que accionan los efectores que intentan llevar el valor de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores se construían exclusivamente con componentes de lógica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo computador contenido en el corazón (chip) de un circuito integrado. 18 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 3.2 Microcontrolador Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador. Un microcontrolador dispone normalmente de los siguientes componentes: Procesador o UCP (Unidad Central de Proceso). Memoria RAM para Contener los datos. Memoria para el programa tipo ROM/PROM/EPROM. Líneas de E/S para comunicarse con el exterior. Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. 19 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Los productos que para su regulación incorporan un microcontrolador disponen de las siguientes ventajas: Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo. Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado número de elementos disminuye el riesgo de averías y se precisan menos ajustes. Reducción del tamaño en el producto acabado: La integración del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks. Mayor flexibilidad: las características de control están programadas por lo que su modificación sólo necesita cambios en el programa de instrucciones. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller). 3.2 Diferencia entre microprocesador y microcontrolador. El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (CPU), también llamada procesador, de un computador. El CPU está formado por la Unidad de Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta. Las pines de un microprocesador sacan al exterior las líneas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los Módulos de E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a la que se destine. (Figura 3.3) 20 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 3.3 Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicación. Si sólo se dispusiese de un modelo de microcontrolador, éste debería tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta potenciación supondría en muchos casos un despilfarro. En la práctica cada fabricante de microcontroladores oferta un elevado número de modelos diferentes, desde los más sencillos hasta los más poderosos. Es posible seleccionar la capacidad de las memorias, el número de líneas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseño es la selección del microcontrolador a utilizar. 21 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 3.4 El Microcontrolador es un sistema cerrado. Todas las partes están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. 3.3 Aplicaciones de los microcontroladores. Cada vez existen más productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y costo, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan el millón de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilización de estos componentes. Los microcontroladores están siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigoríficos, televisores, computadoras, impresoras, módems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentación electrónica, control de sistemas en una nave espacial, etc. Una aplicación típica podría emplear varios microcontroladores para controlar pequeñas partes del sistema. 22 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Estos pequeños controladores podrían comunicarse entre ellos y con un procesador central, probablemente más potente, para compartir la información y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC. 3.4 El mercado de los microcontroladores. Aunque en el mercado de la microinformática la mayor atención la acaparan los desarrollos de los microprocesadores, lo cierto es que se venden cientos de microcontroladores por cada uno de aquéllos. Existe una gran diversidad de microcontroladores. Quizá la clasificación más importante sea entre microcontroladores de 4, 8, 16 ó 32 bits. Aunque las prestaciones de los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la realidad es que los microcontroladores de 8 bits dominan el mercado y los de 4 bits se resisten a desaparecer. La razón de esta tendencia es que los microcontroladores de 4 y 8 bits son apropiados para la gran mayoría de las aplicaciones, lo que hace absurdo emplear micros más potentes y consecuentemente más caros. Uno de los sectores que más tira del mercado del microcontrolador es el mercado automovilístico. De hecho, algunas de las familias de microcontroladores actuales se desarrollaron pensando en este sector, siendo modificadas posteriormente para adaptarse a sistemas más genéricos. El mercado del automóvil es además uno de los más exigentes: los componentes electrónicos deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc. y seguir siendo fiables. El fallo de cualquier componente en un automóvil puede ser el origen de un accidente. En cuanto a las técnicas de fabricación, cabe decir que prácticamente la totalidad de los microcontroladores actuales se fabrican con tecnología CMOS 4 (Complementary Metal Oxide Semiconductor). Esta tecnología supera a las técnicas anteriores por su bajo consumo y alta inmunidad al ruido. 23 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. La distribución de las ventas según su aplicación es la siguiente: Una tercera parte se absorbe en las aplicaciones relacionadas con los computadores y sus periféricos. La cuarta parte se utiliza en las aplicaciones de consumo (electrodomésticos, juegos, TV, vídeo, etc.) El 16% de las ventas mundiales se destinó al área de las comunicaciones. Otro 16% fue empleado en aplicaciones industriales. El resto de los microcontroladores vendidos en el mundo, aproximadamente un 10% fueron adquiridos por las industrias de automoción. También los modernos microcontroladores de 32 bits van afianzando sus posiciones en el mercado, siendo las áreas de más interés el procesamiento de imágenes, las comunicaciones, las aplicaciones militares, los procesos industriales y el control de los dispositivos de almacenamiento masivo de datos. 3.5 ¿Qué microcontrolador emplear? A la hora de escoger el microcontrolador a emplear en un diseño concreto hay que tener en cuenta multitud de factores, como la documentación y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las características del microcontrolador (tipo de memoria de programa, número de temporizadores, interrupciones, etc.): Costos. Como es lógico, los fabricantes de microcontroladores compiten fuertemente para vender sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10 veces más microcontroladores que microprocesadores. Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su producto una diferencia de precio en el microcontrolador de algunas pesetas es importante (el consumidor deberá pagar además el costo del empaquetado, el de los otros componentes, el diseño del hardware y el desarrollo del software). Si el fabricante desea reducir costos debe tener en cuenta las herramientas de apoyo con que va a contar: emuladores, simuladores, ensambladores, compiladores, etc. Es habitual que muchos de ellos siempre se decanten por microcontroladores pertenecientes a una única familia. 24 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Aplicación. Antes de seleccionar un microcontrolador es imprescindible analizar los requisitos de la aplicación: • Procesamiento de datos: puede ser necesario que el microcontrolador realice cálculos críticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rápido para ello. Por otro lado, habrá que tener en cuenta la precisión de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 ó 32 bits, o incluso a hardware de coma flotante. Una alternativa más barata y quizá suficiente es usar librerías para manejar los datos de alta precisión. • Entrada Salida: para determinar las necesidades de Entrada/Salida del sistema es conveniente dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar. Una vez realizado este análisis puede ser necesario añadir periféricos hardware externos o cambiar a otro microcontrolador más adecuado a ese sistema. • Consumo: algunos productos que incorporan microcontroladores están alimentados con baterías y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo más conveniente en un caso como éste puede ser que el microcontrolador esté en estado de bajo consumo pero que despierte ante la activación de una señal (una interrupción) y ejecute el programa adecuado para procesarla. • Memoria: para detectar las necesidades de memoria de nuestra aplicación debemos separarla en memoria volátil (RAM), memoria no volátil (ROM, EPROM, etc.) y memoria no volátil modificable (EEPROM). Este último tipo de memoria puede ser útil para incluir información específica de la aplicación como un número de serie o parámetros de calibración. El tipo de memoria a emplear vendrá determinado por el volumen de ventas previsto del producto: de menor a mayor volumen será conveniente emplear EPROM, OTP y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versión preliminar, aunque sea en pseudo-código, de la aplicación y a partir de ella hacer una estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente disponer de memoria no volátil modificable. 25 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. • Ancho de palabra: el criterio de diseño debe ser seleccionar el microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicación. Usar un microcontrolador de 4 bits supondrá una reducción en los costos importante, mientras que uno de 8 bits puede ser el más adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado costo, deben reservarse para aplicaciones que requieran sus altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado). • Diseño de la placa: la selección de un microcontrolador concreto condicionará el diseño de la placa de circuitos. Debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el resto de componentes del diseño. Los microcontroladores más populares se encuentran, sin duda, entre las mejores elecciones: 8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todavía sea muy popular. 8051 (Intel y otros). Es sin duda el microcontrolador más popular. Fácil de programar, pero potente. Está bien documentado y posee cientos de variantes e incontables herramientas de desarrollo. 80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las herramientas de desarrollo para PC. 68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular con gran cantidad de variantes. 683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan algunos periféricos. Son microcontroladores de altísimas prestaciones. PIC (MicroChip). Familia de microcontroladores que gana popularidad día a día. Fueron los primeros microcontroladores RISC. 26 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Es preciso resaltar en este punto que existen innumerables familias de microcontroladores, cada una de las cuales posee un gran número de variantes. 27 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 3.6 Recursos comunes a todos los microcontroladores. Al estar todos los microcontroladores integrados en un chip, su estructura fundamental y sus características básicas son muy parecidas. Todos deben disponer de los bloques esenciales Procesador, memoria de datos y de instrucciones, líneas de E/S, oscilador de reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones a las que se destinan preferentemente. En este apartado se hace un recorrido de todos los recursos que se hallan en todos los microcontroladores describiendo las diversas alternativas y opciones que pueden encontrarse según el modelo seleccionado. 3.6.1 Arquitectura básica MEMORIA DE INSTRUCCIONES DATOS CONTROL INSTRUCCIONES MEMORIA DE CPU UNIDAD CONTROL DIRECCIONES DE INSTRUCCIONES CONTROL DIRECCIONES DE DATOS INSTRUCCIONES UNIDAD DATOS DE OPERATIVA DATOS Figura 3.5 Arquitectura Harvard Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de von Neumann, en el presente se impone la arquitectura Harvard. La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes una, que contiene sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es 28 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias. La arquitectura Harvard dispone de dos memorias independientes para datos y para instrucciones, permitiendo accesos simultáneos. Los microcontroladores PIC responden a la arquitectura Harvard. 29 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 3.6.2 El procesador o CPU. Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la instrucción en curso, su decodificación y la ejecución de la operación que implica la instrucción, así como la búsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales. CISC: Un gran número de procesadores usados en los microcontroladores están basados en la filosofía CISC (Computadoras con conjunto de Instrucciones Complejo). Disponen de más de 80 instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúan como macros. Algunos dispositivos representativos son por parte de Intel: 8086, 8088, 80286, 80386, 80486. y por parte de Motorola: 68000, 68010, 68020, 68030, 6840. RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores están decantándose hacia la filosofía RISC (Computadoras con conjunto de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones máquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es “específico”, o sea, las instrucciones se adaptan a las necesidades de la aplicación prevista. Esta filosofía se ha nombrado como SISC (Computadoras con conjunto de Instrucciones Específico). 30 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 3.6.3 Memoria. En los microcontroladores la memoria de instrucciones y datos está integrada en el propio chip. Una parte debe ser no volátil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las variables y los datos. Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales: 1. No existen sistemas de almacenamiento masivo como disco duro o disquetes. 2. Como el microcontrolador sólo se destina a una tarea en la memoria ROM, sólo hay que almacenar un único programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales están habituados a manejar Megabytes de memoria, pero, los diseñadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Según el tipo de memoria ROM que dispongan los microcontroladores, la aplicación y utilización de los mismos es diferente. Se describen las cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado. 1º. ROM con máscara Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado costo del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. 31 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 2ª. OTP El microcontrolador contiene una memoria no volátil de sólo lectura “programable una sola vez” por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código contenido. 3ª EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. 4ª EEPROM Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. No disponen de ventana de cristal en la superficie. 32 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan “grabadores en circuito” que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramación continúa. Son muy idóneos para la enseñanza y la Ingeniería de diseño. Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. 5ª FLASH Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad que la EEPROM. La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados “en circuito”, es decir, sin tener que sacar el circuito integrado de la tarjeta. Así, un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil permite que pueda modificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factores tales como la compresión, la instalación de nuevas piezas, etc. La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto. 33 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 3.6.4 Puertas de Entrada y Salida. La principal utilidad de las pines que posee la cápsula que contiene un microcontrolador es soportar las líneas de E/S que comunican al computador interno con los periféricos exteriores. Según los controladores de periféricos que posea cada modelo de microcontrolador, las líneas de E/S se destinan a proporcionar el soporte a las señales de entrada, salida y control. 3.6.5 Reloj principal. Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronización de todas las operaciones del sistema. Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cerámico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energía. 3.7 Recursos especiales. Cada fabricante oferta numerosas versiones de una arquitectura básica de microcontrolador. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el costo, el hardware y el software. 34 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Los principales recursos específicos que incorporan los microcontroladores son: • Temporizadores o “Timers”. • Perro guardián o “Watchdog”. • Protección ante fallo de alimentación o “Brownout”. • Estado de reposo o de bajo consumo. • Conversor A/D. • Conversor D/A. • Comparador analógico. • Modulador de anchura de impulsos o PWM. • Puertas de E/S digitales. • Puertas de comunicación. 3.7.1 Temporizadores o “Timers”. Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. 35 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las pines del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos. 3.7.2 Perro guardián o “Watchdog”. Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el sistema. Se debe diseñar el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardián antes de que provoque el reset. Si falla el programa o se bloquea, no se refrescará al Perro guardián y, al completar su temporización, “ladrará y ladrará” hasta provocar el reset. 3.7.3 Protección ante fallo de alimentación o “Brownout”. Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo (“brownout”). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. 3.7.4 Estado de reposo ó de bajo consumo. Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles), los microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se “congelan” sus circuitos asociados, quedando sumido en un profundo “sueño” el microcontrolador. Al activarse una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. 36 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 3.7.5 Conversor A/D (CAD). Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde las pines del circuito integrado. 3.7.6 Conversor D/A (CDA). Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente señal analógica que saca al exterior por una de las pines de la cápsula. Existen muchos efectores que trabajan con señales analógicas. 3.7.7 Comparador analógico. Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las pines de la cápsula. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. También hay modelos de microcontroladores con un módulo de tensión de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores. 3.7.8 Modulador de anchura de impulsos o PWM. Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a través de las pines del encapsulado. 37 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 3.7.9 Puertas de E/S digitales. Todos los microcontroladores destinan algunas de sus pines a soportar líneas de E/S digitales. Por lo general, estas líneas se agrupan de ocho en ocho formando Puertas. Las líneas digitales de las Puertas pueden configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a su configuración. 3.7.10 Puertas de comunicación. Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: UART, adaptador de comunicación serie asíncrona. USART, adaptador de comunicación serie síncrona y asíncrona Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. USB (Universal Serial Bus), que es un moderno bus serie para los PC. Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. CAN (Controller Area Network), para permitir la adaptación con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles. En EE.UU. se usa el J185O. 38 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 3.8 Herramientas para el desarrollo de aplicaciones. Uno de los factores que más importancia tiene a la hora de seleccionar un microcontrolador entre todos los demás es el soporte tanto software como hardware de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo en la elección, ya que pueden suponer una ayuda inestimable en el desarrollo del proyecto. Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores son: Desarrollo del software: Ensamblador. La programación en lenguaje ensamblador puede resultar un tanto ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una versión gratuita para los microcontroladores más populares. Compilador. La programación en un lenguaje de alto nivel (como el C) permite disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa con cuidado, el código resultante puede ser mucho más ineficiente que el programado en ensamblador. Las versiones más potentes suelen ser muy caras, aunque para los microcontroladores más populares pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos. Depuración: debido a que los microcontroladores van a controlar dispositivos físicos, los desarrolladores necesitan herramientas que les permitan comprobar el buen funcionamiento del microcontrolador cuando es conectado al resto de circuitos. Simulador. Son capaces de ejecutar en un PC programas realizados para el microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecución de un programa, siendo ideales para la depuración de los mismos. Su gran inconveniente es que es difícil simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el paso físico de la implementación de un modo más seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ. 39 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Placas de evaluación. Se trata de pequeños sistemas con un microcontrolador ya montado y que suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LED´s, fácil acceso a los pines de E/S, etc. El sistema operativo de la placa recibe el nombre de programa monitor. El programa monitor de algunas placas de evaluación, aparte de permitir cargar programas y datos en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecución paso a paso, monitorizar el estado del microcontrolador o modificar los valores almacenados los registros o en la memoria. Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC anfitrión y el zócalo de la tarjeta de circuito impreso donde se alojará el microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la tarjeta de aplicación es como si lo hiciese el mismo microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información tal y como luego sucederá cuando se coloque la cápsula. 40 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 4. LA FAMILIA DE LOS PIC COMO ELECCIÓN. ¿Qué es lo que ocurre con los PIC?, ¿Por qué están en boca de todos?. Hemos buscado en multitud de bibliografía y realmente nadie da una respuesta concreta, pero una aproximación a la realidad puede ser esta: Los PIC tienen “algo” que fascina a los diseñadores, puede ser la velocidad, el precio, la facilidad de uso, la información, las herramientas de apoyo. Quizás un poco de todo eso es lo que produce esa imagen de sencillez y utilidad. Es probable que en un futuro próximo otra familia de microcontroladores le arrebate ese “algo”. Queremos constatar que para las aplicaciones más habituales (casi un 90%) la elección de una versión adecuada de PIC es la mejor solución; sin embargo, dado su carácter general, otras familias de microcontroladores son más eficaces especialmente en si aplicaciones en ellas específicas, predomina una característica concreta, que puede estar muy desarrollada en otra familia. Figura 4.1 Tipos de Microcontroladores Los detalles más importantes que convencen a los profesionales de la microelectrónica y microinformática y las razones de la excelente acogida que tienen los PIC son los siguientes: - Sencillez de manejo: Tienen un juego de instrucciones reducido; 35 en la gama media. - Buena información, fácil de conseguir y económica. - Precio: Su costo es comparativamente inferior al de sus competidores. - Poseen una elevada velocidad de funcionamiento. Buen promedio de parámetros: velocidad, consumo, tamaño, alimentación, código compacto, etc. - Herramientas de desarrollo fáciles y baratas. Muchas herramientas software se pueden recoger libremente a través de Internet desde Microchip (www.microchip.com). - Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC. 41 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. - Diseño rápido. - La gran variedad de modelos de PIC permite elegir el que mejor responde a los requerimientos de la aplicación. Una de las razones del éxito de los PIC se basa en su utilización. Cuando se aprende a manejar uno de ellos, conociendo su arquitectura y su repertorio de instrucciones, es muy fácil emplear otro modelo. 4.1 Características relevantes. Descripción de las características más representativas de los PIC: 4.1.1 Arquitectura. La arquitectura del procesador sigue el modelo Harvard. En esta arquitectura, la CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos. La arquitectura Harvard permite a la CPU acceder simultáneamente a las dos memorias. Además, propicia numerosas ventajas al funcionamiento del sistema como se irán describiendo. 4.1.2 Segmentación. Se aplica la técnica de segmentación (“pipe-line”) en la ejecución de las instrucciones. La segmentación permite al procesador realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. De esta forma se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción equivale a cuatro ciclos de reloj). Las instrucciones de salto ocupan dos ciclos al no conocer la dirección de la siguiente instrucción hasta que no se haya completado la de bifurcación. 42 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 4.1.3 Formato de las instrucciones. El formato de todas las instrucciones es de la misma longitud Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12 bits. Las de la gama media tienen 14 bits y más las de la gama alta. Esta característica es muy ventajosa en la optimización de la memoria de instrucciones y facilita enormemente la construcción de ensambladores y compiladores. 4.1.4 Juego de instrucciones. Procesador RISC (Computador de Juego de Instrucciones Reducido). Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35 los de la gama media y casi 60 los de la alta. 4.1.5 Todas las instrucciones son ortogonales. Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino. 4.1.6 Arquitectura basada en un “banco de registros”. Esto significa que todos los objetos del sistema (puertas de E/S, temporizadores, posiciones de memoria, etc.) están implementados físicamente como registros. 4.1.7 Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes. La gran variedad de modelos de microcontroladores PIC permite que el usuario pueda seleccionar el más conveniente para su proyecto. 43 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 4.1.8 Herramientas de soporte potentes y económicas. La empresa Microchip y otras que utilizan los PIC ponen a disposición de los usuarios numerosas herramientas para desarrollar hardware y software. Son muy abundantes los programadores, los simuladores software, los emuladores en tiempo real, Ensambladores, Compiladores C, Intérpretes y Compiladores BASIC, etc. La arquitectura Harvard y la técnica de segmentación son los principales recursos en los que se apoya el elevado rendimiento que caracteriza estos dispositivos programables, mejorando dos características esenciales: 1. Velocidad de ejecución. 2. Eficiencia en la compactación del código. 4.2 Las gamas de PIC. Una de las labores más importantes del ingeniero de diseño es la elección del microcontrolador que mejor satisfaga las necesidades del proyecto con el mínimo presupuesto. Para resolver aplicaciones sencillas se precisan pocos recursos, en cambio, las aplicaciones grandes requieren numerosos y potentes. Siguiendo esta filosofía Microchip construye diversos modelos de microcontroladores orientados a cubrir, de forma óptima, las necesidades de cada proyecto. Así, hay disponibles microcontroladores sencillos y baratos para atender las aplicaciones simples y otros complejos y más costosos para las de mucha envergadura. Microchip dispone de cuatro familias de microcontroladores de 8 bits para adaptarse a las necesidades de la mayoría de los clientes potenciales. En la mayor parte de la bibliografía encontrareis tan solo tres familias de microcontroladores, con lo que habrán despreciado la llamada gama enana, que es en realidad una subfamilia formada por componentes pertenecientes a las otras gamas. En nuestro caso hemos preferido comentarla dado que los PIC enanos son muy apreciados en las aplicaciones de control de personal, en sistemas de seguridad 44 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. y en dispositivos de bajo consumo que gestionan receptores y transmisores de señales. Su pequeño tamaño los hace ideales en muchos proyectos donde esta cualidad es fundamental. 4.2.1 La gama enana: PIC12C(F)XXX de 8 pines. Se trata de un grupo de PIC de reciente aparición que ha acaparado la atención del mercado. Su principal característica es su reducido tamaño, al disponer todos sus componentes de 8 pines. Se alimentan con un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan a 5 V y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones, respectivamente. En la Figura 2.1 se muestra el diagrama de conexionado de uno de estos PIC. Figura 4.2 Diagrama de conexiones de los PIC12Cxxx de la gama enana. Aunque los PIC enanos sólo tienen 8 pines, pueden destinar hasta 6 como líneas de E/S para los periféricos porque disponen de un oscilador interno R-C. En la Tabla 4.1 se presentan las principales características de los modelos de esta subfamilia, que el fabricante tiene la intención de potenciar en un futuro próximo. Los modelos 12C5xx pertenecen a la gama baja, siendo el tamaño de las instrucciones de 12 bits; mientras que los 12C6xx son de la gama media y sus instrucciones tienen 14 bits. Los modelos 12F6xx poseen memoria Flash para el programa y EEPROM para los datos. MODELO MEMORIA PROGRAMA MEMORIA DATOS 512x12 25x8 PIC12C508 1024x12 41x8 PIC12C509 512x14 80x8 PIC12C670 1024x14 128x8 PIC12C671 2048x14 128x8 PIC12C672 PIC12C680 512X12 FLASH 80x8 16x8 EEPROM PIC12C681 1024x14 FLASH 80x8 16x8 EEPROM FRECUENCIA MAXIMA LINEAS E/S 4 MHz 4 MHz 4 MHz 4 MHz 4 MHz 4 MHz 4 MHz 6 6 6 6 6 6 6 ADC 8BITS 2 4 4 TEMPORIZADORE S PINES TMR0 + WDT TMR0 + WDT TMR0 + WDT TMR0 + WDT TMR0 + WDT TMR0 + WDT TMR0 + WDT 8 8 8 8 8 8 8 Tabla 4.1 Características de los modelos PIC12C(F)XXX de la gama enana. 45 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 4.2.2 Gama baja o básica: PIC16C5X con instrucciones de 12 bits. Se trata de una serie de PIC de recursos limitados, pero con una de la mejores relaciones costo/prestaciones. Sus versiones están encapsuladas con 18 y 28 pines y pueden alimentarse a partir de una tensión de 2,5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen un repertorio de 33 instrucciones cuyo formato consta de 12 bits. No admiten ningún tipo de interrupción y la Pila sólo dispone de dos niveles. En la Figura 2.2 se muestra el diagrama de conexionado de uno de estos PIC. Figura 4.2 Diagrama de pines de los PIC de la gama baja que responden a la nomenclatura PIC16C54/56. Al igual que todos los miembros de la familia PIC16/17, los componentes de la gama baja se caracterizan por poseer los siguientes recursos: (en la Tabla 4.2 se presentan las principales características de los modelos de esta familia). 1. Sistema POR (“Power On Reset”) Todos los PIC tienen la facultad de generar una autoreinicialización o autoreset al conectarles la alimentación. 2. Perro guardián (Watchdog o WDT) Existe un temporizador que produce un reset automáticamente si no es recargado antes que pase un tiempo prefijado. Así se evita que el sistema quede “colgado” dado en esa situación el programa no recarga dicho temporizador y se genera un reset. 3. Código de protección 46 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Cuando se procede a realizar la grabación del programa, puede protegerse para evitar su lectura. También disponen los PIC de posiciones reservadas para registrar números de serie, códigos de identificación, prueba, etc. Memoria Memoria Programa Frecuencia Datos (x12 Bits) Máxima (bytes) EPROM ROM Modelo PIC16C52 PIC16C54 PIC16C54A PIC16CR54A PIC16C55 PIC16C56 PIC16C57 PIC16CR57B PIC16C58A PIC16CR58A 384 512 512 512 512 1K 2K 2K 2K 2K 25 25 25 25 24 25 72 72 73 73 04 MHz 20 MHz 20 MHz 20MHz 20MHz 20MHz 20MHz 20MHz 20MHz 20MHz Líneas E/S 4 12 12 12 20 12 20 20 12 12 Temporizadores Pines TMR0+WDT TMR0+WDT TMR0+WDT TMR0+WDT TMR0+WDT TMR0+WDT TMR0+WDT TMR0+WDT TMR0+WDT TMR0+WDT 18 18 18 18 28 18 28 28 18 18 Tabla 4.3 Características de los modelos PIC16C(R)5X de la gama baja 4. Líneas de E/S de alta corriente Las líneas de E/S de los PIC pueden proporcionar o absorber una corriente de salida comprendida entre 20 y 25 mA, capaz de excitar directamente ciertos periféricos. 5. Modo de reposo (Bajo consumo o “sleep”) Ejecutando una instrucción (SLEEP), la CPU y el oscilador principal se detienen y se reduce notablemente el consumo. Para terminar el comentario introductorio sobre los componentes de la gama baja conviene nombrar dos restricciones importantes: La pila o “stack” sólo dispone de dos niveles lo que supone no poder encadenar más de dos subrutinas. Los microcontroladores de la gama baja no admiten interrupciones. 47 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 4.2.3 Gama media. PIC16CXXX con instrucciones de 14 bits. Figura 4.3 Diagrama de pines del PIC16C74, uno de los modelos más representativos de la gama media. Es la gama más variada y completa de los PIC. Abarca modelos con encapsulado desde 18 pines hasta 68, cubriendo varias opciones que integran abundantes periféricos. Dentro de esta gama se halla el «fabuloso PIC16X84» y sus variantes. En la Figura 4.3 se muestra el diagrama de conexionado de uno de estos PIC. En esta gama sus componentes añaden nuevas prestaciones a las que poseían los de la gama baja, haciéndoles más adecuados en las aplicaciones complejas. Admiten interrupciones, poseen comparadores de magnitudes analógicas, convertidores A/D, puertos serie y diversos temporizadores. El repertorio de instrucciones es de 35, de 14 bits cada una y compatible con el de la gama baja. Sus distintos modelos contienen todos los recursos que se precisan en las aplicaciones de los microcontroladores de 8 bits. También dispone de interrupciones y una Pila de 8 niveles que permite el anidamiento de subrutinas. En la Tabla 2.3 se presentan las principales características de los modelos de esta familia. 48 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA Modelo PIC16C84 PIC16F84 PIC16F83 PIC16CR84 PIC16CR83 Memoria Programa Memoria Datos ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Interrupciones E/S EEPROM Registros Específicos Temporizadores RAM 1KX14 EEPROM 36 64 11 TMR0+WDT 4 13 1KX14 FLASH 68 64 11 TMR0+WDT 4 13 512X14 FLASH 36 64 11 TMR0+WDT 4 13 1KX14 ROM 68 64 11 TMR0+WDT 4 13 512X14 ROM 36 64 11 TMR0+WDT 4 13 Rango Voltaje 2-6 volts 2-6 volts 2-6 volts 2-6 volts 2-6 volts Pines 18 18 18 18 18 Tabla 4.4 Características relevantes de los modelos PIC16X8X de la gama media. Encuadrado en la gama media también se halla la versión PIC14C000, que soporta el diseño de controladores inteligentes para cargadores de baterías, pilas pequeñas, fuentes de alimentación ininterrumpibles y cualquier sistema de adquisición y procesamiento de señales que requiera gestión de la energía de alimentación. Los PIC 14C000 admiten cualquier tecnología de las baterías como Li-Ion, NiMH, NiCd, Ph y Zinc. El temporizador TMR1 que hay en esta gama tiene un circuito oscilador que puede trabajar asíncronamente y que puede incrementarse aunque el microcontrolador se halle en el modo de reposo (“sleep”), posibilitando la implementación de un reloj en tiempo real. Las líneas de E/S presentan una carga “pull-up” activada por software. 4.2.4 Gama alta: PIC17CXXX con instrucciones de 16 bits. Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos disponen de un sistema de gestión de interrupciones vectorizadas muy potente. También incluyen variados controladores de periféricos, puertas de comunicación serie y paralelo con elementos externos, un multiplicador hardware de gran velocidad y mayores capacidades de memoria, que alcanza los 8 k palabras en la memoria de instrucciones y 454 bytes en la memoria de datos. 49 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Quizás la característica más destacable de los componentes de esta gama es su arquitectura abierta, que consiste en la posibilidad de ampliación del microcontrolador con elementos externos. Para este fin, las pines sacan al exterior las líneas de los buses de datos, direcciones y control, a las que se conectan memorias o controladores de periféricos. Esta facultad obliga a estos componentes a tener un elevado número de pines comprendido entre 40 y 44. Esta filosofía de construcción del sistema es la que se empleaba en los microprocesadores y no suele ser una práctica habitual cuando se emplean microcontroladores. En la tabla 4.4 se muestran las características más relevantes de los modelos de esta gama, que sólo se utilizan en aplicaciones muy especiales con grandes requerimientos. 50 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 5. MOTORES 5.1 Concepto Con frecuencia se usa un motor como el dispositivo corrector final de un sistema de control industrial. En una de tales aplicaciones el motor maneja un servomecanismo y logra el posicionamiento de un objeto en el lugar deseado. Cuando una fuente eléctrica es conectado a un motor, el motor gira su eje, entonces, el motor convierte la energía eléctrica en energía mecánica. Otras aplicaciones pueden ser: La apertura y cierre de válvulas, la variación de la velocidad de una bomba para ajustar la razón de flujo de un líquido y la variación de la velocidad de un ventilador para ajustar el flujo de aire, Taxímetros, Disk-drive, Impresoras, Plotters., Movimiento de Brazo y Robots, Patrón mecánico de velocidad angular, Registradores XY, Relojes Eléctricos, Casetes Digitales, Control Remoto, Máquinas de escribir electrónicas, Manipuladores, Posicionamiento de piezas en general, Bombas impelentes en aplicaciones de electromedicina . Los motores pueden dividirse en dos clases generales de cd y de ca. 5.2 Motores de CA 5.2.1 Concepto Uno de los atractivos principales de los motores de ca es que no necesitan un proceso de conmutación para poder operar y de no requerir de un suministro de potencia rectificado de cd. Su desventaja principal es que su velocidad no es fácilmente ajustable, ya que esta relacionada fuertemente a la frecuencia de la línea de ca. 51 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 5.2.2 Tipos de motores de C.A. Figura 5.1 Subclases de los motores de CA De las subclases de c.a, los motores de inducción son los más importantes para el control industrial. Los motores síncronos ciertamente se utilizan en la industria, pero generalmente son grandes máquinas trifásicas usadas para propósito de operación en estado estable no de control, por ejemplo, para operar compresores de aire. Los de tipo síncrono, pequeños, de una fase, es decir los motores de reluctancia y los motores de histéresis, son usados principalmente en equipos de audio y en relojes cronómetros. Los motores universales solo se ven ocasionalmente en los sistemas de control; su uso principal ocurre en las herramientas manuales de velocidad variable. 52 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 5.3 Motores C.D. 5.3.1 Concepto. Un motor de cd recibe potencia eléctrica de cd y produce una rotación mecánica de su eje. La misma máquina es perfectamente capaz de invertir ese proceso de conversión de energía, recibiendo una rotación mecánica de una maquina externa y produciendo una potencia eléctrica de CD. El atractivo de los motores de CD esta en que su velocidad es fácilmente ajustable. La mayoría de los motores de CD aceleran o frenan a medida que se varía el voltaje aplicado. Los motores de paso a paso son diferentes en este sentido (los motores de paso están dentro de los motores de CD) cambian de velocidad a medida que se varía la frecuencia de pulso de paso, mediante técnicas digitales. Sin embargo la característica común entre todos los motores de CD es que el control de velocidad es fácil. La desventaja de los motores de CD es que requieren de un proceso de conmutación. 5.3.2 Tipos de motores de CD. En los motores de rotor devanado, convencional de imán permanente y sin núcleo la conmutación se lleva acabo en forma mecánica y en los motores de CD paso a paso y sin escobillas la conmutación se efectúa electrónicamente. En la figura 5.2 se muestran los tipos de motores de CD. 53 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 5.2 Subclases de los motores de CD Enfocaremos nuestra atención en la subclase Imán permanente (IP), concentrándonos en el tipo IP convencional. 5.3.2 Motores convencionales de imán permanente. Un motor de cd convencional de imán permanente su ensamble es con un núcleo laminado de hierro, devanados de armadura colocados en ranuras del rotor, un conmutador, un montaje de escobillas y el campo magnético es estable por imanes permanentes. En su forma más sencilla, el motor contiene imanes permanentes que están magnetizados radialmente, como se muestra en la figura 5.3. El flujo magnético emerge de la cara del polvo norte a la izquierda de la figura 5.3-a. El flujo pasa a través del entre hierro (air gap), a través del núcleo convencional del rotor, y vuelve a entrar por la cara del polo sur a la derecha. La superficie externa del 54 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. imán del lado derecho es norte; la superficie externa del imán del lado izquierdo es sur. La trayectoria del flujo magnético se completa a través del armazón de acero de motor, igual que lo haría en una máquina de campo devanado. Figura 5.3(a).- Dos polos Figura 5.3 (b).- Cuatro polos Figura 5.3.- Cortes Transversales de dos motores convencionales de imán permanente con polos magnetizados radialmente. También hay disponibles diseño de cuatro y seis polos. Cuando se aumenta el número de polos de campo, l devanado de la armadura debe rediseñarse para que las bobinas individuales de la armadura tengan el mismo espaciamiento mecánico que los polos adyacentes. Por ejemplo la estructura de campo de cuatro polos mostrada en la figura 5.3-b, con 90 mecánicos entre los polos adyacentes, requerirá que las bobinas de armadura tengan sus lados colocados en ranuras del rotor que también esté a espaciamiento de 90 mecánicos (aproximadamente). Por lo general también hay cuatro escobillas de conmutación. Estos hechos en relación con la armadura de un motor multipolos son ciertos tanto las máquinas de cd de campo devanado como para las máquinas de imán permanente. 55 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 5.3.3 Motores de paso Los motores paso a paso son fundamentalmente diferente a los demás motores de cd: no tienen escobillas ni conmutador mecánico. En su lugar, la acción de conmutación necesaria para la función del motor de paso a paso es lograda por transistores externos, y el rotor es una colección de imanes permanentes salientes. Figura 5.4 Motor de paso 5.3.3.1 Estructura Los cuatro devanados de los polos del estator y sus transistores controladores se etiquetan A, B, C y D. Cuando el circuito de control enciende un transistor en particular, hay un flujo de corriente de alimentación de cd + Vs, a través de ese devanado en particular, a través del transistor a tierra. Figura 5.5 Devanado de motor de pasos. Cuando un solo devanado es energizado, está enrollado de tal manera que su polo se vuelve norte magnético. Su flujo emerge de la cara del polo, pasa a través del rotor, entonces completa su trayectoria entrando en la cara del polo directamente opuesto a él. 56 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 5.6 Con cuatro polos de estator y seis polos de rotor, este motor paso a paso tiene un ángulo de paso natural de 30.El rotor se muestra en la posición 0 (flecha de posición imaginaria apuntando hacia arriba a la posición de las 12 en punto). Por ejemplo, si el transistor A energiza el polo A de la figura 5.5, el flujo creado por ese polo completa su trayectoria a través del polo C y a través del armazón del motor. Por tanto, C automáticamente se vuelve un polo sur, aun cuando su devanado no lleva corriente. En la figura 5.5 los polos permanentes del rotor están etiquetados del 1 al 6, siendo sur los polos 1, 3 y 5. Los polos alternos, números 2,4 y 6, son norte. 57 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 5.3.3.2 Principio de operación. El principio de operación de un motor de paso a paso de imán permanente es el siguiente: El polo del estator energizado que se vuelve norte magnético activo atrae el polo sur más cercano del rotor para alinearlo con él. Esta acción de producción de par es ayudada por el polo sur pasivo del estator (del lado opuesto del estator), atrayendo el rotor norte opuesto para alinearlo con él. Por ejemplo, en la figura 5, si el transistor A es encendido, el polo A del estator que esta en la posición de las 12 en punto es el norte activo. En el instante mostrado, ya ha atraído el polo sur 1 del rotor para alinearlo con él. También, el polo C del estator que apunta a las 6 es el sur pasivo. Ha atraído el polo norte 4 del rotor para alinearlo con él. Definamos la posición del rotor mostrada en la figura 5 como la posición de 0. Hemos mostrado una flecha imaginaria de posición en el eje que apunta hacia arriba, a las 12 en punto. A medida que gira el eje del rotor, podemos describir su nueva posición dando la dirección en la que apunta la flecha imaginaria. El circuito de control apaga ahora el transistor A y enciende simultáneamente en transistor B. El polo B del estator se convierte en el norte activo; el polo D del estator se vuelve el sur pasivo. Los polos A y C se vuelven neutrales, se desmagnetizan. El polo B del estator atrae el polo sur 5 del rotor. El polo D del estator atrae el polo norte 2 del rotor. El rotor se mueve en dirección de las manecillas del reloj 30, por lo que los polos del rotor se alinean con los polos del estator. Decimos que el motor toma un paso de 30. La flecha imaginaria de posición ahora apunta hacia la 1 en punto. Una vez que se a dado el paso de 30, el controlador puede apagar el transistor B si la carga mecánica no causa el movimiento del rotor más allá de la posición destino, que es la 1 en punto. Si la carga tiende a causar este problema, el transistor B debe permanecer encendido para permitir que el motor de paso a paso mantenga su posición. El primer paso de 30 se registra en la tabla 1, pasando del renglón superior al segundo renglón. 58 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. En seguida, el circuito de control apaga el transistor B y simultáneamente enciende el transistor C. Esto hace que el polo C del estator se vuelva el norte y el polo A se vuelva el sur pasivo. El polo sur 3 esta apenas a 30 de distancia en este momento, por lo que se mueve para alinearse con él. El motor ha tomado otro paso de 30 en direcciones de las manecillas del reloj, como se indica en la tabla 1. La flecha imaginaria de posición apunta a las 2 en punto, a 60 de su posición inicial. Y así en adelante, con el controlador disparando los transistores en la secuencia repetida ABCD, mostrada en la tabla 1. Deberá seguir los pasos del motor durante una rotación de 360, hasta la parte inferior de la tabla 1. Observe que el polo del estator se ha vuelto norte y cual polo sur del rotor esta a 30 de él. Posición del eje en grados Transistor encendido 0° 30° 60° 90° A B C D 120° 150° 180° 210° A B C D 240° 270° 300° 330° A B C D 360° A Tabla 5.1: Secuencia de conmutación de los transistores para tomar pasos completos en la dirección de las manecillas del reloj. La inversión de un motor de paso a paso para que su giro sea en dirección contraria a las manecillas del reloj es sencilla, conceptualmente. Solo disponga que el circuito de control encienda los transistores de conmutación en la secuencia inversa, DCBA. Esto se muestra en la tabla 2. 59 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. POSICIÓN TRANSISTOR DEL EJE EN ENCENDIDO (GRADOS) 0 A -30 D -60 C -90 B -120 A -150 D -180 C -210 B Tabla 5.2 Secuencia de conmutación de transistores para lograr que el motor de paso a paso tome pasos completos en la dirección contraria a las manecillas del reloj. Comenzando por la posición de giro de 0, la posición de restablecimiento de encendido ( RE ) [power-on reset (POR)] que ha encendido A, el controlador conmuta primero al transistor D. En la figura 5, esto hace que el polo sur 3 del rotor se mueva 30 en dirección contraria a las manecillas del reloj para alinearse con el polo norte D del estator y, por supuesto, alineando el polo norte 6 del rotor con el polo sur B pasivo del estator. Siga la rotación contraria a las manecillas del reloj del motor de paso a paso haciendo referencia la tabla 2 y a la figura 5. Figura 5: Con cuatro polos de estator y seis polos de rotor, este motor de paso a paso tiene un ángulo de paso natural de 30. El rotor se muestra en la posición de 0 (flecha de posición imaginaria apuntando hacia arriba, a la posición de las 12 en punto). 60 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 6. PUENTE H. 6.1 Concepto. La interfaz de potencia para motores de corriente continúa o CD, PUENTE H, es un sistema que permite controlar motores en rangos entre 12 y 30 voltios y con consumos de hasta 2.5 amperios por medio de señales de baja potencia provenientes de un circuito digital. En general cualquier tipo de sistema digital puede adquirir fácilmente la capacidad para activar motores de CD haciéndolos girar en uno o en otro sentido usando la Figura 6.1 Muestra de un circuito puente h con transistores. interfaz Puente H como puente entre el sistema digital y el motor de CD. Las principales características de la interfaz Puente H se enumeran a continuación: Activación de motores en un rango entre 9 y 30 voltios DC. Capacidad para entregar hasta 2.5 Amperios a la carga. Capacidad para activar el giro del motor en cualquiera de los dos sentidos. Fácil y rápida conexión gracias a sus borneras de tornillo. Reducido tamaño Excelente calidad. 6.2 Características Las principales características de la interfaz Puente H se enumeran a continuación: Activación de motores en un rango entre 9 y 30 voltios DC. Capacidad para entregar hasta 2.5 Amperios a la carga. Capacidad para activar el giro del motor en cualquiera de los dos sentidos. Fácil y rápida conexión gracias a sus borneras de tornillo. Reducido tamaño Excelente calidad 61 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 6.3 Funcionamiento El término “puente H” se deriva de la representación gráfica típica de tal circuito. Un Puente H se construye con cuatro interruptores (de estado sólido o mecánico). Cuando los interruptores S1 y S4 (según la primera figura) están cerrados (y S2 y S3 están abiertos) un voltaje positivo será aplicado a través del motor. Abriendo S1 y S4 y cerrando S2 y S3 este voltaje es invertido, permitiendo la operación del motor en sentido contrario. Los interruptores S1 y S2 nunca se deben de cerrar al mismo tiempo, pues causaría un cortocircuito en la fuente del voltaje de entrada. Igual se aplica a los Figura. 6.2 Diagrama funcional Puente H. de un interruptores S3 y S4. Esta condición se conoce como “shoot-through”. Un puente H de estado sólido se construye típicamente usando los dispositivos reversos de la polaridad (es decir, BJTs pnp o MOSFETs de canal P conectados al bus positivo y BJTs npn o MOSFETs del canal N conectados con el bus negativo). Figura. 6.3 Diagrama eléctrico con transistores de un Puente H. Los diseños más eficientes MOSFET, utilizan los MOSFET´s de canal N en el lado de voltaje alto y de bajo voltaje debido a que tienen una resistencia de encendido que es típicamente un tercio de la resistencia de encendido de los MOSFET´s de canal P. Esto requiere un diseño más complejo puesto que requiere de circuitos de “bomba de carga” para manejarlas puertas de 62 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. los MOSFETs que van conectados al lado de alto voltaje. Sin embargo, se puede encontrar circuitos integrados de MOSFETS como el semiconductor HIP4081A de Harris, lo cual hace esto fácil. 6.4 Presentaciones de los Puentes H. Debido a que la implementación de un puente H con transistores ocupa mucho espacio físico, se pueden encontrar en el mercado dispositivos de baja integración que ocupan menos espacio. (a) L298N puente H 2A. (b) L293D puente H 1A. Figura 6.4 Diferentes encapsulados de circuitos integrados para puentes H 63 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. El funcionamiento del L293 se basa en la siguiente tabla; VIN VOUT VEN H H H L L H H Z L L Z L Tabla 7.1 Voltajes del L293. H = Nivel alto “1” L = Nivel bajo “0” Z = Alta Impedancia Configuración interna del L293; IN- Entradas EN- Entradas OUT – Salidas Vs- Fuente de voltaje Vss – Fuente de voltaje lógico 6.4 Configuraciones del L293. Con un L293B podemos tener control bidireccional con 2 motores o control unidireccional con 4 motores, a continuación vamos a ver como se han de conectar los motores. Control Unidireccional: En la siguiente figura vemos las dos formas de conectar un motor para control unidireccional, M1 se activa al poner la entrada del driver conectado a este, a nivel bajo "0", mientras que M2 se activa al poner la entrada del driver a nivel alto "1" y se para al ponerla a nivel bajo "0". La entrada enable es como un interruptor general y deberá ponerse a nivel alto "1" para poder operar con los drivers que controla, o a nivel bajo "0" si se quiere desconectar el control de estos. "Vs" será la tensión de alimentación necesaria para los motores. Los diodos modelo 1N4007 son para proteger el circuito de los picos de arranque y parada de los motores debido a la corriente inversa inducida por estos 64 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA Vinh A ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. M1 B M2 H H Rápida parada del motor H Girar H L Gira L Rápida parada del motor L X Libre parada del motor en funcionamiento X Libre parada del motor en funcionamiento L - Low H-High X -Condiciones “no importa” Figura 6.5 Diagrama de una aplicación del L293 Control Bidireccional: En el siguiente circuito vemos el modo de conectar un motor para permitir controlarlo tanto hacia delante como hacia atrás. Para tener el control de dos direcciones o bidireccional se usan dos de drivers del l293b conectando sus salidas a los polos del motor, entonces podremos cambiar la polaridad de alimentación del motor con tan solo cambiar de estado las entradas de los drivers. Por ejemplo, para que el motor gire hacia la derecha pondremos la entrada "A" a nivel alto "1" y "B" a nivel bajo "0" y para hacer girar el motor a la izquierda tendremos que invertir las 65 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. señales de entrada de tal manera que la entrada "A" a nivel bajo "0" y "B" a nivel alto "1". Los diodos son como en el caso anterior para proteger el integrado de corrientes inversas. Entradas Vinh = H Vinh = L H = High Función C = H; D= L C = L; D = H C=D C = X; D= X Vuelta derecha Vuelta izquierda Paro rápido de motor Corrida libre de parada de motor L = Low X = Condiciones “no importa” Figura 6.6 Segundo diagrama de aplicación del L293 66 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 7. PLANIFICACIÓN Y DISEÑO DEL ROBOT MÓVIL AUTONOMO. 7.1 Descripción de niveles de un robot autónomo Para cumplir los objetivos planteados en este proyecto nuestro proyecto sólo incluirá los siguientes niveles. Figura 7.1 Niveles propuestos para proyecto 7.2 Nivel Físico. 7.2.1 Motores de corriente continúa. Para nuestro proyecto decidimos utilizar motores de corriente continua de pequeña potencia, ya que estos motores son idóneos cuando no disponemos de una fuente de voltaje potente, o su utilización se vuelve inmanejable para los propósitos prácticos del proyecto. 67 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Otra característica que buscamos en los motores es la de que estos tuvieran una micro-caja de engranes reductora, la cual proporcionaría a nuestro robot una velocidad manejable, pues la velocidad normal de un motor de corriente directa es muy rápida, además proporciona mayor tracción ó par de arranque en el momento del arranque. Figura 7.2 Motores C.D. con caja reductora. Como ya explicamos anteriormente los motores recibirán voltaje y corriente del puente H. 7.2.2 Estructura del robot móvil. Para la estructura de nuestro robot móvil decidimos que esta debía ser muy ligera, con el espacio necesario para contener los módulos operativos de control, decodificación y potencia, así como las llantas y la batería para alimentar a todo el robot. El material utilizado fue madera para las plataformas, unidas por tornillos de cuerda infinita, los cuales proporcionaban un soporte muy sólido. 68 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 7.3 Estructura del robot móvil de tipo rover 7.2.3 Movilidad de la estructura: Ruedas o llantas. Un robot móvil necesita un sistema de desplazamiento para cumplir sus objetivos de exploración y avance. En nuestro diseño utilizamos llantas de goma para la tracción total del sistema situadas en la parte posterior y una rueda sólida de acción libre en la parte delantera como se observa en la figura 7.3. A través de los movimientos “hacia delante” y “hacia atrás” o “giro en el sentido de las manecillas del reloj” y “giro en sentido contrario a las manecillas del reloj”, sobre las ruedas de tracción en la parte posterior del robot móvil se puedo controlar la dirección de avance. 69 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA Figura 7.4 (a) ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 7.4 (c) Movimiento “Hacia delante” Movimiento “Giro a la izquierda” Figura 7.4 (b) Figura 7.4 (d) Movimiento “Hacia atrás” Movimiento “Giro a la derecha” En la figura 7.4 (a) se muestra como se realiza un movimiento hacia delante. Se hacen girar los dos motores en la misma dirección hacia delante, por lo cual se produce un movimiento rectilíneo. En la figura 7.4 (b) se muestra como se realiza un movimiento hacia atrás. Se hacen girar los dos motores en la misma dirección hacia atrás generando el movimiento rectilíneo deseado. Para el movimiento lateral de girar hacia la derecha figura 7.4(c), se hace girar el motor izquierdo hacia delante y el motor de la derecha hacia atrás. Para el movimiento lateral de girar hacia la izquierda figura 7.4(d), se hace girar el motor izquierdo hacia atrás y el motor de la derecha hacia delante. 70 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 7.2.4 Etapa de potencia El objetivo de esta etapa es la de suministrar el voltaje y corriente necesarios para mover nuestros motores anteriormente descritos. Elegimos el dispositivo L293, del cual existen diferentes versiones de acuerdo al control que queremos tener en el motor. Figura 7.5 –Distribución de pines del L293. Pines Descripción 1,9 Estos pines sirven para habilitar el movimiento del motor, si estos pines están en 0, el motor correspondiente no funcionará, en cambio, si está en uno, el motor funcionará. Estos pines también sirven para el PWM, (pulse width modulator), que consiste en controlar el tiempo en que el pin esté en 1 o en 0, eso quiere decir que si mandas 0 y 1 en intervalos de tiempo iguales, el motor funcionará a la mitad de velocidad, mientras mayor sea el intervalo de uno, mayor es la velocidad y viceversa. 4, 5, 12, 13 Tierra de controlador y del motor, son 4 porque también son disipadores de calor. 16 Alimentación del controlador, mínimo 4,5v, máximo 36v. 8 Alimentación del motor, máximo 36v. Pines de entrada, sirven para controlar el sentido de giro de los motores, la entrada 1 y la 2 sirven para el motor 1, y la 3 y la 4 con el motor 2. Si se manda un 0 a la entrada 1 y 2, el motor estará apagado, en cambio, si se manda un 1 a la entrada 1 y un 0 a la entrada 2, girada en un sentido, si 2, 7, 10, 15 se hace al revez, un 0 al 1 y un 1 al 2, girará en el otro sentido. Si se ponen los dos pines en 1, habrá un cortocircuito, lo que hará que se gaste la pila o incluso que se queme algo. Lo anteriormente dicho vale también para el motor 2, con sus entradas 3 y 4. 3, 6, 11, 14 Pines de salida hacia los motores, el 3 y 6 corresponden al motor 1, y el 11 y 14 al motor 2. 71 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA Habilitador Entrada 1 0 0/1 1 0 Entrada 2 0/1 0 1 1 1 1 1 0 1 0 1 ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Motor Apagado Apagado Apagado (Cortocircuitando) Gira en un sentido Gira en el otro sentido Ahora viene lo que puede ocasionar diferencias respecto al modelo del L293, indistintamente el modelo que sea, debe llevar unos diodos de protección, que protejan al controlador de los picos de voltaje que pueda producir el motor. L293: Se deben agregar los diodos protectores L293D: Diodos incorporados, las salidas se conectan directo al motor. L293NE: Se deben agregar los diodos protectores. Existen más, pero esos son los más comunes, para saber si alguno necesita o no diodos, se puede ver en la hoja de especificaciones. Nuestra implementación con el L293 fue la siguiente: Figura 7.6 – Diagrama funcional con L293 72 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA Figura 7.7 – Diagrama eléctrico con el L293. 73 ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 7.8 PCB del L293 Al momento de conectar este dispositivo a nuestros motores, funcionaban perfectamente, por unos dos minutos, pero si el funcionamiento continuaba, el circuito integrado L293 se calentaba demasiado. Por tanto buscamos otra solución basada en puente H, pero que no elevara su temperatura tan fácilmente al poco tiempo de funcionar. Nuestra segunda opción es un dispositivo semiconductor del mismo tipo que el anterior con la diferencia que este puede resistir una mayor temperatura de trabajo. Este dispositivo es el L298, tiene 8 transistores de potencia situados en su interior. Este circuito integrado, puede entregar una corriente máxima de 2 amperes en sus salidas. La configuración que vemos consta de las siguientes etapas: 74 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 7.9 Interfaz de potencia con puente H L298. Etapa de entrada: formada por cuatro optoacopladores, estos dispositivos aíslan el circuito de control, en nuestro caso el circuito con el PIC, de la interfaz de potencia, este aislamiento es necesario debido al ruido introducido por la puesta en marcha de los motores. Etapa Puente H: Consiste en un circuito integrado como el de la figura 6.4 (b), el cual es capaz de proporcionar hasta 4 ampers de potencia. Etapa de protección de salida: esta etapa esta diseñada con 8 diodos de tipo schottky, dos por cada salida, que cumplen con la función de proteger al circuito integrado contra corrientes parásitas que pudiesen generarse debido al accionamiento de los motores. 75 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 7.3 Nivel de Reacción y Control. Como habíamos mencionado anteriormente este nivel se refiere a los sistemas electrónicos, sensoriales, así como el programa ó software para controlar la parte electrónica. En este nivel el primer punto es el diseño de un algoritmo que definirá el funcionamiento de nuestro robot móvil. Los movimientos básicos que necesitamos controlar son: a) Marcha b) Paro c) Giro a la derecha d) Giro a la izquierda Para poner en marcha a nuestro robot sólo necesitamos de un bit “1” ó “0”, lo mismo sucede con el paro del robot. En cuanto a los giros y su sentido, debemos tomar más bits para representarlos. Figura 7.10 Diagrama de flujo que muestra el comportamiento que queremos que siga nuestro robot móvil. Para este proyecto después de haber analizado las soluciones existentes en el mercado, optamos por utilizar un microcontrolador PIC16F874, ó también el PIC18F4550, como cerebro de nuestro robot. 76 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 7.11 Circuito de control con el PIC18F4550 Usaremos un puerto de los cuatro posibles que tiene el PIC para introducir las señales de control provenientes de la etapa anterior. 77 FIFFFIGURA PROYECTO DE INGENIERÍA ELECTRÓNICA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. Figura 7.12 Diagrama de flujo con los movimientos y las señales necesarias en el puerto A del PIC18F4550. A continuación mostramos el código ensamblador correspondiente a nuestro algoritmo de control. ORG 0 Inicio bsf STATUS,RP0 bsf EntradaAvance bsf SenialSentido clrf PORTB bcf STATUS,RP0 ;Configura las líneas de entrada. ;Las líneas del Puerto B configuradas como salida. RutinaPrincipal clrw ;Con esta combinación se detiene el motor. btfsc EntradaAvance ;Comprueba el estado de la señal de marcha. goto Salida movlw b'00010010' btfsc SenialSentido ; Comprueba el sentido de giro deseado. movlw b'00010001' ; Gira en el otro sentido. ; Gira en un sentido. ActivaSalida movwf PORTB goto RutinaPrincipal END 78 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. 8. CONCLUSIONES. Alcances: En este proyecto se enfocaron los conocimientos de electrónica vistos a lo largo de la licenciatura, tanto en electrónica analógica como digital y de control. En el desarrollo de este proyecto se analizaron y desarrollaron los sistemas de potencia y control para el funcionamiento de un sistema autónomo controlado por radio frecuencia. Los medios físicos que se utilizaron para la elaboración de la estructura del sistema autónomo fueron llantas de uso didáctico, diseños en madera y tornillería. Nuestro diseño es pionero dentro de la UAM-Iztapalapa en cuanto al diseño de robots tipo rover completos dentro de un rango de movilidad básica. Limitaciones: Los inconvenientes encontrados para el diseño del proyecto fueron los siguientes; encontrar una batería que proporcionara a los motores la suficiente cantidad de amperaje por hora dentro de un rango de voltaje aceptable para los circuitos de control y potencia electrónicos , otra dificultad que enfrentamos fue la de encontrar un diseño físico para la colocación de motores y tarjetas electrónicas. Mejoras: Se puede mejorar el algoritmo de funcionamiento de nuestro robot, para esto necesitaríamos un microcontrolador ó microprocesador más poderoso, es decir con mayor cantidad de memoria y de puertos para ampliar la funcionalidad de nuestro robot, en cuanto al manejo de sensores como pueden ser ultrasónicos, de movimiento, infrarrojos, de presión y temperatura, etc.También se puede mejorar la movilidad, colocando más llantas y de mejor calidad de tal manera que nuestro robot pueda operarse en terrenos de difícil acceso; como pueden ser desiertos, zonas montañosas o boscosas. 79 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA 9. BIBLIOGRAFIA. [1] Microcontrolador PIC16F84 Desarrollo de proyectos Enrique Palacios Fernando Remiro Lucas J. López [2] Advance Electronic Comunications Systems, Tomasi Wayne Editorial Prentice-Hall. [3] Tratamiento Digital de Imágenes Rafael C. González, Richard E. Woods Ed. Addison Wesley/Díaz de Sant [4] Turbo C/C++ Manual de Referencia Herbert Schildt Ed. Mc. Graw Hill [5] Practical computer vision using C J.R. Parker. Wiley [6] C++ Builder 3 Francisco Charte Ojeda Anaya Multimedia [7] Aprendiendo Borland C++ builder 3 en 21 dias Kent Reisdorph Prentice Hall [8] Electrónica: Teoría de Circuitos. Robert L. Boylestad, Louis Nashelsky. Prentice Hall. [9] Manual ECG. [10] www.motorola.com [11] www.national.com [12] http://robotec11.tripod.com/ [13] http://www.astroseti.org 80 ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F. [14] www.robodacta.com En este sitio venden circuitos, sensores, motores, libros, partes mecánicas para hacer robots, y aún robots completos. Es muy recomendable. Aún no he probado que tán diligentes son con el envío de compras. [15] www.ag-electronica.com Tienda virtual de dispositivos y equipos electrónicos. (Venden el sensor optoreflejante CNY70) [16] www.superrobotica.com Tienda virtual que vende lo necesario para construir robots. Electrónica, motores, sensores, ideas, tutoriales y mucho mas. (Al parecer esta tienda no está ubicada en América). [17] www.creaturoides.com Sitio con varias ideas muy creativas para la fabricación de robots con forma de creaturas. (Matrimonio de Monterrey). [18] www.cursoderobotica.com.ar Sitio que incluye ideas, tutoriales y equipos de robótica. [19] http://www.eis.uva.es/amuva/ Asosciación de Microbótica de la Universidad de Valladolid, España. 81 PROYECTO DE INGENIERÍA ELECTRÓNICA FIFFFIGURA Anexos 82 ROBOT AUTÓNOMO CONTROLADO POR UN MICROCONTROLADOR Y R. F.