Está en la página 1de 73

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
Proyecto de Grado 2011

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 2 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Tabla de Contenido
1

INTRODUCCIN

1.1
1.2
2

TRABAJOS RELACIONADOS
GUA DE CAPTULOS

7
8

PLANTEO DEL PROYECTO

2.1
2.2
2.3
2.4
3

OBJETIVOS
ALCANCE
UN PROYECTO DE INFORMTICA
RESUMEN DEL PLANTEO DEL PROBLEMA

11

INVESTIGACIN
MOTORES
SENSORES
INVESTIGACIN SOBRE MICROCONTROLADORES
FORMAS DE COMUNICACIN
BATERAS
REUTILIZACIN DE COMPONENTES E INVESTIGACIN DE MERCADO
REUTILIZACIN DE COMPONENTES 0 COSTO
INVESTIGACIN DEL MERCADO LOCAL Y EXTERIOR
RESULTADOS DE LA INVESTIGACIN
MICROCONTROLADORES
COMUNICACIN
MOTORES Y SENSORES

ANLISIS Y DISEO

4.1
4.2
4.2.1
4.2.2
4.2.3
4.3
4.4
4.4.1
4.4.2
5

9
9
10
10

ESTADO DEL ARTE

3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.7.1
3.7.2
3.8
3.8.1
3.8.2
3.8.3
4

11
11
11
12
12
13
13
14
14
15
15
15
16
17

MODELO DE PROCESO
PLAN DE ARQUITECTURA Y DISEO
CMO SE DISE EL SISTEMA
DISEO Y MODELADO
COMPOSICIN Y JUSTIFICACIONES DE CARA A LA IMPLEMENTACIN
ARQUITECTURA DEL SISTEMA
MDULOS
MDULOS QUE SE PLANEARON INICIALMENTE
DESCRIPCIN DE LOS MDULOS PARA LA IMPLEMENTACIN

COMUNICACIONES

17
17
17
18
19
21
21
21
21
26

5.1 FORMATO DEL MENSAJE


5.2 EL CAMINO DE LOS MENSAJES
5.3 FORMAS DE COMUNICACIN UTILIZADAS
5.3.1 DESCRIPCIN DE LAS FORMAS DE COMUNICACIN

26
27
28
28

30

IMPLEMENTACIN DEL PROTOTIPO

6.1 CONSUMO DE CORRIENTE


6.1.1 CONSUMO DE LOS MOTORES DE PASO
6.1.2 CONSUMO DE LOS MICROCONTROLADORES
6.1.3 FUENTE DE ALIMENTACIN
6.2 CONSTRUCCIN
6.2.1 PROGRAMADOR DE MICROCONTROLADORES JDM
6.2.2 MDULO ER
6.2.3 ETAPA DE POTENCIA
6.2.4 MDULO COMM
6.2.5 MDULO MOTOR
Pgina 3 de 73

30
30
31
31
32
32
32
33
34
35

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

6.2.6 MDULO SENSOR


6.2.7 ESTRUCTURA Y MECNICA LIGERA
6.3 PROGRAMACIN
6.3.1 LA PROGRAMACIN, SU EVOLUCIN Y LAS ALTERNATIVAS
6.3.2 INTERFACE CON EL EXTERIOR

36
37
38
38
39

41

COSTOS

7.1
7.2
7.3

COSTOS DE MATERIALES
COSTO DE UNA UNIDAD
COSTO DEL PROYECTO

PARA

APRENDER

41
41
43

PGINA WEB

44

CONCLUSIONES

46

9.1
9.2
9.3

CONCLUSIONES GENERALES
CONCLUSIONES SOBRE LA EXTENSIBILIDAD
TRABAJOS FUTUROS

46
47
48

10

GLOSARIO

49

11

BIBLIOGRAFA Y REFERENCIAS

52

Apndices
I.

PROTOCOLOS DE COMUNICACIN

54

I.1 FORMATO DEL MENSAJE


