Está en la página 1de 77

Proyecto de Grado

Construccin de Robots a Bajo Costo

PercyD Escobar
http://www.fing.edu.uy/~pgconrob pgconrob@fing.edu.uy

Tutores Ing. Gonzalo Tejera. Ing. Carlos Martinez.

Universidad Privada Santa Cruz Facultad de Ingeniera

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Proyecto de Grado 2011

Pgina 2 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

1.1 Trabajos Relacionados


El trabajo se enmarca en un proyecto de mayor porte compuesto por ste y otros dos trabajos referentes a Visin (anlisis de imgenes) [PGV2004] y comportamiento (simulacin de ftbol de robots) [PGF2004], con el objetivo general de crear un cuadro de ftbol para competir en un campeonato mundial de FIRA.

Pgina 10 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

1.2 Gua de Captulos


En el captulo 2 se presentan los objetivos generales y el alcance del proyecto. El captulo 3 resume la investigacin del estado del arte en construccin de robots a bajo costo y temas relacionados que se consideraron necesarios como: motores, sensores, microcontroladores, formas de comunicacin, bateras y en particular, materiales reutilizables. De esta investigacin se desprenden varias decisiones que se detallan en el final del captulo. En el captulo 4 se describe el anlisis y diseo del modelo de robot presentado, la arquitectura, los mdulos en los que se divide, esquemas de composicin de los mismos y justificaciones para algunas decisiones de diseo. En el captulo 5 se presentan las diferentes formas de comunicacin utilizadas en la implementacin del modelo realizada. El captulo 6 se centra en la construccin del prototipo, tratando temas como materiales, consumo elctrico, comentarios sobre la construccin de cada mdulo, mecnica ligera, la evolucin de las formas de programacin y algunas justificaciones de decisiones que tuvieron que ver con lenguajes de programacin. El captulo 7 refiere a costos de materiales, en particular qu materiales se obtuvieron sin costo, cules se reciclaron y cules se debieron comprar. En el captulo 8 se comenta sobre la pgina Web del proyecto, su utilidad y finalidades. En el captulo 9 se proponen conclusiones, extensibilidad y trabajos futuros. En el captulo 10 es encuentra el glosario. En el captulo 11 se encuentran las referencias bibliogrficas.

Pgina 11 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Captulo

2 Planteo del Proyecto


2.1 Objetivos

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

2.3 Un Proyecto de Informtica


Cuando el tema de un proyecto tiene que ver con construccin de robots, no es evidente que sea un proyecto de informtica. Sin embargo para darle sentido se debe tener en cuenta que, aunque hoy la electrnica y la informtica tienen la mayora de sus reas separadas, en los inicios de la computacin fueron una sola disciplina. Parafraseando al profesor Ing. Jorge Sotuyo, la informtica y la electrnica son dos rboles cercanos, con troncos separados, que han juntado algunas de sus ramas, y si bien hay ramas que claramente pertenecen a cada rbol, hay otras a las que no se les puede determinar la pertenencia. La experiencia muestra que es ms comn ver a los electrnicos pasarse para el lado del software que a los informticos acercarse a la electrnica, pero esta zona difusa es transitada por las dos ingenieras en muchas situaciones tales como por ejemplo decidir hacer un circuito multiplicador, utilizar un controlador con circuitos sumadores y varios ciclos de instrucciones para generar la multiplicacin a partir de sumas. Por otro lado este proyecto integra componentes netamente informticos como protocolos de comunicacin, estructuracin procedural de cdigo, el modelo de robot, el uso de compiladores, las bibliotecas generadas, etc. En definitiva, el proyecto pisa la frontera, existe un corrimiento al rbol de la electrnica en la construccin de los circuitos del robot, para cambiar al rbol informtico en el diseo del modelo y la programacin.

2.4 Resumen del Planteo del Problema


Investigar, disear y construir un robot que pueda moverse en cualquier direccin, que tenga 2 ruedas, que reciba rdenes indicando la velocidad de las ruedas, que estas rdenes le lleguen desde un PC en forma inalmbrica, y que tenga un diseo con el nfasis puesto en la flexibilidad y la extensibilidad.

Pgina 13 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Captulo

3 Estado del Arte


3.1 Investigacin

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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]

3.4 Investigacin sobre Microcontroladores


La investigacin formal de las funcionalidades que ofrece un microcontrolador se bas en el libro Microbtica [ANG2000], en varios documentos encontrados en la web [IMP1998] [MMP2003] y las hojas de datos de la empresa Microchip [HOJ1999A] [HOJ2001B]. En particular el sitio web de Microchip[MIC2004] tiene introducciones a la tecnologa de microcontroladores PIC, tutorials, programas y fundamentalmente hojas de datos de todos sus microcontroladores. Estas hojas de datos constituyen pequeos libros con informacin referente a los modelos de una familia de microcontroladores. Contienen informacin relacionada con ellos, desde los pines, las funcionalidades por pin, modos de uso, voltajes, consumo, conjunto de instrucciones en MPASM (Microchip Assembler para PICs), formas de configuracin, tipos de memoria, ciclos por instruccin, frecuencias de reloj, etc. Un microcontrolador es un circuito integrado que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una tarea establecida y debido a su reducido tamao, suele ir incorporado en el propio dispositivo al que gobierna. En su memoria slo reside un programa destinado a ejecutar una aplicacin determinada. Se pueden dividir en dos tipos: reprogramables (ideales para prototipacin) y programables por nica vez (ms econmicos y utilizados para produccin final). Entre sus muchas caractersticas tiles se encuentran: ejecutar un programa, paralelamente gestionar timers, interrupciones, buses de comunicacin como I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface) o USART (Universal Synchronous Asynchronous Receiver Transmitter), ser baratos, robustos, utilizar la norma TTL (Transistor Transistor Logic), fciles de montar e intercambiar y pueden adquirirse en casas de electrnica de Montevideo. Por ms informacin ver documento Introduccin a PICs [LM2004C].

