Documente Academic
Documente Profesional
Documente Cultură
PercyD Escobar
http://www.fing.edu.uy/~pgconrob pgconrob@fing.edu.uy
Pgina 2 de 77
Resumen
El documento muestra cmo construir un robot a bajo costo que sea capaz de moverse en forma autnoma, recibiendo rdenes desde un PC, de modo que todo el procesamiento referente al comportamiento se realice remoto. El proyecto incluye estado del arte, la confeccin de un modelo, el diseo y construccin de un robot prototipo que pueda evolucionar en un jugador de ftbol de robots segn las reglamentaciones de la categora MiroSot de FIRA. Los principios seguidos por el diseo son: la modularidad, la extensibilidad y la implementacin a travs de una electrnica simple. El robot se compone de un mdulo de comunicaciones que recibe mensajes provenientes de un sistema de control y los reenva por un bus I2C al mdulo destino. Los mdulos son comandados por microcontroladores de la empresa Microchip. El sistema de control est compuesto por un PC y un circuito emisorreceptor de radio frecuencia, stos se comunican va RS-232. Debido al diseo extensible y modular alcanzado, es posible incorporar nuevos mdulos (ejemplo: brazo robot) con poco esfuerzo ms que la propia construccin del mismo y los agregados al software del PC.
Pgina 3 de 77
Tabla de Contenido
1 INTRODUCCIN............................................................................................................................... 10 1.1 TRABAJOS RELACIONADOS.............................................................................................................. 10 1.2 GUA DE CAPTULOS........................................................................................................................ 11 2 PLANTEO DEL PROYECTO............................................................................................................ 12 2.1 2.2 2.3 2.4 OBJETIVOS...................................................................................................................................... 12 ALCANCE........................................................................................................................................ 12 UN PROYECTO DE INFORMTICA...................................................................................................... 13 RESUMEN DEL PLANTEO DEL PROBLEMA......................................................................................... 13
3 ESTADO DEL ARTE......................................................................................................................... 14 3.1 INVESTIGACIN................................................................................................................................ 14 3.2 MOTORES........................................................................................................................................ 14 3.3 SENSORES...................................................................................................................................... 14 3.4 INVESTIGACIN SOBRE MICROCONTROLADORES...............................................................................15 3.5 FORMAS DE COMUNICACIN............................................................................................................ 15 3.6 BATERAS....................................................................................................................................... 16 3.7 REUTILIZACIN DE COMPONENTES E INVESTIGACIN DE MERCADO...................................................16 3.7.1 REUTILIZACIN DE COMPONENTES 0 COSTO...............................................................................17 3.7.2 INVESTIGACIN DEL MERCADO LOCAL Y EXTERIOR.........................................................................17 3.8 RESULTADOS DE LA INVESTIGACIN.................................................................................................18 3.8.1 MICROCONTROLADORES............................................................................................................... 18 3.8.2 COMUNICACIN............................................................................................................................ 18 3.8.3 MOTORES Y SENSORES................................................................................................................ 19 4 ANLISIS Y DISEO........................................................................................................................ 20 4.1 MODELO DE PROCESO..................................................................................................................... 20 4.2 PLAN DE ARQUITECTURA Y DISEO.................................................................................................. 20 4.2.1 CMO SE DISE EL SISTEMA...................................................................................................... 20 4.2.2 DISEO Y MODELADO................................................................................................................... 21 4.2.3 COMPOSICIN Y JUSTIFICACIONES DE CARA A LA IMPLEMENTACIN................................................22 4.3 ARQUITECTURA DEL SISTEMA.......................................................................................................... 24 4.4 MDULOS....................................................................................................................................... 24 4.4.1 MDULOS QUE SE PLANEARON INICIALMENTE................................................................................24 4.4.2 DESCRIPCIN DE LOS MDULOS PARA LA IMPLEMENTACIN...........................................................24 5 COMUNICACIONES......................................................................................................................... 29 5.1 FORMATO DEL MENSAJE.................................................................................................................. 29 5.2 EL CAMINO DE LOS MENSAJES........................................................................................................ 30 5.3 FORMAS DE COMUNICACIN UTILIZADAS.......................................................................................... 31 5.3.1 DESCRIPCIN DE LAS FORMAS DE COMUNICACIN.........................................................................31 6 IMPLEMENTACIN DEL PROTOTIPO............................................................................................ 33 6.1 CONSUMO DE CORRIENTE................................................................................................................ 33 6.1.1 CONSUMO DE LOS MOTORES DE PASO .........................................................................................33 6.1.2 CONSUMO DE LOS MICROCONTROLADORES...................................................................................34 6.1.3 FUENTE DE ALIMENTACIN............................................................................................................ 34 6.2 CONSTRUCCIN............................................................................................................................... 35 6.2.1 PROGRAMADOR DE MICROCONTROLADORES JDM..........................................................................35 6.2.2 MDULO ER................................................................................................................................. 35 6.2.3 ETAPA DE POTENCIA..................................................................................................................... 36 6.2.4 MDULO COMM.......................................................................................................................... 37 6.2.5 MDULO MOTOR........................................................................................................................ 38
Pgina 4 de 77
6.2.6 MDULO SENSOR...................................................................................................................... 39 6.2.7 ESTRUCTURA Y MECNICA LIGERA................................................................................................ 40 6.3 PROGRAMACIN.............................................................................................................................. 42 6.3.1 LA PROGRAMACIN, SU EVOLUCIN Y LAS ALTERNATIVAS..............................................................42 6.3.2 INTERFACE CON EL EXTERIOR....................................................................................................... 43 7 COSTOS........................................................................................................................................... 45 7.1 COSTOS DE MATERIALES PARA APRENDER......................................................................................45 7.2 COSTO DE UNA UNIDAD................................................................................................................... 45 7.3 COSTO DEL PROYECTO.................................................................................................................... 47 8 PGINA WEB................................................................................................................................... 48 9 CONCLUSIONES.............................................................................................................................. 50 9.1 CONCLUSIONES GENERALES............................................................................................................ 50 9.2 CONCLUSIONES SOBRE LA EXTENSIBILIDAD......................................................................................51 9.3 TRABAJOS FUTUROS....................................................................................................................... 52 10 GLOSARIO..................................................................................................................................... 53 11 BIBLIOGRAFA Y REFERENCIAS................................................................................................. 56 I. PROTOCOLOS DE COMUNICACIN.............................................................................................. 58 I.1 FORMATO DEL MENSAJE................................................................................................................... 58 I.1 FORMATO DEL MENSAJE................................................................................................................... 58 I.2 COMUNICACIN ENTRE EL PC Y EL MDULO ER................................................................................59 I.2 COMUNICACIN ENTRE EL PC Y EL MDULO ER................................................................................59 I.2.1 SINCRONIZACIN........................................................................................................................... 59 I.2.1 SINCRONIZACIN........................................................................................................................... 59 I.2.2 BLOQUEO MUTUO.......................................................................................................................... 60 I.2.2 BLOQUEO MUTUO.......................................................................................................................... 60 I.3 COMUNICACIONES DENTRO DE UNA UNIDAD.......................................................................................60 I.3 COMUNICACIONES DENTRO DE UNA UNIDAD.......................................................................................60 I.3.1 COMPORTAMIENTO DEL COMM...................................................................................................... 60 I.3.1 COMPORTAMIENTO DEL COMM...................................................................................................... 60 I.3.2 FORMATO DEL MENSAJE EN EL BUS I2C.........................................................................................61 I.3.2 FORMATO DEL MENSAJE EN EL BUS I2C.........................................................................................61 I.3.3 EXTENSIBILIDAD A PARTIR DEL I2C.................................................................................................62 I.3.3 EXTENSIBILIDAD A PARTIR DEL I2C.................................................................................................62 II. PROGRAMACIN DE MICROCONTROLADORES........................................................................ 63 II.1 II.1 II.2 II.2 II.3 II.3 BIBLIOTECAS................................................................................................................................... 63 BIBLIOTECAS................................................................................................................................... 63 SEUDOCDIGOS DE LOS MDULOS DEL SISTEMA..............................................................................64 SEUDOCDIGOS DE LOS MDULOS DEL SISTEMA..............................................................................64 SOFTWARE UTILIZADO...................................................................................................................... 69 SOFTWARE UTILIZADO...................................................................................................................... 69
III. CIRCUITOS Y MATERIALES......................................................................................................... 71 III.1 MDULO ER.................................................................................................................................. 71 III.1 MDULO ER.................................................................................................................................. 71 III.1.1 DISEO DEL CIRCUITO DEL MDULO ER.......................................................................................71 III.1.1 DISEO DEL CIRCUITO DEL MDULO ER.......................................................................................71 III.1.2 LISTA DE MATERIALES DEL MDULO ER........................................................................................ 72 III.1.2 LISTA DE MATERIALES DEL MDULO ER........................................................................................ 72 III.2 ETAPA DE POTENCIA...................................................................................................................... 73
Pgina 5 de 77
III.2 ETAPA DE POTENCIA...................................................................................................................... 73 III.2.1 DISEO DEL CIRCUITO DE LA ETAPA DE POTENCIA........................................................................73 III.2.1 DISEO DEL CIRCUITO DE LA ETAPA DE POTENCIA........................................................................73 III.2.2 LISTA DE MATERIALES DE LA ETAPA DE POTENCIA........................................................................73 III.2.2 LISTA DE MATERIALES DE LA ETAPA DE POTENCIA........................................................................73 III.3 MDULO COMM............................................................................................................................ 74 III.3 MDULO COMM............................................................................................................................ 74 III.3.1 DISEO DEL CIRCUITO DEL MDULO COMM.................................................................................74 III.3.1 DISEO DEL CIRCUITO DEL MDULO COMM.................................................................................74 III.3.2 LISTA DE MATERIALES DEL MDULO COMM.................................................................................74 III.3.2 LISTA DE MATERIALES DEL MDULO COMM.................................................................................74 III.4 MDULO MOTOR.......................................................................................................................... 75 III.4 MDULO MOTOR.......................................................................................................................... 75 III.4.1 DISEO DEL CIRCUITO DEL MDULO MOTOR...............................................................................75 III.4.1 DISEO DEL CIRCUITO DEL MDULO MOTOR...............................................................................75 III.4.2 LISTA DE MATERIALES DEL MDULO MOTOR...............................................................................75 III.4.2 LISTA DE MATERIALES DEL MDULO MOTOR...............................................................................75 III.5 MDULO SENSOR........................................................................................................................ 76 III.5 MDULO SENSOR........................................................................................................................ 76 III.5.1 DISEO DEL CIRCUITO DEL MDULO SENSOR.............................................................................76 III.5.1 DISEO DEL CIRCUITO DEL MDULO SENSOR.............................................................................76 III.5.2 LISTA DE MATERIALES DEL MDULO SENSOR.............................................................................76 III.5.2 LISTA DE MATERIALES DEL MDULO SENSOR.............................................................................76 III.6 PROGRAMADOR JDM..................................................................................................................... 77 III.6 PROGRAMADOR JDM..................................................................................................................... 77 III.6.1 CIRCUITO DEL PROGRAMADOR JDM............................................................................................. 77 III.6.1 CIRCUITO DEL PROGRAMADOR JDM............................................................................................. 77 III.6.2 LISTA DE MATERIALES DEL CIRCUITO PROGRAMADOR JDM...........................................................77 III.6.2 LISTA DE MATERIALES DEL CIRCUITO PROGRAMADOR JDM...........................................................77
ndice de Figuras
FIGURA 1 MODELO DEL ROBOT................................................................................................... 21 FIGURA 2 ARQUITECTURA DEL SISTEMA................................................................................... 24 FIGURA 3 DISEO DEL MDULO ER............................................................................................ 25 FIGURA 4 DISEO DEL MDULO COMM...................................................................................... 26 FIGURA 5 DISEO DEL MDULO MOTOR.................................................................................... 27 FIGURA 6 DISEO DEL MDULO SENSOR.................................................................................. 27 FIGURA 7 FORMATO DEL MENSAJE............................................................................................ 29 FIGURA 8 VISTA COLABORATIVA DEL CAMINO DE UN MENSAJE........................................... 30 FIGURA 9 ELIMINADOR DE PILA................................................................................................... 34 FIGURA 10 BATERA DE LA UNIDAD............................................................................................ 34
Pgina 6 de 77
FIGURA 11 IMAGEN DEL CIRCUITO PROGRAMADOR DE MICROCONTROLADORES JDM....35 FIGURA 12 IMAGEN DEL CIRCUITO ER........................................................................................ 36 FIGURA 13 IMAGEN DEL CIRCUITO DE ALIMENTACIN Y EL CARGADOR DE BATERA......37 FIGURA 14 IMAGEN DEL MDULO COMM................................................................................... 38 FIGURA 15 IMAGEN DEL MDULO MOTOR Y MDULO SENSOR............................................. 39 FIGURA 16 IMAGEN DEL MDULO MOTOR Y SENSOR CON LOS MOTORES Y SENSORES CONECTADOS.................................................................................................................................... 40 FIGURA 17 SECUENCIA DE ARMADO DEL PROTOTIPO............................................................. 41 FIGURA 18 FOTO DE PERFIL DEL PROTOTIPO........................................................................... 41 FIGURA 19 FOTO DEL SISTEMA COMPLETO............................................................................... 41 FIGURA 20 MAPA DEL SITIO WEB................................................................................................. 48 FIGURA 21 MENSAJE ENTRE EL MDULO PC Y EL MDULO COMM...................................... 58 FIGURA 22 BYTE DE DIRECCIN Y MODO DE FUNCIONAMIENTO PARA I2C.......................... 61 FIGURA 23 BYTES CON CARGA TIL DEL MENSAJE I2C.......................................................... 61 FIGURA 24 CIRCUITO DEL MDULO ER....................................................................................... 71 FIGURA 25 CIRCUITO DE ALIMENTACIN DE LA UNIDAD Y CARGADOR DE BATERA.........73 FIGURA 26 CIRCUITO DEL MDULO COMM................................................................................ 74 FIGURA 27 CIRCUITO DEL MDULO MOTOR.............................................................................. 75 FIGURA 28 CIRCUITO DEL MDULO SENSOR............................................................................. 76 FIGURA 29 CIRCUITO DEL PROGRAMADOR DE MICROCONTROLADORES JDM...................77
ndice de Tablas
TABLA 1 TABLA DE PARTES REUTILIZABLES POR EQUIPAMIENTO...................................... 17 TABLA 2 TABLA DE CONSUMO DE LOS MOTORES DE PASO SEGN EL TIPO DE SECUENCIA........................................................................................................................................ 34
Pgina 7 de 77
TABLA 3 HERRAMIENTAS Y MATERIALES PARA APRENDIZAJE............................................. 45 TABLA 4 COSTO DE LOS MATERIALES DE UNA UNIDAD Y EL MDULO ER.......................... 46 TABLA 5 PROTOCOLO DE SINCRONIZACIN BASADO EN RTS/CTS....................................... 59 TABLA 6 COMPONENTES DEL MDULO ER................................................................................ 72 TABLA 7 COMPONENTES DEL CIRCUITO DE ALIMENTACIN DE LA UNIDAD Y CARGADOR DE BATERA........................................................................................................................................ 73 TABLA 8 COMPONENTES DEL MDULO COMM......................................................................... 74 TABLA 9 COMPONENTES DEL MDULO MOTOR....................................................................... 75 TABLA 10 COMPONENTES DEL MDULO SENSOR................................................................... 76 TABLA 11 COMPONENTES DEL CIRCUITO PROGRAMADOR DE MICROCONTROLADORES JDM...................................................................................................................................................... 77
Pgina 8 de 77
ndice de Algoritmos
ALGORITMO 1 ENVO Y RECEPCIN DE MENSAJES POR UART. ............................................. 65 ALGORITMO 2 ENVO Y RECEPCIN DE TRES BYTES POR UART........................................... 65 ALGORITMO 3 SEUDO DEL MDULO ER..................................................................................... 66 ALGORITMO 4 SEUDO DEL MDULO COMM............................................................................... 67 ALGORITMO 5 SEUDO PRINCIPAL DEL MDULO MOTOR......................................................... 68 ALGORITMO 6 RUTINA DE CONTROL DE VELOCIDAD............................................................... 68 ALGORITMO 7 RUTINA DE CONTROL DE ACELERACIN.......................................................... 68 ALGORITMO 8 SEUDO DEL MDULO SENSOR........................................................................... 69 ALGORITMO 9 SEUDO DEL ALGORITMO DE CLCULO DEL CRC............................................ 69
Pgina 9 de 77
Captulo
1 Introduccin
Existen en el mundo muchas empresas dedicadas a la construccin de robots, tanto para su utilizacin en lneas de produccin, como para el estudio o acercamiento inicial a la robtica [MEL2004] [PAR2004] [MSE2004] [K-T2004]. As mismo otras integran la robtica a sus kits de juegos de armar [LEG2004] agregando alguna forma de procesamiento, movilidad a travs de motores y reconocimiento del ambiente por medio de sensores. La mayora de las empresas involucradas en la construccin y venta de robots son europeas o norteamericanas, y los precios de los robots que producen estn de acuerdo con su procedencia. Se hace difcil, para medios acadmicos, adquirir uno de estos robots as como repuestos, soporte y partes nuevas. El presente proyecto, investiga la posibilidad de construir un robot a bajo costo, enfocado en la reutilizacin de componentes en desuso y las muestras gratis que algunas empresas de hardware proveen, sin perder de vista el enfoque acadmico que impone el ser un proyecto de grado. Dado que este proyecto de grado nace enmarcado en el proyecto de Ftbol de Robots, se agrega la intencin de disear y construir un prototipo de robot que cubra las necesidades bsicas de un jugador de ftbol de robots de la categora MiroSot (Micro Robots World Cup Soccer Tournament) de FIRA (Federation of International Robot-soccer Association) [FIR2004]. De estas consideraciones se puede inferir que el proyecto apunta a crear: Un modelo de robot que admita distintas implementaciones; que permita transitar desde la iniciacin en la robtica hasta la generacin de robots con mayor grado de complejidad. Una implementacin de robot que sea el prototipo inicial de un jugador de ftbol. Una implementacin de bajo costo. Por lo tanto este documento provee un modelo de robot y describe una implementacin de un prototipo mvil de bajo costo con la posibilidad de evolucionar en un jugador de ftbol de la FIRA. Propone un modelo de robot multipropsito, orientado a mltiples aplicaciones junto con la construccin de un robot mvil con procesamiento remoto. La idea de este tipo de distribucin de procesamiento est inspirada en la relacin entre un director tcnico y los jugadores de un cuadro de ftbol, es sostenida por la mayor capacidad de procesamiento de un PC y es aplicable a la mayora de las situaciones en que varios robots colaboran entre s. Todas las ideas plasmadas en este documento en cuanto al modelado y diseo del sistema se basan en un enfoque informtico.
Pgina 10 de 77
Pgina 11 de 77
Captulo
El principal objetivo del proyecto es la investigacin, el diseo y la construccin de un robot prototipo que pueda evolucionar en un jugador de ftbol de robots segn las reglamentaciones de la FIRA. Tras este objetivo se destacan varios otros como: Disear un modelo de robot que sea flexible y extensible. Obtener una aproximacin al estado del arte en componentes que podran integrar un robot mvil. Adquirir conocimiento en tecnologas de comunicacin, gestin de motores, armado de circuitos, controladores y otros componentes. Mantener la electrnica lo ms sencilla posible y llevar los problemas al campo del software siempre que esto sea posible. Las caractersticas del robot debern ser: Un jugador de ftbol tiene como lmites de tamao un cubo de 7.5 cm de lado como mximo. Un objetivo de construccin del prototipo es mantener el orden de magnitud de estas medidas. El prototipo debe ser construido con la mayor cantidad de elementos o componentes reciclados posible (sacados de mquinas en desuso o funcionales pero obsoletas debido a su antigedad como impresoras, lectoras de CD-ROM, discos duros, tarjetas de red, etc.), esto es fundamental para bajar los costos. El robot debe tener la inteligencia remota, tiene que existir un procesador de comportamiento (un programa en un PC), que enve ordenes al robot de modo que ste se mueva o reaccione de acuerdo a estas ordenes. Por lo tanto debe haber una forma de comunicacin inalmbrica entre el robot y el procesador de comportamiento. Para trasladarse el robot debe tener 2 ruedas, con un motor por cada rueda y una tercera rueda de apoyo para la sustentacin. Se debe construir una biblioteca que ejecute en un PC y que sea capaz de enviar rdenes al robot del tipo velocidad motor izquierdo y velocidad motor derecho. La comunicacin entre el procesador de comportamiento y el robot debe ser bidireccional, el robot debe responder cuando recibe rdenes. Estos objetivos, as como las caractersticas del sistema, han sido discutidas con los tutores y se fundamentan tanto en obtener las bases para las funcionalidades que un jugador de ftbol requiere, como tambin en razones de corte ms acadmico. Por lo tanto las soluciones propuestas tambin intentarn responder a las dos visiones del problema.
2.2 Alcance
Este proyecto naci como el estudio del estado del arte en construccin de robots a bajo costo, materiales tiles para este tipo de construccin, etc. Del intercambio inicial de ideas con los tutores, surgi la intencin de construir un prototipo de un robot que se asemeje a un jugador de ftbol.
Pgina 12 de 77
El alcance del proyecto est establecido por el diseo de un modelo de robot, la construccin de un prototipo cumpliendo con los objetivos antes descriptos y dejar el proyecto en un estado estable de modo de poder ser continuado por futuros estudiantes. A su vez, el prototipo debe validar la flexibilidad y extensibilidad del modelo. Por ltimo, los objetivos deben ser alcanzados por un prototipo cuyos componentes puedan ser utilizados o evolucionar en componentes del jugador definitivo.
Pgina 13 de 77
Captulo
Basados en el Planteo del Proyecto, se decantan las siguientes lneas de investigacin: Informacin sobre Robots que cumplieran parte o algn requerimiento relacionado con el proyecto. Corriente continua y componentes bsicos de electrnica [KUP2001]. Motores, tipos, caractersticas y formas de control. Sensores, tipos, caractersticas y formas de sensado. Microcontroladores, tipos, caractersticas, capaces de procesar mensajes, gestionar motores y registrar valores de sensores. Formas de comunicacin, por cable e inalmbricas. Bateras, tipos, autonomas y cargadores.
3.2 Motores
Bsicamente existen dos tipos de micromotores que se utilizan en robtica. Los motores de corriente continua y motores paso a paso. Los motores de corriente continua existen en distintos tamaos, formas y potencias, pero todos se basan en el mismo principio de funcionamiento. Accionar un motor de corriente continua requiere aplicar la tensin de alimentacin entre sus bornes. Para invertir el sentido de giro basta con invertir la alimentacin y el motor comenzar a girar en sentido opuesto. Estos motores no pueden ser posicionados o enclavados en una posicin especfica, simplemente giran a la mxima velocidad y en el sentido que la alimentacin aplicada les permite. Los motores de paso poseen como caracterstica principal el hecho de poder moverlos un paso a la vez por cada forma en que se energicen sus lneas de entrada. El paso puede variar desde 90 hasta pequeos movimientos de tan solo 1.8, es decir, que se necesitarn 4 pasos en el primer caso (90) y 200 para el segundo caso (1.8), para completar un giro completo de 360. Estos motores tienen la habilidad de poder quedar enclavados en una posicin o bien totalmente libres. Si una o ms de sus bobinas est energizada, el motor estar enclavado en la posicin correspondiente y quedar libre si no circula corriente por ninguna de sus bobinas. Por ms informacin ver documento Motores y Sensores [LM2004A]
3.3 Sensores
Los sensores ayudan a trasladar los atributos del mundo fsico a valores que la controladora de un robot puede usar. En general, la mayora de los sensores pueden ser divididos en dos grandes grupos: Sensores analgicos Sensores digitales Un sensor analgico es aquel que puede entregar una salida variable dentro de un determinado rango. Un ejemplo de sensor analgico es una Fotorresistencia (estos componentes miden intensidad de luz), sta puede ser cableada en un circuito que
Pgina 14 de 77
interprete sus variaciones y entregue una salida variable con valores entre 0 y 5 volt (en el resto del documento se abrevia V). Un sensor digital es aquel que entrega una salida del tipo discreta. Es decir, que el sensor posee una salida que vara dentro de un determinado rango de valores, pero a diferencia de los sensores analgicos, esta seal vara de a pequeos pasos preestablecidos. Por ms informacin ver documento Motores y Sensores [LM2004A]
Pgina 15 de 77
Para la comunicacin a travs de un bus se analizaron las formas I 2C y SPI que presentan en forma integrada algunos de los microcontroladores investigados. Adems fue investigada la arquitectura Blackboard en la que todos los microcontroladores escriben y leen en una zona de memoria comn llamada blackboard (pizarra), tomando el rol de fuentes de conocimiento. A travs de la escritura y lectura en la pizarra se genera el intercambio de informacin. Para la tercer lnea se investigaron comunicacin va infrarrojo y seales de radio. Se intent sin xito reutilizar piezas de telfonos inalmbricos, controles remotos, etc. Fueron realizadas pruebas con LEDs infrarrojos y fototransistores con xito relativo, es decir se logr transmitir y recibir informacin correctamente, pero ante los mnimos desequilibrios lumnicos en el entorno, la tasa de error impidi la transferencia de datos. En las pruebas realizadas con radio frecuencia, se constataron muchas ventajas como alcance, calidad y facilidad de uso gracias a los componentes utilizados. Por ms informacin ver documento Comunicacin [LM2004B].
3.6 Bateras
As como los objetivos referentes a movilidad y autonoma del robot implican una forma de comunicacin inalmbrica entre entidades, tambin derivan en la existencia de una fuente de energa elctrica transportable y de autonoma razonable; en definitiva una batera. Si bien el tipo y los requerimientos de voltaje y carga no estaban claros al principio del proyecto, se realiz un relevamiento de bateras de celulares nuevos y en desuso, bateras de alarmas de hogares, bateras de telfonos inalmbricos y pilas recargables de pequeo porte. Los valores de voltaje y amperaje de las bateras de celular se encuentran alrededor de los 3.6 V y entre los 300 y 1100 micro ampere hora (en el resto del documento se abrevia mAh). Los telfonos inalmbricos utilizan bateras de nquel cadmio de 3.6 V y 300 mAh. Las pilas o bateras recargables comunes de mayor carga halladas entregan 9 V con 300 mAh. En cuanto a las bateras de alarmas de hogares, existen de distintos voltajes y amperajes, como por ejemplo 12 V, 4.5 ampere hora (en el resto del documento se abrevia Ah), siendo stas las de mayor voltaje y carga pero teniendo como desventaja su mayor tamao y peso.
Pgina 16 de 77
Tarjeta Controladora
Tarjeta de Sonido
Fuentes de PC
Tarjeta de Red
Floppy 5
Floppy 3
Disco Duro
Motores de paso Servo Motores Motores de corriente continua Reguladores de voltaje Condensadores Diodos Conectores varios Pulsadores Switches On/Off Correas dentadas Correas Resortes Engranajes Sensores de tacto Sensores infrarrojos Resistencias de 1/4W a menor Resistencias 1W a 3.3W Resistencias variables Carcasas Disipadores de calor Cristales (20 44 Mhz) LED Conector BNC Conector RJ45 Conector RJ11 Zcalos Jumpers
Mouse
Componente
La misma se encuentra resumida y busca asistir a futuros estudiantes en la eleccin de la parte o equipamiento a desarmar.
Pgina 17 de 77
CD-ROM
Esta investigacin cubri: Transmisores y receptores por radio frecuencia. Microcontroladores. Bateras. Aunque los tres tipos de componentes se encontraron en plaza, continu la bsqueda en Internet por otras opciones que permitieran abaratar costos. De esta forma, se lleg a la empresa Microchip, la cual ofrece un programa de muestras gratis de microcontroladores en cantidades reducidas dentro de Estados Unidos. Contando con un servicio de mensajera hasta Uruguay, solo fue necesario abonar el costo del envo. Por detalle de costos ver captulo 7 Costos.
3.8.1 Microcontroladores
Se decidi utilizar los PICs de Microchip fundamentado en las siguientes razones: Fueron los primeros de los que se tuvo informacin. Existe documentacin disponible (hojas de datos) e inicialmente result atractiva la idea de que estos microcontroladores se puedan programar en Assembler y C. Tienen velocidades de reloj de entre 4 MHz (reloj interno) hasta 20 MHz (cristal externo), por dems suficientes para los requerimientos planteados. Son los ms vendidos en el mundo. La empresa Microchip proporciona muestras gratis de sus PIC y solo hay que pagar el envo desde Estados Unidos. Es posible adquirirlos en plaza. Se pudo obtener un microcontrolador, el software de programacin y el circuito programador con el cual se construy un programador de PICs poco tiempo despus de iniciado el proyecto. De la investigacin surgen como fuertes candidatos para integrar el prototipo los siguientes modelos de PIC: 16F628 un PIC de la gama media con 18 pines, que tiene muchas caractersticas funcionales automatizadas, mdulos que facilitan el uso de USART, 3 timers, interrupciones, comparadores analgico-digitales, estado de reposo en bajo consumo y otras. 16F877A de 40 pines, que tiene las mismas caractersticas del 16F628 y agrega ms memoria flash RAM (Random Access Memory), EEPROM (Electrically Eraseable Programable Read Only Memory), data RAM y gestin de un bus tipo I2C, tanto en modo MASTER como en modo SLAVE. 16F876A de 28 pines, con las mismas caractersticas del 16F877A siendo una versin ms econmica. 16F84 un modelo de una generacin anterior que los antes descriptos pero muy comn y econmico.
3.8.2 Comunicacin
En cuanto a la comunicacin punto a punto, de un microcontrolador y el PC, se decidi entre la comunicacin a travs del puerto PARALELO y el puerto SERIE, usar el puerto SERIE en un intento de minimizar la cantidad de pines a utilizar en el microcontrolador. A su vez, por facilidad de uso se opt por implementar dicha comunicacin utilizando el mdulo USART del microcontrolador.
Pgina 18 de 77
Para la comunicacin a travs de un bus se descart la forma SPI por presentar pocas facilidades frente a la extensibilidad. Las formas de comunicacin a travs de memorias se descartaron porque las memorias estticas de las que se tuvo conocimiento y acceso son caras, lentas y difciles de conseguir. Por otro lado, el bus I 2C, se perfil como el mejor candidato, siendo una forma de comunicacin fcil de implementar, tanto en software como en hardware y es adems, muy extensible. Respecto a la comunicacin inalmbrica, la solucin de comunicacin va infrarrojo, fue descartada, porque la comunicacin por radio es ms confiable, tiene mayor alcance y es menos afectada por obstculos. Ms an, es la solucin que utilizan los equipos de ftbol ya establecidos. Emitir y recibir por radio frecuencia a travs de los componentes TWS 434 y RWS 434 [REY2001], es bastante transparente en lo que refiere a la programacin de los microcontroladores, dado que el problema se soluciona por medio de electrnica con los componentes de codificacin, decodificacin, emisin y recepcin de radio frecuencia que se utilizaron en prototipos.
Pgina 19 de 77
Captulo
4 Anlisis y Diseo
4.1 Modelo de Proceso
El modelo de proceso para el desarrollo del sistema que se utiliz fue iterativo incremental centrado en la arquitectura. Se eligi este tipo de proceso por los siguientes motivos: Se adapta a la forma prevista de desarrollo, que estableca prototipos de partes importantes de la arquitectura y luego propona integrar estas partes. Se realizan anlisis de riesgos tempranos en cada etapa del desarrollo, esta caracterstica es particularmente importante cuando no se tiene experiencia fluida en el temario que el proyecto incluye. Se tiene experiencia previa en este tipo de proceso gracias al Proyecto de Ingeniera de Software. Si bien este tipo de proceso fue pensado para construccin de software, es otro punto del actual proyecto en el que se aplican ideas relacionadas con software en temas de electrnica. Aplicar el modelo de proceso en forma estricta no pareci viable al comienzo del proyecto. La experiencia con que se contaba a este respecto indicaba que, como en la aplicacin desarrollada en el Proyecto de Ingeniera de Software, la documentacin lleva tiempos imposibles de afrontar para un grupo con 2 integrantes. Por lo tanto la decisin tomada fue relajar el modelo disminuyendo la cantidad de documentacin sin perder de vista sus principios. Se decidi mantener la cronologa de los sucesos en los documentos, de forma tal que fueran evidentes las iteraciones. Se resolvi construir prototipos que fueran partes reales de la arquitectura como prueba y validacin del proyecto. Iterando sobre estos prototipos se buscaba llegar a la integracin final del sistema. Por ltimo se mantuvieron los anlisis de riesgos para mitigar en forma temprana posibles problemas de implantacin.
Perseguir el objetivo prctico de hacer un prototipo de jugador de ftbol de robots sin perder de vista el objetivo acadmico de disear un modelo de robot para aplicaciones generales. Toma de decisiones atendiendo a la solucin de problemas del propio proyecto y a posibilidades futuras.
<<procesador>> : PC
<<procesador>> : microcontrolador
moduloPC
<<comunicacion>> INALAMBRICA <<comunicacion>> CABLE
moduloCOMM
<<comunicacion>> BUS
<<procesador>> : microcontrolador
<<procesador>> : microcontrolador
moduloER
moduloMOTOR
<<procesador>> : microcontrolador
moduloAGREGADO
La Figura 1 muestra el modelo compuesto por un subsistema Control de Comportamiento y un subsistema Unidad, sta es la separacin fundamental del sistema, aunque se mantiene el acoplamiento por la forma de comunicacin que ambos deben compartir, la comunicacin inalmbrica, representada por la entidad INALAMBRICA estereotipada como <<comunicacin>>.
Pgina 21 de 77
En el nodo PC se hace el deploy del componente moduloPC, biblioteca que permitir la interaccin del sistema con un programa externo de gestin de comportamiento, procesamiento de clculos complejos u otros. En el nodo microcontrolador se hace el deploy del componente moduloER. Ambos componentes usan la entidad CABLE estereotipada como <<comunicacin>> para dialogar entre s. En el subsistema Unidad se encuentran tres nodos <<procesador>>. En el primer nodo se hace el deploy del componente moduloCOMM, en el segundo el del moduloMOTOR y en el tercero el moduloAGREGADO que ejemplifica la situacin de un nuevo mdulo marcando la extensibilidad a nivel de modelo. Los componentes de los tres nodos utilizan la entidad BUS estereotipada como <<comunicacin>> como forma de comunicacin entre ellos. Tanto el moduloER del subsistema Control de Comportamiento como el moduloCOMM del subsistema Unidad utilizan la entidad INALAMBRICA, de esto se desprende la dependencia entre ambos subsistemas e INALAMBRICA. El modelo no impone exigencias respecto de las formas de comunicacin, de hecho solo hace propuestas en cuanto a los nombres con los que llama a las entidades estereotipadas <<comunicacin>>, estas entidades podran representar distintas formas de comunicacin y el modelo seguira vigente; ms an la forma de comunicacin INALAMBRICA podra ser un cable, la forma CABLE podra ser por infrarrojo y el modelo no se vera afectado. Tampoco existen exigencias respecto de dnde estar la inteligencia del sistema, sin embargo la posibilidad de incluir un PC condiciona a tener un procesador ms potente que el resto y marca una tendencia a proponer que la inteligencia se gestione en este procesador.
robots, s es deseable la investigacin sobre motores de paso para otras aplicaciones, en este punto influye mucho el espritu acadmico). Una consecuencia inmediata de utilizar motores de paso fue la necesidad de un controlador que energice de forma adecuada la secuencia de pasos al motor. Como el control de los motores es una ocupacin clara y definida, es razonable pensar que habr un mdulo que se dedique a ella. De esta forma naci el mdulo MOTOR. Es de hacer notar que de acuerdo al modelo, la utilizacin de cualquier tipo de motor requiere un mdulo de control, as es posible cambiar la forma del movimiento solo cambiando dicho mdulo. Una unidad debe recibir rdenes del exterior, de acuerdo con las premisas que se establecieron, se debe pensar en un mdulo de comunicaciones que sea independiente e intercambiable, que espere mensajes del exterior y reenve de ser necesario, dichos mensajes dentro de la Unidad; ste es el mdulo COMM. Tendr conectadas las formas de comunicacin inalmbrica y dominar el bus de conexin con el resto de los mdulos de la Unidad, para hacerles llegar un mensaje o interrogarlos por informacin para armar alguna clase de respuesta al exterior. La comunicacin entre el mdulo PC y el mdulo ER, en el modelo llamada CABLE, se implementa utilizando comunicacin serial a travs del mdulo UART ( Universal Asynchronous Receiver Transmitter) del PC y el USART del PIC. La comunicacin entre el mdulo ER y el mdulo COMM, en el modelo llamada INALAMBRICA, se implementa utilizando comunicacin por radio frecuencia. Por ltimo, la comunicacin entre los mdulos de una Unidad, en el modelo llamada BUS, se implementa utilizando el bus I2C en el que el microcontrolador del mdulo COMM es maestro y el resto de los microcontroladores participan como esclavos. Con la intencin de hacer a la Unidad algo ms independiente, buscando conseguir informacin del entorno a travs de sensores, nace el mdulo SENSOR. Este mdulo se incorpora luego de tener construida la unidad para determinar si la forma de extensibilidad propuesta funciona; el mdulo SENSOR valida el diseo propuesto.
Pgina 23 de 77
4.4 Mdulos
4.4.1 Mdulos que se Planearon Inicialmente
Inicialmente se plantearon los mdulos imprescindibles para la construccin de una implementacin bsica del modelo propuesto, estos son mdulo PC, mdulo ER, mdulo COMM y mdulo MOTOR. Esta implementacin es suficiente para validar el modelo y construir el prototipo del jugador de ftbol, pero no es suficiente para testear la extensibilidad. En funcin de establecer la capacidad de crecimiento y encontrar los problemas no evidentes de la idea de extensibilidad propuesta, se agreg el mdulo SENSOR. Este mdulo se agregar una vez que estn construidos los dems, aunque se tratar en el resto del documento como un integrante ms del plan de construccin.
El mdulo PC es en su totalidad software, est compuesto de una biblioteca que deber ser linkeditada por un programa externo para comandar el robot, la biblioteca es capaz de recibir rdenes de este programa, las cuales traduce en mensajes, y los enva a la Unidad
Pgina 24 de 77
correspondiente a travs de un puerto SERIE. Una vez que la Unidad responde, procesar el mensaje recibido y lo entregar al programa cliente de la biblioteca. Para el envo como recepcin de mensajes, las rutinas de la biblioteca requieren datos de Unidad Destino del mensaje, Tipo del mensaje, Dato y Mdulo Destino dentro de la Unidad. Por ms informacin ver captulo 5 Comunicaciones.
Responsabilidad
La biblioteca es la encargada de implementar la interfase entre el programa externo de comportamiento y el Control de Comportamiento. Gracias a esta biblioteca se le pueden enviar mensajes a los distintos mdulos de las Unidades que existan. El mdulo ER
Composicin
El mdulo ER se implementa en un circuito que se conecta con un PC a travs de un cable al puerto SERIE y con las Unidades a travs de mensajes por radio frecuencia. Este mdulo es comandado por un microcontrolador PIC 16F877A [HOJ2001B] y tiene como objetivo ser el puente entre los dos medios, el cable y el aire. El microcontrolador recibe los comandos del mdulo PC a travs de su puerto USART, siendo necesario convertir los valores de voltaje del estndar RS-232 a TTL por medio del componente ICL 232 [ICL1997]. Una vez recibido un mensaje del PC en un paquete de 3 bytes, se entrega de a 1 byte (a travs de 8 lneas de datos) al circuito codificador HT640 [HOL1999] para ser convertido en una transmisin serial, la cual es entregada al transmisor de radio frecuencia TWS-434 [REY2001], quien por medio de su antena enva cada bit hasta la Unidad. Los mensajes de respuesta son recibidos por el receptor de radio frecuencia RWS-434 [REY2001], quien lo entrega para su decodificacin al circuito HT648L [HOL1997]. Una vez decodificado un byte del paquete, se entrega (a travs de 8 lneas de datos) al microcontrolador para que una vez completado el paquete, ste verifique su correctitud (CRC [TAN1997]) y lo enve al mdulo PC.
Por ltimo el mdulo incluye tres LEDs, representados como un semforo en el esquema, para diagnstico, prueba y depuracin del circuito.
Responsabilidad
El mdulo ER es el encargado de hacer de bridge entre el PC (mdulo PC) y la Unidad, recibiendo mensajes por USART y envindolos por radio frecuencia. Implementa un
Pgina 25 de 77
protocolo Store and Fordward, sin modificar el mensaje, se encarga de cambiar el medio de transmisin del mismo. El mdulo COMM
Composicin
El mdulo COMM se implementa como el circuito principal de la Unidad; es comandado por un microcontrolador PIC 16F877A [HOJ2001B], cuya labor consiste en hacer de interfase entre el emisor-receptor por radio frecuencia y los diferentes mdulos de la Unidad. A travs de ste, llegan las rdenes a los distintos mdulos y son enviadas las respuestas de los mismos hacia el PC. Siendo este mdulo parcialmente un espejo del mdulo ER, utiliza casi los mismos componentes.
La labor principal del mdulo COMM es hacer de interfase entre el mdulo ER y los diferentes mdulos de una Unidad. Cuando el mdulo COMM recibe un mensaje del mdulo ER, el microcontrolador del COMM se encarga de desarmar el paquete, chequear su correctitud y verificar que la Unidad en la que se encuentra el mdulo sea la destinataria del mensaje. Para lograrlo compara el identificador de Unidad en el mensaje con la configuracin establecida por hardware en el propio mdulo. Otra de las tareas principales del mdulo es cumplir el rol de MASTER [HOJ2001B] del bus I2C por el que se comunica con el resto de los mdulos de la Unidad. Una vez procesado el mensaje, el COMM se encarga de colocar dicho mensaje en el bus y solicitar respuesta, al mdulo correspondiente. Todas las respuestas de la Unidad dirigidas al mdulo PC, son armadas (clculo del cdigo de redundancia cclica incluido) por el propio mdulo COMM. Dentro de las caractersticas del mdulo COMM, ste puede ser configurado va mensajes para solicitar o no respuesta a un mdulo determinado. Por ms detalles ver apndice Protocolos de Comunicacin. El mdulo MOTOR
Composicin
El mdulo motor se implementa como el circuito al que estn conectados los motores. Para esta implementacin se utilizaron 2 motores de paso extrados de impresoras matriz de punto en desuso. El circuito est comandado por un microcontrolador PIC 16F876A [HOJ2001B].
Pgina 26 de 77
Con el fin de mejorar la velocidad y torque de los motores de paso, se elev el voltaje al valor de 10 V. Para esta tarea fueron necesarios dos arrays de transistores Darlington implementados en los componentes ULN2003A [ULN2003]. A cada uno de los ULN2003A, se conectan 4 lneas provenientes del microcontrolador, quienes transportan las secuencias de pasos al motor correspondiente.
Responsabilidad
El mdulo MOTOR es el encargado de mantener ambos motores en movimiento, recibir rdenes desde el bus I2C al cual est conectado participando en forma SLAVE y responder cuando le es solicitado. Tambin es responsable de atender a los cambios en el valor de aceleracin, velocidad y direccin as como mantener los motores en reposo o bloqueados. El mdulo SENSOR
Composicin
El mdulo sensor se implementa como el circuito al que estn conectados los sensores. Para esta implementacin se utilizan 5 sensores de cierre extrados de impresoras matriz de punto en desuso. El circuito es comandado por un microcontrolador PIC 16F876A [HOJ2001B].
Pgina 27 de 77
Responsabilidad
El mdulo SENSOR es el encargado de mantener y administrar la informacin recabada por los sensores de la Unidad, recibe rdenes desde el bus I2C al cual est conectado participando en forma SLAVE y responde a peticiones de informacin referente a los valores de sus sensores.
Pgina 28 de 77
Captulo
5 Comunicaciones
5.1 Formato del Mensaje
5
8 bits Dato 3 bits Id. Mdulo 5 bits CRC
Id. Destino: es el identificador de Unidad a la que va dirigido el mensaje. Tipo de Mensaje: es el tipo del mensaje. Dato: es el dato del mensaje. Id. Mdulo: es la direccin I2C del mdulo en la Unidad al que va dirigido el mensaje. CRC: es el cdigo de redundancia cclica (ver apndice Protocolos de Comunicacin). Los mensajes estn dirigidos a un mdulo dentro de una unidad. Tanto el tipo del mensaje como el dato se consideran carga til ya que componen la informacin a entregar al mdulo destino. Por lo tanto esta visin de la comunicacin permite tomar otras determinaciones como por ejemplo destinar un par de bits ms a los datos cuando el mensaje es para el mdulo MOTOR o indicar en cada mensaje si se quieren datos en la respuesta. Se dejan puertas abiertas a posibles acciones que puedan tomar los mdulos respecto de cmo comunicarse y cmo entender los mensajes. Es decir, a cada mdulo le llegarn 13 bits, qu hacer con ellos o cmo interpretarlos podr depender de la lgica implementada en el mdulo particular.
Pgina 29 de 77
Control Unidad
Mdulo PC COMM radio frecuencia
3 4 5 6 3
7
usart
MOTOR
4 6 5
bus i2c
SENSOR
Mdulo ER
El camino de un mensaje puede verse representado de la siguiente forma: 1- Mensaje del mdulo PC al mdulo ER. 2- Mensaje del mdulo ER al mdulo COMM. 3- Mensaje del mdulo COMM al mdulo MOTOR. 4- ACK del mdulo MOTOR al mdulo COMM. 5- Solicitud de respuesta del mdulo COMM al mdulo SENSOR. 6- Respuesta del mdulo SENSOR al mdulo COMM. 7- Respuesta del mdulo COMM al mdulo ER. 8- Respuesta del mdulo ER al PC. Un mensaje es enviado por el mdulo PC de a un byte, es recibido por el mdulo ER va comunicacin serial. El paquete se almacena en el mdulo ER y es reenviado al mdulo COMM a travs de radio frecuencia por medio de un protocolo tipo Store and Fordward, simplex con ventana de ancho 1 [TAN1997]. Fue necesario escribir un protocolo de sincronizacin a nivel de capa 1, de tipo RTS/CTS (ver apndice Protocolos de Comunicacin) para evitar que el PC desborde el buffer del PIC del mdulo ER cuando la comunicacin es en direccin a la Unidad. En la respuesta del PIC al PC, la sincronizacin no es necesaria debido al buffer del PC.
Pgina 30 de 77
Una vez que el mdulo COMM recibe el mensaje, desarma el paquete y verifica tanto el Id. Destino como el CRC. Cuando la verificacin resulta correcta, el Id. Mdulo es utilizado como direccin para enviar mensajes I2C con la carga til del paquete recibido, es decir el tipo de mensaje y el dato. El mdulo COMM contesta al mdulo ER con un paquete que mantiene el formato anterior. Esta respuesta puede o no tener carga til. Depender de la configuracin del propio mdulo COMM si consulta algn mdulo de la unidad para agregar datos a la respuesta. En tiempo de ejecucin, es posible indicar al mdulo COMM a travs de mensajes, si debe responder sin datos o si debe integrar datos a las respuestas y de qu mdulo deben ser stos. Esta caracterstica tiene como objetivo permitir la completa comunicacin con un mdulo en particular, aunque no beneficia ninguna funcionalidad del ftbol de robots, deja abierta la posibilidad de extender una Unidad con algn mdulo que requiera comunicacin bidireccional con el PC.
I2C es un bus de comunicaciones, un canal al que se pueden conectar entidades que hablen el protocolo. Esta sola caracterstica hace que los sistemas que lo utilizan sean inherentemente extensibles. Su implementacin elctrica es sencilla, es necesario conectar 2 cables a resistencias pull-up y todas las entidades que pretendan utilizar el bus debern estar conectadas a los 2 cables, en un cable el microcontrolador con el rol de MASTER (master) de la comunicacin pondr el reloj y el segundo cable se dedicar al intercambio de banderas y datos. Existe un ambiente multimaster con deteccin de colisiones (modo de funcionamiento en el que pueden haber varios master, aunque no a la vez) y otro ambiente en que existe un solo master. Siempre est presente la relacin maestro esclavo entre las entidades conectadas y un solo master controla el bus en un momento dado. Se permite un direccionamiento de 7 o 10 bits y se transmiten palabras de 8 bits en todos los casos. Las frecuencias de funcionamiento varan de 100 Khz a 1Mhz para los PIC. Las frecuencias I 2C estndar para el bus son 100, 312.5 y 308 Khz. En general el funcionamiento es el siguiente: todos los dispositivos conectados al bus tienen una direccin, el master pone una direccin y el modo, transmisin o recepcin; en el bus, si una entidad conectada tiene esa direccin le contesta, si el modo es de transmisin el master comienza a enviar datos, si es de recepcin el esclavo enva datos, cuando el envo de datos se termina el master pone en el bus un fin de transmisin. Para la presente implementacin se estableci direccionamiento de 7 bits, interrupciones por llegada y envo de un byte, una frecuencia de reloj de 100 Khz, lo que permite un ancho de banda en el canal de aproximadamente 1200 bps.
Pgina 32 de 77
Captulo
Siguiendo el modelo de proceso, durante la etapa de investigacin fueron confeccionados varios prototipos en protoboard con la finalidad de profundizar en el conocimiento de los componentes electrnicos, conocer el alcance de los mismos y validar la funcionalidad de los mdulos. Los prototipos construidos fueron: Control de un motor paso a paso de 6 hilos Circuito controlador de un motor paso a paso de 6 hilos a travs de un PIC 16F628. Emisor Receptor infrarrojo Circuito emisor receptor infrarrojo con una portadora de 38 KHz generada por el mdulo PWM de un PIC 16F628. Emisor Receptor RS232 PIC PC Circuito emisor receptor RS232 para comunicar un microcontrolador PIC 16F628 con un PC. Emisor Receptor por radio frecuencia Circuito emisor receptor por radio frecuencia con transmisin de 8 bits a travs de un codificador con 10 bits de direcciones. Bus I2C Circuito que verifica la funcionalidad del bus I 2C entre un microcontrolador PIC 16F877A (MASTER) y dos microcontroladores PIC 16F876A (SLAVE). Tambin fue necesario construir un circuito programador de microcontroladores PIC con la capacidad de programar los tres modelos utilizados en los prototipos (16F628, 16F876A y 16F877A). Por ms detalles de los prototipos mencionados referirse al captulo 8 Pgina Web.
Pgina 33 de 77
Por una descripcin detallada de los tipos de secuencia referirse al documento Motores y Sensores [LM2004A].
Como puede apreciarse en la Figura 9, fue elegido un eliminador de pila regulable entre un rango de voltajes de 3 V a 12 V. Por otro lado, una vez calculado el consumo de la Unidad (aproximadamente 850 mAh) y teniendo en cuenta los requisitos en cuanto a los niveles de voltaje de cada mdulo (5 y 10 V), fue necesario realizar un relevamiento en el mercado en busca de una batera que cumpliera con dichos requerimientos mnimos y que brindara a su vez, un tiempo considerable de autonoma.
Pgina 34 de 77
Si bien fue evaluado armar una batera colocando en serie y/o paralelo varias ms pequeas, el costo de obtener dichas bateras as como la complejidad del circuito de carga era mayor. Esto ltimo deriv en la adquisicin de una batera recargable sellada de 12 V 1.3 Ah como puede apreciarse en la Figura 10.
6.2 Construccin
6.2.1 Programador de Microcontroladores JDM
Para comenzar a trabajar con los microcontroladores PIC de la empresa Microchip, se hizo indispensable contar con un programador de microcontroladores, es decir un circuito que enve el programa objeto a ser ejecutado desde el PC al microcontrolador. Debido al costo elevado de los programadores que se encuentran disponibles en plaza, se opt por construir uno. Tambin fue necesario conseguir un software cargador compatible con el programador JDM (Jens Dyekjr Madsen). En la bsqueda en Internet, se encontr un circuito del programador JDM (ver III.6 Programador JDM) junto con el software de carga IC-Prog (ver II.3 Software utilizado) con el que fue construido el programador de la Figura 11.
Debido a la variedad de modelos de microcontroladores y con la finalidad de simplificar la programacin de los mismos se decidi incluir en el propio circuito los zcalos para los PIC16F84, PIC16F628, PIC16F876 y PIC16F877.
6.2.2 Mdulo ER
El primer mdulo construido fuera del protoboard fue el mdulo ER. Con la poca experiencia que contaba el grupo del proyecto, fue todo un desafo integrar en una misma plancha de pertinax, el microcontrolador PIC16F877A, la pareja codificador-decodificador HT640 y HT648L, el componente ICL232, el par transmisor receptor RF TWS-434 y RWS-434, ambas antenas, el conector del cable de comunicacin con el PC y el regulador de voltaje L7805CV [L781997]. Fueron elegidas las planchas de pertinax universal para armar los circuitos de cada mdulo por su semejanza y practicidad en cuanto al uso con un protoboard, evitando tcnicas ms complejas. Para resolver qu tipo de cable utilizar entre el PC y el mdulo ER fue tenida en cuenta la disponibilidad de un conector hembra RJ45, un conector hembra DB9 y de un patchcord de
Pgina 35 de 77
UTP. El patchcord se cort en un extremo donde fue soldado el conector DB9 y sobre la placa se mont el conector RJ45 como puede apreciarse en la Figura 12. Por el detalle de los pines de conexin, referirse al apndice III.1.1 Diseo del Circuito del mdulo ER. La primera decisin tomada con respecto a la placa, fue si el regulador de voltaje a 5 V debera incluirse o no dentro de la misma. En busca de un diseo compacto y porttil, se prefiri incluirlo dentro de la placa junto con un conector de dos pines para el eliminador de pilas, un interruptor bipolar y un LED rojo testigo.
La segunda decisin relevante fue la de utilizar zcalos en todos lo componentes (ver Figura 12), para lograr intercambiar fcilmente cualquier elemento ya sea tanto para su programacin en el caso de los microcontroladores, regulacin en caso de los receptores de radio frecuencia o reposicin en caso de averas. Con el mismo criterio se opt por colocar antenas desmontables aprovechando los conectores RG58 de las antiguas tarjetas de red con BNC. Una vez fijadas las bases de los conectores hembra RG58 con silicona, se tuvo especial cuidado en conectar a tierra los extremos de los cables que llevan la seal desde el transmisor o receptor hasta la antena correspondiente. Por ltimo, tanto para este mdulo como en el resto, se colocaron los tres LEDs testigos (verde, amarillo y rojo) del microcontrolador con lgica invertida (5 V 1 apaga, 0 V 0 prende). Por detalles referentes al diseo del circuito y la lista de materiales del mdulo, referirse al apndice III.1.1 Diseo del Circuito del mdulo ER.
Pgina 36 de 77
Como se puede apreciar en la Figura 13, se busc un diseo compacto del circuito ya que debe incluirse dentro de la unidad. El circuito de alimentacin incluye un LED testigo que indica que se encuentra entregando corriente, un conector de dos pines para la batera, una llave bipolar de encendido y apagado, un regulador de voltaje de 10 V (L7810CV), un regulador de voltaje de 5 V (L7805CV), varios condensadores y un conector de 4 pines para alimentar al robot. Para distribuir la alimentacin dentro de la Unidad se utilizaron los cables de audio que van desde las tarjetas de sonido a las unidades de CDROM. El ltimo detalle del circuito de alimentacin es el disipador de calor que fue necesario agregar al regulador de voltaje de 10 V, debido al alto consumo de los motores de paso. El circuito de alimentacin se convirti en parte vital del proyecto en lo que refiere a la integracin de los mdulos ya que los transmisores y receptores por radio frecuencia son extremadamente sensibles a las variacin en el valor del voltaje que utilizan. En la Figura 13 puede observarse tambin, el circuito cargador de batera. El mismo cuenta con dos conectores BOSH, un conector macho de fuente de PC, una resistencia de 2 WJ de 150 y un diodo. Por detalles referentes al diseo de los circuitos y las listas de materiales, referirse al apndice III.2.1 Diseo del Circuito de la Etapa de Potencia.
Pgina 37 de 77
Con la idea de raquear o colocar en cascada las placas correspondientes a diferentes mdulos, se colocaron dos conectores de 4 pines, uno para entrada de fuente y el otro como salida como puede apreciarse en la Figura 14. Siguiendo la misma filosofa, fueron colocados dos conectores de dos pines para interconectar el Bus I 2C entre mdulos. De esta manera se logr mantener extensible la implementacin del prototipo. Por ltimo, fueron agregadas 3 filas de jumpers conectadas a 3 pines del microcontrolador que indican en forma binaria (0 V 0 y 5 V 1) el identificador de Unidad en donde se encuentra instalado el mdulo. Por detalles referentes al diseo del circuito y la lista de materiales del mdulo, referirse al apndice III.3.1 Diseo del Circuito del mdulo COMM.
Pgina 38 de 77
Como puede notarse en la Figura 15 existen dos conectores para la alimentacin de la placa, y dos conectores para el Bus I2C para mantener la idea de extensibilidad de la implementacin. Tambin, es posible apreciar los separadores roscados que son a su vez soportes de las placas madre (motherboard) utilizados como columnas para fijar una placa sobre otra. Para la conexin con los motores de paso se utiliz el mismo conector de 12 pines extrado de la impresora. En la conexin de cada bobina fue agregada una resistencia de 1 para lograr determinar la corriente que circula por ellas por el mtodo prctico mencionado en 6.1.1 Consumo de los Motores de Paso. Por detalles referentes al diseo del circuito y la lista de materiales del mdulo, referirse al apndice III.4.1 Diseo del Circuito del mdulo MOTOR.
Pgina 39 de 77
Figura 16 Imagen del mdulo MOTOR y SENSOR con los motores y sensores conectados.
Por detalles referentes al diseo del circuito y la lista de materiales del mdulo, referirse al apndice III.5.1 Diseo del Circuito del mdulo SENSOR.
Pgina 40 de 77
La mejor estructura que se adaptaba a las necesidades y a su vez se encontraba disponible como material en desuso fue una fuente de PC Hewlett Packard de principios de los 90. En principio, al haberse colocado cada rueda directamente al eje de un motor se consegua un movimiento lento y de muy poco empuje, cualquier desperfecto en la superficie de apoyo lograba frenar la Unidad. En busca de aprovechar mejor el torque, se cambi la disposicin de los motores, colocando un eje roscado con una rueda en cada extremo, montada sobre un rulemn. Se agreg un o-ring entre la rueda y el motor en forma de correa como puede apreciarse en la Figura 18. De esta forma no solo se super el problema sino que el robot logr subir rampas con aproximadamente 20 grados de inclinacin. Por ltimo, para sustentacin fue colocada una tercer rueda giratoria en la parte posterior de la Unidad.
Pgina 41 de 77
6.3 Programacin
6.3.1 La Programacin, su Evolucin y las Alternativas
Una Unidad tiene distintos microcontroladores, stos trabajan en paralelo e intercambian mensajes, desde este punto de vista, la Unidad es un sistema distribuido en el que varios procesadores colaboran, sin embargo desde el exterior sigue vindose como un todo. La programacin de la Unidad, es decir, la programacin de cada microcontrolador est determinada, ms all de mantener la funcionalidad propia del mdulo, por la atencin a los otros microcontroladores a travs del intercambio de mensajes. Para cumplir con los requerimientos funcionales de un mdulo y la mensajera se utilizaron distintas funcionalidades de los PIC, tanto timers, como USART, I2C e interrupciones. En cuanto a la programacin de los microcontroladores, inicialmente se us como lenguaje el Assembler de Microchip MPASM; luego en la bsqueda de una alternativa con mayor flexibilidad y facilidad de uso, se encontr el Hi Tech C Compiler; un compilador C para PIC, que salvo por algunos detalles cumple con la norma ANSI C. Utilizar el compilador signific un crecimiento significativo en la productividad de la programacin, as como en la investigacin de las distintas formas de comunicacin y funcionalidades que posteriormente se integraron. El compilador C incluye bibliotecas que son de gran utilidad, aunque en la mayora de los casos fueron destinadas solo a pruebas. Por otro lado, se construyeron bibliotecas propias para facilitar por ejemplo la integracin de controles de tiempos en rutinas bloqueantes. La programacin realizada en C es similar a la realizada utilizando Assembler en el sentido de que se usaron registros para controlar las funcionalidades del microcontrolador ms que las bibliotecas provistas por Hi Tech, aprovechado la independencia del manejo de las estructuras de control, asignaciones, tipos, etc. que brinda el lenguaje. Es de considerar que al subir el nivel del lenguaje aparecen nuevos puntos de atencin, por ejemplo el compilador genera ms cdigo que el esperado, siendo esto muy notorio en algunos casos. Fueron necesarias estas nuevas consideraciones a la hora de escribir los programas para controlar la generacin de cdigo objeto. Adems se perdi el detalle exacto de cuntas y cules instrucciones se ejecutan, por lo tanto dej de existir el control de tiempos utilizado inicialmente (contando instrucciones, dado que en un PIC se conoce cuntos ciclos de reloj demora la ejecucin de una instruccin). Lo que signific redisear el mdulo MOTOR, ya no en funcin de contar instrucciones sino de depender de interrupciones y de timers para la espera de un perodo entre un paso y el siguiente. En el resto de los mdulos, el cambio a C no fue dramtico dadas la caractersticas asincrnicas de los mismos, en general todos esperan recibir un mensaje y hacer algo con l, sin depender de un reloj que condicione el cumplimento de sus responsabilidades como sucede con el mdulo MOTOR. El assembler utilizado, MPASM, es de libre distribucin, lo provee Microchip con el MPLAB, la IDE para desarrollar los programas que ejecutan los microcontroladores de esta marca que tambin es gratis. El compilador C se integra al MPLAB como plug-in. La empresa Hi Tech proporciona sin costo una versin limitada del compilador Hi Tech PICC compiler, la versin PICC Lite, estas limitaciones confinan su uso a 2 bancos de memoria, menos de 2K instrucciones, restringiendo as el largo del cdigo y la cantidad de variables que se pueden usar.
Pgina 42 de 77
Dado que estaba fuera de discusin la compra de la versin completa del compilador, la versin demo fue una muy buena opcin, pudindose integrar tambin al MPLAB.
Pgina 43 de 77
Los conceptos anteriores llevaron a la decisin de escribir una biblioteca de nombre CRC que exporte funciones para el clculo en 5 bits para un mensaje de 3 bytes y escribir un componente RobotBC2.ocx en Ms. Visual Basic que fuera capaz de intercambiar mensajes con una o varias Unidades. En tiempos de construccin el foco del proyecto fue la electrnica y la programacin de los microcontroladores, siendo menos prioritario el desarrollo del mdulo PC. Esta razn influy fuertemente en la eleccin de lenguajes comerciales, de fcil uso debido a los componentes encontrados, por sobre alternativas ms flexibles como puede ser Java sobre el sistema operativo Linux. De todas formas queda como siguiente paso en la evolucin del proyecto migrar el desarrollo del mdulo PC a Java sobre Linux restando conseguir una versin del programador de microcontroladores para este sistema operativo junto con clases que permitan gestionar timers y comunicacin serial.
Pgina 44 de 77
Captulo
7 Costos
7.1 Costos de Materiales para Aprender
7
Precio $U --------------------------------------25,00 58,00 268,00
Tanto para aprender como para poder disear y validar los prototipos implementados fueron necesarias varias herramientas y materiales. En la Tabla 3 se listan en detalle las mismas junto con una columna con el precio en pesos uruguayos para aquellos items que fueron necesarios adquirir.
Tabla 3 Herramientas y materiales para aprendizaje Descripcin Morsa pequea Destornilladores varios Alicate Pinza de punta Soldador 40Watt Eliminador de Pilas Taladro de mano Pistola de silicona Pinza para conectores BNC Multimetro o tester Osciloscopio Marcador indeleble Bandas elsticas Tornillos y arandelas Caja y conector RJ11 Cable RG 6 y UTP Silicona Pilas Conectores DB9 hembra Estao 60/40 Maya desoldadora 3,00 mm x 1,5 mm Protoboard
Como puede apreciarse, el costo total incurrido asciende a $U 351.-; aproximadamente U$S 11,7 correspondiendo a insumos imprescindibles y a un protoboard. Un detalle importante de destacar es la ventaja que brinda el tener disponible varios protoboards, ya que una vez alcanzado un circuito estable en el mismo, adems de documentarlo, fue de mucha ayuda mantener el circuito durante todo el proceso de construccin de la Unidad. Ventaja muy til al momento de realizar pruebas varias tanto de hardware como de software por las facilidades que permite el protoboard por sobre un circuito soldado en una plancha de pertinax.
Un eje roscado. Un microcontrolador PIC16F628 con el cual se realizaron las primeras experiencias. Cable RG 6/U 75 ohms y UTP. Dos protoboards. Ampermetro. Osciloscopio. Impresoras, discos duros, disqueteras, fuentes de PC, CD-ROM, tarjetas de red, tarjetas de sonido, etc. Todos ellos en mal estado u obsoletos. Tiempo y esfuerzo por parte de personas idneas en programacin de microcontroladores, antenas de comunicacin por radio frecuencia, electrnica en general y mecnica.
Si bien es difcil llegar al costo exacto, en la Tabla 4 se muestra un detalle de los elementos que fueron necesarios adquirir para lograr la construccin del prototipo. Por un detalle minucioso de los componentes de cada mdulo referirse al apndice Circuitos y Materiales.
Descripcin Malla desoldadora 3,00 mm x 1,5 mm Estao 60/40 HT640 codificador 10 direcciones HT648L decodificador 10 direcciones ICL232 driver / receptor 232 TWS 434 transmisor 315 Mhz RWS 434 receptor 315 Mhz Plancha universal de pertinax Batera 12V 1.3 Ah ULN2003AN array transistores darlington Rueda giratoria Switch On / Off Cant. 1 1 2 2 1 2 2 3 1 2 1 2 Precio $U 58,00 25,00 89,00 81,00 105,00 300,00 300,00 164,00 214,00 28,00 25,00 20,00 SubTotal $U 58,00 25,00 178,00 162,00 105,00 600,00 600,00 492,00 214,00 56,00 25,00 40,00
El costo total aproximado de una Unidad junto con el mdulo ER es de $U 2555.- ; alrededor de U$S 85.- El mismo puede verse incrementado en caso de que no se consigan de equipamiento obsoleto, los componentes necesarios. (Ver 3.7.1 Reutilizacin de Componentes 0 Costo)
Pgina 46 de 77
Pgina 47 de 77
Captulo
8 Pgina Web
La construccin de una pgina Web para el proyecto fue motivada por las siguientes razones: Lograr un seguimiento cronolgico del proyecto. Generar un repositorio de informacin para este proyecto y para proyectos de generaciones futuras. Mantener una fluida comunicacin con los tutores y con los integrantes de los proyectos relacionados (ver 1.1 Trabajos Relacionados).
La pgina Web rene informacin referente a los prototipos intermedios construidos desde los inicios hasta el propio prototipo final. Es posible descargar las hojas de datos de todos los componentes utilizados as como documentos relacionados con el estado del arte del
Pgina 48 de 77
proyecto, documentos propios del diseo y construccin del sistema, programas escritos en etapa de investigacin, programas incluidos en el prototipo final, utilitarios, circuitos, fotos y videos. La direccin es www.fing.edu.uy/~pgconrob
Pgina 49 de 77
Captulo
9 Conclusiones
9.1 Conclusiones Generales
Se dise un modelo de robot flexible y extensible segn los objetivos planteados. Se construy un robot como implementacin del modelo propuesto manteniendo el bajo costo. El proyecto ha quedado en una situacin de buena estabilidad, el prototipo es funcional sin dejar de ser un prototipo. Se dejan documentos y recomendaciones para continuar con su evolucin. El bajo costo fue un objetivo alcanzado en la mayora de los casos, es importante tener en cuenta lo que significa la construccin a bajo costo cuando los fondos para este tipo de investigacin no son fciles de conseguir. El camino marcado habilita tanto a estudiantes como particulares a transitarlo y mejorar el proyecto a partir de las ideas de modularizacin e intercambio, procurando mdulos de an menor costo que los construidos en el actual proyecto (por ejemplo usando infrarrojo en lugar de radio frecuencia). Un mrito particular del proyecto es la prueba y validacin de que se puede construir un robot por mucho menos que lo que cuesta comprar uno obteniendo prestaciones similares. Por otro lado se debe considerar que si bien la construccin de robots a bajo costo es viable y utilizando esta premisa se lograron los objetivos propuestos, la comparacin de desempeo del prototipo implementado con robots construidos con tecnologas de punta deja al prototipo en desventaja, lo cual estaba dentro de las previsiones. De todas formas cabe destacar que permite una firme introduccin al estudio del problema, abarcando un amplio espectro de temas en lo que concierne a la Ingeniera en Computacin y la Ingeniera Electrnica. El proyecto concluye adems en apoyar la idea de cercana que tienen ciertas reas de la informtica y la electrnica, al punto de mezclarse y no quedar claro donde empieza una o termina la otra cuando se tratan algunos temas particulares como los que conciernen al mismo. Respecto del modelo de proceso elegido, un gran aporte del mismo fue permitir enfrentar un problema a la vez e integrar las soluciones al final del proyecto minimizando riegos. La aplicacin de ste modelo ayudo a resolver situaciones puntuales tempranamente, tales como la decisin de utilizar radio frecuencia en lugar de infrarrojo en la comunicacin inalmbrica, I2C en lugar de SPI para la comunicacin entre varios microcontroladores, o que al tomar decisiones respecto de la obtencin gratuita de hardware se ponderara la disponibilidad en plaza. Por otro lado, haber relajado el modelo de proceso hizo que las planificaciones de tiempos no resultaran efectivas y por lo tanto el proyecto se extendi ms all de la previsin inicial. Otra conclusin refiere a la conformacin del grupo de proyecto. Si el grupo hubiera contenido un estudiante de orientacin electrnica, varios puntos del proyecto hubiesen sido mas fciles de abarcar, alcanzando mejores circuitos en tiempos ms cortos. En lo que respecta a la propia construccin del prototipo, es importante marcar que la experiencia que brinda el desarmar equipamiento fuera de uso es de mucha utilidad a la hora de interiorizarse en componentes electrnicos como en tcnicas de montaje y soldadura.
Pgina 50 de 77
Finalmente, proyectos de grado referentes a robtica encarados por estudiantes de la carrera de Ingeniera en Computacin proponen un sendero de investigacin y desarrollo diferente a los ya tradicionales sistemas de gestin y bases de datos.
Pgina 51 de 77
Pgina 52 de 77
Captulo
10
Fira
Glosario
10
Fira (Federation of International Robot-soccer Association, Federacin de la Asociacin Internacional de Ftbol de Robot) robot soccer comenz en el ao 1995 y el primer campeonato internacional se realiz en KAIST, Daejeon, Korea en 1996. La Fira fue fundada en 1997 con la meta bsica de llevar el espritu de la ciencia y tecnologa en robtica a las generaciones de estudiantes jvenes a travs del juego ftbol de robot.
HT640
Codificador para sistemas de control remoto. Es capaz de codificar 18 bits de informacin que consiste en N bits direcciones y 18 N bits de datos [HOL1997].
HT648L
Es un circuito interfase para transmisin y recepcin RS232 que cumple con las especificaciones EIA RS-232C y V.28 [ICL1997].
JDM
Jens Dyekjr Madsen, tipo especfico de programador de microcontroladores, tambin conocido como "Hi/Lo programmer".
Microcontrolador
Un microcontrolador es un circuito integrado que contiene todos los componentes de un computador; en su memoria slo reside un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada / salida soportan la conexin de sensores y actuadores del dispositivo a controlar. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamao, suele ir incorporado en el propio dispositivo al que gobierna.
MiroSot
Micro Robot World Cup Soccer Tournament, Torneo Mundial de Ftbol de Micro Robots.
OCX
OLE Control Extension, es un programa independiente que puede ser accedido por otros programas en un ambiente Windows. Los controles OCX terminan con la extensin ocx y representan la segunda generacin en la arquitectura de controles de Microsoft (la primera es VBX, es decir controles escritos en Visual Basic).
Osciloscopio
El osciloscopio es bsicamente un dispositivo de visualizacin grfica que muestra seales elctricas variables en el tiempo. En su grfica, el eje vertical representa por ejemplo el voltaje, mientras que el eje horizontal, representa el tiempo. Con un osciloscopio se puede: Determinar directamente el perodo y el voltaje de una seal. Determinar indirectamente la frecuencia de una seal. Determinar qu parte de la seal es DC (Corriente Continua) y cul AC (Corriente Alterna). Localizar averas en un circuito.
Pgina 53 de 77
Medir la fase entre dos seales. Determinar qu parte de la seal es ruido y cmo vara este en el tiempo.
Los osciloscopios son de los instrumentos ms verstiles que existen y lo utilizan desde tcnicos de reparacin de televisores a mdicos. Un osciloscopio puede medir un gran nmero de fenmenos, provisto del transductor adecuado (un elemento que convierte una magnitud fsica en seal elctrica) ser capaz de dar el valor de una presin, ritmo cardaco, potencia de sonido, nivel de vibraciones en un coche, etc. Por ltimo, los equipos electrnicos se dividen en dos tipos: Analgicos y Digitales. Los primeros trabajan con variables continuas mientras que los segundos lo hacen con variables discretas.
PIC
Segn la empresa General Instruments (creadora del primer chip llamado PIC1650), la sigla significa Programmable Intelligent Computer (computador programable inteligente). Por otro lado, cuando se cre el 16C54, se concibi como un perifrico para el microprocesador CP1600, por esta razn muchas personas piensan que PIC significa Peripherical Interface Controller (control de interfase perifrica). Sin embargo la empresa Microchip nunca us el nombre PIC como una abreviacin, sino como un nombre propio.
Protoboard
El protoboard o tableta experimental, es una herramienta que permite interconectar elementos electrnicos, ya sean resistencias, capacidades, LEDs, microcontroladores, etc, sin la necesidad de soldar las componentes. El protoboard est lleno de orificios metalizados (con contactos de presin) en los cuales se insertan las componentes del circuito a ensamblar.
Resistencia pull-up
Receptor de radio frecuencia con modulacin por amplitud operando a una frecuencia entre 300 433 MHz con una sensibilidad de 3uVrms [REY2001].
SDA
Transmisor de radio frecuencia con modulacin por amplitud operando a una frecuencia de 315 MHz con una potencia de 8mW [REY2001].
TTL
La lgica transistor-transistor (TTL) es una de las tecnologas de circuitos integrados ms extendidas. En la lgica transistor-transistor, las seales de entrada se aplican directamente a los terminales de los transistores. Las caractersticas de la tecnologa utilizada, en la familia TTL, condiciona los parmetros que se describen en sus hojas de caractersticas segn el fabricante. Su tensin de alimentacin caracterstica se halla comprendida entre los 4.75 V y los 5.25 V; como se ve un rango muy estrecho, debido a esto, los niveles lgicos vienen definidos por el rango de tensin comprendida entre 0.2 V y 0.8 V para el estado Low (0 binario) y los 2.4 V y Vcc para el estado High (1 binario). La velocidad de transmisin entre los estados lgicos es su mejor ventaja, ciertamente esta caracterstica le hace aumentar su consumo siendo su mayor enemigo, motivo por el cual
Pgina 54 de 77
han aparecido diferentes versiones de TTL como FAST, SL, S, etc y ltimamente los TTL: HC, HCT y HCTLS. En algunos casos puede alcanzar poco ms de los 250Mhz.
UART
Unshielded Twisted Pair, Par Trenzado sin Malla o Proteccin, es un tipo de cable popular que consiste en 4 pares de dos cables sin malla enroscados en s mismo. Debido a su bajo costo, el cable UTP est siendo usado extensamente en redes de rea local y conexiones telefnicas.
Pgina 55 de 77
Captulo
11 Bibliografa y Referencias
[MID2004] [IMP1998]
11
[KUP2001] [MMP2003] [MIC2004] [HOJ1999A] [HOJ2001B] [MAN2004] [FIN2004] [MEL2004] [PAR2004] [MSE2004] [K-T2004] [LEG2004] [REN2004] [PAP1999] [SCH1997] [ANG2000] [TAN1996] [AND1997] [HEY1996]
PICmicro MID-RANGE MCU FAMILY.pdf (se encuentra en la pgina de Microchip). Implementacin de un sistema de desarrollo utilizando los microcontroladores PIC, Universidad de Guadalajara,1998 . Manuel Fernando Campos Cerda Ramiro Castaeda Prez Arturo Csar Contreras Torres Lessons In Electric Circuits Volume I DC (Cuarta edicin), Tony R. Kuphaldt, Agosto 2001 Manual de MicroContoladores PIC. Diseado para los amigos de Picislatina. Documento facilitado por el instructor del curso: MicroControladores PIC 2003. http://www.microchip.com pgina oficial de MicroChip. Confirmada la existencia de la pgina al 30/05/2004 Hoja de datos del microcontrolador 16F628. Microchip PIC16F87XA Hoja de Datos 28/40-pin Enhanced FLASH Microcontrollers, Microchip Technology Inc (2001) Manual de PICC Lite. http://www.fing.edu.uy/~pgconrob pgina del proyecto de grado Construccin de robots a bajo costo. micro-bot (de Reynolds) http://www.melabs.com/products/renbot.htm Confirmada la existencia de la pgina al 30/05/2004 robots y videos de Parallax inc. http://www.parallax.com/html_pages/robotics/index.asp Confirmada la existencia de la pgina al 30/05/2004 Picbot de microsystems engineering. http://www.msebilbao.com/tienda/default.php Confirmada la existencia de la pgina al 30/05/2004 Robot Khepera. http://www.k-team.com Confirmada la existencia de la pgina al 30/05/2004 Pgina de Lego, cybermaster y mindstorm. http://www.lego.com/eng Confirmada la existencia de la pgina al 30/05/2004 Pgina de Rentron. http://www.rentron.com Confirmada la existencia de la pgina al 30/05/2004 Chris H. Pappas, William H. Murray, Visual C++ 6.0 Manual de referencia, 1a. edicin, McGraw Hill, 1999. Herbert Schildt, Borland C++ Manual de referencia, 1a. edicin, McGraw Hill, 1997. Jos M. Angulo Usategui, Susana Romero Yesa, Ignacio Angulo Martinez, Microbtica, 1a. Edicin, Paraninfo 2000. Andrew S. Tanenbaum, Sistemas Operativos Distribuidos, 1a. edicin, Prentice Hall 1996. Mark Andrews, Aprenda Visual C++ ya, 1a. edicin, McGraw Hill, 1997. Mark Steven Heyman, La esencia de Visual Basic 4, 1a. edicin, Prentice
Pgina 56 de 77
[CEB1997] [TAN1997] [HOL2004] [ICL1997] [HOL1999] [REY2001] [HOL1997] [ULN2003] [L781997] [UML2001] [FIR2004] [PGV2004] [PGF2004] [LM2004A] [LM2004B] [LM2004C] [LM2004D] [LM2004E] [LM2004F] [LM2004G]
Hall, 1996. Francisco Javier Ceballos, Enciclopedia de Visual Basic 4, 1a. edicin, 1997. Andrew S. Tanenbaum, Redes de Computadoras, 3ra. edicin, Prentice Hall, 1997. PAGINA DE HOLTEC ICL232 +5V Powered, Dual RS-232 Transmitter/Receiver, Intersil Corporation (1997) HOLTEC 318 Series of Encoders Data Sheet, Holtek Semiconductor Inc (1999) TWS-434 TRANSMITTER RWS-434 RECEIVER, Reynolds Electronics (2001) HOLTEC 318 Series of Decoders Data Sheet, Holtek Semiconductor Inc (1997) ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A HIGH-VOLTAGE HIGH-CURRENT DARLINGTON TRANSISTOR ARRAY, Texas Instruments Incorporated (2003) L7800 Series Positive Voltage Regulator SGS THOMSON MICROELETRONICS (1997) OMG-Unified Modeling Language, v1.4 Setiembre 2001 http://www.fira.net Federation of International Robot-soccer Association. Confirmada la existencia de la pgina al 05/06/2004 http://www.fing.edu.uy/~pgvisrob, Proyecto de Grado Visin de Robots, Facultad de Ingeniera. Universidad de la Repblica Oriental de Uruguay (2004). Confirmada la existencia de la pgina al 30/05/2004 http://www.fing.edu.uy/~pgfutrob, Proyecto de Grado Ftbol de Robots, Facultad de Ingeniera. Universidad de la Repblica Oriental de Uruguay (2004). Confirmada la existencia de la pgina al 30/05/2004 Motores y Sensores en Robtica. Documentacin asociada al proyecto, descripcin de funcionamiento de motores y sensores. Santiago Margni Germn Lpez (2004) Comunicacin. Documentacin asociada al proyecto, descripcin de formas de comunicacin. Santiago Margni Germn Lpez (2004) Funcionamiento de microcontroladores. Documentacin asociada al proyecto, descripcin de funcionamiento de microcontroladores PIC. Germn Lpez - Santiago Margni (2004) Movimiento de motores. Documentacin asociada al proyecto, descripcin cronolgica del anlisis y diseo del mdulo MOTOR. Germn Lpez Santiago Margni (2004) Protocolos de comunicacin. Documentacin asociada al proyecto, descripcin cronolgica del anlisis y diseo de los protocolos utilizados. Germn Lpez - Santiago Margni (2004) Funcionamiento. Documentacin asociada al proyecto, descripcin cronolgica del funcionamiento de cada mdulo. Germn Lpez - Santiago Margni (2004) Programacin de microcontroladores. Documentacin asociada al proyecto, resea de puntos importantes en la programacin de microcontroladores PIC. Germn Lpez - Santiago Margni (2004)
Pgina 57 de 77
Apndice
I. Protocolos de Comunicacin
I.1 Formato del Mensaje
3 bits Id. Destino 5 bits Tipo de Mensaje 8 bits Dato 3 bits Id. Mdulo
I
5 bits CRC
Id. Mdulo El identificador de Mdulo es la direccin en el bus I 2C del mdulo al que se le est enviando el mensaje. Esta forma de direccionamiento baja el acoplamiento de los dems mdulos con el mdulo COMM, sin importar de qu mdulo se trate y permite agregar o quitar mdulos en una Unidad sin hacer cambios en el mdulo COMM. El campo tiene 3 bits de largo. Acepta valores entre 0 y 7. Id. Destino Identificacin nica de la Unidad. El campo tiene 3 bits de largo. Los valores aceptados son de 0 a 7, se deja el 0 para broadcast, es decir todas las Unidades. Tipo de Mensaje Indica de qu tipo es el mensaje. El campo tiene 5 bits de largo. Los valores que pueden ser interpretados dependen de cada mdulo (ver documento Protocolo [LM2004E]). Dato Es el dato asociado al Tipo de Mensaje. El campo tiene 8 bits de largo. Los valores que pueden ser interpretados dependen de cada mdulo (ver documento Protocolo [LM2004E]). CRC El Cdigo de Redundancia Cclica que se usa es generado por el polinomio: x5 + x4 + x + 1 Tiene las siguientes caractersticas: El resultado de los clculos de CRC ocupan 5 bits. Detecta rfagas de errores de hasta 5 errores de largo, a consecuencia del item anterior. Detecta cantidad impar de errores, dado que (x+1) es factor del polinomio generador en aritmtica polinmica. Detecta errores simples, porque tiene ms de un trmino. Detecta errores dobles, dado que el polinomio generador no es divisor de x K + 1 para K<=24.
Pgina 58 de 77
I.2
En esta seccin se describe la comunicacin entre el programa que corre en el PC (mdulo PC ) y el mdulo ER. Esta comunicacin es va la funcionalidad integrada USART del PIC, implementada en hardware. Permite una comunicacin serial con otro dispositivo de las mismas caractersticas. En caso del proyecto se lo comunic con el puerto serial del PC en modo asincrnico a travs del mdulo UART del mismo. Para realizar la comunicacin inicialmente solo se utilizaron las lneas Tx y Rx de ambos, pero luego fue evidente la necesidad de sincronizar de alguna manera los dos elementos de la comunicacin, teniendo en cuenta que el PC tiene una velocidad de reloj mucho mayor que el PIC y que tiene adems un buffer, no presente en el microcontrolador.
I.2.1
Sincronizacin
Se comprob que el PC cuenta con un buffer suficientemente grande como para que un PIC enve bytes sin saturarlo, tambin se observ que un PIC solo tiene un byte de buffer, y esto depende de cmo se use. Dado que un mensaje tiene 3 bytes, el buffer del PIC no alcanza para un mensaje. Por lo que fue necesario detener el envo de bytes del PC de modo que sea el PIC quien regule la transmisin de datos. El problema es que si bien el PIC implementa el intercambio de informacin por USART no provee de ningn protocolo de sincronizacin en forma nativa. Se encontr que existe un protocolo RTS/CTS basado en las lneas del puerto SERIE Request to Send y Clear to Send que hace el trabajo. Lo que no se encontr fue una especificacin de cmo funciona. As que se gener una solucin de sincronizacin a partir de estas lneas. Se cont con los siguientes recursos para realizar la sincronizacin: Una forma de levantar (1 binario) la lnea RTS desde el PC. Una forma de monitorear la lnea CTS desde el PC. Dos pines del PIC para realizar la misma tarea desde el microcontrolador. Conocimiento de la distribucin de los pines en los conectores seriales. Protocolo de Sincronizacin El protocolo implementado para el proyecto sincroniza el PIC y el PC haciendo que el hilo de ejecucin del PC se detenga 2 veces antes de enviar cada byte y el PIC lo pueda controlar levantando y bajando una lnea (CTS). PC RTS = 1 Mientras (CTS=0) Nada RTS = 0 Mientras (CTS=1) Nada RTS = 1 Envio() ... PIC CTS = 1 Mientras (RTS=1) Nada CTS = 0 Recibo() ...
Es de hacer notar que la funcin Recibido() del PIC es bloqueante mientras que la funcin Envio() del PC no lo es.
Pgina 59 de 77
I.2.2
Bloqueo Mutuo
Un problema a considerar es el bloqueo mutuo. Cuando el PC manda 3 bytes al mdulo ER va USART, ste los recibe, los guarda y los enva al mdulo COMM de la unidad va RF, el COMM recibe, guarda, analiza y enva lo que corresponda a la direccin indicada en el mensaje va I2C, espera respuesta y hace todo el camino a la inversa. De todo este camino quien tiene ACK y no ACK nativo es el protocolo I 2C, por lo tanto las conversaciones evitan el bloquearse en funcin de la llegada de uno u otro. Pero tanto el USART como el RF no tienen formas nativas que puedan ayudar en el bloqueo. Si bien el USART es mucho ms confiable que el RF, una desconexin del cable tanto como interferencia pueden sacar de sincrona dos de los puntos de la comunicacin y stos no la recuperarn hasta que se reinicien. Es decir, se pueden perder bytes y al dejar fuera de sincrona el canal de comunicacin que se establece entre los mdulos, ste queda inutilizable. Una vez planteado el problema, una solucin es poner timers, la gestin de timers es algo que los microcontroladores hacen muy bien y prestan facilidades para ello. La gestin inicial de timers es la siguiente: En el mdulo COMM, luego de recibido un byte se inicia un timer para que cuando de overflow, se vuelva al estado inicial de recepcin de mensajes (esperar el primer byte). Si llegan los 3 bytes antes del overflow del timer ste se apaga. En el mdulo ER, se inicia un timer luego de recibir el primer byte y si no se completan los 3 bytes vuelve al estado inicial. Si llegan los 3 bytes, se envan por RF y se inicia un timer, si toda la respuesta no llega antes de que el timer de overflow se contesta por USART al mdulo PC con un mensaje de error (ERROR_RF). En el PC el manejo de los timers es ms problemtico, dado que ocurren solo 18 interrupciones de timer por segundo, es decir cada 55 milisegundos. No es posible poner eventos de timer con mas precisin que sta. Por otro lado si la comunicacin USART fall, el problema no debe ser menor, dado que esta forma de comunicacin es sumamente confiable. Esto vuelve a dar sentido a que un timeout de 55 milisegundos de largo sea til.
I.3
Esta seccin documenta el protocolo de intercambio de mensajes dentro de una Unidad. El mdulo COMM recibe un mensaje del exterior, debe hacer llegar la orden o solicitud, proveniente de la carga til de dicho mensaje, al mdulo adecuado y luego (dependiendo del estado del COMM), debe solicitar informacin al mdulo que tenga configurado para incluirla en su respuesta al exterior.
I.3.1
Cuando el mdulo COMM recibe un mensaje, es decir recibe 3 bytes por RF dentro de un timeout preestablecido, lo primero que hace es identificar las partes del mensaje, verifica que el mensaje sea para la Unidad a la que el COMM pertenece (la identificacin de la Unidad est seteada en el hardware de este mdulo, se recoge de un grupo de jumpers cuando se inicia el microcontrolador). Si no es para la Unidad descarta el mensaje y vuelve a escuchar. Si el mensaje es para esta Unidad, verifica el CRC. Si el CRC falla descarta el mensaje y vuelve a escuchar. Luego de las verificaciones se determina si el mensaje es para el mdulo COMM o para otro mdulo de la Unidad. Si es para el COMM se procesa segn el tipo de mensaje. Si no es para este mdulo entonces se pone en el bus I 2C la direccin de mdulo que vino en el
Pgina 60 de 77
mensaje en modo TRANSMISIN. Luego de recibido el ACK, se pone en el primer byte a enviar por I2C el tipo del mensaje, luego del ACK se pone el dato del mensaje. Si el COMM tiene configurado que debe pedir respuesta a un mdulo particular, entonces pondr en el bus I2C una direccin en modo RECEPCIN (el COMM mantiene una direccin a la que pedir respuestas en cada mensaje y si es que debe hacerlo), si hay ACK espera por el envo del primer byte (en el que viene el tipo de la respuesta) y enva ACK, luego viene el segundo byte que contiene el dato de la respuesta y se enva un ACK final. Si el COMM no tiene seteado una direccin para solicitar respuesta no lo hace y no devuelve informacin por piggybacking en la respuesta que arma para el mdulo ER. Si por alguna razn falla el I2C, se arma un mensaje de error indicando en qu situacin hubo error. Con los datos que ha recibido el COMM (o las indicaciones de error) est en condiciones de armar una respuesta al mdulo ER. Arma esta respuesta, calcula el CRC y enva los 3 bytes del mensaje de respuesta va RF.
I.3.2
Transmisin del MASTER El mdulo COMM debe hacer de interfase entre los mensajes que llegan por radio frecuencia y el mdulo destino dentro de la Unidad, por lo tanto es su responsabilidad desarmar el mensaje que recibe, y redireccionar la carga til del mensaje al mdulo adecuado a travs del bus I2C, del que cumple el rol de MASTER. Para esto debe enviar 3 bytes por el bus I2C.
4 bits 0000 3 bits dir I2C 1 bit
modo
En la Figura 22 se describe el primer byte que se debe enviar para iniciar una transmisin I2C, el byte est integrado por la direccin del mdulo al que se le enva el mensaje en los 7 bits ms significativos, y en el bit menos significativo se indica el modo, en este caso para TRANSMISIN del master se escribe un 0. La direccin del mdulo es obtenida por el mdulo COMM al desarmar el mensaje recibido del mdulo ER. Luego de que el mdulo COMM, ha recibido el ACK de la direccin, est habilitado para enviar el resto de la transmisin, esto significa enviar 2 bytes segn se indica en la Figura 23.
3 bits 000 5 bits Tipo de Mensaje 8 bits Dato
El segundo byte de la transmisin I2C del COMM contiene el tipo del mensaje en los 5 bits menos significativos, mientras que el tercer byte contiene el dato del mensaje.
Pgina 61 de 77
Transmisin del Esclavo Cuando el mdulo COMM requiere datos de otro mdulo de la Unidad para integrarlos a una respuesta que se enviar al mdulo ER, los solicita va el bus I 2C. Para esto se debe enviar por el bus, un byte como el descrito en la Figura 22, en este caso, el modo ser 1, para indicar RECEPCIN del master. La direccin del mdulo del que se deben solicitar datos es mantenida por el mdulo COMM y se puede actualizar, en tiempo de ejecucin, a travs de mensajes a dicho mdulo. El mdulo esclavo cuya direccin fue enviada por el bus es capaz de reconocerla y cuando esto sucede responde un ACK. El acknowledge es recibido por el master que comienza a escuchar el bus hasta recibir 2 bytes. El primer byte que el esclavo enva contiene en los 5 bits menos significativos, el tipo de mensaje, que el COMM integrar a su respuesta al mdulo ER. Mientras que el segundo byte contiene el dato para el mismo fin.
I.3.3
Para que un nuevo mdulo integre una unidad debe tener las siguientes caractersticas respecto de la comunicacin I2C: Debe tener un controlador que implemente comunicacin a travs de un bus I2C. Tiene que estar seteado en modo SLAVE. Tiene que tener seteada una direccin que no est siendo utilizada en otro mdulo. La direccin tiene que ser un nmero par entre 2 y 14 (para la actual implementacin), y desde fuera del sistema el mdulo se identificar como su direccin dividido 2. Cuando recibe una direccin en modo TRANSMISIN, debe recibir del master 2 bytes de modo de generar los ACK correspondientes. Cuando recibe una direccin en modo RECEPCIN, debe enviarle al master 2 bytes que sern integrados a un mensaje para el mdulo ER. Debe respetar la forma de mensaje dispuesta en la seccin Formato del mensaje para I2C.
Pgina 62 de 77
Apndice
II
Durante la programacin de los mdulos se fueron usando y creando bibliotecas, en general se parti de bibliotecas hechas que se obtuvieron junto con el compilador de C, y luego se fueron adaptando a las necesidades de los programas. Es importante tener en cuenta que en muchos casos fue necesario relegar los conceptos de encapsulacin que la buena programacin procura debido a la necesidad de eficiencia y de obtener cdigos cortos. Se irn describiendo situaciones en las que se podra mejorar el cdigo utilizando funciones o procedimientos y esto no se hizo por alguna razn marcada, en general las funcionalidades se dejaron en el programa principal o en funciones locales. Delay.h Esta es la nica biblioteca de Hi Tech [MAN2004] que sobrevivi casi tal como fue hallada (solo se cambi la definicin de la frecuencia de funcionamiento del microcontrolador). Se utiliza para esperar tiempos, por ejemplo en casos en que se debe tener un LED indicador prendido. Luego de revisarla, no se consider una biblioteca que gestiona tiempos con mucha precisin debido a como est programada, se basa en contar instrucciones C para determinar tiempos, sin embargo es til cuando se deben esperar tiempos aproximados, no crticos. Al programar en Assembler se puede llevar un control estricto de cuntas instrucciones se ejecutan y dado que el tiempo de ejecucin de una instruccin es conocido se pueden determinar tiempos con tanta precisin como permita el reloj del PIC, pero cuando el conteo se basa en instrucciones C, no est claro qu hace el PICC Lite [MAN2004] al compilar estas instrucciones y por ende cunto demoran; en principio se pudo constatar que compilando con distintos grados de optimizacin, la biblioteca provoca demoras distintas. I2C.h En el paquete de software de Hi Tech est incluida una biblioteca I2C.h, la biblioteca implementa el bus I2C en base a 2 pines cualesquiera del microcontrolador y gestiona el protocolo a nivel de capa 1, levanta y baja los pines creando de esta forma las condiciones de START, STOP y el envo serial de los datos. No utiliza las funcionalidades incorporadas de los microcontroladores an cuando se trate de un microcontrolador que tenga implementado en hardware la gestin del bus I2C. Esto pudo ser una solucin cuando se usaba el PIC 16F628 que no incorpora funcionalidades para la gestin de I2C. Sin embargo existe un detalle que cuestiona la estabilidad de esta solucin, usa la biblioteca delay.h. Segn se coment en la seccin anterior, la consecuencia directa de estos detalles es la poca confianza en el funcionamiento del I2C implementado de esta forma. No significa que no funcione, el problema es que ante cualquier falla siempre estar la idea de que el error puede estar en los tiempos, sobre todo cuando son tiempos pequeos como por ejemplo el tiempo en que se forma una condicin de START. Como consecuencia de los posibles problemas antes mencionados, se implement una nueva biblioteca I2C.h que aprovecha las funcionalidades incorporadas de los PIC que tienen el mdulo MSSP, esta es la biblioteca que se utiliz para la comunicacin I 2C. Las
Pgina 63 de 77
rutinas escritas son bloqueantes y devuelven el control cuando se produce la interrupcin asociada a la accin solicitada. No tienen timeout, el control de errores se hace basado en el intercambio de ACK. USART.h Esta biblioteca solo tiene la inicializacin del mdulo y una funcin para enviar mensajes. La justificacin para una rutina tan escueta son los timeout y la rutina de interrupcin de los microcontroladores. Se utilizan varias lneas de comunicacin serial, la lnea de transmisin Tx, recepcin Rx, RTS y CTS; subiendo y bajando estas ltimas para armar el protocolo de sincronizacin (ver documento Protocolos de comunicacin [LM2004E]), adems de las funciones incorporadas del PIC para enviar y recibir. En principio parece razonable encapsular todas estas funcionalidades en una biblioteca, sin embargo son necesarios controles de tiempo para defender al microcontrolador de complicaciones en el cable o de un programa con el protocolo mal implementado del lado del mdulo PC. Si un programa en el PC no cumple correctamente con el protocolo de sincronizacin o con la cantidad de bytes que debe enviar (o se pierde alguno) el programa en el microcontrolador no debera quedarse esperando para siempre, una forma de evitar estas situaciones es incluir un timer y timeouts en las rutinas de envo, recepcin y sincronizacin. Para esto se debe programar adems la nica rutina de interrupcin del PIC. Hacer una biblioteca que deba apoderarse de un timer cuyo overflow est atrapado por una rutina de interrupcin, que no puede ser parte de una biblioteca externa, hace que la transparencia en el uso de propia biblioteca se pierda cuestionando su razn de ser. La justificacin anterior no significa que no existe una manera de armar una biblioteca para la comunicacin USART con funciones bloqueantes y timeouts que tenga una forma razonable. Sin embargo, ante la posibilidad de complicar innecesariamente el cdigo se dej la funcionalidad en el programa principal. CRC.h La biblioteca tiene una sola funcin que calcula el cdigo de redundancia cclica en cinco bits con 3 bytes de entrada.
Pgina 64 de 77
Seudo del funcionamiento del mdulo Mensaje() { Controla_parmetros() Si (error) return Error. Calcula_CRC() Reune_datos_en_3_bytes() Enviar_Mensaje() Si (error) return Error. Recibir_Mensaje() Si (error) return Error. Chequea_CRC_de_mensaje() Si (error) return Error. return OK } Algoritmo 1 Envo y recepcin de mensajes por UART.
Enviar_Mensaje() { Recibir_Mensaje() { Setea el timer. Setea el timer. Uart_Sincroniza_y_envia_byte1() Uart_recibe_byte1() Si (error o time out) Si (error o time out) return Error. return Error. Uart_Sincroniza_y_envia_byte2() Uart_recibe_byte2() Si (error o time out) Si (error o time out) return Error. return Error. Uart_Sincroniza_y_envia_byte3() Uart_recibe_byte3() Si (error o time out) Si (error o time out) return Error. Return Error. return OK } return OK } Algoritmo 2 Envo y recepcin de tres bytes por UART.
Pgina 65 de 77
Mdulo ER Incluye: delay.h, delay.c, usart.h, usart.c, ER.c. El mdulo ER es el encargado de hacer de puente entre el PC y el emisor de radio frecuencia, recibiendo mensajes por USART (puerto serial) y envindolos al COMM va RF, luego recibe del COMM va RF mensajes y los pasa al mdulo ER va USART.
Seudo del funcionamiento del mdulo Inicializa_Usart(9600,8) Mientras (true){ // RECEPCIN USART. Usart_Sinc_recibe_3_bytes() Si (error) Continue; // TRANSMISION RF. RF_trans_3_byte() // RECEPCIN RF Inicio_timer() RF_recep_3_bytes() Si (timeout) Arma_Resp_Error_Usart() // TRANSMISIN USART Usart_envia_3_byte() Si (timeout) Continue Fin timer() } Algoritmo 3 Seudo del mdulo ER.
Pgina 66 de 77
Mdulo COMM Incluye:delay.h, delay.c, i2C.h, i2C.c, crc.h, crc.c, COMM.c El mdulo COMM es el encargado de hacer de interfase entre un emisor de radio frecuencia y los diferentes mdulos de una unidad; recibe del mdulo ER va RF un mensaje, chequea su correctitud y lo pone en el bus I2C. Recibe respuestas del I2C (si debe hacerlo) y responde al ER va RF.
Seudo del funcionamiento del mdulo dirCOMM = Get_Id_Unidad() Inicializa_i2C() Mientras (true){ // RECEPCIN POR RF. RF_recepcin_byte_1() IniciarTimer() RF_recepcin_bytes_2_3() Si (timeout) Continue ApagarTimer() // PROCESA MENSAJE Controla_unidad_y_CRC() Si (error) Continue Si (dirMensaje()==dirCOMM) Procesa_msj_COMM() Sino { Trans_Master_i2C() Si (error_i2C){ Arma_resp_err_RF() RF_trans_3_bytes() Continue } Si (con_respuesta){ Recep_Master_i2C() Si (error_i2C){ Arma_resp_err_RF() RF_trans_3_bytes() Continue } } Arma_respuesta() RF_trans_3_bytes() } } Algoritmo 4 Seudo del mdulo COMM.
En la rutina de interrupcin se mantiene el control del timer para timeouts. Mdulo MOTOR Incluye: delay.h, delay.c, i2c.h, i2c.c, MOTOR.c. El mdulo MOTOR es el encargado de mantener los motores en funcionamiento, generar las aceleraciones y desaceleraciones que correspondan. Recibe mensajes por I 2C. Los mensajes se gestionan en la rutina de interrupcin, la rutina adems controla el timer1, cuando ste interrumpe se setea una variable global que permite el avance de la ejecucin en el programa principal.
Pgina 67 de 77
Seudo del funcionamiento del mdulo Mientras (true){ //bloqueo hasta 1 INS Mientras(not INS) Continue // Control de velocidad CtrlYDoyPaso() // Control de aceleracion CtrlYActVel() } Algoritmo 5 Seudo Principal del mdulo MOTOR.
CtrlYDoyPaso() { TiempoPaso-Si (TiempoPaso==0){ TiempoPaso=VelActual Si (VelActual != VELZERO) DoyPaso() Sino Si (VelObj != VELZERO){ DirActual =DirObj; VelNueva = VelObj; } } } Algoritmo 6 Rutina de Control de velocidad. CtrlYActVel() Si (VelActual<>VelNueva) Si (TiempoAcel == 0){ VelActual=SetNuevaVel() Si (VelActual<>VelNueva) TiempoAcel=ACEL } Sino TiempoAcel-SetNuevaVel() Si (VelActual>VelNueva) VelActual-Sino VelActual++ Algoritmo 7 Rutina de Control de aceleracin.
En la rutina de interrupcin se controlan tanto los timers para desbloquear el principal como la gestin de la comunicacin I2C para actualizar valores de velObj y dirObj o cumplir con las rdenes que indiquen los mensajes. Mdulo SENSOR Incluye: delay.h, delay.c, i2c.h, i2c.c, SENSOR.c. El mdulo SENSOR es el encargado de mantener y administrar la informacin recabada por los sensores de la unidad, recibe peticiones de informacin por intermedio de un bus I2C en el que es esclavo. La rutina de interrupcin gestiona la recepcin de mensajes y envo de respuestas por I2C, las respuestas son generadas en el programa principal.
Pgina 68 de 77
Seudo del funcionamiento del mdulo Mientras (true){ Si (modo==ROUND_ROBIN) Rta = Leer_sensor(N) N++ Sino Rta= Leer_sensor(TODOS) Arma_respuesta(Rta) } Algoritmo 8 Seudo del mdulo SENSOR.
En la rutina de interrupcin se controla la gestin de la comunicacin I 2C para cumplir con las rdenes que indiquen los mensajes. Seudo Cdigo del CRC El seudo cdigo del algoritmo usado para calcular el CRC es el siguiente:
CRC = 00000 Msg = Data2 concat Data1 concat Data0 QuedanBits = 24 Generador = 00110011 Mientras (QuedanBits > 0){ QuedanBits -CRC = shiftLeft( CRC ) Carry = Status(0) CRC(0) = Msg(QuedanBits) Si (Carry == 1) CRC = CRC XOR Generador } Algoritmo 9 Seudo del algoritmo de clculo del CRC.
En la variable CRC se encuentra el resultado del clculo. Si se insertaron 5 0s al final del mensaje, el CRC calculado es la redundancia que debe suplantar los 0s agregados. Si fue una comprobacin, entonces el CRC debe dar 0 para que el mensaje sea aceptado como correcto.
Todas las herramientas de Microchip que integran la IDE por defecto son sin costo. Versin de C: HI-TECH PICC Lite Compiler v8.02 Suit_HITEC16 v1.22.3.1 (pluggin para MPLab). Descripcin: Compilador de C de la empresa Hi Tech y pluggin para el MPLAB. Programador de PICs: Ic-Prog versin 1.05A de Bonny Gijzen. Descripcin: Aplicacin que descarga el programa ensamblado en un PIC. Es de libre distribucin, siendo compatible con Ms. Windows 98, XP, NT o 2000. Utiliza un puerto SERIE del PC y puede programar tanto microcontroladores como memorias EEPROM. Calculador de resistencias por colores: Cod_col_res de El Fabuloso Doctor Software. Descripcin: Aplicacin que recibe colores de resistencias y devuelve su valor. Calculador de loops de espera para assembler: Picloops versin 2.1 de William J. Boucher. Descripcin: Aplicacin que recibe tiempos y devuelve cdigo assembler para generar loops que demoran tanto como el tiempo solicitado. IDE y compilador de Visual C++: Visual C++ versin 6.0 de Microsoft. IDE y compilador de Visual Basic: Visual Basic 6.0.8169 de Microsoft.
Pgina 70 de 77
Apndice
III.
III.1.1
Circuitos y Materiales
Diseo del Circuito del mdulo ER
III
III.1 Mdulo ER
Pgina 71 de 77
III.1.2
Cant. 2 2 1 4 1 5 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1
Pgina 72 de 77
III.2.2
Cant. 3 3 1 1 1 1 1 1 1 1 3 1
Pgina 73 de 77
III.3.2
Cant. 2 1 4 2 3 3 1 1 1 1 1 1 2 2 3 1 1 1
Pgina 74 de 77
III.4.2
Cant. 2 1 4 8 3 1 1 2 1 1 1 1
Pgina 75 de 77
III.5.2
Cant. 2 1 4 5 3 1 1 1 6 1
Pgina 76 de 77
III.6.2
Cant. 4 1 1 2 1 1 2 1 1 2 1 1
Pgina 77 de 77