I.2 COMUNICACIN ENTRE EL PC Y EL MDULO ER
I.2.1 SINCRONIZACIN
I.2.2 BLOQUEO MUTUO
I.3 COMUNICACIONES DENTRO DE UNA UNIDAD
I.3.1 COMPORTAMIENTO DEL COMM
I.3.2 FORMATO DEL MENSAJE EN EL BUS I2C
I.3.3 EXTENSIBILIDAD A PARTIR DEL I2C

54
55
55
56
56
56
57
58

II.

59

PROGRAMACIN DE MICROCONTROLADORES

II.1
II.2
II.3

BIBLIOTECAS
SEUDOCDIGOS DE LOS MDULOS DEL SISTEMA
SOFTWARE UTILIZADO

59
60
65

III.

CIRCUITOS Y MATERIALES

67

III.1
III.1.1
III.1.2
III.2
III.2.1
III.2.2
III.3
III.3.1
III.3.2
III.4
III.4.1
III.4.2
III.5
III.5.1

MDULO ER
DISEO DEL CIRCUITO DEL MDULO ER
LISTA DE MATERIALES DEL MDULO ER
ETAPA DE POTENCIA
DISEO DEL CIRCUITO DE LA ETAPA DE POTENCIA
LISTA DE MATERIALES DE LA ETAPA DE POTENCIA
MDULO COMM
DISEO DEL CIRCUITO DEL MDULO COMM
LISTA DE MATERIALES DEL MDULO COMM
MDULO MOTOR
DISEO DEL CIRCUITO DEL MDULO MOTOR
LISTA DE MATERIALES DEL MDULO MOTOR
MDULO SENSOR
DISEO DEL CIRCUITO DEL MDULO SENSOR
Pgina 4 de 73

67
67
68
69
69
69
70
70
70
71
71
71
72
72

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

III.5.2 LISTA DE MATERIALES DEL MDULO SENSOR


III.6 PROGRAMADOR JDM
III.6.1 CIRCUITO DEL PROGRAMADOR JDM
III.6.2 LISTA DE MATERIALES DEL CIRCUITO PROGRAMADOR JDM

72
73
73
73

ndice de Figuras
FIGURA 1 MODELO DEL ROBOT.
FIGURA 2 ARQUITECTURA DEL SISTEMA.
FIGURA 3 DISEO DEL MDULO ER.
FIGURA 4 DISEO DEL MDULO COMM.
FIGURA 5 DISEO DEL MDULO MOTOR.
FIGURA 6 DISEO DEL MDULO SENSOR.
FIGURA 7 FORMATO DEL MENSAJE.
FIGURA 8 VISTA COLABORATIVA DEL CAMINO DE UN MENSAJE.
FIGURA 9 ELIMINADOR DE PILA.
FIGURA 10 BATERA DE LA UNIDAD.
FIGURA 11 IMAGEN DEL CIRCUITO PROGRAMADOR DE MICROCONTROLADORES JDM.
FIGURA 12 IMAGEN DEL CIRCUITO ER.
FIGURA 13 IMAGEN DEL CIRCUITO DE ALIMENTACIN Y EL CARGADOR DE BATERA.
FIGURA 14 IMAGEN DEL MDULO COMM.
FIGURA 15 IMAGEN DEL MDULO MOTOR Y MDULO SENSOR.
FIGURA 16 IMAGEN DEL MDULO MOTOR Y SENSOR CON LOS MOTORES Y SENSORES CONECTADOS.
FIGURA 17 SECUENCIA DE ARMADO DEL PROTOTIPO
FIGURA 18 FOTO DE PERFIL DEL PROTOTIPO.
FIGURA 19 FOTO DEL SISTEMA COMPLETO.
FIGURA 20 MAPA DEL SITIO WEB.
FIGURA 21 MENSAJE ENTRE EL MDULO PC Y EL MDULO COMM.
FIGURA 22 BYTE DE DIRECCIN Y MODO DE FUNCIONAMIENTO PARA I2C.
FIGURA 23 BYTES CON CARGA TIL DEL MENSAJE I2C.
FIGURA 24 CIRCUITO DEL MDULO ER.
FIGURA 25 CIRCUITO DE ALIMENTACIN DE LA UNIDAD Y CARGADOR DE BATERA.
FIGURA 26 CIRCUITO DEL MDULO COMM.
FIGURA 27 CIRCUITO DEL MDULO MOTOR.
FIGURA 28 CIRCUITO DEL MDULO SENSOR.
FIGURA 29 CIRCUITO DEL PROGRAMADOR DE MICROCONTROLADORES JDM.