3.5 Formas de Comunicacin


La investigacin de formas de comunicacin se bas en 3 direcciones concretas: Comunicar punto a punto 2 entidades a travs de un cable. Comunicar varias entidades a travs de un bus de comunicaciones. Comunicar 2 entidades en forma inalmbrica. La primer lnea de investigacin referente a la comunicacin entre un PC y un microcontrolador se bas en el estudio de los puertos PARALELO y SERIE del PC junto con las caractersticas propias de los microcontroladores. Dado que la funcionalidad integrada USART presente en los microcontroladores condiciona los pines a utilizar para la comunicacin y no implementa sincronizacin, se decidi separar la investigacin en dos caminos. El primero fue construir un prototipo en el cual se utilizara el mdulo USART del microcontrolador con dos pines extras para sincronizacin y el segundo, se busc implementar la comunicacin sin utilizar el mdulo USART, eligiendo libremente los pines y desarrollando las rutinas para serializar la informacin.

Pgina 15 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

3.7 Reutilizacin de Componentes e Investigacin de Mercado


En los inicios del proyecto, cuando los conocimientos en componentes electrnicos por parte del grupo del proyecto eran muy vagos, fueron desarmados varios discos duros rotos o fuera de uso, disqueteras de 3 , disqueteras de 5 , fuentes de PC quemadas, telfonos inalmbricos, controles remotos de alarmas de autos, de televisores, de portones elctricos y otros, con poca nocin en cuanto a qu partes podran aprovecharse en la etapa de la implementacin del prototipo. De todas formas, dicha experiencia brind muy buena prctica en el manejo del soldador y la cinta de desoldar, a la vez que permiti familiarizarse con los zcalos, los chips, los reguladores de voltaje, los condensadores, las resistencias, los cristales, etc. A medida que se avanz en el conocimiento de posibles componentes a utilizar en la implementacin del prototipo, comenz una bsqueda de los mismos tanto en equipos o partes en desuso como en empresas avocadas a la venta de componentes. El resultado de dicha bsqueda se detalla en los puntos 3.7.1 Reutilizacin de Componentes 0 Costo y 3.7.2 Investigacin del Mercado Local y Exterior.

Pgina 16 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

3.7.1 Reutilizacin de Componentes 0 Costo


Teniendo en cuenta la importancia de lograr el mnimo costo posible en la construccin del prototipo junto con los componentes necesarios para lograrlo, fueron confeccionadas las siguientes tablas de reutilizacin de materiales.
Equipamiento puntoImpresoras matriz de Impresoras chorro de tinta Telfono inalmbrico

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

Tabla 1 Tabla de partes reutilizables por equipamiento.

La misma se encuentra resumida y busca asistir a futuros estudiantes en la eleccin de la parte o equipamiento a desarmar.

3.7.2 Investigacin del Mercado Local y Exterior


El avance del proyecto alcanz un punto en el cual ya no era posible encontrar algunas piezas fundamentales para lograr la implementacin del prototipo, esto deriv la investigacin al estudio del mercado para obtener dichos componentes al menor costo de plaza posible.

Pgina 17 de 77

CD-ROM

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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 Resultados de la Investigacin


Del estudio realizado se desprenden varias decisiones, a continuacin se mencionan las ms significativas y sus fundamentos.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

3.8.3 Motores y Sensores


Se obtuvieron varios motores de paso de impresoras matriz de punto, motores de corriente continua, as como sensores de cierre y apertura, detectores de fin de carro y detectores de papel. La utilizacin de motores de paso qued determinada por la disponibilidad, por el mayor torque sobre los motores de corriente continua, por permitir un mayor control posicional y porque tienen un mayor espectro de usos posibles. Respecto de los sensores se utilizaron sensores de cierre por dos razones, una es que en su estado normal no consumen corriente y la segunda es que fueron fciles de conseguir.

Pgina 19 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

4.2 Plan de Arquitectura y Diseo


4.2.1 Cmo se Dise el Sistema
El sistema ha sido diseado con el aporte de los tutores y personas que han actuado de asesores en distintas etapas del mismo. Las contribuciones se canalizaron a travs de reuniones convocadas por los propios tutores con el objetivo de incorporar distintas visiones de problemas similares. El diseo tiene una fuerte influencia informtica, que es notoria en lo modular de la arquitectura y en el corrimiento hacia el software de los problemas en los casos en que fue posible. Los principios de diseo ms importantes en la definicin del sistema fueron: Composicin de mdulos con interfaces claramente definidas. Mdulos de bajo acoplamiento. Mdulos con alta cohesin. Extensibilidad y facilidad para cambiar mdulos. Electrnica simple aunque conlleve mayor complejidad en el software. Reutilizacin de materiales en la bsqueda de minimizar los costos.
Pgina 20 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