18
21
22
23
24
24
26
27
31
31
32
33
34
35
36
37
37
38
38
44
54
57
57
67
69
70
71
72
73

ndice de Tablas
TABLA 1 TABLA DE PARTES REUTILIZABLES POR EQUIPAMIENTO.
TABLA 2 TABLA DE CONSUMO DE LOS MOTORES DE PASO SEGN EL TIPO DE SECUENCIA.
TABLA 3 HERRAMIENTAS Y MATERIALES PARA APRENDIZAJE
TABLA 4 COSTO DE LOS MATERIALES DE UNA UNIDAD Y EL MDULO ER.
TABLA 5 PROTOCOLO DE SINCRONIZACIN BASADO EN RTS/CTS
TABLA 6 COMPONENTES DEL MDULO ER.
TABLA 7 COMPONENTES DEL CIRCUITO DE ALIMENTACIN DE LA UNIDAD Y CARGADOR DE BATERA.
TABLA 8 COMPONENTES DEL MDULO COMM.
TABLA 9 COMPONENTES DEL MDULO MOTOR.
TABLA 10 COMPONENTES DEL MDULO SENSOR.
TABLA 11 COMPONENTES DEL CIRCUITO PROGRAMADOR DE MICROCONTROLADORES JDM.

Pgina 5 de 73

14
31
41
42
55
68
69
70
71
72
73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

ndice de Algoritmos
ALGORITMO 1 ENVO Y RECEPCIN DE MENSAJES POR UART.
ALGORITMO 2 ENVO Y RECEPCIN DE TRES BYTES POR UART.
ALGORITMO 3 SEUDO DEL MDULO ER.
ALGORITMO 4 SEUDO DEL MDULO COMM.
ALGORITMO 5 SEUDO PRINCIPAL DEL MDULO MOTOR.
ALGORITMO 6 RUTINA DE CONTROL DE VELOCIDAD.
ALGORITMO 7 RUTINA DE CONTROL DE ACELERACIN.
ALGORITMO 8 SEUDO DEL MDULO SENSOR.
ALGORITMO 9 SEUDO DEL ALGORITMO DE CLCULO DEL CRC.

Pgina 6 de 73

61
61
62
63
64
64
64
65
65

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 7 de 73

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 8 de 73

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 9 de 73

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 10 de 73

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 11 de 73

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 12 de 73

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 13 de 73

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.

Telfono inalmbrico

CD-ROM

Mouse

Tarjeta de Red

Tarjeta de Sonido

Tarjeta Controladora

Floppy 3

Disco Duro

Fuentes de PC

Floppy 5

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

Impresoras chorro de tinta

Componente

puntoImpresoras matriz de

Equipamiento

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 14 de 73

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 15 de 73

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 16 de 73

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 17 de 73

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

moduloCOMM
<<comunicacion>>
INALAMBRICA
<<comunicacion>>
CABLE

<<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 18 de 73

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 19 de 73

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 I 2C 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 20 de 73

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 21 de 73

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 22 de 73

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 23 de 73

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 24 de 73

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 25 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Captulo

5 Comunicaciones
5.1 Formato del Mensaje

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


3 bits

5 bits

8 bits

3 bits

5 bits

Id. Destino

Tipo de Mensaje

Dato

Id. Mdulo

CRC

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 26 de 73

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

5
6
3

radio
frecuencia

usart

MOTOR

3
4

SENSOR

4
6

bus i2c

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 27 de 73

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 28 de 73

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 29 de 73

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 30 de 73

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 31 de 73

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 32 de 73

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 33 de 73

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 34 de 73

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 35 de 73

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 36 de 73

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.

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
Pgina 37 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.

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.
Pgina 38 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.
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.
Pgina 39 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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.
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 40 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Captulo

7 Costos
7.1 Costos de Materiales para Aprender

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
materiales para

Como puede
costo
total
asciende
a

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

Precio $U
--------------------------------------25,00
58,00
268,00

Herramientas y
aprendizaje

apreciarse, el
incurrido
$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.
Un eje roscado.
Un microcontrolador PIC16F628 con el cual se realizaron las primeras experiencias.
Pgina 41 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

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 42 de 73

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 43 de 73

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 44 de 73

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 45 de 73

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 46 de 73

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 47 de 73

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 48 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Captulo

10

10

Glosario

Fira

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 49 de 73

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 50 de 73

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 51 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Captulo

11 Bibliografa y Referencias
[MID2004]
[IMP1998]

[KUP2001]
[MMP2003]
[MIC2004]
[HOJ1999A]
[HOJ2001B]
[MAN2004]
[FIN2004]
[MEL2004]
[PAR2004]
[MSE2004]
[K-T2004]
[LEG2004]
[REN2004]
[PAP1999]
[SCH1997]
[ANG2000]
[TAN1996]
[AND1997]
[HEY1996]

11

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 52 de 73

Construccin de Robots a Bajo Costo.

[CEB1997]
[TAN1997]
[HOL2004]
[ICL1997]
[HOL1999]
[REY2001]
[HOL1997]
[ULN2003]
[L781997]
[UML2001]
[FIR2004]
[PGV2004]
[PGF2004]
[LM2004A]
[LM2004B]
[LM2004C]
[LM2004D]
[LM2004E]
[LM2004F]
[LM2004G]

Proyecto de Grado 2003.

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 53 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Apndice

I. Protocolos de Comunicacin
I.1

Formato del Mensaje


3 bits

5 bits

8 bits

3 bits

5 bits

Id. Destino

Tipo de Mensaje

Dato

Id. Mdulo

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 54 de 73

Construccin de Robots a Bajo Costo.

I.2

Proyecto de Grado 2003.

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 55 de 73

Construccin de Robots a Bajo Costo.

I.2.2

Proyecto de Grado 2003.

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 56 de 73

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.
3 bits

4 bits
0000

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

5 bits

8 bits

000

Tipo de Mensaje

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 57 de 73

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 58 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Apndice

II. Programacin de Microcontroladores

II

II.1 Bibliotecas
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 59 de 73

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 60 de 73

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 61 de 73

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 62 de 73

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 63 de 73

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 64 de 73

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 65 de 73

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 66 de 73

Construccin de Robots a Bajo Costo.

Proyecto de Grado 2003.

Apndice

III.

Circuitos y Materiales

III.1 Mdulo ER
III.1.1

Diseo del Circuito del mdulo ER

Figura 24 Circuito del mdulo ER.

Pgina 67 de 73

III

Construccin de Robots a Bajo Costo.

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

Proyecto de Grado 2003.

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.

Pgina 68 de 73

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

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

Lista de Materiales de la Etapa de Potencia

Cant.
3
3
1
1
1
1
1
1
1
1
3
1

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 69 de 73

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.

Pgina 70 de 73

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

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

Lista de Materiales del mdulo MOTOR

Cant.
2
1
4

Descripcin
Condensador de 22 pF
Condensador de 0.1 uF
Resistencia de 1 Kohms

Resistencia de 1 Ohms

3
1
1
2
1
1
1
1

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

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

Tabla 9 Componentes del mdulo MOTOR.

Pgina 71 de 73

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

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

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

Tabla 10 Componentes del mdulo SENSOR.

Pgina 72 de 73

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 73 de 73

También podría gustarte