4.2.2 Diseo y Modelado


El modelo de robot o modelo del sistema fue diseado respetando los objetivos planteados, de modo de permitir comunicacin con un PC para intercambiar datos, obedecer comandos, permitir que el robot se desplace y realice tareas dando la responsabilidad de stas a un mdulo o varios que colaboren. Tomando ciertas libertades en la notacin UML [UML2001], se presenta el modelo del robot en el siguiente diagrama, basado en diagramas de componentes y diagramas de deployment.
Control de Comportamiento Unidad

<<procesador>> : PC

<<procesador>> : microcontrolador

moduloPC
<<comunicacion>> INALAMBRICA <<comunicacion>> CABLE

moduloCOMM

<<comunicacion>> BUS

<<procesador>> : microcontrolador

<<procesador>> : microcontrolador

moduloER

moduloMOTOR

<<procesador>> : microcontrolador

moduloAGREGADO

Figura 1 Modelo del Robot.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

4.2.3 Composicin y Justificaciones de Cara a la Implementacin


El sistema se compone de un Control de Comportamiento y una o varias Unidades siguiendo la idea de un equipo de ftbol de robots. El Control de Comportamiento est compuesto por una computadora y un emisor (de radio frecuencia) que permite la comunicacin con las Unidades. Las Unidades (o robots) desarrollan el comportamiento que les es indicado por el Control de Comportamiento por medio de rdenes individuales, donde se indica la velocidad de cada motor o cualquier accin sobre un mdulo agregado como por ejemplo: encuestas de los sensores, encender un ventilador, etc. Las Unidades son esclavas del Control y tienen un mnimo de inteligencia que les permite analizar los mensajes que reciben, responderlos y realizar la operacin indicada en el mensaje. Por lo tanto todo el comportamiento de la Unidad es responsabilidad del programa que interacta con el Control de Comportamiento, siendo la frontera del sistema, la biblioteca que permite que un programa externo ordene qu hacer a un robot. Desde el inicio del proyecto, la separacin entre Control de Comportamiento y Unidades es un requerimiento y a la vez una restriccin, dado que el procesamiento deber ser remoto, es decir la inteligencia nunca estar en una unidad (esto se infiere de las reglas y estructura del ftbol de robots de la categora MiroSot de FIRA). Se decidi utilizar motores de paso porque permiten un mayor control sobre la posicin y la velocidad del robot. Esta es una decisin que se tom considerando el ftbol de robots pero tambin las caractersticas de investigacin acadmica que tiene el proyecto. Utilizar motores de corriente continua hubiera servido para solucionar el problema del movimiento pero tendra menos posibilidades en la gestin de mltiples velocidades, aceleraciones y detencin en un punto establecido como se puede conseguir con un motor de paso (si bien la gestin particular de estas caractersticas no son exigidas por un jugador de ftbol de
Pgina 22 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

4.3 Arquitectura del Sistema


La Arquitectura del sistema es una implementacin del modelo, la misma est representada en la Figura 2. Se agregan los modelos de microcontrolador que intervienen, las formas de comunicacin definidas y como implementacin del moduloAGREGADO se incluye el mdulo SENSOR.

Figura 2 Arquitectura del sistema.

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.

4.4.2 Descripcin de los Mdulos para la Implementacin


El mdulo PC
Composicin

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

Figura 3 Diseo del mdulo ER.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

Figura 4 Diseo del mdulo COMM. Responsabilidad

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Figura 5 Diseo del mdulo MOTOR.

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].

Figura 6 Diseo del mdulo SENSOR.

Pgina 27 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Captulo

5 Comunicaciones
5.1 Formato del Mensaje

5
8 bits Dato 3 bits Id. Mdulo 5 bits CRC

El formato de los mensajes entre el mdulo PC y el mdulo COMM es el siguiente:


3 bits Id. Destino 5 bits Tipo de Mensaje

Figura 7 Formato del mensaje.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

5.2 El Camino de los Mensajes


El funcionamiento de una Unidad se basa en obedecer los mensajes que el Control de Comportamiento enva, siendo esta comunicacin maestro-esclavo. El Control manda un mensaje y la Unidad contesta (nunca a la inversa), utilizando un protocolo simplex de parada y espera con timeout [TAN1997]. En la Figura 8, se ejemplifica el camino de un mensaje enviado por el mdulo ER al mdulo MOTOR que tiene como respuesta informacin recabada por el mdulo SENSOR.

Control Unidad
Mdulo PC COMM radio frecuencia

3 4 5 6 3

7
usart

MOTOR

4 6 5

bus i2c

SENSOR

Mdulo ER

Figura 8 Vista colaborativa del camino de un mensaje.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

5.3 Formas de Comunicacin Utilizadas


La formas de comunicacin utilizadas en la implementacin del prototipo son: USART, I 2C y Radio Frecuencia.

5.3.1 Descripcin de las Formas de Comunicacin


El USART El USART Universal Synchronous Asynchronous Receiver Transmitter (Transmisor Receptor Sincrnico Asincrnico Universal) tambin se conoce como SCI, Serial Communications Interface (Interfase Serial de Comunicaciones). El mdulo USART de los microcontroladores PIC permite la comunicacin con otros microcontroladores, memorias EEPROM, PC, etc, utilizando tanto un modo asincrnico (full duplex) o sincrnico (master o slave, half duplex). Permite enviar 8 o 9 bits por transmisin y puede alcanzar varias velocidades (entre 1.2 y 1250 kbps [HOJ2001B]), siendo lo ms importante que, por ser una funcionalidad ya implementada en el PIC, el programador logra desentenderse de toda la complejidad del protocolo a nivel de capa 1. Existen varios protocolos relacionados con el USART como el RTS/CTS o el XON/XOFF, los PIC de gama media no los implementan, para utilizarlos hay que programarlos a nivel de capa 1, utilizando 2 pines disponibles del microcontrolador. Para la actual implementacin se establece una velocidad de 9600 bps, sin paridad, con 1 bit de stop y sin protocolo nativo. Radio Frecuencia La forma de comunicacin por radio frecuencia es casi transparente para la programacin, se utilizan los componentes TWS434 y RWS434 de Rentron [REY2001] que logran emitir y recibir ondas de radio, utilizando una portadora de alrededor de 315 Mhz. Sobre esta portadora se codifican y decodifican datos a travs de los componentes HT640 y HT648L de Holtec [HOL2004]. Para un PIC, enviar y recibir por radio frecuencia es escribir o leer de un puerto respetando el tiempo que los componentes requieren para completar la transmisin. El I2C El I2C es uno de los dos modos de funcionamiento que tiene el MSSP ( Master Synchronous Serial Port - Puerto Serial Sincrnico Maestro), mdulo que tienen integrados algunos PIC de la gama media de Microchip como el PIC16F877A que se utiliza. El otro modo es el SPI (Serial Peripheral Interface - Interfase Perifrica Serial ).
Pgina 31 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Captulo

6 Implementacin del Prototipo

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.

6.1 Consumo de Corriente


A la hora de integrar los distintos mdulos, comenzaron a surgir problemas hasta el momento no afrontados, como por ejemplo una vez que los motores comenzaban a girar, los mensajes enviados desde y hacia la unidad se perdan. Para detectar este tipo de problemas fue necesario utilizar un osciloscopio. ste mostr que los eliminadores de pilas no daban abasto con la corriente requerida, lo que implicaba una cada brusca de voltaje. La solucin radic en calcular el consumo de corriente de cada mdulo y buscar una batera cuyas caractersticas se adecuaran al mismo. A su vez fue necesario construir un circuito regulador de voltaje (ver 6.2.3 Etapa de Potencia) que permiti mantener los voltajes (10 y 5 V) lo ms constantes posible.

6.1.1 Consumo de los Motores de Paso


Dado que las siglas identificatorias de los motores de paso extrados de la impresora matriz de punto correspondan a modelos muy antiguos, no fue posible obtener las hojas de datos con las caractersticas tcnicas de dichos motores. Fue necesario, en cuanto al consumo de corriente, recurrir a un mtodo prctico [LM2004A], basado en la Ley de Ohm [KUP2001], para calcular la corriente que consume cada bobina.

Pgina 33 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

El resultado del clculo del consumo fue el siguiente:


Motor Motor 1 Bobinas 58 Motor 2 Bobinas 39 Tipo de Secuencia Normal Wave drive Normal Wave drive Consumo x Bobina (mA) 75 40 95 55 Bobinas activadas simultneamente 2 1 2 1 Consumo total (mA) 150 40 190 55

Tabla 2 Tabla de consumo de los motores de paso segn el tipo de secuencia.

Por una descripcin detallada de los tipos de secuencia referirse al documento Motores y Sensores [LM2004A].

6.1.2 Consumo de los Microcontroladores


El consumo de los microcontroladores (250 mA como mximo, en el caso de tener todos sus puertos configurados como salida con cada pin en valor alto) junto con el resto de los componentes electrnicos es casi despreciable en comparacin con el consumo de los motores paso a paso. Si bien se menciona el consumo mximo de un microcontrolador, el consumo real es mucho menor. Una vez que el prototipo fue integrado, se agreg un ampermetro para verificar prcticamente el consumo general del mismo, alcanzando valores mximos de 800 mAh al encontrarse ambos motores en movimiento y 40 mAh al estar en reposo.

6.1.3 Fuente de Alimentacin


Para la construccin del prototipo fue necesario implementar dos fuentes de alimentacin: una para el mdulo ER y otra para la Unidad. Los requerimientos de la fuente destinada a proveer de energa al mdulo ER, eran simples, ya que ste se ubica en un lugar fijo, prximo al PC, permitiendo utilizar un eliminador de pilas conectado a un toma corriente cuyo voltaje se encuentre cerca de los 7 V con aproximadamente 300 mA de carga.

Figura 9 Eliminador de Pila.

Figura 10 Batera de la Unidad.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

Figura 11 Imagen del circuito Programador de microcontroladores JDM.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

Figura 12 Imagen del circuito ER.

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.

6.2.3 Etapa de Potencia


Con la idea de independizar los circuitos que componen la unidad de la fuente de alimentacin, entendindose sta por la batera propiamente dicha, se tom la decisin de crear un circuito regulador de voltaje que dada una fuente DC, permitiera obtener 10 y 5 V en forma independiente y a su vez dejara la seal lo ms estable posible.

Pgina 36 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Figura 13 Imagen del circuito de alimentacin y el cargador de batera.

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.

6.2.4 Mdulo COMM


Para lograr intercambiar mensajes con el mdulo ER, el mdulo COMM fue construido prcticamente como espejo del primero, con la salvedad de no poseer la interfase RS232 para comunicarse con el PC. En su lugar se encuentra la forma de cableado necesaria para cumplir el rol de MASTER del bus I2C, es decir, cada lnea del bus (SCL y SDA) est conectada a una resistencia pull-up de 5 V.

Pgina 37 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Figura 14 Imagen del mdulo COMM.

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.

6.2.5 Mdulo MOTOR


La construccin del mdulo MOTOR implic la utilizacin de la lnea de voltaje de 10 V para lograr mayor potencia en los motores de paso. Ambos motores, as como el cable de conexin y conectores, fueron extrados de una impresora matriz de punto Epson LX810 en mal estado. Otros componentes integrados en este mdulo fueron dos arrays de transistores Darlington y un microcontrolador PIC16F876A. Como no fue posible obtener las hojas de datos de los motores de paso, se detallan las caractersticas tcnicas halladas: Motor de paso de 6 hilos. 24 pasos por vuelta que equivalen a 15 grados por paso. 4 bobinas por grupo, 6 grupos por motor. Resistencia de bobina del motor 1 es de 58 . Resistencia de bobina del motor 2 es de 39 .

Pgina 38 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Figura 15 Imagen del mdulo MOTOR y mdulo SENSOR.

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.

6.2.6 Mdulo SENSOR


El mdulo SENSOR fue construido con la finalidad de validar la extensibilidad del modelo a partir del agregado de un nuevo mdulo, sin la necesidad de modificar ni una lnea de cdigo de los mdulos existentes. En un principio la idea era agregar una nueva placa con el mdulo SENSOR, para demostrar tambin que no era necesario modificar el hardware existente para extender el prototipo. Pero al primar el bajo costo en la construccin del robot, se decidi utilizar la misma placa que el mdulo MOTOR. De todas formas, ste ltimo no se vio afectado en lo ms mnimo, cumplindose las expectativas en cuanto a extensibilidad antes mencionadas. En la Figura 15 sobre la esquina inferior derecha, se pueden apreciar cinco conectores de dos pines destinados a colocar sensores tanto de cierre como de apertura. En la Figura 16 se ven ambos mdulos con los motores y sensores conectados.

Pgina 39 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

6.2.7 Estructura y Mecnica Ligera


Una vez finalizada la construccin de los mdulos que integran el prototipo, se present un nuevo desafo: lograr una estructura suficientemente ligera, que pudiera albergar dichos mdulos junto con la batera, y a la que los motores de paso obtenidos fueran capaces de mover con relativa facilidad.

Pgina 40 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Figura 17 Secuencia de armado del prototipo

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.

Figura 18 Foto de perfil del prototipo.

Figura 19 Foto del sistema completo.

Pgina 41 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

6.3.2 Interface con el Exterior


La interfase del sistema con el programa externo que determina el comportamiento del robot est definida en el mdulo PC. Es un componente OCX ( OLE Control Extension) escrito en Microsoft Visual Basic 6.0, a su vez ste utiliza funciones de la biblioteca CRC.dll escrita en Microsoft Visual C++ 6.0. Inicialmente se determin usar una DLL (Dynamic Link Library) por la cantidad de lenguajes que pueden generar programas clientes de estas bibliotecas, sin embargo al construirla se detect que las mismas no pueden gestionar eventos tipo timer, necesarios para controlar tiempos en caso de que se corte la comunicacin por USART. Se determin entonces usar un componente OCX que tiene la misma programacin y agrega manejo de eventos. En el momento de elegir en qu lenguaje deba ser escrita la biblioteca, se consideraron varios aspectos: El MPLAB de Microchip (la IDE utilizada para desarrollar los programas para PIC) se instala en alguna versin de Ms. Windows. El compilador Hi Tec PICC Lite funciona en Ms. Windows 98/XP/2000 (finalmente se encontr una versin para Linux). El programador icprog, software utilizado para cargar los programas en los PIC ejecuta sobre Ms. Windows 98/XP/2000. Por detalles del software referirse a la seccin II.3 Software utilizado. No existen requisitos respecto de sistema operativo referente al desarrollo de la biblioteca o interfase con el sistema. El clculo de CRC se desarroll para assembler MPASM y luego para PICC. Durante la investigacin se encontr que Ms. Visual Basic tiene objetos con facilidades para la gestin del puerto SERIE y timers. Los componentes OCX se integran a programas en ambiente Windows. La empresa que desarroll Ms. Visual Basic 6.0 presenta la curva de aprendizaje como baja. De los puntos anteriores, se desprende que es necesario tener Ms. Windows como sistema operativo para utilizar los programas mencionados y lo propone como punto de partida. No es atractiva la idea de compilar los programas relacionados con los PIC en un sistema operativo y tener el mdulo PC en otro sistema u otro PC. La comodidad, productividad y la disponibilidad de recursos fueron condicionantes fuertes que definieron las decisiones. Por otro lado, el CRC se desarroll en los inicios del proyecto en MPASM y luego se migr a PICC. Se pretendi mantener el cdigo lo ms posible dada su estabilidad, esta fue una premisa por lo que se hizo necesario utilizar alguna versin del lenguaje C para PC. Hacer toda la interfase en un C tradicional se consider como inviable, sobre todo porque no se requiere un extremo poder de cmputo (que es donde C puede hacer la diferencia dado que los PIC son notoriamente ms lentos que un PC) y la poca amigabilidad del lenguaje podra pesar. Utilizar Ms. Visual Basic fue una opcin desde que es amigable, fcil de aprender (en los primeros pasos), interacta bien con DLL y tiene componentes predefinidos para la gestin del puerto SERIE y timers.

Pgina 43 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

7.2 Costo de una Unidad


Es difcil lograr un clculo exacto del costo total de una Unidad debido a la cantidad de elementos reciclados de componentes en desuso, donaciones recibidas de terceros y muestras gratis por parte del fabricante de los microcontroladores utilizados. Dentro de las donaciones y prstamos se puede listar: Dos ruedas de poliuretano. Dos rulemanes. Conectores Bosh.
Pgina 45 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Tabla 4 Costo de los materiales de una Unidad y el mdulo ER.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

7.3 Costo del Proyecto


El costo total del proyecto fue mayor al de la Unidad y el mdulo ER, cerca de un 20% ms, debido a las siguientes razones: Construccin de un circuito programador de microcontroladores. Rotura por mal uso de un transmisor RF. Rotura de un soldador. Adquisicin de LED, resistencias, condensadores y zcalos especficos que no se encontraron. Es importante tener en cuenta que varios de los costos extras como por ejemplo el circuito programador y el protoboard son totalmente reutilizables en proyectos futuros.

Pgina 47 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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).

Figura 20 Mapa del sitio Web.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

9.2 Conclusiones sobre la Extensibilidad


El modelo es inherentemente extensible, se pueden agregar mdulos sin cambiar nada de lo construido. En el prototipo actual, es posible tener hasta 8 mdulos, siendo esta una restriccin de la implementacin, no del modelo. Para agregar una funcionalidad que no pueda desarrollarse con los mdulos actuales, se deber agregar un mdulo. Para esto debe construirse el nuevo mdulo, programarlo, darle una direccin I2C no ocupada, y conectarlo al bus I 2C. Dependiendo del consumo del nuevo mdulo se podr usar la fuente actual de la Unidad o habr que agregarle una nueva, adems se deber agregar la programacin y mensajera en el programa de comportamiento que interacta con el mdulo PC, no siendo necesario reprogramar ninguno de los mdulos existentes. Es importante comentar que en la programacin del nuevo mdulo debe respetarse el protocolo de comunicacin I2C establecido (ver documento Protocolo [LM2004E]). Solo en los casos en que se pretenda agregar una funcionalidad de un mdulo existente, habr que reprogramar el mdulo y tal vez modificar el circuito. No siendo necesario cambiar la programacin de ningn otro mdulo. S podra ser necesario cambiar el programa externo que usa al mdulo PC, para que enve los nuevos mensajes que comandan la funcionalidad agregada, aunque dicho cambio escapara a la frontera del sistema. La extensibilidad en s misma va ms all del agregado de funcionalidades o mdulos. Manteniendo el modelo se pueden construir implementaciones variadas que resuelvan otros problemas o el mismo utilizando mdulos con idnticas funcionalidades pero ms performantes. Como ejemplo se listan 3 posibilidades: La misma implementacin presentada puede reconstruirse de modo de ser ms veloz, cambiando el mdulo MOTOR por otro que tenga motores servo, livianos, potentes y ms veloces, en este caso no se necesita cambiar ni siquiera el programa de comportamiento que usa el sistema. Adems es posible cambiar el mdulo COMM por otro que integre transmisin RF de mayor ancho de banda, con codificadores y decodificadores ms rpidos, consistentes con la velocidad de transmisin, debindose realizar el mismo cambio en el mdulo ER. Otra posibilidad es cambiar el mdulo MOTOR por uno que tenga patas en lugar de ruedas, en la medida en que el mdulo mantenga la velocidad comandada, el resto de la Unidad no se entera de que son ruedas o patas lo que la desplaza. Transformar al prototipo en un luchador de sumo. Para esto se prev un cambio en el intercambio de mensajes, la Unidad no debe responder. Se podra usar un mensaje de 5 bytes que sera escuchado por los 2 robots luchadores que estuvieran en la cancha, y cada uno debera analizar el mensaje pero quedarse con los 2 primeros o segundos bytes (esto es en funcin de optimizar el uso del ancho de banda). Adems sera necesario cambiar la forma de las ruedas, separando la transmisin de la rueda misma para evitar que en un choque lateral, una rueda pierda la banda que la une al motor. A diferencia con los anteriores planteos, estos cambios tienen poco que ver con el hardware, sin embargo avalan la posibilidad de realizar otra tarea con poco menos que algunos cambios menores en la programacin de los mdulos.

Pgina 51 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

9.3 Trabajos Futuros


Se destacan dos lneas de investigacin que surgen como posibles trabajos futuros o evoluciones del proyecto: Mejorar la implementacin a travs de la construccin de mdulos ms performantes manteniendo el modelo, logrando de esta forma conformar un equipo competitivo de jugadores de ftbol de FIRA para la categora MiroSot, integrando adems los trabajos relacionados. Aprovechar el modelo y la implementacin actual para resolver nuevas aplicaciones en las cuales puedan ser utilizadas tecnologas como agentes inteligentes, redes neuronales y aprendizaje automtico. En cuanto al hardware, se plantea a modo de ejemplo la posibilidad de agregar sensores volumtricos de alarmas para seguir objetos en movimientos, sensores infrarrojos para seguir rastros, un mouse infrarrojo o comn para determinar distancia recorrida. Por ltimo, como paso inmediato el grupo de trabajo recomienda: En lo referente a software, migrar el mdulo PC a Java sobre Linux. En cuanto a hardware, reconstruir la comunicacin por radio frecuencia, por ejemplo sustituyendo el uso de los codificadores por un microcontrolador que realizara el mismo trabajo a mayor velocidad utilizando su mdulo USART. De esta forma se lograra aprovechar el ancho de banda del par transmisor-receptor de RF.

Pgina 52 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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 el par decodificador de los HT640. [HOL1997].


I2C

Inter-Integrated Circuit, Circuito Inter-Integrado.


ICL232

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Resistencia conectada en un extremo a voltaje, por ejemplo 5 V.


RWS-434

Receptor de radio frecuencia con modulacin por amplitud operando a una frecuencia entre 300 433 MHz con una sensibilidad de 3uVrms [REY2001].
SDA

Serial Data Line, Lnea de Datos Serial.


SCL

Serial Clock Line, Lnea de Reloj Serial.


TWS-434

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Universal Asynchronous Receiver Transmitter.


USART

Universal Synchronous Asynchronous Receiver Transmitter.


ULN2003A

Array de transistores Darlington [ULN2003].


UTP

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

[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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Figura 21 Mensaje entre el mdulo PC y el mdulo COMM.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

I.2

Comunicacin entre el PC y el mdulo ER

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() ...

Tabla 5 Protocolo de sincronizacin basado en RTS/CTS

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Comunicaciones dentro de una Unidad

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

Comportamiento del COMM

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Formato del Mensaje en el bus I2C

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

Figura 22 Byte de direccin y modo de funcionamiento para I2C.

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

Figura 23 Bytes con carga til del mensaje I2C.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Extensibilidad a partir del I2C

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Apndice

II. Programacin de Microcontroladores


II.1 Bibliotecas

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

II.2 Seudocdigos de los Mdulos del Sistema


En la siguiente seccin se describen los seudocdigos de cada mdulo (ver documento Funcionamiento [LM2004F]). Mdulo PC El mdulo PC est integrado por dos bibliotecas, CRC.dll y RobotBC2.ocx. La biblioteca CRC.dll exporta una funcin para el clculo de CRC para 3 bytes. La biblioteca RobotBC2.ocx es un componente que exporta funciones para gestionar el puerto SERIE, enviar y recibir mensajes a una Unidad ms un timer para controlar que una respuesta llegue en un tiempo determinado.

Pgina 64 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

En la rutina de interrupcin se mantiene el timer para timeouts.

Pgina 66 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

II.3 Software utilizado


Se describen a continuacin los programas y versiones utilizados para la construccin del software del proyecto. Versin de MPLab: MPLAB IDE 6.30, Release v1.10 Descripcin: Es la IDE de desarrollo de los programas para PIC, integra compilador de C, ensamblador, simulador y editor. Versin de Ensamblador y herramientas: MPASM(tm) Assembler versin 3.50 MPLINK Object Linker v3.50 MPLIB Object Librarian v3.50 MP2COD COFF to COD File Converter v3.50 MP2HEX COFF to HEX File Converter v3.50 Descripcin:
Pgina 69 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Apndice

III.
III.1.1

Circuitos y Materiales
Diseo del Circuito del mdulo ER

III

III.1 Mdulo ER

Figura 24 Circuito del mdulo ER.

Pgina 71 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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

Lista de Materiales del mdulo ER


Descripcin Condensador de 22 pF Condensador de 100 uF Condensador de 0.1 uF Condensador de 1 uF Regulador de voltaje LM7805CT Resistencia de 1 KOhms Resistencia de 150 KOhms LED rojo LED (rojo, amarillo, verde) Cristal de 20 Mhz PIC16F877A Transmisor de radio frecuencia TWS-434 Receptor de radio frecuencia RWS-434 Codificador HT640 Decodificador HT648L ICL232 Conector de 2 pines Conector de RJ45 hembra Plancha universal de pertinax Antena de transmisin de 7" Antena de recepcin de 12" Tabla 6 Componentes del mdulo ER. Comp. C3, C5 C1, C2 C4 C6, C7, C8, C9 U1 R3, R4, R5, R6, R7 R1, R2, R8 LED1 LED2, LED3, LED4 XTAL2 U1 U5 U6 U3 U4 CON1 DSUB9F L1 L2

Pgina 72 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

III.2 Etapa de Potencia


III.2.1 Diseo del Circuito de la Etapa de Potencia

Figura 25 Circuito de alimentacin de la Unidad y cargador de batera.

III.2.2
Cant. 3 3 1 1 1 1 1 1 1 1 3 1

Lista de Materiales de la Etapa de Potencia


Descripcin Condensador de 100 uF / 16 V Condensador de 100 nF / 63 V Regulador de voltaje LM7805CT Regulador de voltaje LM7812CT Llave bipolar ON / OFF LED amarillo Resistencia de 1 Kohms Resistencia de 150 Ohms 2 WJ Diodo Conector de 4 pines macho Conector de 2 pines macho Plancha universal de pertinax Comp. C1, C2, C3 C4, C5, C6 U1 U2 R1 R2 D1 CON1 CON2, CON3, CON4

Tabla 7 Componentes del circuito de alimentacin de la Unidad y cargador de batera.

Pgina 73 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

III.3 Mdulo COMM


III.3.1 Diseo del Circuito del mdulo COMM

Figura 26 Circuito del mdulo COMM.

III.3.2
Cant. 2 1 4 2 3 3 1 1 1 1 1 1 2 2 3 1 1 1

Lista de Materiales del mdulo COMM


Descripcin Condensador de 22 pF Condensador de 0.1 uF Resistencia de 1 Kohms Resistencia de 4.7 Kohms Resistencia de 150 Kohms LED (rojo, amarillo, verde) Cristal de 20 Mhz PIC16F877A Transmisor de radio frecuencia TWS-434 Receptor de radio frecuencia RWS-434 Codificador HT640 Decodificador HT648L Conector de 4 pines Conector de 2 pines Llaves Plancha universal de pertinax Antena de transmisin de 7" Antena de recepcin de 12" Tabla 8 Componentes del mdulo COMM. Comp. C3, C5 C4 R4, R5, R6, R7 R8, R9 R1, R2, R3 LED2, LED3, LED4 XTAL2 U2 U5 U6 U3 U4 CON1, CON2 CON3, CON4 S1, S2, S3 L1 L2

Pgina 74 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

III.4 Mdulo MOTOR


III.4.1 Diseo del Circuito del mdulo MOTOR

Figura 27 Circuito del mdulo MOTOR.

III.4.2
Cant. 2 1 4 8 3 1 1 2 1 1 1 1

Lista de Materiales del mdulo MOTOR


Descripcin Condensador de 22 pF Condensador de 0.1 uF Resistencia de 1 Kohms Resistencia de 1 Ohms LED (rojo, amarillo, verde) Cristal de 20 Mhz PIC16F876A ULN2003AN Conector de 4 pines Conector de 2 pines Conector de 12 pines Plancha universal de pertinax Tabla 9 Componentes del mdulo MOTOR. Comp. C1, C2 C3 R1, R2, R3, R4 R5, R6, R7, R8, R9, R10, R11, R12 LED1, LED2, LED3 XTAL1 U1 U2, U3 CON1 CON2 CON3

Pgina 75 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

III.5 Mdulo SENSOR


III.5.1 Diseo del Circuito del mdulo SENSOR

Figura 28 Circuito del mdulo SENSOR.

III.5.2
Cant. 2 1 4 5 3 1 1 1 6 1

Lista de Materiales del mdulo SENSOR


Descripcin Condensador de 22 pF Condensador de 0.1 uF Resistencia de 1 Kohms Resistencia de 10 Kohms LED (rojo, amarillo, verde) Cristal de 20 Mhz PIC16F876A Conector de 4 pines Conector de 2 pines Plancha universal de pertinax Tabla 10 Componentes del mdulo SENSOR. Comp. C1, C2 C3 R1, R7, R8, R9 R2, R3, R4, R5, R6 LED1, LED2, LED3 XTAL1 U4 CON1 CON2, CON3, CON4, CON5, CON6, CON7

Pgina 76 de 77

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

III.6 Programador JDM


III.6.1 Circuito del Programador JDM

Figura 29 Circuito del Programador de microcontroladores JDM.

III.6.2
Cant. 4 1 1 2 1 1 2 1 1 2 1 1

Lista de Materiales del Circuito Programador JDM


Descripcin Diodo 1N4148 Diodo ZENER 1N5231B 5.1 V 0.5 W Diodo ZENER 1N5237B 8.2 V 0.5 W Transistor 2N2222A Condensador de 100 uF 16 V Condensador de 100 uF 6.3 V Resistencia de 1 Kohms Resistencia de 10 Kohms Resistencia de 2.2 Kohms Conector de 4 pines Conector DB9 Plancha universal de pertinax Comp. D1, D4, D5, D6 D2 D3 Q1, Q2 C1 C2 R1, R4 R3 R2 CON1, CON2 DSUB9F

Tabla 11 Componentes del circuito Programador de microcontroladores JDM.

Pgina 77 de 77