SlideShare una empresa de Scribd logo
¡CONVIERTA SU 
PASIÓN 
EN REALIDAD! 
Guía Teórica 
y Práctica 
EL MONTAJE DE LA PIEZAS 
● Las partes que componen un robot 
● Los pasos para ensamblarlas 
LA INTELIGENCIA 
● Trabajar con microcontroladores 
● Lenguajes de programación 
ROBOTS AUTÓNOMOS 
● Utilización de sensores 
● Mecanismos para generar movimiento 
Gonzalo Zabala 
APRENDA A ARMAR ROBOTS DESDE CERO 
ROBOTICA
Vip users robotica
Léalo antes Gratis! 
En nuestro sitio puede obtener, en forma gratuita, 
un capítulo de cada uno de nuestros libros: 
u s e rs h o p . re d u s e rs . c o m 
Nuestros libros incluyen guías visuales, explicaciones paso a paso, recuadros complementarios, ejercicios, 
glosarios, atajos de teclado y todos los elementos necesarios para asegurar un aprendizaje exitoso y estar 
conectado con el mundo de la tecnología. 
Conéctese con nosotros! 
usershop.redusers.com 
ARGENTINA 
& (011)4110-8700 
CHILE 
& (2)810-7400 
ESPAÑA 
& (93)635-4120 
MÉXICO 
& (55)5350-3099 
o por e-mail a: lectores@redusers.com
TÍTULO: ROBÓTICA 
AUTOR: Gonzalo Zabala 
COLECCIÓN: USERS Express 
FORMATO: 22 x 15,5 cm 
PÁGINAS: 288 
Copyright © MMVII. Es una publicación de Gradi S.A. Hecho el depósito que marca 
la ley 11723. Todos los derechos reservados. No se permite la reproducción parcial o 
total, el almacenamiento, el alquiler, la transmisión o la transformación de este libro, 
en cualquier forma o por cualquier medio, sea electrónico o mecánico, mediante fo-tocopias, 
digitalización u otros métodos, sin el permiso previo y escrito del editor. Su 
infracción está penada por las leyes 11723 y 25446. La editorial no asume responsa-bilidad 
alguna por cualquier consecuencia derivada de la fabricación, funcionamien-to 
y/o utilización de los servicios y productos que se describen y/o analizan. Todas las 
marcas mencionadas en este libro son propiedad exclusiva de sus respectivos due-ños. 
Impreso en Argentina. Libro de edición argentina. Primera impresión realizada 
en Sevagraf, Costa Rica 5226, Grand Bourg, Malvinas Argentinas, Pcia. de Buenos Ai-res 
en noviembre de MMIX. 
ISBN 978-987-1347-56-8 
Zabala, Gonzalo 
Robótica. - 1a ed. - Banfield - Lomas de Zamora: Gradi, 2007. 
288 p.; 22 x 16 cm. (Users Express; 29) 
ISBN 978-987-1347-56-8 
1. Informatica. I. Título 
CDD 005.3
Vip users robotica
PRELIMINARES 
Gonzalo Zabala 
4 
Profesor de Enseñanza Primaria (Normal No. 1) y Licencia-do 
en Ciencias de la Computación (UBA, Ciencias Exactas), 
ha conjugado ambas vocaciones en la educación tecnológica 
y el uso de tecnología para la educación. Trabajó durante mu-chos 
años como docente de diversas ramas de la informática, 
y a fines del siglo pasado comenzó a usar robots para la en-señanza 
de programación. En el año 2000 creó la Roboliga, 
Olimpíada Argentina de Robótica, que ya lleva siete eventos 
con participación de alumnos y docentes de toda la Argenti-na. 
En 2004 ingresó en el Centro de Investigaciones de la Fa-cultad 
de Tecnología Informática de la Universidad Abierta 
Interamericana, donde creó el Grupo de Investigación de 
Robótica Autónoma. Fue coordinador de diversos equipos de 
alumnos que han participado en forma nacional e interna-cional 
en competencias de robótica, y obtuvieron excelentes 
resultados en fútbol de robots y pruebas de rescate. Actual-mente, 
continúa en el Centro de Investigaciones y es repre-sentante 
de Argentina de la RoboCup Junior, director técni-co 
y pedagógico del proyecto Lego Education en el país, co-ordinador 
del Campeonato Argentino de Fútbol de Robots, 
miembro del Consejo Latinoamericano de RoboCup y Co-chair 
de la categoría SimuroSot de la FIRA. 
Dedicatoria 
A Laura y Gastón, porque sus constantes preguntas me ha-cen 
pensar una y otra vez mi impreciso modelo del universo. 
A Ignacio Luppi, porque es un mago que logra que sus 
alumnos construyan robots maravillosos de la nada. 
Y a Marcelo De Vincenzi, porque me abrió las puertas 
para que continuara mis investigaciones en este maravi-lloso 
mundo de la robótica. Y porque disfruta de todo es-to 
más que cualquiera de nosotros.
Sobre el autor 
5 
Agradecimientos 
Son muchas las personas que entran en juego en la confección de un libro, 
aunque luego aparezca sólo una en la tapa. Aquí mencionaré a algunas de 
ellas, pero seguramente me olvidaré de muchas más, que espero que me 
perdonen y me lo recriminen, para no olvidarme la próxima vez. 
Antes que nada, quiero agradecerles a Néstor Balich y a Gonzalo Mon por 
la colaboración en los capítulos en los que están mencionados, en especial 
a Néstor por su aporte del controlador y por todas las dudas que disipó 
cuando probábamos las cosas. Otra heroína es Iris, mi compañera del al-ma, 
que soportó abandonos familiares y responsabilidades extras para de-jarme 
tiempo libre para escribir el libro. 
Un capítulo aparte merecen Paula Budris y Diego Spaciuk por aceptar mis 
constantes incumplimientos, por alentarme cuando me quería bajar del 
tren y por guiarme en todo este camino. 
También quiero agradecerles a Darío Cardacci y a Carolina Soleil del CAETI 
(Centro de Investigaciones en Tecnología Informática de la UAI), que también 
soportaron incumplimientos de mi parte para que yo llevara adelante esta tarea. 
Por último, agradezco a todos mis alumnos de estos años, porque gran parte de 
lo que aprendí fue gracias a sus preguntas. Para ellos, mi más dulce recuerdo.
PRELIMINARES 
Prólogo 
Si Ud. tiene este libro en sus manos, es por alguna o algunas de las siguien-tes 
6 
razones: 
a) Ha sido alcanzado por el sueño eterno de la humanidad de crear un ser 
a su imagen y semejanza. 
b) Desea bajar los costos de producción de su industria, para darles más 
horas libres a sus fieles obreros. 
c) Quiere entender de qué hablan sus hijos o nietos cuando están reunidos 
en la mesa, y dejarle de temer a ese ser espeluznante que de vez en vez 
le habla con voz metálica y le solicita un hueso, una pelotita o simple-mente 
que lo enchufen para recargar sus baterías. 
d) Quiere armar, de una vez por todas, un robot que funcione, que siga la 
línea o la pelota, que busque la luz, sin tener que comprar 999 fascícu-los 
con destino incierto. 
Aunque este libro les será de utilidad a los tres primeros grupos, segura-mente 
el que quedará más conforme es el lector que pertenece al último de 
ellos. Nuestro objetivo es poder describir, paso a paso, la electrónica, la 
mecánica y la programación necesarias para poder construir un robot sen-cillo 
y de bajo costo, que permita realizar tareas simples en forma autóno-ma. 
Para ello, presentaremos todos los aspectos esenciales que conforman 
la arquitectura de un robot, inclusive más allá de los que necesitaremos pa-ra 
la construcción de nuestro modelo, de manera tal que el lector pueda 
perfeccionar su creación con nuevos sensores, actuadores y procesadores. 
Nuestro punto de partida será mínimo, pero es necesario cierto conoci-miento 
básico (muy básico) de programación para poder definir el com-portamiento 
del robot. Para este fin, hemos elegido un lenguaje tan senci-llo 
como el Basic, pero dado que no es un libro de programación, le dedi-caremos 
pocos capítulos a este aspecto. El uso de estructuras de decisión, 
de ciclos de repetición y el manejo de variables sencillas es el requerimien-to 
para poder comprender los algoritmos presentados sin problemas. 
También es bueno tener una base de electrónica, aunque no es imprescindi-ble. 
De hecho, si no tiene ningún conocimiento en este campo, probable-
Prólogo 
mente le parezca mágico el funcionamiento de ciertos aspectos del robot. Sin 
embargo, como seguiremos la descripción de la construcción de forma deta-llada, 
7 
podrá construirlo sin saber el por qué profundo de esa construcción. 
Con respecto a la mecánica, nuestro robot es tan sencillo que no necesita-mos 
ningún conocimiento vinculado a ese tema. Si en algún momento nos 
encontramos en una lucha de sumo de robots, con seguridad los que se-pan 
más de mecánica nos vencerán pero, para seguir una línea, basta con 
ubicar las ruedas en forma razonable. 
Bienvenido entonces, estimado lector, a esta nueva aventura. Es nuestro 
profundo deseo que al finalizar estas páginas, tenga dando vueltas por su 
casa un pequeño robot independiente y que nos podamos encontrar en al-guna 
de las tantas competencias de robótica que existen en nuestro país (¡o 
en el planeta!). Y por qué no, que un día, al golearnos con su equipo de 
robots en un partido de cinco contra cinco, nos honre al contarnos que su 
primera experiencia fue con esta humilde obra. Le podemos asegurar que 
ese día, a pesar de la derrota, ¡tocaremos el cielo con las manos! 
Lic. Gonzalo Zabala y colaboradores.
PRELIMINARES 
El libro de un vistazo 
La robótica ha llegado a nuestros hogares y trabajos. Antes de que nos inviten a dejar 
nuestro living o escritorio, proponemos crear nuestro primer robot para entender pro-fundamente 
8 
los conceptos que entran en juego. En los siguientes capítulos estudiare-mos 
paso a paso los elementos necesarios para llevar a cabo esta tarea con éxito. 
Capítulo 1 
CONCEPTOS FUNDAMENTALES 
Presentaremos los conceptos fundamenta-les 
de la robótica en general y de los robots 
autónomos en particular. Conoceremos los 
primeros intentos de la historia, veremos la 
arquitectura básica de un robot e intoduci-remos 
la terminología que utilizaremos. 
Capítulo 2 
COMPONENTES DEL ROBOT 
Antes del desarrollo, es fundamental tener 
una visión de los objetivos y los alcances de 
nuestro robot, y de las etapas y dificultades 
que encontraremos. Aquí presentaremos el 
proyecto y prepararemos los implementos 
necesarios. Introduciremos el microcontro-lador, 
los motores, los sensores y los mate-riales 
para construir la carcasa. 
Capítulo 3 
LA INTELIGENCIA DEL ROBOT 
Empezamos la construcción de nuestro ro-bot 
por la parte más delicada: el controla-dor, 
que es el director de todo lo que realiza 
nuestro robot. Desarrollaremos los aspec-tos 
para construirlo desde cero y veremos 
cómo construir un programador para incor-porarle 
programas al microcontrolador. 
Capítulo 4 
COMIDA DE ROBOTS 
Éste es uno de los problemas fundamenta-les 
de la robótica autónoma. Estudiaremos 
las ventajas y desventajas de los diversos ti-pos 
de baterías, y seleccionaremos la que 
nos convenga para nuestro proyecto. 
Capítulo 5 
HABLAR CON NUESTRO ROBOT 
Comenzaremos a programar el controlador 
con un lenguaje tan sencillo como el Basic. 
Veremos las similitudes y diferencias con la 
programación tradicional y otros lenguajes. 
Capítulo 6 
RECORRER EL MUNDO 
Dentro de la robótica autónoma, uno de los 
objetivos esenciales es trasladarse en el 
ambiente donde se desarrolla la tarea. Para 
ello, tenemos diversos sistemas de locomo-ción 
que difieren en costo, eficiencia, ta-maño, 
consumo y otras variables. 
Capítulo 7 
SENSAR EL MUNDO 
Tenemos que ver qué pasa a nuestro alre-dedor 
para no chocarnos, salirnos del ca-mino 
o perdernos. Analizaremos los tipos
El libro de un vistazo 
9 
de sensores y los probaremos con nuestro 
controlador. Del mar de componentes digi-tales 
subconjunto para aplicarlo a nuestro robot. 
Capítulo 8 
EL CUERPO DEL ROBOT 
En este punto, tenemos el robot casi termi-nado 
usamos para construir el cuerpo del robot? 
¿Qué ventajas y desventajas presenta cada 
uno? ¿Qué herramientas necesitamos? Aquí 
intentaremos responder estas preguntas. 
Capítulo 9 
SALIR AL RUEDO 
Presentamos desafíos y proyectos de apli-cación 
electrónicas, mecánicas y de programación. 
Analizaremos las características de las 
pruebas de robots autónomos y los proble-mas 
Capítulo 10 
JUGAR AL FÚTBOL 
Uno de los campos más atrayentes de 
aplicación de la robótica autónoma es el 
! 
y analógicos, seleccionaremos un 
pero desmembrado. ¿Qué materiales 
con sus respectivas modificaciones 
que hay que enfrentar para superarlas. 
INFORMACIÓN COMPLEMENTARIA 
A lo largo de este manual encontrará una serie de recuadros que le brindarán infor-mación 
complementaria: curiosidades, trucos, ideas y consejos sobre los temas tra-tados. 
Cada recuadro está identificado con uno de los siguientes iconos: 
CURIOSIDADES 
E IDEAS 
ATENCIÓN SITIOS WEB ❘❘❘ 
DATOS ÚTILES 
Y NOVEDADES 
▲ 
❴ ❵ ✱ 
fútbol de robots. Explicaremos el por qué 
de tanta pasión y cómo podemos usar 
nuestro robot para participar de compe-tencias 
nacionales e internacionales. 
Apéndice A 
CONCEPTOS BÁSICOS DE ELECTRÓNICA 
Si nos quedan dudas sobre cómo ocurre lo 
que hemos visto en este libro, aquí encon-traremos 
material. Desde qué es la electri-cidad 
hasta la historia y el funcionamiento 
de los circuitos integrados, esclareceremos 
los temas electrónicos fundamentales. 
Apéndice B 
SITIOS WEB 
Y como todo esto es el comienzo, presenta-remos 
una lista de sitios de electrónica y 
robótica donde podremos profundizar nues-tros 
estudios y conocimientos. 
Servicios al lector 
BIBLIOGRAFÍA 
Como bien decía Newton, podemos ver lejos 
porque nos hemos parado en hombros de 
gigantes. Aquí presentaremos las fuentes 
de nuestras investigaciones y estudios.
Contenido 
Sobre el autor 4 
Agradecimientos 5 
Prólogo 6 
El libro de un vistazo 8 
Introducción 14 
Capítulo 1 
CONCEPTOS FUNDAMENTALES 
Introducción a la robótica 16 
¿Qué es un robot? 16 
Tipos de robots 19 
Unidades de un robot 23 
Procesamiento 24 
Sensores 33 
Actuadores 39 
Resumen 43 
Actividades 44 
Capítulo 2 
COMPONENTES DEL ROBOT 
Una mirada global a nuestro 
futuro robot 46 
Objetivos de nuestro robot 47 
Tipo de procesamiento 
seleccionado 48 
¿Cómo le damos movimiento 
a nuestro robot? 50 
¿Y cómo captamos el mundo 
que nos rodea? 53 
Materiales para la mecánica 55 
Resumen 59 
Actividades 60 
Capítulo 3 
LA INTELIGENCIA DEL ROBOT 
El cerebro 62 
Componentes de nuestro robot 63 
Objetivos del controlador 64 
El microcontrolador, 
cerebro del cerebro 64 
Conceptos fundamentales 
de un PIC 65 
Características del PIC16F88 66 
Compatibilidad con el 16F84 67 
Puente H para el control 
de los motores 67 
PRELIMINARES 
10
Contenido 
11 
Listado de componentes 
del controlador 68 
Descripción del circuito 69 
Placa experimental 71 
El programador 71 
Nuestro programador 71 
Resumen 75 
Actividades 76 
Capítulo 4 
COMIDA DE ROBOTS 
La fuente de energía 78 
Características de las celdas 
de las baterías 79 
Tipos de baterías 81 
Calidad de las baterías 86 
Cargadores 87 
Ayudar a que no sólo 
las baterías duren más 89 
Resumen 91 
Actividades 92 
Capítulo 5 
HABLAR CON NUESTRO ROBOT 
Comunicación con el robot 94 
Lenguajes de programación 
para robots 95 
PicBasic Pro 95 
Compilador CCS C 97 
MikroBasic 98 
Editor de código fuente 
de mikroBasic 100 
Explorador de código 103 
Depurador 103 
Manos a la obra 106 
Elementos del léxico 108 
Organización de los módulos 110 
Alcance y visibilidad 111 
Variables, constantes y tipos 112 
Estructuras 115 
Operadores 116 
Sentencias 117 
Resumen 123 
Actividades 124 
Capítulo 6 
RECORRER EL MUNDO 
El movimiento del robot 126 
Tipos de motores 126 
Motores de corriente continua 127 
Motores paso a paso (Motores PaP) 135 
Servos 140 
Resumen 145 
Actividades 146
Capítulo 7 
SENSAR EL MUNDO 
Adaptación al entorno 148 
Tipos de sensores 148 
Características esenciales 
de los sensores 149 
Sensores digitales 152 
Los sensores analógicos 158 
Tipos de sensores analógicos 162 
Resumen 165 
Actividades 166 
Capítulo 8 
EL CUERPO DEL ROBOT 
Cuerpo a cuerpo 168 
Características mecánicas 
de un robot autónomo 169 
Robots aéreos 173 
Robots subacuáticos 174 
Robots terrestres 174 
Sistemas con ruedas 179 
Estructura de nuestro robot 184 
Mecanismos de transmisión 
y reducción 190 
Cinemática de un robot 194 
Odometría 196 
Resumen 197 
Actividades 198 
Capítulo 9 
SALIR AL RUEDO 
Presentarse a competir 200 
PRELIMINARES 
12
Características comunes de las 
pruebas de robots autónomos 200 
Pruebas tradicionales 
para robots autónomos 210 
¡La luz, la luz, he visto la luz! 213 
Resumen 219 
Actividades 220 
Capítulo 10 
JUGAR AL FÚTBOL 
Fútbol de robots 222 
Características del fútbol 
de robots 222 
Ligas nacionales e internacionales 
de fútbol de robots 232 
Modificaciones para 
que nuestro robot pueda jugar 242 
Una pelota infrarroja 244 
Resumen 245 
Actividades 246 
Contenido 
Apéndice A 
CONCEPTOS BÁSICOS DE ELECTRÓNICA 
La electrónica 248 
Conceptos de electricidad 248 
Componentes que utilizamos 
en nuestros circuitos 251 
Herramientas fundamentales 256 
Consejos para soldar 258 
Apéndice B 
SITIOS WEB 
Listado de sitios 260 
Aplicaciones útiles 267 
Servicios al lector 
Bibliografía 270 
Indice temático 275 
Equivalencia de términos 277 
Abreviaturas comúnmente 
utilizadas 279 
13
PRELIMINARES 
Introducción 
Decir que la robótica es un tema del futuro es una prueba fehaciente de miopía. 
Los robots están entrando por nuestras puertas, ventanas, cerraduras, y es inevita-ble 
14 
que así sea. Desde los lavarropas hasta los vehículos espaciales utilizan tecno-logías 
muy vinculadas con la disciplina. Seguramente, comenzaron con investiga-ciones 
que en ese momento parecían desconectadas de la realidad (vieja excusa que 
utilizamos para aquellos que entran a nuestros laboratorios y nos preguntan ¿y eso 
que hacen para qué sirve?). Es por eso que después de algunos años de investiga-ción 
sobre este tema, y luego de escribir algunos artículos inentendibles, tuvimos 
ganas de abrir el juego. La gente de esta editorial nos invitó a presentar el tema en 
forma más amena y al alcance de más lectores. 
Mi relación con la robótica comenzó desde el ámbito educativo como un recurso con-creto 
y tangible para enseñarles programación a jóvenes entre 13 y 17 años. En mi ex-periencia 
como docente de programación había llegado a una conclusión terrible: cuan-do 
enseñamos a programar, dentro del aula tenemos dos grupos de alumnos. Los que 
entienden todo sin que se les explique demasiado porque tienen una suerte de gen del 
programador y, con sólo recibir un par de ideas y algunos apuntes, al cabo de un mes 
regresaban con un sistema de control de centrales termonucleares. Y el otro conjunto 
de alumnos, más abultado, que a pesar de todos los recursos, inventos y triquiñuelas 
didácticos, no lograban superar el PRINT “HOLA MUNDO”. Por lo tanto, mi tarea 
como docente era inútil en los dos casos: en el primer grupo, porque no me necesita-ban, 
y en el segundo, porque no les podía aportar cosas nuevas. En ese momento co-mencé 
a buscar algún mecanismo para que nadie se diera cuenta de esto y, a conti-nuación, 
un recurso que permitiera mejorar la enseñanza de programación. Allí me 
crucé con los robots y con los entornos de objetos. Con el primer tema me casé y con 
el segundo tengo una relación de amante que espero oficializar en un próximo libro. 
Tengo la suerte de que en las últimas investigaciones que he desarrollado, ambos aspec-tos 
se han unido y manejamos los robots desde un ambiente de objetos. La robótica me 
ha dado inmensas satisfacciones, me ha permitido viajar a lugares que nunca creí que 
iba a conocer y ha pagado alguna que otra comida mía y de mi familia. Pero ante todo, 
me ha brindado la posibilidad de sorprenderme día tras día. Siempre hay algo nuevo, 
siempre hay otro desafío. Espero que este libro sirva como un punto de partida sencillo 
para viajar a obras mucho más completas que nos regalarán experiencias maravillosas.
Robótica 
Conceptos 
fundamentales 
Capítulo 1 
¿Qué es un robot? ¿Cuándo 
conviviremos con ellos? ¿Tendremos 
diversos tipos de robots entre nosotros? 
¿Lavarán los platos? En este primer 
capítulo intentaremos responder estas 
y otras preguntas, con el objetivo 
de entender cuáles son 
los alcances posibles de nuestro 
primer proyecto robótico. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Introducción a la robótica 16 
¿Qué es un robot? 16 
Tipos de robots 19 
Unidades de un robot 23 
Procesamiento 24 
Sensores 33 
Actuadores 39 
Resumen 43 
Actividades 44 
Colaborador: 
Ing. Gonzalo Mon
INTRODUCCIÓN 
A LA ROBÓTICA 
Día a día, nos sorprendemos con las 
noticias que aparecen en los medios 
de comunicación vinculadas a la 
presencia de robots en diversos cam-pos 
de la vida cotidiana. Robots en-fermeros, 
mascotas, repositores de 
supermercados, detectores de explo-sivos, 
aspiradoras hogareñas, o sim-ples 
jugadores de fútbol, son algu-nos 
de los ejemplos que podemos 
encontrar en el mercado de la tecno-logía 
de última generación. 
En síntesis, la robótica ya no es 
parte de nuestro futuro sino de 
nuestro presente tangible. Sin em-bargo, 
probablemente gracias a la li-teratura 
y al cine de ciencia ficción, 
el concepto de lo que es un robot, 
sus posibilidades y sus limitaciones 
reales están desdibujados en el ima-ginario 
colectivo. Es por eso que en 
este primer capítulo haremos una 
introducción a los conceptos funda-mentales 
de la robótica. 
¿Qué es un robot? 
Sueño de muchas generaciones, la 
explosión tecnológica nos ha puesto 
al alcance de poder concretarlo. 
Para comenzar nuestro recorrido, 
hagamos un repaso de la historia de 
la robótica para comprender hacia 
dónde nos dirigimos. 
1. CONCEPTOS FUNDAMENTALES 
Figura 1. Roomba, la aspiradora robótica más popular y económica del mercado. 
16
A imagen y semejanza 
Desde los orígenes del hombre, po-demos 
encontrar varios relatos sobre 
la creación de vida artificial. Por 
ejemplo, en la leyenda del Golem, 
un rabino de Praga le infunde vida a 
una estatua de barro. Asimismo, en 
la obra literaria Frankenstein, el 
doctor de dicho nombre crea un ser 
a partir de órganos de otras perso-nas, 
que luego se vuelve contra él. 
Si nos apartamos de la literatura, en 
el antiguo Egipto encontramos esta-tuas 
de dioses que incorporaban bra-zos 
mecánicos operados por los sa-cerdotes. 
En el siglo XIX, también se 
hicieron conocidas las creaciones de 
robots que jugaban ajedrez, aunque 
en realidad éstos ocultaban a un ser 
humano de baja estatura que opera-ba 
la máquina desde su interior (Fi-gura 
2). Es decir, el deseo de creación 
de un ser a nuestra imagen y seme-janza 
está presente desde los prime-ros 
tiempos de la humanidad. 
El origen de la palabra robot se re-monta 
a comienzos del siglo XIX. El 
dramaturgo Karel Capek utilizó por 
primera vez este término en su obra 
Opilek para referirse a un conjunto 
de máquinas inventadas por un cien-tífico 
para realizar tareas pesadas y 
aburridas. En checo, idioma original 
de la obra, el término robota signi-fica 
trabajo tedioso. Pero fue el es-critor 
Isaac Asimov quien populari-zó 
el término e introdujo el concep- 
Introducción a la robótica 
Figura 2. El Turco, un robot que simulaba 
jugar al ajedrez y que, en realidad, tenía 
un jugador humano adentro. 
Figura 3. Éste es un robot que aparecía 
en la adaptación de la obra de Karel 
Capek: Rossum's Universal Robot. 
17
to de robótica en diversos relatos de 
ciencia ficción de su autoría. En sus 
obras, Asimov muestra facetas hu-manas 
de los robots y define un con-junto 
de leyes para que estos seres 
nuevos nunca se rebelen contra los 
humanos. Luego, el cine y la televi-sión 
generaron cientos de robots de 
diversa índole, algunos simpáticos 
(como R2D2 y Cortocircuito), y 
otros definitivamente en contra de 
sus creadores (Terminator, HAL). 
A partir de la creación de las prime-ras 
computadoras comenzó el verda-dero 
desarrollo de los robots primi-tivos. 
En 1974, la empresa Cinci-nnati 
Milacron realizó el primer ro-bot 
industrial, conocido como The 
Tomorrow Tool. A partir de ese mo-mento, 
junto con la evolución de los 
sistemas de procesamiento, el creci-miento 
de la robótica ha sido expo-nencial. 
La reducción de tamaño y 
de costos, y el aumento de la capa-cidad 
de cálculo de los procesadores, 
han permitido la creación de robots 
cada vez más sofisticados, rápidos y 
autónomos. Sin embargo, aún esta-mos 
lejos de crear un robot a nues-tra 
imagen y semejanza. 
Definición de la palabra robot 
Existen muchas definiciones de la 
palabra robot. En cada una de ellas, 
encontramos destacado algún aspec-to 
en particular, que es el que cada 
autor quiere resaltar en su obra. Se-gún 
la Asociación Japonesa de Robó-tica 
Industrial (JIRA), los robots son 
dispositivos capaces de moverse de mo-do 
flexible, análogo al que poseen los 
organismos vivos, con o sin funciones 
intelectuales, lo que permite la realiza-ción 
de operaciones en respuesta a ór-denes 
recibidas por humanos. Vemos 
que en esta definición se encuentra 
resaltada la capacidad de movimien-to 
de los robots y su analogía con los 
seres de la naturaleza. Sin embargo, 
a la JIRA no le interesa la inteligen-cia 
artificial aplicada al robot, dado 
que su función fundamental es ser 
operado por un humano. Por su par-te, 
el Instituto de Robótica de Nor- 
1. CONCEPTOS FUNDAMENTALES 
18 
Figura 4. Isaac Asimov, creador 
de cientos de cuentos sobre robots 
y de la palabra robótica.
teamérica (RIA) define a un robot 
industrial como un manipulador 
multifuncional y reprogramable dise-ñado 
para desplazar materiales, com-ponentes, 
herramientas o dispositivos 
especializados por medio de movimien-tos 
programados variables, con el fin de 
realizar diversas tareas. En este caso, 
el acento está puesto en la capacidad 
de programación del robot y, por lo 
tanto, en cierta independencia de 
funcionamiento con respecto a la 
operación humana. Como dijo Jo-seph 
Engelberg, padre de la robótica 
industrial: es posible que no sea ca-paz 
de definir qué es un robot, pe-ro 
sé cuándo veo uno. 
Particularmente, y ya que nos hemos 
ganado el derecho dado que estamos 
escribiendo un libro sobre robótica, 
agregaremos una definición más de 
robot a la larga lista preexistente: un 
robot es un dispositivo con un de-terminado 
grado de movilidad, que 
puede realizar un conjunto de ta-reas 
en forma independiente y que 
se adapta al mundo en el que ope-ra. 
El objetivo de esta definición es 
Introducción a la robótica 
comenzar a introducirnos en el tipo 
de robot sobre el que vamos a centrar-nos 
en el desarrollo del libro. 
Tipos de robots 
De la misma manera que con las de-finiciones, 
podemos encontrar mu-chas 
clasificaciones distintas de ro-bots. 
En esta obra, al presentarlos, 
intentaremos acercarnos a los diver-sos 
problemas mecánicos, electróni-cos 
y de software que encontramos 
en el desarrollo de un robot. Las cla-sificaciones 
elegidas son: 
Según el uso del robot 
A continuación presentaremos una 
clasificación posible de los robots se-gún 
su utilidad específica. 
• Industriales: se utilizan dentro de 
un proceso de trabajo industrial. Es 
el tipo de robot que más ha sido de-sarrollado 
en la historia (Figura 5). 
• Espaciales: deben desenvolverse en 
zonas inexploradas y a larga distan-cia 
de su centro de control. 
• Médicos: son utilizados como 
apoyo en la intervención médica 
✱ 
Uno de los primeros robots reales fue el jugador de ajedrez autómata de Wolfgang 
von Kempelen, en 1769. Éste consistía en una cabina de madera de 1,20 metros de 
largo, 60 centímetros de profundidad y 90 centímetros de altura. Cuando se abrían 
las puertas de la máquina, se podía ver un complejo mecanismo de engranajes que, 
supuestamente, permitían jugar un partido de ajedrez de buen nivel. En realidad, 
dentro de la estructura se escondía un pequeño jugador humano. 
19 
UN ROBOT QUE JUGABA AL AJEDREZ
sobre los humanos y como com-plemento 
para las personas con ca-pacidades 
disminuidas. 
• Domésticos: el sueño de todo amo 
o ama de casa, un robot que reali-ce 
alguna o todas las tareas del ho-gar. 
Ya hay entre nosotros aspira-doras, 
lavarropas, heladeras, etcé-tera, 
que modifican su comporta-miento 
en forma autónoma según 
el ambiente en el que trabajan. 
• Sociales: robots utilizados en ám-bitos 
sociales (como películas, 
eventos y supermercados) con fun-ciones 
de comunicación intensiva 
con los humanos. En estos casos, 
uno de los elementos de investiga-ción 
fundamental es el aspecto es-tético 
del robot, el estudio de la in-terfaz 
con el humano para realizar 
una comunicación completa, con 
gestos, tonos, silencios, etcétera. 
• Agrícolas: así como en sus co-mienzos 
la robótica tuvo amplia 
aplicación en la industria, en los 
últimos años ha comenzado a cre-cer 
en forma exponencial el uso de 
robots y de la inteligencia artificial 
en el sector agrícola-ganadero. Las 
cosechadoras autónomas, las sem-bradoras 
controladas por mapas 
satelitales, los fumigadores roboti-zados 
y otros dispositivos hicieron 
su aparición dentro de lo que ac-tualmente 
se conoce como agri-cultura 
Figura 5. Kit de brazo robótico 
RA-01 con 5 servos. 
de precisión (Figura 6). 
❘❘❘ 
Como si no fueran suficientes los insectos que nos perturban durante todo el año, los 
ingenieros han decidido que, antes de imitar a un humano, es necesario lograr un in-secto 
1. CONCEPTOS FUNDAMENTALES 
20 
ROBOTS INSECTOS 
robótico. Los sistemas de visión y de vuelo de los insectos son dos fuentes de 
inspiración muy importantes, dado que con mecanismos sumamente sencillos, logran 
captar el mundo que los rodea y volar sobre él de una manera altamente adaptativa.
Según el medio en el que desarro-lla 
la actividad 
• Acuáticos: se caracterizan por movi-mientos 
tridimensionales en un am-biente 
hostil desde el punto de vista 
mecánico y electrónico (Figura 8). 
• Terrestres: son los más populares 
y económicos. Podemos, a su vez, 
subclasificarlos por sistema de lo-comoción: 
fijos, ruedas, orugas, 
patas, arrastre, etcétera. 
• Aéreos: con movimientos tridi-mensionales, 
como el acuático, pe-ro 
con una exigencia mucho ma-yor 
en el control en tiempo real del 
sistema de levitación (Figura 7). 
• Híbridos: combinación de algu-nos 
de los anteriores. 
Introducción a la robótica 
En esta clasificación, las característi-cas 
mecánicas del robot se modifi-can 
en forma sustancial entre uno u 
otro medio. Prácticamente, es impo- 
21 
Figura 6. Demeter, un robot de 
aplicación agrícola desarrollado 
en la Universidad de Carnegie Mellon. 
Figura 7. Robot insecto volador desarrollado en la Universidad de Berkeley.
sible utilizar la mecánica de un ro-bot 
construido en un medio para 
que funcione en otro, salvo en el ca-so 
de algunos híbridos. 
Según la ubicación de la inteligen-cia 
del robot 
• Autónomos: la inteligencia está 
ubicada en el mismo robot. Puede 
comunicarse con otros o con un 
sistema central, pero los aspectos 
esenciales de funcionamiento se 
resuelven en forma independiente 
en el propio robot. 
• Control automatizado (semiautó-nomos): 
la mayor parte de la inte-ligencia 
del robot está ubicada en 
un sistema central. Los sensores 
pueden ser locales, es decir que le 
envían la información obtenida a 
ese sistema central, o globales. El 
sistema central les comunica a los 
robots las acciones que deben rea-lizar. 
Un ejemplo de este modelo 
es la categoría Mirosot de fútbol 
de robots de la FIRA. 
• Híbridos: son robots autónomos 
que, en ciertos momentos del pro-ceso, 
pueden ser controlados por 
humanos o por un sistema central. 
Un ejemplo son los robots que se 
utilizan en misiones espaciales, que 
operan en forma autónoma pero 
que, ante un percance, pueden ser 
dirigidos desde nuestro planeta. 
También podríamos clasificar a los 
robots por sus características estruc-turales, 
por el tipo de sensado del 
mundo, etcétera. De todas maneras, 
todos los robots comparten la mis-ma 
arquitectura básica, desde el más 
pequeño hasta Terminator. A conti-nuación 
veremos la fuerte analogía 
1. CONCEPTOS FUNDAMENTALES 
22 
Figura 8. Robot 
acuático japonés, 
que imita la 
estructura de 
algunos seres 
acuáticos.
que encontramos entre un robot y 
una computadora convencional. 
Unidades de un robot 
En la arquitectura de cualquier com-putadora, 
podemos encontrar las si-guientes 
unidades que la componen: 
• Unidades de procesamiento: es el 
conjunto de dispositivos que se 
encargan de realizar la transforma-ción 
de los datos de entrada para 
obtener los datos de salida. 
• Unidades de entrada: son las uni-dades 
que permiten realizar el in-greso 
de información para su pos-terior 
procesamiento. 
• Unidades de salida: son las unida-des 
que se ocupan de comunicarle 
los resultados del procesamiento al 
usuario u operador. 
En un robot podemos encontrar la 
misma arquitectura. A las unidades 
de entrada de un robot las llamamos 
sensores, que pueden ser externos, 
como un sensor de tacto, o internos, 
como un encoder que permite deter-minar 
la distancia recorrida por una 
rueda. A las unidades de salida se las 
conoce como actuadores. Aquí po-demos 
mencionar leds de señaliza-ción, 
buzzers, motores, displays, 
etcétera. En síntesis, el robot recibe 
información del ambiente mediante 
sus sensores, procesa la informa-ción 
con su unidad de procesamien-to 
Introducción a la robótica 
y realiza sus acciones al mover 
motores y encender luces y buzzers. 
Tomemos como ejemplo a uno de los 
robots más conocidos: Terminator. 
En este caso, sus sensores son las cá-maras 
que le permiten mirar, su siste-ma 
auditivo y los sensores de tacto 
que tiene su piel. No recordamos que 
tenga olfato o que alguna vez haya co-mentado 
lo sabroso de alguna comi-da. 
Sus actuadores esenciales son los 
motores o los músculos de alambre 
que conforman su cuerpo. 
Uno de los problemas más apasio-nantes 
de la robótica es el equilibrio 
que es necesario obtener entre las tres 
unidades, para lograr que el robot 
cumpla con su objetivo. Por ejemplo, 
los sensores más sofisticados o que 
GENERACIONES DE ROBOTS 
23 
❘❘❘ 
Así como hablamos de generaciones de 
computadoras, también se ha definido 
el grado de evolución de los robots in-dustriales 
como vemos a continuación: 
● Primera generación: repiten una ta-rea 
sin considerar las modificaciones 
que ocurren en su entorno. 
● Segunda generación: toman informa-ción 
limitada de su entorno y modifican 
su comportamiento. 
● Tercera generación: son programados 
en lenguaje natural y organizan sus tareas 
en forma automática en un nivel más alto 
que los de Segunda generación.
entregan mayor cantidad de datos, 
como puede ser una cámara de video, 
exigen de parte del procesador un 
mayor tiempo de trabajo para poder 
obtener un conjunto de información 
que resulte significativo. De la misma 
manera, el control de los actuadores 
sofisticados, como cierto tipo de mo-tores, 
consume tiempo de procesa-miento 
que es absolutamente necesa-rio 
para que el robot opere en tiem-po 
real. En síntesis, es imprescindible 
lograr el equilibrio entre velocidad 
y precisión, en especial en aquellos 
robots que operan en entornos muy 
dinámicos. Es por eso que, habitual-mente, 
se utilizan ciertos procesado-res 
específicos para el filtrado de la in-formación 
de entrada y para el con-trol 
de los actuadores, y así se libera 
de esta tarea al procesador central y 
se complementa su función. 
En las próximas páginas, analizare-mos 
cada una de estas unidades en 
profundidad, de forma tal que poda-mos 
realizar la elección adecuada se-gún 
los objetivos específicos que 
tengamos para nuestro robot. 
Procesamiento 
Cuando comenzamos a analizar lo 
que nos ofrece el mercado de la ro-bótica 
con respecto a procesamiento, 
probablemente nos encontremos 
confundidos ante la diversidad de 
posibilidades. Podemos encontrar 
desde micros de muy bajo precio, en 
los que debemos construir en forma 
artesanal toda la electrónica que los 
complementa para poder procesar 
las entradas y salidas, hasta costosos 
kits que tienen absolutamente todo 
resuelto. Está claro que con éstos úl-timos 
podremos hacer que nuestro 
robot funcione en algunas horas, pe-ro 
es en el primer caso donde tendre-mos 
un control absoluto y de bajo 
nivel de las capacidades de procesa-miento 
de nuestro dispositivo. 
De todas maneras, analizaremos en 
forma detallada las ventajas y las 
desventajas de ambas propuestas: el 
desarrollo con el uso de kits frente a 
la construcción en forma artesanal 
de los robots. Además, conoceremos 
brevemente algunos kits y micros 
disponibles en el mercado, y hare-mos 
una lista de los sitios web don-de 
se puede conseguir información 
más detallada y completa. 
Kits 
Los kits para la construcción de ro-bots, 
en general, presentan los si-guientes 
elementos: 
• Un procesador o conjunto de pro-cesadores 
con toda la electrónica de 
entrada y salida de los sensores re-suelta. 
Además, poseen un sistema 
operativo dentro del controlador 
(firmware), que eleva el nivel de pro-gramación 
de los procesadores, lo 
que posibilita el uso de lenguajes de 
alto nivel o interfaces gráficas para el 
1. CONCEPTOS FUNDAMENTALES 
24
desarrollo de la inteligencia de nues-tro 
robot en forma muy sencilla. 
• Un conjunto de sensores que 
aprovechan la electrónica ya re-suelta, 
y que con una simple cone-xión 
funcionan de manera casi 
mágica. Por ejemplo, sensores de 
luz donde el firmware interpreta el 
voltaje que entrega el sensor como 
un valor entre 0 y 100. 
• Un conjunto de motores que 
también utilizan la electrónica de 
salida, que se alimentan directa-mente 
de la misma fuente que ali-menta 
al procesador, y que gracias 
al firmware podemos indicarle di-rección, 
velocidad, etcétera, sin la 
necesidad de cálculos complejos. 
• Material constructivo para resolver 
la mecánica del robot, altamente 
Introducción a la robótica 
reutilizable y que en poco tiempo 
permite la elaboración de la física del 
robot mediante la aplicación de co-nocimientos 
de nuestra infancia. 
Si tenemos en cuenta este conjunto 
de materiales, es sencillo notar que las 
ventajas que nos presenta el uso de 
kits para la construcción de nuestro 
robot son las siguientes: 
• Menor tiempo de construcción 
del robot: en pocas horas, podemos 
obtener robots poderosos para los 
desafíos habituales en robótica. 
• Alta reusabilidad del material: 
una vez terminado el desafío, po-demos 
desarmar el robot y utilizar 
todas las piezas, los sensores, los 
motores y el procesador para armar 
un robot completamente distinto. 
• Baja necesidad de conocimientos 
25 
Figura 9. Lego Nxt con el conjunto de motores y sensores que vienen con el kit.
Figura 10. Un humanoide realizado 
con el Lego Nxt. 
técnicos: sin saber electrónica y 
prácticamente sin saber programa-ción, 
podemos desarrollar un robot 
poderoso. Desde ya que para aque-llos 
usuarios que sí tengan esos co-nocimientos, 
el aprovechamiento 
será mucho mayor. Más aún si los 
desarrolladores del kit tuvieron la 
precaución de dejar abiertos tanto el 
firmware como el hardware del pro-cesador 
y los sensores. 
De todas formas, no todas son cosas 
positivas. Las desventajas que tene-mos 
con el uso de kits son: 
• El alto o altísimo costo de un kit: 
la relación puede ser de 20 a 1 con 
respecto a un desarrollo manual. El 
robot que construiremos en este li-bro 
mantiene esta relación con los 
kits más económicos de robótica. 
• La imposiblidad, en muchos casos, 
de poder realizar modificaciones de 
bajo nivel en el hardware o el firm-ware 
del robot. A pesar de todos los 
esfuerzos de documentación que ha-ga 
la empresa creadora del kit, es im-posible 
que todo sea altamente mo-dificable, 
por la misma necesidad de 
mantener la arquitectura intrínseca 
del robot. Su elaboración artesanal 
desde cero nos permite modificar 
hasta el más mínimo detalle. 
• Baja precisión y calidad final de 
los robots: dado que los kits son 
para el desarrollo de robots de di-versos 
propósitos, en todos los ca-sos 
perdemos precisión y calidad. 
Por ejemplo, los motores sirven 
para moverse en un determinado 
ambiente con alto margen de 
error, pero no son veloces ni per-miten 
movimientos de precisión 
como lo pueden exigir ciertos ob-jetivos. 
En general, los sensores 
son económicos, y el rango de va-lores 
que devuelven es pobre. 
Los kits de robótica más conocidos 
en el mercado son los siguientes: 
• Lego Nxt: sucesor del modelo 
Mindstorms, es el kit de mayor di-fusión 
en todo el mundo (Figura 9). 
1. CONCEPTOS FUNDAMENTALES 
26
Su procesador es un ARM7 de 32 
bits. Cuenta con 256 Kb de Flash y 
64 Kb de RAM. Se comunica por 
Bluetooth clase 2 y por USB. Tiene 
4 entradas para sensores y 3 salidas 
para actuadores. En el kit se inte-gran 
3 motores servo con encoders 
incorporados para controlar su mo-vimiento 
con precisión. 
Además, cuenta con un sensor de 
tacto, uno de sonido, otro de luz y 
por último un sensor ultrasónico. 
Para la mecánica del robot cuenta 
con piezas de las denominadas 
Technic, que permiten diseñar dife-rentes 
estructuras según el destino 
del robot creado (Figura 10). El len-guaje 
Introducción a la robótica 
de programación es un am-biente 
gráfico muy sencillo, similar 
al Robolab de las versiones anterio-res, 
pero con mayor potencia y ver-satilidad. 
Para finalizar, una de las 
mejores decisiones que ha tomado la 
firma Lego es publicar muchísima 
información sobre el desarrollo tan-to 
de hardware como de software del 
kit, lo que ha permitido que en po-co 
tiempo (salió a la venta en agos-to 
de 2006) las personas de todo el 
mundo que tienen este hobby hayan 
desarrollado hardware y software es-pecífico 
fuera del oficial. Para obte-ner 
más información, podemos visi-tar 
http://mindstorms.lego.com. 
27 
Figura 11. Placa educativa del Basic Stamp de Parallax.
Figura 12. Aquí podemos ver uno 
de los modelos constructivos de XiOR, 
conocido como N10. 
• Parallax: el producto más popular de 
esta empresa es el micro Basic Stamp 
(Figura 11). Aunque uno puede adqui-rir 
solamente el micro y realizar el ro-bot 
desde cero como comentaremos 
más adelante, hay tantos desarrollos 
y tantas presentaciones de productos 
de la firma Parallax que hemos deci-dido 
presentarlo dentro de esta sec-ción. 
El Basic Stamp Starter Kit es-tá 
desarrollado para iniciarse en el 
mundo de la robótica. Incluye un Ba-sic 
Stamp II, que tiene una velocidad 
de procesamiento de 20 Mhz, con 2 
Kb de EEPROM(electrically-erasable 
programmable read-only memory, 
ROM programable y borrable eléc-tricamente) 
y 16 E/S (entradas y sa-lidas) 
más 2 dedicadas. Este micro es-tá 
instalado en una placa educativa 
con una pequeña protoboard (pla-queta 
de experimentación), donde 
podremos realizar todas nuestras ex-periencias. 
Viene con un servo, leds, 
capacitores, resistencias y otros com-ponentes 
para diseñar nuestro robot. 
Las guías que acompañan a este y 
otros kits son excelentes (¡y algunas 
están en castellano!), y pueden con-seguirse 
en forma gratuita en el sitio 
de la empresa. La última creación de 
Parallax ha sido el micro de nombre 
Propeller, con 8 procesadores para-lelos 
en su interior. Tiene una arqui-tectura 
de 32 bits, 80 Mhz, con 32 
pines de E/S direccionables por cual-quiera 
de los 8 procesadores. Para 
buscar más información, podemos 
visitar www.parallax.com. 
• XiOR: en América Latina, conta-mos 
con nuestro propio kit de ro-bótica. 
XiOR (www.xior.org) es 
una empresa argentina de tecnolo-gía 
y entre sus trabajos ha desarro-llado 
un sistema constructivo para 
la fabricación de robots móviles au-tónomos. 
El modelo N10 es el pri-mer 
robot desarrollado con él (Figu-ra 
12). Una de sus principales carac-terísticas 
es la posibilidad de que el 
usuario reconfigure toda su morfo-logía 
física para adaptarlo a diferen-tes 
entornos y experimentos. Inclu-so 
es posible combinarlo con otros 
robots similares para formar parte 
de estructuras mayores. 
Normalmente, está equipado con 
2 o 4 celdas de Li-Ion de 900 mAh, 
1. CONCEPTOS FUNDAMENTALES 
28
agrupadas en packs de a dos. En 
cuanto a las capacidades de procesa-miento, 
el controlador XiOR.0107 
tiene un procesador AVR ATMega8 
(Atmel, 2003) de 16 MIPS aproxi-madamente, 
y 8 KB de RAM de 
programa, e incorpora comunica-ciones 
RS-232, 2WI y drivers de po-tencia 
para agregar dos motores adi-cionales 
de corriente continua o un 
motor paso a paso. 
El sistema constructivo Múltiplo 
ofrece piezas de aluminio y plásti-co 
cuidadosamente diseñadas para 
desarrollar robots de tamaño redu-cido, 
pero con una precisión y ro-bustez 
sorprendentes. Podemos 
encontrar más información en 
www.xior.org. 
Además de estos kits que mencio-namos, 
el mercado de la robótica 
educativa crece día a día, y en la 
Web podemos encontrar muchos 
otros que tal vez se ajusten mejor 
a nuestras necesidades. Aunque 
aquí describimos los más conoci-dos, 
podemos navegar para buscar 
más información sobre el tema. 
Introducción a la robótica 
Figura 13. Sphinx, otro modelo de XiOR 
para el control de pozos de petróleo. 
Robótica sin kits 
Como comentamos antes, realizar 
un robot sin la ayuda de un kit nos 
proporciona mayor versatilidad, ro-bustez, 
potencia, precisión, veloci-dad 
y adaptabilidad. El problema 
esencial es que nos exige mayor co-nocimiento 
y trabajo. Cuando co-mencemos 
un desarrollo de este tipo, 
lo primero que debemos analizar es 
el procesador que vamos a utilizar, 
según la funcionalidad y el costo que 
deseamos que tenga nuestro robot. 
29 
▲ 
OTROS KITS LATINOAMERICANOS 
Además de los kits mencionados, a continuación presentamos links donde se pue-den 
encontrar otros kits desarrollados en Latinoamérica: 
•NeoRobotic: kits de robótica autónoma (www.neorobotic.com). 
•Arbot: robots controlados desde la PC por puerto paralelo (www.dutten.com.ar). 
•Blocky-tronic: sistema constructivo con microcontrolador, sensores y motores 
(www.blockymania.com.ar/blockytronic/).
Además, debemos tener en cuenta 
que es necesario complementar el 
procesador con un circuito de con-trol 
adecuado para realizar las cone-xiones 
de entrada, salida, alimenta-ción 
y control de dispositivos. 
Microcontroladores 
El procesamiento más habitual en los 
robots pequeños y de bajo costo es el 
provisto por microcontroladores. 
Los micros más utilizados son los de 
la familia PIC, de la firma Micro-chip. 
De todos los modelos que se 
ofrecen, el más popular para la cons-trucción 
de robots es el PIC16F84. 
Posee una memoria de programa 
Flash de 1 KB con palabras de 14 bits, 
una memoria RAM de datos de 68 
bytes y una EEPROM de 64 bytes, y 
13 pines de E/S. 
Por otra parte, su precio es más que 
accesible. Dado que desarrollaremos 
nuestro robot con PIC, dejaremos 
para más adelante una descripción 
más detallada de éstos. 
La empresa Atmel fabrica otro tipo 
de microcontroladores, que también 
son de uso habitual en la construc-ción 
de robots. De todas sus líneas, la 
denominada AVR de 8 bits es la más 
recomendada para el procesamiento 
en esta disciplina. Toda la línea AVR 
presenta características como bajo 
poder de consumo, arquitectura 
RISC y Harvard, 32 registros de 8 
bits de propósito general y facilidad 
de implementación de lenguajes de 
alto nivel para la programación. 
En particular, el micro ATMega8 (Figu-ra 
15) es ideal, dado que presenta una 
memoria de 8 KB de programa, 1 KB 
de SRAM y 512 bytes de EEPROM, 
seis canales de PWM, USART progra- 
1. CONCEPTOS FUNDAMENTALES 
Figura 14. Otro de los micros 
de la firma Microchip, creadora 
del 16F84. 
Figura 15. ATMega8 en una placa 
de prototipado rápido. 
30
mable, conversor analógico digital de 
cuatro canales multiplexados de 10 u 8 
bits y dos canales de 8 bits, entre otras 
características que se pueden encontrar 
en la página de la firma. 
PDA 
Si no tenemos una base de conoci-miento 
❘❘❘ 
y experiencia en electrónica 
para utilizar los microcontroladores 
que presentamos pero contamos con 
una Palm o una PocketPC, podemos 
destinar parte de su tiempo de uso pa-ra 
que actúe como cerebro de nuestra 
creación. En los últimos años, estos 
dispositivos han bajado de precio en 
forma notable y, además, algunos mo-delos 
han caído en desuso, aunque 
pueden adaptarse perfectamente para 
ser empleados con nuestros robots. 
Uno de los ejemplos más interesantes 
en este punto es la adaptación del ro-bot 
Robosapien (Figura 17) de la fir-ma 
Wow Wee para que pueda ser 
controlado desde una PocketPC por 
infrarrojo, con lo cual utilizamos la 
PDA como control remoto inteligen-te 
que puede generar su propio pro-cesamiento. 
Para la detección del 
Introducción a la robótica 
mundo se utiliza una cámara que se 
conecta en el puerto de tarjetas de me-moria. 
En síntesis, con poco dinero 
podemos tener un robot humanoide. 
Se puede obtener más información en 
www.informatik.uni-freiburg.de/ 
~nimbro/media.html. 
El Instituto de Robótica de Car-negie 
Mellon desarrolló un proyec-to 
para la construcción de un robot 
autónomo móvil de bajo costo, y se 
utilizó una Palm como procesador (Fi-gura 
18). En el sitio www.cs.cmu.edu/ 
~reshko/PILOT podemos encontrar 
todos los pasos y los materiales nece- 
ARDUINO, UNA PLATAFORMA OPEN HARDWARE PARA ROBÓTICA 
31 
Figura 16. Arduino, una plataforma 
abierta en software y hardware para 
el desarrollo de robots. 
Arduino es una placa basada en el micro Atmel ATmega8, programable por serial o 
USB, con entradas y salidas analógicas y digitales. Su diseño y distribución son com-pletamente 
libres. En su sitio web, www.arduino.cc, podemos encontrar los planos pa-ra 
armar la placa y el software necesarios para su programación. Si no nos animamos 
a construirlos desde cero, podemos adquirir los componentes en el mismo sitio.
sarios para construirlo, incluido el 
software que es indispensable bajar 
en la Palm para la programación. Si 
bien utiliza ruedas omnidirecciona-les, 
servos y otros materiales que 
pueden ser costosos en el mercado 
local, con ellos obtendremos un ro-bot 
móvil de excelente calidad. 
Comprar una PDA pura y exclusiva-mente 
para la construcción de un ro-bot 
es demasiado costoso en compa-ración 
con las otras variantes. Pero si 
disponemos de una, o si los precios 
de estos dispositivos continúan ba-jando, 
puede ser una posibilidad 
muy interesante por su potencia de 
procesamiento y tamaño. 
Computadoras (PC) 
Por último, no queremos dejar de pre-sentar 
la posibilidad de usar mother-boards 
de PC convencionales pero de 
tamaños reducidos, conocidos como 
Mini y Nano-ITX (Figura 19). Por 
ejemplo, la conocida firma VIA ha de-sarrollado 
la línea EPIA, de bajo con-sumo 
y con un tamaño que oscila en-tre 
12 y 17 centímetros de lado. Uno 
de sus modelos, el VIA EPIA NL, po-see 
placa de video de S3, zócalo para 
memoria DDR 266/333/400, un slot 
mini PCI, un puerto S-ATA y dos 
P-ATA, placa de sonido, LAN, puerto 
serie, USB y otros, que permiten tener 
toda la potencialidad de una PC ¡en 12 
x 12 centímetros! En el sitio www. 
mini-itx.com se muestran desarrollos 
1. CONCEPTOS FUNDAMENTALES 
Figura 17. Robot Robosapien 
hackeado con una PDA en 
su cabeza como procesador. 
Figura 18. Palm Pilot Robot Kit 
es un kit de robótica cuyo 
procesador es una Palm Pilot. 
32
de fanáticos de estos modelos, no só-lo 
en robótica, sino también en los 
dispositivos más extraños. En www. 
epiacenter.com se analizan muchos 
mothers de este tipo, de diferentes 
marcas, y se ofrecen los links a tiendas 
en línea donde adquirirlos. La enorme 
ventaja de utilizar este tipo de tecno-logía 
❘❘❘ 
es la potencia que nos brinda una 
PC para el procesamiento de la infor-mación 
de los sensores y la toma de 
decisiones, la posibilidad de progra-mar 
cómodamente en lenguajes de al-to 
nivel, y la facilidad de desarrollar y 
de testear en nuestra computadora de 
escritorio. Por otra parte, tanto los 
sensores como los actuadores que que-ramos 
conectar pueden desarrollarse 
sobre plataformas muy conocidas, co-mo 
serial, paralelo o USB. Cualquier 
cámara web puede conectarse en se-gundos, 
y todos los drivers de los dis-positivos 
ya desarrollados funcionan 
sin problema en nuestro robot. 
Sensores 
Una de las características fundamen-tales 
que debe tener un robot es po-seer 
Introducción a la robótica 
Figura 19. Nano-itx, un motherboard 
de la empresa Via, de 12 cm por 12 cm. 
algún mecanismo de modifica-ción 
de su comportamiento según el 
ambiente en el que se encuentra. Pa-ra 
esto, tiene que contar con disposi-tivos 
que le permitan sentir el mun-do 
que lo rodea, según la tarea que 
deba realizar. Por ejemplo, en am-bientes 
muy dinámicos, es probable 
que deseemos sensores que puedan 
captar rápidamente la información, 
aunque perdamos precisión. Si esto 
no fuera así, la información recibida 
no sería útil, porque representaría un 
ROBOTS CON NOTEBOOKS 
Gracias a la baja de su precio y a su tamaño, no es sorprendente encontrar robots 
cuyo procesamiento lo realiza una notebook. Permite utilizar lenguajes de alto ni-vel, 
muy buena velocidad de procesamiento y entradas y salidas estándares como 
serial, paralelo, USB o firewire. Además, es posible desarrollar todo el comporta-miento 
del robot desde una PC convencional, y cualquier desperfecto es fácil de sal-var 
33 
con la instalación una nueva notebook.
estado antiguo que, con seguridad, 
ha sido modificado por el alto dina-mismo 
del ambiente. Un ejemplo de 
esto es el fútbol de robots. 
En otros casos, necesitamos la mayor 
precisión posible por la operación que 
realizamos y para lograrlo, tendremos 
que utilizar sensores de mayor fiabili-dad, 
aunque su tiempo de respuesta 
sea bajo. En realidad, cuando cons-truimos 
un robot, siempre luchamos 
con esta dualidad (y, seguramente, 
con muchas variables más). Es por 
eso que la elección de los sensores 
que utilicemos estará determinada 
por la tarea que vayamos a realizar y 
sus requerimientos particulares. 
Los sensores pueden definirse como 
dispositivos que nos permiten medir 
alguna característica del ambiente, co-mo 
la temperatura, la distancia, la po-sición, 
el sonido, la intensidad de la 
luz, los colores, la altitud, la velocidad, 
la rotación, etcétera. Lamentablemen-te, 
en la realidad no existe el sensor 
perfecto, y por lo tanto debemos com-pletar 
y corregir la información con la 
utilización de algoritmos de correc-ción 
y redundancia de sensores. 
Otro aspecto importante para tener 
en cuenta es que, según el tipo de 
controlador que utilicemos para 
nuestro robot, deberemos diseñar 
circuitos intermedios entre el sen-sor 
y el controlador, con el fin de 
convertir la señal del sensor en un 
1. CONCEPTOS FUNDAMENTALES 
34 
30 
25 
20 
15 
10 
5 
0 
0 5 10 15 20 25 30 
Tiempo 
Valor 
Figura 20. En este caso, los valores son los de un sensor analógico.
valor interpretable por nuestro pro-cesador. 
Por lo tanto, aunque poda-mos 
utilizar un mismo sensor para 
diferentes plataformas de controla-dores, 
con seguridad tendremos que 
diseñar estas interfaces en forma de-dicada 
para cada procesador. 
Clasificación 
Podemos dividir a los sensores en dos 
grandes grupos: analógicos y digita-les. 
Los analógicos entregan un valor 
(por ejemplo, una tensión) dentro de 
un determinado rango continuo (Figu-ra 
20). Un ejemplo de este tipo es una 
fotorresistencia, que mide la intensi-dad 
de la luz, y que podemos adaptar 
para que entregue un valor de 0 a 5 Vol-tios. 
Introducción a la robótica 
Los sensores digitales entregan una 
señal discreta dentro de un conjunto 
posible de valores (Figura 21). Es decir, 
este conjunto de valores se modifica de 
un rango a otro por saltos discretos y 
no continuos. 
Un ejemplo clásico es el sensor de to-que, 
que devuelve valor 1 (ó 0 Vol-tios) 
si está apretado y 0 (ó 5 Voltios) 
si no es así. 
Desde ya que, a pesar de que el sen-sor 
sea analógico, finalmente, en la 
lectura del controlador, obtendremos 
un valor discreto. Es decir, se realiza-rá 
una conversión analógico/digital 
dentro del controlador o en la inter-faz 
que construyamos para la adapta-ción 
del sensor al controlador. 
35 
30 
25 
20 
15 
10 
5 
0 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 
Tiempo 
Valor 
Figura 21. Aquí podemos ver un ejemplo de valores tomados por un sensor digital.
Figura 22. Aquí podemos apreciar 
un sensor de efecto hall. 
Otra clasificación posible de los sen-sores 
es internos y externos. Los in-ternos 
son aquellos que nos brindan 
información del propio robot, como 
la velocidad, la rotación, la posición, 
la altura, etcétera; en tanto que los ex-ternos 
son los que proporcionan da-tos 
del ambiente, como las distancias, 
la temperatura, la presión, etcétera. 
Por último, también podemos dividir 
los sensores en pasivos y activos. Los 
activos son los que necesitan enviar una 
señal hacia el ambiente para luego reci-bir 
el rebote de esa señal y, de esta ma-nera, 
interpretar el estado del mundo 
que lo rodea. Un ejemplo clásico de es-te 
tipo de sensor es el ultrasónico, que 
envía una señal sonora que, al rebotar 
con un objeto, vuelve al robot, y al cal-cular 
el tiempo de demora, puede in-terpretar 
la distancia al objeto. Desde 
ya que los sensores activos necesitan 
mucha más electrónica para su funcio-namiento, 
pero la información que nos 
brindan es mucho más rica que la que 
nos ofrecen los sensores pasivos. 
Tipos de sensores 
Hacer una lista de todos los tipos de 
sensores existentes sería imposible. 
Los que nombraremos a continua-ción 
son los más utilizados en robó-tica 
de bajo costo: 
• Sensores de interrupción: simple-mente, 
detectan si pasa corriente o 
no. Se utilizan como sensores de 
choque o contadores de eventos 
(vueltas de una rueda, por ejemplo). 
• Sensores de posición: determinan la 
posición del robot. Un sensor de es-te 
tipo puede ser un potenciómetro 
que cambia su valor por la rotación 
de las ruedas; u ópticos, como los que 
1. CONCEPTOS FUNDAMENTALES 
SIMULADORES 
▲ 
Existen cientos de simuladores de distintos tipos de robots: humanoides, autóno-mos, 
36 
robots para fútbol, etcétera. Por ejemplo, uno de los más interesantes en el 
fútbol de robots lo podemos conseguir en el sitio www.fira.net/soccer/simurosot/ 
R_Soccer_ v15a_030204.exe. Sin embargo, un simulador no es lo mismo que la ro-bótica 
física. Creer que la experiencia física es igual a la simulada es pensar que 
Second Life es igual a la vida misma. Y no es así, ¿no?
se usan en un mouse tradicional, que 
cuentan la cantidad de veces que re-cibe 
❴❵ 
señal el sensor óptico de una rue-dita 
que tiene ventanitas cada deter-minado 
ángulo (podemos abrir uno 
para verlo, el mecanismo es sencillo). 
• Sensores de efecto hall: estos sen-sores 
utilizan una propiedad de los 
imanes, que modifican su conduc-tividad 
cuando encuentran un ob-jeto 
metálico (Figura 22). 
• Sensores de luz o brillo: detectan 
la cantidad de luz que reciben. Se-gún 
el tipo de sensor utilizado, por 
este mecanismo podemos detectar 
diferencias entre los colores, si és-tos 
no son brillantes. 
• Sensores infrarrojos: envían una 
señal infrarroja y determinan el 
tiempo que tardan en volver a reci-birla. 
Permiten detectar obstáculos 
(si la señal vuelve) o medir distan-cias 
si el sensor es preciso. 
• Sensores de ultrasonido: como 
explicamos antes, envían una señal 
sonora y captan el rebote, de la 
misma manera en que lo hace un 
Sonar en el mar. 
Introducción a la robótica 
En los últimos tiempos, gracias a la 
posibilidad de contar con mucha ca-pacidad 
de procesamiento en tamaño 
reducido, se ha comenzado a utilizar 
el video como sensor de los robots. 
37 
Figura 23. Laser Sick, usado como 
sensor por su magnífica precisión. 
ROBOTS ADAPTATIVOS 
Una de las dificultades más complejas en el desarrollo de robots es la de darles la 
capacidad de adaptarse en tiempo real al mundo que los rodea. Por ejemplo, los sis-temas 
de visión son muy dependientes de la luz que existe en el ambiente. Por esa 
razón, es habitual que en las competencias de robots, los equipos que han tenido un 
gran desempeño en días anteriores, ante un leve cambio de iluminación no puedan 
realizar prácticamente ninguna tarea.
Figura 24. En esta imagen podemos ver un insecto robótico que, 
en lugar de motores, utiliza músculos de alambre. 
El procesamiento de imágenes es un 
tema muy complejo y apasionante al 
mismo tiempo, y escapa a la arquitec-tura 
❘❘❘ 
y los costos de fabricación de los 
robots que nos hemos propuesto pa-ra 
este libro. Pero seguramente, en 
poco tiempo podremos utilizar nues-tras 
webcam en forma sencilla y eco-nómica 
para nuestras creaciones. Las 
cámaras son los sensores que más da-tos 
nos proveen en un lapso de tiem-po 
muy breve. El problema funda-mental 
es que necesitamos mucho 
tiempo de procesamiento en algorit-mos 
complejos para extraer informa-ción 
útil de semejante cantidad de 
1. CONCEPTOS FUNDAMENTALES 
MÚSCULOS DE ALAMBRE 
Hasta hoy, el movimiento de los robots se ha realizado con motores. Pero si queremos 
imitar el movimiento de organismos vivos, ninguno de ellos utiliza este tipo de dispo-sitivos. 
38 
Es por eso que se ha desarrollado otro tipo de sistema de movimiento conoci-do 
como músculos de alambre (wired muscles). Los músculos de alambre son, como 
su nombre lo indica, alambres que cambian su longitud cuando se calientan, lo que se 
puede lograr al pasar corriente eléctrica por ellos (Figura 24).
❘❘❘ 
bits. Es en este tipo de algoritmos 
donde podremos encontrar con más 
claridad el dilema a resolver entre 
velocidad y precisión. 
Actuadores 
Si nuestro robot sólo observara el 
mundo sin actuar en él, sería un robot 
sumamente limitado. Nuestro deseo 
es que modifique su estado y el del 
ambiente según la información que 
obtiene en el proceso. Con este fin, 
disponemos de motores, músculos de 
alambre, lámparas, displays, buzzers, 
etcétera. Al conjunto de estos disposi-tivos 
se lo denomina actuadores. 
Los actuadores más sencillos de utili-zar 
son las lámparas, que no ameritan 
demasiada descripción para su uso. 
Simplemente, con conectarlas a algu-na 
salida del procesador y proveer la 
alimentación necesaria para su fun-cionamiento, 
podremos encenderlas 
y apagarlas con nuestro programa. 
Sin embargo, pondremos nuestro fo-co 
de atención en los motores, dado 
que definen en gran medida nuestra 
capacidad de desplazamiento, los 
grados de libertad y otros aspectos 
vinculados al movimiento del robot. 
Por definición, el motor eléctrico es 
un dispositivo electromotriz, es decir, 
que convierte la energía eléctrica en 
energía motriz. Todos los motores 
disponen de un eje de salida para aco-plar 
un engranaje, una rueda, una po-lea 
o cualquier mecanismo capaz de 
Introducción a la robótica 
transmitir el movimiento creado por 
el motor. La etapa de elección de un 
motor puede ser una tarea muy com-plicada 
según las limitaciones de 
nuestro proyecto, si tenemos en 
cuenta todas las características que 
definen al motor. Éstas son: tamaño, 
peso, velocidad (revoluciones por mi-nuto, 
RPM), torque (kilogramo por 
centímetro) tensión y, la más sensi-ble: 
el costo. En la actualidad, existen 
diferentes tipos de motores, que des-cribiremos 
a continuación: 
Motores de corriente 
continua (CC) 
Son los motores más comunes y que 
casi todos conocemos (Figura 25). En 
general, los encontramos en cualquier 
LEYES DE LA ROBÓTICA 
Dentro de su producción literaria basa-da 
en la robótica, Asimov definió tres 
leyes para la protección de los huma-nos 
que los robots de ficción tienen al-macenadas 
en su cerebro positrónico. 
Éstas son: 
1. Un robot no puede hacerle daño a un 
ser humano o, por inacción, permitir que 
un ser humano sufra daño. 
2. Un robot debe obedecer las órdenes 
de un humano, salvo que alguna de és-tas 
entre en conflicto con la primera ley. 
3. Un robot debe proteger su propia 
existencia, salvo que esto viole la pri-mera 
39 
o la segunda ley.
Figura 25. Motores y motorreductores 
de corriente continua. 
tipo de juguete (¡un buen lugar don-de 
ir a buscarlos!). El funcionamien-to 
del motor se basa en la acción de 
campos magnéticos opuestos que ha-cen 
▲ 
girar el rotor (eje interno) en di-rección 
opuesta al estator (imán ex-terno 
o bobina). De este modo, si su-jetamos 
la cubierta del motor por me-dio 
de soportes o bridas, el rotor con 
el eje de salida será lo único que gira-rá. 
Para cambiar la dirección de giro 
en un motor de corriente continua, 
tan sólo debemos invertir la polaridad 
de su alimentación eléctrica. 
Un detalle importante es que, casi 
siempre, se utilizan acompañados de 
un sistema de engranajes que reducen 
la velocidad y proporcionan mayor 
fuerza, dado que este tipo de motores 
carece de esta cualidad. Es convenien-te 
conseguir el conjunto completo 
porque las adaptaciones son compli-cadas 
y pocas veces se obtienen muy 
buenos resultados. 
Motores paso a paso (PAP) 
Un motor paso a paso (Figura 26) se 
diferencia de uno convencional por-que 
puede ubicar su eje en posicio-nes 
fijas o pasos, con lo cual es ca-paz 
de mantener la posición. Esta 
peculiaridad se debe a la construc-ción 
del motor en sí: por un lado, 
tiene el rotor constituido por un 
imán permanente, y por el otro, el 
estator construido por bobinas. Al 
alimentar alguna de esas bobinas, se 
atrae el polo magnético del rotor 
opuesto al polo generado por la bo-bina, 
y éste permanece en esta posi-ción 
hasta que la bobina deje de ge-nerar 
el campo magnético y se acti- 
1. CONCEPTOS FUNDAMENTALES 
FANÁTICOS DE LEGO 
Como comentamos anteriormente, Lego tuvo la precaución de liberar muchísima 
información sobre sus diseños de manera que otros pudieran desarrollar material 
para sus kits. Es por eso que podemos encontrar varios lenguajes para poder pro-gramar 
40 
los robots de esta firma. Además, también se pueden conseguir los planos 
de los sensores de todo tipo. Una de las páginas más conocidas de sensores case-ros 
es www.extremenxt.com/lego.htm.
ve otra bobina, lo cual hace avanzar 
o retroceder al rotor. De esta mane-ra, 
al variar los campos magnéticos 
en torno al eje del motor, se logra 
que gire. Los motores PAP pueden 
ser de dos tipos: 
Bipolar: lleva dos bobinados indepen-dientes. 
❘❘❘ 
Para controlarlo se necesita in-vertir 
la polaridad de cada una de las 
bobinas en la secuencia adecuada. 
Unipolar: dispone, normalmente, 
de 5 ó 6 cables, dependiendo de si el 
común está unido en forma interna 
o no. Para controlar este tipo de mo-tores 
existen tres métodos con sus 
correspondientes secuencias de en-cendido 
de bobinas. El común irá 
conectado a +VCC o masa según el 
circuito de control usado y, luego, 
sólo tendremos que alimentar la bo-bina 
correcta para que el motor 
avance o retroceda según avancemos 
o retrocedamos en la secuencia. Es-tos 
motores son muy utilizados en 
disqueteras, lectoras de CD e impre-soras. 
En las antiguas disqueteras de 
51/4, podemos encontrar algunos 
bastante poderosos, y en las lectoras 
Introducción a la robótica 
de CD, unos más pequeños pero 
siempre acompañados de buenos me-canismos 
reductores. 
Servomotores 
El servo (Figura 27) es un pequeño pe-ro 
potente dispositivo que dispone en 
su interior de un pequeño motor con 
un reductor de velocidad y un multi-plicador 
de fuerza. También cuenta 
con un pequeño circuito eléctrico en-cargado 
de gobernar el sistema. El re-corrido 
del eje de salida es de 180º en 
41 
Figura 26. Vista interna 
de un motor paso a paso. 
BUZZERS PARA DETECTAR ERRORES 
Una de las herramientas fundamentales para detectar errores en nuestro robot es 
la posibilidad de mostrar en un display el valor de los sensores, las variables, etcé-tera. 
El problema es que como se trata de un ente autónomo, tendríamos que co-rrer 
detrás de él para ver qué ocurre y leer los valores que se muestran en el dis-play. 
Es por eso que usualmente al robot se le agrega un buzzer que nos permite 
emitir sonidos y enterarnos de lo que sucede.
Figura 27. Servomotor tradicional de la marca Hitec. 
la mayoría de ellos, pero se puede mo-dificar 
✱ 
con facilidad para tener un re-corrido 
libre de 360º y, entonces, ac-tuar 
como un motor común. 
El control de posición lo efectúa el 
servo en forma interna mediante un 
potenciómetro que va conectado en 
forma mecánica al eje de salida. Éste 
controla un PWM (Pulse Width Mo-duler, 
modulador de anchura de pul-sos) 
interno para compararlo con la 
entrada PWM externa del servo, me-diante 
un sistema diferencial y así, 
modificar la posición del eje de sali-da 
hasta que los valores se igualen y 
el servo se detenga en la posición in-dicada. 
En esta posición, el motor del 
servo deja de consumir corriente y 
sólo circula una pequeña cantidad 
hasta el circuito interno. Si en ese 
1. CONCEPTOS FUNDAMENTALES 
NANOBOTS 
Los nanobots son robots de tamaño microscópico, cuyas dimensiones están en el or-den 
42 
de una millonésima de milímetro. Se realizan con técnicas de nanotecnología y, 
aunque aún son ensayos y especulaciones teóricas, ya se han dado pasos para su con-creción. 
Esencialmente, se han desarrollado nanobots químicos o moleculares con fun-ciones 
limitadas. La aplicación para estos futuros robotitos está apuntada a la medici-na, 
la industria, la ecología y la producción de alimentos.
momento forzamos el servo (al mo-ver 
el eje de salida con la mano), el 
control diferencial interno lo detecta 
y manda la corriente necesaria al mo-tor 
para corregir la posición. 
Para controlar un servo, tenemos que 
aplicar un pulso de duración y una 
frecuencia específicos. Todos los ser-vos 
disponen de tres cables: dos pa-ra 
la alimentación y uno para aplicar 
el tren de pulsos de control que ha-rán 
que el circuito de control dife-rencial 
Introducción a la robótica 
interno ponga el servo en la po-sición 
indicada por la anchura del pul-so. 
Los servomotores son una muy 
buena alternativa, ya que traen inte-grado 
un sistema reductor que nos 
ahorrará dolores de cabeza a la hora de 
buscar fuerza. La desventaja para al-gunas 
aplicaciones es que, en general, 
son lentos. Se utilizan mucho en los 
automóviles y aviones radiocontrola-dos, 
principalmente para accionar el 
mecanismo que les da la dirección. 
43 
… RESUMEN 
En este primer capítulo hemos hecho una breve introducción a los conceptos fun-damentales 
de la robótica. Un robot no es más que un dispositivo con un deter-minado 
grado de movilidad, que puede realizar un conjunto de tareas en forma 
independiente y se puede adaptar al mundo en el que opera. Existen diversos ti-pos 
de robots, según el uso para el cual se han destinado, el medio en el que se 
mueven, la capacidad de autonomía que presentan, etcétera. 
Cualquiera de estos robots está dirigido por una unidad de procesamiento, que se 
puede adquirir en forma completa con todas sus comunicaciones de entrada y sa-lida 
resueltas, o que podemos desarrollar desde cero con micros, dispositivos 
portátiles o, simplemente, motherboards de PC. 
Además, necesita de sensores para poder captar el mundo. Cuanto más complejo 
sea un sensor y más datos nos provea, tendremos que renunciar a ciertos aspec-tos 
de velocidad para obtener información más precisa. Por último, para que el ro-bot 
pueda trasladarse y actuar sobre el entorno, necesitamos de los actuadores. 
Los esenciales y más usados son los motores, de los cuales tenemos diversos ti-pos 
según el objetivo de nuestro robot y la cantidad de dinero que poseamos.
✔ 
ACTIVIDADES 
TEST DE AUTOEVALUACIÓN 
1 ¿Cuál es nuestra definición de robot? 
2 ¿Qué clasificaciones encontramos de 
los diferentes tipos de robots? 
3 ¿Cuáles son las unidades que presen-ta 
44 
un robot? 
4 Compare las ventajas y desventajas del 
uso de un kit de robótica o el desarrollo 
desde cero del procesamiento del robot. 
5 Si desarrollamos la unidad de procesa-miento 
por nuestros propios medios, 
¿qué dispositivos podemos utilizar? 
6 ¿Qué es un sensor? ¿Cuál es la diferen-cia 
entre sensores activos y pasivos? 
7 ¿Cuáles son los tipos de sensores con 
los que podemos contar en la elabora-ción 
de nuestro robot? 
8 ¿Qué ventajas y desventajas presenta 
el uso de video como entrada de datos 
de un robot? 
9 ¿A qué llamamos actuadores? 
10¿Qué tipos de motores encontramos 
en el mercado?
Robótica 
Componentes 
del robot 
Capítulo 2 
Antes de comenzar a construir nuestro 
robot, daremos una mirada general 
a todos los componentes 
que lo conformarán. Desde 
ya que elegiremos puntualmente 
alguno de ellos, pero con este capítulo 
nos será sencillo seleccionar otras 
variantes según el objetivo que 
tengamos para nuestro robot. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Una mirada global a nuestro 
futuro robot 46 
Objetivos de nuestro robot 47 
Tipo de procesamiento 
seleccionado 48 
¿Cómo le damos movimiento 
a nuestro robot? 50 
¿Y cómo captamos el mundo 
que nos rodea? 53 
Materiales para la mecánica 55 
Resumen 59 
Actividades 60
UNA MIRADA 
GLOBAL A NUESTRO 
FUTURO ROBOT 
Como hemos podido ver en el primer 
capítulo, la cantidad de variantes que 
tenemos para construir nuestro robot 
es inmensa. Es por eso que en este 
capítulo, presentaremos los materia-les 
que hemos decidido utilizar para 
nuestra primera creación, y justifica-remos 
la elección que hemos realiza-do. 
En primer lugar, vamos a dar un 
paseo por el mundo de los micropro-cesadores, 
introduciremos un conjun-to 
de conceptos que nos serán im-prescindibles 
a la hora de construir el 
controlador de nuestro robot. Luego 
veremos el tipo de motores que vamos 
a utilizar y dónde podemos conse-guirlos. 
Para esto podremos desarmar 
algún equipo electrónico antiguo, co-mo 
disqueteras, impresoras, etcétera. 
Luego, haremos lo mismo con los 
sensores, siempre con el objetivo de 
gastar la menor cantidad de dinero 
posible en nuestro primer proyecto 
(¡luego vendrán proyectos multimi-llonarios!). 
Y por último, echaremos 
una mirada sobre el material que po-demos 
utilizar para la construcción 
del cuerpo de nuestro robot. 
2. COMPONENTES DEL ROBOT 
46 
Figura 1. Ejemplo de un robot artesanal con diversos sensores.
Objetivos de nuestro robot 
Para la elección de todos los compo-nentes 
de nuestro robot, es necesario 
que fijemos claramente cuáles serán 
los objetivos, es decir, las tareas que 
queremos que nuestro robot realice. 
La primera decisión fundamental es 
definir si vamos a utilizar un kit o 
construiremos nuestro robot desde 
cero en forma artesanal. Es una deci-sión 
fundamental porque implica un 
presupuesto mucho más alto en el pri-mer 
caso y, de alguna manera, tam-bién 
acota las posibilidades de lo que 
vamos a diseñar. Por otra parte, en el 
primer capítulo ya enumeramos las 
ventajas que brinda el uso de un kit, 
pero en nuestro proyecto vamos a de-sarrollar 
el robot desde cero, paso a 
paso, componente por componente. 
En nuestro caso, la primera razón por 
la que lo haremos de esta manera es 
porque así vamos a aprender mucho 
más sobre todas las capas que com-ponen 
al robot. La segunda razón, no 
menos importante, es el costo de 
nuestro proyecto. La idea es que po-damos 
reutilizar elementos que en-contremos 
en desuso. Un humilde 
aporte ecológico de nuestra parte. 
Bien, ahora que hemos decidido ar-mar 
en forma artesanal nuestro pri-mer 
robot, tenemos que dejar en cla-ro 
qué es lo que queremos que haga. 
En este libro, nuestro objetivo es re-alizar 
un robot que pueda, en dife-rentes 
adaptaciones, detectar obje-tos 
Una mirada global a nuestro futuro robot 
y esquivarlos, seguir una línea 
negra, y buscar una luz. 
Cuando decimos diferentes adaptacio-nes, 
lo que queremos acentuar es que 
no necesariamente hará las tres cosas el 
mismo robot. Vamos a organizar dife-rentes 
proyectos, con mínimas modi-ficaciones 
entre uno y otro, para lograr 
los tres objetivos. Luego, si combina-mos 
la capacidad de tocar objetos con 
la detección de la línea negra, podre-mos 
construir un luchador de sumo. Y 
para realizar un sencillo jugador de fút-bol, 
uniremos la detección de luz con 
el tacto de los objetos, dado que nos 
prepararemos para una categoría que 
47 
Figura 2. Partido de fútbol de robots 
donde se utiliza una pelota infrarroja.
Figura 3. Uno de los micros 
de la firma Atmel. 
usa una pelota infrarroja (Figura 2). Pe-ro 
ya llegaremos a este punto dentro de 
unas cuantas páginas. Comencemos 
con el procesamiento. 
Tipo de procesamiento 
seleccionado 
Si seguimos la línea que acabamos 
de presentar, decidimos realizar 
nuestro controlador basándonos en 
un microcontrolador que fuera 
económico y de uso popular. Pero, 
para empezar, veamos qué es esto de 
los microcontroladores. A esta al-tura 
del siglo XXI, no nos sorpren-de 
encontrar en cualquier casa u ofi-cina 
una computadora, con sus uni-dades 
de entrada, de salida y de pro-cesamiento. 
Y estas computadoras, 
para nuestra alegría, se reducen cada 
vez más en precio y tamaño. ¿Pero, 
cuál es el límite de esta reducción? 
Aquellos que usaron un dispositivo 
portátil, como una PDA, habrán no-tado 
que la pantalla y el teclado son, 
en estos momentos, los puntos crí-ticos 
de reducción. Ahora bien, si no 
necesitáramos información por una 
pantalla y el ingreso por teclado, 
¿podríamos tener una computadora 
mucho más pequeña? Sí, podemos, 
y de alguna manera eso es un mi-crocontrolador, 
un circuito integra-do, 
con CPU, memoria y conexión 
para entradas y salidas. Todo esto, en 
un tamaño muy reducido, no mayor 
al de una estampilla. 
Si lo vemos de esta manera, pode-mos 
confundir un microcontrolador 
con un microprocesador. ¿En qué se 
diferencian? Principalmente, en que 
el microcontrolador suma a un mi-croprocesador 
un conjunto de ca-racterísticas 
electrónicas que lo ha- 
2. COMPONENTES DEL ROBOT 
❘❘❘ 
La primera prueba sorprendente que realizaremos con un robot, y la competencia 
más habitual en los torneos de robots, es el seguimiento de una línea. En general, 
esta prueba está condimentada con otras dificultades, como la presencia de obstá-culos 
48 
SEGUIDOR DE LÍNEA (LINETRACKER) 
que tenemos que esquivar, variaciones de iluminación o de colores en la lí-nea, 
secciones donde la línea desaparece, etcétera.
cen menos dependiente de los chips 
de apoyo. Por ejemplo, la memoria, 
los conversores analógico digitales y 
el reloj, ya están incluidos dentro de 
los microcontroladores. 
¿Y para qué sirve un microcontrola-dor? 
Bueno, tener una computadora 
de ese tamaño nos permitiría contro-lar 
en forma medianamente inteligen-te 
diversos dispositivos. Y esto es lo 
que ocurre alrededor nuestro: en el au-to, 
en la heladera, en el microondas o 
en el lavarropas, con seguridad podre-mos 
encontrar uno o más microcon-troladores, 
que hacen muchísimo más 
sencilla la electrónica del aparato. 
Algunos de los microcontroladores son 
de propósito específico, es decir, fueron 
diseñados y optimizados para una tarea 
Una mirada global a nuestro futuro robot 
determinada. En general, estos micro-controladores 
no pueden ser reprogra-mados, 
por lo que también contamos 
con micros de propósito general, que 
pueden ser programados en diversos 
lenguajes y con destinos de todo tipo. 
Las empresas de microprocesadores de 
propósito general más conocidas son 
Microchip (PIC) y Atmel (AVR). 
Pondremos nuestra atención en la pri-mera 
de las dos, dado que el micro que 
usaremos será el PIC 16F88. Micro-chip 
Technology Inc. es una empre-sa 
de electrónica de Estados Unidos, 
surgida de la empresa GI (General Ins-truments). 
Del conjunto de productos 
que ha fabricado, la línea PIC (Perip-heral 
Interface Controller, Controlador 
de Interfaz Periférico) de microcon- 
49 
Figura 4. Un microcontrolador PIC montado en una placa controladora GoGo.
troladores ha sido su bastión funda-mental 
(Figura 4). Una de las carac-terísticas 
más importantes de estos mi-cros 
es que son de tipo RISC (Redu-ced 
Instruction Set Computer, Compu-tadora 
con Conjunto de Instruccio-nes 
Reducido) en contraposición con 
la arquitectura CISC (Complex Ins-truction 
Set Computer, Computadora 
con Conjunto de Instrucciones Com-plejo). 
Esto implica que tienen un 
conjunto reducido de instrucciones 
de tamaño fijo con respecto a la can-tidad 
de ciclos de reloj (en general, to-das 
las instrucciones necesitan de un 
solo ciclo de reloj) y que sólo las ins-trucciones 
de carga y almacenamien-to 
acceden a la memoria. Las ventajas 
que estas (y otras) características nos 
brindan son que la ejecución es más 
rápida y que permite el paralelismo 
entre instrucciones mediante una téc-nica 
llamada pipelined. 
La desventaja radica en que la pro-gramación 
con este reducido conjun-to 
de instrucciones tan atómicas im-plicará 
más trabajo. Con respecto a 
los PIC, las características fundamen-tales 
que podemos encontrar entre los 
diferentes modelos son: 
• Núcleo de 8/16 bits con arquitec-tura 
Harvard (las memorias de ins-trucciones 
y de datos están separa-das, 
y la CPU accede a ella por bu-ses 
distintos). 
• Puertos de E/S con conversores 
analógicos/digitales. 
• Memoria Rom y Flash. 
• Temporizadores. 
• Periféricos serie. 
La arquitectura básica de todos los 
PICs contiene una memoria de datos, 
una memoria de programa, una unidad 
aritmético lógica, una unidad de con-trol 
y puertos de E/S (entrada y salida). 
De todos los modelos, hemos elegido 
el 16F88 para realizar nuestro robot. Es 
por eso que en el próximo capítulo nos 
detendremos a analizar en forma deta-llada 
este micro en particular. 
¿Cómo le damos movimiento 
a nuestro robot? 
En el primer capítulo, ya hemos des-cripto 
el tipo de actuadores que po-demos 
encontrar en un robot. En 
nuestro caso, usaremos motores de 
corriente continua (cc) entre 8V y 
12V, con un consumo no superior a 
100 mAmp, que describiremos en 
profundidad más adelante. Estos mo-tores 
son más económicos y sencillos 
de controlar, pero en general carecen 
de precisión y fuerza (Figura 5). Para 
solucionar este problema, recomenda-mos 
los motores con caja de reducción 
incorporada (conocidos como moto-rreductores), 
que poseen un pequeño 
motor que gira a muchísimas revolu-ciones, 
unido a un sistema de reduc-ción 
que permite obtener fuerza con 
menor velocidad. Para nuestro robot 
utilizaremos un sistema de tracción 
2. COMPONENTES DEL ROBOT 
50
diferencial, dado que es el más senci-llo 
de controlar desde nuestro pro-grama 
(Figura 6). Este sistema utiliza 
dos ruedas convencionales ubicadas 
en el centro del robot, una de cada la-do, 
conectadas directamente a los 
motores. Esto nos dará la posibilidad 
de ir para adelante o para atrás, de 
aplicar la misma energía en ambos 
motores, o de realizar giros según la 
diferencia de velocidad de cada mo-tor. 
El recorrido en forma recta es 
difícil de conseguir en esta arquitec-tura 
dado que siempre encontramos 
diferencias de velocidad entre los mo-tores 
o en el giro de las ruedas, des-plazamientos, 
etcétera. Una de las 
maneras de controlar esto es realizar 
un sensado del mundo. Por ejemplo, 
si tenemos que seguir una línea ne-gra, 
bastaría con tener uno o dos sen-sores 
de luz que nos permitan detec-tar 
nuestra desviación de la línea pa-ra 
modificar la velocidad de los mo-tores. 
Otra manera es sensar el movi-miento 
de las ruedas con encoders si-milares 
a los que se utilizaban en un 
mouse antiguo. El problema de este 
mecanismo es que necesitamos de 
Una mirada global a nuestro futuro robot 
Figura 5. Motores de corriente 
continua de tamaño reducido. 
electrónica específica para este con-trol, 
algo que escapa a nuestro pri-mer 
proyecto. Por eso, por ahora nos 
conformaremos con que vaya me-dianamente 
en línea recta. 
Otra arquitectura de movimiento in-teresante 
es la omnidireccional. Con 
tres ruedas especiales ubicadas como 
podemos ver en la Figura 7, podemos 
dirigir al robot hacia cualquier punto, 
sin necesidad de girarlo en esa direc-ción. 
Esta forma de navegación es 
muchísimo más efectiva, ya que aho- 
❘❘❘ 
PICS ESPECIALES 
En la actualidad, tenemos modelos muy sorprendentes como el rfPIC, que incorpo-ra 
la posibilidad de comunicación wireless (¡en el mismo micro!) y los dsPIC, que 
tienen un bus de datos de 16 bits que permiten realizar operaciones de procesa-miento 
digital de señales. También podemos encontrar clones, más baratos o con 
51 
mejoras, como los que realiza la empresa Ubicom.
Figura 6. Vista desde abajo 
de un robot de tracción diferencial. 
Figura 7. Arquitectura de un robot 
con ruedas omnidireccionales. 
rramos tiempo al movernos siempre 
en línea recta. Pero el costo de las rue-das 
es elevado, y se necesita de algo-ritmos 
algo más complejos para cal-cular 
la velocidad que debe tener ca-da 
rueda para tener la dirección dese-ada. 
Una vez que hemos decidido el 
tipo de motor y la arquitectura de las 
ruedas que vamos a usar, ¿dónde po-demos 
conseguir los motores? Desde 
ya, una de las formas más sencillas de 
conseguirlos es comprarlos. 
Sin embargo, si tratamos de ahorrar 
ese dinero, va a ser necesario extraer 
los motores de algún aparato que ten-gamos 
en desuso. El problema de ha-cer 
esto es que como estos motores no 
tienen reducción, tendremos que in-geniárnosla 
para darles fuerza (desde 
ya, se perderá velocidad). Los apara-tos 
de donde podemos conseguir mo-tores 
de corriente continua son: 
• Impresoras: habitualmente con-tienen 
motores de corriente conti-nua 
y paso a paso. 
• Juguetes: autos o cualquier juguete 
con movimiento. En general, son 
motores muy pequeños. 
• Limpiaparabrisas: hay de 12V y 
de 24V. Debemos conseguir los 
del primer grupo. 
• Reproductores de casetes y videos. 
Si tenemos algún servo desperdicia-do, 
podemos modificarlo para utili-zarlo 
como motor CC. Los servos 
son un motor de ese tipo con una ca-ja 
reductora y un circuito de control 
y tope físico, que limita su giro a 180 
grados. Para convertirlo en lo que 
necesitamos, debemos eliminar el 
circuito de control y la limitación fí-sica, 
y de esta manera aprovechar la 
2. COMPONENTES DEL ROBOT 
52
caja reductora que posee. Los pasos 
necesarios para llevar a cabo esta ta-rea 
los veremos más adelante. 
Como dijimos previamente, para 
construir nuestro robot utilizaremos 
dos motores de CC de 12V, con un 
consumo de 100 mAH. 
¿Y cómo captamos el mundo 
que nos rodea? 
Como ya vimos en el capítulo ante-rior, 
un robot sin sensores es incapaz 
de cambiar su comportamiento para 
adaptarse al medio que lo rodea, por-que 
no puede captarlo. Es por eso que 
la elección que haremos de los senso-res 
es fundamental. En nuestro caso, 
utilizaremos sensores de contacto pa-ra 
detectar colisiones y sensores de luz 
o infrarrojos para detectar las líneas 
negras y la pelota infrarroja. 
Comencemos con el detector de co-lisiones. 
¿Qué podemos utilizar para 
ello? En realidad, cualquier dispositi-vo 
que funcione como interruptor es 
suficiente. Los sensores de contacto 
que se utilizan en robótica industrial 
se conocen como final de carrera. 
Una mirada global a nuestro futuro robot 
53 
Figura 8. Motor paso a paso unipolar. 
▲ 
Figura 9. Un ejemplo de sensor 
de final de carrera. 
MOTORES DE CORRIENTE CONTINUA 
Si no sabemos dónde conseguir motores de corriente continua, podemos visitar los 
sitios de los proveedores de este tipo de motores: 
• Ignis: www.ignis.com.ar. 
• Baldor: www.baldordistribuidora.com. 
• Telco: www.telcointercon.com/telcomotion/brushed/micro_dc.htm. 
• Micro-Drives: www.micro-drives.com.
Figura 10. Micro switch utilizado 
habitualmente como sensor de contacto. 
Este sensor debe tener algún meca-nismo 
para que, una vez activado, 
luego vuelva a su posición inicial. 
Por otra parte, es necesario utilizar 
algún amplificador de la mecánica 
del final de carrera, según el tamaño 
y la posición del objeto que es nece-sario 
detectar. Como se puede ver en 
la Figura 10, el espacio de detección 
es muy pequeño, por lo que necesi-tamos 
construir un paragolpes 
(bumper). También podemos cons-truir 
nosotros este sensor con la ar-quitectura 
que más nos plazca. Sim-plemente, 
tiene que cerrar (o abrir) 
el circuito cuando se activa, y volver 
a su situación inicial cuando está de-sactivado. 
Los interruptores de final 
de carrera se pueden adquirir en ne-gocios 
de electrónica, y también se 
pueden extraer de elementos como: 
• Mouse: podemos usar los inte-rruptores 
que son presionados por 
los botones. El problema es que la 
amplificación es complicada de re-alizar 
por la forma de éstos. 
• Impresoras: para detectar si la ta-pa 
está cerrada o no, o para el mo-vimiento 
del cabezal, en general se 
utilizan estos mecanismos. 
• Celulares: aquí podemos hallar 
versiones pequeñas de los inte-rruptores 
para detectar el cierre de 
la tapa del celular. 
2. COMPONENTES DEL ROBOT 
54 
Figura 11. 
Un LDR 
utilizado para 
la detección 
de luz en 
un robot. 
❘❘❘ 
SENSORES DE CONTACTO ESPECIALES 
Podemos realizar un sensor para detectar piezas metálicas si utilizamos escobillas 
de autitos de pistas de carrera. En este caso, las escobillas impares están conecta-das 
a uno de los cables, y las pares al otro. De esta manera, cuando dos escobillas 
tocan el objeto metálico que se encuentra en el piso, se cierra el circuito y el con-trolador 
determina que se ha detectado un objeto.
Para la detección de luz, podemos uti-lizar 
un sensor de luz convencional, co-nocido 
como fotorresistencia (LDR, 
Light-Dependent Resistor, resistencia 
que depende de la luz). Éste es un 
componente electrónico cuya resis-tencia 
disminuye a medida que la luz 
incide sobre él (Figura 11). 
Es económico y sencillo de usar, pero 
es altamente sensible a la luz ambien-te. 
Por esa razón, es bueno añadirle un 
led emisor para poder captar el rebote 
de la luz de este componente sobre la 
superficie a detectar. Para evitar el pro-blema 
de la luz ambiente, podemos 
utilizar un sensor infrarrojo. El fun-cionamiento 
es similar al anterior, pe-ro 
son menos sensibles a la luz am-biente, 
ya que sólo detectan luz dentro 
del rango del infrarrojo. Está com-puesto 
por un diodo emisor infrarrojo 
en una determinada longitud de onda 
y un receptor (en general un fototran-sistor) 
que apunta en la misma direc-ción 
que el emisor. Un buen ejemplo 
es el sensor activo CNY70, que puede 
captar objetos entre 5mm y 10mm de 
distancia (Figura 12). 
Ambos sensores son económicos, y 
pueden conseguirse en cualquier ne-gocio 
de electrónica. Es posible con-seguir 
alguno de ellos si desarmamos 
algún juguete (por ejemplo, los 
muñecos que detectan la presencia de 
un objeto por delante y emiten algún 
sonido), pero son tan económicos que 
no vale la pena tomarse ese trabajo. 
Una mirada global a nuestro futuro robot 
Figura 12. CNY70, 
un sensor 
infrarrojo muy 
popular. 
Materiales para la mecánica 
A la hora de construir el chasis de 
nuestro robot, tenemos múltiples 
opciones con respecto a los materia-les 
que usaremos. Es importante te-ner 
en cuenta que cuanto más livia-no 
sea el robot, necesitaremos mo-tores 
menos potentes y, por lo tan-to, 
menos baterías, lo que finalmen-te 
es más económico. Excepto en los 
casos en los que el peso del robot 
presente una ventaja, como puede 
ser la lucha de sumo, un robot más 
liviano siempre es mejor. A conti- 
55 
Figura 13. Aquí podemos ver un robot 
hecho con piezas de Lego, pero con 
sensores y controlador propios.
nuación presentaremos una lista de 
los que se pueden conseguir con más 
facilidad en el mercado, con sus res-pectivas 
ventajas y desventajas. 
Piezas de Lego, Mecano 
u otros juguetes constructivos 
Seguramente, en algún rincón de 
nuestro baúl de los recuerdos tene-mos 
una bolsa con las piezas de nues-tro 
querido sistema de construcción 
de la infancia. Si hemos cometido el 
error de prometerlas como regalo a 
un vecino pequeño o al hermanito de 
nuestra novia, debemos olvidarlo. 
Estas piezas son muy prácticas para 
realizar prototipos de nuestros robots 
(¡que muchas veces quedan como 
versiones finales!). Una de las venta-jas 
fundamentales es su facilidad de 
uso y su versatilidad para lograr las 
formas deseadas (Figura 13). Otra ven-taja 
es la reusabilidad: una vez ter-minado 
el robot, podemos desarmar-lo 
y volver a usar el material. 
Por el lado de las desventajas, la más 
importante es la fragilidad de la es-tructura 
que podemos lograr. Y si no 
tenemos las piezas de antemano, su 
valor es muy alto en comparación con 
los otros tipos de materiales. 
Juguetes usados 
Cuando queramos construir un robot 
que imite algún vehículo tradicional, 
una muy buena opción es montarlo 
sobre un juguete usado, o por qué no, 
2. COMPONENTES DEL ROBOT 
Figura 14. Aquí podemos ver 
un Robosapien modificado, donde 
el controlador es una Pocket PC. 
56
manera, podremos manipularlo con 
cierto cuidado. Para unir piezas, se uti-lizan 
pegamentos del tipo cianocrila-to. 
Se puede cortar con una sierrita de 
dientes pequeños, y es posible quitar 
las rebabas con una lija fina. 
Aglomerado 
Es una plancha realizada con fibras de 
madera pegadas a presión con una re-sina 
sintética (Figura 15). También es 
conocido como MDF (Medium Den-sity 
Fibreboard, Tablero de fibra de 
densidad media). Es económico como 
el PVC y puede conseguirse en cual-quier 
maderera. Es fácil de manipular 
pero es más complejo conseguir ter-minaciones 
prolijas. Los chasis reali-zados 
con este material son robustos, 
pero su peso es una desventaja que hay 
que tener en cuenta. Tampoco es 
aconsejable que el material se moje, 
aunque es resistente a salpicaduras. 
comprar uno con este propósito. Por 
ejemplo, para construir un humanoi-de 
es más sencillo comprar uno ya ar-mado 
y montar la inteligencia sobre 
la mecánica ya resuelta, que cons-truirlo 
desde cero (Figura 14). 
Si partimos de un juguete abando-nado, 
podemos considerarlo como 
costo cero. De todas formas, con se-guridad 
tendremos que añadir par-tes 
desarrolladas por nosotros para 
poder adaptar el controlador, los 
sensores, etcétera. En este caso, una 
desventaja puede ser la dificultad de 
ensamblar la estructura del juguete 
con las nuevas partes del robot. Otro 
problema es que, en general, las pie-zas 
del juguete son frágiles, por lo 
que deberemos tratarlas con cuida-do. 
Es recomendable incorporar las 
partes nuevas con un pegamento 
adecuado, y no agujerear el juguete. 
Por último, la reusabilidad de los 
materiales que utilicemos es muy 
baja, dado que están adaptados a es-te 
proyecto en particular. 
PVC 
Es un material plástico muy económi-co 
que se presenta en formato rígido o 
flexible. Es muy fuerte y resistente, 
aunque se puede cortar y taladrar con 
facilidad. Para las carcasas cilíndricas, 
podemos utilizar caños de este mate-rial. 
Si necesitamos deformarlo, el 
PVC se ablanda al llegar a los 80º (por 
ejemplo, sobre una hornalla) y de esta 
Una mirada global a nuestro futuro robot 
57 
Figura 15. Planchas de aglomerado.
Figura 16. Robot con piezas de acrílico. 
Poliestireno expandido 
Este material es conocido universal-mente, 
pero denominado de diversas 
formas en todo el mundo: telgopor, 
porexpan, corcho blanco, unicel, 
estereofón o tecnopor son algunas 
de las denominaciones más habitua-les. 
Es muy liviano y absorbe muy 
bien los impactos, pero su resistencia 
es limitada. Es fácil de manipular 
con cortadores en caliente, aunque 
sus terminaciones son complicadas. 
Por su bajo costo, es ideal para rea-lizar 
prototipos, pero su baja resis-tencia 
no permite la construcción del 
modelo final de un robot. 
Acrílico 
En realidad, llamamos acrílico al me-tacrilato 
compuesto por ácido me-tacrílico. 
Cuando vemos un robot re-alizado 
íntegramente en este mate-rial, 
y en especial si es transparente, 
todos nos enamoramos. Es muy 
atractivo, muy resistente, liviano, y 
de fácil corte con sierras y caladoras, 
aunque hay que realizarlo con pa-ciencia 
porque el calor de la fricción 
puede derretir el material (Figura 16). 
Otro problema del corte es el polvi-llo 
que genera, por lo que se reco-mienda 
el uso de mascarillas para ha-cerlo. 
El moldeo es un poco más 
complicado, ya que necesita de calor 
local, y se realiza con pistolas de aire 
caliente o bandas resistivas. La des-ventaja 
más grave de este material es 
el precio, que supera ampliamente 
los materiales que ya comentamos. 
Aluminio 
Es el material más usado en la fabri-cación 
de las versiones finales de los 
robots. Es muy resistente, liviano y de 
2. COMPONENTES DEL ROBOT 
❘❘❘ 
La familia de micros de Atmel se llama 
AVR. También son RISC con 32 regis-tros 
58 
LOS MICROS DE ATMEL 
de 8 bits. Fueron diseñados para 
ejecutar en forma eficiente código C 
compilado. Aunque el núcleo de ins-trucciones 
es el mismo, existen diver-sos 
modelos, que van desde los más 
pequeños con 1KB de memoria flash y 
sin RAM, hasta los más poderosos con 
256 KB de memoria flash, 8KB de RAM, 
4 KB de EEPROM, conversor analógico 
digital y otras maravillas.
relativo bajo precio. Si tenemos que 
hacer cortes sencillos, podemos traba-jar 
el aluminio con herramientas con-vencionales, 
pero si necesitamos pie-zas 
Una mirada global a nuestro futuro robot 
más complejas debemos contar 
con un torno específico. Por otra par-te, 
para moldearlo necesitamos hor-nos 
especiales a altas temperaturas. 
59 
Figura 17. Robot 
con chasis de 
aluminio. 
… RESUMEN 
En este capítulo presentamos los objetivos de nuestro robot y los materiales nece-sarios 
para construirlo. Hemos decidido construirlo en forma artesanal desde cero, 
para tener costos más bajos y para lograr un conocimiento más profundo de la ar-quitectura 
del robot. El objetivo de nuestro trabajo es conseguir un robot autónomo, 
capaz de seguir una línea negra, dirigirse a sitios más iluminados y detectar objetos 
que se interpongan en su camino. Para ello, utilizaremos un procesador PIC 16F88 
de la empresa Microchip. El movimiento lo lograremos con dos motores de corrien-te 
continua de 12 Voltios. Para detectar el mundo, vamos a agregarle sensores de 
contacto para obstáculos físicos y fotorresistencias, y sensores infrarrojos para la 
detección de luces y líneas de colores. Para la construcción del chasis de nuestro 
robot, hemos elegido el aglomerado, dado que nos permite construir una estructu-ra 
robusta, con herramientas sencillas y a muy bajo precio.
✔ 
TEST DE AUTOEVALUACIÓN 
1 ¿Por qué decidimos desarrollar el robot 
60 
en forma artesanal? 
2 ¿Cuáles son los objetivos de nuestro 
robot? 
3 ¿Qué es un microcontrolador? 
4 ¿Qué diferencia un microcontrolador de 
un microprocesador? 
5 ¿Qué características presentan los mi-cros 
con tecnología RISC? 
6 ¿Cuál es la arquitectura básica de to-do 
PIC? 
7 ¿Qué ventajas y desventajas presentan 
los motores de corriente continua? 
8 ¿Qué características presenta la trac-ción 
diferencial? 
9 ¿Qué es un final de carrera? 
10 ¿Qué ventajas presenta el sensor infra-rrojo 
sobre el LDR? 
11¿Cuáles son los tipos de materiales 
que presentamos para la construcción 
del chasis? 
ACTIVIDADES
Robótica 
La inteligencia 
del robot 
Capítulo 3 
Antes de comenzar a construir 
nuestro robot, daremos una mirada 
general a todos los componentes 
que lo conformarán. Desde ya que 
elegiremos puntualmente alguno 
de ellos, pero con este capítulo nos 
será sencillo seleccionar otras 
variantes según el objetivo que 
tengamos para nuestro robot. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
El cerebro 62 
Componentes de nuestro robot 63 
Objetivos del controlador 64 
El microcontrolador, 
cerebro del cerebro 64 
Conceptos fundamentales 
de un PIC 65 
Características del PIC16F88 66 
Compatibilidad con el 16F84 67 
Puente H para el control 
de los motores 67 
Listado de componentes 
del controlador 68 
Descripción del circuito 69 
Placa experimental 71 
El programador 71 
Nuestro programador 71 
Resumen 75 
Actividades 76 
Colaborador: 
Ing. Néstor Adrián Balich
EL CEREBRO 
Cuando Asimov creó sus primeros 
robots de ficción, aún no existían las 
computadoras. Tuvo que inventar los 
cerebros positrónicos, que son dis-positivos 
con inteligencia artificial 
que le permiten al robot almacenar 
información, realizar operaciones ló-gicas 
y tomar sus propias decisiones. 
Con esa capacidad sorprendente de 
adelantarse décadas en el tiempo, 
Asimov realizó una descripción que, 
en muchos casos, coincide con los 
controladores que tenemos en la ac-tualidad. 
De este tema, y con la in-tención 
de emular la genialidad de 
Asimov, hablaremos en este capítulo. 
Hay diversas formas de controlar un 
robot. Esencialmente, varían en fun-ción 
de nuestra necesidad y de lo que 
queremos hacer con él. Los primeros 
robots fueron simples autómatas, co-mo 
el jugador de ajedrez, que no son 
más que una sucesión de combina-ciones 
de engranajes, poleas y otros 
artilugios electromecánicos, en donde 
el creador articula el robot en forma 
mecánica, y gobierna así sus movi-mientos. 
Luego surgieron los robots 
con electrónica analógica (transisto-res) 
y compuertas digitales, que en al-gunos 
casos hasta pueden programar-se 
en forma muy primitiva con álge-bra 
de boole. Por último, en la ac-tualidad, 
nuestros robots poseen mi-crocontroladores 
y computadores, co-mo 
comentamos en el primer capítu- 
3. LA INTELIGENCIA DEL ROBOT 
62 
Figura 1. Robot con cerebro positrónico de la película 
Yo, robot, inspirado en la obra de Asimov.
❘❘❘ 
lo. En nuestro caso, cuando elegimos 
el controlador que vamos a presentar 
en este libro, optamos por una solu-ción 
del último espectro, pero con la 
suficiente sencillez para su construc-ción 
y la suficiente complejidad pa-ra 
poder lograr comportamientos 
medianamente inteligentes. 
Para el desarrollo de nuestro robot 
necesitamos algunas habilidades de 
electrónica que podremos adquirir 
con facilidad. Esto es necesario por-que 
así tendremos un robot con pres-taciones 
iguales o mayores que las de 
algunos de los kits que se pueden 
comprar y principalmente nos per-mitirá 
dar los primeros pasos en la 
utilización de microcontroladores. 
Componentes 
de nuestro robot 
A la hora de diseñar nuestro contro-lador, 
es necesario tener presente 
qué tipo de robot deseamos cons-truir, 
porque esto nos dará una no-ción 
de la cantidad de actuadores y 
sensores que necesitaremos. Como 
definimos en el capítulo anterior, 
nuestro robot tendrá dos ruedas con 
dos motores, que nos permitirán 
controlar la dirección de manera di-ferencial. 
Contará con dos bumpers 
(sensores de choque) y un sensor 
analógico para poder seguir una lí-nea 
(robot rastreador). Si tenemos 
en cuenta esto, podemos definir las 
partes de nuestro robot en: 
• Chasis: éste es el armazón que 
contiene el controlador, los moto-res 
y las baterías. 
• Alimentación: batería de 9 V, con-junto 
de pilas, o batería de gel de 
12 V. 
• Control: controlador programa-ble 
multipropósito. 
El cerebro 
63 
Figura 2. Un robot cuyo cerebro 
es nuestro controlador. 
CEREBROS POSITRÓNICOS 
Todos los robots de la obra de Asimov 
poseían cerebros positrónicos, que 
consistían en una malla de platino don-de 
la actividad cerebral estaba dada 
por un flujo de positrones. Si no tene-mos 
en cuenta el punto de vista litera-rio, 
es difícil imaginar que el positrón 
(antipartícula del electrón) no destruya 
la malla de platino, en una colisión ma-teria 
– antimateria.
Figura 3. Una de las versiones 
del PIC16F88. 
• Driver H: interfaz de potencia pa-ra 
los motores de corriente conti-nua 
con inversión de giro. 
• Sensores: dos sensores de colisión 
ubicados al frente del robot. 
• Monitor: un led de monitoreo del 
programa. 
• Sensor analógico: para futuras 
aplicaciones. 
Objetivos del controlador 
Dados los objetivos que hemos defi-nido, 
el controlador debe cumplir 
con las siguientes características: 
• Poder controlar dos motores de 
corriente continua de 12 V de has-ta 
400 miliamperes. 
• Permitir que el robot se desplace en 
todas direcciones mediante una 
tracción diferencial (de dos ruedas). 
• Ser programable en circuito me-diante 
un programador conectado 
a la computadora. 
• Utilizar baterías comunes de dife-rente 
voltaje entre 7 y 12 V. 
• Poseer la capacidad de conectar 
sensores de diversos tipos, tanto 
analógicos como digitales. 
• Poder configurar las entradas y las 
salidas según el objetivo del robot. 
• Permitir controlar una gran varie-dad 
de robots. 
El microcontrolador, cerebro 
del cerebro 
Como comentamos antes, el princi-pal 
componente de nuestra placa con-troladora 
es el microcontrolador. De 
su elección depende el tiempo de uti-lidad 
de ésta, ya que nos permitirá au-mentar 
la complejidad y adoptar di-ferentes 
configuraciones de robots, 
simplemente preocupándonos por 
cambiar la mecánica/electromecánica 
cuando sea necesario. En síntesis, el 
objetivo es contar con nuestro propio 
controlador universal de robots. 
En el Capítulo 2 adelantamos nuestra 
elección por el micro 16F88 de la 
firma Microchip (Figura 3). Cabe 
mencionar que aunque el 16F84 es 
el micro más difundido de esta em-presa, 
hemos decidido dar un paso 
adelante por dos razones: el nuevo 
modelo nos da muchas prestaciones 
adicionales, y todo lo desarrollado 
para 16F88 que no utilicen esas 
prestaciones es absolutamente com-patible 
con el 16F84. 
En el presente libro, en gran parte 
usaremos del micro nuevo aquellas 
funcionalidades que sean compati-bles 
con el anterior. Pero así nos que-da 
armado un controlador con am-plia 
capacidad de expansión. 
3. LA INTELIGENCIA DEL ROBOT 
64
Conceptos fundamentales 
de un PIC 
Como en el punto siguiente quere-mos 
realizar una presentación del 
16F88 y compararlo con otros mi-cros, 
a continuación describiremos 
un conjunto de términos necesarios 
para poder comprender mejor. Los 
conceptos que vamos a explicar son 
fundamentales en la arquitectura y 
el funcionamiento de un PIC. Si ya 
tenemos experiencia, esto nos resul-tará 
conocido y podremos continuar 
hasta el punto siguiente. 
Si no, aquí encontraremos un buen 
diccionario de palabras vinculadas al 
que podremos recurrir en los próxi-mos 
capítulos. 
• Memoria flash: es el área de alma-cenamiento 
de los programas. Pue-de 
ser reescrita miles de veces, lo que 
presenta una gran ventaja para reu-tilizar 
el controlador y para progra-mar 
sin temor al error. 
• RAM (Random Access Memory, me-moria 
de acceso aleatorio): almace-na 
todas las variables y los datos in-termedios 
del programa. 
• EEPROM (Electrically-Erasable 
El cerebro 
Programmable Read-Only Memory, 
ROM que se puede programar y 
borrar eléctricamente): en esta me-moria 
se almacenan los datos que 
deben conservarse aun cuando ha-ya 
pérdida de energía. Puede ser 
reescrita en más oportunidades 
que la memoria flash. 
• I/O Ports (Input/Output Ports, 
puertos de entrada/salida): es la 
comunicación del PIC con el 
mundo que lo rodea. Desde allí 
podrá enviar señales a la electróni-ca 
externa y recibir datos de ésta. 
• Timers (temporizadores): en ge-neral, 
todos los PICs poseen hasta 
tres temporizadores, con diversas 
capacidades y funciones. Se utili-zan 
como contadores, relojes y ge-neradores 
de interrupciones. 
• USART (Universal Synchronous 
Asynchronous Receiver Transmitter, 
transmisor y receptor sincrónico y 
asincrónico universal): módulo 
que presentan los PIC que nos 
brindan un puerto serie. 
• CCP (Capture/Compare/PWM, Cap-tura/ 
Comparación/Modulación 
por ancho de pulso): este módulo 
tiene tres modos de comparación. 
❘❘❘ 
MODULACIÓN POR ANCHO DE PULSO 
La modulación por ancho de pulso (PWM, Pulse With Modulation) se utiliza para de-terminar 
la velocidad de giro de los motores eléctricos. En el pulso tenemos un mo-mento 
alto (con corriente) y un momento bajo (sin corriente). Según la longitud de 
65 
estos pulsos, logramos la velocidad de nuestro motor.
Figura 4. Otros modelos de PIC 
vinculados al 16F84 y el 16F88. 
En el primer caso (Capture) nos 
permite capturar el tiempo de un 
evento. En el segundo (Compare) 
genera una salida cuando el timer 1 
alcanza un valor. El último nos 
brinda una salida de 10 bits de re-solución 
sin consumo de ciclos con 
una determinada frecuencia, confi-gurada 
por el timer 2. 
• Comparador: es un módulo que 
brinda dos comparadores analógicos, 
de manera tal que las entradas analó-gicas 
o digitales se puedan comparar 
con los voltajes de referencia. 
• ICSP (In Circuit Serial Program-ming, 
programación en circuito): 
los PICs se pueden programar sin 
tener que sacarlos del controlador, 
conectándolos con el programador 
mediante un cable especial que des-cribiremos 
más adelante. 
Características del PIC16F88 
El PIC16F88 es un salto importan-te 
con respecto al PIC16F84, una 
suerte de hermano mayor más avan-zado. 
En realidad, es un reemplazo 
de los 16F87X, que mantiene com-patibilidad 
con sus antecesores para 
hacer más sencilla la migración. Tie-ne 
35 instrucciones de una sola pa-labra, 
de 200 nanosegundos de eje-cución. 
Además, cuenta con un os-cilador 
interno de 8MHz, 256 bytes 
de memoria EEPROM, 368 bytes 
de RAM y 4 Kb de memoria flash. 
Viene con un USART, un puerto se-rie 
sincrónico, tres timers, un mó-dulo 
CCP y un comparador. Para los 
sensores disponemos de siete canales 
3. LA INTELIGENCIA DEL ROBOT 
❘❘❘ 
Existen diferentes propuestas de emulación del procesamiento de nuestro cerebro. 
Entre otras, las redes neuronales son un sistema de interconexión de nodos que si-mulan 
66 
REDES NEURONALES 
neuronas que puede implementarse por hardware o por software. Estas neu-ronas 
reciben diversas entradas de información y mediante un conjunto de funcio-nes 
determinan la salida de la neurona. El arquitecto de la red define su estructu-ra 
y luego, mediante un sistema de aprendizaje, entrena a la red para los datos que 
luego deberá procesar. Luego del aprendizaje, la red es capaz de interpretar los da-tos 
de entrada y brindar una salida acorde.
de entrada con conversor analógico 
digital. Su consumo es muy bajo, 
para suerte de nuestras baterías 
(aunque los motores serán nuestros 
enemigos en este aspecto). 
Compatibilidad con el 16F84 
A pesar de las grandes capacidades que 
hemos mostrado del 16F88, la compa-tibilidad 
con el 16F84 es muy alta, lo 
que permite utilizar hardware y soft-ware 
desarrollado para el micro más an-tiguo. 
En primer lugar, tienen el mis-mo 
pinout (asignación de los pines). El 
16F88 puede ejecutar el mismo código 
que el 16F84 con mínimas variantes, y 
se puede programar con el mismo 
hardware. Es decir, si tenemos un ro-bot 
con un 16F84, es posible que po-damos 
hacerlo funcionar con el 16F88, 
¡y a un precio menor! Efectivamente, 
El cerebro 
este último modelo ha sido lanzado a 
menor precio que su antecesor. Para es-ta 
versión del controlador hemos ar-mado 
una placa experimental en la 
que no es necesario tener el 16F88 ya 
que es compatible con el 16F84. Por 
lo tanto, podremos usar el antiguo 
micro (incluso los primeros progra-mas 
estarán desarrollados para el 
16F84). La necesidad del 16F88 se 
hará presente a medida que avance-mos 
en la utilización de sensores 
analógicos, la utilización del bootloa-der 
o el agregado de una interfaz se-rial 
RS232, entre otras cosas. 
Puente H para el control 
de los motores 
Para poder controlar la velocidad y la 
dirección de los motores de corriente 
continua, se utiliza un circuito deno- 
67 
CHIP INHIBIT 1 
INPUT 1 2 
OUPUT 1 3 
GND 4 
GND 5 
OUTPUT 2 6 
INPUT 2 7 
VC 8 
16 VSS 
15 INPUT 4 
14 OUPUT 4 
13 GND 
12 GND 
11 OUTPUT 3 
10 INPUT 3 
9 CHIP INHIBIT 2 
Figura 5. Esquema del integrado controlador de los motores L293D.
minado Puente H. Este curioso nom-bre 
proviene de la forma en la que an-tiguamente 
se posicionaban los tran-sistores 
al realizar el puente. La 
electrónica ha avanzado y en la actua-lidad 
utilizamos integrados que nos 
proporcionan esa funcionalidad, en 
un espacio menor y a bajo costo. En 
nuestro caso, la interfaz de potencia 
se basa en el chip L293D, que cuen-ta 
con diodos de protección para los 
motores (Figura 5). Además, posee 
cuatro drivers de potencia que nos 
permiten controlar dos motores de 
hasta 600 miliampers de pico (con in-versión 
de giro) o cuatro motores sim-ples, 
controlados por dos líneas de co-mando 
de 5 V por motor conectados 
directamente al micro. 
Los pines 2, 7, 10 y 15 son entradas 
digitales que sirven para controlar la 
dirección de los motores. Los pines 
CHIP INHIBIT (1 y 9) permiten 
controlar la velocidad con la técnica 
PWM ya mencionada. Los motores 
se conectan a 3, 6, 11 y 14. VSS 
(voltaje lógico) es la que alimentará 
o dará potencia al motor. 
Listado de componentes 
del controlador 
La mayoría de los componentes que 
vamos a utilizar (Tabla 1) se puede 
conseguir en cualquier negocio de 
electrónica, y se puede reemplazar 
por otros de valores aproximados. 
Los elementos más costosos son los 
dos procesadores, el 16F84 ó 16F88 
y el L293D. Otro componente de 
costo alto es la batería recargable de 
9 V, de la cual hablaremos más ade-lante. 
Para poder conectar todos estos 
3. LA INTELIGENCIA DEL ROBOT 
IDENTIFICADOR VALOR 
C1 100uF / 50V 
C2 .1uF 
C3 .1uF 
C4 47uF / 25V 
C5 .1uf 
C6 .1uf 
C7 22p 
C8 22p 
D1 DIODE 
IC1 16F88 
IC3 L78L05 
IC4 L293D 
ISCP Programador Conector 5 pines 
J3 Bornera 3 
L1 LED Verde 
L2 LED Rojo 
Motor1 Bornera 2 
Motor2 Bornera 2 
POWER Bornera 2 
R1 390 
R2 390 
R3 1K 
R4 1K 
R5 10K 
Reset Microswitch 
Sensor1 Microswitch 
Sensor2 Microswitch 
XTAL 4Mhz 4Mhz 
Tabla 1. Lista de componentes. 
68
componentes, podemos usar una 
protoboard (Figura 6) o directamente 
armar el circuito en una plaqueta ex-perimental. 
En el primer caso, el ta-maño 
de nuestro controlador será 
incómodo para montarlo sobre el ro-bot, 
pero puede ser útil para realizar 
un primer prototipo de prueba. Una 
vez que tengamos todo en funciona-miento, 
podemos pasar nuestro desa-rrollo 
a una placa experimental. 
Descripción del circuito 
El circuito es muy sencillo (Figura 7). 
Consta de una fuente de alimenta-ción 
regulada, basada en un 7805 
que nos permite obtener a la salida 
una tensión estable de 5 V para ali-mentar 
a los circuitos integrados, in-dependientemente 
de que la tensión 
de entrada esté entre 7 V y 12 V. El 
El cerebro 
69 
Figura 6. Protoboard de buen 
tamaño que nos permite armar 
el circuito sin usar soldaduras. 
Figura 7. Esquema del circuito del controlador de nuestro robot.
diodo D1 permite tener una protec-ción 
contra la inversión accidental 
de la tensión de alimentación. Los 
electrolíticos y condensadores cerá-micos 
actúan de filtros y el led L1 
sólo nos sirve para indicar que el cir-cuito 
se encuentra alimentado. 
El ISCP es un conector para la pro-gramación 
del micro, que cuenta 
con un cristal oscilador (XTAL) de 
4Mhz (lo podemos evitar en el caso 
del 16F88 gracias a que contiene un 
oscilador interno, pero ya que es de 
bajo costo y más preciso, preferimos 
mantenerlo en el esquema), y un 
pulsador de reset para bloqueos o 
reinicialización del sistema. El led 
L2 se utiliza para monitorear los di-ferentes 
ciclos del programa (lo po-dremos 
usar para depuración y tes-teos) 
y está controlado por RB3. Las 
entradas RA3 y RA4 permiten sen-sar 
los dos switch (llaves) que indi-can 
cuándo nuestro robot colisiona 
con algún objeto. Se encuentran co-nectadas 
al positivo mediante dos 
resistencias R3 y R4 de 1K, que nos 
sirven de pullup para disminuir el 
disparo por ruido eléctrico que pro-viene 
de los motores. 
Por su parte, RB1, RB2, RB4 y RB5 
se utilizan para controlar dos moto-res 
de corriente continua de 12 V y 
300 miliamperes. RB6 y RB7 están 
destinados al programador. 
Además de esto, nos quedan libres 4 
pines (RB0, RA0, RA1, RA2) que 
podemos utilizar para propósitos di-versos 
y la posibilidad de utilizar los 
del cristal o de conmutar los de pro-gramación, 
entre otras modificacio-nes 
posibles. 
3. LA INTELIGENCIA DEL ROBOT 
70 
Batería 9 V 
Fuente 
Regulada 5 V 
Driver H 
Controlador 
Sensor 2 Sensor 1 
Motor 1 
Motor 2 
L 2 
Figura 8. En esta figura podemos observar los bloques 
lógicos que componen nuestro controlador.
Placa experimental 
A modo de ejemplo, en la Figura 9 
mostramos la placa experimental bá-sica 
realizada para las pruebas preli-minares, 
en donde puede observarse 
el regulador 7805, los integrados 
16F84 y L293D y, en la parte inferior 
a la izquierda y debajo del 16F84, la 
salida para el programador ICSP. 
El programador 
Cuando diseñamos el controlador del 
robot, uno de los objetivos fundamen-tales 
fue que pudiera ser programado 
de diversas maneras según el propósi-to 
final del robot. De esta forma, po-demos 
reutilizar nuestro controlador 
en la misma estructura mecánica o en 
otras, con otros sensores, motores, 
etcétera. Por eso, nos decidimos a tra-bajar 
con el PIC y no con el PICAXE 
(Figura 10), a pesar de que éste último 
también es una opción. El PICAXE es 
un micro que ya tiene grabado un pe-queño 
firmware, algo así como un sis-tema 
operativo mínimo, que permite 
cargarle nuestro programa por el puer-to 
serie del computador. Es una buena 
ayuda porque nos evitamos la cons-trucción 
del programador. El proble-ma 
es que si utilizamos un PICAXE 
dependemos totalmente de este 
firmware y si por cualquier proble-ma 
eléctrico se desprogramara el mi-cro, 
estaríamos en problemas. 
La única solución sería comprar un 
nuevo PICAXE o grabarle el firmware 
El cerebro 
de nuevo, para lo cual se necesita ¡un 
programador! Por lo tanto, tarde o tem-prano, 
este recurso nos es indispensa-ble, 
y ya que compramos componentes 
y hacemos circuitos, agregamos el pro-gramador 
para quedarnos tranquilos. 
Además, si alguna vez queremos cam-biar 
de micro, cargar un firmware de-sarrollado 
por otro o por nosotros, u 
otra variante, podremos hacerlo con 
nuestro programador sin problemas. 
Nuestro programador 
En Internet podemos encontrar un 
mundo de aficionados y profesionales 
que desarrollan sus actividades con 
PIC. Por esa razón, la oferta de pro-gramadores 
es amplia y si lo deseamos, 
71 
Figura 9. Visión final del controlador 
desarrollado sobre una placa 
experimental. 
Figura 10. 
Picaxe 8, la 
versión más 
pequeña de la 
línea PICAXE.
3. LA INTELIGENCIA DEL ROBOT 
72 
Figura 11. Pantalla principal del WinPic800, configurada para el 16F88. 
Figura 12. Esquema del programador GTP LITE.
podemos comprar un programador en 
algún negocio de electrónica. Pero pa-ra 
cumplir nuestra promesa de que el 
robot será completamente artesanal, 
presentamos el programador GTP Li-te. 
Este programador fue diseñado por 
Jaime Fernández-Caro Belmonte de 
HobbyPic (www.hobbypic.com). Está 
basado en un desarrollo anterior del 
grupo Todopic (www.todopic.com. 
ar) llamado GTP (Grabador TodoPic). 
Para realizar la grabación de lo que pro-gramamos 
en nuestra PC hacia el mi-cro, 
utilizaremos el soft WinPic800 
(www.winpic800.com), que nos per-mite 
acceder a muchos micros distin-tos 
(Figura 11). Más adelante, nos ex-tenderemos 
en el uso de este software 
para bajar nuestros programas al con-trolador. 
Con respecto a los programa-dores, 
existen otros modelos como el 
GTP-USB, pero elegimos el mencio-nado 
por una cuestión de costos. 
El GTP Lite (Figura 12) es un grabador 
ICSP para PICs y memorias que uti-liza 
un puerto paralelo y alimentación 
externa. Con él se pueden grabar los 
PICs que soporten el modo de graba-ción 
ICSP y que se encuentren en el 
El cerebro 
73 
▲ 
OTROS PROGRAMADORES 
Figura 13. En esta imagen podemos 
ver el board del GTP LITE. 
Figura 14. Programador GTP LITE 
terminado, visto desde arriba. 
Uno de los programadores más populares del momento es el GTP USB Lite que, como 
su nombre lo indica, nos permite programar mediante la utilización del puerto USB. 
Podemos encontrar la información para diseñarlo en www.todopic.com.ar/foros/ 
index.php?topic=1716.0. En el siguiente foro podremos encontrar toda la información 
sobre diversos grabadores de PICs: www.todopic.com.ar/foros/index.php?board=7.0.
nuestra placa programadora y enviar-le 
el programa desde la PC con un 
software de grabación de PIC, como 
el Winpic800. Pero en nuestro robot 
presentamos otra variante. La progra-mación 
en circuito ICSP (In circuit se-rial 
programming, programación en 
circuito) es ideal para trabajar con pro-totipos, 
ya que de manera rápida po-dremos 
programar nuestro robot sin 
necesidad de sacar el microprocesador 
cada vez que cambiemos el programa. 
Esta programación se basa en utilizar 
los mismos pines que usa el progra-mador 
para la programación directa, 
pero con un circuito muy simple que 
permite programar el integrado direc-tamente 
en nuestra placa controlado-ra. 
Para esto será necesario un conec-tor 
especial que posee la placa del pro-gramador 
con salida para ICSP. De es-ta 
manera, si conectamos el programa-dor 
a nuestro controlador por este co-nector, 
el mismo programa Win-pic800 
podrá grabar el 16F88 sin te-ner 
que desarmar nuestro robot. Co-mo 
dijimos, esto es muy práctico por-que 
al ser un robot experimental, car-garemos 
muchos programas y haremos 
3. LA INTELIGENCIA DEL ROBOT 
WinPIC800. La forma más tradicio-nal 
de grabar el programa en el micro 
es poner el integrado en el zócalo de 
IDENTIFICADOR VALOR 
C1 100uF/63v 
C2 100nF 
C3 100nF 
D1 Verde 
D2 Rojo 
D3 1N4007 
D4 1N4007 
D5 1N4007 
IC1 78L05 
IC2 78L12 
J1 CONN DB25M 
PD1 Diodo Puente 1A 
Q1 BC558B 
RG1 ICSP 
RG2 15VAC 
R1 1k 
R3 1k 
R5 1k 
R2 4.7k 
R8 4.7k 
R4 1.5k 
U1 74LS04 
Tabla 2. Lista de componentes 
del programador. 
PIN DESCRIPCIÓN FUNCIÓN TIPO DESCRIPCIÓN 
12 RB6 Clock E Pulsos de reloj 
13 RB7 Data E/S E/S de datos 
4 MCLR Vtest MODE Selección de modo 
5 VSS Vss P Masa (Gnd) 
74 
Tabla 3. Pines del cable para conectar el programador a la controladora.
pruebas con él en forma constante. En 
la Tabla 2 describimos la lista de com-ponentes 
del programador. Para co-nectar 
el programador a nuestra con-troladora, 
será necesario fabricar un ca-ble 
(podemos utilizar alguno de los ca-bles 
planos que nos sobran de una PC 
antigua) con los pines de la Tabla 3. Re-comendamos 
que el cable no supere 
Figura 15. El mismo 
programador, con 
una toma desde la 
parte inferior. 
El cerebro 
los 70 centímetros de longitud. No 
necesitaremos 5 V ya que usamos 
masa común entre el programador y 
la controladora, con la única condi-ción 
de que nuestro robot deberá es-tar 
encendido al momento de pro-gramarlo. 
Este cable es el que conec-tará 
nuestra controladora al conector 
que tenemos debajo del micro. 
75 
… RESUMEN 
Hemos llegado al punto de poner manos a la obra. En este capítulo, conocimos to-dos 
los detalles de nuestro controlador y el programador correspondiente. Final-mente, 
nos decidimos por el micro PIC16F88 de la firma Microchip, en especial por 
su bajo costo, su buena performance, la compatibilidad con el PIC16F84 y por la po-sibilidad 
de programarlo en circuito, sin necesidad de sacarlo de nuestro controla-dor. 
Para poder realizar esto, construimos un programador conocido como GTP-LITE, 
de uso muy difundido entre los usuarios de PIC, y de bajo costo. Para poder re-alizar 
la programación, utilizaremos el software Winpic800, que nos permite pro-gramar 
diversos modelos de PICs y de otros tipos de micros.
✔ 
TEST DE AUTOEVALUACIÓN 
1 ¿Cuáles fueron los tipos de control que 
76 
tuvieron los robots a lo largo de la his-toria? 
2 ¿Cuáles son, esencialmente, los com-ponentes 
de nuestro robot? 
3 ¿Qué objetivos tendrá nuestro contro-lador? 
4 ¿Cuáles son los tipos de memorias que 
podemos encontrar en un PIC? 
5 ¿Qué es el USART? 
6 ¿Qué significa ICSP y qué ventajas pre-senta? 
7 ¿Por qué elegimos el microcontrola-dor 
PIC16F88? 
8 ¿En qué aspectos es compatible el 
16F88 con el 16F84? 
9 ¿Qué es un puente H? ¿Con qué inte-grado 
lo implementamos? 
10 ¿Por qué no usamos el PICAXE? 
ACTIVIDADES
Robótica 
Comida 
de robots 
Capítulo 4 
Hemos visto maravillas en el aumento 
de la potencia de los procesadores, 
en la mejora de la calidad de los 
materiales y en la reducción de los costos 
de todos estos componentes. Pero 
lamentablemente hay un punto en el que 
aún no hemos hecho grandes progresos: 
la energía portátil. En este capítulo 
presentaremos los diferentes tipos de 
baterías para utilizar en nuestro robot. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
La fuente de energía 78 
Características de las celdas 
de las baterías 79 
Tipos de baterías 81 
Calidad de las baterías 86 
Cargadores 87 
Ayudar a que no sólo 
las baterías duren más 89 
Resumen 91 
Actividades 92
LA FUENTE DE ENERGÍA 
Volvamos a nuestros sueños de robots. 
Soñamos con un robot veloz, ágil, y 
que recorra el universo sin desgaste. 
Soñamos con un robot poderoso, con 
alta tracción que le permita subir los 
caminos más inhóspitos. Soñamos 
con un robot de mucha autonomía, 
que pueda dar varias vueltas al uni-verso 
sin necesidad de pasar por el en-chufe. 
Soñamos con la máquina de 
movimiento perpetuo, y no somos los 
primeros. Desde que construimos 
nuestros primeros mecanismos autó-nomos 
con desplazamiento, hemos 
buscado la piedra filosofal de la 
energía: carbón, petróleo, electrici-dad, 
biocombustibles, baterías, hidró-geno, 
energía nuclear, etcétera. Mucha 
agua ha pasado debajo del puente y sin 
embargo, la ecuación que planteamos 
al comienzo es irresoluble: si aumen-tamos 
la autonomía, necesitamos 
mayor tamaño y peso, y por lo tan-to, 
mayor consumo. Si queremos ma-yor 
potencia, también consumimos 
las cargas más rápidamente. Por aho-ra, 
nos tendremos que arreglar con lo 
que tenemos a nuestro alcance para 
darle energía a nuestro robot, y esto es 
lo que presentaremos en este capítulo. 
4. COMIDA DE ROBOTS 
78 
Figura 1. Aibo, el perro robot 
de Sony, con un juguete que 
podría ser su comida simbólica.
Características 
de las celdas de las baterías 
En el caso de los robots pequeños, la 
obtención de energía por sistemas de 
combustión o la energía nuclear 
constituyen un sistema un poco des-proporcionado. 
Es por eso que nos 
inclinamos por las baterías com-puestas 
por una o más celdas, con 
determinadas características que las 
hacen convenientes o no según el 
proyecto en el que trabajemos. Por 
esa razón, antes de analizar los tipos 
de baterías, haremos una breve pre-sentación 
de los conceptos funda-mentales 
que las distinguen. 
Voltaje 
Todas las celdas que presentaremos 
utilizan procesos químicos para la li-beración 
de energía. El tipo de mate-rial 
utilizado para esa reacción es el 
que determinará el voltaje produci-do. 
Pero mientras se descarga, el vol-taje 
puede variar. Es por esto que apa-rece 
el concepto de voltaje nominal, 
que indica el valor más estable en el 
que permanecerá una batería cuando 
se descargue. Puede ocurrir que ape-nas 
La fuente de energía 
empiece a descargarse la batería, 
su voltaje nominal comience a bajar, 
o que se mantenga durante un tiem-po 
para luego descender más brusca-mente 
sus valores. Consideraremos 
que la batería está descargada cuando 
el voltaje disminuye alrededor del 
20% de su valor nominal. 
Por ejemplo, las baterías de autos 
tienen seis celdas de plomo ácido, 
cada una con un voltaje nominal de 
2 voltios, y así nos proveen de 12 
voltios nominales finales. 
De todas formas, es posible que nues-tro 
robot pueda funcionar con un 
voltaje menor al 80% del valor no-minal. 
Esto dependerá esencialmen-te 
de los motores que utilicemos. 
Capacidad 
En general, cuanto más grande es la 
batería, mayor capacidad posee (es 
más pesada, pero nada es perfecto). 
Se mide en Ampere/hora (A/h) o 
miliampere/hora (mA/h) y se re-presenta 
con la letra C. Por ejemplo, 
si en la batería aparece C=250, esto 
nos indica que puede suministrar 
250 mA durante una hora, ó 125 
❘❘❘ 
VITRIFICACIÓN DE PILAS 
Una propuesta para el procesamiento de las pilas desechadas es lo que se conoce como 
vitrificación. Una vez eliminados, mediante calor, todos sus elementos combustibles, se 
separan los metales y los electrodos internos, y los químicos tóxicos se convierten en óxi-do, 
en forma de polvo. Este polvo se mezcla con vidrio, lo que permite un desecho que, de 
79 
1000 a 2000 años, comenzará a incorporarse en forma gradual a la biósfera.
Figura 2. Una muestra de todos los tamaños clásicos de las baterías recargables. 
mA durante dos horas, etcétera, an-tes 
de que caiga su voltaje. 
Densidad de energía 
Éste es uno de los puntos más im-portantes 
de análisis en los robots 
móviles autónomos. Con la densidad 
de energía representamos la relación 
de la capacidad por unidad de vo-lumen. 
En nuestro caso, necesitamos 
la mayor relación posible, para lograr 
mayor autonomía y potencia. Pero 
seguramente, aparecerá algún otro 
problema, como los costos. 
Curva de descarga 
Es la curva que nos indica el voltaje de 
la batería en relación con el tiempo de 
consumo. En general, si la curva es 
plana, la batería baja su voltaje de gol-pe, 
lo que en general es bueno (man-tenemos 
la performance de los robots 
pareja durante largo tiempo), pero pe-ligroso 
en los casos de los robots acuá-ticos. 
Cuando la curva tiene un des-censo 
parejo, muchas veces nos en-contramos 
rápidamente con dificulta-des 
para determinar un comporta-miento 
consistente en el robot. En ese 
caso, nos es imprescindible modificar 
el accionar de nuestro robot median-te 
la lectura de sensores, y no debemos 
confiar en los valores absolutos. 
Resistencia interna 
Todo generador de energía eléctrica 
también se comporta como un con-ductor 
y, por lo tanto, ofrece cierta 
resistencia al pasaje de corriente. A es-to 
se lo llama resistencia interna. Por 
ejemplo, es una gran ventaja que las 
baterías de auto tengan baja resisten-cia, 
dado que necesitamos mucha co-rriente 
de golpe para encender el mo-tor. 
En nuestro caso, las baterías con 
baja resistencia interna pueden ser pe- 
4. COMIDA DE ROBOTS 
80
ligrosas porque ante un corto entre-gan 
mucha corriente, aumentan el ca-lor 
de la batería y pueden ocasionar-les 
problemas a nuestros circuitos y, 
en casos extremos, una explosión. A 
medida que las celdas se desgastan, la 
resistencia interna crece, y por lo tan-to, 
la tensión disminuye. 
Capacidad de recarga 
Otra característica fundamental de 
nuestras baterías es si son recargables 
o no, y cuántas veces se pueden re-cargar. 
Dado que las baterías son 
muy contaminantes, esta caracterís-tica 
no sólo es una cuestión de cos-tos, 
sino que también nos propone 
una actitud ecológica que considera-remos 
más adelante. Lamentable-mente, 
las baterías con mayor densi-dad 
de energía no son recargables. 
Efecto memoria 
Es un término vinculado específica-mente 
a las baterías de Níquel cadmio. 
Cuando una batería de este tipo no se 
descarga en forma completa antes de 
ser recargada, tiende a recordar este ni-vel 
de descarga como el nivel 0. Por lo 
La fuente de energía 
tanto, la próxima vez considerará que 
está descargada cuando llegue a este 
punto. Aunque no hay una postura de-finida 
sobre este concepto, siempre se 
aconseja que, antes de recargar estas ba-terías, 
se las descargue por completo. 
Costo 
Y por último, nos encontramos con el 
factor común de todos los análisis: el 
costo. La relación entre la calidad de 
las baterías y el precio es directamente 
proporcional. Por suerte, la aparición 
de las cámaras digitales, los reproduc-tores 
portátiles, los celulares y otros 
dispositivos que consumen baterías a 
granel, ha masificado la producción de 
éstas, y hoy encontramos en el merca-do 
una gran variedad de calidad y pre-cio 
para nuestras necesidades. 
Antes de empezar a realizar una 
comparación con respecto a estos 
conceptos presentados, vamos a des-cribir 
los tipos de baterías que po-demos 
utilizar en nuestros robots. 
Tipos de baterías 
A continuación haremos un recorrido 
por los diversos tipos de baterías que 
❘❘❘ 
Como si no tuviéramos suficiente con la falsificación de baterías, también debemos 
tener cuidado con los cargadores, que no siempre son originales. En general, son 
muy parecidos y la diferencia está dada por el embalaje. Para protegernos, pode-mos 
consultar guías de compras que se brindan en los sitios de compra por Inter-net, 
o dirigirnos a los comercios de prestigio de nuestra zona. 
81 
LOS CARGADORES TAMBIÉN SE FALSIFICAN
tenemos para poder alimentar un ro-bot, 
y veremos sus ventajas y desven-tajas. 
Por último, definiremos un con-junto 
de elecciones posibles para 
nuestro modelo en particular. 
Batería de Iones de Litio (Li-Ion) 
Estas baterías aparecieron reciente-mente 
y se utilizan mucho en los celu-lares 
(Figura 3). Poseen una elevada den-sidad 
de energía y, en general, se pre-sentan 
en placas rectangulares de me-nos 
de 5mm de espesor. Tienen un vol-taje 
de 3,7 V, y carecen de efecto me-moria. 
La tasa de autodescarga es baja, 
con lo cual podemos sacarla del robot 
y guardarla aparte, y así se pierde sólo 
un 6% de su carga cada mes. La curva 
de descarga es lineal, con las ventajas y 
desventajas que presentamos antes. 
Con respecto a su vida útil, indepen-dientemente 
del uso que hagamos de 
ella, su duración es de tres años. 
A pesar de todas las recomendaciones 
que nos dan al comprar celulares, no es 
necesario cargarla durante 12 horas en 
su primera carga. De hecho, las baterías 
más nuevas no necesitan más que 8 ho-ras 
para cargarse completamente. Tam-poco 
es real que los primeros ciclos de 
carga y descarga deben ser completos. 
Descargar en forma completa antes de 
cargarla puede ocasionar un mecanis-mo 
de bloqueo en sus circuitos. Siem-pre 
es preferible cargar la batería cuan-do 
la capacidad sea parcial. 
A pesar de que aún son caras, el uso 
masivo en los celulares ha permitido 
que estén a nuestro alcance para ali-mentar 
a nuestro robot. 
4. COMIDA DE ROBOTS 
82 
Figura 3. En esta imagen podemos ver baterías de Iones de Litio.
Baterías de Níquel Cadmio (Ni-Cd) 
Fueron las primeras baterías recarga-bles 
que usamos en nuestros disposi-tivos 
(Figura 4). Su uso ha disminui-do 
a favor de las baterías de Níquel 
Metal (Ni/Mh), principalmente por 
su efecto memoria y por la contami-nación 
que produce el cadmio. 
Una ventaja que poseen es la cantidad 
de ciclos de carga, que ronda los 
1.500 ciclos. Otra característica posi-tiva 
es el costo, que ronda en la cuar-ta 
parte de las de Ni/Mh, aunque es-ta 
diferencia se reduce día a día. 
Baterías de Níquel Metal (Ni/Mh) 
Son las baterías de moda en este mo-mento 
(Figura 6). Tienen un 40% más 
de capacidad que las de Ni-Cd. 
Además, poseen baja resistencia in-terna, 
lo que permite una carga más 
rápida y una baja tasa de autodescar-ga. 
El problema es que luego de los 
300 ciclos, su capacidad cae drástica-mente, 
y luego de los 600 la resisten-cia 
interna aumenta en forma tan 
abrupta que se considera que el lími-te 
de los ciclos de carga es cercano a 
500. Sin embargo, al tener mayor ca-pacidad 
y no sufrir de efecto memo- 
La fuente de energía 
Figura 6. 
Baterías AA de 
Níquel Metal 
de 2500 mAh. 
83 
❘❘❘ 
Figura 4. Batería de Niquel Cadmio 
para luces de emergencia. 
Figura 5. Pequeñas baterías 
recargables de Ni/Mh y Ni-Cd. 
BATERÍAS DE POLÍMERO DE LITIO 
Las baterías de polímero de litio son muy parecidas a las de litio que ya describi-mos, 
pero se pueden producir en láminas de un milímetro de espesor y poseen un 
ciclo de carga y descarga más prolongado, por lo que se obtiene una batería más 
pequeña, más liviana y de mayor capacidad.
Figura 7. Una UPS alimentada 
por una batería de plomo-ácido. 
Figura 8. Batería recargable 
de gel de 12 V. 
ria, la cantidad de ciclos necesaria es 
menor. Otra ventaja es que son más 
ecológicas que las de Ni-Cd. 
Baterías de Plomo–ácido 
Son las baterías que podemos encon-trar 
en nuestros vehículos (Figura 7). 
Están compuestas por celdas de 2 V, 
en general agrupadas en múltiplos de 
3 (lo que brinda múltiplos de 6 V). 
Tienen un depósito de ácido sulfúrico 
donde se insertan unas placas de plo-mo. 
Cuando las celdas están cargadas, 
los electrodos son de plomo metálico 
y óxido de plomo, sumergidos en el 
ácido sulfúrico (diluido en agua). 
En el proceso de liberación de 
energía, ambos electrodos se convier-ten 
en sulfato de plomo y disminuyen 
así la presencia del ácido en el agua. 
En la carga, en el polo negativo el sul-fato 
de plomo vuelve a convertirse en 
plomo metálico, mientras que en el 
positivo se forma óxido de plomo, y 
aumenta la presencia de ácido sulfú-rico 
en el electrolito. Tienen una gran 
capacidad de corriente con una baja 
resistencia interna, lo que las hace es-pecialmente 
útiles para los motores de 
arranque. Son económicas pero de 
gran peso, lo que no las hace reco-mendables 
para los robots autónomos 
de tamaño mediano o pequeño. 
4. COMIDA DE ROBOTS 
▲ 
EN EUROPA NO SE CONSIGUE 
En Latinoamérica también tenemos desarrollo e investigación relacionados con las cel-das 
84 
de combustible. Lo curioso es que uno de los grupos dedicados a este tema surge 
de un colegio de nivel medio. Allí desarrollaron una celda electroquímica circular para 
generar hidrógeno y oxígeno que alimentan una celda combustible, que será uno de sus 
próximos proyectos. Más información en http://electrolizadoro7.110mb.com.
Baterías de gel 
Esencialmente, son una modificación 
de las baterías de plomo-ácido, donde 
se le añade un agente gelificante al elec-trolito 
para disminuir su movimiento 
dentro de la carcasa (Figura 8). Además, 
presentan un mecanismo por el cual 
los gases internos no se liberan al exte-rior, 
sino que se recombinan con el 
agua de la batería. De esta manera, 
están selladas y pueden estar orienta-das 
en cualquier dirección. Para su re-carga, 
se recomienda utilizar un carga-dor 
de baterías especial de cuatro eta-pas, 
dado que en este proceso puede 
desprender gases o reducir su vida útil. 
Tienen una autodescarga muy baja y 
su carga útil dura hasta casi medio año. 
Celdas de combustible 
Es un dispositivo electroquímico si-milar 
a una batería, pero se reabastece 
a partir de una fuente externa de com-bustible 
y oxígeno. Por otra parte, los 
electrodos no se modifican como en 
una batería convencional, sino que se 
mantienen estables. En el caso clásico 
La fuente de energía 
de una celda de hidrógeno, los reacti-vos 
que se utilizan son hidrógeno en 
el lado del ánodo y oxígeno en el cá-todo. 
Al generar electricidad, el dese-cho 
resultante es agua y calor, con lo 
cual la contaminación producida por 
estas celdas es mínima. Aunque aún 
son muy costosas, en los últimos cin-co 
años han bajado 25 veces su precio. 
Quedan como una buena propuesta 
para seguir atentamente en el futuro. 
En la Tabla 1 presentamos una tabla 
comparativa entre las baterías que po-demos 
encontrar en el mercado. En 
ella, podemos ver todas sus carac-terísticas 
en forma más sencilla. 
Nuestra elección 
Como vemos, tenemos muchas va-riantes 
al momento de elegir la fuen-te 
de energía de nuestros robots. Pa-ra 
hacer nuestra elección, tuvimos 
en mente los siguientes aspectos: 
• Costo. 
• Capacidad de recarga. 
• Masividad de uso (es decir, que pue-dan 
usarse en otros dispositivos). 
85 
TIPO VOLTAJE DENSIDAD RESISTENCIA CAPACIDAD COSTO 
POR CELDA DE ENERGÍA INTERNA DE RECARGA 
Pila carbón zinc 1,5 V Baja Alta No Muy bajo 
Pila alcalina 1,5V Alta Alta No Moderado 
Li-Ion 3,7V Alta Media Sí Alto 
Ni-Cd 1,2V Moderada Baja Sí Moderado 
Ni/Mh 1,2V Alta Baja Sí Moderado 
Plomo ácido 2,0V Moderada Muy baja Sí Bajo 
Tabla 1. Tabla comparativa entre las baterías más comunes.
• Densidad de energía. 
• Peso. 
Antes de presentar nuestra elección, 
queremos aclarar que cualquier fuen-te 
de corriente continua entre 9 V y 
12 V es perfectamente utilizable en 
nuestro diseño. Por lo tanto, no es ne-cesario 
comprar lo mismo que men-cionamos 
aquí, ya que podemos reu-tilizar 
baterías que tengamos en nues-tro 
hogar. Por otro lado, en los mo-mentos 
en los que realizamos pruebas 
con nuestra computadora, podemos 
conectar una fuente de corriente con-tinua 
de 12 V para no consumir la 
energía de nuestras baterías. 
En nuestro caso, hemos elegido las pi-las 
AA de Ni/Mh de 2.500 mA/H, 
porque son las que presentan la mejor 
combinación de las características que 
hemos usado para nuestro análisis. Da-do 
que proporcionan 1,25 V, usaremos 
un pack de 8 a 12 pilas para alimen-tar 
a nuestro robot. Para ello, podemos 
adquirir 2 ó 3 portapilas de 4 pilas ca-da 
uno. En el capítulo en el que haga-mos 
el montaje, vamos a ver cómo los 
ubicamos, pero antes de eso, los co-nectaremos 
con nuestro controlador 
para comenzar las primeras pruebas. 
Calidad de las baterías 
Un factor fundamental en el éxito de 
nuestra fuente de energía es su cali-dad. 
Es tan masivo el uso de las pi-las 
recargables, que podemos encon-trar 
ofertas muy diversas a la hora de 
comprarlas. En un documento reali-zado 
para su tienda de Ebay, Javier 
Martínez nos da algunas recomen-daciones 
muy interesantes que pre-sentamos 
a continuación. 
En general, las pilas más económicas 
no brindan información real con 
respecto a su capacidad. La manera 
de comprobar esto es utilizar algún 
cargador con medidor de capacidad, 
pero en general son muy costosos, 
además de que no pueden realizar la 
medición en forma instantánea. 
Una segunda opción, inmediata y 
económica, es ¡pesar las pilas! Efec-tivamente, 
dado que la capacidad 
está relacionada con los componen-tes 
internos de la pila, una pila con 
mayor capacidad debe ser más pesa-da. 
En la próxima página vemos la 
Tabla 2, creada por Javier, con testeos 
que ha realizado con diversas pilas 
de Ni/Mh. En todos los casos, las pi-las 
medidas son AA. Lamentable-mente, 
otro problema que tenemos es 
4. COMIDA DE ROBOTS 
Figura 9. Portapilas para 8 pilas AA. 
86
que también se comercializan pilas de 
marcas conocidas que, en realidad, 
son imitaciones. Para detectarlas, la 
variable peso también es útil. Por otro 
lado, es importante mencionar que las 
marcas Sony y Panasonic no han pro-ducido 
pilas de más de 2700 mAh. Po-demos 
consultar varias páginas web 
que nos alertan, mes a mes, sobre las 
falsificaciones que aparecen en el mer-cado 
(Figura 10). 
Cargadores 
El cargador de baterías es un dispositi-vo 
que permite recargar baterías ap-tas 
para tal fin, y fuerza el ingreso de 
corriente eléctrica dentro de ellas. El 
cargador más sencillo (Figura 11) es 
La fuente de energía 
CAPACIDAD EN MAH PESO EN GRAMOS 
1700 – 1800 27 
1800 – 2000 27,5 
2000 – 2200 28 
2200 – 2300 29 
2300 – 2600 30 
2600 – 2800 31 
2950 33 
Tabla 2. Relación entre el peso 
y la capacidad de las pilas AA. 
aquel que introduce una corriente con-tinua 
en la batería que debe ser carga-da 
sin modificar la corriente según el 
tiempo o la carga producida hasta el 
momento. Es económico, pero el re-sultado 
deja bastante que desear. En 
general, son de carga lenta para evitar 
87 
Figura 10. En el sitio de MercadoLibre podemos encontrar 
guías especiales para detectar falsificaciones.
el deterioro de las baterías. De todas 
formas, si las dejamos mayor tiempo 
que el indicado, podemos debilitar-las 
o deteriorarlas por sobrecarga. 
Un modelo algo más complejo es 
aquel que detiene su carga luego de un 
tiempo predefinido. Se utilizaron mu-cho 
con las baterías de Ni-Cd a fines 
de la década del 90. Frecuentemente, 
se comercializa el pack de baterías jun-to 
al cargador, que viene configurado 
con el tiempo acorde para las baterías 
asociadas. Si utilizamos otro tipo de 
baterías, corremos riesgos de sobrecar-ga 
si son de menor capacidad o de car-ga 
parcial en el caso contrario. 
También podemos contar con carga-dores 
inteligentes (Figura 12), donde el 
dispositivo monitorea en forma cons-tante 
el voltaje de la batería, su tempe-ratura 
o el tiempo de carga, y determi-na 
el momento de corte óptimo para 
cada caso en particular. Para las baterías 
de Ni-Cd y Ni/Mh, el voltaje sobre la 
batería crece en forma lenta durante el 
proceso de carga, y decrece cuando 
están llenas. Esto le indica al cargador 
que han llegado a su punto máximo de 
carga. Sin embargo, monitorear la 
temperatura nos asegura no tener 
ningún tipo de problemas con las ba-terías 
que se encuentren en corto. En 
estos cargadores, es ideal que las ba-terías 
no se ubiquen en serie, sino de 
forma independiente, para que el mo-nitoreo 
sea específico en cada unidad. 
Los cargadores rápidos de buena cali- 
4. COMIDA DE ROBOTS 
88 
Figura 11. 
Cargador 
de baterías 
tradicional. 
Figura 12. 
Cargador 
inteligente 
para baterías 
de diferentes 
capacidades.
dad, específicos para un modelo de ba-tería, 
usan circuitos de control interno 
de las baterías que permiten acelerar el 
proceso de carga. Muchos de ellos in-cluyen 
un sistema de ventilación para 
impedir el sobrecalentamiento. De to-das 
formas, cuando se utilizan con ba-terías 
de otras marcas, realizan una car-ga 
normal. Si el cargador rápido no uti-liza 
este sistema de control interno, 
puede dañar las baterías. Existen algu-nos 
cargadores especiales que pueden 
realizar esta carga rápida sobre cual-quier 
batería, pero son de marcas reco-nocidas 
y su precio es elevado. 
Como novedad, han comenzado a 
aparecer cargadores que utilizan el 
puerto USB de la computadora para 
evitar la necesidad de otro enchufe (Fi-gura 
14). Incluso hay pilas que tienen 
un adaptador USB para conectarlas 
directamente a nuestra PC. Si perte-necemos 
a la clase de fanáticos que 
tiene un hub USB de muchas bocas, 
tal vez nos quede algún lugar para co-nectar 
estos nuevos juguetes. 
Ayudar a que no sólo 
las baterías duren más 
Todos los dispositivos que hemos 
mencionado, en menor o mayor me-dida, 
son contaminantes. Es por eso 
que queremos ofrecer algunos con-sejos 
con respecto a la forma de de-sechar 
las baterías para que su poder 
contaminante se reduzca. Antes que 
nada, en los momentos de testeo, 
La fuente de energía 
Figura 13. Cargador para baterías de 9 V. 
podemos usar nuestro robot conec-tado 
a la corriente eléctrica. Así cui-daremos 
nuestro bolsillo y nuestro 
planeta. De esta forma, los ciclos de 
carga de las baterías se realizarán es-pecíficamente 
cuando sean necesa-rios. 
Por otra parte, el uso de ba-terías 
recargables (en lugar de alcali-nas, 
de carbón, etcétera) ya es un 
89 
Figura 14. Cargadores 
de baterías por USB.
4. COMIDA DE ROBOTS 
Figura 15. Batería flexible, una propuesta ecológica para la generación de energía. 
punto de partida muy interesante 
para evitar este tipo de contamina-ción. 
La solución ideal para el dese-cho 
de las baterías parte de un tra-bajo 
en conjunto de la sociedad, que 
debe apartarlas de la basura común, 
y del Estado, que debe proveer plan-tas 
de reciclado donde podamos en-viar 
lo que hemos apartado. El pro-ceso 
de reciclado no es directamen-te 
rentable, por lo que es necesario 
que las empresas que realicen este 
proceso pertenezcan al Estado o 
estén subvencionadas por él. Hasta 
❘❘❘ 
LO BARATO SALE CARO 
El INTI (Instituto Nacional de Tecnología Industrial, de Argentina) realizó un estudio 
comparativo de pilas alcalinas y de carbón, que incluía tanto las marcas reconoci-das 
como las de venta callejera. Las conclusiones son que, aunque las de venta ca-llejera 
sean más baratas, la duración es mucho menor, por lo que no son conve-nientes 
económicamente. Además, las de carbón drenan su contenido al exterior y 
son mucho más tóxicas que las de mayor valor. 
90
que no se tome conciencia de este 
peligro, los consejos que dan las 
ONGs vinculadas a la ecología son: 
• No juntar pilas porque así se con-centran 
los riesgos. 
• No tirar las pilas a la cloaca porque 
pueden contaminar el agua. 
• No quemar pilas ni baterías de 
ningún tipo. 
• No dejarlas en lugares a los que pue-den 
acceder los niños. 
• Reemplazar, en la medida de lo po-sible, 
el uso de pilas por corriente 
eléctrica. 
La fuente de energía 
91 
… RESUMEN 
Hay un conjunto amplio de variantes para alimentar a nuestro robot. Desde las tra-dicionales 
baterías de plomo, demasiado pesadas para nuestros pequeños móviles, 
hasta las nuevas celdas de combustible que no sólo aportan más capacidad, sino que 
colaboran con un mundo más limpio. En particular, hemos optado por el tipo de ba-terías 
que consideramos de uso más popular y más económico: las baterías de Ni/Mh. 
Aunque tengamos que usar entre 8 y 10 baterías, el peso y la capacidad que tienen 
serán de gran utilidad para mover a nuestro robot. Y además, probablemente no ten-gamos 
que comprar un cargador, porque las cargaremos con lo que ya tenemos en 
nuestra casa. Por último, no debemos olvidar el impacto de todo tipo de baterías en 
nuestra biósfera. Es por eso que recomendamos el uso de una fuente para alimen-tar 
a nuestro robot, y sólo en aquellos momentos en los que necesitemos indepen-dencia 
de cables, utilizar las baterías.
✔ 
TEST DE AUTOEVALUACIÓN 
1 ¿A qué llamamos capacidad de una ba-tería? 
2 ¿Qué es la densidad de energía? 
3 ¿A qué se llama resistencia interna de 
92 
una batería? 
4 ¿En qué tipo de pilas nos encontramos 
con el famoso efecto memoria? 
5 Realice una comparación entre las ba-terías 
de Li-Ion, las de Ni-Cd y las de 
Ni/Mh. 
6 ¿Cuáles son las desventajas que pre-sentan 
las baterías de Plomo–ácido? 
7 ¿Qué son las celdas de combustible? 
8 ¿Qué tipo de baterías elegimos para 
nuestro proyecto y por qué? 
9 ¿Qué factores podemos analizar para 
determinar la autenticidad de una ba-tería? 
10¿Cuáles son los factores que analizan 
los cargadores inteligentes? 
ACTIVIDADES
Robótica 
Hablar con 
nuestro robot 
Capítulo 5 
Cuando ya desarrollamos el controlador 
y tomamos la decisión de cómo lo vamos 
a alimentar, comienza el desafío de 
programar el controlador. Los lenguajes 
no son sencillos y necesitamos procesos 
lógicos para poder expresar, en el 
lenguaje del robot, lo que deseamos que 
realice. En este capítulo presentaremos 
los diferentes lenguajes y elegiremos uno 
para explicar lo que necesitamos al 
programar el comportamiento del robot. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Comunicación con el robot 94 
Lenguajes de programación 
para robots 95 
PicBasic Pro 95 
Compilador CCS C 97 
MikroBasic 98 
Editor de código fuente 
de mikroBasic 100 
Explorador de código 103 
Depurador 103 
Manos a la obra 106 
Elementos del léxico 108 
Organización de los módulos 110 
Alcance y visibilidad 111 
Variables, constantes y tipos 112 
Estructuras 115 
Operadores 116 
Sentencias 117 
Resumen 123 
Actividades 124
COMUNICACIÓN 
CON EL ROBOT 
Ya hemos logrado construir el cerebro 
de nuestro robot y lo hemos dotado 
de energía. Sólo nos falta encenderlo 
para darle vida a nuestra criatura. Pre-sionamos 
un botón y en un primer 
momento, nada ocurre. Pero de pron-to, 
algunos músculos tiemblan y sus 
ojos se abren. ¡Hemos logrado el mi-lagro! 
Sólo basta con solicitar lo que 
deseamos que haga y nuestros sueños 
se cumplirán. Entonces le pedimos 
que nos traiga el periódico, que nos 
prepare una buena cena y que luego 
deje la cocina en orden. Nada ocurre. 
Sigue allí, con sus lucecitas parpade-antes, 
sin demostrar buena voluntad 
para obedecer a nuestras órdenes. ¿No 
tiene incorporadas las tres leyes de la 
robótica? Tal vez fue demasiado com-plejo 
el pedido. Intentamos con cosas 
más sencillas: que nos traiga el con-trol 
remoto, que atienda la puerta, 
que saque a pasear al perro, que re-suelva 
esas integrales dobles que nos 
fastidian, y nuestro robot sigue allí, 
sin obedecer. ¿No será que no entien-de 
castellano? Probamos con inglés, 
alemán, francés, aymará y, sin embar-go, 
no obtenemos respuesta. Es hora 
de que nos detengamos a tratar de 
comprender a nuestro robot. Es hora 
de que nos demos cuenta de que aún 
es pequeño, y que sólo entenderá ins-trucciones 
muy sencillas, instruccio-nes 
de muy bajo nivel. 
5. HABLAR CON NUESTRO ROBOT 
94 
Figura 1. Una Sinclair Spectrum que, con 48 Kb de RAM, desafiaba 
nuestra capacidad de programar con poca memoria y baja velocidad.
Lenguajes de programación 
para robots 
Para aquellos que hemos trabajado 
con computadoras de baja capacidad 
de procesamiento y poca cantidad de 
memoria, programar los micros de los 
robots nos resulta familiar, dado que 
volvemos a tener las limitaciones de 
aquellos viejos tiempos. 
Con la aparición de las PCs, la velo-cidad 
de procesamiento y la memoria 
de las que disponemos nos permiten 
utilizar lenguajes que no hagan un 
aprovechamiento preciso de todos los 
recursos. Gracias a estas ventajas, apa-recen 
los lenguajes de alto nivel, que 
nos brindan un mayor poder de ex-presividad 
a cambio de gastar mucha 
memoria y procesamiento. 
En el caso de los robots, carecemos 
de estos dos recursos. Por eso, nece-sitamos 
lenguajes que aprovechen al 
máximo cada byte de memoria y ca-da 
ciclo de procesador para realizar 
nuestra tarea. De esta forma, los mi-cros 
utilizan habitualmente lengua-jes 
de bajo nivel. Estos lenguajes 
son pobres en capacidad expresiva, 
pero muy potentes a la hora de uti-lizar 
cada componente de nuestro 
controlador. El problema es que 
aprender a utilizarlos es complicado. 
Pero no temamos, vamos a hacer 
una recorrida por los lenguajes más 
comunes, desde los más potentes 
hasta los más sencillos de utilizar, y 
nos quedaremos, para nuestras pri-meras 
Comunicación con el robot 
ALTO Y BAJO NIVEL 
experiencias, con uno de esta 
última categoría: MikroBasic. Más 
adelante, cuando ya nos quede claro 
el funcionamiento de nuestro mi-cro, 
podremos aventurarnos a hori-zontes 
más complejos. 
PicBasic Pro 
Uno de los lenguajes más populares 
para los micros PIC es el PicBasic Pro 
(PBP), de microEngineering Labs. 
Como su nombre lo indica, es un 
compilador Basic que posibilita la 
programación en un lenguaje mucho 
más sencillo que el ensamblador de 
MicroChip. Es similar al Basic del Ba- 
95 
❘❘❘ 
Nuestro robot no es más que una com-putadora, 
y tenemos que darle un con-junto 
de instrucciones para que realice 
una tarea. Los lenguajes de alto nivel 
nos permiten describir la tarea en un ni-vel 
de abstracción cercano a nuestro 
proceso humano de razonamiento, pero 
son más lentos y menos poderosos por-que 
no tienen acceso a instrucciones tan 
detalladas y precisas. Los lenguajes de 
bajo nivel son complejos de entender y 
utilizar porque nos obligan a expresar lo 
que queremos que realice el robot en 
instrucciones muy cercanas a procesos 
electrónicos y mecánicos, pero nos brin-dan 
un poder mucho mayor por el nivel 
de detalle que podemos lograr.
sic Stamp y posee librerías similares a 
éste. Produce código para una gran va-riedad 
de PIC de 8 a 68 pines. 
Para crear un programa a ser compi-lado 
por PBP, utilizamos nuestro edi-tor 
de texto plano preferido, y graba-mos 
el archivo con extensión .BAS. 
Luego llevamos ese archivo donde 
está el compilador pbp.exe y allí eje-cutamos 
Pbp nombreDelArchivo. 
Si el código es sintácticamente co-rrecto, 
se creará un código interme-dio 
de extensión .ASM, que invo-cará 
al ensamblador para generar, 
por último, un archivo .HEX. En 
este archivo está el código del micro, 
y lo bajaremos luego con el softwa-re 
programador. Veamos un ejemplo 
de código en PicBasic Pro: 
while true 
high PORTB.0 ‘enciende el puerto 
pause 500 ‘espera 500 
milisegundos 
low PORTB.0 ‘apaga el puerto 
pause 500 ‘espera otros 500 
milisegundos 
wend 
Si en el puerto tuviéramos conectado 
un led, tendríamos una bonita luz que 
se enciende y apaga indefinidamente. 
Los creadores de PBP han desarrolla-do 
una suite, MicroCode Studio 
Plus (Figura 2), que une todas las he-rramientas 
necesarias en una única 
IDE. El editor posee coloreado de sin-taxis 
y ayuda sensible al contexto. Su 
explorador de código permite saltar 
con rapidez a secciones específicas, 
como declaración de variables, cons-tantes, 
símbolos y etiquetas inclui-dos 
en el código fuente. Posee todas 
las funcionalidades convencionales de 
los editores de texto como cortar, co-piar, 
pegar, búsquedas y reemplazos, 
entre otros. Además, la IDE nos per-mite 
realizar In Circuit Debugger 
(ICD, depuración en circuito), y re-saltar 
cada línea de código cuando se 
ejecuta en el micro. Podemos definir 
puntos de corte y ejecución de códi-go 
paso a paso, lo que facilita en gran 
medida la depuración de nuestro pro-grama. 
MicroCode Studio Plus tam-bién 
nos brinda un cargador de códi-go 
(bootloader) para incorporar a 
nuestro PIC, de manera que no nece- 
5. HABLAR CON NUESTRO ROBOT 
▲ 
Como casi todas las cosas de este universo, en la red podemos encontrar demos de 
los lenguajes e IDEs que estamos comentando. Aquí van los sitios: 
● PicBasic Pro: www.melabs.com/index.htm. 
● CCS C: www.ccsinfo.com. 
● MikroBasic: www.mikroe.com/en/. 
96 
ENCONTRAR LOS LENGUAJES PARA PROGRAMAR LOS PICS
sitemos un programador para nuestro 
micro. Sólo lo necesitaremos la pri-mera 
vez, para cargar este bootloader. 
Compilador CCS C 
Este compilador de lenguaje C ha si-do 
diseñado exclusivamente para la 
línea PIC. Se considera el compila-dor 
más optimizado para estos mi-cros. 
Tiene una librería de funciones 
predefinidas, lo que facilita la pro-gramación 
en un lenguaje de bajo ni-vel 
como el C. Sin estas funciones, 
sería muy engorroso programar el 
micro. Cuenta con controladores de 
reloj en tiempo real y conversores 
analógicos digitales. Por ejemplo, 
contamos con la instrucción READ_ 
ADC(), que permite leer un valor del 
Comunicación con el robot 
conversor mencionado. Podemos de-finir 
variables estructuradas cuyos 
componentes se correspondan uno a 
uno con registros del micro. 
Es integrable con simuladores de PIC 
como el MPLAB y podemos mezclar 
código assembler en el medio de 
nuestro programa en C, y hacer refe-rencia 
a las variables de éste. Para te-ner 
una idea de la sintaxis, desarrolla-remos 
el mismo ejemplo que mostra-mos 
antes con PicBasic. 
while (TRUE) { 
output_high(PIN_B0); ‘enciende 
el puerto 
delay_us(500); ‘espera 500 
milisegundos 
97 
Figura 2. Vista del MicroCode Studio Plus, IDE para el PicBasic Pro.
output_low(PIN_B0); ‘apaga 
el puerto 
delay_us(500); ‘espera otros 
500 milisegundos 
} ‘Todo esto se repite 
eternamente… 
Cabe aclarar que las funciones que 
se presentan en este ejemplo desen-cadenan 
código mucho más optimi-zado 
que el generado por Basic. 
La firma CCS también ofrece IDEs 
para Windows, llamadas PCW y 
PCWH. La única diferencia es que 
PCWH soporta la serie PIC 18. Po-seen 
un editor de código fuente (C 
Aware Editor, Figura 3), que realiza co-loreo 
de sintaxis, control de tabula-ciones, 
provee ayuda sensible al con-texto 
y pareo de llaves y paréntesis. 
Brinda un asistente (Figura 4) para nue-vos 
proyectos donde, en pocos pasos, 
podemos generar la estructura básica 
del programa. También permite reali-zar 
depuración, pero requiere de 
hardware especial para su uso. En sín-tesis, 
para programación en bajo ni-vel, 
es la opción que presenta más he-rramientas 
para facilitar el desarrollo. 
MikroBasic 
Por último, llegamos al lenguaje ele-gido 
para nuestros ejemplos de pro-yectos. 
La empresa MikroElectróni-ca 
ha desarrollado un conjunto de 
compiladores para micros, tanto para 
lenguaje C como para Basic. Lo más 
interesante de ambos es que integran 
5. HABLAR CON NUESTRO ROBOT 
98 
Figura 3. Vista del editor C Aware de CCS.
un IDE que facilita mucho la progra-mación, 
ya que presenta las carac-terísticas 
que hemos mencionado, co-mo 
coloreo de sintaxis, ayuda sensible 
al contexto, estadísticas sobre el uso 
del micro y muchas otras más. Por 
otra parte, los desarrolladores nos per-miten 
bajar un demo gratuito com-pletamente 
funcional, donde sólo te-nemos 
un límite de 2Kb en el códi-go 
fuente, lo que es suficiente para to-dos 
los proyectos que desarrollaremos 
en nuestro libro. Soporta una gran 
cantidad de modelos de PICs y pro-porciona 
librerías para RS-232, cone-xiones 
USB, interfaz para displays, 
etcétera. Dado que es el lenguaje y la 
IDE que vamos a utilizar, comence-mos 
a estudiar en detalle cada una de 
sus herramientas. 
Comunicación con el robot 
Instalación de mikroBasic 
Para instalar el programa en nuestra 
computadora, debemos dirigirnos a 
la dirección www.mikroe.com/en/ 
compilers/mikrobasic/pic/ y en-trar 
en la sección Download, donde 
podremos bajar la última versión. 
Los pasos de instalación son muy 
sencillos, clásicos en cualquier pro-grama 
de Windows (Figura 5). 
En la misma sección del sitio pode-mos 
encontrar actualizaciones y par-ches, 
por lo que recomendamos visi-tar 
periódicamente el sitio. También 
podemos encontrar un conjunto de 
manuales, muy claros y didácticos, 
que nos permitirán completar nuestra 
breve mirada sobre la herramienta. 
En nuestro caso, todos los ejemplos 
que mostraremos y las indicaciones 
99 
Figura 4. Asistente de proyectos del PCW.
de operación del mikroBasic están 
basados en la versión 5.0.0.2, del 31 
de octubre de 2006. 
Editor de código fuente 
de mikroBasic 
Uno de los puntos más fuertes de la 
IDE es el editor que nos proporciona. 
Como todo editor de texto, presenta 
las utilidades clásicas como cortar, co-piar 
y pegar, y búsquedas y reempla-zos 
masivos. Pero además, nos ofrece: 
• Coloreo de sintaxis. 
• Asistente de código. 
• Asistente para parámetros de fun-ciones. 
• Plantillas prearmadas. 
• Autocorrección de tipos. 
• Bookmarks. 
Éstas y otras opciones se pueden confi-gurar 
desde Tool/Preferences… o al ha-cer 
clic sobre el icono Tools (Figura 6). 
Para utilizar el asistente de código, una 
vez que ingresamos las primeras letras 
de lo que deseamos escribir, presiona-mos 
CTRL + ESPACIO y todos los iden-tificadores 
válidos que comiencen con 
esas letras se desplegarán en un cuadro 
de lista. Allí podremos elegir lo que 
íbamos a escribir o, simplemente, con-tinuar 
con el texto deseado si no lo en-contramos 
(Figura 7). Es necesario rea-lizar 
una primera compilación para 
que funcione el asistente. 
También podemos activar un asis-tente 
para los parámetros de las fun-ciones 
(Figura 8). Para ello, escribi-mos 
la llamada a la función y, cuan-do 
abrimos el paréntesis, automáti- 
5. HABLAR CON NUESTRO ROBOT 
Figura 5. Durante la instalación, es recomendable dejar todo como está en la 
selección de componentes para mikroBasic, ya que no ocupa demasiado espacio. 
100
Comunicación con el robot 
CINTA ADHESIVA, PEGAMENTO, BANDAS ELÁSTICAS, ¡TODO VALE! 
101 
Figura 6. Editor de preferencias de la IDE de mikroBasic. 
Figura 7. Ejemplo de la lista presentada por el asistente 
de código cuando escribimos de y luego CTRL + ESPACIO. 
❘❘❘ 
Muchas veces se puede salir de situaciones problemáticas gracias a estos materiales. Si 
no nos presentamos en concursos de belleza, cuando el tiempo nos corre y debemos pre-sentarnos 
en el torneo, ¡todo lo que una fuertemente a nuestras piezas será válido!
camente aparecerá un pequeño car-tel 
con el o los parámetros corres-pondientes, 
que nos indicará con 
nombre:tipo qué función cumple el 
parámetro y de qué tipo es. 
Para las estructuras más complejas, 
como las funciones, los procedi-mientos, 
los encabezados u otras, 
podemos utilizar las plantillas (Figu-ra 
9). Por ejemplo, si escribimos func 
y presionamos CTRL + J, automáti-camente 
se escribirá la estructura 
completa de una función para que 
completemos con los datos necesa-rios. 
También tenemos la posibili-dad 
de crear nuestras propias plan-tillas 
en la opción Auto Complete de 
Tools/Preferences…. 
Por otro lado, cabe mencionar que 
además de las características que ya 
presentamos, tenemos herramientas 
para realizar autocorrección, co-mentar 
o descomentar un conjunto 
de líneas de código, insertar marcas 
y saltar de una a otra e ir a un nú-mero 
de línea de código. 
5. HABLAR CON NUESTRO ROBOT 
Figura 8. Asistente que informa 
los parámetros de las funciones. 
102 
Figura 9. Editor de las plantillas de código.
Explorador de código 
El explorador de código (Code Explo-rer) 
se encuentra en la zona izquierda 
de la ventana. Nos proporciona una 
lista de los ítems declarados en el có-digo. 
Desde allí podemos saltar a cual-quiera 
de las declaraciones con sólo 
hacer doble clic sobre ella. En la par-te 
superior del explorador podemos 
encontrar dos solapas más. La solapa 
QHelp nos proporciona ayuda sobre la 
librería de funciones. La última sola-pa 
(Keyboard) nos proporciona una 
lista de los atajos de teclado del editor. 
Depurador 
MikroBasic proporciona un depura-dor 
a nivel de código fuente (Figura 
11). Esto nos permite simular el com-portamiento 
del micro y nos asiste 
para la depuración de errores. Dado 
Comunicación con el robot 
que es a nivel de código y no tiene 
lectura real del micro, no permite si-mular 
ciertas propiedades intrínsecas 
del procesador, como temporizado-res, 
interrupciones, etcétera. 
Una vez que hemos compilado nues-tro 
programa (Project/Build), ejecuta-mos 
el depurador en Run/Start Debug-ger. 
Automáticamente nos marca la 
primera línea de código y nos aparece 
la ventana Watch, que nos permitirá re-alizar 
el control de la depuración. En 
esta ventana podemos visualizar varia-bles 
y registros del PIC, actualizados 
según la ejecución del programa. En la 
parte superior de la ventana encontra-mos 
iconos para el control de la ejecu-ción 
del depurador (arranque, pausa, 
detención) y mecanismos de ejecución 
del código paso a paso. Debajo de es-ta 
barra tenemos un cuadro de lista pa- 
103 
Figura 10. Aquí podemos ver la parte de la ventana 
que contiene el explorador, la ayuda y los atajos de teclado.
ra poder agregarle variables y registros 
al cuadro inferior, que nos permitirá 
seguir el comportamiento de ellos pa-so 
a paso. En ese cuadro, cuando agre-gamos 
una variable o un registro, po-demos 
ver el nombre, el valor y la di-rección 
de memoria que ocupa. 
Para poder probar las opciones del de-purador, 
realicemos nuestro primer 
programa sencillo, idéntico al que he-mos 
utilizado en cada ejemplo del 
compilador. Para comenzar, luego de 
abrir mikroBasic, cerremos el proyec-to 
que tengamos abierto y vayamos al 
menú Project/Close Project. Creemos 
un proyecto nuevo en Project/New 
Project…, donde nos aparecerá la ven-tana 
que podemos ver en la Figura 12. 
Completemos el nombre, el sendero 
y la descripción del proyecto y eliga-mos 
el procesador (utilicemos el PIC 
16F88) y la velocidad de reloj (en 
nuestro caso, 4.0). Las banderas que 
5. HABLAR CON NUESTRO ROBOT 
Figura 11. Ventana del controlador 
de la depuración. 
104 
Figura 12. Creación de un proyecto nuevo.
aparecen en la parte inferior las de-jaremos 
como están por defecto. Au-tomáticamente 
nos aparecerá un 
fuente con el encabezado del progra-ma. 
Debajo del encabezado escribi-remos 
el siguiente código: 
main: 
TRISB = 0 ‘Configura 
los pines de PORTB como salida 
while true 
PORTB.3 = 255 ‘Enciende 
los pines de PORTB 
delay_ms(500)’ Espera 
500 milisegundos 
PORTB.3 = 0 ‘Apaga 
PORTB 
delay_ms(500)’ 
Nuevamente espera 500 
milisegundos 
wend 
end. 
Si luego de realizar la compilación 
(CTRL + F9) ejecutamos el depurador 
(F9), podremos ver cómo señala la 
primera línea posterior a main y abre 
la ventana Watch Window. Allí po-dremos 
añadir las variables TRISB y 
PORTB para realizar el seguimiento 
de sus valores. Si ejecutamos paso a 
paso, nos indicará en qué línea nos 
encontramos y la resaltará con color, 
y veremos la modificación de los va-lores 
de las variables. Cuando lle-guemos 
a delay, en la parte inferior 
Comunicación con el robot 
de la ventana podremos ver cómo se 
simula el paso del tiempo. Si hace-mos 
doble clic sobre una variable, 
podremos modificar su valor en el 
formato numérico que deseemos. 
Otras ventanas de depuración que 
podemos encontrar si nos dirigimos 
a View/Debug windows son: 
• Stopwatch: esta ventana nos mues-tra 
la cantidad de ciclos/tiempo 
utilizados hasta la ejecución del úl-timo 
comando (Figura 13). El valor 
Delta nos muestra el número de ci-clos/ 
tiempo entre la última línea 
ejecutada y la línea activa. Con el 
botón Reset To Zero podemos po-ner 
en 0 el valor de Stopwatch, pe-ro 
continuaremos acumulando en 
el cuadro Current Count. 
• RAM: nos muestra el contenido de la 
RAM e indica los últimos valores 
cambiados en color rojo. 
• History: presenta las últimas N líne-as 
de nuestro fuente que se han eje-cutado, 
pero en código assembler. 
105 
Figura 13. Ventana del Stopwatch.
Por último, cuando procedemos a 
compilar, si tenemos errores en 
nuestro código, aparecerán en la 
parte inferior de nuestra pantalla, en 
la ventana de errores. 
Allí se nos indicará la línea del error, 
su mensaje y la unidad donde se pro-dujo. 
Si hacemos doble clic sobre es-ta 
línea, iremos directamente a su 
posición en el código fuente. 
Probablemente, todas estas carac-terísticas 
del depurador de mikroBa-sic 
lo convierten en la IDE más po-derosa 
del mercado para la progra-mación 
de PICs. Ahora que ya co-nocemos 
la herramienta, pasemos a 
crear nuestros propios programas. 
Manos a la obra 
Como ya hemos visto, mikroBasic 
organiza sus aplicaciones en proyec-tos. 
Estos proyectos están compues-tos 
por un archivo .PBP descriptor 
del proyecto y uno o más archivos de 
código fuente con extensión .PBAS. 
Cabe aclarar que sólo podemos 
compilar un fuente si éste forma 
parte de un proyecto. 
Una vez que tenemos creado el pro-yecto, 
como vimos en el punto an-terior, 
podemos editarlo si vamos a 
Project/Edit project, donde nos apa-recerá 
la misma ventana que usamos 
para crearlo. Cuando compilamos 
nuestro proyecto, se nos generan los 
siguientes archivos: 
5. HABLAR CON NUESTRO ROBOT 
106 
Figura 14. Una mirada sobre todas las herramientas 
que presenta la IDE de mikroBasic.
• hex: archivo estilo Intel. Con él 
programaremos el micro. 
• mcl: archivo binario de distribu-ción. 
Puede agregarse a otros pro-yectos 
sin entregar el fuente. 
• asm: archivo en código assembler 
(Figura 15), pero con un conjunto 
de comentarios que lo hace muy 
legible y más fácil de entender. Por 
ejemplo, para cada instrucción del 
fuente en Basic aparece la lista de 
comandos en assembler. También 
podemos verlo una vez que se ha-ya 
generado desde el menú View/ 
View Assembly. Para aprender, es 
recomendable que miremos el 
.ASM generado por el ejemplo que 
utilizamos para el depurador. 
Comunicación con el robot 
WINPIC800 
Para poder bajar nuestros programas 
al programador y de allí a nuestro con-trolador, 
debemos usar el WinPic800, 
que podemos conseguir en forma gra-tuita 
en el sitio www.winpic800.com. 
Está todo en castellano y su forma de 
uso es muy sencilla. De todas maneras, 
si se presenta alguna duda, es reco-mendable 
consultar la ayuda y los fo-ros 
De nuestra parte, una única recomen-dación 
que no encontramos en la docu-mentación: 
en la solapa Config, probar 
con las diferentes opciones de Osc, y 
dejar activo sólo WDT. 
107 
❘❘❘ 
que hay en el sitio. 
Figura 15. Aquí podemos ver el assembler del código que enciende el led. 
Los comentarios que tiene lo hacen más legible.
MikroBasic nos proporciona un 
conjunto de variables globales y 
constantes predefinidas. Todos los 
registros están implícitamente de-clarados 
como variables globales de 
tipo byte y son visibles en todo el 
proyecto. También nos proporciona 
constantes como PORTB, TMR1, etcé-tera. 
Todos los identificadores están 
en mayúscula, tal como se los iden-tifica 
en las hojas de datos de Mi-crochip. 
Para ver la lista completa de 
predefiniciones, podemos abrir el 
archivo .DEF correspondiente al 
micro utilizado. Estos archivos se 
encuentran dentro de la carpeta 
defs, donde se instaló mikroBasic. 
Con respecto a las variables, pode-mos 
acceder a ellas a nivel de bit. Por 
ejemplo, si declaramos la variable 
mivar de tipo longint, lo cual define 
un rango de 32 bits, podemos acce-der 
a cualquiera de ellos si escribi-mos 
mivar.n, donde n es un número 
entre 0 y 31, que indica el bit al cual 
accedemos. Este acceso es tanto a ni-vel 
de lectura como de escritura. 
Elementos del léxico 
Cuando un código fuente es compi-lado, 
la primera fase que se produce 
es la de tokenización. En este mo-mento, 
una herramienta llamada par-ser 
recorre el archivo de texto y reco-noce 
unidades significativas (tokens), 
como palabras clave, literales, varia-bles, 
etcétera, y los espacios en blan-co. 
En realidad, se llama espacios en 
blanco a todos los espacios, tabula-ciones, 
fines de línea y comentarios. 
Todos ellos determinan el comienzo o 
el fin de un token. Por ejemplo: 
5. HABLAR CON NUESTRO ROBOT 
108 
Figura 16. MikroBasic nos brinda magníficos gráficos estadísticos 
sobre el código de máquina que genera nuestro fuente.
Dim a as byte 
Dim b as longint 
Es equivalente a 
Dim a as byte 
Dim b as longint 
Para los comentarios se utiliza el 
apóstrofe como iniciación y se fina-liza 
con el fin de línea. No podemos 
poner comentarios de más de una lí-nea, 
excepto que comencemos cada 
línea con un apóstrofe. 
Los tokens son los elementos más 
pequeños que tienen significado por 
sí mismos en Basic. MikroBasic re-conoce 
los siguientes tokens: 
• Keywords (palabras clave). 
• Identificadores. 
• Constantes. 
• Operadores. 
• Separadores. 
Por ejemplo, si tenemos el siguiente 
código: 
mivar=23 
Esto se convierte en los siguientes 
tokens: 
• mivar: variable. 
Comunicación con el robot 
• =: operador de asignación. 
• 23: literal. 
• newline: fin de la sentencia. 
Los literales son aquellas expresiones 
que no deben ser evaluadas, que ya 
tienen valor por sí mismas. En el ca-so 
de los literales que representan nú-meros 
enteros, pueden estar antecedi-dos 
por un signo más o un signo me-nos. 
También podemos escribir litera-les 
enteros en hexadecimal si antepo-nemos 
el prefijo $ ó 0x ($3F ó 0x3F) 
o en binario, si anteponemos % 
(%100101). Los literales de punto 
flotante representan el signo decimal 
con un punto. La estructura es: par-teEntera. 
parteDecimalExponente, si 
utilizamos la notación científica tra-dicional. 
Algunos ejemplos: 
0. ‘=0.0 
-1.43 ‘=-1.43 
12.55e6 ‘=12.55 * 1000000 
2e-5 ‘=2 * 10^-5 o lo 
que es igual, 2 / 100000 
.04e33 ‘=0.04 * 10^33 
Los literales de caracteres y de cade-na 
se encierran entre comillas. Las 
comillas consecutivas, “”, se consi-deran 
como un carácter nulo. Con 
respecto a los identificadores (nom-bres 
de variables, de funciones, 
constantes, etcétera), pueden tener 
una longitud arbitraria y contener 
109
caracteres de la A a la Z, el carácter 
_ (guión bajo), y los dígitos del 0 al 
9. La primera letra debe ser un 
carácter o el guión bajo. No se dis-tingue 
mayúsculas, por lo tanto var, 
Var y vAr son el mismo identificador. 
Organización de los módulos 
Un proyecto en mikroBasic consiste 
en un módulo principal y en un con-junto 
de módulos adicionales (optati-vos) 
con librerías de funciones, decla-raciones, 
etcétera. El módulo princi-pal 
tiene una estructura como la que 
presentamos a continuación: 
program <nombre> 
include <otros módulos incluidos> 
‘********************** 
‘Declaraciones 
‘********************** 
‘Declaración de símbolos 
symbol… 
‘Declaración de constantes 
const… 
‘Declaración de variables 
dim… 
‘Declaraciones de procedimientos 
sub procedure <nombre 
procedimiento>(<param1>, …) 
<declaraciones locales> 
… 
end sub 
‘Declaraciones de funciones 
sub function <nombre 
función>(<param1>, …) 
<declaraciones locales> 
… 
end sub 
‘********************** 
‘Cuerpo de programa 
‘********************** 
main: 
‘aquí va nuestra obra 
maestra… 
end. 
Las otras unidades deberían tener el 
siguiente aspecto: 
5. HABLAR CON NUESTRO ROBOT 
❘❘❘ 
Cada vez que desde una función o un procedimiento llamamos a otra rutina (o a sí 
mismo en el caso de recursividad), decimos que aumentamos el nivel de anidación 
en uno. Lamentablemente, las llamadas recursivas no son soportadas por mikro- 
Basic. De todas maneras, también tenemos un límite en los niveles de anidación, 
que en el caso de la familia PIC16, es de 8 niveles. 
110 
LIMITACIONES DE ANIDACIÓN
module <nombre> 
include <otros módulos 
incluidos> 
‘********************** 
‘Interface (globales): 
‘********************** 
‘Declaración de símbolos 
symbol… 
‘Declaración de constantes 
const… 
‘Declaración de variables 
dim… 
‘prototipos de procedimientos 
sub procedure <nombre 
procedimiento>(<param1>, …) 
‘prototipos de funciones 
sub function <nombre 
función>(<param1>, …) 
‘********************** 
‘Implementación 
‘********************** 
implements 
‘Declaración de constantes 
const… 
‘Declaración de variables 
dim… 
Comunicación con el robot 
‘Declaraciones de procedimientos 
sub procedure <nombre 
procedimiento>(<param1>, …) 
<declaraciones locales> 
… 
end sub 
‘Declaraciones de funciones 
sub function <nombre 
función>(<param1>, …) 
<declaraciones locales> 
… 
end sub 
end. 
Alcance y visibilidad 
Llamamos alcance de un identifica-dor 
a la parte del programa donde el 
identificador se puede utilizar para 
acceder al objeto al que apunta. 
Hay diversos alcances según el lugar 
donde hacemos la declaración del 
identificador, veamos: 
• Si el identificador se declara en la 
sección de declaraciones del módu-lo 
principal, fuera de toda función 
o todo procedimiento, el alcance se 
extiende desde la declaración hasta 
el final del archivo, y se incluyen to-das 
las rutinas que allí se encuen-tran. 
Diremos que estos identifica-dores 
tienen un alcance global. 
• Si en cambio se declara en una 
función o un procedimiento, su al- 
111
cance se extiende hasta el final de 
la rutina. En este caso, los identi-ficadores 
son locales. 
• Si se declara en la sección interfaz 
de un módulo, su alcance se ex-tiende 
desde donde se declara has-ta 
el final, y a todo módulo que use 
el módulo donde se encuentra la 
declaración. La única excepción 
son los símbolos, que tienen un al-cance 
limitado al archivo donde 
fueron declarados. 
• Si se declara en la sección imple-mentación 
de un módulo, pero no 
dentro de una función o un pro-cedimiento, 
el alcance va desde la 
declaración hasta el final del ar-chivo, 
y está disponible en todas 
las funciones y en todos los proce-dimientos 
del módulo. 
Llamamos visibilidad de un identi-ficador 
a las regiones del fuente don-de 
podemos acceder a los objetos 
apuntados por él. En general, alcan-ce 
y visibilidad coinciden, pero no 
necesariamente. Podríamos tener un 
identificador que se vuelva invisible 
en una función o en un procedi-miento 
porque un identificador lo-cal 
tiene su mismo nombre. Sin em-bargo, 
el objeto identificado sigue 
presente, aunque no es accesible. En 
síntesis, la visibilidad nunca exce-de 
al alcance, pero sí puede ocurrir 
que el alcance exceda a la visibilidad. 
No profundizaremos más sobre el 
desarrollo de programas modulares, 
dado que realizaremos programas 
pequeños. Cuando veamos cuestio-nes 
sobre fútbol de robots, progra-maremos 
algunos módulos de detec-ción 
del piso y de la pelota. 
Variables, constantes y tipos 
Las variables, como ya sabemos, son 
simplemente un identificador o un 
apuntador a una zona de memoria de 
contenido plausible de ser modificado. 
Todas las variables se deben declarar 
antes de usar. Para ello escribimos: 
dim lista_de_nombres_de_ 
variables as tipo 
La lista_ de_nombres_de_variables es 
una lista delimitada por comas de 
identificadores válidos, que serán 
5. HABLAR CON NUESTRO ROBOT 
❘❘❘ 
En las aplicaciones sobre PIC16 (que es nuestro caso), una rutina no puede exceder 
una página (aproximadamente, 2000 instrucciones). Si la rutina no entra en una pági-na, 
112 
LÍMITES DE TAMAÑO EN LAS RUTINAS 
se producirá un error de compilación. Si nos encontramos con este problema, bas-ta 
con rediseñar nuestro código para obtener rutinas más pequeñas.
todas del mismo tipo de datos. Por 
ejemplo: 
dim dias, edad, curso as byte 
dim contador as word 
Las constantes son datos que no 
varían en la ejecución del programa, 
es decir, no consumen memoria 
RAM. Se declaran de la siguiente 
manera: 
const NOMBRE_DE_CONSTANTE [as 
tipo] = valor 
El nombre de la constante debe ser 
un identificador válido. Por conven-ción, 
se ponen todas las letras de su 
nombre en mayúscula, para identi-ficarlas 
rápidamente en el código. 
Aunque la declaración de tipo es op-cional, 
cabe aclarar que si no lo ha-cemos, 
elegirá el tipo más chico que 
Comunicación con el robot 
permita el valor asignado. Aquí te-nemos 
algunos ejemplos: 
const MAX as longint = 16348 
const MIN = 100 ‘el compilador 
asume el tipo word 
const LETRA=’a’ ‘el compilador 
asume char 
cont ERROR=”Error grave” ‘el 
compilador asume string 
const meses as byte[12]=(31, 28, 
31, 30, 31, 30, 31, 31, 30, 
31, 30, 31) 
Basic es un lenguaje con tipos es-trictos. 
Esto significa que en el mo-mento 
de la compilación se debe po-der 
definir un tipo específico para 
cada identificador. 
En estos lenguajes, los tipos sirven 
para determinar la cantidad de me-moria 
necesaria, interpretar los bits 
que encuentran en el objeto cuando 
acceden y para asegurar asignaciones 
y pasajes de parámetros correctos. 
113 
TIPO TAMAÑO RANGO 
byte 8 bits 0 .. 255 
char 8 bits 0 .. 255 
word 16 bits 0 .. 65535 
short 8 bits -128 .. 127 
integer 16 bits -32768 .. 32767 
longint 32 bits -2147483648 .. 2147483647 
float 32 bits ±1.17549435082*1038 .. 
±6.80564774407*1038 
Tabla 1. Tipos simples de variables.
Los tipos simples son los que pode-mos 
observar en la Tabla 1. 
En mikroBasic también contamos 
con arreglos. Un arreglo (Figura 17) es 
una colección de elementos del mis-mo 
tipo, identificados en su conjun-to 
con un nombre e individualmente 
con un índice. Por ejemplo: 
dim semana as byte[7] 
Esto declara un arreglo de nombre 
semana que contiene siete elementos 
de tipo byte. Cada elemento estará 
identificado como semana[i], donde 
i es un número entre 0 y 6. De esta 
manera, accedemos a cada elemen-to, 
tanto para su lectura como para 
su escritura. Por ejemplo: 
semana[2] = 12 
Esto le asigna al tercer elemento de la 
colección (recordemos que el primer 
elemento es el 0) el valor 12. 
También podemos crear arreglos 
multidimensionales. Para poder re-crear 
una imagen sencilla, podemos 
pensar un arreglo de dos dimensiones 
como una planilla, donde un índice 
indica la fila y el otro la columna. Por 
ejemplo, para declarar un arreglo de 
dos dimensiones escribimos: 
dim sueldos as integer[23][12] 
De esta manera, tenemos una varia-ble 
sueldos que tiene 23 filas y 12 co- 
5. HABLAR CON NUESTRO ROBOT 
114 
Índice: 
5 6 2 3 4 1 4 8 
0 1 2 3 4 5 6 7 
Figura 17. Un arreglo es una colección de elementos 
del mismo tipo identificados por un índice. 
❘❘❘ 
CICLOS INFINITOS 
A pesar de que en la programación tradicional un ciclo infinito trasluce algún error, en 
el caso de los robots es habitual su uso. Como el robot hará lo mismo hasta que se 
apague o se quede sin baterías, en general la tarea principal, y otras tareas que se 
estén ejecutando en forma paralela, están dentro de una estructura while true… wend. 
De esta manera, se ejecutará infinitamente hasta que el robot se detenga.
lumnas, desde sueldos[0][0] hasta 
sueldos[22][11]. Es decir, 276 ele-mentos. 
Las cadenas son arreglos 
de caracteres, y se las declara de esa 
manera. Por ejemplo: 
dim nombre as string[14] 
Esto declara una variable nombre que 
apuntará a una cadena de 14 caracte-res. 
De todas formas, podemos acce-der 
a la cadena como un solo ele-mento, 
como podemos ver aquí: 
nombre=”Iris” 
En este ejemplo, le asignamos una 
cadena de 4 caracteres a la variable 
nombre. El límite de cadena a asig-nar 
es de 14 caracteres. 
Estructuras 
Para representar objetos cuya infor-mación 
es un conjunto de datos de 
diversos tipos, utilizamos estructu-ras. 
Por ejemplo, si queremos repre-sentar 
un punto, necesitamos la co-ordenada 
x y la coordenada y com-prendida 
por un nombre único. La 
declaración de la estructura es la que 
podemos ver a continuación: 
structure nombre_estructura 
dim miembro1 as tipo 
… 
Comunicación con el robot 
EFICIENCIA DE TIPOS 
dim miembron as tipo 
end structure 
Donde nombre_estructura y miem-bro1 
son nombres válidos para los 
identificadores. Por ejemplo: 
structure punto 
dim x as integer 
dim y as integer 
end structure 
Una vez creada la estructura, se la uti-liza 
como si fuera un tipo en la decla-ración 
de identificadores. Por ejemplo: 
dim posicion as punto 
dim esquina as punto 
115 
❘❘❘ 
La unidad aritmético lógica de los PICs se 
ha optimizado para trabajar a nivel de by-tes. 
Aunque con mikroBasic podemos tra-bajar 
tipos de datos muy complejos, esto 
aumenta dramáticamente el tiempo de 
procesamiento. Siempre conviene usar el 
tipo de datos más pequeño para cada si-tuación. 
Cada modelo de procesador tie-ne 
diferentes comportamientos en su uni-dad 
aritmético lógica, pero siempre es 
bueno usar tipos ajustados a lo necesario.
Para acceder a cada elemento de la es-tructura, 
simplemente escribimos 
identificador.campo_de_estructura. 
Por ejemplo: 
posicion.x=12 
esquina.y=posicion.y 
Operadores 
En mikroBasic podemos encontrar 
los siguientes operadores: 
• Aritméticos: estos operadores per-miten 
realizar cómputos matemá-ticos. 
Sus operandos son numéri-cos 
y también retornan un resulta-do 
numérico. Ellos son los que po-demos 
ver en la Tabla 2. Cabe men-cionar 
que el operador – también 
puede usarse delante de un núme-ro 
para cambiar su signo. 
• Relacionales: los operadores rela-cionales 
comparan dos expresiones 
y devuelven verdadero o falso según 
la comparación realizada. Ellos son 
los que se muestran en la Tabla 3. 
• De bits: operan sobre bits individua-les 
de los operandos. 
Ambos operandos deben ser de tipos 
con signo o sin signo simultánea-mente. 
Los operadores de bits son los 
de la Tabla 4. 
Los operadores and, or y not tam-bién 
se pueden utilizar con expre-siones 
lógicas, es decir, cuyo valor 
5. HABLAR CON NUESTRO ROBOT 
OPERADOR OPERACIÓN EJEMPLO 
+ Suma 5 + 3 retorna 8 
- Resta 2 - 3 retorna -1 
* Multiplicación 5 * 4 retorna 20 
/ División 14/4 retorna 3.5 
div División entera 14 div 4 retorna 3 
mod Resto de la división entera 14 mod 4 retorna 2 
116 
Tabla 2. Operadores aritméticos. 
OPERADOR OPERACIÓN EJEMPLO 
= Igual 5 = 5 retorna Verdadero (true) 
<> Distinto 5 – 4 < > 6 - 2 retorna Falso (false) 
> Mayor que 3.5 + 7.2 > 5.2 + 9.3 retorna Falso 
< Menor que 9 > 3 retorna Verdadero 
>= Mayor o igual 3 + 2 > = 1 + 4 retorna Verdadero 
<= Menor o igual 13.6 < = 12.8 retorna Falso 
Tabla 3. Operadores relacionales.
Comunicación con el robot 
❘❘❘ 
DIVISIÓN POR CERO 
Si se utiliza de manera explícita el lite-ral 
0 como segundo operando, el com-pilador 
reportará un error y no gene-rará 
código. Pero en el caso de que es-te 
problema se produzca en forma 
implícita (por ejemplo, cuando tene-mos 
una variable que toma fortuita-mente 
el valor 0 y está como dividendo) 
el resultado será el máximo valor posi-ble 
117 
evaluado es verdadero o falso. Lo 
que retornan tiene la misma lógica 
que en los operadores a nivel de bits. 
Es decir, podemos pensar en verda-dero 
como 1 y en falso como 0, y a 
partir de allí, analizar el resultado de 
la operación como si fuera una ope-ración 
a nivel de bits. 
Sentencias 
Como en todo lenguaje de progra-mación 
procedural, tenemos un pe-queño 
conjunto de sentencias que el 
compilador convierte en las instruc-ciones 
de código máquina corres-pondientes. 
En general, este con-junto 
es mínimo, y se enriquece con 
la librería de funciones y procedi-mientos 
que ofrece el ambiente. A 
para el tipo apropiado. 
partir de esa librería comenzaremos 
a construir la propia para aumentar 
el poder de nuestro lenguaje en el 
ámbito específico de nuestro traba-jo. 
Veamos las sentencias que nos 
proporciona este Basic. 
OPERADOR OPERACIÓN EJEMPLO 
and Retorna 1 si ambos bits en la misma 12 (%1100) and 
posición están en 1. 10 (%1010) retorna 
8 (%1000) 
or Retorna 1 si por lo menos uno de los 2 bits 12 (%1100) or 
en la misma posición está en 1. 10 (%1010) retorna 
14 (%1110) 
xor Retorna 1 si uno de los 2 bits en la misma 12 (%1100) xor 
posición está en 1 y el otro no. 10 (%1010) retorna 
6 (%0110) 
not Invierte cada bit del número. not 6 (%0110) retorna 9 (%1001) 
<< Mueve los bits una posición hacia la izquierda. 7 (%0111) << 2 retorna 28 (%11100) 
Los bits ubicados más a la izquierda se 
descartan y a la derecha se rellena con ceros. 
>> Igual a << pero a la derecha. 35 (%100011) >> 3 retorna 4 (%100) 
Tabla 4. En esta tabla podemos observar los operadores 
de bits con los que podemos trabajar.
5. HABLAR CON NUESTRO ROBOT 
Sentencia asm 
La primera sentencia que presenta-remos 
es asm, que permite incorpo-rar 
código assembler en nuestro có-digo 
Basic. Su sintaxis es: 
asm 
conjunto de instrucciones 
en assembler 
end asm 
Dentro de esta sentencia, debemos 
comenzar los comentarios con pun-to 
y coma. Luego, al compilar, este 
código quedará directamente tradu-cido 
a los valores correspondientes 
de código máquina. 
Asignación 
Aunque ya la hemos usado, no pode-mos 
dejar de presentar la asignación 
que tiene la siguiente forma: 
variable=expresión 
La expresión se evalúa y asigna su re-sultado 
a la variable. No debemos con-fundir 
este operador con el operador 
118 
relacional homónimo. Simplemente, el 
contexto de uso de cada uno determi-na 
la semántica que utilizará el compi-lador 
para tomarlo como una asigna-ción 
o un operador. 
Sentencias condicionales 
Como en otros lenguajes procedura-les, 
contamos con sentencias condi-cionales 
que nos permiten seguir uno 
u otro curso de acción según deter-minada 
condición. La más conocida 
es la sentencia if, cuya sintaxis es: 
if expresión then 
sentencias 
… 
[ else 
otras sentencias ] 
end if 
La expresión del if debe ser una ex-presión 
booleana, es decir, que de-vuelva 
verdadero o falso. En el caso 
de retornar el valor verdadero, se eje-cutan 
las sentencias que están den-tro 
del primer grupo. Si el segundo 
grupo de sentencias está definido 
(los corchetes no deben escribirse, 
✱ 
VARIABLES DENTRO DEL CÓDIGO EN ASSEMBLER 
Dentro del código en assembler, podemos usar variables que estén declaradas en 
la parte Basic de nuestro fuente. Una recomendación es estar seguros de que la va-riable 
está inicializada en el momento que se use de esta manera. Si no, se puede 
producir un error y el programa se puede colgar.
sólo nos muestra que esa sección es 
optativa), entonces se ejecuta este 
segundo grupo. Si no está, se con-tinúa 
con las sentencias posteriores 
al end if. Por ejemplo: 
if PORTA.3=1 then 
PORTB.2=1 
else 
PORTB.3=1 
endif 
… 
Supongamos que el bit 3 del puerto 
A está definido como entrada y los 
bits 2 y 3 del puerto B como salidas. 
Lo que hacemos aquí es encender el 
bit 2 de B si la entrada registrada en 
el 3 de A se enciende, y encender el 
bit 3 de B en el otro caso. 
Otra sentencia que define el flujo del 
programa según una condición es la 
sentencia select case. Su sintaxis es: 
select case selector 
case valor_1 
sentencias_1 
Comunicación con el robot 
case valor_2 
sentencias_2 
… 
case valor_n 
sentencias_n 
[case else 
sentencias_por_ 
defecto 
] 
end select 
El selector es la expresión que se 
evalúa para luego determinar si coin-cide 
con alguno de los valores de las 
sentencias case. Esos valores pueden 
ser literales, constantes o expresio-nes. 
El case else es optativo, y sus 
sentencias se ejecutan si no ingresó 
en ninguno de los case anteriores. En 
los valores podemos agrupar un con-junto 
de ellos separados por una co-ma, 
para que se ejecuten sus senten-cias 
cuando el selector coincida con 
cualquiera de ellos. Por ejemplo: 
select case resu 
119 
▲ 
HOJA DE DATOS DE LOS PICS 
Para tener información completa y detallada de cada PIC, podemos recurrir a sus hojas 
de datos (datasheet). Microchip las ofrece en su sitio www.microchip.com. Estas hojas 
tienen una descripción profunda del micro, su diagrama de pines en todos los modelos, 
diagramas internos, organización de la memoria, funcionamiento de los timers, etcétera.
case 0 
oper=0 
case 1, 4, 7, 9 
oper=1 
case 2,5,8 
oper=2 
case else 
oper=3 
end select 
En el caso de que resu valga 0, oper 
tomará el valor 0. Si vale 1, 4, 7 ó 9, 
oper tomará el valor 1. En el caso de 
que sea 2, 5 u 8, el valor de oper será 
2. Y en otro caso, oper saldrá de esta 
estructura con valor 3. 
Sentencias de iteración 
Las sentencias de iteración nos per-miten 
repetir un conjunto de sen-tencias 
una determinada cantidad 
de veces o según se produzca una 
condición o no. En el primer caso, 
la sentencia for nos permite definir 
un número de repeticiones a ejecu-tarse, 
de la siguiente manera: 
for contador = valor_inicial to 
valor_final [step 
valor_salto] 
sentencias 
next contador 
El contador es una variable que au-mentará 
en cada repetición según lo 
que esté definido en valor_salto. Si el 
step no se define, el salto es de uno 
en uno. El contador comienza con el 
valor indicado en valor_inicial, y si 
en algún momento supera el 
valor_final, el ciclo deja de repetirse. 
Es decir, cada vez que se llega a next 
contador, el contador aumenta lo in-dicado 
por valor_salto y se evalúa si 
ha superado el valor_final. De ser así, 
no vuelven a ejecutarse las sentencias 
del ciclo. Por ejemplo, en el siguien-te 
caso, el arreglo a toma el valor 255 
en cada posición del 0 al 7. 
for i= 0 to 7 
a[i]=255 
next i 
Otra sentencia que podemos usar 
para una repetición es la estructura 
while, que se define de esta manera: 
while expresión 
sentencias 
wend 
Cada vez que se está por ejecutar el 
conjunto de sentencias, se evalúa la 
expresión. Si su resultado es verda-dero, 
se ejecutan. Si es falso, se con-tinúa 
la ejecución con las sentencias 
posteriores al wend. 
Con este comportamiento, pode-mos 
tener casos en los que las sen- 
5. HABLAR CON NUESTRO ROBOT 
120
tencias no se ejecutan nunca, porque 
la expresión retorna falso en la pri-mera 
evaluación. Por ejemplo: 
i=0 
while i<=7 
a[i]=255 
i=i+1 
wend 
En este ejemplo, logramos exacta-mente 
que lo que hicimos en el an-terior. 
En general, cuando la condi-ción 
de corte está basada en alguna 
variable que aumenta en forma line-al 
(de 1 en 1, de N en N) se utiliza 
la sentencia for. En otro caso, cuan-do 
la condición es más compleja y el 
comportamiento de las variables que 
entran en juego en la condición es 
más complejo y menos lineal que un 
aumento de N en N, es necesaria 
una estructura while. 
Si necesitamos que el conjunto de 
sentencias que se van a repetir se eje-cute 
por lo menos una vez, debemos 
Comunicación con el robot 
evaluar la expresión luego de la eje-cución 
de las sentencias. 
Para ello tenemos la sentencia do, 
con la siguiente sintaxis: 
do 
sentencias 
loop until expresión 
En este caso, no sólo el momento de 
evaluación varía con respecto al while. 
También la lógica se invierte. Si al lle-gar 
a loop until la expresión es falsa, se 
vuelve a ejecutar el ciclo. De lo con-trario, 
se continúa con las sentencias 
posteriores a loop until. Tomemos el 
mismo ejemplo anterior y traduzcá-moslo 
a esta nueva estructura, como 
vemos a continuación: 
i=0 
do 
a[i]=255 
i=i+1 
loop until i>7 
✱ 
DAR VUELTAS POR LA ETERNIDAD 
Es fundamental analizar si las expresiones que escribimos para ser evaluadas en 
las estructuras de repetición tienen alguna o algunas variables que puedan modifi-car 
su contenido en algún momento de la ejecución del programa. Si la expresión 
puede tener el mismo resultado eternamente, tenemos algún error conceptual en 
ella o en el ciclo de repetición. También puede ocurrir que utilicemos métodos des-prolijos 
121 
como el break, pero no es recomendable.
❘❘❘ 
INTELIGENCIA ARTIFICIAL 
Si nos interesa conocer más sobre el 
tema, debemos saber que existen mi-les 
Como podemos ver, el conjunto de 
sentencias se ejecuta sí o sí una vez 
en este caso. Un uso muy habitual 
de esta sentencia es la espera de un 
estado de un sensor. 
Por ejemplo, si conectamos un sen-sor 
de tacto en el bit 3 del puerto B, 
podemos esperar que se active mien-tras 
mantenemos el estado del robot, 
de la siguiente manera: 
do 
loop until PORTB.3=1 
… 
El robot quedará con sus actuadores en 
el estado en el que se encontraba antes 
de llegar al loop, y cuando se produzca 
la activación del sensor, continuará con 
las sentencias que le siguen. 
Sentencias de salto de ejecución 
de programa 
Estas sentencias permiten redirigir 
el flujo de ejecución de un progra-ma. 
Ninguna de ellas es altamente 
aconsejable. Para ser rigurosos aun-que 
tengamos que trabajar un poco 
más, tendríamos que reemplazarlas 
por las sentencias ya vistas, dado que 
es difícil realizar el seguimiento pa-ra 
la depuración de estos programas. 
Un salto a otro lado en algún mo-mento 
marea a cualquiera. 
Como adelantamos, la sentencia 
break permite salir de cualquier es-tructura. 
Por ejemplo: 
while true 
if PORTA.1=1 then 
break 
end if 
… 
wend 
En este caso, el conjunto de senten-cias 
posterior al if se ejecutaría infi-nitamente. 
Pero, si en algún mo-mento 
el segundo bit del puerto A 
se enciende, el break obliga a la sali- 
5. HABLAR CON NUESTRO ROBOT 
122 
de libros de divulgación vinculados 
a la inteligencia artificial y que lo hacen 
desde diversos puntos de vista. 
Tal vez el más completo de ellos es La 
mente nueva del emperador, de Roger 
Penrose. En esta obra, su autor se ocu-pa 
de criticar la postura de la inteli-gencia 
artificial fuerte que plantea que 
nuestro cerebro es absolutamente imi-table 
por una combinación artificial de 
hardware y software. 
La belleza del libro está dada en que en 
sus páginas, el autor hace un recorrido 
por diferentes ciencias, como la física, 
la lógica, la matemática, la biología y 
otras, para presentar y sostener su 
postura.
da del ciclo y continúa con las sen-tencias 
posteriores al wend. 
Otra sentencia de salto es el goto, 
que nos permite saltar incondicio-nalmente 
a la etiqueta referida. Su 
sintaxis es la siguiente: 
goto nombre_etiqueta 
De esta manera, salta a la sentencia 
siguiente donde está ubicada la eti-queta. 
La sintaxis de la etiqueta es la 
que vemos a continuación, y cabe 
aclarar que debemos incluir los dos 
puntos en la sintaxis. 
nombre_etiqueta: 
Comunicación con el robot 
Otra sentencia de salto es exit, que 
nos permite salir de una función o 
de un procedimiento y volver al 
punto en el que se había invocado a 
la rutina. También contamos con 
gosub y continue, pero como enten-demos 
que violan demasiado el flu-jo 
del programa y porque son fácil-mente 
reemplazables por alguna de 
las opciones que ya presentamos, no 
vamos a ver detalles sobre ellas. Lo 
único que nos interesa resaltar en es-te 
punto, es que todas estas senten-cias 
de salto hacen más compleja la 
depuración y la lectura del código, 
por lo que aconsejamos evitarlas 
siempre que sea posible. 
123 
… RESUMEN 
En este capítulo hemos realizado un primer acercamiento a los diferentes len-guajes 
que podemos utilizar para la programación de los micros de Microchip. De 
todos ellos, nos hemos quedado con el que consideramos más sencillo, y que pro-bablemente 
resulte familiar a todos los que alguna vez programaron en algún 
lenguaje. MikroBasic, además de brindarnos un lenguaje Basic muy accesible, po-see 
una IDE muy completa y amable para este duro proceso de programación. He-mos 
presentado los elementos esenciales del lenguaje y nos hemos introducido 
en la estructura de los programas y sus sentencias. Los ejemplos que hemos 
mostrado son pequeños, dado que en el próximo capítulo, al conectar los moto-res, 
podremos comenzar a darle vida a nuestro robot.
✔ 
ACTIVIDADES 
TEST DE AUTOEVALUACIÓN 
1 ¿A qué llamamos lenguajes de bajo y al-to 
124 
nivel? ¿Qué ventajas y limitaciones 
presenta cada uno? 
2 ¿Qué características presenta el Pic- 
Basic Pro? 
3 ¿Cuál es la IDE de PicBasic Pro? ¿Qué 
características presenta? 
4 ¿Qué es el ICD? 
5 ¿Para qué es útil programar en CCS C? 
6 Recuerde tres razones por las cuales 
elegimos mikroBasic para programar 
nuestro robot. 
7 ¿Qué características presenta el edi-tor 
de mikroBasic? 
8 ¿Cómo es la organización de archivos 
de un proyecto en mikroBasic? 
9 ¿Qué son los tokens y los espacios en 
blanco? 
10 ¿Qué módulos encontramos en un pro-yecto 
mikroBasic? 
11Defina el alcance y la visibilidad de las 
variables. 
12 ¿Cuáles son los tipos de operadores que 
podemos encontrar en mikroBasic? 
13Compare las sentencias for, while y 
do. Para cada una de ellas, construya 
una estructura con el mismo compor-tamiento 
mediante la utilización de 
cada una de las otras dos. Por ejem-plo, 
construya una estructura for con 
while y otra con do.
Robótica 
Recorrer 
el mundo 
Capítulo 6 
Una de las características fundamentales 
de los robots autónomos móviles es la 
habilidad de transportarse por el 
ambiente en el que desempeñan sus 
tareas. La navegación de un robot 
de ruedas laterales no es sencilla si 
queremos optimizar el tiempo que nos 
lleva llegar hasta un punto determinado. 
Nuestro objetivo en este capítulo es 
aprender qué tipo de motores 
podemos utilizar en nuestro robot 
y cómo programarlos. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
El movimiento del robot 126 
Tipos de motores 126 
Motores de corriente continua 127 
Motores paso a paso 
(Motores PaP) 135 
Servos 140 
Resumen 145 
Actividades 146
EL MOVIMIENTO 
DEL ROBOT 
Nuestro robot crece. Después de va-rios 
intentos le hemos podido brin-dar 
una inteligencia precaria. Puede 
encender o apagar un led, lo que nos 
emociona cada vez que ocurre. Pero 
nada nos conforma. 
Queremos que empiece a andar, a 
hacer su propio camino. Y es por eso 
que analizamos con cuidado cuáles 
serán sus futuros pasos. Lógicamen-te, 
en los diferentes tipos de am-bientes 
donde puede moverse nues-tro 
robot necesita de diversos meca-nismos 
de locomoción. ¿Volará hacia 
otros planetas? ¿Se sumergirá en bus-ca 
de tesoros? ¿Reptará en pantanos 
movedizos? ¿O sólo se trasladará so-bre 
un piso pulido, sin rebordes ni 
pelos que traben sus motores? 
Como ya habrá tiempo de hazañas y 
proezas, por ahora nos basta con re-correr 
con dos ruedas sencillas una 
superficie que no presente proble-mas. 
Cuando veamos que ya domi-na 
el mundo de dos dimensiones del 
piso, estaremos en condiciones de 
proyectar otros horizontes. 
Tipos de motores 
Como hemos comentado en capítu-los 
anteriores, la arquitectura de 
nuestro robot con respecto a sus me-canismos 
de locomoción será extre-madamente 
sencilla. Usaremos rue-das 
laterales, que nos permiten tener 
control mediante un sistema de pro-gramación 
al alcance de todos, y que 
desde el punto de vista mecánico 
son fáciles de implementar. En el 
Capítulo 8, donde construiremos el 
cuerpo de nuestra criatura, analiza-remos 
todas las posibilidades de lo-comoción 
que tenemos con nuestro 
robot, pero por ahora pondremos 
nuestro esfuerzo en controlar los 
motores, que no es poco. 
Aunque ya hicimos una introducción 
muy breve de cada uno de los tipos de 
6. RECORRER EL MUNDO 
Figura 1. Determinación de los polos 
por el pasaje de corriente en la bobina. 
Figura 2. Si invertimos la polaridad 
de la bobina, cambiamos los polos 
del núcleo. 
126
motores clásicos que podremos utili-zar, 
▲ 
ahora presentaremos en forma 
profunda cada uno de ellos, y desa-rrollaremos 
la electrónica necesaria 
para conectarlos con nuestro contro-lador. 
Además, veremos un conjunto 
de ejemplos de programación para 
poder manejarlos en forma efectiva. 
Es posible que al principio resulte un 
poco complejo, pero creemos que los 
ejemplos aclararán el panorama. 
Motores de corriente continua 
Los motores de corriente continua 
(CC) son los actuadores que podre-mos 
conseguir con mayor facilidad, y 
que seguramente estarán presentes en 
muchos de nuestros robots. En gene-ral, 
están formados por dos imanes 
pegados a la carcasa del motor y un 
conjunto de bobinas de cobre en el 
eje del motor. El funcionamiento se 
basa en la atracción o la repulsión en-tre 
el campo magnético que se gene-ra 
en las bobinas por el paso de la elec-tricidad 
El movimiento del robot 
y los imanes que se encuen-tran 
alrededor de ellas. Veamos cómo 
se produce esta interacción. Cuando 
la corriente eléctrica pasa por la bobi-na, 
genera en el núcleo un campo 
magnético con una orientación de-terminada, 
es decir, un polo Norte y 
uno Sur (Figura 1). Si cambiamos la 
polaridad de la bobina, se invierte la 
dirección de los polos (Figura 2). Los 
dos imanes que se encuentran en la 
carcasa tienen polos distintos. 
Si aprovechamos el efecto magnético 
de que los polos iguales se rechazan 
y los opuestos se atraen, cambiamos 
la polaridad de la bobina, y genera-mos 
rechazo o atracción entre ellas y 
los imanes de la carcasa (Figura 3). De 
esta manera, y si consideramos que 
tenemos más de una bobina, genera-mos 
el movimiento del motor con su 
respectivo torque. Este último con-cepto 
se refiere a la potencia o la 
fuerza que tiene el giro del motor, y 
RECICLADO 
El reciclado es una tendencia que, además de proteger el medio ambiente, nos permi-te 
ahorrar dinero. Además de todas las recomendaciones que hacemos aquí para recu-perar 
partes de equipos o juguetes que ya no utilicemos, Internet es una fuente adicio-nal 
de ideas. Estos son algunos sitios interesantes donde se explica cómo reciclar com-ponentes 
de aparatos en desuso. Muchos de ellos serán útiles para nuestros robots: 
127 
•Reciclaje y proyectos electrónicos: http://heli.xbot.es/wp/. 
•Proyecto EconoBot (un robot de costo cero): http://mundobot.com/blog/. 
•Disquetera convertida en robot: www.sorgonet.com/trashing/madmaxfloppy/.
S S II II 
que depende de la cantidad de 
energía que pasa por las bobinas, la 
cantidad de vueltas del bobinado, el 
grosor del alambre, etcétera. 
Los motores de CC tienen dos pun-tos 
de conexión para la fuente de ali-mentación, 
y según cómo lo conec-temos, 
el motor girará en un sentido 
o en otro. El problema es que noso-tros 
queremos lograr esto en el mo-mento 
en que el robot está en fun-cionamiento. 
¡Sería desprolijo correr 
detrás del robot para invertir la di-rección 
de sus motores mediante 
algún dispositivo físico! Por lo tanto, 
necesitamos algún artilugio electró-nico 
que nos permita determinarlo al 
enviar una señal con nuestro micro. 
En este momento podríamos pensar 
en conectar directamente el motor al 
16F88. ¡Error! Los motores absorben 
demasiada corriente. Si los conecta-mos 
directamente al micro, se que-marán 
(que es algo que con seguridad 
no queremos hacer). Es por eso que 
entre el micro y los motores incorpo-ramos 
una etapa intermedia, conoci-da 
como etapa de potencia. Cuando 
utilizamos una fuente de alimenta- 
6. RECORRER EL MUNDO 
128 
Torque 
Figura 3. Efecto de giro del motor gracias a la atracción/el rechazo 
del núcleo de la bobina y los imanes de la carcasa. 
▲ 
PARA VER EL FUNCIONAMIENTO INTERNO DE UN MOTOR CC 
En la Web podemos encontrar varios sitios con información más detallada sobre el fun-cionamiento 
de los motores CC. Uno de los más completos es www.walter-fendt. 
de/ph11s/electricmotor_s.htm, donde vemos en una simulación en Java los pasos que 
realiza el motor en su giro. Allí podremos cambiar algunas variables que nos permi-tirán 
comprender en forma más precisa las características de estos motores.
ción simple, como es nuestro caso, se 
utiliza un puente H (H Bridge), cu-yo 
esquema electrónico básico es el 
que podemos ver en la Figura 4. 
Cuando C1 no tiene corriente (está 
en 0) y C2 sí la tiene (está en 1), el 
motor gira en el sentido de las agu-jas 
del reloj. En el caso contrario, el 
motor invierte el sentido de su giro. 
Cabe aclarar que el esquema es más 
complejo que el que vimos. Por 
ejemplo, necesitamos un mecanismo 
que impida que las dos señales se ac-tiven, 
porque estarían en riesgo los 
transistores y la fuente. Para estos y 
otros problemas, la solución más 
sencilla es utilizar un integrado que 
una todos estos componentes en un 
solo chip, y así se soluciona todo en 
El movimiento del robot 
129 
+ Vcc 
GND 
PNP 
C 1 C 2 
NPN 
PNP 
NPN 
Figura 4. Esquema básico de un puente H. 
❘❘❘ 
EL L293D Y EL L293B 
En general, cuando vamos a comprar el 
integrado L293D nos informan que tie-nen 
el L293B. ¿Qué diferencia existe 
entre ellos? ¿Es lo mismo llevar el que 
nos ofrecen? El L293D provee 600 mA 
por canal, mientras que el otro nos 
ofrece 1 A. Por otra parte, el D tiene los 
diodos de protección en forma interna, 
que en el caso del B, debemos agre-garlos 
nosotros para evitar que el inte-grado 
se queme ante cualquier even-tualidad 
que tenga el motor. 
Una combinación de ambos es el TI 
SN754410, que combina lo mejor de los 
dos. Este integrado es un reemplazo 
plug and play del L293D, así que pode-mos 
comprarlo sin problema.
un solo componente. El integrado 
propuesto para esta función es el 
L293D, que cuenta con cuatro dri-vers 
de potencia y diodos de protec-ción 
para los motores (Figura 5). De 
la misma manera, podríamos utilizar 
otros integrados como el UCN5804, 
el BA6286, el L293B, etcétera. 
Con el L293D podremos controlar 
cuatro motores con un solo sentido 
de giro, es decir, que gire o esté de-tenido, 
o dos motores con inversión 
de giro. Este último caso es el que 
más nos interesa a nosotros para 
construir un vehículo móvil. Si co-nectamos 
el motor en los pines 3 y 
6, según el estado de los pines 1, 2 
y 7, lograremos el sentido del giro 
del motor, su freno o un estado de 
punto muerto, como podemos ob-servar 
en la Tabla 1. 
En este punto, ya sabemos cómo 
controlar el sentido de los motores, 
y si están frenados o libres, pero to-davía 
no hemos resuelto el tema de 
la velocidad. Es importante recordar 
que estos motores tienen poca fuer-za 
y mucha velocidad, con lo cual es 
necesario agregarles un sistema de 
reducción para aumentar la fuerza y 
reducir la velocidad. Más adelante 
veremos una solución interna al mo-tor 
y, en el Capítulo 8, opciones para 
soluciones externas. De todas for- 
6. RECORRER EL MUNDO 
130 
Vc 
M 
l 2 
7 6 3 2 
16 
Vss 
Chip Inhibit 
4, 5, 12, 13 
8 
l 1 
1 
Figura 5. Diseño de conexiones para controlar un motor 
con inversión de giro mediante el uso del L293D.
mas, necesitamos un mecanismo 
electrónico de control para poder 
modificar la velocidad del motor. 
Uno de ellos es la modulación por 
ancho de pulso (Pulse With Modu-lation, 
PWM), que ya mencionamos 
para el control de los servos. 
También en los motores de CC uti-lizamos 
PWM, pero en un sentido 
distinto al que se usa con los servos. 
Dado que necesitamos generar los 
pulsos, es necesario entender cómo 
funciona esta modulación. En la Fi-gura 
6 podemos ver un ejemplo grá-fico 
de esto. En PWM, la frecuencia 
de los pulsos se mantiene constante. 
Lo que se modifica es el tiempo en 
el que la señal está alta dentro de 
esos pulsos. Cuanto más largo sea el 
tiempo en el que la señal esté alta, 
El movimiento del robot 
mayor será la velocidad del motor. 
Para dar un ejemplo más sencillo, 
imaginemos que tenemos el motor 
conectado a un interruptor que con-trolamos 
con la mano. Con una fre-cuencia 
de dos segundos, encende-mos 
(señal alta) y apagamos (señal 
baja) el motor dentro de ese tiempo. 
Por ejemplo, podríamos tenerlo un 
segundo prendido y un segundo 
apagado. O un segundo y medio 
prendido y medio segundo apagado. 
En el primer caso, se lograría mayor 
velocidad que en el segundo ejem-plo. 
La velocidad mayor se da cuan-do 
lo tenemos prendido práctica-mente 
los dos segundos completos. 
Con este control, la cantidad de co-rriente 
es constante, la tensión no 
varía y, por lo tanto, el torque es el 
131 
PIN 1 PIN 2 PIN 7 ESTADO DEL MOTOR 
H H L Gira como las agujas del reloj. 
H L H Gira en sentido contrario a las agujas del reloj. 
H Pin 2=Pin 7 Motor frenado. 
L X X Motor en punto muerto. 
Tabla 1. Cómo lograr cada estado del motor con los pines 
del L293D. H: high (alto); L: low (bajo). 
Velocidad 
Mínima 
Velocidad 
Máxima 
Figura 6. Ejemplo gráfico de la modulación por ancho de pulsos.
mismo. Como veremos más adelan-te, 
lograremos el control del motor 
con PWM mediante la programación 
de nuestro micro. Gracias al L293D, 
no necesitaremos más electrónica que 
la presente en nuestra controladora, 
dado que los diodos de protección 
del motor se encuentran incorpora-dos 
en el integrado. 
Otro mecanismo habitual para el 
control de la velocidad de los moto-res 
de CC es la modulación por fre-cuencia 
de pulsos (Pulse Frequency 
Modulation, PFM). En este caso, la 
proporción de la señal alta y baja 
dentro del pulso se mantiene cons-tante. 
Lo que cambia es la frecuen-cia 
de los pulsos. Cuanta más alta es 
la frecuencia, la potencia aumenta. 
No entraremos en detalle porque no 
será el mecanismo que utilizaremos 
en nuestro robot. 
Ejemplos de programación de un 
motor CC con nuestro controlador 
Como podemos observar en la cons-trucción 
del controlador, el motor 1 
está conectado a los pines 11 y 14 
del L293D (Output 3 y 4, respecti-vamente) 
y el motor 2 a los pines 3 
y 6 (Output 1 y 2). Para realizar 
nuestros ejemplos trabajaremos so-bre 
el motor 1, pero desde ya que lo 
que veamos sobre este motor es apli-cable 
al otro. El control de los pines 
11 y 14 está dado por los inputs 3 y 
4, ubicados en los pines 10 y 15 del 
L293D. Si seguimos las conexiones 
de nuestro controlador, podemos 
ver que estas dos entradas están con-troladas 
por RB1 y RB2 del 16F88 
(pines 7 y 8). De esta manera, po-demos 
reformular la tabla que vimos 
antes para mostrar cómo se com-portará 
el motor 1 según el estado 
de los pines 7 y 8 del 16F88. El re-sultado 
de esta reformulación lo po-demos 
ver en la Tabla 2. 
Sin embargo, como detalle adicio-nal, 
cabe aclarar que no podremos 
lograr este último estado en nuestro 
controlador porque el pin 9 del 
L293D está en alto constantemente 
y no está controlado por el 16F88. 
6. RECORRER EL MUNDO 
❘❘❘ 
Cuando construimos nuestros robots, 
aparecen problemas físicos que segura-mente 
132 
PROBLEMAS FÍSICOS 
hemos visto en nuestros estudios, 
pero que tal vez no vinculamos. Por 
ejemplo, uno de los problemas es el te-ma 
de la reducción. ¿Por qué si aumen-tamos 
la fuerza disminuye la velocidad? 
¿Cómo deben ser los engranajes para 
lograr esto? De la misma manera, otros 
conceptos tecnológicos fundamentales 
que surgen de nuestra obra serán las 
poleas, las cadenas de transmisión, las 
estructuras rígidas y flexibles, las palan-cas, 
etcétera. Tal vez no esté nada mal 
repasar estos conceptos para entender 
por qué funciona o no nuestro robot.
Ejemplos de código en mikroBasic 
Aunque los ejemplos más completos 
estarán incluidos en los capítulos 
donde haremos robots para cumplir 
misiones específicas, ya podemos 
comenzar a realizar algunos progra-mas 
para empezar a testear a nuestro 
robot. En el capítulo pasado en-cendíamos 
y apagábamos todo el 
PORTB para encender y apagar el led. 
A partir de ahora comenzaremos a 
ser más delicados, y sólo encendere-mos 
los bits que sean necesarios pa-ra 
cada caso. Por ejemplo, en el ca-so 
del programa que titila el led, só-lo 
deberíamos encender el Rb3, co-mo 
vemos a continuación: 
program TitilaLedPreciso 
main: 
TRISB = 0 
‘ Configura los pines de PORTB 
como salida 
while true 
PORTB.3 = 1 
‘ Enciende RB3 donde está 
conectado el led 
El movimiento del robot 
delay_ms(500) 
‘ Espera 500 milisegundos 
PORTB.3 = 0 
‘ Apaga RB3 
delay_ms(500) 
‘ Nuevamente espera 500 
milisegundos 
wend 
end. 
Con la misma lógica, podemos hacer 
que el motor 1 encienda un segundo en 
un sentido, otro segundo en el sentido 
contrario, y un segundo se encuentre 
detenido (¡No nos olvidemos de que 
debemos conectar el motor en 1!). 
program mueveMotorCC 
main: 
TRISB = 0 
‘ Configura los pines 
de PORTB como salida 
while true 
‘Configuramos el Pin 7 
y el 8 para girar en 
un sentido 
133 
L293D-PIN 9 L293D-PIN 10 L293D–PIN 15 ESTADO DEL MOTOR 
16F88-PIN 8 16F88-PIN 7 
H H L Gira como las agujas del reloj. 
H L H Gira en sentido contrario a las agujas del reloj. 
H Pines en mismo estado Motor frenado. 
L X X Motor en punto muerto. 
Tabla 2. Estados del motor de CC al utilizar la programación de nuestro 16F88.
6. RECORRER EL MUNDO 
PORTB.1 = 1 
‘ Enciende RB1 
(Pin 7 del 16F88) 
PORTB.2 = 0 
‘ Apaga RB2 (Pin 8 
del 16F88) 
delay_ms(1000) 
‘ Espera 1 segundo 
‘Configuramos 
el Pin 7 y el 8 
para girar en el 
otro sentido 
PORTB.2 = 1 
‘ Enciende RB2 
(Pin 8 del 16F88) 
PORTB.1 = 0 
‘ Apaga RB1 (Pin 7 
del 16F88) 
delay_ms(1000) 
‘ Espera 1 segundo 
‘Configuramos el Pin 
7 y el 8 para 
que el motor se 
detenga 
PORTB.1 = 0 
‘ Enciende RB1 
(Pin 7 del 16F88) 
134 
PORTB.2 = 0 
‘ Enciende RB2 
(Pin 8 del 16F88) 
delay_ms(1000) 
‘ Espera 1 segundo 
wend 
end. 
Motorreductores CC 
Como ya comentamos, los motores 
CC tienen mucha velocidad y poca 
fuerza, por lo que se hace necesario 
el uso de un sistema de reducción 
para poder equilibrar estas variables. 
Una de las soluciones es construir 
una caja reductora externa al motor. 
Sin embargo, en los últimos años 
han surgido motores de CC que ya 
proveen esta solución a nivel inter-no. 
A estos motores se los conoce co-mo 
motorreductores. Consisten en 
un micromotor de CC con una ca-ja 
reductora que usa el sistema de ti-po 
planetario en un compartimien-to 
sellado, lo que libera al sistema de 
la suciedad que podría afectar su 
funcionamiento (Figura 7). 
▲ 
DÓNDE CONSEGUIR MOTORREDUCTORES 
Los motorreductores son más difíciles de conseguir que los motores de CC con-vencionales. 
Sin embargo, una forma sencilla de hacerlo es convertir un servo co-mo 
veremos al final de este capítulo. Si queremos comprar directamente uno, aquí 
van algunas páginas web de proveedores: 
•Ignis (fabricante): www.ignis.com.ar. 
•Robodacta (proveedor de elementos de robótica): www.robodacta.com.
Como ejemplo de estos motorreduc-tores, 
podemos presentar el modelo 
MR-4 de Ignis, que tiene un torque 
de 0,12 a 2 Kgf*cm, según el mode-lo, 
con un consumo de 100 mA. Los 
modelos existentes son el 4-15, 4-50, 
4-100 y 4-200, donde el último nú-mero 
indica la cantidad de revolucio-nes 
El movimiento del robot 
por minuto (RPM: a mayor 
RPM, menor fuerza, como ya hemos 
visto). Funcionan desde los 6 hasta los 
12 V, pero toda la información de su 
hoja de datos está basada en una ali-mentación 
de 12 V (Figura 8). 
En algunos casos, es posible conse-guir 
un reductor para conectar en 
forma externa a un motor de CC, 
pero en términos de costos y de 
complejidad en la conexión de ma-teriales, 
no es aconsejable. 
Motores paso a paso 
(Motores PaP) 
Como hemos visto, el control de un 
motor CC es relativamente sencillo. 
Pero, si necesitáramos precisión en 
la cantidad de rotaciones del motor, 
sería casi imposible lograrlo con un 
135 
Figura 7. Vista interna de la caja de 
reducción de un motorreductor pendular. 
Figura 8. Un motorreductor con sinfín 
es lento pero tiene muchísima fuerza.
motor de ese tipo. Los motores de 
CC tardan un tiempo en lograr la 
velocidad buscada y cuando se los 
deja de alimentar, poseen inercia y 
tardan en detenerse. Por lo tanto, es 
una cuestión de suerte lograr un nú-mero 
preciso de vueltas. Si necesita-mos 
fracciones de vueltas, esto es 
aún más complejo. Si le agregamos 
un sistema de reducción al motor 
podremos disminuir el problema, 
pero no desaparece por completo 
por la cantidad de variables que en-tran 
en juego: fricción de los engra-najes 
del sistema de reducción, peso 
del rotor, fricción interna del motor, 
temperatura, etcétera. 
Para lograr esta precisión necesita-mos 
un motor PaP (Figura 9) o un 
servo. Los motores PaP tienen un 
mecanismo que les permite girar un 
ángulo determinado. Los más comu-nes 
están formados por un rotor (un 
imán permanente) y un conjunto de 
bobinados en el estator. No giran li-bremente 
por sí mismos, sino que 
avanzan al girar pequeños pasos por 
cada pulso que se aplica. El tamaño 
del paso, en grados, es lo que defi- 
6. RECORRER EL MUNDO 
136 
Figura 9. En esta imagen podemos ver ejemplos de motores paso a paso. 
❘❘❘ 
ELEMENTOS QUE SE OBTIENEN AL RECICLAR APARATOS 
Disqueteras de 3 1/2: motor paso a paso del cabezal, motor de cc del giro del disco 
y electrónica de control de los motores. 
Disquetera de 5 1/4: lo mismo que en la disquetera de 3 1/2. 
Reproductor de DVD: distintos drivers para motores, motor paso a paso del cabezal, 
motor de CC del giro del disco, motor CC de la carga del disco. 
Impresora: motor paso a paso de avance del papel, motor paso a paso del cabezal, 
drivers de los motores paso a paso.
nirá la precisión que tendremos en 
nuestro motor. Los pasos más comu-nes 
que podemos encontrar son: 
0,72°; 1,8°; 3,6°; 7,5°; 15° y 90°. En 
el primer caso, para dar un giro com-pleto 
necesitaremos 500 pasos. En 
cambio, en el último, con 4 pasos ha-bremos 
dado la vuelta entera. En ge-neral, 
en la carcasa del motor se in-dica 
la cantidad de grados por paso. 
Si esto no es así, aparecerá la canti-dad 
de pasos por revolución. Para 
calcular los grados por paso, dividi-mos 
360° por la cantidad de pasos. 
Dentro de los motores de imán per-manente, 
nos encontramos con dos 
tipos distintos, los unipolares y los 
bipolares, que exigen circuitos de 
control distintos (Figura 10). 
Los bipolares son más complejos de 
controlar que los unipolares, pero son 
más livianos y tienen mejor torque. El 
control ha dejado de ser un problema 
gracias a integrados como el L293D. 
Una vez que consigamos un motor de 
este tipo, debemos distinguir los ca-bles 
El movimiento del robot 
No. DE PASO 1A 1B 2A 2B 
1 +Vcc Gnd +Vcc Gnd 
2 +Vcc Gnd Gnd +Vcc 
3 Gnd +Vcc Gnd +Vcc 
4 Gnd +Vcc +Vcc Gnd 
Tabla 3. Secuencia de pasos para poder 
controlar un motor paso a paso bipolar. 
1a, 1b, 2a y 2b. Esto es sencillo 
con un tester, dado que podemos de-tectar 
continuidad entre los cables 
que pertenecen a la misma bobina. 
Para lograr el giro del motor bipolar, 
debemos invertir las polaridades de las 
bobinas 1 y 2 en una determinada se-cuencia 
para girar a favor de las agujas 
del reloj, y en la secuencia invertida 
para girar en sentido contrario. La se-cuencia 
es la que vemos en la Tabla 3. 
Para realizar este control usaremos el 
L293D. En este caso, podremos con-trolar 
sólo un motor paso a paso, da-do 
que tendremos que usar los cua-tro 
puentes H que ofrece el integra-do 
para lograr la secuencia. Debería-mos 
conectar cada uno de los 4 ca- 
137 
1a 
1b 
M 
2a 2b 
1a 
Com1 
M 
Com2 
1b 
2a 2b 
Motor-PaP Bipolar Motor-PaP Unipolar 
Figura 10. Esquemas de las bobinas de los motores bipolares y unipolares.
bles en los conectores del motor 1 y 
el motor 2 de nuestro controlador 
(Figura 11). Luego, si programamos 
las salidas del 16F88 que se corres-ponden 
con los inputs del L293D 
para seguir la secuencia anterior, lo-graremos 
el giro del motor. Cuanto 
más rápida suceda esa secuencia, más 
rápido será el movimiento del motor. 
Los motores unipolares cuentan con 
5 ó 6 cables, según cómo sea el cone-xionado 
interno. Si es de 6 cables, ten-dremos 
que detectar cuáles represen-tan 
a Com1 y Com2 (Figura 10). Al 
unir esos dos cables, tendremos la mis-ma 
configuración que en los motores 
de 5 cables (Figura 12). Para detectar las 
parejas 1A y 1B, y 2A y 2B, medimos 
la resistencia. Cuando encontremos la 
resistencia más alta, habremos deter-minado 
la pareja correspondiente. Los 
cables Com1 y Com2 contra esos ca-bles 
tienen una resistencia baja (y 
además, habitualmente, son los únicos 
dos que tienen el mismo color). Si la 
medición no marca nada, hemos co-nectado 
cables de bobinas distintas. 
Por lo tanto, ya tenemos definidas las 
parejas y el cable común. 
Ahora, para determinar cuál es cuál, 
alimentamos al motor por el quinto 
cable o por el cable común con la ten-sión 
correspondiente. Tomamos uno 
de los otros cuatro cables, le ponemos 
la etiqueta 1A y lo conectamos a ma-sa. 
Luego tomamos otro y también lo 
conectamos a masa. Si gira en senti-do 
de las agujas del reloj, lo nombra-mos 
1B, si gira al revés, 2B y si no gi-ra, 
2A. De esta manera, podemos eti-quetar 
todos los cables. 
Tenemos tres formas distintas de con-trolar 
los motores unipolares. En todas 
ellas, si invertimos la secuencia cam- 
6. RECORRER EL MUNDO 
Figura 11. Un ejemplo de motor 
bipolar, con 4 cables. 
138 
Figura 12. Ejemplo de motor 
unipolar con 5 cables, que tiene 
los dos rojos comunes.
biamos el sentido de giro. El control 
más habitual es encender de a dos las 
bobinas, de la siguiente manera: 
No. DE PASO 1A 1B 2A 2B 
1 H H L L 
2 L H H L 
3 L L H H 
4 H L L H 
Tabla 4. Secuencia de pasos 
para controlar un motor unipolar. 
Al encender las bobinas de a dos, el 
campo magnético es más fuerte, y el 
motor tiene mayor torque y más fuer-za 
al ser frenado. Otro control es en-cender 
❘❘❘ 
las bobinas de a 1: 
No. DE PASO 1A 1B 2A 2B 
1 H L L L 
2 L H L L 
3 L L H L 
4 L L L H 
Tabla 5. Otra secuencia para 
controlar un motor bipolar, más 
sencilla pero con menos torque. 
Es más sencillo que el esquema an-terior, 
pero el motor tiene menos 
torque. Si combinamos estos dos es-quemas 
El movimiento del robot 
podemos duplicar la canti-dad 
de pasos de este motor, como 
podemos ver a continuación: 
No. DE PASO 1A 1B 2A 2B 
1 H L L L 
2 H H L L 
3 L H L L 
4 L H H L 
5 L L H L 
6 L L H H 
7 L L L H 
8 H L L H 
Tabla 6. Combinación de los dos 
mecanismos anteriores que nos 
permiten mayor precisión en los giros. 
De esta forma, duplicamos la cantidad 
de pasos al girar el rotor en cada bobi-na 
y entre dos bobinas contiguas. A es-ta 
secuencia se la conoce como se-cuencia 
de medio paso. Hay que te-ner 
en cuenta que en los tres tipos de 
controles debemos ser cuidadosos con 
la velocidad en el cambio de los esta-dos, 
porque si es muy veloz podemos 
no alcanzar el tiempo necesario para 
que el rotor se acomode en la nueva po-sición. 
Si es así, obtendremos un mo-vimiento 
extraño, aleatorio del motor. 
DETECTAR EL TIPO DE MOTOR PASO A PASO A SIMPLE VISTA 
•Un motor PaP con 5 cables es casi seguro de 4 fases y unipolar. 
•Un motor PaP con 6 cables probablemente sea de 4 fases y unipolar, con 2 cables co-munes 
para la alimentación. Buscar si dos cables tienen el mismo color y unirlos. 
139 
•Un motor PaP con 4 cables con seguridad es bipolar.
● Terminal de control: es por donde 
ingresamos la señal que permite de-terminar 
el ángulo del motor. 
Los colores de estos cables varían 
según cada fabricante, pero en la Ta-bla 
7 presentamos un detalle con los 
colores utilizados por los principales 
fabricantes de servos. 
Habitualmente, la capacidad de gi-ro 
de un servo es de 180 grados, pe-ro 
más adelante veremos cómo eli-minar 
este límite. El circuito de con-trol 
posiciona al eje y compara la 
señal que recibe de un potencióme-tro 
interno con la señal de control 
externa. Cuando gira el eje, también 
gira el potenciómetro. Por último, el 
ángulo va a estar determinado por la 
duración de un pulso que se aplica 
6. RECORRER EL MUNDO 
Servos 
Un servo es un motor de CC pero 
con dos características fundamenta-les 
140 
que lo diferencian: una caja de 
reducción interna al motor que le 
brinda un gran torque y un sistema 
electrónico de control que le per-mite 
posicionar al motor en el án-gulo 
deseado. Se utilizan con mucha 
frecuencia en aparatos radiocontro-lados 
como aviones, barcos y autos 
a control remoto. También se usan 
mucho en robótica por su bajo peso 
y sus altas prestaciones (Figura 13). 
Los servos tienen 3 cables o terminales: 
● Terminal positivo: recibe la energía 
que alimenta al motor (usualmente, 
de 4 a 8 voltios). 
● Terminal negativo: dirigido a tierra. 
Figura 13. Servomotor Hitec, muy utilizado en robótica.
FABRICANTE TERMINAL POSITIVO TERMINAL NEGATIVO ENTRADA DE SEÑAL 
Futaba Rojo Negro Blanco 
Fleet Rojo Negro Blanco 
Hitec Rojo Negro Amarillo 
Airtronics Rojo Negro Naranja 
JR Rojo Marrón Naranja 
Kraft Rojo Negro Naranja 
Tabla 7. Los colores de los tres cables de los servos de las marcas más conocidas. 
al cable de control. Esta señal es una 
onda cuadrada de 1,5 ms que se re-pite 
a un ritmo de entre 10 a 22 ms, 
y con un valor de pico entre 3 y 5 V. 
La frecuencia puede variar entre 
marcas distintas, pero debe ser una 
señal estable para poder conseguir la 
rotación precisa. Aquí aplicaremos 
de nuevo lo aprendido en PWM. La 
posición del eje dependerá del ancho 
del pulso de la señal de control. Por 
ejemplo, cuando el pulso se mantie-ne 
El movimiento del robot 
en 1,5 ms, el eje se ubicará en el 
ángulo 0, y vamos hacia -90° cuan-do 
disminuimos el ancho del pulso 
y hacia 90 en el caso contrario. 
La descripción que hemos hecho se 
refiere a los servos analógicos (que son 
los más comunes). Los servos digita-les 
tienen, en su placa de control, un 
micro que analiza la señal, la procesa 
y controla el motor. Reaccionan mu-cho 
más rápido a los cambios y tienen 
141 
Figura 14. Un servo visto por dentro.
6. RECORRER EL MUNDO 
más fuerza. Como contrapartida, son 
más caros y el consumo de energía es 
mayor que en los analógicos. 
Modificación de los servos 
Como ya hemos comentado, los ser-vos 
tienen un radio de giro de apro-ximadamente 
180 grados. Su sistema 
de control nos permite definir su án-gulo 
de rotación en forma precisa y 
sencilla, pero muchas veces necesita-mos 
que el motor gire 360° en forma 
continua, como en el caso de las rue-das. 
Para ello vamos a tener que rea-lizar 
un conjunto de modificaciones 
en el servo. Estas modificaciones pue-den 
dañar el servo (de por sí lo dañan 
porque cambian su funcionalidad), 
por lo que sólo recomendamos reali-zarlas 
si no conseguimos motores de 
CC con caja reductora integrada, co-mo 
los que hemos presentado al co-mienzo 
de este capítulo. 
Una de las modificaciones posibles 
es eliminar el circuito de control y 
cortar los topes mecánicos. De esta 
forma, lo convertiremos en un mo-tor 
de CC con caja reductora. El ca-ble 
de control desaparece y sólo te-nemos 
dos cables donde se aplica co-rriente. 
A mayor corriente tendre-mos 
mayor velocidad y, si modifica-mos 
la polaridad, podemos cambiar 
el sentido del giro. A continuación 
veremos los pasos necesarios para re-alizar 
la modificación, pero cabe 
aclarar que las imágenes sólo son de 
referencia, ya que debemos buscar 
los pasos correspondientes para 
nuestro servo específico. 
■ Modificar un servo PASO A PASO 
Si el servo posee un engranaje externo en el eje, desatorníllelo con cuida-do, 
sin forzar el giro del eje más allá de su tope de rotación. 
142
El movimiento del robot 
Abra la tapa posterior del servo desenroscando los cuatro tornillos y 
desmóntelo en forma completa. 
Saque la tapa superior que encierra la caja reductora y preste mucha aten-ción 
a la disposición de los engranajes para volver a ubicarlos en su lugar. 
143
6. RECORRER EL MUNDO 
Corte o extraiga cuidadosamente el tope físico que tiene el engranaje de 
salida del servo. Lije con una lija fina para no dejar rebordes o muescas 
que provoquen fricciones hostiles al movimiento de la caja reductora. 
Elimine el circuito de control. La forma de hacer esto va a depender del 
modelo del servo en cuestión. En algunos casos, basta con desvincular 
uno de los engranajes del potenciómetro. En otros, habrá que encontrar 
el modo de comunicación de los engranajes con el sistema de control. 
Para ello, es conveniente buscar en Internet los pasos necesarios para 
modificar el servo específico que desee adaptar. 
 
144
Volvemos a repetir: sólo es necesario 
realizar esto si no conseguimos un 
motorreductor. De todas maneras, 
este procedimiento era más habitual 
cuando no se conseguían con facili-dad, 
pero hoy es mucho más sencillo 
comprar directamente uno de ellos 
que modificar un servo. 
El movimiento del robot 
MODIFICAR SERVOS 
A continuación presentamos las direc-ciones 
de algunos sitios donde se pro-porcionan 
los pasos para modificar di-versos 
•Futaba 3003: 
www.kronosrobotics.com/an116/ 
GAN116_3003.htm. 
•Hitec HS 300: 
www.kronosrobotics.com/an116/ 
GAN116_hs300.shtml. 
•Futaba S148: 
www.seattlerobotics.org/ 
encoder/200304/Futaba%20S148%20 
Servo%20mod%20for%20PWM.htm. 
•Sub micro CS21: 
www.dprg.org/projects/1998-04b/ 
index.html. 
145 
… RESUMEN 
▲ 
modelos de servos: 
Hemos llegado al hermoso momento en que nuestra criatura sale a recorrer el mun-do. 
Pero no todo es tan sencillo. En este capítulo hemos analizado los diferentes ti-pos 
de motores que pueden usarse con nuestra alimentación de corriente continua. 
Los motores de CC son sencillos de conseguir y fáciles de controlar, pero tienen po-co 
torque. Por lo tanto, debemos agregarles una caja de reducción para poder mo-ver 
las ruedas a una velocidad razonable y con la fuerza necesaria. Por suerte con-tamos 
con motorreductores, que ya nos ofrecen ese sistema en forma interna en la 
caja del motor, aunque con un costo mayor. También podemos utilizar motores pa-so 
a paso, que en general están presentes en disqueteras, impresoras, discos rígi-dos, 
etcétera. El control es un poco más complejo, pero nos brindan precisión en sus 
movimientos. Si queremos mayor precisión y no necesitamos giros completos, los 
servos son la tercera opción para los movimientos de nuestro robot.
✔ 
ACTIVIDADES 
TEST DE AUTOEVALUACIÓN 
1 ¿Qué es el torque? ¿Cómo se logra en 
146 
un motor de corriente continua? 
2 ¿Qué integrado utilizamos para controlar 
los motores de CC? ¿Por qué no los con-trolamos 
directamente desde el 16F88? 
3 ¿Qué es un puente H? 
4 ¿Qué es el PWM? 
5 ¿Cuáles son los cuatro estados del motor 
de CC? ¿Cómo lo logramos con el L293D? 
6 ¿Qué es un motorreductor? ¿Qué venta-jas 
y desventajas presenta con respec-to 
a un motor de CC convencional? 
7 ¿Cómo funciona un motor paso a paso? 
8 ¿Qué características tienen los motores 
PaP bipolares y unipolares? 
9 ¿Cómo se distingue el cableado de los 
motores PaP? 
10 ¿Qué componentes tiene un servo? 
11 ¿Cuál es el objetivo de modificar un ser-vo? 
¿Por qué no se recomienda hacerlo? 
EJERCICIOS 
1 Mediante la utilización de la modula-ción 
por pulsos, haga un programa 
que, según el valor de una variable, 
encienda con mayor o menor potencia 
el led de la controladora. 
2 Realice un programa para controlar los 
dos motores: los primeros 3 segundos 
ambos motores deben moverse en un 
sentido (lo consideramos avance), lue-go 
deben retroceder otros 3 segundos, 
posteriormente girar para un lado, de-jar 
un motor para adelante y otro para 
atrás, y por último invertir el sentido del 
giro. Estas últimas dos etapas, también 
de 3 segundos cada una. 
3 Mediante la utilización de la modula-ción 
por pulsos, haga un programa que, 
según el valor de una variable, modifi-que 
la velocidad del motor 1. 
4 Conecte un motor bipolar en los conec-tores 
de motor 1 y motor 2, y programe 
su funcionamiento con la técnica vista 
en la sección correspondiente.
Robótica 
Sensar el mundo 
Capítulo 7 
Cuando construimos robots autónomos, 
uno de los desafíos más importantes es 
la habilidad de adaptarse al mundo que 
los rodea. Si no incorporamos sentidos 
a nuestro dispositivo, sólo tendremos 
un juguete a control remoto, donde 
la inteligencia y la captación del ambiente 
están en nuestras manos. En este 
capítulo conoceremos los tipos 
de sensores que podemos encontrar y 
veremos la electrónica y la programación 
que usaremos en los próximos capítulos. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Adaptación al entorno 148 
Tipos de sensores 148 
Características esenciales 
de los sensores 149 
Sensores digitales 152 
Los sensores analógicos 158 
Tipos de sensores analógicos 162 
Resumen 165 
Actividades 166
ADAPTACIÓN 
AL ENTORNO 
Ya piensa, ya camina… La obra con-tinúa 
creciendo. Y sin embargo, cada 
vez que lo ponemos a nuestro lado pa-ra 
que nos acompañe, se lleva por de-lante 
una pared, se pierde por lugares 
insólitos o se cae por una escalera. Al-go 
nos falta, algún soplo de creación 
nos hemos olvidado de brindarle a 
nuestro robot. ¡Nos hemos olvidado 
de incorporarle sentidos! Sin ver, sin 
tocar y sin escuchar, es imposible que 
se separe de nuestra mano y de nues-tros 
ojos. Y es por eso que empezamos 
a pensar cuáles serían los sentidos 
esenciales que podemos brindarle. ¿Le 
agregamos la vista? Es un desafío 
complejo, demasiada información 
para su pequeña inteligencia. ¿El tac-to 
será suficiente? Tendrá una vida 
dura, golpeándose contra todo para 
poder captar el mundo que lo rodea. 
¿El olfato será de utilidad? Muchas 
dudas nos preocupan, pero nos lanza-mos 
decididos a buscar qué es lo que 
nos puede ayudar. Y encontramos que 
en el mundo de la electrónica, los sen-tidos 
se multiplican infinitamente. 
Tipos de sensores 
Los sensores tienen como objetivo 
captar alguna señal brindada por el 
ambiente que rodea al robot, y 
transformar esa señal en un impul-so 
eléctrico que reciba nuestro con-trolador. 
Luego, desde el programa 
que usemos para darle comporta-miento, 
interpretaremos este impul-so 
para actuar en consecuencia. 
Cuando hablamos de señales del 
ambiente, nos referimos a la infor-mación 
habitual que, como huma-nos, 
podemos captar: imágenes vi-suales, 
olores, información táctil, so- 
7. SENSAR EL MUNDO 
148 
Figura 1. Kephera es un robot con ocho sensores 
infrarrojos y una cámara de visión lineal.
nidos y sabores. Pero esto no termi-na 
aquí: podemos utilizar otros me-canismos 
que superen al sistema 
sensorial humano. Contamos con 
sensores ultrasónicos para medir dis-tancias, 
sensores de metales, detec-tores 
de diversos gases, etcétera. 
La oferta es muy grande, y cada ti-po 
de sensor nos obliga a incorporar 
algo de electrónica y de programa-ción 
en nuestro robot. En este capí-tulo 
veremos los tipos de sensores 
que podemos encontrar habitual-mente 
en el mercado, sus caracterís-ticas 
y cómo podríamos incorporar-los 
a nuestro robot. Luego nos de-tendremos 
en los sensores que va-mos 
a utilizar para los desafíos que 
hemos planteado en este libro. 
Características esenciales 
de los sensores 
Los sensores determinan en forma 
precisa el comportamiento de nuestro 
robot. Es por eso que cuando elegi-mos 
el tipo de sensor que incorpora-mos, 
debemos analizar un conjunto 
de características que nos permitirán 
definir si es o no el que necesitamos 
para nuestra tarea. Éstas son: 
● Fiabilidad: esta característica está 
muy vinculada al ambiente en el 
que se mueve nuestro robot. Por 
ejemplo, si utilizamos un sensor de 
luz o brillo en un lugar con luz es-table, 
Adaptación al entorno 
NARICES ELECTRÓNICAS 
podremos utilizar sensores 
de menor calidad porque sabemos 
que los resultados, luego de cali-brar 
el sensor, se mantendrán pa-rejos 
y podremos confiar en ellos. 
En cambio, en los ambientes don-de 
las condiciones se modifican en 
forma constante, los sensores que 
utilicemos deben poseer mecanis-mos 
electrónicos de balanceo que 
permitan superar estas dificulta-des. 
Si los valores devueltos por el 
sensor no son fiables, necesitare-mos 
compensar este problema con 
programación, para lo que utiliza-mos 
varias muestras y distintos 
métodos estadísticos que ajusten al 
mínimo el margen de error. Cabe 
aclarar que esto se paga con mayor 
tiempo de procesamiento. 
● Rango de valores: el rango de va-lores 
es el valor mínimo y máximo 
que puede devolver el sensor. 
149 
❘❘❘ 
De todos los sentidos, es probable que el 
olfato y el gusto sean los más complica-dos 
de emular. Sin embargo, existen las 
narices electrónicas. Esos instrumentos 
permiten realizar análisis de una mezcla 
de gases, vapores y olores en tiempo re-al. 
Sirven para el control de la calidad 
alimenticia, el diagnóstico médico, la de-tección 
de escape de gases, procesos in-dustriales, 
usos militares, etcétera.
● Precisión: aun si se tiene el mis-mo 
rango de valores, los sensores 
pueden devolver más o menos es-tados 
intermedios dentro de ese 
rango. Llamamos precisión a la 
cantidad de valores distintos que 
nos puede devolver el sensor en su 
rango de valores. Por ejemplo, no 
es lo mismo un sensor de brillo 
con un rango de 0 a 100 con una 
precisión de 1, que uno con una 
precisión de 0.1. En el segundo ca-so, 
podremos detectar variaciones 
mínimas que en el primero se le-erían 
como valores idénticos. 
● Velocidad de muestreo: es la fre-cuencia 
con la que el sensor refres-ca 
su lectura del ambiente. A ma-yor 
velocidad, mejor adaptación a 
los cambios del mundo en el que se 
mueve nuestro robot. Pero por otro 
lado, nos exige mayor procesa-miento 
de los valores de entrada. 
De todas formas, si el sensor tiene 
una alta velocidad y no nos da 
tiempo para procesar los datos, po-demos 
desechar valores de lectura y 
lograr la velocidad de muestreo que 
necesitemos. En el caso contrario, 
no podemos solucionar el proble-ma. 
Es decir, nos conviene un sen-sor 
con la mayor velocidad de 
muestreo posible, que luego regula-remos 
al tomar todos los valores o 
sólo un conjunto de ellos. 
● Costo: aunque en nuestros prime-ros 
proyectos tal vez no parezca un 
elemento fundamental de análisis, 
cuando desarrollemos robots más 
complejos nos encontraremos con 
limitaciones de este tipo. Y lamen-tablemente, 
veremos que hay una 
relación lineal entre el costo y las 
demás características: los sensores 
más caros son mejores. 
● Sencillez de uso: en estos prime-ros 
pasos, es fundamental que tan-to 
la interfaz electrónica que debe-mos 
desarrollar entre el sensor y el 
micro, como su programación pa-ra 
la interpretación de los datos, 
sea lo más sencilla posible. 
7. SENSAR EL MUNDO 
Figura 2. Sick es un escáner láser muy 
usado en robótica que permite medir 
distancias con precisión milimétrica y 
realizar mapeos de objetos próximos. 
150
● Tamaño y forma: en el momento 
en el que queramos insertar el sen-sor 
en nuestro robot, con seguri-dad 
querremos realizarle la menor 
cantidad de modificaciones posi-bles 
a la arquitectura que ya tene-mos 
definida. Por otra parte, es ne-cesario 
que el sensor esté a la dis-tancia 
precisa para poder captar lo 
sensado. Por ejemplo, el sensor que 
utilizaremos para el seguimiento 
de línea es sencillo, pero con un al-cance 
muy bajo. Por lo tanto, será 
necesario ubicarlo lo más cerca po-sible 
de la línea debajo del robot. 
Otro ejemplo son los sensores de 
tacto: es habitual tener que ampli-ficar 
la mecánica del sensor para 
detectar con mayor facilidad los 
objetos. Para ello es fundamental 
elegir el tamaño y la forma que se 
Adaptación al entorno 
adapten a nuestras necesidades en 
el conjunto de sensores que cum-plen 
la misma función. 
● Calibración: en este caso, tam-bién 
tenemos el problema de que 
cuanto más sencillo sea el sensor, 
más trabajo de calibración tendre-mos 
que hacer con el software. En 
general, la calibración no está 
brindada directamente por el sen-sor, 
sino que es en la electrónica de 
la conexión donde podemos agre-gar 
elementos que nos permitan 
modificar, con una simple vuelta 
de potenciómetro, las señales de 
entrada o la sensibilidad de lectu-ra. 
Aunque le agreguemos más tra-bajo 
al diseño inicial del robot, 
luego agradeceremos que con un 
destornillador podamos readaptar 
al robot a diversos ambientes. 
151 
Figura 3. Lego provee diferentes sensores, 
como los de tacto, luz y sonido, entre otros.
Si tenemos en mente estos principios, 
podremos salir en la búsqueda del 
sensor que solucione nuestros pro-blemas. 
Vamos a dividir nuestro de-sarrollo 
en dos grandes grupos de 
sensores: los digitales y los analógi-cos. 
También podemos clasificarlos 
como internos y externos, activos y 
pasivos, etcétera, pero hemos elegido 
la primera taxonomía porque nos de-termina 
diferencias sustanciales en la 
electrónica y la programación. 
Sensores digitales 
Los sensores digitales son aquellos 
que, como salida de su sensado del 
mundo, nos devuelven hacia el con-trolador 
un valor discreto (Figura 4). 
El modelo más sencillo de este tipo 
de sensores es aquel que directamen-te 
nos devuelve un uno o un cero. En 
todos los casos, necesitamos de algu-na 
interfaz electrónica entre el sensor 
y el micro. A veces, esta electrónica 
puede ser una simple resistencia y en 
otros casos puede ser un desarrollo 
mucho más complejo, dependiendo 
del tipo de sensor. 
Hay una gran variedad de sensores 
digitales en el mercado, e incluso po-demos 
convertir sensores analógicos 
en digitales, como por ejemplo con 
el uso del integrado 74HC14. Mu-chos 
se conectan de forma similar, 
con la utilización de una resistencia 
de pull-up conectada a Vcc para 
mantener la señal en nivel alto, o a 
GND para mantenerla en nivel ba-jo. 
Cuando el sensor se activa, la 
señal pasa al nivel contrario. 
Uno de los sensores digitales más pri-mitivos 
es el interruptor o switch, que 
7. SENSAR EL MUNDO 
152 
14.0 
12.0 
10.0 
8.0 
6.0 
4.0 
2.0 
0.0 
Señal discreta 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
Figura 4. Ejemplo gráfico de los valores que entrega un sensor digital.
nos permite representar el sentido del 
tacto. Este sentido parece ser uno de 
los más simples de implementar, pero 
en realidad para reproducirlo en toda 
su expresión deberíamos sensar tem-peratura, 
contacto y fuerza (por ejem-plo, 
no es sencillo reproducir la pre-sión 
ejercida por nuestra mano cuan-do 
tomamos un objeto frágil, que se 
puede deformar por un excesivo nivel 
de fuerza). Por ahora nos ocuparemos 
del sensado de contacto, con la idea 
Adaptación al entorno 
de detectar colisiones contra objetos 
para permitir el cambio de sentido de 
nuestro robot. Estos sensores se co-nocen 
en el mundo de la robótica co-mo 
bumpers. En nuestro controlador 
ya tenemos el conexionado y la 
electrónica necesarios para conectar 
dos de estos sensores (Figura 5). 
Estos sensores son dos interruptores 
sencillos (abierto/cerrado) que se co-nectan 
a +5 V con una resistencia 
(Pull-Up) o a GND (Pull-Down). La 
153 
+ 5 
R 3 
1 K R 4 
1 K 
Sensores 
Sensor 1 
Sensor 2 
1 
2 
3 
Figura 5. Conexión de los dos interruptores en nuestro controlador. 
❘❘❘ 
SENSORES DE ESTACIONAMIENTO 
Muchos de los sensores que se utilizan para robots, luego desembarcan en la vida 
cotidiana. Un ejemplo de esto son los sensores de estacionamiento. Por poco dine-ro 
podemos agregarle a nuestro vehículo un sensor de este tipo que nos indica, con 
un display o con sonidos, la proximidad de los objetos en la parte trasera de nues-tro 
auto. Sólo se activan con la marcha atrás, y nos dan información de distancia 
mediante luces, textos o cantidad de bips.
diferencia se producirá si queremos de-tectar 
un 0 lógico (entre 0 V y +1,5 V 
aproximadamente) cuando se produz-ca 
un cambio en el estado del switch o 
si, por el contrario, queremos detectar 
un 1 lógico (de +2 V a +5 V). 
Otra variante es usar contactos nor-malmente 
cerrados o normalmente 
abiertos, que se comportarán como 
una compuerta NOT o directa, si 
consideramos el valor TRUE como 1 
lógico, que representa +5 V en el pin 
del microcontrolador, producto de la 
acción Chocar y el 0 como FALSE en 
el caso contrario. Como podemos 
observar en el controlador, nuestra 
entrada está asociada en forma di-recta 
a RA3 en el caso del sensor 1, 
y a RA4 en el caso del sensor 2. Po-demos 
agregarle un condensador de 
bajo valor (0.1uF a 1uF) en paralelo 
con los contactos del interruptor pa-ra 
reducir los efectos de rebote. 
Con respecto a los interruptores que 
podemos utilizar, la variedad es muy 
grande. Uno de los más usados en 
robótica es el microswitch. Este sen-sor 
cuenta con 3 conectores: C (Co-mmon, 
común), NC (Normal Closed, 
normalmente cerrado) y NO (Normal 
Opened, normalmente abierto). 
Cuando el sensor está en reposo, está 
cerrado el circuito de C a NC. 
Al presionar la extensión metálica que 
sirve de amplificador mecánico de la 
señal, cerramos el circuito entre C y 
NO. Esta extensión metálica puede te-ner 
una palanca suficientemente gran-de 
(Figura 6) como para poder usarlo de 
sensor de tacto sin modificaciones ex-tras. 
También puede contar con un pe-queño 
rodillo en la punta que nos per-mita 
realizar tacto sobre las superficies 
sin provocar rozamiento entre el sen-sor 
y lo sensado (Figura 7). 
Otro sensor que podemos utilizar en 
forma digital es el infrarrojo (Figura 8). 
7. SENSAR EL MUNDO 
Figura 6. Un modelo de 
microswitch con palanca grande. 
Figura 7. Otro modelo con rueda 
en el extremo de la palanca. 
154
Esencialmente, consiste en un emisor 
de señal infrarroja (un led) y un foto-transistor. 
Si ambos apuntan hacia el 
mismo lado, tenemos un sensor re-flectivo, 
dado que el fototransistor será 
estimulado cuando la luz del led se re-fleje 
sobre una superficie. Esto es útil 
para detectar colores muy distintos 
(por ejemplo, una línea negra sobre un 
papel blanco) o sensar si el robot está 
por caer al vacío (el sensor detecta la re-flectancia 
de la mesa, pero al acercarse 
a un borde deja de recibir la señal). 
Uno de los problemas que podemos 
encontrar es que el fototransistor pue-de 
estar estimulado por las luces del 
ambiente. Para evitarlo, debemos en-capsularlo 
de manera tal que sólo el re-flejo 
de su led lo estimule. El más co-nocido 
y económico de todos es el 
CNY70, que también podemos utilizar 
como sensor analógico, dado que de-vuelve 
un valor entre 0 V (reflejo abso-luto) 
hasta 3.3 V (absorción absoluta). 
Lo analizaremos más adelante cuando 
veamos los sensores analógicos. 
Adaptación al entorno 
Otra forma de utilizar el sensor infra-rrojo 
es enfrentar el led con el foto-transistor. 
Por lo tanto, lo que pode-mos 
detectar allí es el corte de visión 
entre ambos. A este tipo de arquitec-tura 
se la conoce como sensor de ra-nura. 
Podemos utilizarlo simplemente 
para la detección de objetos (como se 
usa en ciertos estacionamientos para 
avisar la salida de un auto) o para con-tar 
los pasos de una rueda asociada al 
eje de un motor y, de esta manera, ar-mar 
un sensor de rotación. Depen-diendo 
de cómo está acanalada la rue- 
155 
Figura 8. Sensor infrarrojo 
de tamaño reducido. 
❘❘❘ 
RECICLAR SENSORES PARA NUESTRO ROBOT 
En el capítulo anterior ya vimos cómo podíamos reciclar los motores de nuestros an-tiguos 
dispositivos. Ahora veamos qué ocurre con los sensores: 
Disquetera 5 1/4: detector infrarrojo de ranura para detectar pista cero, fototransisto-res, 
led emisor de infrarrojo, detectores de efecto hall. 
Disquetera 3 1/2: detector infrarrojo de ranura muy pequeño, microswitches. 
Video VHS: led emisor de infrarrojo, receptores de infrarrojo, receptor del IR del con-trol 
remoto, microswitches, infrarrojos de ranura, sensores de efecto hall.
da y de la cantidad de sensores que po-damos 
utilizar, la detección que pode-mos 
hacer puede ir desde contar la can-tidad 
de pasos que se han dado, hasta 
la codificación de la posición absoluta. 
Si queremos conectar un infrarrojo 
a nuestro controlador para detectar 
una línea negra en el piso o un ob-jeto 
muy cercano a nuestro robot, 
podemos utilizar la electrónica que 
vemos en la Figura 10. Es posible ver 
que por un lado tenemos conectado 
el led infrarrojo a RA1, al que lo de-clararemos 
de salida para poder en-cender 
o apagar el led según nues-tras 
necesidades. Si queremos que el 
led esté encendido todo el tiempo, 
directamente podemos conectarlo a 
5 V. El fototransistor está en RA2, 
para lo cual deberemos declararlo de 
entrada. Queda claro que, en estos 
transistores, la base no está conecta-da, 
sino que es el mismo sensor el 
que activa la señal ante la luz. 
Otro sensor digital interesante es el 
sensor de efecto hall. Este efecto con-siste 
en la aparición de un campo eléc-trico 
en un conductor ante la presen-cia 
de un campo magnético. El inte-grado 
Figura 9. Rueda de posicionamiento 
absoluto con sensores infrarrojos. 
Con siete sensores podemos determinar 
128 posiciones distintas de la rueda. 
En ese caso, tenemos una precisión 
de algo menos de 3 grados. 
❘❘❘ 
Es posible armar sensores digitales caseros con sólo diseñar un dispositivo que cie-rre 
UGN3503 puede detectar 
cambios magnéticos con precisión. 
Tiene 3 conexiones: alimentación, 
7. SENSAR EL MUNDO 
156 
SENSORES DIGITALES CASEROS 
o abra el circuito según la detección que se quiera hacer. Por ejemplo, para de-tectar 
unos discos de metal que se encontraban pegados al piso, cuyo borde era con-ductor, 
realizamos un sensor muy sencillo con escobillas de autitos de carrera. Só-lo 
pusimos bajo una madera 14 pedazos de escobilla en forma paralela con una dis-tancia 
menor al diámetro de los discos. Conectamos los pedazos impares entre sí y 
éstos a la entrada del sensor, y los pares los conectamos a masa. Cuando un disco 
tocaba dos de las escobillas, cerraba el circuito y lo detectaba. ¡Gracias a este sen-sor 
ganamos un campeonato de robótica latinoamericano!
tierra y salida. Si no hay campo 
magnético, la tensión en la salida es 
de la mitad de la entrada. Si se acerca 
el polo sur de un elemento magneti-zado, 
aumenta el voltaje. Y si se acer-ca 
el norte disminuye. Si queremos 
utilizarlo de esta manera, deberemos 
prestar atención cuando veamos có-mo 
usar sensores analógicos. Pero si 
sólo queremos detectar la presencia o 
no de un elemento magnético, nos al-canza 
con un procesamiento digital. 
Programación de los switches 
de nuestro controlador 
A continuación presentamos un pro-grama 
muy sencillo que nos permite 
encender el led cuando detecta la ac-tivación 
Adaptación al entorno 
del sensor de tacto 1 que te-nemos 
en nuestro controlador. 
program Sensorescapitulo7 
main: 
TRISA = 255 
‘ Configura los pines 
de PORTA como entrada 
TRISB = 0 
‘ Configura los pines 
de PORTB como salida 
while true 
if PORTA.3=1 then 
‘ Verifica el estado del 
pin donde está conectado 
157 
Vss 
Infrarrojo 
LED2 
Photo 
PNP 
RA0 
RA1 
RA2 
RA3 
RA4/TOCKL 
17 
18 
1 
2 
5 3 
1 
2 
+5 
R2 
R3 
R1 
Figura 10. Circuito básico de conexión del infrarrojo a nuestro controlador.
el sensor 1 
PORTB.3=1 
‘ si está encendido 
(el sensor activado) 
enciende el led 
else 
PORTB.3=0 
‘ si no, lo apaga 
end if 
wend 
end. 
Los sensores analógicos 
A medida que nuestro robot evolucio-na, 
nos encontramos con la necesidad 
de captar el ambiente con mayor pre-cisión. 
Ya no nos alcanza con uno o 
más sensores digitales. Queremos re-cibir 
un valor dentro de un rango. A 
los sensores que nos permiten este ni-vel 
de precisión se los conoce como 
analógicos (Figura 11). Por ejemplo, 
una fotorresistencia nos puede entre-gar 
un valor entre 0 y 5 V. 
Ahora, el problema que tenemos es 
que, a pesar de todo lo bueno que 
pueda ser nuestro micro, siempre 
trabaja en forma digital. Por lo tan-to, 
necesitamos convertir esta señal 
analógica en un valor digital. Para 
ello existen los conversores analógi-cos/ 
digitales (A/D). Estos dispositi-vos, 
a partir del valor de entrada, nos 
devuelven un número de 8, 10 ó más 
bits. Veamos una tabla de un su-puesto 
conversor A/D que provee 
una salida de 4 bits. Esto significa 
que tenemos 16 estados distintos po-sibles 
de salida. Si la entrada es un 
valor entre 0 V y 5 V, el esquema 
podría ser el que vemos en la Tabla 1. 
7. SENSAR EL MUNDO 
158 
5.0 
4.0 
3.0 
2.0 
1.0 
0.0 
Señal analógica 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
Figura 11. Gráfico ejemplo de los valores que entrega un sensor analógico.
VOLTAJE ENTRADA SALIDA 
Adaptación al entorno 
MIN MAX BINARIA DECIMAL 
0 0,3125 0000 0 
0,3125 0,625 0001 1 
0,625 0,9375 0010 2 
0,9375 1,25 0011 3 
1,25 1,5625 0100 4 
1,5625 1,875 0101 5 
1,875 2,1875 0110 6 
2,1875 2,5 0111 7 
2,5 2,8125 1000 8 
2,8125 3,125 1001 9 
3,125 3,4375 1010 10 
3,4375 3,75 1011 11 
3,75 4,0625 1100 12 
4,0625 4,375 1101 13 
4,375 4,6875 1110 14 
4,6875 5 1111 15 
Existe una inmensa variedad de con-versores 
A/D. Habitualmente, se 
usan de 8 bits con los micros, como 
por ejemplo el ADC0804 (Figura 12). 
Este conversor acepta una entrada de 
0 V a 5 V. 
En su pin 20 alimentamos con 5 V, 
en el 9 con 2.5 V (la mitad exacta de 
lo que se quiere medir) y en el pin 7 
con 0 V. En los pines 8 y 10 se co-necta 
a tierra. 
En el pin 6 tenemos la entrada analó-gica 
y en los pines 11 a 18 tenemos 
los 8 bits de la salida digital, que en 
nuestro caso deberíamos conectar, 
por ejemplo, con RB0 a RB7 (¡nos 
159 
Tabla 1. Relación de valores en la conversión de una señal 
analógica entre 0 V y 5 V a una señal digital de 4 bits. 
▲ 
HOJAS DE DATOS 
Si buscamos información sobre algún integrado, seguramente llegaremos a su res-pectivo 
datasheet (hoja de datos). Cada fabricante tiene la hoja de datos de sus propios 
integrados, pero tenemos sitios que juntan y clasifican las hojas más comunes: 
•Universidad Nacional del Sur: www.ceia.uns.edu.ar/integrados/index.asp. 
•Catálogo completo de hojas de datos: www.datasheetcatalog.net/es/.
20 
19 
consume un montón de entradas un 
único sensor!). Para que inicie la 
conversión, debemos enviar al pin 3 
primero un 1 y luego un 0, y al pin 
2, al mismo tiempo, lo contrario. 
Allí toma la entrada analógica y rea-liza 
la salida digital hasta que se vuel-van 
a producir las activaciones de los 
pines 2 y 3 ya mencionadas. Como 
vemos, tener un conversor A/D nos 
agrega algunas cuestiones electróni-cas 
y nos consume una cantidad im-portante 
de entradas digitales. Pero 
la electrónica avanza, y es aquí don-de 
podemos encontrar la mayor di-ferencia 
(para este libro) entre el 
16F84 y el 16F88. Este último mi-cro 
de Microchip, ¡tiene un conver-sor 
A/D incorporado! 
En el 16F88 tenemos siete entradas 
analógicas (siete canales), asociadas 
las cinco primeras a RA0 a RA4 y las 
últimas dos a RB6 y RB7, respecti-vamente. 
Cada una de ellas nos pro-porciona 
un resultado digital de 10 
bits, es decir, un valor entre 0 y 
1023. Las referencias positivas y ne-gativas 
(Vref+ y Vref-) son seleccio-nables 
mediante RA2 y RA3. 
Los registros de control son: 
● ADRESH y ADRESL: parte alta y ba-ja 
del resultado, que en nuestro ca-so, 
con mikroBasic, podremos ob-tener 
de manera directa con la lla-mada 
a la función ADC_read. 
7. SENSAR EL MUNDO 
160 
CS 
ADC0804 
RD1 
WR 
CLK IN 
INTR 
Vin+ 
Vin- 
A GN D 
Vcc 
CLK R 
D0 
D1 
D2 
D3 
D4 
Vref/2 
D GN D 
D5 
D6 
D7 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
18 
17 
16 
15 
14 
13 
12 
11 
Figura 12. Esquema del conversor 
A/D ADC0804. 
❘❘❘ 
CONVERSIÓN ANALÓGICO-DIGITAL 
Aunque parezca un tema novedoso y desconocido, vivimos rodeados de conversio-nes 
de este tipo. Por ejemplo, la música en CD es una conversión a lo digital de las 
señales sonoras, que son analógicas. Cuando grabamos con un micrófono en la 
computadora, cuando escaneamos una imagen, cuando sacamos una foto digital, 
convertimos el mundo analógico real en un formato digital. En todos los casos, ne-cesitamos 
pasar del infinito continuo al finito discreto.
● ADCON0 y ADCON1: registros de con-trol 
que describiremos más adelante. 
● ANSEL: registro de selección de en-tradas 
analógicas. También resuel-to 
por mikroBasic. 
Los pasos de operación del ADC son 
complicados. Por suerte, como ya 
comentamos, mikroBasic nos pro-porcionar 
una solución. Para operar 
el ADC desde mikroBasic, en pri-mer 
lugar debemos inicializar el re-gistro 
de control ADCON1. En este ca-so, 
debemos poner un valor que de-termine 
los cuatro bits más signifi-cativos 
(del 4 al 7). Los bits 4 y 5 de-terminan 
los valores de referencia 
según la siguiente tabla: 
VALOR VREF+ VREF- 
00 AVdd AVss 
01 AVdd Vref- (RA3) 
10 Vref+ (RA2) Avss 
11 Vref+ (RA2) Vref- (RA3) 
Tabla 2. Valores a ser seteados 
en ADCON1 para definir los valores 
de referencia Vref+ y Vref- en 
la conversión A/D. 
En el caso de usar RA2 y RA3, de-ben 
ser configurados como entradas 
analógicas. El bit 6 determina si la 
fuente del reloj de la A/D se divide 
por 2 cuando se usa el reloj del sis-tema 
(habitualmente lo ponemos en 
0). El bit 7 determina cuáles son los 
bits que quedarán en 0 en el valor 
Adaptación al entorno 
SENSORES ULTRASÓNICOS 
word que devuelve la lectura digital. 
Como sabemos que son 10 bits que 
quedarán en ADRESH y ADRESL, en-tonces, 
si ponemos este bit en 1, los 
6 bits que quedan en 0 son los más 
importantes, es decir, los 6 más sig-nificativos 
de ADRESH. En el caso 
contrario, serán los 6 menos signifi-cativos 
de ADRESL. 
Como paso siguiente, debemos in-dicar 
los pines que serán de entrada 
en A con TRISA o en B con TRISB. 
Para finalizar, leemos el valor del ca-nal 
donde tengamos la entrada con 
la función Adc_Read(nro de canal), 
que devuelve un valor de tipo word. 
Cabe mencionar que en el llamado 
a esta función se realizan muchos 
pasos más que, por suerte, no nos 
161 
❘❘❘ 
Émulos del mecanismo de ubicación de 
los murciélagos, los sensores ultrasó-nicos 
nos permiten medir distancias a 
bajo costo. Pueden tener el emisor y el 
receptor por separado o utilizar el mis-mo 
piezoeléctrico para ambas cosas. 
Podemos conseguirlos en algunas cá-maras 
antiguas con foco automático, o 
utilizar la serie SRF de Devantech. 
El más adecuado en este caso es el 
SRF08, que funciona con 5 V y tiene ba-jo 
consumo.
5 V 
E D 
5 V 
deben preocupar, ya que los realizará 
en forma automática. 
Con estos pasos, podemos tomar los 
valores de los sensores que describire-mos 
a continuación, y que nos brin-darán 
la riqueza de la precisión que 
los sensores digitales no tenían. 
Tipos de sensores analógicos 
Uno de los sensores más sencillos de 
utilizar y más económicos es el fa-moso 
CNY70, que ya hemos men-cionado. 
Para usarlo, sólo lo conec-tamos 
como indica la Figura 13, don-de 
la señal debe ir hacia la entrada 
analógica. 
Otro sensor conocido y económico 
es el LDR, que consiste en una re-sistencia 
que varía su valor resistivo 
en función de la luz que recibe. De 
esta manera, podemos obtener infor-mación 
compleja del entorno donde 
el robot realiza su tarea. También po-demos 
agregarle un led específico del 
color que deseamos detectar, para 
que los valores de rebote sean más 
significativos. En la Figura 14 pode-mos 
ver la conexión del sensor a 
nuestro controlador, y más adelante 
veremos cómo programar la detec-ción 
de su valor analógico. 
7. SENSAR EL MUNDO 
❘❘❘ 
El gran avance de la tecnología nunca terminará de sorprendernos. Unos científicos 
japoneses desarrollaron una piel artificial flexible con capacidades sensoriales. Por 
ahora sólo son sensibles a la presión, pero en breve tendremos pieles que además 
detecten temperatura, fuerza, tensión, etcétera. Esto permitiría una manipulación 
mucho más fina de los objetos por parte de un robot, sin necesidad de hacer pro-cesamiento 
162 
PIEL PARA ROBOTS 
de imágenes para lograrlo. 
20 K 
20 K 
Señal 
Masa 
Masa 
Figura 13. Conexión del CNY70 
para usarlo como sensor analógico.
OSC1/TCLKIN 
OSC2/CLKOUT 
Otro sensor analógico corriente es el 
potenciómetro. Conectado a un 
motor, lo podemos utilizar como 
sensor de rotación, principalmente 
si es multivuelta. 
En la Figura 15 podemos ver el es-quema 
de conexión. 
Otros sensores analógicos que pode-mos 
encontrar en el mercado son: 
Adaptación al entorno 
R3 
1K 
● De luz o color: fotodiodos, foto-transistores 
y CCD (integrado que 
posee una matriz de celdas que son 
sensibles a la luz). 
● De presión. 
● Táctiles: a diferencia de los senso-res 
de tacto, pueden determinar el 
grado de presión y la zona donde 
se produce el contacto. 
163 
Vss 
RA0 
RA1 
RA2 
RA3 
RA4/TOCKL 
17 
18 
1 
2 
3 
16F88 / 16F84 
LDR 
R1 
+5 
Figura 14. Conexión del LDR a nuestro controlador. 
❘❘❘ 
DETECTOR DE MENTIRAS 
Si queremos usar nuestro robot para combatir el crimen organizado, además de po-nerle 
una capa y un antifaz, podemos agregarle un sensor que nos permita detectar 
mentiras. Este sensor es, simplemente, un medidor de la resistencia que tenemos en 
la piel, que se modifica cuando transpiramos. Supuestamente, cuando mentimos, su-damos, 
y por lo tanto cambiamos esta medida, aunque a veces nos parece que hay gen-te 
que miente sin que se le mueva un pelo.
3 3 0 
Figura 16. Uno de los tantos sensores 
ultrasónicos que hay en el mercado. 
● Micrófonos. 
● Ultrasónicos: permiten medir distan-cias 
con el mismo mecanismo que 
utilizan los murciélagos (Figura 16). 
● Acelerómetros: detectan acelera-ción 
y vibración. 
● Inclinómetros: sensan la posición 
vertical. 
● Termistores: para medir temperaturas. 
● Termorresistencias: de la misma 
manera que los termistores, permi-ten 
medir temperaturas, pero en 
condiciones mucho más extremas. 
● Pirosensores: divisan fuego por su 
capacidad para detectar ciertos 
rangos de ultravioletas. 
● Humedad. 
● GPS. 
● Proximidad. 
Ejemplo de programación 
de la lectura de un LDR 
en una entrada analógica 
Este ejemplo es una de las pocas co-sas 
que no podremos hacer si tenemos 
un 16F84, y es por eso que recomen-damos 
hacer el pasaje de micro. En el 
ejemplo que dimos, teníamos conec-tado 
el LDR en RA2. Por lo tanto, 
tendremos que leer el canal 2. 
program LDR 
dim resu as word 
main: 
ADCON1 = $80 ‘ configuro 
la forma de lectura del 
valor digital 
‘ y que utilizaré 
Vss y Vdd como 
valores de 
referencia. 
7. SENSAR EL MUNDO 
164 
10 K 
VCC 
al conversor A/D 
Potenciómetro 
Figura 15. Conexión del potenciómetro 
a nuestro controlador.
TRISA = $FF ‘ defino PORTA 
como entrada 
TRISB = $00 ‘ defino PORTB 
como salida 
while true 
resu = ADC_read(2) 
if resu300 then ‘Si el 
valor del ldr es 
mayor a 300 
PORTB.3=1 
‘Enciendo el led 
else 
PORTB.3=0 
‘Y si no, lo apago 
end if 
wend 
end. 
Adaptación al entorno 
165 
… RESUMEN 
Los sensores son uno de los núcleos fundamentales de los robots autónomos. Sin 
embargo, presentan diversas dificultades, desde la conexión electrónica hasta el 
procesamiento de la información que nos entregan. En este capítulo hemos visto 
las características fundamentales de un sensor a la luz que debemos analizar 
según el objetivo de nuestro robot. En el conjunto de sensores, tenemos los digi-tales, 
que nos devuelven valores discretos, habitualmente, 1 y 0. Entre estos sen-sores, 
de fácil procesamiento, podemos encontrar microswitches y sensores de 
luz. También tenemos sensores analógicos, que devuelven un valor dentro de un 
rango continuo. Dado que nuestros procesadores trabajan en forma digital, de-bemos 
pasar este valor de entrada por un conversor analógico digital. Afortuna-damente, 
varios micros ya proveen en forma interna ese conversor, como el 
16F88 que recomendamos en este libro.
✔ 
ACTIVIDADES 
TEST DE AUTOEVALUACIÓN 
1 ¿Cuáles son las características esen-ciales 
166 
de los sensores? 
2 ¿Qué es un sensor digital? ¿Cómo con-vertimos 
un sensor analógico en uno 
digital? 
3 Describa los interruptores o micros-witches. 
4 ¿Cuáles son los conectores de un mi-croswitch 
y cómo se conectan? 
5 ¿Cuáles son los tipos de sensores in-frarrojos 
que podemos utilizar según 
su arquitectura? 
6 Describa los sensores de efecto hall. 
7 ¿Qué es un sensor analógico? ¿Qué es 
un conversor A/D? 
8 ¿Cómo se utiliza el conversor ADC0804? 
9 ¿Cómo funciona el conversor A/D del 
16F88? 
10 Describir cuatro tipos de sensores 
analógicos. 
EJERCICIOS 
1 Realizar un programa donde el led se 
encienda si los dos interruptores 
están en el mismo estado (los dos 
presionados o sueltos). 
2 Realizar un programa donde el led se en-cienda 
cada 3 pulsaciones. Es decir, si se 
pulsa una vez o dos veces no se encien-de. 
A la tercera pulsación se enciende. 
Luego se apaga en la cuarta y quinta, y 
vuelve a encenderse en la sexta. 
3 Conecte ocho leds al puerto B del mi-cro 
y un potenciómetro a una entrada 
analógica. Realice un programa que 
encienda los leds según la salida digi-tal 
del valor del potenciómetro (es de-cir, 
que los leds representen los 8 bits 
menos significativos de la salida). 
4 Conecte un CNY70 y programe el mi-cro 
para que el motor 1 se encienda y 
el 2 se apague si el sensor está sobre 
una línea negra, y al revés si está so-bre 
una superficie blanca.
Robótica 
El cuerpo 
del robot 
Capítulo 8 
Llegó la hora de armar una estructura que 
permita optimizar el funcionamiento del 
robot. Para eso buscaremos un equilibrio 
entre el peso, la funcionalidad, la 
estabilidad y el tamaño. Analizaremos las 
arquitecturas posibles y nos detendremos 
en los mecanismos de locomoción de los 
robots. Ubicaremos los sensores para 
captar el ambiente, y dejaremos todo listo 
para los próximos capítulos. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Cuerpo a cuerpo 168 
Características mecánicas 
de un robot autónomo 169 
Robots aéreos 173 
Robots subacuáticos 174 
Robots terrestres 174 
Sistemas con ruedas 179 
Estructura de nuestro robot 184 
Mecanismos de transmisión 
y reducción 190 
Cinemática de un robot 194 
Odometría 196 
Resumen 197 
Actividades 198 
Colaborador: 
Ing. Néstor Balich
CUERPO A CUERPO 
Nuestra criatura está creciendo. Es 
inteligente, se mueve (aún en forma 
torpe), puede detectar el mundo que 
la rodea. Pero sabemos que no esta-remos 
a su lado toda la vida, y que-remos 
preparar a nuestro robot para 
vencer distintos tipos de dificulta-des: 
seguir una línea, detectar las lu-ces 
encendidas y apagadas, jugar al 
fútbol con sus compañeritos, luchar 
con ellos ante un problema. 
El armado incompleto que tiene en 
este momento es demasiado frágil 
para afrontar todos estos desafíos. 
Por eso, necesitamos acomodar to-das 
sus piezas y darle una arquitec-tura 
que sea fuerte, robusta y veloz. 
Pero como siempre, tenemos muchí-simas 
opciones: ¿ruedas, orugas o 
patas? Y si son ruedas, ¿diferenciales 
u omnidireccionales? Y si son patas, 
¿dos, cuatro, seis, cien? 
Como vemos, no es fácil decidir la 
estructura de nuestro robot, y esta 
decisión está fuertemente vinculada 
con su destino final. En nuestro ca-so, 
haremos un equilibrio entre el 
costo y la estructura, y tendremos en 
mente la posibilidad de encarar di-versos 
desafíos con la misma forma. 
Pero como ya hemos comentado, el 
que mucho abarca, poco aprieta. 
El cuerpo que vamos a desarrollar 
nos permitirá realizar muchas fun-ciones 
distintas, pero en ningún ca-so 
será la mejor estructura posible. 
Es por eso que presentaremos diver- 
8. EL CUERPO DEL ROBOT 
168 
Figura 1. Dos equipos formados para comenzar 
un partido de fútbol de siete contra siete.
sos aspectos de la construcción de 
manera tal que más adelante, se pue-da 
desarrollar el robot que mejor se 
adapte a la tarea final. 
Características mecánicas 
de un robot autónomo 
Cuando desarrollamos la estructura 
de un robot, tenemos que tener en 
cuenta un conjunto de variables 
que, en muchas ocasiones, se con-traponen. 
Desde ya, la variable por 
excelencia, lo que tenemos que tener 
en mente constantemente, es el ob-jetivo 
o la misión del robot. En 
nuestro caso, dado que queremos 
cumplir diversas pruebas con el mis-mo 
robot, tenemos que elegir una 
estructura que nos permita acceder 
con facilidad a los sensores y cam-biarlos 
de lugar con sencillez, entre 
otras cosas. Pero como nuestro ob-jetivo 
es que luego de leer este libro 
podamos comenzar a realizar dife-rentes 
diseños de robots, a conti-nuación 
presentaremos cuáles son 
las características que debemos tener 
en cuenta en el desarrollo. 
● Ubicación de las baterías: ya he-mos 
comentado que éste es un te-ma 
especial y molesto. Si en nues-tro 
robot agregamos la electrónica 
de la carga de la batería, podemos 
ubicarla en algún lugar inaccesible 
mientras podamos enchufar el ca-ble 
de alimentación. Pero si no 
Cuerpo a cuerpo 
CÓMO UBICAR LAS PILAS 
agregamos esto, necesitamos ubi-car 
las baterías en algún lugar don-de 
podamos sacarlas y ponerlas sin 
tener que desarmar todo. 
● Ubicación del controlador: tene-mos 
un problema similar al de las 
baterías. Si desarrollamos la pro-gramación 
en circuito (como es 
nuestro caso), basta con dejar el 
conector para comunicarnos con 
el programador. Pero si tenemos el 
micro en un zócalo, tendremos 
que poder acceder a él para llevar-lo 
al programador y regresarlo. 
● Tipos de locomoción: otro aspec-to 
fundamental es el ambiente 
donde el robot debe desarrollar la 
actividad. Son tantas las modifica-ciones 
que debemos tener en cuen-ta, 
que trataremos este tema en 
forma detallada más adelante. 
169 
❘❘❘ 
Para poder ubicar las pilas de la forma 
que más nos convenga, podemos com-prar 
los portapilas en diferentes confi-guraciones. 
En general, existen porta-pilas 
de cuatro pilas, pero podemos 
conseguir de dos, de seis y de ocho. 
Una vez que tengamos determinada la 
configuración que nos será más útil pa-ra 
nuestro robot, no tenemos que olvi-dar 
conectarlos entre sí en serie para 
obtener un negativo y un positivo con el 
voltaje necesario.
● Equilibrio del robot: cada am-biente 
en particular añade carac-terísticas 
específicas a la actividad. 
Por ejemplo, uno de los problemas 
habituales son las rampas o los 
obstáculos. En el caso de las rampas, 
tenemos que analizar con atención 
si la potencia de los motores nos 
permitirá subirlas o bajarlas sin ca-ernos 
o quedarnos estancados. Y es-to 
no hay que hacerlo mediante el 
encendido de los motores y luego 
colocar al robot al comienzo de la 
rampa para ver si la sube, dado que 
si debe sensar para poder subir, el 
comportamiento de los motores 
será mucho más complejo y con se-guridad 
no alcanzaremos la poten-cia 
necesaria. Al probarlo es necesa-rio 
tener en cuenta todos los pro-blemas 
que se encontrará en el tra-yecto 
de subida. Lo mismo ocurre 
con los obstáculos. Puede ocurrir 
que nuestro robot supere uno de 
ellos cuando lo ponemos directa-mente 
frente a él, pero si llega in-clinado 
o mientras analiza los sen-sores, 
es posible que fracase en su in-tento. 
Es por eso que el verdadero 
comportamiento lo vamos a obte-ner 
en la arena real. Una buena idea 
es construir un espacio lo más pare-cido 
posible al que va a tener el ro-bot 
como ambiente, para poder tes-tearlo 
en forma robusta. 
● Superficie donde se desarrolla la 
8. EL CUERPO DEL ROBOT 
170 
Figura 2. La arquitectura del robot dependerá de su objetivo. 
Aquí tenemos un robusto luchador de sumo.
actividad: el tipo de superficie tam-bién 
genera problemas con respecto 
al comportamiento inercial del robot 
y su adherencia. Tendremos que de-tenernos 
a analizar cómo son nues-tras 
ruedas, de qué material están he-chas, 
si no es mejor utilizar orugas, si 
son de goma, de metal, etcétera. 
También en esta oportunidad es más 
conveniente tener el material real de 
la superficie, porque el comporta-miento 
cambia completamente. ¡Y 
no nos podemos dar el lujo de tener 
juegos de botines completos! 
● Ubicación de los sensores: en el 
capítulo de los sensores hemos co-mentado 
algo sobre esto. Según el ti-po 
de sensor, será necesario ubicarlo 
Cuerpo a cuerpo 
171 
Figura 3. La superficie de la cancha determinará 
el tipo de ruedas a utilizar. 
❴❵ 
TESTEO DEL ROBOT 
Para poder observar el comportamien-to 
inercial del robot, es necesario que 
lo probemos en los siguientes estados: 
•A toda velocidad hacia delante y hacia 
atrás, y luego frenar bruscamente. 
•A toda velocidad hacia delante y hacia 
atrás, y luego dejar las ruedas sin ali-mentación. 
•Girar a toda velocidad para un lado y 
para el otro y luego hacerlo frenar de 
manera brusca. 
•Girar a toda velocidad para un lado y 
para el otro y luego dejar las ruedas 
sin alimentación.
más cerca o más lejos de los objetos 
que tendrá que detectar. Por ejemplo, 
si usamos un CNY70 para seguir una 
línea, prácticamente lo tendremos 
que pegar al piso. Por otro lado, tam-bién 
es necesario que la ubicación nos 
permita aislarlo lo más posible de las 
interferencias del ambiente. Por 
ejemplo, los sensores de luz de cual-quier 
tipo tienen que estar lo más ais-lados 
posible de la luz ambiente para 
poder tener uniformidad. 
● Ubicación de los motores y de la 
transmisión: éste es otro proble-ma 
importante, en especial si 
nuestro presupuesto no nos ha 
permitido comprar micromotores 
o motorreductores. La ubicación 
de los motores nos complicará el 
mecanismo de transmisión hasta 
las ruedas. Además, cualquier mo-vimiento 
o vibración de los moto-res 
no contemplado, comenzará a 
deteriorar el sistema de transmi-sión. 
Tanto los motores como los 
ejes donde se asiente la transmi-sión 
deben estar robustamente an-clados 
para evitar estos problemas. 
● Ubicación del sistema de comu-nicación: 
si tenemos el placer de 
añadir un sistema de comunica-ción 
inalámbrico, tenemos que 
ubicarlo en algún lugar donde no 
tengamos interferencias y donde 
podamos cambiar de canal con fa-cilidad 
si es necesario (por ejem-plo, 
en el caso de uso de radio). 
● Tamaño y peso: todo lo que hemos 
descripto también está acotado por 
estos dos factores, que se presentan 
como límites habituales en las com-petencias 
de robots. Tal vez el más 
sencillo de solucionar es el peso, ya 
que si modificamos los materiales 
de la estructura del robot, lo 
podemos lograr. Pero con 
respecto al tamaño, mu-chas 
veces, si no hemos pre-visto 
con antelación el pro-blema, 
estamos obligados a 
desarmar el robot en forma ca-si 
completa. 
Figura 4. No siempre nuestro robot es 
prolijo y ordenado en los primeros 
intentos. Lo importante es que podamos 
cambiar su configuración con facilidad. 
8. EL CUERPO DEL ROBOT 
172
Todo lo que hemos descripto se apli-ca 
a robots terrestres. ¡Imaginemos to-dos 
los problemas que surgen en los 
aéreos y submarinos! Como el nivel de 
complejidad de estos robots supera 
nuestro humilde libro, comentaremos 
de forma muy simple algunas cuestio-nes 
de los robots de este tipo, para lue-go 
profundizar en los terrestres. 
Robots aéreos 
Uno de los problemas fundamentales 
que podemos encontrar en el desa-rrollo 
de estos robots es la necesidad 
de obtener información del ambiente 
con una frecuencia mucho mayor que 
en el caso de los robots terrestres. En 
estos casos, el robot no puede hacer 
Cuerpo a cuerpo 
nada y debe quedar en estado de re-poso. 
Necesariamente tiene que reci-bir 
información de su movimiento en 
3D y adaptar la velocidad de sus mo-tores 
y posicionamiento de sus alas o 
rotores en forma constante. 
En general, utilizan un sistema re-dundante 
de sensores para su posicio-namiento, 
de forma tal que ante cual-quier 
interrupción momentánea de 
uno o más de ellos, pueda recuperar-se 
de la pérdida. Por otra parte, con 
esta redundancia se logra mayor fia-bilidad 
y precisión en la información. 
En general utilizan GPS (Global Posi-tioning 
System, Sistema de Posiciona-miento 
Global), acelerómetros, girós-copos, 
telémetros y otros sensores so- 
Figura 5. Marvin MarkII, un robot aéreo autónomo desarrollado por el Departamento 
173 
de Ciencias de Computación de la Universidad Técnica de Berlín.
fisticados para poder ubicarse en 3D. 
Los robots aéreos más versátiles son los 
helicópteros, pero también se han de-sarrollado 
aviones y zeppelines, que 
son más estables y fáciles de controlar. 
Otro problema fundamental es tener 
información constante en tierra so-bre 
la batería restante o algún meca-nismo 
automático de aterrizaje en 
caso de que nos quedemos sin 
energía. En los robots terrestres, si 
nos quedamos sin batería, dejarán de 
funcionar. En los aéreos, las conse-cuencias 
son imaginables, ¿no? 
Robots subacuáticos 
Los problemas planteados por este tipo 
de robots son similares a los aéreos. Te-nemos 
movimiento 3D, pero en este 
caso, tenemos mayor estabilidad en el 
medio. Es decir, podemos usar más 
tiempo para tomar decisiones, dado 
que a lo sumo nos sumergiremos más 
o menos cuando no hacemos nada. 
Aquí las dificultades surgen en los tipos 
de sensores a usar, dado que el agua es 
un medio más complejo e inestable. 
Podemos encontrar partículas suspen-didas 
que modifican todo tipo de señal. 
También la comunicación se hace más 
compleja, con lo cual el riesgo de per-der 
el robot es más grande (¡no se rom-pe 
pero se pierde en el mar!). 
Con respecto a las baterías, el proble-ma 
es similar al caso aéreo. Para su-mergirse 
utiliza sistemas de flotabili-dad 
que, con la entrada o la salida de 
agua, permiten modificar la profun-didad 
del robot. Con respecto al mo-vimiento, 
con motores desplaza el 
agua que lo circunda. 
Robots terrestres 
Dentro del conjunto de robots terres-tres, 
tenemos diversos tipos de formas 
de locomoción. Cada una de ellas po-see 
ventajas y desventajas, y depende 
del tipo de superficie que recorramos. 
Vamos a describir genéricamente ca-da 
una de ellas para detenernos, más 
adelante, en los sistemas con ruedas, 
que son los que podremos imple-mentar 
en nuestro robot. 
8. EL CUERPO DEL ROBOT 
❘❘❘ 
La Asociación Internacional de Vehículos Autónomos (AUVSI) organiza competencias 
de robots aéreos autónomos. En cada una de ellas se plantea una misión sobre un 
ambiente determinado, como un rescate en el mar o el ingreso a una zona donde se 
produjo un desastre nuclear para tomar imágenes. El objetivo es volar hasta una zo-na 
174 
COMPETENCIA INTERNACIONAL DE ROBOTS AÉREOS 
distante a tres kilómetros del punto de partida e identificar una estructura en 
particular. Podemos encontrar la información completa en el sitio http://avdil.gtri. 
gatech.edu/AUVS/IARCLaunchPoint.html.
Cuerpo a cuerpo 
Figura 6. Explorador subacuático realizado por alumnos de una escuela 
media de Argentina. No es autónomo, pero resuelve 
todas las dificultades mecánicas de un robot submarino. 
❴❵ 
ROBOT SUBACUÁTICO HECHO POR ALUMNOS DE UNA ESCUELA 
Ex.Su.Ac. (Explorador SubAcuático) es un robot desarrollado por alumnos de la Es-cuela 
Técnica No. 3 de Buenos Aires. El robot se realizó con la utilización de pro-ductos 
prefabricados de PVC y puede sumergirse hasta 15 metros de profundidad. 
Tiene como objetivo colaborar en la búsqueda de problemas de residuos en tanques 
y conductos de agua, en el rescate de cuerpos u objetos sumergidos, y en la gene-ración 
de mapas del suelo subacuático. Podemos encontrar más información en 
175 
www.oni.escuelas. edu.ar/2005/GCBA/972/.
Orugas 
Los sistemas de oruga unen la rueda 
trasera con la delantera (Figura 7). Tie-nen 
como ventaja una mayor adhe-rencia 
a la superficie y la capacidad de 
adaptarse a terrenos irregulares. En 
general son de goma, pero también 
podemos hallar orugas metálicas que 
le permiten clavarse en superficies de-masiado 
pulidas. La desventaja que 
presentan es la imposibilidad de rea-lizar 
trayectorias curvas. La única for-ma 
de rotar es si se giran las orugas de 
cada lado en sentido opuesto, lo que 
logra un giro en el lugar, pero el avan-ce 
sólo puede ser en línea recta. 
Patas 
Los robots con patas son el resultado 
de un enfoque biológico de la arqui-tectura, 
y van de la mano del sueño 
de la criatura humana (Figura 8). Tam-bién 
tienen como ventaja una mayor 
adaptación a terrenos complejos, pe-ro 
eso aún no se ha logrado. El siste-ma 
de equilibrio en estos robots es 
complicado, y necesitan de una coor-dinación 
muy precisa de los mecanis-mos 
de control de los motores. 
CUBE REVOLUTIONS 
En general, presentan 3 grados de li-bertad 
en cada pierna: cadera, rodi-lla 
y tobillo. En las dos ligas inter-nacionales 
de fútbol de robots en-contramos 
categorías de robots con 
patas, pero aún no juegan verdade-ros 
partidos, sino pruebas de destre-za. 
Una forma de aumentar el equi-librio 
consiste en incrementar el nú-mero 
de patas. En este sentido, los 
8. EL CUERPO DEL ROBOT 
176 
Figura 7. Robot 
NR3 con sistema 
de orugas 
desarrollado por 
Francisco 
Carabaza Piñeiro. 
▲ 
Este proyecto de la Universidad Autóno-ma 
de Madrid se basa en la construcción 
de un robot ápodo y modular. El robot 
está compuesto por 8 módulos idénticos 
con la misma orientación, y puede adop-tar 
diversas formas. Logra su locomo-ción 
por medio de ondas periódicas, por 
semiondas o al convertirse en una rue-da 
que rota sobre sí misma. El desarro-llo 
del robot es completamente abierto y 
libre, y fue diseñado con herramientas 
de las mismas características. El control 
se realiza desde una PC mediante el 
puerto serial. Podemos encontrarlo en 
www.iearobotics.com/personal/juan/ 
doctorado/cube-revolutions/index.html.
Cuerpo a cuerpo 
Figura 8. Nimbro, humanoide participante de la RoboCup 2006, 
desarrollado por la Universidad de Freiburg. 
❴❵ 
En todas las competencias de fútbol de robots encontramos categorías de jugadores 
con patas. En el caso de la Robocup, están presentes las categorías Four-legged 
(cuatro patas), donde cada equipo está formado por cuatro Aibos, y Humanoid (hu-manoide), 
donde el equipo está compuesto por un arquero y un jugador, ambos con 
dos patas. En la FIRA, la categoría se llama HuroSot, y los humanoides no juegan 
partidos, sino que realizan pruebas de destreza. 
177 
JUGADORES DE FÚTBOL CON PATAS
8. EL CUERPO DEL ROBOT 
Figura 9. Robot hexápodo desarrollado por un aficionado 
en Japón, con el uso de ¡dieciocho servos! 
esquemas tradicionales son bípedos, 
cuadrúpedos y hexápodos (Figura 9). 
Los ejemplos más conocidos son 
Asimo de Honda y Qrio de Sony en 
el caso de los bípedos, y Aibo de 
Sony en el caso de cuadrúpedos. 
Ápodos 
Los ápodos son robots que no em-plean 
ruedas, orugas o patas (Figura 
10). El modelo a seguir es el de los 
gusanos o serpientes. Están com-puestos 
por partes pequeñas, articu-ladas 
en forma completamente mo-dular. 
Pueden moverse sobre super-ficies 
muy diversas y tomar configu-raciones 
distintas para entrar en lu-gares 
complicados. La idea es di-señar 
un módulo básico y crear di- 
178 
ferentes tipos de robots ápodos al 
conectar varios de estos módulos. 
El movimiento en línea recta se lo-gra 
con un efecto de onda a partir de 
la cola. Comienza con una contrac-ción 
inicial que se propaga en cada 
módulo. En esta arquitectura, lo 
complejo es la coordinación de los 
módulos. Además, necesitamos sen-sores 
en los módulos para poder 
adaptarlos a distintos terrenos. Otro 
problema complejo es agregarles 
grados de libertad a los módulos pa-ra 
obtener movimientos en superfi-cies 
y no sólo en línea recta. En ge-neral, 
se usa al intercalar módulos en 
diferentes fases (uno hacia arriba y 
otro hacia el costado).
Sistemas con ruedas 
Los robots con ruedas son los más 
económicos y sencillos de implemen-tar. 
De todas formas, hay diversas ar-quitecturas 
que analizaremos detenida-mente, 
y pueden tener alta compleji-dad. 
En ellas, uno de los problemas 
fundamentales que también trataremos 
en profundidad son los mecanismos de 
transmisión desde los motores hasta las 
ruedas. En general, la estabilidad del 
robot con ruedas no es problema, al 
igual que la repartición de la carga del 
robot. Sin embargo, no se adaptan a 
cualquier tipo de terreno. Si los desni-veles 
superan el radio de las ruedas, se 
hace muy difícil superarlos. Ahora ve-amos 
cada tipo de arquitectura. 
Configuración diferencial 
Ésta es la configuración de ruedas más 
sencilla, y es la que utilizaremos en 
nuestro robot (Figura 11). Es econó-mica 
y la transmisión no es tan com-pleja. 
Cuerpo a cuerpo 
Se utilizan dos ruedas, una de 
cada lado. Además se agrega una rue-da 
libre o un punto de apoyo en la 
parte trasera o delantera para mante-ner 
el equilibrio. Al tener las ruedas 
alimentadas por dos motores inde-pendientes, 
es complicado mantener 
un movimiento rectilíneo sin el uso 
de sensores internos (encoders vincu-lados 
a las ruedas) o externos. 
179 
Figura 10. Robot ápodo desarrollado por la Escuela Politécnica 
Superior de la Universidad Autónoma de Madrid. 
▲ 
RECICLADO 
Éstos son algunos sitios interesantes don-de 
se explica cómo reciclar componentes 
de aparatos en desuso. Muchos de ellos 
serán útiles para nuestros robots: 
•Reciclaje y proyectos electrónicos: 
http://heli.xbot.es/wp/. 
•Proyecto EconoBot (un robot de costo 
cero): http://mundobot.com/blog/. 
•Disquetera convertida en robot: 
www.sorgonet.com/trashing
Cuando el motor que alimenta la rue-da 
da las vueltas necesarias para com-pletar 
una vuelta de esta última, no 
necesariamente ha girado su circunfe-rencia 
por problemas de rozamiento. 
De este modo, la única forma de ve-rificar 
que ambas ruedas giran sincro-nizadas 
es sensar el comportamiento 
interno o externo del robot. 
Otra dificultad es la navegación ha-cia 
un punto determinado. Es un 
desafío complejo e interesante hacer 
que un robot llegue lo más rápido 
posible a su destino. Una forma sen-cilla 
es rotar hasta apuntar al objeti-vo 
final, y luego navegar en forma 
recta, corrigiendo de tanto en tanto 
el recorrido. Ésta es una navegación 
muy lenta para los ambientes diná-micos, 
como el del fútbol (Figura 12). 
Es por eso que más adelante hare-mos 
un estudio detenido de la nave-gación 
en estos casos, y veremos al-gunas 
alternativas a la navegación 
con trayectos curvos. 
Configuración síncrona 
En este caso, el robot tiene tres rue-das 
alimentadas por un mismo motor 
(Figura 13). Gracias a esto, avanza en 
línea recta en forma precisa. Para po-der 
girar, incorpora un segundo mo-tor, 
que también afecta a las tres rue-das, 
para rotarlas en su eje. De esta 
8. EL CUERPO DEL ROBOT 
180 
Figura 11. Robot diferencial 
con una rueda libre, desarrollado 
por Garnet Hertz. Es la base 
de un robot que luego 
se controló ¡con una cucaracha!
forma, puede avanzar en línea recta 
hacia cualquier punto, pero no puede 
trazar curvas. Al funcionar de esta 
manera, el frente del robot siempre 
estaría para el mismo lado. Es posible 
que esto no sea un problema, pero si 
necesitamos apuntar su frente en dis-tintas 
direcciones, tenemos que agre-gar 
un mecanismo que permita rotar 
el chasis en la dirección de las ruedas. 
Otra arquitectura de la configuración 
síncrona sólo permite dos posiciones 
de las tres ruedas. En una de ellas, el 
robot avanza en línea recta, y en la 
otra posición, las ruedas se acomodan 
de tal manera que el robot gira sobre 
su eje. De esta manera, evitamos el 
Cuerpo a cuerpo 
problema del frente del chasis, pero la 
navegación es más lenta. 
Figura 13. Un robot de configuración 
síncrona hecho con Lego. Se puede 
observar el engranaje que alimenta 
el giro de la rueda y el que alimenta 
la rotación del soporte de ésta. 
181 
Figura 12. Robot 
Chebot, jugador de fútbol 
con tracción diferencial 
desarrollado en la Universidad 
de Buenos Aires, Argentina.
Triciclo 
En este caso tenemos dos ruedas ali-mentadas 
por un motor para darle 
tracción al robot, y una tercera rueda 
en la parte anterior o posterior del ro-bot, 
sin tracción, pero con giro sobre 
su eje, que le permite darle dirección 
al dispositivo (Figura 14). Tiene buena 
estabilidad y su mecánica es sencilla. 
Puede ir recto en forma precisa gra-cias 
a que las ruedas de tracción están 
alimentadas por un único motor. El 
problema que se presenta es que el 
movimiento curvo es complejo, dado 
que el radio de las curvas que puede 
realizar es muy grande. No puede gi-rar 
sobre sí mismo ni hacer curvas ce-rradas. 
Esto, para los robots que se 
mueven en ambientes pequeños, pue-de 
ser un problema insalvable. 
Ackerman 
Esta arquitectura es la que encontra-mos 
en los automóviles convencionales 
(Figura 15). Tenemos dos ruedas trase-ras 
con tracción y dos ruedas delante-ras 
que definen dirección. Tiene la mis-ma 
filosofía que el triciclo, pero agrega 
mayor estabilidad. La desventaja es que 
necesitamos desarrollar el sincronismo 
entre las dos ruedas delanteras, pero no 
es complicado. También se mueve en 
línea recta con absoluta precisión y tie-ne 
dificultades para realizar las curvas. 
Otra diferencia con el triciclo es que las 
ruedas traseras utilizan un mecanismo 
llamado diferencial que asegura que, a 
pesar de que la alimentación de ambas 
ruedas se realice con el mismo motor, 
una rueda pueda girar menos que la 
otra cuando sea necesario. 
Ruedas omnidireccionales 
Como podemos ver en la Figura 16, 
las ruedas ominidireccionales pre-sentan 
una estructura muy peculiar. 
Se comportan como una rueda con-vencional 
pero no ofrecen resisten-cia 
para su desplazamiento lateral. 
8. EL CUERPO DEL ROBOT 
182 
Figura 14. Esquema 
de un robot con 
arquitectura de triciclo.
Por lo tanto, con tres ruedas ubica-das 
como se observa en la Figura 17, 
y con determinada velocidad en ca-da 
rueda, podemos lograr que el ro-bot 
se dirija hacia cualquier punto o 
que gire sobre su eje. 
Cuerpo a cuerpo 
183 
Figura 15. Arquitectura de un robot con control de ruedas Ackerman. 
Figura 16. Rueda omnidireccional. 
Los rodillos permiten que la rueda 
se desplace en forma lateral 
con mínimo rozamiento. 
▲ 
EAGLE KNIGHTS 
En el Instituto Tecnológico Autónomo de México, el laboratorio de robótica ha desarro-llado 
un equipo de fútbol de robots para competir en la categoría F-180 de la RoboCup. 
El equipo está conformado por cinco robots omnidireccionales que están controlados por 
un sistema central de inteligencia artificial. Este sistema central realiza el procesamiento 
de imágenes de las cámaras ubicadas sobre el terreno de juego, define las estrategias y 
los comportamientos de los robots, y les envía las instrucciones por radio. Podemos en-contrar 
el proyecto completo en http://robotica.itam.mx/espanol/.
El algoritmo necesario para calcular la 
velocidad de cada rueda para dirigir-se 
con un ángulo determinado es sen-cillo 
y consume mínimo tiempo de 
procesamiento. Las desventajas son 
que no es sencillo moverse en línea 
recta en forma precisa, y que es algo 
compleja la arquitectura del robot 
con respecto a la ubicación de los mo-tores 
y las ruedas. ¡Pero es un buen de-safío 
para afrontar más adelante! Es 
muy interesante ver cómo se mueven 
los robots con estas ruedas. 
Estructura de nuestro robot 
Antes de continuar con otros con-ceptos 
teóricos relacionados con los 
movimientos, desarrollaremos el cha-sis 
y la arquitectura de nuestro robot. 
Una vez que lo tengamos armado y 
podamos comenzar a probarlo, estu-diaremos 
algunos conceptos físicos y 
matemáticos para lograr una navega-ción 
eficiente. 
Especificaciones 
El diseño que propondremos en este 
libro tiene como objetivo cumplir con 
las especificaciones del Campeonato 
Argentino de Fútbol de Robots, de 
manera tal que podamos utilizarlo pa-ra 
participar en la competencia. Está 
diseñado para la categoría Junior, aun-que 
el tamaño también cumple con las 
especificaciones de la categoría Senior. 
Los chasis presentados (Figura 18) son 
8. EL CUERPO DEL ROBOT 
184 
Figura 17. Arquitectura 
de un robot con tres ruedas omnidireccionales.
a modo de sugerencia, y dependen del 
uso que se le quiera dar al robot. Para 
poder calificar en cualquiera de las ca-tegorías 
del CAFR, el robot tiene que 
entrar en un cilindro de 18 cm de diá-metro 
por 15 cm de alto. 
No hay restricciones en cuanto a la 
cantidad de ruedas, motores y ba-terías, 
siempre y cuando el robot se 
adecue a las limitaciones del regla-mento. 
Las principales limitaciones 
son que quepa dentro del cilindro 
mencionado y que no lastime o per-judique 
intencionalmente a un robot 
contrario (¡Fairplay!). Para mayor de-talle 
del reglamento, podemos visitar 
la página del CAFR (www.cafr. 
com.ar), donde están las reglas origi-nales 
de la RoboCup y la adaptación 
para nuestro campeonato local. 
Tracción diferencial 
A la hora de elegir el tipo de transmi-sión, 
la más fácil de implementar y con 
grandes ventajas es la tracción diferen-cial. 
Para lograrla, ubicaremos dos mo-tores 
en el centro del robot conectados 
en forma directa a sus ruedas. De esta 
manera, podremos controlar la direc-ción 
del robot mediante el giro de los 
dos motores, de la siguiente manera: 
Cuerpo a cuerpo 
185 
Figura 18. Ejemplo de chasis propuesto. 
El parche en la parte superior permite 
reconocer al robot en un sistema de visión. 
❘❘❘ 
CAETI 
El CAETI (Centro de Altos Estudios en Tec-nología 
Informática) es el centro de inves-tigación 
de la UAI (Universidad Abierta In-teramericana), 
donde los autores de este 
libro desarrollamos y probamos todo lo 
que contamos en estas páginas. La rama 
de investigación en la que participamos es 
la de robótica autónoma, y hemos forma-do 
el GIRA, Grupo de Investigación en 
Robótica Autónoma. Uno de los campos 
de trabajo es el fútbol de robots y cada año 
organizamos, junto con otras universida-des 
e instituciones educativas, el Campe-onato 
Argentino de Fútbol de Robots. 
Nuestro centro está abierto para todos los 
estudiantes e investigadores que quieran 
trabajar dentro de este campo. Para más 
información se puede consultar la página 
web: http://caeti.uai.edu.ar/.
● Uno detenido y el otro que gire: 
giro sobre radio exterior. 
● Uno que gire en un sentido y otro 
en el sentido opuesto: giro sobre 
su centro. 
● Los dos que giren en el mismo sen-tido 
pero uno a menor velocidad: 
giro sobre un arco. 
● Los dos motores que giren a la mis-ma 
velocidad: avance o retroceso en 
línea recta. Como ya comentamos, 
esta opción es teóricamente posible, 
pero en su ejecución siempre nos 
encontramos con diversos proble-mas, 
como la diferencia de veloci-dad 
entre los motores, los roza-mientos 
desparejos, etcétera. Nece-sitaremos 
de mecanismos de sensa-do 
del mundo o de las ruedas, de 
manera tal que podamos corregir 
los errores que se producen. 
Chasis troquelado 
Este chasis está realizado en aglomera-do 
de 2 milímetros, inspirado en las fi-guras 
de cartón que venían troqueladas 
para armar. La plancha de aglomerado 
de ese espesor se puede cortar con un 
cúter, pero nos puede dar algo de tra-bajo. 
Si usamos una caladora de made-ra, 
podremos lograr nuestro objetivo 
con más facilidad. 
Al finalizar la secuencia de armado, 
podremos pegar las piezas o encastrar-las. 
De elegir la primera opción, po-demos 
dejar de lado algunas piezas cu-ya 
finalidad es darle rigidez estructu-ral, 
como es el caso del soporte supe-rior. 
En la Figura 19 podemos ver el 
conjunto total de 14 piezas, el con-trolador, 
la batería, los motores y las 
dos ruedas (que utilizan unos bujes, 
que pueden ser reemplazados según 
las ruedas y los motores que utilice-mos). 
Como vemos, en este caso hici-mos 
el robot con una batería de 12 V 
porque no teníamos portapilas para 8 
pilas de 1,5 V, pero nuestra sugeren-cia 
es que conviene usar 8 ó 12 pilas 
como comentamos en el capítulo de 
las baterías, así aprovechamos las pilas 
AA recargables convencionales. 
Estructura de soporte 
En primer lugar, cortaremos los so-portes 
laterales que tienen por función 
principal el montaje de los motores. 
No olvidemos que el robot no debe 
superar los 15 cm de altura y 18 cm 
de diámetro. Los laterales son simé-tricos 
en espejo entre sí, y lo pode-mos 
observar en las ranuras en don-de 
se encajan las otras piezas (Figura 
20). A continuación, procederemos a 
cortar la pieza circular, que es la pla-taforma 
central donde se colocará la 
placa controladora. Por último, la 
pieza rectangular es un soporte que 
tiene por función darle rigidez al con-junto. 
La última pieza que cortare-mos 
es el soporte para la batería. Allí 
montaremos la rueda de estabiliza-ción, 
que también es de madera, co-mo 
podemos ver en la Figura 21. 
8. EL CUERPO DEL ROBOT 
186
Cuerpo a cuerpo 
187 
Figura 19. Conjunto total con las 14 piezas que componen nuestro robot. 
Figura 20. Soportes principales 
de la estructura de nuestro robot. 
Figura 21. Soporte de las baterías 
y rueda de estabilización.
8. EL CUERPO DEL ROBOT 
El montaje 
Para poder realizar el montaje de nuestro robot, debemos llevar a cabo los 
pasos que veremos a continuación. 
■ Realizar el montaje PASO A PASO 
En primer lugar, debe montar el motor en los soportes laterales. 
Monte la plataforma central con el primer soporte. 
Monte el segundo soporte en la plataforma y la pieza superior para dar-les 
rigidez a los soportes laterales. 
188
Cuerpo a cuerpo 
Monte el soporte para las baterías. En este caso, los portapilas de pilas AA. 
Ubique el controlador en la parte superior del robot, o en el lugar que quede 
disponible si agregó otros componentes. Así queda el robot terminado. 
189
Mecanismos de transmisión 
y reducción 
Muchas veces, los motores no se en-cuentran 
directamente vinculados 
con las ruedas o el mecanismo que se 
quiere mover. También tenemos ca-sos 
en los que queremos alimentar, 
con un mismo motor, a un conjun-to 
de ruedas, como en la configura-ción 
síncrona. Entonces, tenemos 
que desarrollar algún mecanismo de 
transmisión del movimiento del mo-tor. 
Además, muchas veces el motor 
no tiene el torque (fuerza de rota-ción) 
o la velocidad que deseamos. 
Para ello, utilizamos mecanismos de 
reducción. Ambos están muy rela-cionados. 
Presentaremos cada meca-nismo 
y comentaremos cómo fun-ciona 
la transmisión y la reducción 
en cada caso. 
Engranajes 
Los engranajes son ruedas dentadas 
que empalman en forma directa una 
con otra. Los dientes se enganchan 
8. EL CUERPO DEL ROBOT 
Podemos ver que el armado de la es-tructura 
es sencillo, y cada uno lo 
puede hacer a su medida. Si quere-mos 
variar de configuración, es reco-mendable 
utilizar piezas como las de 
Lego, Rasti o Mecano, junto con al-gunos 
soportes de aglomerado para 
los motores. Lo ideal es armar una 
pieza para cada motor que luego sea 
fácilmente vinculable con los ladri-llos 
o las piezas del juego. Las plata-formas 
para las baterías o el contro-lador 
son mucho más sencillas de re-alizar 
con las piezas. 
Figura 22. Robot listo para jugar un 
partido en la categoría Junior del CAFR. 
❴❵ 
Cuando trabajamos con software, estamos acostumbrados a diseñar nuestros progra-mas 
190 
IMPRESORAS 3D 
con libertad, y podemos cambiar cualquier bit sin problemas. Pero en cuestión de 
hardware, de lo que tenemos en mente hasta obtener el objeto físico hay un largo tre-cho. 
Sin embargo, ya se han inventado las impresoras 3D, que nos permiten crear, en 
diversos materiales, las piezas que necesitemos para nuestro robot. Por lo tanto, casi 
no quedan barreras para poder llevar cumplir nuestros sueños. ¡Sólo tenemos que de-jar 
volar nuestra imaginación, contar con estas maravillas y ponernos a trabajar! Po-demos 
ver un modelo de estas impresoras en www.zcorp.com.
entre sí, y el giro del engranaje de 
entrada (conectado al motor) se 
transmite al engranaje de salida (co-nectado 
a la rueda). Cada uno de 
ellos transmite su sentido e invierte 
el sentido del engranaje asociado. La 
transmisión es muy fiable, dado que 
si la conexión es correcta, no se pro-duce 
ningún tipo de falla en la trans-misión 
de los giros. 
Uno de sus defectos es que el alcan-ce 
de la transmisión es corto, y es ne-cesario 
introducir engranajes inter-medios 
(conocidos como engrana-jes 
solidarios) para alcanzar mayo-res 
distancias (Figura 27). 
Además de ser usados para este fin, 
con los engranajes también pode-mos 
hacer reducciones. Un engra-naje 
pequeño de entrada contra un 
engranaje más grande en la salida, 
aumenta la potencia y reduce la ve-locidad. 
Por ejemplo, si la entrada es 
Cuerpo a cuerpo 
de 8 dientes y la salida de 32, ante 
un giro de la entrada, sólo tendre-mos 
un giro de 1/4 de vuelta en la 
salida. Por lo tanto, las revoluciones 
de la rueda con respecto a las del 
motor disminuyen. Sin embargo, al 
tener el punto de apoyo más cerca 
del centro en el caso del engranaje 
pequeño, y más lejos en el que tiene 
conectado, aumenta el torque en la 
misma proporción. 
Por lo tanto, si queremos calcular 
cómo se comportan el torque y la ve-locidad 
en la transmisión entre dos 
engranajes, debemos realizar ecua-ciones, 
pero primero veamos lo que 
significa cada sigla. 
RR: Revoluciones de la rueda. 
RM: Revoluciones del motor. 
DEE: Dientes de engranaje de entrada. 
DES: Dientes de engranaje de salida. 
TM: Torque del motor. 
TR: Torque de la rueda. 
191 
Figura 23. 
Un ejemplo típico 
de reducción
La primera ecuación sería: 
RR = RM * DEE / DES. 
Si seguimos nuestro ejemplo de un 
engranaje de 8 dientes en la entrada y 
32 dientes en la salida, ¿cuántas RPM 
(revoluciones por minuto) tendrá la 
rueda si el motor es de 20 RPM? 
RR = 20 * 8 / 32 = 5 RPM 
En el caso del torque la ecuación es: 
TR = TM / DEE * DES 
En nuestro ejemplo, si nuestro motor 
tiene 2 kgf, entonces, ¿qué torque 
tendremos en las ruedas? 
FR=2 / 8 * 32 = 8 kgf 
Podemos encontrar diversos tipos de 
engranajes, que nos permitirán realizar 
distintos tipos de conexiones según 
nuestras necesidades. Los engranajes 
solidarios son los tradicionales, que 
comparten un plano pero que tienen 
ejes distintos, como vemos en la Figura 
23. Los engranajes cónicos permiten 
cambiar la dirección de la rotación y 
modificar así el plano de ésta. Podemos 
ver un ejemplo en la Figura 24. 
Los sinfín o gusanos permiten realizar 
una caja de reducción que aumenta 
poderosamente la fuerza y disminuye 
notoriamente la velocidad. Podemos 
ver un ejemplo de caja de reducción 
en la Figura 25. 
Los engranajes de piñón y cremallera 
permiten transformar un movimien-to 
circular en traslación, como vemos 
en la Figura 26. Por último, también 
contamos con engranajes antitrabas, 
que si la transmisión supera determi-nada 
cantidad de fuerza, comienzan a 
girar en falso y ponen a salvo al mo-tor 
que genera dicha fuerza. 
8. EL CUERPO DEL ROBOT 
192 
Figura 24. En esta imagen 
podemos observar un ejemplo 
de engranajes cónicos que fueron 
desarrollados por la empresa 
Arrow Gear.
Cuando usamos engranajes solida-rios, 
el sentido de rotación del de sa-lida 
es inverso al de entrada. 
Si queremos mantener el mismo 
sentido, tenemos que incorporar en 
el medio engranajes libres, de mane-ra 
tal que los que tienen la misma 
paridad (es decir, los pares por un la-do 
y los impares por otro) manten-gan 
el mismo sentido de rotación, 
como podemos ver en la Figura 27. 
El tamaño de la rueda también pue-de 
Cuerpo a cuerpo 
considerarse en el cálculo de la ve-locidad 
y la fuerza. Es decir, cuando 
tenemos ruedas más grandes, obtene-mos 
mayor velocidad, pero disminui-mos 
la fuerza, y viceversa. 
Transmisión por poleas 
Si necesitamos realizar la transmi-sión 
a una distancia mayor, utiliza-mos 
poleas unidas por correas o elás-ticos, 
como podemos ver en la Figu-ra 
28 de la próxima página. 
193 
Figura 25. Aquí podemos ver 
una caja reductora hecha 
con engranajes de Lego. 
Figura 26. Engranajes de piñón 
y cremallera desarrollados 
por la empresa Gaes. 
Figura 27. Sentido de rotación de cada engranaje 
en un conjunto de engranajes solidarios.
En este caso, la polea de entrada tie-ne 
el mismo sentido de rotación que 
la polea de salida, salvo que cruce-mos 
la correa como se puede ver en 
la Figura 29. También tenemos un cál-culo 
de reducción relacionado con la 
proporción entre las poleas conecta-das. 
La diferencia fundamental es 
que durante la transmisión, puede 
haber pérdida de movimiento por 
deslizamiento de las correas o pole-as, 
lo que no ocurre en los engrana-jes 
excepto que éstos se rompan. 
Si necesitamos combinar las venta-jas 
de ambos mecanismos, es decir, 
si queremos transmitir a larga dis-tancia 
pero sin tener deslizamientos, 
entonces tenemos que utilizar cade-nas 
con piñones, como las que po-demos 
encontrar en las bicicletas. 
Cinemática de un robot 
Cuando comenzamos a estudiar el 
comportamiento de los movimien-tos 
de nuestro robot, nos damos 
cuenta de que tenemos que tener en 
cuenta un conjunto muy amplio de 
variables, propias y externas de 
nuestro dispositivo. Al estudio de 
todos estos aspectos en nuestra cria-tura 
se lo conoce como dinámica 
del robot. Como es un campo com-plejo 
para encarar en este primer pa-so, 
vamos a estudiar el movimiento 
del robot sin considerar las fuerzas 
involucradas (inercia, pesos, roza-mientos), 
sólo tomaremos el com-portamiento 
de las ruedas, con ad-herencia 
perfecta. A este campo se lo 
conoce como cinemática del robot. 
Ahora bien, podemos encarar dos ti-pos 
de estudios. Uno de ellos es, si 
8. EL CUERPO DEL ROBOT 
194 
Figura 28. Transmisión por poleas. Cuanto más gruesa es la correa 
de transmisión, nos aseguramos menor probabilidad de deslizamiento.
sabemos la posición inicial del robot 
y los movimientos que realiza, de-terminar 
la posición final. A esto se 
lo llama cinemática directa. 
Cuando queremos saber qué movi-mientos 
hacer para llevar al robot de 
una posición inicial a una posición 
final, estudiamos la cinemática in-versa. 
Éste es el campo que a noso-tros 
más nos interesa, porque con el 
robot queremos llegar a un punto 
determinado del espacio y realizar la 
mejor trayectoria posible desde 
nuestro punto inicial. 
Cada una de las arquitecturas que 
presentamos tiene una cinemática 
distinta, que establece ciertas res-tricciones 
en el movimiento. 
Antes de analizar las restricciones y 
estudiar los mecanismos de navega-ción, 
Cuerpo a cuerpo 
debemos aclarar que en los ro-bots 
móviles, tenemos tres grados de 
libertad: posición en el plano (X e Y) 
y rotación (ver Figura 30). 
En el caso de los robots diferencia-les, 
los de configuración síncrona y 
los de ruedas omnidireccionales, las 
restricciones cinemáticas son ho-lonómicas, 
lo que significa que los 
diferentes grados de libertad son in-dependientes. 
En este caso, posición 
es independiente de rotación. 
En el caso de la arquitectura triciclo 
y Ackerman, decimos que la restric-ción 
no es holonómica. Necesaria-mente, 
para girar afectamos la posi-ción 
(X,Y) del robot. En cada uno 
de ellos el estudio de la cinemática 
presenta características distintas. 
195 
Figura 29. En esta imagen podemos observar cómo funciona 
la inversión del sentido de rotación de la polea de salida.
Odometría 
Ahora bien, ¿cómo podemos saber la 
posición de nuestro robot en todo 
momento? Como comentamos an-tes, 
una de las formas es analizar el 
contexto que rodea al robot cons-tantemente. 
El problema es que no 
siempre contamos con información 
externa y, por otra parte, esto nos 
exige tomar datos en forma cons-tante 
con sensores que pueden nece-sitar 
una tasa de procesamiento muy 
alta. Es por eso que la odometría es 
el mecanismo más utilizado para de-terminar 
en forma aproximada la 
posición del robot. Consiste en in-corporar 
encoders situados en las 
ruedas de los robots, de la misma 
manera que los antiguos mouses de-tectaban 
el giro de la bolita inferior 
(Figura 31). Como ya mencionamos, 
esto es sencillo de realizar con sen-sores 
de ranura y un disco acanala-do 
que permita el conteo de los cor-tes 
de señal, o que posibilite el cál-culo 
de rotación por los sensores que 
se encuentran activados. Esto resul-ta 
económico, pero sin información 
externa, y se produce una acumula-ción 
de errores que nos puede llevar 
a datos inexactos. Por ejemplo, si la 
rueda resbala sobre el piso, el enco-der 
detectará el giro y supuestamen-te 
un avance lineal, cuando en reali-dad 
no se produjo. 
Los tipos de errores que podemos 
encontrar en la odometría son sis-temáticos, 
cuando son intrínsecos 
al mecanismo de toma de datos, co-mo 
pueden ser problemas en la tasa 
de muestreo, mal alineamiento de 
8. EL CUERPO DEL ROBOT 
196 
(X,Y) 
Figura 30. Grados de libertad que tenemos en un robot terrestre móvil.
las ruedas, etcétera. Y no sistemáti-cos, 
cuando están vinculados a he-chos 
casuales como los comentados: 
una rueda que patina, fuerzas exter-nas 
que retienen o levantan al robot, 
suelos desnivelados, etcétera. 
A pesar de todo, por su bajo costo y 
su facilidad de cálculo, es uno de los 
métodos más utilizados. Lo que reco-mendamos 
es sumar alguna toma de 
información más que permita reducir 
los errores de este proceso. 
Cuerpo a cuerpo 
Figura 31. Rueda con encoder para 
desarrollar algoritmos de odometría. 
197 
… RESUMEN 
La arquitectura de nuestro robot definirá un conjunto de variables relacionadas 
con su navegación. La decisión del tipo de mecanismo utilizado para el movi-miento 
deberá estar basada en la superficie en la que se desplazará. Desde ya, 
los aéreos y los acuáticos son los más complejos de resolver, pero el movimien-to 
en tierra también presenta un conjunto de desafíos. Podemos utilizar patas, 
orugas, ruedas, o construir un robot similar al funcionamiento de un gusano. En 
nuestro primer robot, utilizamos un sistema de ruedas diferencial, ya que es el 
más sencillo de implementar y el de menor costo. Esto nos obligará a detener-nos 
a estudiar la cinemática inversa de nuestro robot, para obtener la navegación 
más precisa posible. Pero cuando hayamos superado las primeras pruebas, po-dremos 
intentar con otros sistemas de ruedas como las síncronas o las omnidi-reccionales. 
En todos los casos, tendremos que resolver el problema de la trans-misión 
del giro de los motores hacia las ruedas, con engranajes o poleas. Y si es 
posible, agregarles encoders a las ruedas para que nos permitan obtener infor-mación 
sobre los movimientos de nuestro robot.
✔ 
ACTIVIDADES 
TEST DE AUTOEVALUACIÓN 
1 ¿Cuáles son las características que hay 
que tener en cuenta para el diseño del 
cuerpo del robot? 
2 ¿Cuáles son los problemas más impor-tantes 
198 
en el diseño de los robots aéreos? 
3 ¿Cuáles son los problemas más impor-tantes 
en el diseño de los subacuáticos? 
4 ¿Cuáles son los mecanismos de despla-zamiento 
de los robots terrestres? 
5 ¿Cómo se componen los robots ápodos 
y cómo generan el movimiento? 
6 Describa los sensores de efecto hall. 
7 ¿Cómo es la configuración diferencial 
de las ruedas? 
8 ¿Qué diferencias y similitudes tienen la 
arquitectura de triciclo y la Ackerman? 
9 ¿Cómo funcionan las ruedas omnidi-reccionales? 
10 ¿Cuál fue el sistema de desplazamien-to 
que elegimos para nuestro robot y 
por qué? 
EJERCICIOS 
1 Construya el cuerpo del robot y prográ-melo 
para que funcione en línea recta. 
¿Qué diferencias tuvo que determinar 
en los pulsos de cada motor para igua-lar 
la velocidad? 
2 Realice un programa para que el robot 
gire sobre sí mismo. 
3 Incorpore un sensor de tacto en la par-te 
delantera (puede usar un micro-switch 
con una palanca grande), pro-grame 
el robot para que cada vez que 
detecte un objeto retroceda, gire y se 
dirija a otro lado. 
4 Incorpore un sensor de luz en la parte 
inferior delantera del robot, realice un 
programa para que se mueva sobre una 
mesa blanca (o con un papel blanco) y 
si se está por caer (es decir, el sensor 
deja de recibir señal), frene, retroceda 
y se dirija a otro lado. 
5 Describa el comportamiento de los 
engranajes para la transmisión y la 
reducción. 
6 Compare las ventajas y desventajas en-tre 
el uso de engranajes y poleas.
Robótica 
Salir al ruedo 
Capítulo 9 
Ya tenemos nuestro robot armado. Ahora 
nos toca probar cómo se comporta en las 
pruebas de robótica autónoma móvil. 
Para ello presentaremos un conjunto de 
desafíos, veremos los problemas que 
tendremos que resolver y propondremos 
un código para programar nuestro robot. 
¡Pero el ambiente no será siempre igual! 
Por lo tanto, hay que experimentar una y 
otra vez hasta encontrarles la solución a 
los problemas. Y luego, modificar nuestro 
robot para mejorar los resultados. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Presentarse a competir 200 
Características comunes de las 
pruebas de robots autónomos 200 
Pruebas tradicionales 
para robots autónomos 210 
¡La luz, la luz, he visto la luz! 213 
Resumen 219 
Actividades 220
PRESENTARSE 
A COMPETIR 
Ahí está, ¿no es bonito? Toda una ma-ravilla, 
independiente, solícito y muy 
inteligente. Nuestro robot está listo 
para comenzar a representarnos en el 
mundo. Ahora tiene que salir al rue-do, 
porque allí es donde se ven los 
buenos caballos. Pero eso es pan co-mido. 
Le colocamos dos sensores de 
luz, lo ponemos sobre una línea negra 
para que la siga y… ¡Se va a cualquier 
lado! Lo ubicamos sobre una mesa y 
al llegar al final no detecta el borde y 
cae con sus trágicas consecuencias. Le 
ponemos una linterna adelante para 
que la siga y nada, da vueltas deses-perado 
sin hallar la luz que lo guíe. 
Evidentemente, hemos subestimado 
la dificultad de las pruebas y nos fal-ta 
entrenamiento, horas y horas de 
entrenamiento para hacer de nuestro 
robot un buen contrincante. 
En este capítulo presentaremos las 
pruebas clásicas para robots autóno-mos 
móviles y nos detendremos a 
analizarlas para ver dónde se encuen-tran 
las dificultades. También vere-mos 
algunos aspectos de navegación 
para que el movimiento de nuestro 
robot sea lo más fluido posible y nos 
adentraremos un poco en el fútbol de 
robots, que es el tema de nuestro pró-ximo 
capítulo. Si hemos tenido la pa-ciencia 
de llegar hasta este capítulo, lo 
que nos espera ¡es apasionante! 
Características comunes 
de las pruebas de robots 
autónomos 
Cada prueba de robótica presenta 
cuestiones particulares que debemos 
resolver, pero en general hay un con-junto 
de principios básicos comunes. 
Antes de encarar cada una de ellas, 
presentaremos cuáles son los puntos 
que tenemos que tener presentes tan- 
9. SALIR AL RUEDO 
200 
Figura 1. Robot seguidor de líneas.
to en el hardware como en el softwa-re 
de nuestro robot. 
Problemas mecánicos 
Es posible que éstos sean los proble-mas 
más habituales y más difíciles de 
superar. Es fundamental e imprescin-dible 
crear un espacio de pruebas lo 
más parecido posible al lugar donde 
se ejecutará la competencia. Lamen-tablemente, 
es habitual que no tenga-mos 
la descripción completa del te-rreno, 
sino una aproximación con co-tas 
de mínima y máxima en diferen-tes 
aspectos. Dada esta información, 
para poder completar la misión en el 
ambiente más exigente, testeamos to-do 
con las cotas más duras. Esto trae 
aparejado que nuestro robot sea más 
lento o impreciso en otros aspectos. 
Por ejemplo, si tenemos que subir una 
rampa de un ángulo de inclinación 
importante, las orugas brindan buena 
tracción. El problema es que su capa-cidad 
Presentarse a competir 
de giro es muy limitada, y la 
velocidad es lenta. Por lo tanto, si al 
llegar a probar nuestro robot en el es-cenario 
real nos encontramos con 
una rampa de menor inclinación, es 
posible que un sistema diferencial 
nos permita subirla sin las otras difi-cultades. 
En resumen, debemos te-ner 
la capacidad de cambiar entre 
dos o tres sistemas de tracción en el 
momento de la competencia. 
Otra dificultad es el tipo se superficie 
donde nos movemos y la presencia de 
escombros u objetos que estorben 
nuestro recorrido. Para ello, contar con 
diferentes sistemas de tracción también 
puede ser una solución. Si los objetos 
son fijos, deberemos añadir sistemas de 
sensado para poder esquivarlos. 
Otro aspecto complicado es la distri-bución 
de los pesos en el robot. Esto 
influye en el comportamiento de los 
201 
Figura 2. Seguimiento de línea con obstáculos.
giros, en cómo se ubican los sensores 
ante los objetos a detectar, etcétera. 
Los pesos más significativos están da-dos 
por las baterías y los motores. Co-mo 
los motores no se pueden reubi-car 
con facilidad, sería bueno que 
contemos con abrojos en el robot 
donde podamos pegar las baterías de 
diversas formas para la distribución 
del peso. Si usamos pilas, es bueno te-nerlas 
en portapilas separados, de dos 
pilas cada uno, de manera tal que po-damos 
reubicarlos con mayor liber-tad. 
Una anécdota con respecto a es-te 
punto: en el Primer Campeonato 
Latinoamericano de Robótica IEEE, 
utilizamos un sensor casero muy pe-sado, 
hecho de madera y escobillas de 
autitos de carrera, que hacía que el ro-bot 
volcara hacia delante. Esto per-turbaba 
el giro del robot. Muchas ve-ces 
quedaba trabado sobre imperfec-ciones 
del piso y arruinaba nuestro 
desempeño. Como no teníamos peso 
para agregarle (sólo podíamos utilizar 
fichas del kit de Lego), le pusimos un 
controlador adicional (el RCX de Le-go) 
con seis pilas en la parte posterior, 
y así logramos el equilibrio necesario. 
Cuando obtuvimos el primer pues-to, 
nos felicitaron por la compleji-dad 
del robot que utilizaba dos con-troladores 
que se comunicaban en-tre 
sí. Nuestra honestidad (¡y la 
alegría del primer puesto!), nos llevó 
a aclarar que el segundo controlador 
estaba apagado y que su única fun-ción 
era de servir de contrapeso, con 
lo cual las risas colmaron el salón. 
Para cada uno de los sistemas de 
tracción que construyamos, tendre-mos 
que analizar en forma detallada 
la forma en que nuestro robot reali-zará 
los giros. Esto también va a in- 
9. SALIR AL RUEDO 
202 
Figura 3. Sensor casero que utilizamos en el Primer Campeonato 
Argentino de Robótica IEEE. ¡Qué pesado que era!
fluir en la ubicación de los sensores 
y en la programación. Por lo tanto, 
también tendremos que poder reu-bicar 
los sensores con facilidad. 
Problemas de sensores 
Con respecto a los sensores, también 
se nos presenta un conjunto de pro-blemas 
diversos. Así como la super-ficie 
de la competencia puede variar 
llegado el juego, con seguridad las 
luces ambiente, los colores, la capa-cidad 
reflectiva, etcétera, las podre-mos 
definir recién en ese momento. 
Incluso ¡pueden variar en el trans-curso 
de la competencia! Por lo tan-to, 
debemos tener algún mecanismo 
que nos permita testear los valores y 
modificar nuestro programa para 
que se comporte en forma correcta. 
Ahora, ¿cómo hacemos para saber si 
el sensor se activa o no, o cuál es el 
rango analógico en el que se debe ac-tivar? 
Con el control que hemos re-alizado, 
pareciera que no tenemos 
forma alguna de monitorear los va-lores 
de lectura. Pero vamos a ver al-gunos 
trucos que nos pueden ayudar. 
La primera forma de monitorear un 
sensor digital es usar el led que hemos 
conectado para nuestras pruebas. Por 
ejemplo, con el siguiente programa 
podemos verificar si el sensor CNY70 
detecta la variación entre negro y 
blanco. Consideramos, como vimos 
en el Capítulo 7, que hemos conectado 
el led infrarrojo en RA1 y el sensor 
Presentarse a competir 
ROBOLIGA 
propiamente dicho en RA2. Por lo 
tanto, tendremos que configurar RA1 
como bit de salida, y RA2 como bit 
de entrada. Un detalle fundamental a 
tener en cuenta es que la resistencia 
que va del sensor a +5 puede ser mo-dificada 
para obtener mayor o menor 
sensibilidad en la detección. 
program testCNY 
TRISB=0 ‘Declaro RB 
de salida 
TRISA.1=0 ‘RA1 (donde 
está el led infrarrojo) 
de salida 
PORTA.1=1 ‘Lo enciendo 
TRISA.2=1 ‘Declaro RA2 
de entrada 
while true 
203 
❘❘❘ 
La Roboliga consiste en tres eventos que 
se realizan en el mes de noviembre en 
Argentina: la Olimpíada Argentina de 
Robótica, la Feria de Proyectos de Robó-tica 
y Control Automatizado, y el Encuen-tro 
Docente para la Enseñanza de Robó-tica. 
Está dirigido a los alumnos de es-cuelas 
primarias y medias, se organiza 
desde el año 2000 y se cuenta con la pre-sencia 
de más de 40 escuelas de todo el 
país. Para tener más información pode-mos 
visitar www.roboliga.edu.ar.
if PORTA.2 = 1 then 
‘Si RA2 está 
encendido, apago 
el led 
PORTB.3=0 
else 
PORTB.3=1 
‘Si no, lo enciendo 
end if 
delay_ms(200) 
wend 
end. 
También podemos utilizar un parlan-te 
piezoeléctrico para generar diversos 
sonidos que nos permitan conocer el 
valor de un sensor (Figura 4). Éstos se 
pueden conectar directamente, una de 
sus conexiones a GND y la otra a un 
pin. Para generar sonido desde mikro- 
Basic podemos utilizar las siguientes 
funciones de librería: 
● Sound_Init(dim byref port as byte, 
dim pin as byte): inicializa el pin 
para salida. Por ejemplo: Sound_ 
Init (PORTB, 2). En este caso, se en-carga 
de inicializar RB2. 
● Sound_Play(dim periodo_div_10 as 
byte, dim num_de_periodos as word): 
el primer parámetro indica la fre-cuencia, 
y para simplificar su defini-ción, 
sólo debemos dividir la fre-cuencia 
que queramos por 1 y mul-tiplicar 
el resultado por 100000 pa-ra 
obtener el valor final. El segundo 
parámetro indica la cantidad de ci-clos 
de duración del sonido. 
De esta forma, podemos vincular el 
valor de un sensor analógico con di-ferentes 
sonidos, y así monitorear el 
comportamiento de los sensores. 
Por último, lo más interesante puede 
ser conectar un display a nuestro mi-cro 
(Figura 5). El problema es que pa-ra 
controlarlo utilizamos casi todos 
los puertos de salida. Será necesario 
utilizar un micro aparte para tener es- 
9. SALIR AL RUEDO 
❘❘❘ 
El Consejo Latinoamericano de Robótica (LARC) tiene como objetivo organizar, con 
la colaboración de organismos locales, competencias y simposios de robótica lati-noamericanos 
204 
CONSEJO LATINOAMERICANO DE ROBÓTICA IEEE – RAS 
a nivel regional y nacional de manera anual. El consejo promueve la 
programación de estos eventos, define las bases para las competencias, e interactúa 
con los voluntarios locales que luego desarrollan estas actividades por sí mismos. 
Este consejo trabaja principalmente en Internet, y está apoyado por la sociedad de 
robótica y automatización RAS que pertenece a la IEEE mediante los capítulos pro-fesionales 
y estudiantiles de la región. Para más datos podemos visitar www.ewh. 
ieee.org/reg/9/ robotica/indexsp.htm.
te tipo de salida, si así lo deseamos. 
Escapa al alcance de este libro, pero se 
puede encontrar mucha información 
vinculada a este tema en Internet. 
Problemas de programación 
Uno de los problemas más comunes 
cuando sensamos el mundo que nos 
rodea con nuestro robot, es la nece-sidad 
de estar atentos a dos o más 
sensores al mismo tiempo. Por ejem-plo, 
si realizamos un seguidor de lí-nea 
con un par de sensores y además 
tenemos un sensor de tacto en caso 
de que encontremos un objeto de-lante 
de nosotros, las estructuras de 
decisiones se vuelven complejas o 
Presentarse a competir 
Figura 4. Buzzer piezoeléctrico para 
analizar valores de sensores analógicos. 
205 
Figura 5. Capacímetro digital basado en un 16F84 
con display de LCD, desarrollado por Sonytel Argentina.
imposibles para representar la com-binación 
de todos los estados posi-bles 
de las entradas. Es por eso que a 
continuación presentaremos un me-canismo 
muy utilizado en los proce-sadores: 
las interrupciones. 
La idea de una interrupción es po-der 
vincular algún proceso interno 
del micro, como el estado de un pin 
de entrada o el valor de un timer, 
con un procedimiento de nuestro 
programa. Es decir, ante un cambio 
en el estado del pin o ante el des-bordamiento 
de un timer, se ejecuta 
el procedimiento indicado. Por 
ejemplo, de esta manera podemos 
asociar nuestro sensor principal a un 
bit con interrupción, de forma tal 
que cuando se active, se invoque en 
forma automática al procedimiento 
asociado, se atienda la necesidad que 
presenta el sensor, y luego volvamos 
a nuestra rutina habitual. En el caso 
del seguidor de línea con obstáculos, 
el programa principal ejecuta el se-guimiento 
y al bit de interrupción le 
asociamos nuestro sensor de tacto. 
Por lo tanto, si encuentra un obstá-culo, 
se detiene el seguimiento de la 
línea, se esquiva el objeto, y al vol-ver 
sobre la línea se continúa con el 
programa principal. 
Las interrupciones pueden produ-cirse 
por alguna acción externa, co-mo 
la activación de un sensor, o por 
una interna, como el caso de un ti-mer 
o desbordamiento de un regis-tro. 
En el 16F84/8 tenemos cuatro 
fuentes de interrupciones: 
● RB0/INT (externa). 
● Pines RB4 a RB7, al cambiar de 
estado si están configurados como 
entrada (externa). 
● Desbordamiento del registro TMR0, 
cuando pasa de 255 a 0 (interna). 
● Al completar la escritura de la EE-PROM 
(interna). 
En nuestro caso, las tres primeras 
son las que podremos aprovechar en 
nuestro robot. Cuando se producen, 
se modifica el estado de un flag de 
interrupciones, lo que nos permite 
saber cuál se ha producido. Este flag 
es el registro INTCON, donde el bit 
que cambia es el siguiente: 
9. SALIR AL RUEDO 
❘❘❘ 
Es la competencia de robótica más gran-de 
206 
ROBOGAMES 
del mundo. En su edición de 2007 se 
presentaron setenta categorías distin-tas, 
desde el simple seguidor de líneas 
hasta combates cuerpo a cuerpo entre 
robots. Algunas de ellas son con robots 
controlados por humanos y en otros ca-sos, 
el desafío es autónomo. Ese año es-tuvieron 
representados veintiocho paí-ses 
de todos los continentes, y para el 
año que viene se esperan alrededor de 
veinte países más.
● Bit 1, INTF, cuando se produce una 
interrupción por RB0. 
● Bit 0, RBIF, cuando se produce por 
cambio en RB4 a RB7. 
● Bit 2, T0IF, cuando se produce por 
TMR0. 
Para tener una mirada general del re-gistro 
INTCON y su funcionalidad, 
podemos observar la Tabla 1. 
Los bits 3 a 7 nos permiten determi-nar 
si se atenderá la interrupción co-rrespondiente 
o no (0: deshabilitado; 
1: habilitado). En el caso de GIE, si 
está en 0 se deshabilitan todas las in-terrupciones. 
Los bits del 0 al 2 se en-cienden 
en el caso de que se produz-ca 
la interrupción en cada caso. 
Cuando se produce una interrupción y 
el programa salta a la rutina que la 
atiende, como veremos más adelante, 
podemos examinar los bits del 0 al 2 
para saber la fuente que la ha causado. 
El GIE se pondrá automáticamente en 
0 para no atender otra interrupción al 
Presentarse a competir 
mismo tiempo. Al finalizar nuestra ru-tina 
de atención, debemos volver a po-ner 
en 0 el flag correspondiente (0 a 2) 
para que no se vuelva a producir la lla-mada. 
El retorno de la rutina nos ha-bilitará 
de nuevo GIE para una nueva 
llamada. Sólo el contador de programa 
será almacenado en el momento de lla-mar 
a la rutina, para luego saber dón-de 
retornar, con lo cual es problema 
nuestro almacenar el estado de otros re-gistros 
que puedan llegar a modificarse 
en la ejecución de nuestra rutina. 
A continuación presentamos un 
ejemplo general de código para la 
atención de las interrupciones por 
cambio de estado en RB4 a RB7. De 
esta manera, podemos tener senso-res 
conectados a uno de estos 4 pi-nes, 
de forma tal que el programa 
general se ejecute, y cuando se pro-duzca 
la activación de alguno de los 
sensores, la rutina de la interrupción 
atienda la llamada y luego retorne al 
punto en el que se encontraba. 
No. NOMBRE DESCRIPCIÓN 
7 GIE Global Interrupt Enable (Habilitación general de interrupciones). 
6 EEIE EEPROM Write Interrupt Enable (Habilitación de interrupción por escritura de la EEPROM). 
5 T0IE TMR0 Interrupt Enable (Habilitación de interrupción del timer TMR0). 
4 INTE INT Interrupt Enable (Habilitación de interrupción de RB0/INT). 
3 RBIE RBIF Interrupt Enable (Habilitación de interrupción por cambio en RB4 al RB7). 
2 TOIF TMR0 Overflow Interrupt Flag (Bandera de interrupción por desbordamiento de TMR0). 
1 INTF INT Interrupt Flag (Bandera de interrupción de RB0/INT). 
0 RBIF RB Port Interrupt Flag (Bandera de interrupción por cambio en RB4 al RB7). 
207 
Tabla 1. Funcionalidad del registro INTCON.
program interrupcionRB 
dim antRB as byte 
sub procedure interrupt 
‘Rutina de atención de 
interrupciones 
if (INTCON.RBIF = 1) then 
‘Cambio en RB4-RB7 
select case (antRB xor 
PORTB) ‘Se fija cuál 
cambió comparando con el 
estado anterior de PORTB 
case %10000000 ‘Cambió 
RB7 
if ((PORTB and %10000000) 
= 0) then 
‘RB7 desactivado 
‘Código a ejecu 
tarse cuando se desactiva RB7 
else ‘RB7 activado 
‘Código a 
ejecutarse cuando 
se activa RB7 
end if 
case %01000000 ‘Cambió 
RB6 
if ((PORTB and %01000000) 
= 0) then 
‘RB6 desactivado 
‘Código a 
ejecutarse cuando 
se desactiva RB6 
else ‘RB6 activado 
‘Código a 
ejecutarse cuando 
se activa RB6 
9. SALIR AL RUEDO 
208 
Figura 6. Subir una rampa mientras se sigue una línea, 
cambia el comportamiento del robot.
end if 
case %00100000 ‘Cambió 
RB5 
if ((PORTB and %00100000) 
= 0) then ‘RB5 
desactivado 
‘Código a 
ejecutarse cuando 
se desactiva RB5 
else ‘RB5 activado 
‘Código a 
ejecutarse cuando 
se activa RB5 
end if 
case %00010000 ‘Cambió 
RB4 
if ((PORTB and %00010000) 
= 0) then ‘RB4 
desactivado 
‘Código a ejecutar 
se cuando se 
desactiva RB4 
else ‘RB4 activado 
‘Código a 
ejecutarse cuando 
se activa RB4 
end if 
end select 
antRB = PORTB ‘Almaceno 
el estado actual de PORTB 
para compararlo luego 
INTCON.RBIF = 0 ‘Reseteo 
el flag de la interrupción 
end if 
end sub 
main: 
TRISB = %11110001 ‘RB 0 
entrada, 1-3 salidas, 
4-7 entradas 
INTCON = %10001000 
‘ Habilito interrupciones 
en general y las de RB4 a 7 
PORTB = 0 ‘ Valor inicial 
de PORTB 
Presentarse a competir 
✱ 
LAS INTERRUPCIONES 
Las interrupciones son un mecanismo habitual en las computadoras para que los 
dispositivos le avisen al CPU que deben ser atendidos. De esta manera, el procesa-dor 
no tiene que estar atento a las necesidades de éstos, y simplemente procesa la 
información entrante en el momento en que se lo solicitan. En el momento en que 
atiende una interrupción, almacena el estado del procesamiento en ese instante, y 
luego de atenderla, continúa exactamente en el punto en el que había dejado el pro-ceso. 
Cuando no existía este mecanismo, el CPU debía dedicar mucho tiempo para 
verificar si era necesaria esa atención. Al pasar la responsabilidad a los dispositi-vos, 
209 
el rendimiento del CPU es mucho mayor.
antRB = 0 ‘ Valor inicial 
de estado previo de PORTB 
while(true) 
{ 
‘Mientras no se 
produzca una interrupción 
el programa se ejecuta en 
un loop infinito 
‘Aquí va el código 
que atiende a la 
tarea principal 
} 
end. 
Con este ejemplo general, práctica-mente 
puede aplicarse el uso de in-terrupciones 
en todos los casos en 
los que sea necesario. 
Pruebas tradicionales para 
robots autónomos 
A continuación presentaremos un 
conjunto de pruebas clásicas para los 
robots autónomos móviles, junto 
con algunos consejos desde el punto 
de vista mecánico, electrónico y de la 
programación. Para construir las pis-tas 
de prueba, aconsejamos utilizar 
lona vinílica blanca y realizar los cir-cuitos 
con pintura negra especial pa-ra 
esta superficie. Puede ser costoso 
pero es más sencillo de transportar 
que la madera u otros materiales. En 
el peor de los casos, unas buenas im-presiones 
en láser empalmadas con 
cinta transparente pueden ser sufi-cientes. 
Lo importante es que los co-lores 
sean muy distinguibles, y que 
no haya ondulaciones o muescas en 
la pista que traben el funcionamien-to 
de nuestro robot. 
Seguidor de línea 
Ésta es la primera prueba por exce-lencia. 
En principio, comenzaremos 
por utilizar un solo sensor de luz que 
apunte hacia abajo para recorrer la 
pista. Al momento de construir la 
mecánica de nuestro robot, debe-mos 
tener en cuenta que debe girar 
con facilidad. Esto es fundamental 
cuando las curvas son muy cerradas. 
Por lo tanto, la arquitectura más 
9. SALIR AL RUEDO 
210 
Figura 7. Robot seguidor de una línea 
muy delgada. ¡Eso es complicado!
económica y confiable para este de-safío 
es la de las ruedas laterales con 
movimiento diferencial. 
Si se cuenta con un único sensor, la 
solución más sencilla es la que co-nocemos 
como ciego con bastón, 
dado que aplica la misma mecánica 
que los no videntes cuando tantean 
paredes o el piso con su bastón blan-co. 
Ponemos el robot a la derecha de 
la línea, con el sensor que apunte a 
blanco, encendemos el motor dere-cho 
(MD), y dejamos apagado el iz-quierdo 
(MI). Cuando el sensor de-tecta 
negro, invertimos el encendido 
de los motores, dejamos apagado el 
MD y encendido el MI. 
Allí esperamos hasta encontrar blan-co 
y así sucesivamente. Es un meca-nismo 
sencillo, efectivo, pero muy 
lento (Figura 8). Para mejorar la velo-cidad 
Presentarse a competir 
de recorrido con un único sen-sor, 
si la línea negra a seguir es del-gada, 
podemos realizar el siguiente 
algoritmo: 
1) Ponemos el robot con el sensor a 
la derecha de la línea negra. 
2) Encendemos el MD y apagamos 
el MI. 
3) Esperamos a ver negro con el sensor. 
4) Esperamos a ver blanco con el 
sensor. 
5) Encendemos el MI y apagamos el 
MD. 
6) Esperamos a ver negro con el sensor. 
7) Esperamos a ver blanco con el 
sensor. 
8) Saltamos al paso 2. 
De esta manera, mejoramos la veloci-dad 
de recorrido, pero es más sensible 
a las curvas cerradas (Figura 9). 
211 
Figura 8. 
Método de 
seguimiento de 
líneas versión 1. 
Figura 9. 
Método de 
seguimiento de 
líneas versión 2.
Si podemos contar con dos sensores, 
las mejoras pueden ser considerables. 
En este caso, ubicamos un sensor del 
lado izquierdo de la línea y otro del la-do 
derecho, ambos sobre blanco. En el 
programa principal, sólo tenemos un 
ciclo infinito con los dos motores 
prendidos. Además, conectamos los 
sensores a alguno de los pines de RB4 
a RB7, para atenderlos mediante una 
interrupción. Cuando uno de los dos 
vea negro, ésta se lanzará. Analizamos 
cuál de los dos cambió de estado, y de-finimos 
los estados de los motores de 
manera tal que el robot gire para el la-do 
correspondiente hasta que el sensor 
vuelva a ver blanco. Allí retornamos de 
la interrupción y se vuelven a encender 
ambos sensores. Este mecanismo es 
muy efectivo, y podemos mejorarlo 
con más sensores, y usar algunos sobre 
negro y otros sobre blanco. 
ROBOCUP JUNIOR 
Si la línea posee espacios en blanco 
(gaps), nos conviene utilizar un me-canismo 
de un solo sensor. Además, 
debemos activar el timer 0 y esta-blecer 
que si durante determinado 
período no se ve negro con alguno 
de los dos sensores, el robot debe 
avanzar en línea recta hasta encon-trar 
negro nuevamente (Figura 11). 
Otra prueba típica es el seguimiento 
de una línea con obstáculos. En este 
caso, podemos sumar un sensor de to-que 
en el frente del robot, también 
conectado a una de las entradas que 
activan interrupciones. De esta ma-nera, 
ante la detección del objeto, de-tenemos 
el seguimiento de la línea, es-quivamos 
el obstáculo y, al volver so-bre 
la línea negra, retomamos la ruti-na. 
Una precaución a tomar es que 
9. SALIR AL RUEDO 
Figura 10. Sensores 
en un robot seguidor de línea 
creado por David Cook. 
212 
❘❘❘ 
La RoboCup Junior es una división de la 
RoboCup dedicada a estimular el estudio 
de la robótica en los jóvenes de hasta 19 
años, y organiza las competencias para 
estas edades dentro de la RoboCup. Los 
desafíos presentados son tres: fútbol, 
rescate y danza. Está enfocado en la 
educación y no en la competencia. Los 
robots que participan deben ser autóno-mos 
y deben cumplir con límites de pe-so, 
tamaño, etcétera. Su sitio oficial es 
www.robocupjunior.org.
cuando volvamos sobre la línea, el ro-bot 
quede en una posición adecuada 
para continuar con el seguimiento. 
¡La luz, la luz, he visto la luz! 
Otro desafío típico está relacionado 
con la búsqueda o el seguimiento de 
una fuente de luz. El problema más 
sencillo es posicionar el robot en un 
lugar y que gire hasta encontrar una 
luz que hemos ubicado cerca de él. 
Para ello, es necesario utilizar un sen-sor 
analógico que nos permita detec-tar 
los diferentes grados de luminosi-dad 
que tenemos en el ambiente (y 
por lo tanto, el 16F88 por su con-versor). 
El robot debe tomar el valor 
del sensor en la posición en la que se 
encuentra y girar lentamente en al-guno 
Presentarse a competir 
de los dos sentidos. Si aumen-ta 
el valor de luz hacia ese lado, man-tiene 
su giro. Si no, intenta para el 
otro lado. En el momento en que al 
girar para ambos lados disminuya el 
valor de luz, es que hemos encontra-do 
la fuente de luminosidad. 
Otra prueba algo más compleja es se-guir 
una luz originada por una linter-na 
o por alguna pelota que emita una 
señal infrarroja, como las que se utili-zan 
en fútbol de robots junior. Para 
ello es útil que usemos dos sensores 
analógicos conectados a pines de este 
tipo. Si el valor de lectura de ambos 
sensores supera cierto umbral, consi-deramos 
que la fuente de luz está fren-te 
al robot y nos dirigimos hacia de-lante. 
Si la diferencia entre el valor de 
213 
Figura 11. Seguimiento de línea con detección 
de víctimas y saltos en las marcas (Roboliga).
9. SALIR AL RUEDO 
uno y otro sensor es grande, giramos 
hacia el lado donde se recibe el mayor 
valor. Si no hay una diferencia impor-tante 
y no están ambos iluminados, 
consideramos que la luz está detrás y 
giramos en cualquiera de los dos sen-tidos. 
Podríamos seguir con muchas 
pruebas de este tipo, como realizar 
214 
un robot insecto que busque el lugar 
con mejor luz de la sala, otro que no 
se caiga de una mesa, etcétera. ¡Todo 
queda librado a nuestra imaginación! 
Como hemos visto, a medida que 
nuestras pruebas se vuelven más 
complejas, es necesario un micro 
más poderoso, como el 16F88. 
Figura 12. Competencia de rescate de la 
Roboliga, Olimpíada Argentina de Robótica. 
✱ 
BEAM ROBOTICS (ROBOTS BEAM) 
BEAM es el acrónimo de Biology, Electronics, Aesthetics and Mechanics (Biología, 
Electrónica, Estética y Mecánica). Es un término que se refiere a la construcción de 
robots que usan circuitos análogos en vez de digitales, que tienen un diseño simple 
y que imitan a los organismos de la naturaleza. Los circuitos analógicos imitan a los 
bloques biológicos como las neuronas. Las tres reglas principales son: usar el me-nor 
número de elementos electrónicos (y sencillos); reciclar y reutilizar componen-tes; 
y usar sistemas de energía radiante, como la energía solar. Dentro de los di-versos 
diseños realizados, es un clásico el Phototrope (fotótropo), un pequeño ro-bot 
que busca la luz dentro de un ambiente o escapa de ésta.
Luchador de sumo 
Una de las competencias que más 
apasionan a los participantes, y que 
no exige demasiada capacidad de 
procesamiento por parte del robot, es 
la lucha de sumo. Hay diferentes re-glamentos 
en el mundo del sumo 
robótico. Es interesante conocer el 
reglamento del Campeonato Uru-guay 
o de Sumo de Robots, organi-zado 
por el Instituto de Computa-ción 
de la Facultad de Ingeniería de 
la Universidad de la República de 
Uruguay. Éste se basa en el Torneo de 
sumo de robots FSI-ALL de Japón. 
Este campeonato es muy interesante, 
y en el sitio (www.fing.edu.uy/inco/ 
eventos/sumo.uy/index.html) po-demos 
bajar un simulador y templa-tes 
en diferentes lenguajes para po-der 
jugar en nuestra computadora. 
Luego, si deseamos participar de la 
competencia, podemos llevar nues-tro 
propio robot, o utilizar uno pro-visto 
por los organizadores, que tie-ne 
Presentarse a competir 
Figura 13. Competencia de Sumo 
de la Universidad Tecnológica Nacional 
de Bahía Blanca, Argentina. 
las mismas características que el 
utilizado en el simulador. 
La arena de competencia se llama 
Dohyo. Es un cilindro de 5 cm de 
altura y 154 cm de diámetro de un 
color distinto al blanco y al marrón 
(en general, negro). Las líneas de 
inicio, donde se ubican los robots en 
el comienzo de la lucha, se indican 
por líneas marrones de 2 cm por 20 
cm, a 20 cm del centro del Doyho. 
❘❘❘ 
CAMPEONATO DE SUMO ROBÓTICO DE URUGUAY 
Desde el año 2004, el Instituto de Computación de la Facultad de Ingeniería de la Uni-versidad 
de la República de Uruguay organiza el campeonato de sumo robótico. El ob-jetivo 
de esta competencia es crear un espacio para investigar diversos aspectos de la 
robótica móvil autónoma. Las características particulares que presenta esta prueba 
son: un ambiente muy dinámico, comportamiento en tiempo real, y reglas sencillas y 
precisas. Una ventaja que tiene este campeonato es que no necesitamos de un robot 
para participar, dado que está provisto por la organización. Antes de la competencia, 
podemos programar el comportamiento de nuestro representante mediante un simu-lador 
215 
y luego, en el momento de luchar, volcamos esa estrategia a un robot real.
El borde de la arena es de 5 cm de 
color blanco. Fuera del Doyho, el 
piso será de cualquier color excepto 
blanco o marrón. Cada categoría en 
particular determinará un límite pa-ra 
el tamaño y el peso del robot. 
Una partida consta de tres sets de un 
minuto cada uno. El primer partici-pante 
en ganar dos puntos yuko (ya ve-remos 
qué son) es el ganador de la par-tida. 
Cuando ningún participante reci-be 
puntos, el jurado decide quién es el 
ganador. Para comenzar el partido, los 
robots se ubican sobre las líneas de ini-cio 
o detrás de éstas, para lo cual dis-ponen 
de dos minutos. El robot no 
puede realizar ningún movimiento an-tes 
de recibir la señal de comienzo. 
Los puntos yuko se consiguen por me-dio 
de alguna de las siguientes accio-nes: 
cuando un robot saca a su opo-nente 
del Doyho, cuando el oponente 
sale del Doyho por sus propios medios 
o cuando un robot es descalificado o 
recibe dos advertencias o más. 
Un set se puede cancelar y repetir si 
los robots se encuentran trabados de 
forma tal que no exista movimiento 
posible, a criterio del jurado. 
Si ambos robots tocan el exterior del 
Doyho al mismo tiempo o ante cual-quier 
otra condición en la que el ju-rado 
no pueda definir un ganador, el 
set se reinicia, se ubican los robots 
en la línea de inicio, y se cuenta con 
dos minutos para hacerlo desde la 
indicación del árbitro. 
9. SALIR AL RUEDO 
216 
Figura 14. Competencia tradicional de sumo en la Roboliga.
En resumen, éstas son las reglas bási-cas 
de juego. Como vemos, las reglas 
no son complejas y esencialmente es 
un desafío mecánico y electrónico, 
con algoritmos sencillos para el con-trol 
del robot. Los problemas que de-bemos 
resolver son tres: cómo detec-tar 
la línea límite del Doyho para no 
salir de ella (y que esa detección sea 
en toda la circunferencia del robot), 
cómo detectar la distancia al con-trincante 
para poder abalanzarnos so-bre 
él y cómo detectarlo cuando lo 
tocamos para ir hacia él o huir de él, 
según convenga. No agregamos el te-ma 
del posicionamiento dentro del 
Doyho porque es muy complejo de 
realizar con la información tan pobre 
que nos brinda la arena. En realidad, 
sólo es absolutamente necesario re-solver 
el primer problema para so-brevivir 
en la lucha. En el caso de la 
detección del oponente, si no desea-mos 
hacerlo, podemos recorrer en 
forma aleatoria el Doyho de un lado 
a otro para ver si logramos cruzar al 
otro robot en algún momento. 
Presentarse a competir 
Desde el punto de vista mecánico, en 
general, si un robot tiene mucha 
fuerza, con seguridad será lento, co-mo 
vimos en los capítulos anteriores. 
Por lo tanto, recorrer toda la arena 
será complicado. Es mejor tener un 
sistema de detección del contrincan-te 
para ir hacia donde se encuentra. 
Para ello, es bueno y no es complica-do 
implementar el uso de un sensor 
de ultrasonido. Sólo con detectar la 
presencia (es decir, hacer un uso di-gital 
del sensor) nos alcanza para po-ner 
en movimiento el robot hacia el 
oponente. Con respecto a la detec-ción 
de los límites del Doyho, alcan-za 
con un sensor de luz de los que he-mos 
usado. Tenemos que tener en 
cuenta que podemos encontrarnos 
con el límite no sólo si vamos hacia 
delante, dado que el contrincante 
puede empujarnos. Por eso sugeri-mos 
usar varios sensores que recorran 
el borde del robot. También necesita-remos 
sensores de tacto que rodeen a 
nuestro representante, de forma tal 
que al ser presionados por uno de los 
❘❘❘ 
El grupo de robótica del Departamento de Ingeniería Eléctrica de la Universidad Tecnoló-gica 
Nacional de Bahía Blanca, Argentina, todos los años organiza un campeonato de su-mo 
de robots. Se presentan tres categorías, entre las que se destaca la categoría libre. El 
Doyho en este caso es de 1,75 m y los robots deben poder entrar en una caja de 20 cm por 
20 cm. Además, no pueden superar los 3 kg de peso. El procesamiento se debe realizar 
por un microcontrolador de 4 Kb máximo y no se permite el uso de microprocesadores. 
Para mayor información podemos visitar www.frbb.utn.edu.ar/robotica/. 
217 
COMPETENCIA DE SUMO DE ROBOTS EN ARGENTINA
costados, huyamos o empujemos con 
más fuerza según la estrategia que ha-yamos 
desarrollado. 
Un tema fundamental en la presta-ción 
mecánica de nuestro luchador 
es la potencia de los motores. Según 
los límites que presente la categoría, 
nos va a convenir utilizar los moto-res 
más potentes posibles, junto con 
un buen sistema de reducción. Para 
ello tendremos que contar con ba-terías 
poderosas, y por lo tanto, pe-sadas. 
Lógicamente, todo dependerá 
de cuáles sean los pesos y los ta-maños 
que nos impongan las reglas 
del juego. Pero no dudemos en in-vertir 
en ello si queremos triunfar. 
Otras pruebas clásicas 
A continuación describiremos otras 
pruebas clásicas de robots móviles 
autónomos, que podremos profun-dizar 
si buscamos en la Web. En es-te 
listado, dejamos el fútbol de ro-bots 
para el capítulo siguiente. 
Tiralatas: en una arena rectangular o 
circular. Se ubica un conjunto de la-tas 
con cierto peso que el robot debe 
sacar en el menor tiempo posible. 
Laberinto: el robot debe encontrar la 
salida del laberinto en el menor tiem-po 
posible. En general, la salida está 
indicada con una luz, de manera tal 
que el robot pueda intentar realizar el 
camino más corto hacia ésta. 
Carrera de postas: un conjunto de 
robots debe comunicarse entre sí pa-ra 
completar un recorrido definido 
por una línea negra. 
Rescate: este tema incluye infinidad 
de pruebas (Figura 15). 
Esencialmente, se basa en dos de-safíos: 
detectar o rescatar un con- 
9. SALIR AL RUEDO 
218 
Figura 15. 
Competencia 
de rescate del 
Campeonato 
Latinoamericano 
de Robótica IEEE.
junto de víctimas en una zona de de-sastre, 
o rescatar víveres y medicinas 
que han caído en una zona conta- 
Presentarse a competir 
minada para llevarlos a una zona li-berada. 
Además, estas pruebas pue-den 
ser solitarias o colaborativas. 
219 
Figura 16. Pista 
de la competencia 
de rescate de la 
RoboCup Junior. 
… RESUMEN 
Ha llegado la hora de sacar nuestro robot al ruedo. Todas las pruebas son dife-rentes, 
pero hay un conjunto de características o de problemas habituales. Estos 
problemas pueden ser de índole mecánica, como el tipo de arquitectura elegido 
para nuestro robot o su punto de equilibrio. También tendremos problemas con 
los sensores, dado que el ambiente en el que se desarrollan los desafíos habi-tualmente 
difiere del que utilizamos para preparar a nuestros robots. Es por eso 
que tenemos que utilizar mecanismos robustos que puedan trabajar sobre valo-res 
relativos del ambiente y no con valores absolutos. Por otra parte, la ubica-ción 
de los sensores debe aislar al máximo las perturbaciones del entorno. Con 
respecto a la programación, presentamos el uso de interrupciones, que nos per-mitirán 
estar atentos a más de un sensor en nuestro programa. De las pruebas 
clásicas, el seguimiento de la línea, la búsqueda o el seguimiento de luz, y el su-mo 
de robots, son las que nos permitirán poner en juego toda la capacidad y las 
características de nuestro robot.
✔ 
ACTIVIDADES 
TEST DE AUTOEVALUACIÓN 
1 ¿Cuáles son los problemas mecánicos 
220 
que puede presentar un robot en una 
competencia? 
2 ¿Qué mecanismos tenemos para lo-grar 
que nuestro robot sea menos 
sensible a los cambios del ambiente 
en el que compite? 
3 ¿De qué manera podemos visualizar el 
comportamiento de los sensores? 
¿Cuál se usaría en un sensor digital y 
cuál en uno analógico? 
4 ¿Para qué sirven las interrupciones? 
5 ¿Cuáles son los tipos de interrupciones 
que podemos encontrar en un 16F84/88? 
6 ¿Qué función cumple el registro INT-CON? 
7 Describa los algoritmos tradicionales 
de seguimiento de línea. 
8 ¿Cuáles son los problemas que debe-mos 
afrontar en un robot luchador de 
sumo? 
EJERCICIOS 
1 Modifique el robot y prográmelo para 
que siga una línea negra con el método 
del ciego con bastón. Probar con dife-rentes 
grados en las curvas. 
2 Realice un robot con dos sensores pa-ra 
realizar el seguimiento de la línea 
lo más rápido posible. Compare los 
tiempos con los logrados en el ejerci-cio 
anterior. 
3 Ponga un obstáculo sobre la pista del 
punto anterior y realice un robot que 
pueda esquivarlo. El obstáculo debe 
ser algo pesado, como una caja con 
una piedra dentro. 
4 Realice un robot que siga la luz de una 
linterna. 
5 Realice un robot que recorra una mesa 
sin caerse de ella. 
6 Realice un robot con un sensor de ul-trasonido 
que, ante la cercanía de un 
objeto, cambie de dirección.
Robótica 
Jugar al fútbol 
Capítulo 10 
El fútbol de robots es una actividad 
donde se presentan todos los problemas 
de la robótica situada, en un marco 
divertido, mediático y de reglas 
conocidas a nivel internacional. 
Es por eso que hemos decidido cerrar 
nuestro libro con este capítulo, al 
presentar las reglas y las características 
del desafío, para invitarlos a sumarse 
a la investigación dentro de esta 
maravillosa rama de la robótica. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Fútbol de robots 222 
Características del fútbol 
de robots 222 
Ligas nacionales e internacionales 
de fútbol de robots 232 
Modificaciones para 
que nuestro robot pueda jugar 242 
Una pelota infrarroja 244 
Resumen 245 
Actividades 246
FÚTBOL DE ROBOTS 
Para el año 2050, desarrollar un 
equipo de robots humanoides com-pletamente 
autónomos, que en un 
partido de fútbol puedan vencer al 
equipo campeón mundial humano. 
Éste es el lema de la organización 
RoboCup, una de las dos ligas mun-diales 
de fútbol de robots. Puede pa-recer 
un lema de ciencia ficción, pe-ro 
puede dejar de serlo si realizamos 
el siguiente cálculo. En el momento 
en el que se lee este libro, ¿cuánto 
falta para el año 2050? ¿Cuarenta y 
tres, cuarenta y dos años? Bien. Aho-ra 
restemos del año actual la canti-dad 
de años que faltan para el 2050. 
¿Cómo eran las computadoras en esa 
época? ¿No era de ciencia ficción 
pensar en lo que tenemos hoy en día, 
los robots que se han desarrollado, 
Internet, las notebooks, los celula-res, 
etcétera? Entonces, si vemos las 
cosas desde este punto de vista, tal 
vez pensar en un equipo de fútbol de 
robots que jueguen un buen partido 
de fútbol no es locura. 
Por lo tanto, no perdamos el tiem-po, 
empecemos desde ahora a pre-parar 
a nuestro pequeño. Enseñé-mosle 
los rudimentos de este depor-te 
para que comience con sus prác-ticas 
de tiro libre, de penales, de 
amagues y fintas. Quién nos quita la 
ilusión de que en un futuro no muy 
lejano, lo acompañemos por todo el 
mundo en sus viajes con la Selección 
Mundial de Fútbol de Robots. 
Características del fútbol 
de robots 
Dentro del campo de la robótica 
autónoma móvil, en los últimos 
años ha surgido una disciplina co-nocida 
como robótica situada. Su 
objeto de estudio es el desarrollo de 
robots autónomos móviles en am- 
10. JUGAR AL FÚTBOL 
222 
Figura 1. Podemos imaginar 
un equipo de robots que enfrenten 
a un equipo humano en el año 2050. 
Hagamos apuestas.
bientes muy dinámicos. Ejemplos 
de esto son los vehículos terrestres, 
aéreos y acuáticos, los robots enfer-meros 
y todos aquellos que tengan 
que desenvolverse en un mundo que 
cambia segundo a segundo. 
El fútbol de robots es el deporte que 
presenta los problemas más impor-tantes 
que podemos encontrar en la 
robótica situada y aunque existen 
diversas categorías donde estos pro-blemas 
pueden ser más o menos sig-nificativos, 
de alguna manera u otra, 
están presentes en todas. 
Para hacer una analogía con respec-to 
al fútbol convencional, podemos 
decir que para jugar bien necesita-mos 
las siguientes virtudes: 
● Un buen estado físico: llegar an-tes 
a la pelota, patear fuerte y po-der 
ir de un punto a otro de la can-cha 
en forma veloz, nos permitirá 
tener un control del juego mucho 
más efectivo. 
● Una lectura precisa y veloz del 
juego: es una característica funda-mental 
que el jugador se anticipe 
a la jugada. Por ejemplo, que vaya 
al encuentro de la pelota donde la 
pueda ganar y también quede me-jor 
parado para el gol. O que pue-da 
saber dónde conviene estar pa-rado 
para recibir un pase. 
● Juego colectivo: el equipo no pue-de 
comportarse como un conjunto 
de niños que corre detrás de la pe-lota. 
Fútbol de robots 
OTROS DEPORTES 
Debemos tener un rol que 
cumplir, que ese rol sea dinámico 
y que el conjunto de roles deter-mine 
el comportamiento del equi-po 
optimizado para nuestro objeti-vo 
final: el gol en el arco contrario. 
Éstos son los tres problemas que te-nemos 
en el fútbol de robots, y en 
general en la robótica situada: la ar-quitectura 
de los robots, el sensado 
y el procesamiento de la informa-ción 
del ambiente y el comporta-miento 
colaborativo. A continua-ción 
presentaremos cuáles son las di-ficultades 
en cada uno de ellos y cuá-les 
son las soluciones propuestas. 
223 
❘❘❘ 
No sólo de fútbol viven los robots. Ya se 
están desarrollando nuevas criaturas 
para otros deportes u otras competen-cias 
como el sumo, que ya hemos men-cionado, 
el basquetbol y la lucha libre, 
entre otros. En este último caso, hay 
muchos tipos de torneos pero ¡cuidado! 
En general, las luchas que pasan por la 
televisión no son de robots autónomos, 
sino que están controlados por un ser 
humano. En este caso, se enfrentan 
problemas mecánicos y electrónicos, 
pero se carece de sistemas de inteli-gencia 
y sensado del mundo dado que 
esa función la cumple la persona que 
controla al robot. Por lo tanto, eso no 
es robótica situada.
Arquitectura y navegación 
de los robots 
Como hemos visto antes, con fre-cuencia 
en las competencias tene-mos 
un límite vinculado al peso y el 
tamaño de los robots. En el fútbol 
ocurre lo mismo. Por lo tanto, nues-tro 
objetivo es lograr el robot más 
robusto y más rápido en el pequeño 
espacio que nos brindan. Lamenta-blemente, 
en el caso de la electróni-ca 
y los motores, más pequeño sig-nifica 
más costoso, y es aquí que 
nuestro bolsillo será otro límite que 
deberemos contemplar. 
Con respecto a los robots para fútbol, 
la arquitectura clásica consiste en: pa-tas 
(para ciertas categorías específicas), 
omnidireccional y diferencial. En el 
caso de los robots con navegación om-nidireccional 
(Figura 2), las ventajas son 
conocidas, pero incorporar tres moto-res 
en el espacio que tenemos, más uno 
de un pateador si fuera necesario, es 
complejo y el valor de los motores y las 
ruedas puede ser costoso. 
En general, para comenzar utilizare-mos 
navegación diferencial (Figura 3), 
como la que tenemos en nuestro ro-bot. 
Por lo tanto, tenemos que anali-zar 
cómo realizamos la navegación 
con ruedas diferenciales. Esta navega-ción 
dependerá de la información que 
podemos extraer del ambiente. En el 
caso de los robots más sencillos, pro- 
10. JUGAR AL FÚTBOL 
224 
Figura 2. Un jugador de fútbol del equipo alemán FU-Fighters 
con ruedas omnidireccionales.
bablemente nuestro funcionamiento 
será menos proyectado y calculado, 
más primitivo. Cuando tenemos más 
información del ambiente, como la 
posición X e Y de la pelota, y X, Y y 
la rotación de nuestros robots, pode-mos 
realizar un cálculo de navegación 
más preciso. En este punto tenemos 
dos situaciones que estudiar: la nave-gación 
hacia un punto fijo y hacia un 
punto móvil (como puede ser la pe-lota). 
La diferencia sustancial en los 
dos casos es que en el caso del punto 
móvil, si es posible, debemos realizar 
una proyección del comportamiento 
del punto en el futuro para navegar 
hacia esa proyección, de la misma for-ma 
que cuando nos lanzan un centro 
en el fútbol real corremos hacia don-de 
caerá la pelota, y no detrás de ella. 
De esta manera, el sistema de nave-gación 
para los dos casos será el mis-mo, 
sólo que en el punto móvil nues-tro 
destino final será un punto calcu-lado 
a partir del historial del punto y 
no del estado actual. Desde ya que es-te 
mecanismo sirve para los objetos 
móviles con comportamiento relati-vamente 
lineal, como es el caso de la 
pelota. En el caso de los robots con-trarios, 
no tiene demasiado sentido 
dado que es imposible predecir el fu-turo 
de su comportamiento. 
Un algoritmo de navegación trivial 
es girar hasta ver el punto de desti-no 
(siempre con un umbral de error 
porque si no la misma inercia de 
Fútbol de robots 
PROYECCIÓN DE LA PELOTA 
movimiento nos hará pasar de largo 
en el giro y nos quedaremos oscilan-do 
para corregir el error), y luego del 
giro, avanzar hacia el punto. Al te-ner 
definido un umbral de error, 
cuando avancemos hacia el destino, 
llegará un momento en el que su-peraremos 
ese umbral, y por lo tan-to, 
el robot volverá a girar para co-rregir 
su desvío, y así sucesivamen-te. 
También tendremos que deter-minar 
un umbral de distancia don-de 
consideraremos que hemos llega-do 
al punto para no oscilar yendo y 
viniendo hacia el punto de destino. 
225 
❘❘❘ 
Está claro que en el fútbol es fundamen-tal 
llegar a la pelota lo antes posible. Pa-ra 
ello, es necesario ir hacia el punto de 
cruce con ella que más nos convenga. Es 
decir, proyectar el comportamiento de la 
pelota a futuro para determinar cuál es 
el mejor momento de cruzarla. La line-alidad 
en el movimiento de la pelota ha-ce 
sencillo esto, si no fuera por la pre-sencia 
de las paredes, nuestros robots y 
los contrarios. Con respecto a las pare-des, 
podemos considerarlas en varios 
pasos futuros porque están allí en for-ma 
constante. Pero con respecto a los 
otros robots, después de una proyección 
de 4 ó 5 cuadros, nos conviene dejar de 
tenerlos en cuenta, porque no sabemos 
con precisión dónde estarán ubicados.
La navegación que acabamos de pre-sentar 
no es complicada de imple-mentar, 
pero dista mucho de ser rá-pida 
y eso, en el fútbol, es un pro-blema. 
Para optimizar nuestra nave-gación 
tenemos que hacer un análisis 
profundo de la física implicada en el 
juego. Es decir, tenemos que deter-minar 
cómo funciona la inercia del 
robot, cuánto tarda en alcanzar di-versas 
velocidades, cuánto tarda en 
realizar giros de diversas amplitudes 
partiendo de diferentes estados, etcé-tera. 
En esto influirá la arquitectura 
del robot (más allá de que sea dife-rencial, 
cómo está repartido el peso 
del robot y cómo se ubican las ruedas 
son puntos esenciales), los materiales 
de las ruedas y el piso de la cancha. 
Como vemos, tenemos que invertir 
un largo tiempo de estudio para re-alizar 
pruebas en el campo con el ob-jetivo 
de pulir la navegación. Por úl-timo, 
tenemos que poder desarrollar 
un modelo donde para llegar a un 
punto determinado, en lugar de girar 
y luego ir en forma recta, determine-mos 
velocidades diferentes en las rue-das 
para trazar una curva optimizada 
hacia el destino. Una vez hecho esto, 
podemos seguir nuestro estudio me-diante 
la realización de navegaciones 
donde nos interese con qué ángulo 
llegamos al final, desde qué lado lle-gamos 
al punto, etcétera. 
Sensado y detección del ambiente 
Este punto es fundamental. Aquí te-nemos 
mucho trabajo apasionante 
por delante. En el caso de usar sen-sores 
sencillos, como ultrasónicos, 
sensores de luz, de tacto y otros sen-sores 
locales, la información que ob-tendremos 
es bastante imprecisa. La 
imagen que conseguiremos del am-biente 
no nos permitirá navegar con 
total exactitud. Todo lo que podre-mos 
hacer es buscar la pelota con 
algún sensor, acercarnos a ella, y una 
vez que nos encontramos cerca, in-tentar 
llegar hasta el arco contrario. 
Lo que hemos utilizado para obtener 
mayor precisión en la captación del 
ambiente son los sistemas de visión. 
En este caso, tenemos que realizar un 
delicado equilibrio entre la cantidad 
10. JUGAR AL FÚTBOL 
Figura 3. Ejemplo de robot de fútbol 
con ruedas diferenciales. 
226
de cuadros por segundo que proce-samos 
y la precisión que obtenemos 
al final. Aquí encontramos la gran 
diferencia entre los sistemas de vi-sión 
industriales tradicionales y los 
que tenemos que aplicar en robótica 
situada. En el primer caso, podemos 
tomar mayor tiempo de procesa-miento, 
con lo cual el resultado final 
es mucho más preciso. En nuestro 
juego, tenemos que complementar y 
corregir la información de la cámara 
con datos previos del ambiente y con 
proyección del estado actual en el ca-so 
de los objetos de comportamien-to 
lineal. Y desde ya, renunciar a la 
Fútbol de robots 
precisión si queremos obtener el es-tado 
del ambiente actual, ¡y no el que 
existía hace 30 segundos! 
El sistema de visión puede ser global 
o local a los robots. En el primer caso 
(Figura 4), un procesador externo reali-za 
el procesamiento y luego les envía el 
resultado a los robots para que tomen 
sus decisiones, o directamente éste u 
otro procesador externo, a partir de los 
datos captados, define la estrategia y les 
envía órdenes a los robots como la ve-locidad 
de las ruedas, etcétera. En la vi-sión 
local, cada robot capta el ambien-te. 
Como decíamos antes, si esto se ha- 
227 
Figura 4. Sistema de visión global en una cancha de fútbol de robots. 
Podemos ver las cámaras conectadas en la parte superior.
ce mediante sensores, la calidad de la 
información es bastante baja. Si en el 
robot tenemos un sistema de visión, los 
datos que tenemos del ambiente son 
mayores, pero esto exige que cada ro-bot 
realice el arduo procesamiento de 
la imagen. Por otra parte, la visión lo-cal 
en general es parcial, porque los ro-bots 
apuntan a una dirección determi-nada. 
Para superar esto, es habitual que 
la cámara se apunte hacia arriba y que 
se coloque un espejo cónico o se-miesférico 
en la parte superior para te-ner 
una captura de 360 grados (Figura 
6). La deformación que se produce en 
esta imagen es muy fácil de solucionar. 
Aun así, el robot puede tener informa-ción 
incompleta porque otros le tapan 
la pelota, el arco o algún otro objeto. Es 
10. JUGAR AL FÚTBOL 
228 
Figura 5. Ejemplos de robots seguidores de una pelota infrarroja. 
❘❘❘ 
VISIÓN INDUSTRIAL 
Con un poco más de dinero, podemos ad-quirir 
una cámara de visión industrial con 
salida firewire para que en nuestra com-putadora 
ingresen los datos en forma di-gital 
y no sea necesario un framegrabber 
(prácticamente todas las computadoras 
ya vienen con entrada firewire, y de lo con-trario 
compramos una placa con esa en-trada). 
Un aspecto importante es que la 
lente tenga un montaje (la forma de co-nectarse 
a la cámara) que sea estándar, 
como el montaje CS, de manera tal que 
podamos cambiar de lentes según el am-biente 
y la distancia a la cancha. Otra ca-racterística 
interesante es la posibilidad 
de aplicar filtros desde el hardware, lo 
cual hace mucho más rápido el proceso.
Figura 6. Un equipo con sistema de visión local. 
La cámara apunta hacia una semiesfera en la parte superior. 
por eso que en todos los sistemas de vi-sión, 
complementamos lo que capta-mos 
en el cuadro con información del 
historial, como haríamos con nuestros 
propios ojos y cerebro. Si vemos que 
viene la pelota y en un momento la de-jamos 
de ver porque queda detrás de un 
jugador, realizamos una proyección de 
su movimiento y prevemos encontrar-la 
en un punto posterior, ya que cono-cemos 
cómo se estaba moviendo y po-demos 
anticiparnos a su comporta-miento 
futuro. De la misma manera lo 
hacemos (¡o por lo menos lo intenta-mos!) 
en el fútbol de robots. 
Comportamiento colaborativo 
Además de todo lo que vimos, nece-sitamos 
que jueguen en equipo. En 
un conjunto de robots que tienen un 
Fútbol de robots 
objetivo determinado, es necesario 
algún mecanismo de organización 
que permita que cada uno realice 
una o más tareas determinadas en 
forma dinámica, en pos de ese obje-tivo. 
Existen muchas formas de lo-grar 
esto, pero plantearemos dos: el 
comportamiento emergente y el 
comportamiento dirigido. 
El comportamiento emergente den-tro 
de un sistema es el que surge de la 
interacción de sus componentes, y no 
puede explicarse a partir de los com-portamientos 
individuales. Por ejem-plo, 
ninguna hormiga puede realizar 
una colonia por sí misma, ni organi-zarla 
dándoles órdenes a otras hormi-gas. 
Pero su comportamiento indivi-dual 
sencillo en conjunto con las otras 
hormigas, les permite lograr un tra- 
229
bajo en equipo muy complejo (Figura 
7). Otro ejemplo es el de las bandadas 
de pájaros. Muchas veces nos queda-mos 
maravillados ante las hermosas 
figuras geométricas que logran al vo-lar 
en grupo. Sin embargo, ninguna 
mente superior ordena ese vuelo. Un 
conjunto de reglas sencillas de ubica-ción 
de cada pájaro en la bandada, 
que permite minimizar la resistencia 
del aire, es la que logra esa organiza-ción 
que nos sorprende. Un último 
ejemplo que podemos presentar es el 
de la generación del aplauso y su rit-mo. 
En un recital o en una obra de te-atro, 
no nos organizamos para aplau-dir. 
Alguna señal, como el final de la 
canción o de un acto, genera un pri-mer 
aplauso, que luego comienza a 
crecer y que, mágicamente, toma una 
cadencia general a partir de la senci-lla 
actitud de cada uno de nosotros al 
golpear nuestras manos. 
En un grupo de robots, podemos de-terminar 
cierto conjunto de acciones 
primitivas, como ir a un punto o ir a 
la pelota, y que cada robot decida por 
sí mismo qué hacer según las condi-ciones 
del ambiente. Por ejemplo, ca-da 
robot, según la cantidad de cua-dros 
que tardaría en llegar a la pelota, 
podría decidir si va hacia ella o no. De 
la misma forma, podríamos determi-nar 
un grupo de acciones posibles que 
estén condicionadas por el estado del 
robot dentro del ambiente. El proble- 
10. JUGAR AL FÚTBOL 
Figura 7. Las hormigas, un maravilloso ejemplo de comportamiento emergente. 
230
ma que podemos tener es que varios 
robots decidan hacer lo mismo o que 
ninguno ejerza alguna función vital, 
como la de arquero. La ventaja es que 
con sólo agregar alguna o algunas ac-ciones 
más, y si pulimos el sistema de 
decisiones de cada robot, el compor-tamiento 
puede cambiar en forma 
notable. Además, todos los robots son 
iguales, y por lo tanto no necesitamos 
programar diversos comportamientos 
para cada uno de ellos. 
El comportamiento emerge en forma 
espontánea. Es muy sorprendente ver-los 
organizarse por ellos mismos y 
cumplir determinados roles cuando 
nosotros nunca lo hicimos en forma 
explícita. ¡Es algo mágico! El proble-ma 
es que muchas veces, este com-portamiento 
no surge en forma tan 
precisa ni veloz como lo necesitamos 
en un ambiente dinámico. Y es en ese 
momento cuando pensamos que tener 
un director de orquesta puede presen-tarnos 
Fútbol de robots 
un mundo más gris y represivo, 
pero infinitamente más ejecutivo. 
Así surge el comportamiento dirigi-do. 
En este esquema, un robot del 
equipo, o un agente externo, toma de-cisiones, 
elige una estrategia y le asig-na 
un rol a cada robot. En el caso de 
los sistemas de visión global, donde 
un computador externo realiza el pro-cesamiento 
de imágenes, el mismo 
procesador, o uno que está comuni-cado 
con él, toma estas decisiones y 
sólo comunica a cada robot la veloci-dad 
que debe tomar su rueda izquier-da 
y derecha. De esta manera, la asig-nación 
de roles y el comportamiento 
es muchísimo más preciso y las deci-siones 
se toman en forma veloz. Pero 
es necesario que imaginemos todos 
los mundos posibles, porque nuestro 
conjunto de robots nunca saldrá de lo 
puramente establecido por nuestro al-goritmo. 
Todo comportamiento de-penderá 
de lo que hayamos previsto 
✱ 
SEGUIR EL GUANTE BLANCO DE MICHAEL JACKSON 
El comportamiento emergente también puede aplicarse para el seguimiento de obje-tos 
en un video. El White Glove Tracking Project (Proyecto de Seguimiento del Guan-te 
Blanco) fue un proyecto respaldado por Rhizome.org, en donde un gran número de 
usuarios debían marcar el lugar donde veían el guante blanco de Michael en un video 
de 5 minutos y medio. Con la información de cada uno, que individualmente podía te-ner 
un buen margen de error, se determinó la posición con una precisión completa. Es 
decir, a partir del comportamiento sencillo de seguir el guante con el puntero del mou-se, 
el software levantó los datos en tiempo real y los ponderó para definir la posición 
231 
perfecta del guante. Éste es otro ejemplo de comportamiento emergente.
en nuestra programación. En reali-dad, 
en general usamos una combi-nación 
de éstos y otros mecanismos 
de organización en equipo. La elec-ción 
de uno u otro dependerá, en es-pecial, 
de los buenos resultados que 
logremos con ese comportamiento. 
Ligas nacionales e internacio-nales 
de fútbol de robots 
Como dice el sabio adagio, todo lo 
que hacemos los investigadores es 
para conquistar a las muchachas que 
en nuestra juventud, con nuestro as-pecto 
de nerds, nunca pudimos se-ducir. 
Debido a que pasamos días 
enteros detrás de nuestros inventos, 
es fácil suponer que nuestro estado 
físico deja bastante que desear. Es 
por eso que decidimos crear los cam-peonatos 
de fútbol de robots: quere-mos 
ser famosos, reconocidos por la 
calle y conseguir novias modelos, co-mo 
los jugadores de fútbol reales. 
Luego de doce años de competencias 
no hemos logrado ninguno de estos 
objetivos, pero no hemos perdido las 
esperanzas. Por lo menos, en las reu-niones 
sociales hemos logrado algu-nos 
minutos de atención al comen-tar 
nuestra extraña profesión. 
Ahora, hablando en serio, los cam-peonatos 
de fútbol de robots son 
una buena excusa para intercambiar 
conocimientos con otros investiga-dores 
de la misma disciplina. Las re-glas 
del fútbol son conocidas a nivel 
internacional y no hacen falta de-masiadas 
palabras para que nos po-damos 
encontrar en un partido. Y 
luego, entre goles y tiros libres, com-partimos 
los últimos resultados de 
nuestros trabajos en los campos que 
presentamos en el punto anterior. A 
continuación comentaremos cada 
una de las ligas y las categorías vin-culadas 
al fútbol que presentan. 
RoboCup 
Según se detalla en su propio sitio, la 
RoboCup es un proyecto de colabo-ración 
internacional para promover 
el desarrollo de la robótica, la inteli-gencia 
artificial y los campos afines. 
Fomenta la investigación de estos te-mas 
y provee problemas estándares, 
donde una amplia gama de tecno-logías 
puede integrarse y ponerse a 
prueba. Ha elegido el fútbol de ro-bots 
como tema central con el obje-tivo 
de aplicar los resultados de las in-vestigaciones 
a problemas sociales 
significativos y a la industria. La me-ta 
final es lograr hacer un equipo de 
once robots autónomos para el 2050, 
que le gane un partido a la última se-lección 
campeona del mundo. 
Dado que muchas de las tecnologías 
estudiadas son aplicables a la búsque-da 
y el rescate de personas en situa-ciones 
de desastre, se ha agregado a las 
competencias de rescate (RoboCup 
Rescue) como una forma de aplica- 
10. JUGAR AL FÚTBOL 
232
ción significativa de los resultados de 
las investigaciones. Además de las ca-tegorías 
de fútbol, también presenta 
categorías físicas y simuladas de resca-te 
y categorías de fútbol, rescate y dan-za 
para jóvenes entre 10 y 18 años. Las 
categorías de fútbol que ofrece son: 
● Simulación: en estos momentos 
hay dos subcategorías, una de 2D 
y otra de 3D. En esta categoría, de-bemos 
controlar los once jugadores 
y al entrenador, cada uno con un 
proceso independiente entre sí y 
sin comunicación directa entre 
ellos. El partido se desarrolla en un 
simulador de la física del ambien-te, 
con el cual los procesos que 
controlan al equipo se comunican 
Fútbol de robots 
mediante mensajes de texto por 
sockets. Además, contamos con un 
visualizador gráfico del ambiente. 
Es decir, cuando se juega un parti-do 
tenemos 26 procesos que co-rren: 
22 jugadores, 2 entrenadores, 
1 simulador y 1 visualizador. 
La comunicación entre los jugado-res 
y el técnico se realiza mediante 
gritos entre ellos. Por lo tanto, te-nemos 
un comando que podemos 
ejecutar en nuestro agente que gri-ta 
un mensaje y desde ya, también 
puede escucharlo. Además, tene-mos 
comandos de movimiento, pa-teo, 
giro, etcétera. El servidor, 
además de recibir los comandos pa-ra 
los robots, nos provee informa-ción 
de sensado (particular de cada 
233 
Figura 8. Imagen de uno de los monitores para el simulador de la RoboCup.
agente), como lo que ve, la energía 
del jugador, la velocidad, etcétera. 
Esta información de los sensores 
puede estar contaminada por el rui-do 
(errores), como en un sensor re-al. 
Es importante recordar que el 
servidor no espera que le enviemos 
los comandos para los robots, sino 
que funciona como un sistema de 
tiempo real con ciclos discretos, y 
que aquí también tenemos el com-promiso 
de equilibrar precisión y 
velocidad. Si nuestra heurística tar-da 
demasiado tiempo en definir el 
comportamiento del robot, vamos 
a entregar acciones para un mundo 
que ha cambiado, y con una fre-cuencia 
demasiado lenta para la vi-talidad 
del ambiente. El objetivo 
del simulador es poder solucionar 
todos los aspectos físicos y de vi-sión, 
para que nos podamos con-centrar 
en los temas vinculados al 
comportamiento colaborativo. 
● Small size (tamaño pequeño), tam-bién 
conocido como F180: aquí te-nemos 
un partido de fútbol físico en-tre 
dos equipos de cinco jugadores 
cada uno (Figura 9). Cada robot debe 
poder entrar en un cilindro de 180 
mm de diámetro, con una altura no 
mayor a 15 cm, salvo que tenga su 
propio sistema de visión. De no ser 
así, se utiliza un sistema de visión 
global con comunicación inalámbri-ca 
entre el procesador de imágenes y 
los robots. El campo de juego es de 
10. JUGAR AL FÚTBOL 
234 
Figura 9. Equipo Small size del ITAM de México.
4,9 m de largo por 3,4 m de ancho y 
se utiliza una pelota de golf naranja. 
A pesar de que la visión puede ser lo-cal, 
todos los equipos que hemos vis-to 
en los torneos tienen visión global. 
● Middle size (tamaño medio): en es-ta 
categoría física los robots también 
son autónomos en el sistema de vi-sión. 
Cada equipo cuenta con cua-tro 
jugadores que se comunican en-tre 
ellos en forma inalámbrica (Figu-ra 
10). No puede haber ninguna in-tervención 
externa, salvo para inser-tar 
o remover robots del campo de 
juego. Cada robot debe poder entrar 
en una caja de 50 cm de ancho, 50 
cm de largo y 85 cm de alto. Por mo-mentos, 
puede crecer hasta 60 cm 
Fútbol de robots 
por 60 cm cuando patea. El peso 
máximo del robot es de 80 kg. 
● Standard platform league (liga de 
plataforma estándar): en esta cate-goría 
se selecciona un robot están-dar 
que debe ser usado por todos los 
equipos. Hasta el año 2007, la pla-taforma 
seleccionada fue el Aibo de 
Sony, y por eso esta categoría se co-nocía 
como four legged (cuatro pa-tas). 
En 2008 se utilizará el robot 
Aldebaran Nao (Figura 11). Cada 
equipo debe ser de cuatro jugadores 
autónomos mediante la utilización 
de esta plataforma básica. De esta 
manera, se pone el acento en el de-sarrollo 
del software para solucionar 
el aspecto físico del robot. 
235 
Figura 10. Un partido a punto de comenzar en la Middle size de la RoboCup.
● Humanoid (humanoide): aquí, los 
equipos deben estar formados por 
dos humanoides, donde uno será el 
arquero. Existen dos subcategorías 
(kidsize y teensize), donde sólo hay 
diferencias de tamaño. Cada robot 
debe tener proporciones en su 
cuerpo similares a las proporciones 
humanas (Figura 12). Las reglas pro-porcionan 
un conjunto de fórmu-las 
que determinan los límites de 
mínimo y máximo para cada parte 
del cuerpo. Además de jugar parti-dos, 
deben realizar pruebas de des-treza 
como esquivar obstáculos, re-correr 
caminos, etcétera. 
10. JUGAR AL FÚTBOL 
Figura 11. En esta imagen 
vemos un prototipo avanzado 
del Aldebaran Nao. 
236 
Figura 12. Robotina, el humanoide 
de la categoría TeenSize del equipo 
Nimbro de la Universidad de Freiburg.
FIRA (Federación Internacional 
de Fútbol de Robots) 
La FIRA es una liga futbolera. Los 
robots de sus diversas categorías son 
de complejidad menor que los de la 
RoboCup, con características menos 
cercanas al fútbol real. Por ejemplo, 
en sus canchas no hay laterales. La 
dinámica es más parecida al fútbol de 
salón. Con estas características, sus 
partidos son más vistosos y emocio-nantes, 
ya que la pelota está cons-tantemente 
en juego y sus robots se 
mueven a una velocidad sorprenden-te. 
Las categorías que presenta son: 
● MiroSot: en esta categoría, los ro-bots 
tienen un límite de 7,5 cm de 
lado (sin incluir la antena de comu-nicación). 
Se juega con una pelota 
de golf naranja y la visión es global. 
Fútbol de robots 
237 
❘❘❘ 
PLATAFORMA ROBOCUP 
El robot Aldebaran Nao es un desarro-llo 
de origen francés que comenzó en 
el año 2005 y fue presentado dos años 
más tarde. El objetivo que persigue es 
el de lograr un humanoide que se en-cuentre 
disponible para el público, de 
costo accesible, con las características 
que vemos a continuación: 
•Cámara digital incorporada. 
•Reconocimiento de voz. 
•Sintetizador de voz. 
•Expresiones de emoción. 
•Comunicación por WiFi. 
•Veinticinco grados de libertad. 
Para obtener más información, pode-mos 
visitar la siguiente dirección: 
www.aldebaran-robotics.com. 
Figura 13. Ejemplo de 
robot MiroSot para esta 
categoría de la FIRA.
Existe una subcategoría de cinco con-tra 
cinco donde la cancha es de 220 
cm por 180 cm, y otra de once con-tra 
once de 400 cm por 280 cm (Fi-gura 
14). La cámara colocada en la par-te 
superior de la cancha captura las 
imágenes, que luego son procesadas 
por una computadora externa. Ésta 
última, una vez procesada la imagen 
y analizado el ambiente, determina el 
comportamiento de los robots y le 
envía las órdenes a cada uno en forma 
inalámbrica. Por el tamaño del robot 
y las reglas de cubrimiento de la pe-lota, 
es imposible capturarla, por lo 
que el transporte es bastante comple-jo, 
y se juega mucho con los rebotes 
y el transporte colectivo. 
● SimuroSot: categoría simulada que 
emula a MiroSot de cinco contra 
cinco y de once contra once. El si-mulador 
(Figura 16) provee los datos 
del ambiente cada 16 milisegundos 
y nuestro equipo (una dll hecha en 
C++) toma sus decisiones e informa 
la velocidad de la rueda izquierda y 
derecha de cada robot. 
● NaroSot: es una versión mini de 
MiroSot (Figura 15). Aquí los ro-bots 
deben ser de 4 cm de ancho, 
10. JUGAR AL FÚTBOL 
238 
Figura 14. Partido de cinco contra cinco en la categoría MiroSot de la FIRA.
4 cm de largo y 5,5 cm de alto (sin 
contar la antena). El sistema de vi-sión 
también es global y juegan 
cinco contra cinco con una pelota 
de golf naranja. 
● RoboSot: ésta es la categoría con 
visión local. Cada equipo está for-mado 
por tres robots que deben 
caber en un cilindro de 20 cm de 
diámetro y con una altura no ma-yor 
a 40 cm. La pelota es de tenis 
Fútbol de robots 
239 
Figura 15. Pequeños robots de la 
categoría NaroSot de la Universidad de 
Tecnología de Viena. 
Figura 16. Simulador de 5 contra 5 que se utiliza 
en la categoría SimuroSot de la FIRA.
color amarillo y ya pueden incor-porar 
a su arquitectura sistemas de 
acarreo de la pelota (con restric-ciones) 
y sistemas de pateo. 
● HuroSot: ésta es la categoría de 
humanoides de la FIRA (Figura 17). 
Aún no se juegan partidos de fút-bol, 
sino que el robot debe cum-plir 
ciertas pruebas de destreza co-mo 
realizar un recorrido, patear 
penales, etcétera. La altura máxi-ma 
es de 150 cm y 30 kg de peso. 
Las proporciones del robot deben 
ser similares a las humanas, como 
en la RoboCup. 
● KepheraSot: en esta categoría, que 
está en vías de desaparición, los 
equipos utilizan una arquitectura 
conocida como Kephera. Juegan 
uno contra uno con un sistema de 
visión local muy interesante, ya que 
posee una cámara con captura de 
una sola línea. Es por eso que los ju-gadores 
se identifican con un cilin-dro 
de rayas negras y blancas, y la 
pelota es de color verde. 
Campeonato Latinoamericano IEEE 
El Campeonato Latinoamericano 
IEEE comenzó en el año 2002 y no 
10. JUGAR AL FÚTBOL 
240 
Figura 17. Robot de la categoría HuroSot de la FIRA 
intentando resolver un problema.
contaba con pruebas de fútbol de ro-bots. 
Sin embargo, en las últimas 
tres ediciones ha incorporado la Ro-boCup 
Latinoamericana. 
De esta manera, se hacen presentes 
las categorías Small Size, Four Le-gged 
y Simulación. Además, pro-pone 
una categoría inicial donde se 
utiliza el kit de Lego para la cons-trucción 
de los robots, con desafíos 
de rescate o colaborativos, y una ca-tegoría 
abierta, donde los robots de-ben 
ser desarrollados por los propios 
participantes, con determinadas res-tricciones 
en los procesadores. 
Fútbol de robots 
Concurso Mexicano de Robótica 
Versión local del Concurso IEEE La-tinoamericano 
que agrega a sus com-petencias 
las categorías Junior de la 
RoboCup (para menores de 18 años) 
y un concurso de robots limpiadores, 
también con diversas categorías. Con 
respecto al fútbol en particular, están 
presentes Small Size y Junior. 
Campeonato Argentino de Fútbol 
de Robots (CAFR) 
El CAFR combina pruebas de am-bas 
ligas internacionales. Con res-pecto 
a la FIRA, presenta su cate- 
241 
Figura 18. El equipo argentino del CAETI recibiendo 
su premio por el cuarto puesto en la categoría SimuroSot.
goría SimuroSot, donde tiene el ma-yor 
número de participantes. De la 
RoboCup presenta una versión más 
pequeña que la Small Size (con me-nos 
cantidad de robots) y la Junior 
con pelota infrarroja (Figura 19). 
Roboliga (Olimpíada Argentina 
de Robótica) 
La Roboliga es una competencia des-tinada 
a alumnos menores de 18 años. 
Es la competencia de robótica más 
antigua de Latinoamérica y conjuga 
pruebas de destreza con presentación 
de proyectos de investigación de los 
alumnos. Dentro de las competen-cias, 
que se modifican año a año, con 
frecuencia aparecen pruebas de resca-te, 
sumo, y destrezas de fútbol de ro-bots, 
que utilizan el mismo campo y 
las mismas características que la Ro-boCup 
Junior (Figura 20). 
Modificaciones para que 
nuestro robot pueda jugar 
Con nuestro robot podríamos parti-cipar 
de la categoría Small Size de la 
RoboCup y de la competencia de fút-bol 
de la RoboCup Junior. En el pri-mer 
caso, deberíamos desarrollar un 
sistema de visión para poder realizar 
el seguimiento de nuestro equipo y 
10. JUGAR AL FÚTBOL 
242 
Figura 19. Categoría Senior del Campeonato Argentino de Fútbol de Robots.
sumar algún sistema de comunica-ciones 
para enviar las órdenes de la 
computadora central hacia los robots 
(y desde ya, ¡programar todo esto!). 
Con respecto al sistema de visión, ya 
existe un servidor de procesamiento 
de imágenes de distribución libre y 
gratuita que nos puede ser útil: Do-raemon. 
Fue desarrollado por el De-partamento 
de Ciencias de la Com-putación 
de la Universidad de Mani-toba, 
corre en Linux y necesita de una 
placa capturadora de video con en-trada 
compuesta o SVHS. De las cap-turadoras 
de video que tienen drivers 
en Linux, nosotros logramos poner 
Fútbol de robots 
en marcha el sistema con aquellas que 
tienen chip bt878, como la antigua 
PCTV de Pinnacle. Conectada a es-ta 
placa, podemos utilizar cualquier 
cámara con las salidas mencionadas, 
como cualquier handycam que ten-gamos 
en nuestras casas. Hemos te-nido 
varias luchas para que funcione, 
pero una vez que se logra darle arran-que 
y se configuran los colores en for-ma 
correcta, nos provee los datos con 
buena precisión. Los datos del am-biente 
y de los robots los comunica 
mediante un socket UDP, por lo que 
podemos capturarlos desde otro pro-ceso 
en el mismo Linux o en otra má- 
243 
Figura 20. Competencia colaborativa en la Roboliga.
10. JUGAR AL FÚTBOL 
quina con cualquier sistema opera-tivo 
y cualquier lenguaje que pueda 
acceder a sockets (¡todos los lengua-jes 
pueden hacerlo!). 
Ahora, si estamos completamente 
lanzados a la construcción de nues-tras 
propias herramientas para lo 
que es el procesamiento de imáge-nes, 
es recomendable detenerse a es-tudiar 
la librería OpenCV, desarro-llada 
por los laboratorios de Intel. 
Ésta es una librería desarrollada en 
C++ que nos proporciona todos los 
algoritmos básicos de procesamien-to 
como filtros, balances, detección 
de bordes, tracking, etcétera. Reali-zar 
nuestro propio sistema de visión 
implicará combinar un conjunto de 
las funciones provistas por OpenCV 
con algunas buenas ideas de uso del 
historial del ambiente y el compor-tamiento 
lineal de la pelota. 
Con respecto al sistema de comu-nicaciones, 
tendremos que incorpo-rarle 
un módulo RF (radiofrecuen- 
244 
cia) o bluetooth a nuestro robot. La-mentablemente, 
este tema escapa a la 
complejidad de este libro, pero po-demos 
encontrar muchísima infor-mación 
en Internet sobre él, en es-pecial 
con respecto a la conexión de 
módulos RF con el PIC. 
Una pelota infrarroja 
Si queremos evitar el arduo procesa-miento 
de imágenes, podemos po-ner 
a nuestra criatura al servicio de 
la categoría Junior. Aquí, la visión es 
local y muy sencilla. Para jugar se 
utiliza una pelota con leds infrarro-jos. 
Esta pelota emite constante-mente 
y, de esta manera, uno o más 
sensores de luz la pueden detectar 
con facilidad (es mejor usar por lo 
menos dos para poder saber si la pe-lota 
se fue de nuestro frente para un 
lado o para el otro). 
Para ubicarse a nivel espacial, el pi-so 
de la cancha de esta categoría tie-ne 
un degradé de blanco a negro, 
con lo que podemos saber si nos di- 
✱ 
El Grupo de Robótica Cognitiva de la Universidad Nacional del Sur, en Argentina, ha 
colaborado en el desarrollo de una liga de la RoboCup que luego fue dejada de lado. 
Sin embargo, toda su experiencia con Doraemon (¡y con su compleja instalación!) 
puede encontrarse en su sitio web: http://cs.uns.edu.ar/~ajg/matebots/. Además, 
allí podemos encontrar información sobre la programación del comportamiento del 
equipo en Prolog y sobre el uso de Lego Mindstorms para jugar al fútbol. Lamenta-blemente, 
UNA BUENA FORMA DE COMENZAR CON EL FÚTBOL DE ROBOTS 
la E-league (Entry League) no continuó con su desarrollo en la RoboCup, 
lo que hubiera permitido un ingreso menos complejo a la liga.
rigimos hacia nuestro arco o hacia el 
contrario con el uso de uno o más 
sensores de luz que apuntan hacia 
abajo. Si queremos ser más exquisi-tos, 
al usar tres o cuatro sensores en 
forma analógica podemos darnos 
Fútbol de robots 
cuenta del grado de rotación de 
nuestro robot por la diferencia cap-tada 
por cada uno de los sensores. Si 
apunta hacia el arco, los valores cap-tados 
por los sensores que miran ha-cia 
abajo tendrían que ser similares. 
245 
… RESUMEN 
El fútbol no sólo es una buena excusa para una reunión de amigos. En el caso de 
los robots, nos permite poner a prueba las soluciones que hayamos encontrado 
a un conjunto de problemas habituales en la robótica situada, como la captación 
del ambiente en tiempo real, la navegación hacia puntos fijos y móviles, y el com-portamiento 
colaborativo. Ésta es la razón por la que ha crecido tanto la activi-dad 
en los centros de investigación. Cada liga de fútbol de robots presenta dife-rentes 
reglamentos y categorías, lo que permite tener una amplia variedad de 
oportunidades para ingresar en este mundo. La propuesta más económica y sen-cilla 
para comenzar son las competencias simuladas. En ellas, con una computa-dora 
convencional y muchas horas de programación, podremos lograr un equipo 
para salir a la cancha. Pero el sueño siempre es trabajar con elementos físicos, 
y en ese caso tenemos plataformas estándares, humanoides, robots pequeños, 
robots grandes, etcétera. Con seguridad, encontraremos el proyecto que se ajus-te 
a nuestros deseos y nuestras posibilidades. Y ojalá nos encontremos en algún 
potrero robótico para compartir un buen partido.
✔ 
ACTIVIDADES 
TEST DE AUTOEVALUACIÓN 
1 ¿Cuáles son las tres características que 
podemos transpolar del fútbol conven-cional 
246 
al fútbol de robots? 
2 ¿Qué problemas presenta la arquitectu-ra 
y la navegación de los robots de fútbol? 
3 ¿Qué método se utiliza habitualmente 
en la detección del ambiente de juego, y 
qué problemas trae esto aparejado? 
4 ¿A qué nos referimos con equilibrio en-tre 
velocidad y precisión en el procesa-miento 
de imágenes? 
5 ¿Cómo son las arquitecturas de visión 
global y de visión local? 
6 ¿A qué llamamos comportamiento co-laborativo? 
¿Qué problemas presenta? 
7 ¿Qué es el comportamiento emergente? 
8 ¿Qué es el comportamiento dirigido? 
9 ¿Cuáles son las características de las 
categorías de la RoboCup? 
10 ¿Cuáles son las características de las 
categorías de la FIRA? 
EJERCICIOS 
1 Imprima un degradé de blanco a negro 
en una hoja oficio y construya un robot 
que, al comenzar en cualquier posición, 
se ubique en forma recta y apunte ha-cia 
el borde negro. 
2 Agréguele un tercer motor al robot con 
algún mecanismo sencillo de pateo. 
3 Instale Doraemon en Linux según las 
indicaciones de la Universidad del Sur, 
y escuche el socket configurado para 
entender cómo se envían los paquetes. 
4 Instale el simulador de fútbol de la FIRA 
y desarrolle un pequeño equipo basán-dose 
en el ejemplo que se descomprime 
en la misma carpeta donde está instala-do 
el programa.
Robótica 
Conceptos 
básicos 
de electrónica 
Apéndice A 
Este apéndice permitirá conocer algunos 
conceptos que aparecen explícita o 
implícitamente involucrados en los 
capítulos anteriores. Aunque podemos 
llegar a buen puerto sin leerlo, la 
comprensión de lo que construimos será 
más profunda si lo hacemos. Y en algunos 
casos, como los consejos para soldar, nos 
ahorraremos muchos dolores de cabeza. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
La electrónica 248 
Conceptos de electricidad 248 
Componentes que utilizamos 
en nuestros circuitos 251 
Herramientas fundamentales 256 
Consejos para soldar 258
LA ELECTRÓNICA 
Motor del siglo XX, la electrónica ha 
jugado un papel fundamental en las 
características actuales del mundo en 
el que vivimos. Todo lo que nos rodea 
está compuesto en algún punto por 
componentes electrónicos: automóvi-les, 
aviones, computadoras, juguetes, 
televisores, reproductores de mp3, 
etcétera. Y cada día que pasa, gracias 
a las maravillas de la evolución tec-nológica, 
la electrónica se vuelve más 
pequeña, más robusta y más econó-mica. 
Probablemente, en algún mo-mento 
de nuestras vidas sentimos cu-riosidad 
por este tema y nos adentra-mos 
en él con alguna revista, algún kit 
específico o por qué no, mediante es-tudios 
formales. Para aquellos que nos 
hemos acercado porque lo teníamos 
como un simple hobby, la aparición 
de los integrados nos ha facilitado 
aún más la tarea. Muchas veces, cuan-do 
necesitamos algo, en lugar de te-ner 
que diseñarlo, basta con buscar en 
los catálogos un integrado que cum-pla 
esa función. Basta un ejemplo: un 
grupo de alumnos había desarrollado 
un órgano electrónico controlado 
desde el puerto paralelo de una PC. 
Cuando le presentaron el proyecto al 
profesor, con decenas de transistores, 
resistencias, diodos y otros compo-nentes, 
el docente los felicitó porque 
el trabajo era muy interesante. Y lue-go 
de charlar con ellos les dijo que no 
quería que gastaran ni dinero ni tiem-po 
demás. Que todo lo que habían 
desarrollado se podía resolver con un 
integrado. Todo, menos un conjunto 
de leds, quedaba encapsulado en un 
integrado específico. Como dirían los 
programadores de objetos, todo está 
hecho, sólo hay que encontrar las pie-zas 
y ensamblarlas. 
Este apéndice tiene como objetivo 
aclarar algunos conceptos de electró-nica 
básica y dar algunas recetas pri-mitivas 
que seguramente nos aho-rrarán 
muchos dolores de cabeza. To-do 
lector que alguna vez haya cons-truido 
un circuito ya ha pasado por 
esto, y no creemos que su lectura 
pueda aportarle nada nuevo. Pero si 
es la primera vez que vamos a hacer 
una soldadura, este apéndice será 
una tabla de salvación. 
Conceptos de electricidad 
Para comenzar con nuestro aprendi-zaje 
de electrónica, debemos conocer 
una serie de conceptos fundamenta-les. 
En primer lugar, veremos aquellos 
relacionados con la electricidad. 
Corriente eléctrica 
La corriente eléctrica no es más que 
un flujo ordenado de electrones que 
atraviesa un material de un punto 
a otro. Algunos de ellos, al tener un 
electrón libre en su nivel superior, 
permiten el pasaje de un punto a otro 
en forma mucho más simple y con 
A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 
248
menos resistencia. De allí el nombre 
de materiales conductores. A los 
materiales que no permiten el flujo 
de electrones en condiciones norma-les 
se los conoce como materiales 
aislantes. Pero ¡cuidado!: ante ciertos 
factores un material aislante puede 
convertirse en conductor. El ejemplo 
más conocido es el de la cerámica 
usada en los viejos tapones por su ca-pacidad 
aislante, que ante una tem-peratura 
muy baja, no sólo conduce, 
sino que ¡superconduce! Para profun-dizar 
este tema, es recomendable bus-car 
información sobre la supercon-ductividad 
y sus propiedades. 
Si queremos producir este flujo (Fi-gura 
1) en un material eléctricamen-te 
neutro, tenemos que utilizar una 
fuente de energía externa. Si coloca-mos 
La electrónica 
el material neutro entre un 
cuerpo con muchos electrones (car-ga 
negativa) y uno con pocos (carga 
positiva), los electrones atravesarán 
el material para ir del potencial ne-gativo 
al positivo. ¿Del negativo al 
positivo? ¿No era al revés? En efecto 
es así, pero históricamente se la de-finió 
como un flujo de cargas posi-tivas, 
lo que luego resultó incorrec-to. 
De todas maneras, cuando se 
piensa en el pasaje de corriente eléc-trica, 
con frecuencia se lo describe al 
revés porque lo que se considera es 
el flujo del potencial positivo. 
Si el flujo se desplaza en forma conti-nua 
de un punto a otro, se lo conoce 
como corriente continua. Un ejem-plo 
de este tipo de corriente es la que 
249 
+ + 
— — 
Figura 1. Esquema del flujo de la corriente eléctrica.
brinda una pila o batería. En otro ca-so, 
si el flujo corre primero en un sen-tido 
y luego en el contrario, se lo lla-ma 
corriente alterna. Un ejemplo de 
este caso es la corriente que recibimos 
en los enchufes de nuestras casas, la 
corriente eléctrica de la red. Podemos 
buscar en Internet la historia de por 
qué se eligió la alterna y no la conti-nua 
para las casas, ya que es una lu-cha 
interesante entre Nikola Tesla y 
Thomas Edison (Figura 2). 
La corriente se mide en Amperios 
(A). Esta unidad mide la cantidad de 
electrones que fluyen en un material 
en una unidad de tiempo. Una co-rriente 
tiene una intensidad de 1 A 
cuando, al pasar por una solución 
acuosa de nitrato de plata, deposita 
0,001118 gramos de plata por segun-do 
(esto podemos olvidarlo rápida-mente, 
sólo es para aclarar que existe 
un patrón). En electrónica, esa uni-dad 
es demasiado grande, por lo que 
utilizamos los submúltiplos. Un Mi-liampere 
(mA) es la milésima parte 
de un ampere. Un Microampere 
(μA) es la millonésima parte. 
Tensión (voltaje) 
Para que los electrones fluyan de un 
terminal a otro, debemos tener algu-na 
fuente que genere ese movimien-to 
o, como se dice habitualmente, de-bemos 
aplicarle energía al conductor. 
Para lograrlo, en un terminal debe-mos 
tener una carga negativa y en la 
otra una positiva. La tensión es la di-ferencia 
de potencial que hay entre 
dichas terminales. El ejemplo más 
habitual es el curso del agua de un 
río. Para que el agua corra, es necesa-rio 
un desnivel entre la vertiente y la 
desembocadura. Ese desnivel es el 
que determinará la tensión. 
La unidad de medida es el Voltio o 
volt (V). Una pila AA alcalina tiene 
una tensión de 1,5 V. En las tomas 
eléctricas de nuestras casas solemos 
tener 110 V ó 220 V. 
A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 
250 
Figura 2. Nikola Tesla 
y Thomas Edison, uno 
de los enfrentamientos 
más grandes en la 
historia de la ciencia 
a partir de la corriente 
continua y la alterna.
Resistividad / Resistencia 
La resistividad de un material es la pro-piedad 
que tiene de oponerse al paso 
de corriente. Se mide en Ohms-me-tro 
y depende de un conjunto de fac-tores, 
como por ejemplo la temperatu-ra. 
En un componente concreto, su re-sistencia 
está definida por la resistividad 
del material, su longitud y el área trans-versal 
del componente. A mayor longi-tud 
y menor área transversal, más re-sistencia. 
En este caso, la unidad es el 
Ohm (Ω). Al inverso de la resistividad 
se lo llama conductividad. 
Ley de Ohm 
Una de las leyes más importantes de 
la electrónica es la Ley de Ohm. Si to-mamos 
una fuente variable de co-rriente 
continua y un cable conduc-tor 
que ofrezca cierta resistencia, po-dremos 
ver que al aumentar la ten-sión, 
la corriente aumenta en forma 
directamente proporcional. El co-ciente 
que obtenemos entre tensión 
y corriente es la resistencia del ma-terial. 
En síntesis: R= V / I. 
R: resistencia. 
V: tensión. 
I: corriente. 
Desde ya que con esta fórmula po-demos 
calcular cualquiera de los 
parámetros si conocemos los otros 
dos. Por ejemplo, la fórmula V=R*I 
nos permite calcular cuántos voltios 
cae la tensión a lo largo de un con-ductor 
con resistencia. 
La electrónica 
Componentes que utilizamos 
en nuestros circuitos 
A continuación vamos a describir los 
componentes pasivos y activos más im-portantes 
que hemos utilizado en nues-tros 
circuitos. Llamamos componen-tes 
activos a aquellos que proporcio-nan 
excitación eléctrica, ganancia o 
control. Esencialmente, son los gene-radores 
eléctricos, los diodos y ciertos 
semiconductores. En contraposición, 
los pasivos son los que no generan in-tensidad 
ni tensión en nuestro cir-cuito, 
como los cables, las resisten-cias, 
los interruptores, los capacito-res, 
los transformadores, etcétera. Ve-amos 
qué función cumplen algunos 
componentes que hemos utilizado. 
Resistencia 
Es un componente pasivo que ubi-camos 
en el paso de una corriente y 
que se opone a que ésta circule. Se re-presentan 
con la letra R y su valor se 
mide en Ohms o en sus múltiplos, 
KiloOhms (1 KΩ = 1000 Ω) o Me-gaOhms 
(1 MΩ = 1000 KΩ). Hay 
una gran variedad de tipos de resis-tencias 
y de valores posibles (Figura 3). 
Figura 3. Resistencia de 62Ω ± 5% 
y símbolo electrónico de la resistencia. 
251
Para describir el valor e indicarlo so-bre 
el componente se utiliza un có-digo 
de colores que determina la re-sistencia 
y la tolerancia. 
Los tres primeros (Tabla 1) definen el 
valor de la resistencia y cada uno re-presenta 
un dígito decimal. Entre 
éstos, los dos primeros indican el va-lor 
en Ω y el tercero es el multipli-cador 
del valor anterior para obtener 
el valor final. Por su parte, el cuarto 
dígito representa la tolerancia del 
componente (Tabla 2). 
COLOR DÍGITO MULTIPLICADOR 
Negro 0 1 
Marrón 1 10 
Rojo 2 100 
Naranja 3 1000 
Amarillo 4 10000 
Verde 5 100000 
Azul 6 1000000 
Violeta 7 10000000 
Gris 8 
Blanco 9 
Dorado 0,1 
Plateado 0,01 
Tabla 1. Interpretación de las 
tres primeras bandas de colores 
de las resistencias. 
COLOR TOLERANCIA 
Dorado ±5% 
Plateado ±10% 
Sin color ±20% 
Tabla 2. Interpretación de la cuarta 
banda de color de las resistencias. 
En la Tabla 3 podemos ver algunos 
ejemplos que nos permiten compren-der 
cómo se interpretan los colores de 
los códigos de las resistencias. 
COLORES VALOR Y TOLERANCIA 
Marrón–negro–marrón–dorado 100Ω al 5% 
Rojo–rojo–rojo–plateado 2,2 KΩ al 10% 
Amarillo–violeta–rojo–dorado 4,7 KΩ al 5% 
Tabla 3. Ejemplos de la interpretación 
de los colores de las resistencias. 
En lo que respecta a los diferentes ti-pos 
de resistencias, tenemos las fijas, 
cuyo valor nominal no se altera. Las 
variables, en cambio, pueden modi-ficar 
su valor de resistencia por un 
ajuste humano o por algún elemento 
del circuito o del ambiente. Éstas úl-timas 
también se usan como senso-res, 
dado que alteran su comporta-miento 
por factores externos. Por 
ejemplo, tenemos resistencias varia-bles 
de presión, de luz (que ya hemos 
visto), de temperatura, etcétera. 
Cuando soldamos una resistencia de-bemos 
tener cuidado porque el calor 
puede modificar sustancialmente su 
capacidad resistiva. Por eso es aconse-jable 
soldarlas con rapidez y utilizar 
algún disipador que permita dismi-nuir 
el calor que recibe la resistencia. 
Capacitor (Condensador) 
Es un componente que almacena 
energía en forma de campo eléctri-co. 
Está formado por dos placas metá- 
A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 
252
licas separadas por un aislante conoci-do 
como dieléctrico. La unidad de 
medida de su capacidad es el Faradio 
(F) y sus submúltiplos, como el Mili- 
Faradio (1 mF = 1 F/1.000), el Mi-croFaradio 
(1 uF = 1F / 1.000.000 = 
10-6F), el NanoFaradio (1nF = 10-9F) 
y el PicoFaradio (1 pF = 10-12F). 
Además de su capacidad, otra carac-terística 
fundamental es la máxima 
tensión que soporta. Nunca debemos 
conectar un capacitor a un voltaje su-perior 
porque puede explotar. 
En los capacitores también encontra-mos 
fijos y variables. Con respecto a 
los fijos, la diferencia entre ellos de-pende 
del dieléctrico que utilizan. No 
vamos a entrar en detalles, pero las ca-racterísticas 
que difieren entre ellos por 
el tipo de dieléctrico son esencialmen-te 
la capacidad, la fuga, la resistencia a 
los cambios de voltaje y la robustez. En 
particular, los capacitores electrolíticos 
(Figura 4) son polarizados, y hay que 
tener en cuenta cómo los conectamos 
(dónde ponemos el positivo y dónde 
el negativo) porque una conexión in-vertida 
los puede hacer explotar (tie-nen 
una válvula de seguridad que los 
hace bullir en lugar de explotar, con 
esa imagen tan característica de un ca-pacitor 
al que se le ha salido la tapa de 
la cabeza). Entre los capacitores varia-bles 
podemos encontrar los girato-rios, 
que se utilizan mucho en la sin-tonía 
de radios, y los trimmers, que 
permiten un ajuste muy fino. 
La electrónica 
Figura 4. Capacitor electrolítico y símbolo 
electrónico del capacitor. Podemos ver la 
marca de la patita que debe ir a tierra. 
En los capacitores cerámicos (Figura 5), 
que son los más pequeños, cuando la 
capacidad es menor a 1uF, se usa la uni-dad 
picoFaradio (pF) y se expresa en el 
componente con el valor completo si es 
pequeño, o con una notación de 3 nú-meros 
en caso contrario. Los dos pri-meros 
representan su valor, y el tercero 
nos informa de un factor de multipli-cación, 
como lo muestra la Tabla 4. 
TERCER NÚMERO FACTOR DE MULTIPLICACIÓN 
0 1 
1 10 
2 100 
3 1000 
4 10000 
5 100000 
8 0.01 
9 0.1 
Tabla 4. Factor de multiplicación 
representado por el tercer número 
que aparece en un capacitor. 
253
Luego de este número aparece una le-tra 
que indica la tolerancia en por-centaje, 
como vemos en la Tabla 5. 
LETRA PORCENTAJE DE TOLERANCIA 
D +/- 0.5 pF 
F +/- 1% 
G +/- 2% 
H +/- 3% 
J +/- 5% 
K +/- 10% 
M +/- 20% 
P +100% ,-0% 
Z +80%, -20% 
Tabla 5. Tolerancia que representa 
cada letra al final de los números 
que indican el valor del capacitor. 
Demos algunos ejemplos. Si encon-tramos 
un capacitor con el número 
104G, nos indica que tiene una capa-cidad 
de 100.000 pF y una tolerancia 
del +/- 2%. Si encontramos otro con 
332, representa 3.300 pF, sin infor-mación 
de la tolerancia. 
Diodo 
El diodo es un componente que per-mite 
que el flujo de corriente vaya 
en una sola dirección (Figura 6). De-bajo 
de cierta diferencia de potencial, 
no conduce. Si superamos ese um-bral, 
lo hace con una resistencia muy 
baja. También se lo conoce como rec-tificador, 
dado que puede convertir 
una corriente alterna en continua. 
Figura 6. Un diodo y su símbolo. 
Los primeros diodos fueron las vál-vulas 
de vacío, con aspecto similar al 
de una lámpara eléctrica. Tienen un 
filamento (el cátodo) por donde cir-cula 
la corriente que los calienta. Al 
ocurrir esto, comienzan a emitir elec-trones 
al vacío que los rodea. Estos 
electrones se dirigen hacia una placa 
cargada positivamente (ánodo), y se 
logra así el pasaje de corriente. Si el 
cátodo no se calienta, nada de esto 
funciona. Por ende, los circuitos que 
lo usan necesitan de un tiempo pa-ra 
aumentar la temperatura antes de 
prestar su servicio. Por otra parte, en 
el pasado se quemaban muy segui-do. 
Por suerte, los diodos han evo-lucionado 
notablemente y ahora no 
presentan estas dificultades. 
A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 
254 
Figura 5. 
En esta imagen 
vemos un 
capacitor 
cerámico.
Existen diversos tipos de diodos. El 
led (Light Emmiting Diode, diodo 
emisor de luz) es un diodo que emi-te 
luz monocromática cuando la co-rriente 
lo atraviesa. El color, curiosa-mente, 
no depende del plástico que 
lo rodea sino del material empleado 
en la construcción del diodo. Los pri-meros 
leds fueron infrarrojos y de co-lor 
rojo, naranja, amarillo y verde. 
Hace poco tiempo se han logrado 
leds azules, con lo cual podemos cre-ar 
cualquier color con la combina-ción 
de rojo, verde y azul. El voltaje 
de operación de un led varía entre 1,5 
V y 2,2 V, la intensidad varía entre 10 
mA y 20 mA en los rojos, y entre 20 
mA y 40 mA en los otros. 
Transistor 
El transitor es un componente semi-conductor 
activo que se puede utili-zar 
como amplificador, oscilador, 
rectificador o conmutador. Lo po-demos 
encontrar en prácticamente el 
100% de los productos electrónicos 
que nos rodean. Fue creado en los la-boratorios 
de Bell en 1947 como re-emplazo 
La electrónica 
del triodo (una válvula de 
tres patas con las mismas funciones 
pero con los problemas que ya vimos 
que presenta ese componente). El más 
común (y que nosotros usamos en 
nuestros circuitos) tiene tres patitas, 
que se conocen como emisor, colec-tor 
y base. En forma simplificada, la 
corriente que aplicamos en el colector 
sale amplificada en el emisor si es que 
la base recibe corriente continua. Es 
más, la corriente que sale por el emi-sor 
puede ser regulada por la corrien-te 
que ingresa por la base. Estos tran-sistores, 
que se conocen como bipo-lares, 
son los más comunes y los po-demos 
encontrar en dos variantes: 
NPN y PNP. La diferencia entre es-tos 
dos modelos es la polaridad de sus 
electrodos. En el primer caso, la base 
va a positivo y el emisor a negativo, y 
es al revés en el otro caso, como po-demos 
ver en la Figura 7. Además, en 
NPN, el colector debe ser más positi-vo 
que la base y en PNP, más negati-vo. 
La aparición del transistor fue un 
salto muy significativo para la electró-nica 
digital, en reemplazo de las vál- 
255 
PNP 
Colector 
Base 
Emisor 
PNP 
Colector 
Base 
Emisor 
Figura 7. Un transistor y los símbolos para NPN 
(en el que la flecha va hacia fuera) y PNP.
vulas de vacío y el surgimiento de apa-ratos 
electrónicos de menor tamaño, 
costo y temperatura. Luego, con el 
surgimiento de los integrados, estas 
características se acentuaron aún más. 
Circuitos integrados 
Como bien dice su nombre, es un 
circuito plasmado en una pequeña 
pastilla de silicio con miles o millo-nes 
de componentes, principalmen-te 
diodos y transistores (Figura 8). 
Como ejemplo tenemos los micro-procesadores, 
las memorias, los am-plificadores, 
los osciladores, etcéte-ra. 
A pesar de que existe un conjun-to 
de barreras físicas a la reducción 
de tamaño de los integrados, día a 
día se mejoran los materiales y las 
técnicas de fabricación, lo que per-mite 
el crecimiento del número de 
componentes del circuito. Su inven-tor, 
Jack Kilby, recibió el premio 
Nobel en el año 2000, 42 años des-pués 
de la aparición de su invento. 
Figura 8. Un circuito integrado 
por dentro. 
Herramientas fundamentales 
Ahora que ya hemos visto los com-ponentes 
más significativos de nues-tro 
proyecto, presentaremos una lis-ta 
de las herramientas que conside-ramos 
imprescindibles para armar 
nuestro pequeño taller de electróni-ca 
y así llevar a nuestros primeros ro-bots 
a buen puerto. 
● Estaño: recomendamos el que tiene 
almas de resina, en forma de alam-bre, 
de 0,8 mm de grosor, 60% de 
estaño y 40% de plomo. Como se-guramente 
lo usaremos en gran can-tidad, 
es mejor comprar un rollo (Fi-gura 
9) que nos durará largo tiempo. 
Figura 9. Rollo de estaño. 
● Soldador: nos va a alcanzar con 
un soldador de 35 a 40 W con una 
punta de 2 a 3 mm. El tipo de sol-dador 
más económico es el de lá-piz 
(Figura 10), que es suficiente pa-ra 
nuestras primeras experiencias. 
El único problema que tiene es 
que tarda en levantar temperatura, 
pero sólo nos consumirá un po-quito 
de paciencia. 
A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 
256
Figura 10. Soldador tipo lápiz. 
● Soporte de soldador: si no quere-mos 
dejar marcas en todas las mesas 
sobre las que trabajemos, el soporte 
de soldador (Figura 11) nos permitirá 
dejarlo en funcionamiento sin que-mar 
la superficie donde lo apoye-mos. 
No es imprescindible, pero se-guro 
será más caro hacer una res-tauración 
de la mesa. 
Figura 11. Soporte de soldador típico. 
● Desoldador: es un succionador de 
estaño que nos permite, en forma 
sencilla cuando queremos corregir o 
desoldar un componente, aspirar rá-pidamente 
el estaño cuando se ablan-da. 
En nuestros primeros fracasos 
cuando soldemos, se convertirá en un 
aliado fundamental (Figura 12). 
La electrónica 
Figura 12. Desoldador de succión o vacío. 
● Morsita o pinzas para manos li-bres: 
cuando tenemos que soldar ne-cesitamos 
que las partes estén en una 
posición cómoda. Con alguno de es-tos 
implementos podemos ubicarlas 
en el aire y sin contactos molestos. 
● Pinzas y alicates: permiten tomar 
objetos para manipularlos con preci-sión, 
doblar las patitas de los compo-nentes, 
cortar y pelar cables, etcétera. 
● Destornilladores: planos y philips, 
nos permitirán ajustar potencióme-tros 
variables, borneras, separar inte-grados 
de sus zócalos, etcétera. 
● Tester: pieza fundamental de nuestro 
taller, nos permitirá medir la conti-nuidad, 
la resistencia, la corriente y la 
tensión de nuestro circuito (Figura 13). 
Por último, recomendamos buscar un 
lugar cómodo para poder trabajar, don-de 
podamos dejar nuestro proyecto a 
medio terminar sin tener que guardar-lo 
y sacarlo cada vez. Es necesario que 
seamos ordenados con nuestros com-ponentes, 
y para ello podemos utilizar 
diversas cajitas que nos permitan clasi-ficar 
los elementos para encontrarlos 
con rapidez cuando los necesitemos. 
Tener todos los componentes en un 
frasco nos hará perder mucho tiempo. 
257
Consejos para soldar 
Para finalizar este apéndice, daremos al-gunos 
consejos útiles para soldar, dado 
que todo error que cometamos en este 
punto hará que detectar dónde se pro-duce 
la falla sea mucho más complica-do. 
Además, una soldadura mal hecha 
puede ocasionar problemas en el cir-cuito 
en un momento inesperado. 
Uno de los errores más habituales es el 
de la soldadura fría, que ocurre cuan-do 
no aplicamos el calor en forma co-rrecta 
y el estaño está soldado en forma 
parcial y muy débil. Para evitarlo, de-bemos 
usar un soldador con la poten-cia 
adecuada para el tipo de estaño que 
utilicemos. También el estaño debe ser 
el adecuado para las uniones que reali-cemos. 
Todas las superficies que una-mos 
deben estar limpias, igual que la 
punta del soldador. Cuando aplicamos 
el estaño, lo debemos hacer sobre la su-perficie 
calentada y no sobre la punta 
del soldador. Una característica que po-demos 
usar para verificar la calidad de 
nuestra soldadura es su color: si su aca-bado 
es brillante, es un buen signo. La 
unión mate nos indica una posible sol-dadura 
fría. Otro problema habitual es 
creer que el estaño nos servirá no sólo 
para la conducción sino también para 
el sostén mecánico de la unión. Esto no 
es así. Es fácil de comprobar al ver có-mo 
se comporta el material cuando lo 
tenemos en el rollo: es blando y muy 
maleable. Por lo tanto, la unión mecá-nica 
entre los componentes debe estar 
dada por otros aspectos de la conexión. 
El estaño sólo sirve para unir de forma 
eléctrica, pero no de forma mecánica. 
A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 
258 
Figura 13. Tester digital.
Robótica 
Sitios web 
Apéndice B 
En este apartado conoceremos un 
listado de los sitios que nos ayudarán 
a encontrar información adicional 
sobre cuestiones relacionadas con 
la robótica. Además, conoceremos 
algunas aplicaciones que podemos 
utilizar para ampliar nuestras 
posibilidades de programación. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Listado de sitios 260 
Aplicaciones útiles 267
LISTADO DE SITIOS 
Pablin 
www.pablin.com.ar 
Un buen lugar para profundizar aquellos aspectos vinculados a la electrónica que 
no hayamos comprendido de nuestro robot. Tiene cursos de programación y pla-nos 
de circuitos que podemos fabricar para usar en nuestra creación. 
RobotIA 
www.robotia.com.ar 
Sitio desarrollado por Néstor Balich, uno de los colaboradores de este libro. Pre-senta 
videos, noticias y proyectos de robótica autónoma y controlada. Tiene in-formación 
de los equipos del CAETI que participan en campeonatos de fútbol. 
B. SITIOS WEB 
260
Curso básico de electrónica 
www.electronica2000.net 
Si nuestros conocimientos de electrónica son muy básicos, en este sitio po-demos 
encontrar un buen tutorial que nos ayudará a esclarecer el mágico 
funcionamiento de nuestros circuitos. Comienza con conceptos funda-mentales 
y recorre una amplia gama de temas electrónicos. 
FIRA 
www.fira.net 
FIRA (Federation of International Robosoccer Association) es una de las 
dos ligas internacionales sobre fútbol de robots. En su sitio podemos en-contrar 
el reglamento de todas las categorías, los programas de simulación, 
y noticias y videos de todos los torneos que se llevan a cabo. 
Listado de sitios 
261
B. SITIOS WEB 
RoboCup 
www.robocup.org 
Ésta es la otra liga internacional de fútbol de robots, que incluye competencias 
de rescate. En su sitio podemos ver imágenes y videos de las competencias, en-terarnos 
de las últimas novedades y conocer los sitios de los participantes. 
Carnegie Mellon – The Robotics Institute 
www.ri.cmu.edu 
A nuestro humilde entender, el centro de robótica más importante del pla-neta 
en todos los niveles. A pesar de que el MIT tiene grandes desarrollos 
en software, con respecto al hardware estos muchachos nos hacen sacar el 
sombrero. En este sitio podemos encontrar miles de artículos y enlaces pa-ra 
divertirnos por el resto de nuestras vidas. 
262
Robots en Argentina 
http://robots-argentina.com.ar 
Listado de sitios 
Un espacio lleno de noticias, artículos, enlaces, desarrollos y otros mate-riales 
sobre robótica coordinado por Eduardo J. Carletti. Podemos encon-trar 
información de sensores, actuadores, circuitos, baterías, controladores 
y todo lo que necesitemos para construir nuestros robots. 
Microchip 
www.microchip.com 
La cuna de nuestro querido PIC16F84 y todos sus primos y hermanos. Aquí 
encontraremos todas las hojas de datos, descripciones, comparaciones, bench-marks 
y demás sobre la línea de micros de esta empresa. Si queremos fami-liarizarnos 
con estos productos, no podemos dejar de visitar este sitio. 
263
B. SITIOS WEB 
Atmel 
www.atmel.com 
Y si nombramos a Microchip, no podemos dejar de lado a su empresa com-petidora, 
los micros de Atmel. De la misma manera, en este sitio podemos 
encontrar toda la información sobre los micros que algunos prefieren por 
sobre los PICs por sus cualidades y buen precio. 
FIRST 
www.usfirst.org 
Sitio de la competencia FIRST (For Inspiration and Recognition of Science and 
Technology). Esta liga incluye diversas categorías de robótica inspiradas en pro-blemas 
científicos concretos. Incluye la FLL, First Lego League, orientada a jó-venes 
de 9 a 14 años que compiten con los robots de Lego. 
264
Laboratorio de robótica del MIT 
http://robots.mit.edu 
El MIT tampoco es un mal lugar para investigar sobre estos temas. En este 
sitio específico encontraremos los detalles de todos sus proyectos de robots es-paciales, 
móviles y otros. La lista de artículos presentados es notable, y algu-nos 
de ellos están disponibles para nuestra lectura. 
Grupo de Investigación en Robótica Autónoma de la UAI 
www.caeti.uai.edu.ar/gidra/ 
Éste es nuestro grupo de robótica del Centro de Altos Estudios de la UAI. Allí 
investigamos sobre robótica situada, y aplicamos estos estudios a fútbol de ro-bots, 
de rescate y otros. También nos preocupa la inserción de la robótica en la 
educación y para ello trabajamos mucho en ambientes educativos. 
Listado de sitios 
265
B. SITIOS WEB 
Robocup en el Instituto Tecnológico de Monterrey 
www.cem.itesm.mx/robocup/ 
El ITESM ha participado asiduamente de la RoboCup. En este sitio pode-mos 
encontrar información sobre los diversos equipos participantes, códigos 
fuentes para comenzar a trabajar, videos, reglamentos y muchas cosas más pa-ra 
empezar a soñar con la posibilidad de participar en la liga. 
Wowwee 
www.wowwee.com 
El mayor creador y fabricante de robots de producción masiva. Creadores 
del Robosapiens, Flytech y otros robots que parecen de juguete pero que 
permiten desarrollar muchísimas investigaciones con los aspectos mecáni-cos 
y electrónicos solucionados. 
266
Aplicaciones útiles 
267 
APLICACIONES ÚTILES 
Microsoft Robotics Studio 
http://msdn.microsoft.com/robotics/ 
Entorno de robótica basado en Windows para desarrollos académicos, hobbistas 
y comerciales. Permite vincularse con diversas plataformas de hardware y cuen-ta 
con un motor de simulación basado en física muy potente. 
Proyecto Rossum 
http://rossum.sourceforge.net/ 
Rossum es un proyecto para el desarrollo open source de plataformas de 
software para robótica. Ya está en funcionamiento un simulador donde po-demos 
poner en práctica nuestros conocimientos.
B. SITIOS WEB 
Webots 
www.cyberbotics.com 
Webots es el software comercial más popular de prototipación y simulación 
de robots móviles. Puede vincularse con diversas plataformas de hardware, de 
manera tal que al finalizar la simulación podamos bajar el código al robot re-al. 
Tiene modelado a Aibo, Qrio y otros robots de amplia fama internacional. 
CCS 
www.ccsinfo.com 
Si el Basic no nos alcanza, aquí podemos encontrar diversos compiladores 
para PIC. Tenemos versiones para los micros más importantes de Micro-chip. 
268 
En todos los casos, están basados en el lenguaje C. Podemos usarlos 
en línea o con una IDE en Windows muy potente.
Robótica 
Servicios 
al lector 
En este último apartado conoceremos 
el listado de publicaciones que nos 
ayudaron a obtener conocimientos 
y que, sin dudas, serán de utilidad para 
continuar con nuestro aprendizaje. 
SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com 
Bibliografía 270 
Indice temático 275 
Equivalencia de términos 277 
Abreviaturas comúnmente 
utilizadas 279
SERVICIOS AL LECTOR 
BIBLIOGRAFÍA 
General 
Santos, J. y Duro, R. (2004). Evolución Artificial y Robótica Autónoma. 
Coedición: Alfaomega-Rama. 
Meystel, A. (1991). Autonomous Mobile Robots. Vehicles with Cognitive 
Control. Singapore: World Scientific. 
Connell, J. H. (1990). Minimalist Mobile Robotics: A Colony-style 
Architecture for a Mobile Robot. Cambridge: Academic Press. 
Barrientos, A. y otros. (1997). Fundamentos de Robótica. Mc Graw Hill. 
Angulo Usategui, J. M. (1999). Robótica Práctica. Madrid: Paraninfo. 
Ollero Baturone, A. (2001). Robótica: Manipuladores y robots móviles. 
España: Marcombo. 
Angulo J. M., Romero Yesa S. y Angulo Martínez I. (2002). Microbótica. 
Tecnología, aplicaciones y montaje práctico. Madrid: Thomson - Paraninfo. 
Torres Medina F., Gil P., Pomares J. y Puente S. (2002). 
Robots y sistemas sensoriales. Prentice Hall. 
Artículos diversos de Wikipedia. 
Capítulo 1 
Zabala, G. y Mon, G. (2005, mayo). Introducción a la robótica. 
Revista Power Users #20. 
Zabala, G. y Mon, G. (2005, junio). Primeros pasos en Robótica Autónoma. 
Revista Power Users #21. 
Zabala, G. y Mon, G. (2005, julio). Kit Lego Mindstorms. 
Revista Power Users #22. 
Zabala, G. y Mon, G. (2005, agosto). Basic Stamp. 
Revista Power Users #23. 
Zabala, G. y Mon, G. (2005, octubre). Kits Latinoamericanos. 
Revista Power Users #25. 
270
Bibliografía 
Zabala, G. y Mon, G. (2005, noviembre). Kit BlockyTronic 
y Fischer Technik. Revista Power Users #26. 
Zabala, G. y Mon, G. (2006, enero). Robótica sin kits (I). 
Revista Power Users #28. 
Zabala, G. y Mon, G. (2006, marzo). Robótica sin kits (II). 
Revista Power Users #30. 
Ramos, J., González Florentino, R. y Meléndez S. Clasificación de los robots. 
Consultado el 21 de enero de 2007, Robotec Tecnología Robótica, página 
web: http://robotec11.tripod.com/id4.html. 
Capítulo 2 
Lindsay, A. (2004). Robotics with the Boe-Bot. California: Parallax. 
González Gómez, J. y Prieto-Moreno Torres, A. (2004, noviembre). 
Robótica en la Universidad. Madrid: Universidad Autónoma de Madrid. 
Lindsay, A. (2004). What´s a Microcontroller. Rocklin, California: Parallax. 
Capítulo 3 
Zabala, G., Mon, G. y Balich, N. (2006, abril). 
Astro: construyendo nuestro primer robot (I). Revista Power Users #31. 
Zabala, G., Mon, G. y Balich, N. (2006, mayo). 
Astro: construyendo nuestro primer robot (II). Revista Power Users #32. 
Zabala, G., Mon, G. y Balich, N. (2006, junio). 
Astro: construyendo nuestro primer robot (III). Revista Power Users #33. 
Microchip (2005). Datasheet PIC16F87/88. Chandler, Arizona: Microchip. 
Capítulo 4 
Upadhye, R. S. (2004, abril). Selection of Batteries and Fuel Cells 
for Yucca Mountain Robots. 10th International Conference on Robotics 
and Remote Systems For Hazardous Environments. Gainesville, FL: 
American Nuclear Society. 
271
SERVICIOS AL LECTOR 
Young, J. y Bennett, J. (2000). Elec 201: Course Notes. Batteries. 
Houston, Texas: Rice University. Obtenido el 14 de abril de 2007 de 
www.owlnet.rice.edu/~elec201/Course_Notes.htm#contents. 
MIT 6.270 book. (1997). Obtenido el 14 de abril de 2007 
de http://mil.ufl.edu/imdl/6270/DEFAULT.HTM. 
Capítulo 5 
MikroElektronika (2006). Manual del usuario de mikroBasic. 
Belgrado: mikroElektronika. 
Capítulo 6 
Wikipedia. Motor de corriente continua. Obtenido el 2 de junio de 2007 
de http://es.wikipedia.org/wiki/Motor_de_corriente_continua. 
Motor de corriente continua C.C. Obtenido el 2 de junio de 2007 
de www.unicrom.com/Tut_MotorCC.asp. 
Motor de corriente continua. Obtenido el 2 de junio de 2007 
de http://personales.com/peru/arequipa/compupari/. 
Rueda, L. Secuencia para Motores-PaP Unipolares. 
Obtenido el 4 de junio de 2007 
de http://r-luis.xbot.es/ebasica2/mpap_03.html. 
Tutorial sobre motores paso a paso. Obtenido el 4 de junio de 2007 
de www.todorobot.com.ar/informacion/tutorial%20stepper/ 
stepper-tutorial.htm. 
Cubas García, A. Introducción a los motores paso a paso. Obtenido el 4 
de junio de 2007 de www.redeya.com/electronica/tutoriales/ 
mpp/mpp.htm. 
Teoría del funcionamiento de los servomotores. Obtenido el 4 de junio 
de 2007 de www.todorobot.com.ar/documentos/servomotor.pdf. 
Baliñas Santos, J. (2006). Trucaje de Servomotores Futaba 3003. Seminario 
de diseño y construcción de microrrobots. Universidad de Alcalá. 
Fernández, J. (2006). ¿Qué es un servomotor?. Obtenido el 4 de junio 
de 2007 de www.zonabot.com/actuadores/que-es-un-servomotor-.html. 
272
Bibliografía 
Capítulo 7 
Abad Cartón, G. (2006). Sensores en robótica. Seminario de diseño 
y construcción de microrrobots. Universidad de Alcalá. 
Microchip (1998). Datasheet PIC16F84A. Chandler, Arizona: Microchip. 
López, G. y Margni, S. (2003). Motores y Sensores en Robótica. 
Proyecto de grado de la Facultad de Ingeniería de la Universidad 
de la República Oriental del Uruguay. 
Zabala, G., Mon, G. y Balich, N. (2006, junio). Astro: construyendo 
nuestro primer robot (III). Revista Power Users #33. 
Manuel Fernando Campos Cerda, M. F., Castañeda Pérez R. 
y Contreras Torres A. C. (1998). Implementación de un sistema 
de desarrollo utilizando los microcontroladores PIC Microchip Technology. 
Universidad de Guadalajara. 
Capítulo 8 
Lober, J. A. V. (2003). Técnicas de inteligencia artificial en la construcción 
de robots móviles autónomos. Trabajo de grado. Facultad de Ciencias 
de la Universidad de Salamanca. 
Martin, F. (1995). El arte del diseño con Lego. Documento interno 
de Lego con traducción del Ing. Hazel Díaz. 
Carreras, M., Hospital, E., Salellas, J. y Batlle, J. (2000). Arquitectura 
mecánica de un prototipo de robot bípedo. Comunicación de un proyecto 
de investigación de la Universidad de Girona. 
Arango Saveedra A., Satizábal Mejía, H. F. y Loaiza Correa, H. (2004) 
Diseño e implementación de un robot móvil hexápodo. 
Universidad del Valle, Colombia. 
Sucar, L. E. Robótica Móvil: Arquitecturas. Presentación 
para el Departamento de Computación del ITESM Cuernavaca. 
González Gómez, J. (2004). Diseño de robots ápodos: Cube revolutions. 
Escuela Politécnica Superior de la Universidad Autónoma de Madrid. 
Presentación en la Semana de la Ciencia Andaluza. 
273
SERVICIOS AL LECTOR 
Ruiz del Solar, J., Zagal, J. C. Documentación de la materia EL710 
Robótica Móvil. Universidad de Chile. Obtenida el 24 de junio 
de http://robotica.li2.uchile.cl/el710/. 
Capítulo 9 
Zabala, G. (2004, julio). Roboliga - Publicación del artículo presentado 
en el 14 Encuentro de Actualización Docente. 
En Revista Novedades Educativas. 
Remiro, F. Microcontroladores: las interrupciones. Obtenido el 30 de julio 
de 2007 de www.terra.es/personal/fremiro/interrupciones.htm. 
Capítulo 10 
Martins da Silva Aparicio, P. M. (2000). Design and implementation of 
a population of cooperative autonomous robots. Tesis de grado. 
Universidad Técnica de Lisboa. 
Zabala, G. (2004, noviembre). Programación en Fútbol de Robots. 
Revista .Code #7. 
Sotelo Iniesta, E. D. (2006). Diseño e implementación de los robots F180 
del ITAM. Tesis de grado. Instituto Tecnológico Autónomo de México. 
Apéndice A 
González Romero N. (2005). Manual de soldadura. Universidad 
Politécnica de Madrid. Documento presentado en Cybertech 2005. 
Bodington, C. (2007). Lectura de capacitores. Obtenido el 14 
de septiembre de 2007 de 
www.conexionelectronica.com/content/view/23/29/. 
Palazzesi, A. (2007). Herramientas necesarias para el taller del hobbista 
de la electrónica. Obtenido el 14 de septiembre de 2007 
de www.ucontrol.com.ar. 
274
ÍNDICE TEMÁTICO 
A 
Actuadores 23, 39 
Acuáticos 21, 174 
Aéreos 21, 173 
Alcance 111 
Analógico 35, 64, 158 
Arreglo 114 
Assembler 97, 107, 118 
Autónomos 22 
B 
Baterías 79, 169 
Bipolar 41, 137 
Bootloader 67, 96 
Bumpers 63, 153 
Buzzers 23 
C 
Campo magnético 127 
Capacitor 252 
Cargador 87 
CCP 65 
Cianocrilato 57 
Cinemática 194 
Circuitos intermedios 34 
Código fuente 100 
Comparador 66 
Compilador 96, 98 
Control automatizado 22 
Controlador 64, 157, 169 
Corriente continua 39, 127, 249 
D 
Depurador 103, 105 
Digital 35, 152 
Índice temático 
Diodo 254 
Display 23, 41 
E 
EEPROM 28, 65 
Efecto hall 156 
Electricidad 248 
Encoder 23, 196 
Engranajes 190 
Estator 40 
F 
Final de carrera 53 
Firmware 24, 26 
Fotorresistencia 35, 55 
Funciones 102 
H 
Híbridos 21, 22 
Holonómica 195 
I 
ICSP 66, 74 
Industriales 19 
Infrarrojo 37, 55, 154 
Interrupciones 206 
K 
Kits 24 
L 
LDR 55, 162 
Leds 23 
Lego 26, 56 
Litio 82 
275
M 
MDF 57 
Memoria 65 
Metacrilato 58 
MicroBasic 95, 98 
Microcontrolador 30, 48, 64 
Micromotor 134 
Motor 23, 25, 39, 126, 172 
Motorreductores 50, 134 
N 
Níquel 81, 83 
O 
Odometría 196 
Omnidireccional 51, 182, 224 
Operadores 116 
P 
Palm 31 
Paso a paso 40, 135 
PDA 31 
PFM 132 
PIC 49 
Pinout 67 
Pipelined 50 
Placa experimental 71 
Plantillas 102 
Plomo 84 
Pocket PC 31 
Poleas 193 
Portapilas 86 
Potenciómetro 163 
Procesador 24 
Procesamiento 23 
Programador 71, 96 
Protoboard 28, 69 
Puente H 67, 129 
PVC 57 
PWM 42, 65, 131, 141 
R 
RAM 65 
Recargar 87 
Resistencia 251 
Reusabilidad 25, 56 
Rotor 40, 136 
S 
Sensor 23, 25, 33, 53, 64, 148, 171, 203 
Sentencias 117 
Servo 140 
Servomotor 41 
Soldar 258 
T 
Tensión 250 
Terrestres 21, 174 
Timer 65 
Tokens 108 
Torque 127 
Tracción diferencial 51, 185, 224 
Transistor 255 
U 
Ultrasonido 37 
Unipolar 41, 137 
USART 65 
V 
Variables 108, 112 
Visibilidad 112 
Vitrificación 79 
Voltaje nominal 79 
SERVICIOS AL LECTOR 
276
Equivalencia de términos 
277 
EQUIVALENCIA DE TÉRMINOS 
En este libro Otras formas En inglés ▲ ▲ ▲ 
Acceso dial up Acceso de marcación 
Actualización Update, Upgrade 
Actualizar Refresh 
Ancho de banda Bandwidth 
Archivos Filas, Ficheros, Archivos electrónicos Files 
Archivos adjuntos Archivos anexados o anexos Attach, Attachment 
Backup Copia de respaldo, Copia de seguridad 
Balde de pintura Bote de pintura 
Base de datos Database 
Booteo Inicio/Arranque Boot 
Buscador Search engine 
Captura de pantalla Snapshot 
Carpeta Folder 
Casilla de correo Buzón de correo 
CD-ROM Disco compacto Compact disk 
Chequear Checar, Verificar, Revisar Check 
Chip Pastilla 
Cibercafé Café de Internet 
Clipboard Portapapeles 
Cliquear Pinchar 
Colgar Trabar Tilt 
Controlador Adaptador Driver 
Correo electrónico E-Mail, 
Electronic Mail, Mail 
Descargar programas Bajar programas, Telecargar programas Download 
Desfragmentar Defrag 
Destornillador Desarmador 
Disco de inicio Disco de arranque Startup disk 
Disco rígido Disco duro, Disco fijo Hard disk 
Disquete Disco flexible Floppy drive 
Firewall Cortafuego 
Formatear Format 
Fuente Font 
Gabinete Chasis, Cubierta 
Grabadora de CD Quemadora de CD CD Burn 
Grupo de noticias Newsgroup
SERVICIOS AL LECTOR 
En este libro Otras formas En inglés ▲ ▲ ▲ 
Handheld Computadora de mano 
Hipertexto HyperText 
Hospedaje de sitios Alojamiento de sitios Hosting 
Hub Concentrador 
Impresora Printer 
Inalámbrico Wireless 
Libro electrónico E-Book 
Lista de correo Lista de distribución Mailing list 
Motherboard Placa madre, Placa base 
Mouse Ratón 
Navegador Browser 
Notebook Computadora de mano, 
278 
Computadora portátil 
Offline Fuera de línea 
Online En línea 
Página de inicio Home page 
Panel de control Control panel 
Parlantes Bocinas, Altavoces 
PC Computador, Ordenador, Computadora Personal Computer 
Personal, Equipo de cómputo 
Pestaña Ficha, Solapa 
Pila Batería Battery 
Placa de sonido Soundboard 
Plug  Play Enchufar y usar 
Por defecto Por predefinición By default 
Programas Aplicación, Utilitarios Software, Applications 
Protector de pantalla Screensaver 
Proveedor de acceso Internet Service 
a Internet Provider 
Puente Bridge 
Puerto Serial Serial Port 
Ranura Slot 
Red Net, Network 
Servidor Server 
Sistema operativo SO Operating System (OS) 
Sitio web Site 
Tarjeta de video Placa de video 
Tipear Teclear, Escribir, Ingresar, Digitar 
Vínculo Liga, Enlace, Hipervínculo, Hiperenlace Link
Abreviaturas comúnmente utilizadas 
279 
ABREVIATURAS COMÚNMENTE UTILIZADAS 
Abreviatura Definición ▲ ▲ 
ADSL Asymmetric Digital Subscriber Line o Línea de abonado digital asimétrica 
AGP Accelerated Graphic Port o Puerto acelerado para gráficos 
ANSI American National Standards Institute 
ASCII American Standard Code of Information Interchange 
o Código americano estándar para el intercambio de información 
BASIC Beginner´s All-Purpose Symbolic Instruction Code 
BIOS Basic Input/Output System 
Bit Binary digit (Dígito binario) 
Bps Bits por segundo 
CD Compact Disk 
CGI Common Gateway Interface 
CPU Central Processing Unit o Unidad central de proceso 
CRC Cyclic Redundancy Checking 
DNS Domain Name System o Sistema de nombres de dominios 
DPI Dots per inch o puntos por pulgada 
DVD Digital Versatile Disc 
FTP File Transfer Protocol o Protocolo de transferencia de archivos 
GB Gigabyte 
HTML HyperText Mark-up Language 
HTTP HyperText Transfer Protocol 
IDE Integrated Device Electronic 
IEEE Institute of Electrical and Electronics Engineers 
IP Internet Protocol 
IR Infra Red 
IRC Internet Relay Chat 
IRQ Interrupt Request Line o Línea de petición de interrupción 
ISO International Organization Standard u Organización de Estándares 
Internacionales 
ISP Internet Service Provider o Proveedor de acceso a Internet 
KB Kilobyte 
LAN Local Area Network o Red de área local 
LCD Liquid Crystal Display o Pantalla de cristal líquido 
LPT Line Print Terminal 
MB Megabyte 
MBR Master Boot Record 
MHz Megahertz
SERVICIOS AL LECTOR 
Abreviatura Definición ▲ ▲ 
NETBEUI Network Basic Extended User Interface o Interfaz de usuario extendida NETBios 
OEM Original Equipment Manufacturer 
OS Operative System 
OSI Open Systems Interconnection o Interconexión de sistemas abiertos 
PCMCIA Personal Computer Memory Card International Association 
PDA Personal Digital Assistant 
PDF Portable Document Format 
Perl Practical Extraction and Report Language 
PGP Pretty Good Privacy 
PHP Personal Home Page Tools, ahora llamado PHP Hypertext Preprocessor 
POP3 Post Office Protocol 3 o versión 3 del Protocolo de oficina de correo 
PPP Point to Point Protocol o Protocolo punto a punto 
RAM Random Access Memory 
ROM Read Only Memory 
SMTP Simple Mail Transport Protocol o Protocolo simple 
280 
de transferencia de correo 
SPX/IPX Sequence Packet eXchange/Internetwork Packet eXchange o Intercambio 
de paquetes secuenciales/Intercambio de paquetes entre redes 
SQL Structured Query Language 
SSL Secure Socket Layer 
TCP/IP Transfer Control Protocol / Internet Protocol o Protocolo de control de 
transferencia / Protocolo de Internet 
UML Lenguaje de Modelado Unificado 
UDP User Datagram Protocol 
UPS Uninterruptible Power Supply 
URL Uniform Resource Locator 
USB Universal Serial Bus 
VGA Video Graphic Array 
WAN Wide Area Network o Red de área extensa 
WAP Wireless Application Protocol 
WWW World Wide Web 
XML Extensible Markup Language
usershop.redusers.com 
Vi s i t e n u e s t ro sitio web 
Utilice nuestro sitio usershop.redusers.com: 
• Vea información más detallada sobre cada libro de este catálogo. 
• Obtenga un capítulo gratuito para evaluar la posible compra 
de un ejemplar. 
• Conozca qué opinaron otros lectores. 
• Compre los libros sin moverse de su casa y con importantes 
descuentos. 
• Publique su comentario sobre el libro que leyó. 
• Manténgase informado acerca de las últimas novedades 
y los próximos lanzamientos. 
 También puede conseguir nuestros libros en kioscos o puestos 
de periódicos, librerías, cadenas comerciales, supermercados y 
casas de computación de todo el país. 
CLAVES PARA COMPRAR 
UN LIBRO DE 
COMPUTACIÓN 
Sobre el autor 
y la editorial 
1 
Revise que haya un cuadro 
sobre el autor, en el que se 
informe sobre su experiencia 
en el tema. En cuanto a la 
editorial, es conveniente que 
sea especializada en 
computación. 
Preste atención 
al diseño 
2 
Compruebe que el libro tenga 
guías visuales, explicaciones 
paso a paso, recuadros con 
información adicional y gran 
cantidad de pantallas. Su 
lectura será más ágil y 
atractiva que la de un libro 
de puro texto. 
Compare 
precios 
3 
Suele haber grandes 
diferencias de precio entre 
libros del mismo tema; si no 
tiene el valor en la tapa, 
pregunte y compare. 
¿Tiene valores 
agregados? 
4 
Desde un sitio exclusivo en la 
Red hasta un CD-ROM, desde 
un Servicio de Atención al 
Lector hasta la posibilidad de 
leer el sumario en la Web 
para evaluar con tranquilidad 
la compra, o la presencia de 
buenos índices temáticos, 
todo suma al valor de un 
buen libro. 
Verifique 
el idioma 
5 
No sólo el del texto; también 
revise que las pantallas 
incluidas en el libro estén en 
el mismo idioma del 
programa que usted utiliza. 
Revise la fecha 
de publicación 
6 
Está en letra pequeña en las 
primeras páginas; si es un libro 
traducido, la que vale es la 
fecha de la edición original. 
Compra Directa! usershop.redusers.com 
 Conéctese con nosotros y obtenga beneficios exclusivos: 
ARGENTINA  (011) 4110-8700 CHILE  (2) 810-7400 ESPAÑA  (93) 635-4120 
MÉXICO (55) 5350-3099, desde el interior sin costo al 01-800-2888-010 
e-mail a: usershop@redusers.com
Visite nuestro sitio en la Web 
 usershop.redusers.com 
Redes GNU/Linux 
En las páginas de este libro encon-traremos 
un recorrido por aquellos 
temas vinculados al armado de redes 
profesionales, y descubriremos ca-da 
una de las herramientas que 
GNU/Linux posee para su adminis-tración 
avanzada. 
COLECCIÓN: MANUALES USERS 
336 páginas / ISBN 978-987-1347-55-1 
Mundo Linux 
Este manual contiene informes, secre-tos, 
consejos y trucos que nos permiti-rán 
descubrir y aprovechar todo el po-tencial 
que posee este sistema opera-tivo. 
Está destinado a usuarios que ya 
tienen alguna experiencia y desean 
dominar sus herramientas. 
COLECCIÓN: MANUALES USERS 
256 páginas / ISBN 978-987-1347-54-4 
Administrador de Redes 
En este manual encontraremos en for-ma 
didáctica, clara y precisa todos los 
conceptos vinculados a la planifica-ción, 
instalación y puesta en funcio-namiento 
de una red en una empresa 
pequeña utilizando Windows Small 
Business Server. 
COLECCIÓN: MANUALES USERS 
336 páginas / ISBN 978-987-1347-53-7 
101 Trucos para la PC 
Este libro nos permitirá acelerar el fun-cionamiento 
de nuestra PC, convertir-la 
en una fortaleza frente a los ata-ques, 
optimizar el rendimiento, nave-gar 
más rápido por Internet, aprove-char 
al máximo las nuevas caracterís-ticas 
de Office 2007 y mucho más. 
COLECCIÓN: MANUALES USERS 
336 páginas / ISBN 978-987-1347-48-3 
El gran libro del desarrollador 
En este libro encontraremos el mejor 
material para estar actualizados con 
las últimas tecnologías, herramientas 
y recursos del mundo de la progra-mación. 
256 páginas a todo color donde 
los expertos desarrollan los conceptos 
fundamentales de cada plataforma. 
COLECCIÓN: MANUALES USERS 
256 páginas / ISBN 978-987-1347-47-6 
202 Secretos de Linux 
Cómo optimizar el sistema y volverlo 
más seguro, aumentar el rendimiento 
del equipo, habilitar funciones espe-ciales 
y automatizar tareas cotidianas, 
son sólo algunos de los objetivos que 
lograremos con los más de 200 secre-tos 
revelados en este libro. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 978-987-1347-41-4 
I Un servicio exclusivo para responder a sus consultas sobre nuestros productos
¡GRATIS LÉALO ANTES!  En nuestro sitio puede obtener en forma 
gratuita un capítulo del libro que quiera. 
Servicio de Atención al Lector  lectores@redusers.com 
Excel 2007 
Este manual brinda los conocimientos 
necesarios para dominar la nueva ver-sión 
de Excel. Está destinado tanto a 
quienes nunca utilizaron Excel, como 
también a quienes buscan conocer y 
dominar las novedades de esta pode-rosa 
herramienta. 
COLECCIÓN: MANUALES USERS 
352 páginas / ISBN 978-987-1347-50-6 
Inteligencia Artificial 
En este libro empezaremos a descu-brir 
la esencia detrás de esta metodo-logía 
del desarrollo de videojuegos y a 
crear algoritmos que tomen decisio-nes 
o las apoyen de manera inteligen-te. 
Una obra práctica reforzada con te-oría 
para aprender más rápido. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 978-987-1347-51-3 
PC Total 
Este libro contiene cientos de activi-dades, 
procedimientos, ideas y conse-jos 
que nos permitirán obtener el máx-imo 
potencial de nuestra PC. Destina-do 
a quienes utilizan su computadora 
especialmente en la oficina o en su 
casa para trabajar o estudiar. 
COLECCIÓN: MANUALES USERS 
224 páginas / ISBN 978-987-1347-49-0 
Secretos PC 
En esta obra presentamos una selec-ción 
de los mejores secretos, solucio-nes, 
ideas y actividades para aprove-char 
nuestra computadora al máximo. 
Con explicaciones desarrolladas a tra-vés 
de procedimientos paso a paso, guí-as 
visuales y consejos de los expertos. 
COLECCIÓN: MANUALES USERS 
224 páginas / ISBN 978-987-1347-42-1 
Windows Vista 
Este manual contiene un material imper-dible 
para aprovechar al máximo todo el 
potencial del nuevo Windows Vista. En 
sus páginas encontraremos cientos de 
trucos, claves y secretos para dominar 
nuestra PC en el trabajo y el hogar con 
el nuevo sistema operativo. 
COLECCIÓN: MANUALES USERS 
384 páginas / ISBN 978-987-1347-40-7 
Videojuegos 
En este libro encontrará todas las 
claves para aprender a programar un 
videojuego desde cero utilizando Visu-al 
C++ Express. Un material imperdible 
de principio a fin para quienes quieren 
hacer sus primeras armas en el mun-do 
de la creación de videojuegos. 
COLECCIÓN: MANUALES USERS 
416 páginas / ISBN 978-987-1347-38-4
Visite nuestro sitio en la Web 
 usershop.redusers.com 
Redes avanzadas 
Un libro especialmente pensado para 
instalar, configurar y administrar 
grandes redes. Siguiendo un ejemplo 
concreto, veremos todos los pasos a 
seguir para comprar el equipamiento, 
instalar el cableado, configurar los 
servidores y administrar la red 
COLECCIÓN: MANUALES USERS 
256 páginas / ISBN 978-987-1347-36-0 
Técnico en Redes 
Este libro brinda los conocimientos 
necesarios para planificar, instalar, 
configurar y administrar redes de 
computadoras para el hogar y la ofi-cina. 
Veremos cómo comprar e insta-lar, 
armar la red, compartir y adminis-trar 
los recursos y protegerla. 
COLECCIÓN: MANUALES USERS 
256 páginas / ISBN 978-987-1347-37-7 
Diseño Web con Flash 
Esta obra está destinada a usuarios 
que no conocen Flash y desean dom-inarlo, 
y a quienes buscan conocer los 
pasos a seguir para hacer que un sitio 
web luzca profesional. El material más 
completo sobre la herramienta elegi-da 
por los profesionales. 
COLECCIÓN: MANUALES USERS 
384 páginas / ISBN 978-987-1347-34-6 
3D Max Master 
En las páginas de este libro encon-traremos 
un recorrido por aquellos 
temas vinculados al armado de redes 
profesionales, y descubriremos ca-da 
una de las herramientas que 
GNU/Linux posee para su adminis-tración 
avanzada. 
COLECCIÓN: MANUALES USERS 
352 páginas / ISBN 978-987-1347-28-5 
Producción musical con la PC 
Este libro nos ofrece las herramientas 
teóricas y prácticas necesarias para 
poder componer y grabar música por 
computadora. Cada capítulo contiene 
ideas para dominar Ableton Live, Rea-son 
y Soundforge. Gracias al proyec-to 
integrador, dominaremos este arte. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 978-987-1347-24-7 
AJAX Web 2.0 
Este manual nos brindará los conoci-mientos 
y las herramientas necesa-rias 
para implementar soluciones ba-sadas 
en Ajax. Veremos los lenguajes 
JavaScript, PHP, .NET, Java, XML, y 
JSON. Conceptos teóricos y casos 
prácticos listos para implementar. 
COLECCIÓN: MANUALES USERS 
416 páginas / ISBN 978-987-1347-20-9 
I Un servicio exclusivo para responder a sus consultas sobre nuestros productos
¡GRATIS LÉALO ANTES!  En nuestro sitio puede obtener en forma 
gratuita un capítulo del libro que quiera. 
Visual Basic 20055 
En este libro encontraremos los prin-cipales 
conceptos de .NET y Visual 
Basic: .NET Framework, control de 
errores, orientación a objetos, desa-rrollo 
de aplicaciones Windows y 
Web, acceso a datos con ADO.NET y 
todo lo que necesita el desarrollador 
COLECCIÓN: MANUALES USERS 
368 páginas / ISBN 978-987-1347-32-2 
Grabación de CDs y DVDs 
Un material imperdible con las carac-terísticas 
para comparar las grabado-ras 
del mercado; la instalación y con-figuración 
para obtener el máximo 
rendimiento; y el software y los secre-tos 
de los expertos para exprimir la 
grabadora al máximo. 
COLECCIÓN: MANUALES USERS 
353 páginas / ISBN 978-987-1347-31-5 
Gestión empresarial 
El objetivo de esta obra es brindar las 
habilidades necesarias para la elabo-ración 
de proyectos que permitan me-jorar 
la gestión de la empresa utilizan-do 
Microsoft Excel, una herramienta 
indiscutida para llevar a cabo esta 
tarea en la compañía. 
COLECCIÓN: PROFESSIONAL TOOLS 
272 páginas / ISBN 978-987-1347-30-8 
Hardware 
Este manual brinda las habilidades pa-ra 
dar solución a los problemas que 
pueda tener una PC. Una obra a todo 
color, con ilustraciones y fotografías 
de los procedimientos, que no puede 
faltar en la biblioteca de ningún técni-co 
o amante del hardware. 
COLECCIÓN: MANUALES USERS 
352 páginas / ISBN 987-1347-18-9 
Edición de video 
En este manual encontrará las claves 
y los secretos para procesar un video 
desde cero. Desde la captura de las 
imágenes, analizaremos todos los pa-sos 
que se deben seguir para proce-sar, 
editar y grabar un video utilizan-do 
Adobe Premiere Pro. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 987-1347-14-6 
Proyectos Web 
A través del desarrollo de proyectos, 
esta obra combina todo el potencial 
de cuatro poderosas tecnologías: 
Flash del lado del cliente, PHP del la-do 
del servidor, XML como nexo entre 
cliente y servidor, y MySQL como ba-se 
de datos. 
COLECCIÓN: MANUALES USERS 
384 páginas / ISBN 987-1347-15-4 
          Servicio de Atención al Lector  lectores@redusers.com
Visite nuestro sitio en la Web 
 usershop.redusers.com 
I Un servicio exclusivo para responder a sus consultas sobre nuestros productos   Photoshop Master 
Este manual explica los mayores secre-tos 
de esta poderosa herramienta para 
crear los efectos más increíbles: conver-tir 
fotografías en historietas, crear obje-tos 
realistas, incorporar cambios climá-ticos, 
retocar las imágenes de personas, 
mejorar la iluminación y mucho más. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 987-1347-12-x 
Web Services con C# 
Entender Web Services es fundamen-tal 
para todo arquitecto, ingeniero, 
analista y desarrollador de software. 
En este libro se brindan las habilida-des 
necesarias para introducirse en 
el desarrollo, diseño y administración 
de Web Services empleando C#. 
COLECCIÓN: MANUALES USERS 
368 páginas / ISBN 987-1347-11-1 
Actualizar la PC 
Este libro es el mejor material para 
aprender a actualizar nuestra PC des-de 
cero. Descubriremos cómo evaluar 
las características técnicas de cada 
equipo, y reemplazar los componen-tes 
internos y los periféricos, sin tener 
conocimientos previos. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 987-1347-10-3 
DirectX 
En este libro se abordan los conceptos 
fundamentales vinculados a la progra-mación 
de gráficos 3D con DirectX, el 
API más utilizado para el desarrollo de 
aplicaciones interactivas y videojue-gos. 
Técnicas y procedimientos para 
crear objetos 3D profesionales. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 987-1347-04-9 
101 secretos de Windows 
Una obra imperdible con más de 100 
trucos que nos permitirán personali-zar 
y optimizar el funcionamiento de 
Windows XP. Todas las claves y los se-cretos 
para modificar el entorno grá-fico, 
acelerar las tareas, resolver fa-llas 
y mejorar el trabajo en red. 
COLECCIÓN: USERS EXPRESS 
272 páginas / ISBN 987-1347-01-4 
Creación de sitios Web 
Con este manual aprenderemos a di-señar 
y armar sitios web utilizando Fi-reworks, 
Flash y Dreamweaver. Cómo 
planificar y armar la estructura de las 
páginas, preparar las imágenes, regis-trar 
y publicar el sitio. Resultados sor-prendentes 
en cada trabajo. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 987-22995-9-5
¡GRATIS LÉALO ANTES!  En nuestro sitio puede obtener en forma 
gratuita un capítulo del libro que quiera. 
ADO.NET 
Con el objetivo fundamental de apro-vechar 
las optimizaciones que existen 
en cada una de las versiones de 
ADO.NET, este libro brinda las habilida-des 
necesarias para introducirse en 
las diferentes partes que lo componen. 
Una obra ideal para el desarrollador. 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 987-1347-07-3 
Técnico en Hardware 
Esta obra brinda las habilidades nece-sarias 
para diagnosticar y reparar fa-llas 
de hardware. Imprescindible pa-ra 
hacer frente a conflictos con el 
motherboard, el microprocesador o la 
memoria; fallas en la fuente de alimen-tación, 
periféricos y más. 
COLECCIÓN: MANUALES USERS 
224 páginas / ISBN 987-1347-05-7 
Técnico en Windows 
En esta obra se desarrolla el camino 
a seguir para implementar la solución 
adecuada a los problemas, y respon-der 
en forma profesional a las necesi-dades 
de clientes potenciales y em-presas. 
Una guía con todo lo que un 
técnico debe saber sobre Windows. 
COLECCIÓN: MANUALES USERS 
224 páginas / ISBN 987-1347-06-5 
Implementación y debugging 
Ésta es una obra de consulta perma-nente 
para el desarrollador. En ella se 
abordan dos etapas clave del ciclo de 
vida de un software: la implementa-ción 
de un proyecto y su debugging. 
Codificación exitosa y técnicas de de-bugging 
sin errores. 
COLECCIÓN: USERS.CODE 
320 páginas / ISBN 987-22995-7-9 
PHP5 
PHP es uno de los lenguajes de pro-gramación 
elegidos a nivel mundial 
para el desarrollo de sitios web. Este 
manual brinda el conocimiento para 
comprender las mejoras introducidas 
en esta versión y aplicarlas en los pro-yectos 
personales y profesionales. 
COLECCIÓN: USERS.CODE 
416 páginas / ISBN 987-22995-6-0 
Cómo proteger la PC 
Virus, spyware, troyanos y muchas 
amenazas más circulan por la Web 
buscando nuevas víctimas. ¿Cómo 
evitar intrusiones? ¿Cómo eliminar el 
spam? En este libro, las respuestas a 
estas preguntas y los fundamentos 
para evitarlas en el futuro. 
COLECCIÓN: MANUALES USERS 
352 páginas / ISBN 987-22995-4-4 
          Servicio de Atención al Lector  lectores@redusers.com
Visite nuestro sitio en la Web 
 usershop.redusers.com 
Linux para todos 
Esta obra explica, desde cero, cómo 
instalar y configurar Linux en nuestra 
PC. Personalización, optimización, 
mantenimiento, seguridad, las mejo-res 
aplicaciones y mucho más. ¡Llegó 
el momento de dar el gran paso y hac-er 
el cambio 
COLECCIÓN: MANUALES USERS 
320 páginas / ISBN 987-526-396-6 
Computación para fanáticos 
256 páginas destinadas a conocer los 
secretos para elegir e instalar dispo-sitivos, 
descubrir las mejores opcio-nes 
para optimizar el sistema operati-vo 
y hacer que nuestra PC vuele. El li-bro 
perfecto para quienes no nos con-formamos 
con sólo usar la PC. 
COLECCIÓN: MANUALES USERS 
256 páginas / ISBN 987-226-71-3-8 
Programación Web Java 
Este libro brinda las herramientas ne-cesarias 
para convertirse en un ver-dadero 
experto en el desarrollo de 
aplicaciones web con Java. Destina-do 
a todos aquellos desarrolladores 
que posean conocimientos de progra-mación 
orientada a objetos. 
COLECCIÓN: USERS.CODE 
352 páginas / ISBN 987-526-391-5 
El gran Libro del Software 
En este libro encontrará los tutoriales 
de las mejores herramientas, trucos y 
secretos para aprovechar al máximo 
su computadora. Explicaciones deta-lladas, 
con divisiones por categorías 
para facilitar el aprendizaje de las dis-tintas 
áreas de la informática actual. 
COLECCIÓN: MI PC 
256 páginas / ISBN 987-526-385-7 
Freeware 
Una recopilación de los mejores pro-gramas 
de licencia libre, explicados 
en detalle. Guías visuales y procedi-mientos 
paso a paso para llevar el uso 
de la PC a una nueva dimensión. En el 
CD incluido en el libro encontrará los 
programas listos para su instalación. 
COLECCIÓN: USERS EXPRESS 
368 páginas / ISBN 987-526-370-2 
Mi PC 
256 páginas que lo introducirán en el 
mundo de la informática. Sepa cómo 
manejarse en el entorno Windows, y 
aprenda a configurar sus principales 
elementos y aplicaciones. Entienda 
cómo funcionan la PC y sus compo-nentes. 
La guía inicial de la PC. 
COLECCIÓN: MI PC 
256 páginas / ISBN 987-526-369-9 
I Un servicio exclusivo para responder a sus consultas sobre nuestros productos
Vip users robotica
ROBOTICA 
CONTENIDO 
1 | INTRODUCCIÓN 
¿Qué es un robot? ¿Cuándo conviviremos con ellos? 
¿Tendremos diversos tipos de robots entre nosotros? 
¿Lavarán los platos? En este primer capítulo 
intentaremos responder éstas y otras preguntas. 
2 | COMPONENTES DEL ROBOT 
Tipos de procesamiento | ¿Cómo le damos movimiento 
a nuestro robot? | ¿Cómo captamos el mundo que nos 
rodea? | Materiales para la mecánica 
3 | LA INTELIGENCIA DEL ROBOT 
Componentes de nuestro robot | Objetivos del 
controlador | Conceptos fundamentales de un PIC | 
Listado de componentes del controlador | Descripción 
del circuito | Placa experimental | El programador 
4 | COMIDA DE ROBOTS 
La fuente de energia | Tipos de batería | Cargadores | 
Características de las celdas de las baterías | Voltaje | 
Capacidad | Densidad | Curva de descarga | Resistencia 
| Capacidad de recarga | Costo | Efecto memoria 
5 | HABLAR CON NUESTRO ROBOT 
Lenguajes de programación para robots | PicBasic Pro | 
Compilador CCS C | MikroBasic 
6 | RECORRER EL MUNDO 
El movimiento de los robots | Motor de corriente 
continua | Motor paso a paso | Servos 
7 | ADAPTACIÓN AL ENTORNO 
Sensores analógicos y digitales | Tipos y características 
8 | EL CUERPO DEL ROBOT 
Características de un robot autónomo | Robots aéreos | 
Robots subacuáticos | Robots terrestres | Sistemas con 
ruedas | El montaje de los elementos | Mecanismos de 
transmisión y reducción | Cinemática | Odometría 
9 | SALIR AL RUEDO 
Presentarnos a competir | Problemas frecuentes | 
Pruebas tradicionales 
10 | FÚTBOL DE ROBOTS 
Arquitectura y navegación de los robots | Sensado y 
detección del ambiente | Comportamiento colaborativo 
| Ligas nacionales e internacionales 
APÉNDICE | LA ELECTRÓNICA 
La ROBÓTICA ya no es parte de un futuro 
lejano sino de nuestro presente tangible. 
Y este manual es, sin dudas, la mejor forma de acceder 
a ella. En su interior encontraremos un recorrido teórico 
y práctico por cada uno de los conceptos fundamentales. 
Se explican en detalle cuáles son las partes que componen 
un robot y cada uno de los pasos por seguir para armar-lo 
y programarlo a nuestro gusto. Destinado a entusiastas y aficionados de la cien-cia 
ficción y las nuevas tecnologías, cada uno de los temas es desarrollado desde 
cero, y con la mayor claridad y profundidad. Su autor, coordinador del campeona-to 
argentino de Fútbol de Robots y miembro del Consejo Latinoamericano de 
RoboCup y Cochair de la FIRA, vuelca en este libro su vasta experiencia. 
redusers.com 
NIVEL 
EXPERTO 
AVANZADO 
INTERMEDIO 
PRINCIPIANTE 
En este sitio encontrará una gran variedad de recursos y software relacionado, 
que le servirán como complemento al contenido del libro. 
Además, tendrá la posibilidad de estar en contacto con los editores, y de parti-cipar 
del foro de lectores, en donde podrá intercambiar opiniones y experiencias. 
ROBOTICS 
This science is no longer part of a distant future, it is a part 
of a very real and concrete present. This manual offers the 
fundamentals to be a member of this new reality through 
practical projects and by learning the theory behind them. 
APRENDA A ARMAR ROBOTS DESDE CERO

Más contenido relacionado

PPTX
Sensores de final de carrera
PPTX
Simuladores electronicos
PDF
Electrónica de potencia: Generador señales para circuitos de electrónica de p...
PDF
TALLER CUPIDO ES UN MURCIÈLAGO^.pdf de Maria Fernanda Heredia
PPTX
Autotronica
PPTX
Domótica | Inmótica
PDF
Vip users de windows a linux
Sensores de final de carrera
Simuladores electronicos
Electrónica de potencia: Generador señales para circuitos de electrónica de p...
TALLER CUPIDO ES UN MURCIÈLAGO^.pdf de Maria Fernanda Heredia
Autotronica
Domótica | Inmótica
Vip users de windows a linux

Destacado (8)

PDF
Manual sistemas de avionica avanzada
PDF
20 soluciones a problemas de hardware
PPTX
AVIONICA
PPT
Aplicaciones de la robotica
PPTX
Autotrónica!
PDF
2015 Upload Campaigns Calendar - SlideShare
PPTX
What to Upload to SlideShare
PDF
Getting Started With SlideShare
Manual sistemas de avionica avanzada
20 soluciones a problemas de hardware
AVIONICA
Aplicaciones de la robotica
Autotrónica!
2015 Upload Campaigns Calendar - SlideShare
What to Upload to SlideShare
Getting Started With SlideShare
Publicidad

Similar a Vip users robotica (20)

PDF
Robotica
PDF
DOCX
Examen de arquitectura
DOCX
Examen de arquitectura
DOCX
Parcial de la robótica
DOCX
Ex. arq. robotica
DOCX
Arquitectura examem
PDF
Brazo mecanico
DOCX
Examen de Arquitectura
PDF
Todo sobre Mini robótica. Saber Electrónica
PDF
Todo sobre Minirobotica. Revista Saber Electronica
DOCX
Examen de arquitectura
DOCX
Institución educativa ciudadela del sur 3 periodo
DOCX
Institución educativa ciudadela del sur 3 periodo
PDF
Taller de sistemas roboticos
PPTX
Robotica actual
PPTX
Robotica
PPTX
Robotica
Robotica
Examen de arquitectura
Examen de arquitectura
Parcial de la robótica
Ex. arq. robotica
Arquitectura examem
Brazo mecanico
Examen de Arquitectura
Todo sobre Mini robótica. Saber Electrónica
Todo sobre Minirobotica. Revista Saber Electronica
Examen de arquitectura
Institución educativa ciudadela del sur 3 periodo
Institución educativa ciudadela del sur 3 periodo
Taller de sistemas roboticos
Robotica actual
Robotica
Robotica
Publicidad

Más de xavazquez (20)

PDF
Users técnico pc - jpr504 - 24
PDF
Users técnico pc - jpr504 - 23
PDF
Users técnico pc - jpr504 - 22
PDF
Users técnico pc - jpr504 - 21
PDF
Users técnico pc - jpr504 - 20
PDF
Users técnico pc - jpr504 - 19
PDF
Users técnico pc - jpr504 - 18
PDF
Users técnico pc - jpr504 - 17
PDF
Users técnico pc - jpr504 - 16
PDF
Users técnico pc - jpr504 - 15
PDF
Users técnico pc - jpr504 - 14
PDF
Users técnico pc - jpr504 - 13
PDF
Users técnico pc - jpr504 - 12
PDF
Users técnico pc - jpr504 - 11
PDF
Users técnico pc - jpr504 - 10
PDF
Users técnico pc - jpr504 - 09
PDF
Users técnico pc - jpr504 - 08
PDF
Users técnico pc - jpr504 - 07
PDF
Users técnico pc - jpr504 - 06
PDF
Users técnico pc - jpr504 - 05
Users técnico pc - jpr504 - 24
Users técnico pc - jpr504 - 23
Users técnico pc - jpr504 - 22
Users técnico pc - jpr504 - 21
Users técnico pc - jpr504 - 20
Users técnico pc - jpr504 - 19
Users técnico pc - jpr504 - 18
Users técnico pc - jpr504 - 17
Users técnico pc - jpr504 - 16
Users técnico pc - jpr504 - 15
Users técnico pc - jpr504 - 14
Users técnico pc - jpr504 - 13
Users técnico pc - jpr504 - 12
Users técnico pc - jpr504 - 11
Users técnico pc - jpr504 - 10
Users técnico pc - jpr504 - 09
Users técnico pc - jpr504 - 08
Users técnico pc - jpr504 - 07
Users técnico pc - jpr504 - 06
Users técnico pc - jpr504 - 05

Vip users robotica

  • 1. ¡CONVIERTA SU PASIÓN EN REALIDAD! Guía Teórica y Práctica EL MONTAJE DE LA PIEZAS ● Las partes que componen un robot ● Los pasos para ensamblarlas LA INTELIGENCIA ● Trabajar con microcontroladores ● Lenguajes de programación ROBOTS AUTÓNOMOS ● Utilización de sensores ● Mecanismos para generar movimiento Gonzalo Zabala APRENDA A ARMAR ROBOTS DESDE CERO ROBOTICA
  • 3. Léalo antes Gratis! En nuestro sitio puede obtener, en forma gratuita, un capítulo de cada uno de nuestros libros: u s e rs h o p . re d u s e rs . c o m Nuestros libros incluyen guías visuales, explicaciones paso a paso, recuadros complementarios, ejercicios, glosarios, atajos de teclado y todos los elementos necesarios para asegurar un aprendizaje exitoso y estar conectado con el mundo de la tecnología. Conéctese con nosotros! usershop.redusers.com ARGENTINA & (011)4110-8700 CHILE & (2)810-7400 ESPAÑA & (93)635-4120 MÉXICO & (55)5350-3099 o por e-mail a: lectores@redusers.com
  • 4. TÍTULO: ROBÓTICA AUTOR: Gonzalo Zabala COLECCIÓN: USERS Express FORMATO: 22 x 15,5 cm PÁGINAS: 288 Copyright © MMVII. Es una publicación de Gradi S.A. Hecho el depósito que marca la ley 11723. Todos los derechos reservados. No se permite la reproducción parcial o total, el almacenamiento, el alquiler, la transmisión o la transformación de este libro, en cualquier forma o por cualquier medio, sea electrónico o mecánico, mediante fo-tocopias, digitalización u otros métodos, sin el permiso previo y escrito del editor. Su infracción está penada por las leyes 11723 y 25446. La editorial no asume responsa-bilidad alguna por cualquier consecuencia derivada de la fabricación, funcionamien-to y/o utilización de los servicios y productos que se describen y/o analizan. Todas las marcas mencionadas en este libro son propiedad exclusiva de sus respectivos due-ños. Impreso en Argentina. Libro de edición argentina. Primera impresión realizada en Sevagraf, Costa Rica 5226, Grand Bourg, Malvinas Argentinas, Pcia. de Buenos Ai-res en noviembre de MMIX. ISBN 978-987-1347-56-8 Zabala, Gonzalo Robótica. - 1a ed. - Banfield - Lomas de Zamora: Gradi, 2007. 288 p.; 22 x 16 cm. (Users Express; 29) ISBN 978-987-1347-56-8 1. Informatica. I. Título CDD 005.3
  • 6. PRELIMINARES Gonzalo Zabala 4 Profesor de Enseñanza Primaria (Normal No. 1) y Licencia-do en Ciencias de la Computación (UBA, Ciencias Exactas), ha conjugado ambas vocaciones en la educación tecnológica y el uso de tecnología para la educación. Trabajó durante mu-chos años como docente de diversas ramas de la informática, y a fines del siglo pasado comenzó a usar robots para la en-señanza de programación. En el año 2000 creó la Roboliga, Olimpíada Argentina de Robótica, que ya lleva siete eventos con participación de alumnos y docentes de toda la Argenti-na. En 2004 ingresó en el Centro de Investigaciones de la Fa-cultad de Tecnología Informática de la Universidad Abierta Interamericana, donde creó el Grupo de Investigación de Robótica Autónoma. Fue coordinador de diversos equipos de alumnos que han participado en forma nacional e interna-cional en competencias de robótica, y obtuvieron excelentes resultados en fútbol de robots y pruebas de rescate. Actual-mente, continúa en el Centro de Investigaciones y es repre-sentante de Argentina de la RoboCup Junior, director técni-co y pedagógico del proyecto Lego Education en el país, co-ordinador del Campeonato Argentino de Fútbol de Robots, miembro del Consejo Latinoamericano de RoboCup y Co-chair de la categoría SimuroSot de la FIRA. Dedicatoria A Laura y Gastón, porque sus constantes preguntas me ha-cen pensar una y otra vez mi impreciso modelo del universo. A Ignacio Luppi, porque es un mago que logra que sus alumnos construyan robots maravillosos de la nada. Y a Marcelo De Vincenzi, porque me abrió las puertas para que continuara mis investigaciones en este maravi-lloso mundo de la robótica. Y porque disfruta de todo es-to más que cualquiera de nosotros.
  • 7. Sobre el autor 5 Agradecimientos Son muchas las personas que entran en juego en la confección de un libro, aunque luego aparezca sólo una en la tapa. Aquí mencionaré a algunas de ellas, pero seguramente me olvidaré de muchas más, que espero que me perdonen y me lo recriminen, para no olvidarme la próxima vez. Antes que nada, quiero agradecerles a Néstor Balich y a Gonzalo Mon por la colaboración en los capítulos en los que están mencionados, en especial a Néstor por su aporte del controlador y por todas las dudas que disipó cuando probábamos las cosas. Otra heroína es Iris, mi compañera del al-ma, que soportó abandonos familiares y responsabilidades extras para de-jarme tiempo libre para escribir el libro. Un capítulo aparte merecen Paula Budris y Diego Spaciuk por aceptar mis constantes incumplimientos, por alentarme cuando me quería bajar del tren y por guiarme en todo este camino. También quiero agradecerles a Darío Cardacci y a Carolina Soleil del CAETI (Centro de Investigaciones en Tecnología Informática de la UAI), que también soportaron incumplimientos de mi parte para que yo llevara adelante esta tarea. Por último, agradezco a todos mis alumnos de estos años, porque gran parte de lo que aprendí fue gracias a sus preguntas. Para ellos, mi más dulce recuerdo.
  • 8. PRELIMINARES Prólogo Si Ud. tiene este libro en sus manos, es por alguna o algunas de las siguien-tes 6 razones: a) Ha sido alcanzado por el sueño eterno de la humanidad de crear un ser a su imagen y semejanza. b) Desea bajar los costos de producción de su industria, para darles más horas libres a sus fieles obreros. c) Quiere entender de qué hablan sus hijos o nietos cuando están reunidos en la mesa, y dejarle de temer a ese ser espeluznante que de vez en vez le habla con voz metálica y le solicita un hueso, una pelotita o simple-mente que lo enchufen para recargar sus baterías. d) Quiere armar, de una vez por todas, un robot que funcione, que siga la línea o la pelota, que busque la luz, sin tener que comprar 999 fascícu-los con destino incierto. Aunque este libro les será de utilidad a los tres primeros grupos, segura-mente el que quedará más conforme es el lector que pertenece al último de ellos. Nuestro objetivo es poder describir, paso a paso, la electrónica, la mecánica y la programación necesarias para poder construir un robot sen-cillo y de bajo costo, que permita realizar tareas simples en forma autóno-ma. Para ello, presentaremos todos los aspectos esenciales que conforman la arquitectura de un robot, inclusive más allá de los que necesitaremos pa-ra la construcción de nuestro modelo, de manera tal que el lector pueda perfeccionar su creación con nuevos sensores, actuadores y procesadores. Nuestro punto de partida será mínimo, pero es necesario cierto conoci-miento básico (muy básico) de programación para poder definir el com-portamiento del robot. Para este fin, hemos elegido un lenguaje tan senci-llo como el Basic, pero dado que no es un libro de programación, le dedi-caremos pocos capítulos a este aspecto. El uso de estructuras de decisión, de ciclos de repetición y el manejo de variables sencillas es el requerimien-to para poder comprender los algoritmos presentados sin problemas. También es bueno tener una base de electrónica, aunque no es imprescindi-ble. De hecho, si no tiene ningún conocimiento en este campo, probable-
  • 9. Prólogo mente le parezca mágico el funcionamiento de ciertos aspectos del robot. Sin embargo, como seguiremos la descripción de la construcción de forma deta-llada, 7 podrá construirlo sin saber el por qué profundo de esa construcción. Con respecto a la mecánica, nuestro robot es tan sencillo que no necesita-mos ningún conocimiento vinculado a ese tema. Si en algún momento nos encontramos en una lucha de sumo de robots, con seguridad los que se-pan más de mecánica nos vencerán pero, para seguir una línea, basta con ubicar las ruedas en forma razonable. Bienvenido entonces, estimado lector, a esta nueva aventura. Es nuestro profundo deseo que al finalizar estas páginas, tenga dando vueltas por su casa un pequeño robot independiente y que nos podamos encontrar en al-guna de las tantas competencias de robótica que existen en nuestro país (¡o en el planeta!). Y por qué no, que un día, al golearnos con su equipo de robots en un partido de cinco contra cinco, nos honre al contarnos que su primera experiencia fue con esta humilde obra. Le podemos asegurar que ese día, a pesar de la derrota, ¡tocaremos el cielo con las manos! Lic. Gonzalo Zabala y colaboradores.
  • 10. PRELIMINARES El libro de un vistazo La robótica ha llegado a nuestros hogares y trabajos. Antes de que nos inviten a dejar nuestro living o escritorio, proponemos crear nuestro primer robot para entender pro-fundamente 8 los conceptos que entran en juego. En los siguientes capítulos estudiare-mos paso a paso los elementos necesarios para llevar a cabo esta tarea con éxito. Capítulo 1 CONCEPTOS FUNDAMENTALES Presentaremos los conceptos fundamenta-les de la robótica en general y de los robots autónomos en particular. Conoceremos los primeros intentos de la historia, veremos la arquitectura básica de un robot e intoduci-remos la terminología que utilizaremos. Capítulo 2 COMPONENTES DEL ROBOT Antes del desarrollo, es fundamental tener una visión de los objetivos y los alcances de nuestro robot, y de las etapas y dificultades que encontraremos. Aquí presentaremos el proyecto y prepararemos los implementos necesarios. Introduciremos el microcontro-lador, los motores, los sensores y los mate-riales para construir la carcasa. Capítulo 3 LA INTELIGENCIA DEL ROBOT Empezamos la construcción de nuestro ro-bot por la parte más delicada: el controla-dor, que es el director de todo lo que realiza nuestro robot. Desarrollaremos los aspec-tos para construirlo desde cero y veremos cómo construir un programador para incor-porarle programas al microcontrolador. Capítulo 4 COMIDA DE ROBOTS Éste es uno de los problemas fundamenta-les de la robótica autónoma. Estudiaremos las ventajas y desventajas de los diversos ti-pos de baterías, y seleccionaremos la que nos convenga para nuestro proyecto. Capítulo 5 HABLAR CON NUESTRO ROBOT Comenzaremos a programar el controlador con un lenguaje tan sencillo como el Basic. Veremos las similitudes y diferencias con la programación tradicional y otros lenguajes. Capítulo 6 RECORRER EL MUNDO Dentro de la robótica autónoma, uno de los objetivos esenciales es trasladarse en el ambiente donde se desarrolla la tarea. Para ello, tenemos diversos sistemas de locomo-ción que difieren en costo, eficiencia, ta-maño, consumo y otras variables. Capítulo 7 SENSAR EL MUNDO Tenemos que ver qué pasa a nuestro alre-dedor para no chocarnos, salirnos del ca-mino o perdernos. Analizaremos los tipos
  • 11. El libro de un vistazo 9 de sensores y los probaremos con nuestro controlador. Del mar de componentes digi-tales subconjunto para aplicarlo a nuestro robot. Capítulo 8 EL CUERPO DEL ROBOT En este punto, tenemos el robot casi termi-nado usamos para construir el cuerpo del robot? ¿Qué ventajas y desventajas presenta cada uno? ¿Qué herramientas necesitamos? Aquí intentaremos responder estas preguntas. Capítulo 9 SALIR AL RUEDO Presentamos desafíos y proyectos de apli-cación electrónicas, mecánicas y de programación. Analizaremos las características de las pruebas de robots autónomos y los proble-mas Capítulo 10 JUGAR AL FÚTBOL Uno de los campos más atrayentes de aplicación de la robótica autónoma es el ! y analógicos, seleccionaremos un pero desmembrado. ¿Qué materiales con sus respectivas modificaciones que hay que enfrentar para superarlas. INFORMACIÓN COMPLEMENTARIA A lo largo de este manual encontrará una serie de recuadros que le brindarán infor-mación complementaria: curiosidades, trucos, ideas y consejos sobre los temas tra-tados. Cada recuadro está identificado con uno de los siguientes iconos: CURIOSIDADES E IDEAS ATENCIÓN SITIOS WEB ❘❘❘ DATOS ÚTILES Y NOVEDADES ▲ ❴ ❵ ✱ fútbol de robots. Explicaremos el por qué de tanta pasión y cómo podemos usar nuestro robot para participar de compe-tencias nacionales e internacionales. Apéndice A CONCEPTOS BÁSICOS DE ELECTRÓNICA Si nos quedan dudas sobre cómo ocurre lo que hemos visto en este libro, aquí encon-traremos material. Desde qué es la electri-cidad hasta la historia y el funcionamiento de los circuitos integrados, esclareceremos los temas electrónicos fundamentales. Apéndice B SITIOS WEB Y como todo esto es el comienzo, presenta-remos una lista de sitios de electrónica y robótica donde podremos profundizar nues-tros estudios y conocimientos. Servicios al lector BIBLIOGRAFÍA Como bien decía Newton, podemos ver lejos porque nos hemos parado en hombros de gigantes. Aquí presentaremos las fuentes de nuestras investigaciones y estudios.
  • 12. Contenido Sobre el autor 4 Agradecimientos 5 Prólogo 6 El libro de un vistazo 8 Introducción 14 Capítulo 1 CONCEPTOS FUNDAMENTALES Introducción a la robótica 16 ¿Qué es un robot? 16 Tipos de robots 19 Unidades de un robot 23 Procesamiento 24 Sensores 33 Actuadores 39 Resumen 43 Actividades 44 Capítulo 2 COMPONENTES DEL ROBOT Una mirada global a nuestro futuro robot 46 Objetivos de nuestro robot 47 Tipo de procesamiento seleccionado 48 ¿Cómo le damos movimiento a nuestro robot? 50 ¿Y cómo captamos el mundo que nos rodea? 53 Materiales para la mecánica 55 Resumen 59 Actividades 60 Capítulo 3 LA INTELIGENCIA DEL ROBOT El cerebro 62 Componentes de nuestro robot 63 Objetivos del controlador 64 El microcontrolador, cerebro del cerebro 64 Conceptos fundamentales de un PIC 65 Características del PIC16F88 66 Compatibilidad con el 16F84 67 Puente H para el control de los motores 67 PRELIMINARES 10
  • 13. Contenido 11 Listado de componentes del controlador 68 Descripción del circuito 69 Placa experimental 71 El programador 71 Nuestro programador 71 Resumen 75 Actividades 76 Capítulo 4 COMIDA DE ROBOTS La fuente de energía 78 Características de las celdas de las baterías 79 Tipos de baterías 81 Calidad de las baterías 86 Cargadores 87 Ayudar a que no sólo las baterías duren más 89 Resumen 91 Actividades 92 Capítulo 5 HABLAR CON NUESTRO ROBOT Comunicación con el robot 94 Lenguajes de programación para robots 95 PicBasic Pro 95 Compilador CCS C 97 MikroBasic 98 Editor de código fuente de mikroBasic 100 Explorador de código 103 Depurador 103 Manos a la obra 106 Elementos del léxico 108 Organización de los módulos 110 Alcance y visibilidad 111 Variables, constantes y tipos 112 Estructuras 115 Operadores 116 Sentencias 117 Resumen 123 Actividades 124 Capítulo 6 RECORRER EL MUNDO El movimiento del robot 126 Tipos de motores 126 Motores de corriente continua 127 Motores paso a paso (Motores PaP) 135 Servos 140 Resumen 145 Actividades 146
  • 14. Capítulo 7 SENSAR EL MUNDO Adaptación al entorno 148 Tipos de sensores 148 Características esenciales de los sensores 149 Sensores digitales 152 Los sensores analógicos 158 Tipos de sensores analógicos 162 Resumen 165 Actividades 166 Capítulo 8 EL CUERPO DEL ROBOT Cuerpo a cuerpo 168 Características mecánicas de un robot autónomo 169 Robots aéreos 173 Robots subacuáticos 174 Robots terrestres 174 Sistemas con ruedas 179 Estructura de nuestro robot 184 Mecanismos de transmisión y reducción 190 Cinemática de un robot 194 Odometría 196 Resumen 197 Actividades 198 Capítulo 9 SALIR AL RUEDO Presentarse a competir 200 PRELIMINARES 12
  • 15. Características comunes de las pruebas de robots autónomos 200 Pruebas tradicionales para robots autónomos 210 ¡La luz, la luz, he visto la luz! 213 Resumen 219 Actividades 220 Capítulo 10 JUGAR AL FÚTBOL Fútbol de robots 222 Características del fútbol de robots 222 Ligas nacionales e internacionales de fútbol de robots 232 Modificaciones para que nuestro robot pueda jugar 242 Una pelota infrarroja 244 Resumen 245 Actividades 246 Contenido Apéndice A CONCEPTOS BÁSICOS DE ELECTRÓNICA La electrónica 248 Conceptos de electricidad 248 Componentes que utilizamos en nuestros circuitos 251 Herramientas fundamentales 256 Consejos para soldar 258 Apéndice B SITIOS WEB Listado de sitios 260 Aplicaciones útiles 267 Servicios al lector Bibliografía 270 Indice temático 275 Equivalencia de términos 277 Abreviaturas comúnmente utilizadas 279 13
  • 16. PRELIMINARES Introducción Decir que la robótica es un tema del futuro es una prueba fehaciente de miopía. Los robots están entrando por nuestras puertas, ventanas, cerraduras, y es inevita-ble 14 que así sea. Desde los lavarropas hasta los vehículos espaciales utilizan tecno-logías muy vinculadas con la disciplina. Seguramente, comenzaron con investiga-ciones que en ese momento parecían desconectadas de la realidad (vieja excusa que utilizamos para aquellos que entran a nuestros laboratorios y nos preguntan ¿y eso que hacen para qué sirve?). Es por eso que después de algunos años de investiga-ción sobre este tema, y luego de escribir algunos artículos inentendibles, tuvimos ganas de abrir el juego. La gente de esta editorial nos invitó a presentar el tema en forma más amena y al alcance de más lectores. Mi relación con la robótica comenzó desde el ámbito educativo como un recurso con-creto y tangible para enseñarles programación a jóvenes entre 13 y 17 años. En mi ex-periencia como docente de programación había llegado a una conclusión terrible: cuan-do enseñamos a programar, dentro del aula tenemos dos grupos de alumnos. Los que entienden todo sin que se les explique demasiado porque tienen una suerte de gen del programador y, con sólo recibir un par de ideas y algunos apuntes, al cabo de un mes regresaban con un sistema de control de centrales termonucleares. Y el otro conjunto de alumnos, más abultado, que a pesar de todos los recursos, inventos y triquiñuelas didácticos, no lograban superar el PRINT “HOLA MUNDO”. Por lo tanto, mi tarea como docente era inútil en los dos casos: en el primer grupo, porque no me necesita-ban, y en el segundo, porque no les podía aportar cosas nuevas. En ese momento co-mencé a buscar algún mecanismo para que nadie se diera cuenta de esto y, a conti-nuación, un recurso que permitiera mejorar la enseñanza de programación. Allí me crucé con los robots y con los entornos de objetos. Con el primer tema me casé y con el segundo tengo una relación de amante que espero oficializar en un próximo libro. Tengo la suerte de que en las últimas investigaciones que he desarrollado, ambos aspec-tos se han unido y manejamos los robots desde un ambiente de objetos. La robótica me ha dado inmensas satisfacciones, me ha permitido viajar a lugares que nunca creí que iba a conocer y ha pagado alguna que otra comida mía y de mi familia. Pero ante todo, me ha brindado la posibilidad de sorprenderme día tras día. Siempre hay algo nuevo, siempre hay otro desafío. Espero que este libro sirva como un punto de partida sencillo para viajar a obras mucho más completas que nos regalarán experiencias maravillosas.
  • 17. Robótica Conceptos fundamentales Capítulo 1 ¿Qué es un robot? ¿Cuándo conviviremos con ellos? ¿Tendremos diversos tipos de robots entre nosotros? ¿Lavarán los platos? En este primer capítulo intentaremos responder estas y otras preguntas, con el objetivo de entender cuáles son los alcances posibles de nuestro primer proyecto robótico. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Introducción a la robótica 16 ¿Qué es un robot? 16 Tipos de robots 19 Unidades de un robot 23 Procesamiento 24 Sensores 33 Actuadores 39 Resumen 43 Actividades 44 Colaborador: Ing. Gonzalo Mon
  • 18. INTRODUCCIÓN A LA ROBÓTICA Día a día, nos sorprendemos con las noticias que aparecen en los medios de comunicación vinculadas a la presencia de robots en diversos cam-pos de la vida cotidiana. Robots en-fermeros, mascotas, repositores de supermercados, detectores de explo-sivos, aspiradoras hogareñas, o sim-ples jugadores de fútbol, son algu-nos de los ejemplos que podemos encontrar en el mercado de la tecno-logía de última generación. En síntesis, la robótica ya no es parte de nuestro futuro sino de nuestro presente tangible. Sin em-bargo, probablemente gracias a la li-teratura y al cine de ciencia ficción, el concepto de lo que es un robot, sus posibilidades y sus limitaciones reales están desdibujados en el ima-ginario colectivo. Es por eso que en este primer capítulo haremos una introducción a los conceptos funda-mentales de la robótica. ¿Qué es un robot? Sueño de muchas generaciones, la explosión tecnológica nos ha puesto al alcance de poder concretarlo. Para comenzar nuestro recorrido, hagamos un repaso de la historia de la robótica para comprender hacia dónde nos dirigimos. 1. CONCEPTOS FUNDAMENTALES Figura 1. Roomba, la aspiradora robótica más popular y económica del mercado. 16
  • 19. A imagen y semejanza Desde los orígenes del hombre, po-demos encontrar varios relatos sobre la creación de vida artificial. Por ejemplo, en la leyenda del Golem, un rabino de Praga le infunde vida a una estatua de barro. Asimismo, en la obra literaria Frankenstein, el doctor de dicho nombre crea un ser a partir de órganos de otras perso-nas, que luego se vuelve contra él. Si nos apartamos de la literatura, en el antiguo Egipto encontramos esta-tuas de dioses que incorporaban bra-zos mecánicos operados por los sa-cerdotes. En el siglo XIX, también se hicieron conocidas las creaciones de robots que jugaban ajedrez, aunque en realidad éstos ocultaban a un ser humano de baja estatura que opera-ba la máquina desde su interior (Fi-gura 2). Es decir, el deseo de creación de un ser a nuestra imagen y seme-janza está presente desde los prime-ros tiempos de la humanidad. El origen de la palabra robot se re-monta a comienzos del siglo XIX. El dramaturgo Karel Capek utilizó por primera vez este término en su obra Opilek para referirse a un conjunto de máquinas inventadas por un cien-tífico para realizar tareas pesadas y aburridas. En checo, idioma original de la obra, el término robota signi-fica trabajo tedioso. Pero fue el es-critor Isaac Asimov quien populari-zó el término e introdujo el concep- Introducción a la robótica Figura 2. El Turco, un robot que simulaba jugar al ajedrez y que, en realidad, tenía un jugador humano adentro. Figura 3. Éste es un robot que aparecía en la adaptación de la obra de Karel Capek: Rossum's Universal Robot. 17
  • 20. to de robótica en diversos relatos de ciencia ficción de su autoría. En sus obras, Asimov muestra facetas hu-manas de los robots y define un con-junto de leyes para que estos seres nuevos nunca se rebelen contra los humanos. Luego, el cine y la televi-sión generaron cientos de robots de diversa índole, algunos simpáticos (como R2D2 y Cortocircuito), y otros definitivamente en contra de sus creadores (Terminator, HAL). A partir de la creación de las prime-ras computadoras comenzó el verda-dero desarrollo de los robots primi-tivos. En 1974, la empresa Cinci-nnati Milacron realizó el primer ro-bot industrial, conocido como The Tomorrow Tool. A partir de ese mo-mento, junto con la evolución de los sistemas de procesamiento, el creci-miento de la robótica ha sido expo-nencial. La reducción de tamaño y de costos, y el aumento de la capa-cidad de cálculo de los procesadores, han permitido la creación de robots cada vez más sofisticados, rápidos y autónomos. Sin embargo, aún esta-mos lejos de crear un robot a nues-tra imagen y semejanza. Definición de la palabra robot Existen muchas definiciones de la palabra robot. En cada una de ellas, encontramos destacado algún aspec-to en particular, que es el que cada autor quiere resaltar en su obra. Se-gún la Asociación Japonesa de Robó-tica Industrial (JIRA), los robots son dispositivos capaces de moverse de mo-do flexible, análogo al que poseen los organismos vivos, con o sin funciones intelectuales, lo que permite la realiza-ción de operaciones en respuesta a ór-denes recibidas por humanos. Vemos que en esta definición se encuentra resaltada la capacidad de movimien-to de los robots y su analogía con los seres de la naturaleza. Sin embargo, a la JIRA no le interesa la inteligen-cia artificial aplicada al robot, dado que su función fundamental es ser operado por un humano. Por su par-te, el Instituto de Robótica de Nor- 1. CONCEPTOS FUNDAMENTALES 18 Figura 4. Isaac Asimov, creador de cientos de cuentos sobre robots y de la palabra robótica.
  • 21. teamérica (RIA) define a un robot industrial como un manipulador multifuncional y reprogramable dise-ñado para desplazar materiales, com-ponentes, herramientas o dispositivos especializados por medio de movimien-tos programados variables, con el fin de realizar diversas tareas. En este caso, el acento está puesto en la capacidad de programación del robot y, por lo tanto, en cierta independencia de funcionamiento con respecto a la operación humana. Como dijo Jo-seph Engelberg, padre de la robótica industrial: es posible que no sea ca-paz de definir qué es un robot, pe-ro sé cuándo veo uno. Particularmente, y ya que nos hemos ganado el derecho dado que estamos escribiendo un libro sobre robótica, agregaremos una definición más de robot a la larga lista preexistente: un robot es un dispositivo con un de-terminado grado de movilidad, que puede realizar un conjunto de ta-reas en forma independiente y que se adapta al mundo en el que ope-ra. El objetivo de esta definición es Introducción a la robótica comenzar a introducirnos en el tipo de robot sobre el que vamos a centrar-nos en el desarrollo del libro. Tipos de robots De la misma manera que con las de-finiciones, podemos encontrar mu-chas clasificaciones distintas de ro-bots. En esta obra, al presentarlos, intentaremos acercarnos a los diver-sos problemas mecánicos, electróni-cos y de software que encontramos en el desarrollo de un robot. Las cla-sificaciones elegidas son: Según el uso del robot A continuación presentaremos una clasificación posible de los robots se-gún su utilidad específica. • Industriales: se utilizan dentro de un proceso de trabajo industrial. Es el tipo de robot que más ha sido de-sarrollado en la historia (Figura 5). • Espaciales: deben desenvolverse en zonas inexploradas y a larga distan-cia de su centro de control. • Médicos: son utilizados como apoyo en la intervención médica ✱ Uno de los primeros robots reales fue el jugador de ajedrez autómata de Wolfgang von Kempelen, en 1769. Éste consistía en una cabina de madera de 1,20 metros de largo, 60 centímetros de profundidad y 90 centímetros de altura. Cuando se abrían las puertas de la máquina, se podía ver un complejo mecanismo de engranajes que, supuestamente, permitían jugar un partido de ajedrez de buen nivel. En realidad, dentro de la estructura se escondía un pequeño jugador humano. 19 UN ROBOT QUE JUGABA AL AJEDREZ
  • 22. sobre los humanos y como com-plemento para las personas con ca-pacidades disminuidas. • Domésticos: el sueño de todo amo o ama de casa, un robot que reali-ce alguna o todas las tareas del ho-gar. Ya hay entre nosotros aspira-doras, lavarropas, heladeras, etcé-tera, que modifican su comporta-miento en forma autónoma según el ambiente en el que trabajan. • Sociales: robots utilizados en ám-bitos sociales (como películas, eventos y supermercados) con fun-ciones de comunicación intensiva con los humanos. En estos casos, uno de los elementos de investiga-ción fundamental es el aspecto es-tético del robot, el estudio de la in-terfaz con el humano para realizar una comunicación completa, con gestos, tonos, silencios, etcétera. • Agrícolas: así como en sus co-mienzos la robótica tuvo amplia aplicación en la industria, en los últimos años ha comenzado a cre-cer en forma exponencial el uso de robots y de la inteligencia artificial en el sector agrícola-ganadero. Las cosechadoras autónomas, las sem-bradoras controladas por mapas satelitales, los fumigadores roboti-zados y otros dispositivos hicieron su aparición dentro de lo que ac-tualmente se conoce como agri-cultura Figura 5. Kit de brazo robótico RA-01 con 5 servos. de precisión (Figura 6). ❘❘❘ Como si no fueran suficientes los insectos que nos perturban durante todo el año, los ingenieros han decidido que, antes de imitar a un humano, es necesario lograr un in-secto 1. CONCEPTOS FUNDAMENTALES 20 ROBOTS INSECTOS robótico. Los sistemas de visión y de vuelo de los insectos son dos fuentes de inspiración muy importantes, dado que con mecanismos sumamente sencillos, logran captar el mundo que los rodea y volar sobre él de una manera altamente adaptativa.
  • 23. Según el medio en el que desarro-lla la actividad • Acuáticos: se caracterizan por movi-mientos tridimensionales en un am-biente hostil desde el punto de vista mecánico y electrónico (Figura 8). • Terrestres: son los más populares y económicos. Podemos, a su vez, subclasificarlos por sistema de lo-comoción: fijos, ruedas, orugas, patas, arrastre, etcétera. • Aéreos: con movimientos tridi-mensionales, como el acuático, pe-ro con una exigencia mucho ma-yor en el control en tiempo real del sistema de levitación (Figura 7). • Híbridos: combinación de algu-nos de los anteriores. Introducción a la robótica En esta clasificación, las característi-cas mecánicas del robot se modifi-can en forma sustancial entre uno u otro medio. Prácticamente, es impo- 21 Figura 6. Demeter, un robot de aplicación agrícola desarrollado en la Universidad de Carnegie Mellon. Figura 7. Robot insecto volador desarrollado en la Universidad de Berkeley.
  • 24. sible utilizar la mecánica de un ro-bot construido en un medio para que funcione en otro, salvo en el ca-so de algunos híbridos. Según la ubicación de la inteligen-cia del robot • Autónomos: la inteligencia está ubicada en el mismo robot. Puede comunicarse con otros o con un sistema central, pero los aspectos esenciales de funcionamiento se resuelven en forma independiente en el propio robot. • Control automatizado (semiautó-nomos): la mayor parte de la inte-ligencia del robot está ubicada en un sistema central. Los sensores pueden ser locales, es decir que le envían la información obtenida a ese sistema central, o globales. El sistema central les comunica a los robots las acciones que deben rea-lizar. Un ejemplo de este modelo es la categoría Mirosot de fútbol de robots de la FIRA. • Híbridos: son robots autónomos que, en ciertos momentos del pro-ceso, pueden ser controlados por humanos o por un sistema central. Un ejemplo son los robots que se utilizan en misiones espaciales, que operan en forma autónoma pero que, ante un percance, pueden ser dirigidos desde nuestro planeta. También podríamos clasificar a los robots por sus características estruc-turales, por el tipo de sensado del mundo, etcétera. De todas maneras, todos los robots comparten la mis-ma arquitectura básica, desde el más pequeño hasta Terminator. A conti-nuación veremos la fuerte analogía 1. CONCEPTOS FUNDAMENTALES 22 Figura 8. Robot acuático japonés, que imita la estructura de algunos seres acuáticos.
  • 25. que encontramos entre un robot y una computadora convencional. Unidades de un robot En la arquitectura de cualquier com-putadora, podemos encontrar las si-guientes unidades que la componen: • Unidades de procesamiento: es el conjunto de dispositivos que se encargan de realizar la transforma-ción de los datos de entrada para obtener los datos de salida. • Unidades de entrada: son las uni-dades que permiten realizar el in-greso de información para su pos-terior procesamiento. • Unidades de salida: son las unida-des que se ocupan de comunicarle los resultados del procesamiento al usuario u operador. En un robot podemos encontrar la misma arquitectura. A las unidades de entrada de un robot las llamamos sensores, que pueden ser externos, como un sensor de tacto, o internos, como un encoder que permite deter-minar la distancia recorrida por una rueda. A las unidades de salida se las conoce como actuadores. Aquí po-demos mencionar leds de señaliza-ción, buzzers, motores, displays, etcétera. En síntesis, el robot recibe información del ambiente mediante sus sensores, procesa la informa-ción con su unidad de procesamien-to Introducción a la robótica y realiza sus acciones al mover motores y encender luces y buzzers. Tomemos como ejemplo a uno de los robots más conocidos: Terminator. En este caso, sus sensores son las cá-maras que le permiten mirar, su siste-ma auditivo y los sensores de tacto que tiene su piel. No recordamos que tenga olfato o que alguna vez haya co-mentado lo sabroso de alguna comi-da. Sus actuadores esenciales son los motores o los músculos de alambre que conforman su cuerpo. Uno de los problemas más apasio-nantes de la robótica es el equilibrio que es necesario obtener entre las tres unidades, para lograr que el robot cumpla con su objetivo. Por ejemplo, los sensores más sofisticados o que GENERACIONES DE ROBOTS 23 ❘❘❘ Así como hablamos de generaciones de computadoras, también se ha definido el grado de evolución de los robots in-dustriales como vemos a continuación: ● Primera generación: repiten una ta-rea sin considerar las modificaciones que ocurren en su entorno. ● Segunda generación: toman informa-ción limitada de su entorno y modifican su comportamiento. ● Tercera generación: son programados en lenguaje natural y organizan sus tareas en forma automática en un nivel más alto que los de Segunda generación.
  • 26. entregan mayor cantidad de datos, como puede ser una cámara de video, exigen de parte del procesador un mayor tiempo de trabajo para poder obtener un conjunto de información que resulte significativo. De la misma manera, el control de los actuadores sofisticados, como cierto tipo de mo-tores, consume tiempo de procesa-miento que es absolutamente necesa-rio para que el robot opere en tiem-po real. En síntesis, es imprescindible lograr el equilibrio entre velocidad y precisión, en especial en aquellos robots que operan en entornos muy dinámicos. Es por eso que, habitual-mente, se utilizan ciertos procesado-res específicos para el filtrado de la in-formación de entrada y para el con-trol de los actuadores, y así se libera de esta tarea al procesador central y se complementa su función. En las próximas páginas, analizare-mos cada una de estas unidades en profundidad, de forma tal que poda-mos realizar la elección adecuada se-gún los objetivos específicos que tengamos para nuestro robot. Procesamiento Cuando comenzamos a analizar lo que nos ofrece el mercado de la ro-bótica con respecto a procesamiento, probablemente nos encontremos confundidos ante la diversidad de posibilidades. Podemos encontrar desde micros de muy bajo precio, en los que debemos construir en forma artesanal toda la electrónica que los complementa para poder procesar las entradas y salidas, hasta costosos kits que tienen absolutamente todo resuelto. Está claro que con éstos úl-timos podremos hacer que nuestro robot funcione en algunas horas, pe-ro es en el primer caso donde tendre-mos un control absoluto y de bajo nivel de las capacidades de procesa-miento de nuestro dispositivo. De todas maneras, analizaremos en forma detallada las ventajas y las desventajas de ambas propuestas: el desarrollo con el uso de kits frente a la construcción en forma artesanal de los robots. Además, conoceremos brevemente algunos kits y micros disponibles en el mercado, y hare-mos una lista de los sitios web don-de se puede conseguir información más detallada y completa. Kits Los kits para la construcción de ro-bots, en general, presentan los si-guientes elementos: • Un procesador o conjunto de pro-cesadores con toda la electrónica de entrada y salida de los sensores re-suelta. Además, poseen un sistema operativo dentro del controlador (firmware), que eleva el nivel de pro-gramación de los procesadores, lo que posibilita el uso de lenguajes de alto nivel o interfaces gráficas para el 1. CONCEPTOS FUNDAMENTALES 24
  • 27. desarrollo de la inteligencia de nues-tro robot en forma muy sencilla. • Un conjunto de sensores que aprovechan la electrónica ya re-suelta, y que con una simple cone-xión funcionan de manera casi mágica. Por ejemplo, sensores de luz donde el firmware interpreta el voltaje que entrega el sensor como un valor entre 0 y 100. • Un conjunto de motores que también utilizan la electrónica de salida, que se alimentan directa-mente de la misma fuente que ali-menta al procesador, y que gracias al firmware podemos indicarle di-rección, velocidad, etcétera, sin la necesidad de cálculos complejos. • Material constructivo para resolver la mecánica del robot, altamente Introducción a la robótica reutilizable y que en poco tiempo permite la elaboración de la física del robot mediante la aplicación de co-nocimientos de nuestra infancia. Si tenemos en cuenta este conjunto de materiales, es sencillo notar que las ventajas que nos presenta el uso de kits para la construcción de nuestro robot son las siguientes: • Menor tiempo de construcción del robot: en pocas horas, podemos obtener robots poderosos para los desafíos habituales en robótica. • Alta reusabilidad del material: una vez terminado el desafío, po-demos desarmar el robot y utilizar todas las piezas, los sensores, los motores y el procesador para armar un robot completamente distinto. • Baja necesidad de conocimientos 25 Figura 9. Lego Nxt con el conjunto de motores y sensores que vienen con el kit.
  • 28. Figura 10. Un humanoide realizado con el Lego Nxt. técnicos: sin saber electrónica y prácticamente sin saber programa-ción, podemos desarrollar un robot poderoso. Desde ya que para aque-llos usuarios que sí tengan esos co-nocimientos, el aprovechamiento será mucho mayor. Más aún si los desarrolladores del kit tuvieron la precaución de dejar abiertos tanto el firmware como el hardware del pro-cesador y los sensores. De todas formas, no todas son cosas positivas. Las desventajas que tene-mos con el uso de kits son: • El alto o altísimo costo de un kit: la relación puede ser de 20 a 1 con respecto a un desarrollo manual. El robot que construiremos en este li-bro mantiene esta relación con los kits más económicos de robótica. • La imposiblidad, en muchos casos, de poder realizar modificaciones de bajo nivel en el hardware o el firm-ware del robot. A pesar de todos los esfuerzos de documentación que ha-ga la empresa creadora del kit, es im-posible que todo sea altamente mo-dificable, por la misma necesidad de mantener la arquitectura intrínseca del robot. Su elaboración artesanal desde cero nos permite modificar hasta el más mínimo detalle. • Baja precisión y calidad final de los robots: dado que los kits son para el desarrollo de robots de di-versos propósitos, en todos los ca-sos perdemos precisión y calidad. Por ejemplo, los motores sirven para moverse en un determinado ambiente con alto margen de error, pero no son veloces ni per-miten movimientos de precisión como lo pueden exigir ciertos ob-jetivos. En general, los sensores son económicos, y el rango de va-lores que devuelven es pobre. Los kits de robótica más conocidos en el mercado son los siguientes: • Lego Nxt: sucesor del modelo Mindstorms, es el kit de mayor di-fusión en todo el mundo (Figura 9). 1. CONCEPTOS FUNDAMENTALES 26
  • 29. Su procesador es un ARM7 de 32 bits. Cuenta con 256 Kb de Flash y 64 Kb de RAM. Se comunica por Bluetooth clase 2 y por USB. Tiene 4 entradas para sensores y 3 salidas para actuadores. En el kit se inte-gran 3 motores servo con encoders incorporados para controlar su mo-vimiento con precisión. Además, cuenta con un sensor de tacto, uno de sonido, otro de luz y por último un sensor ultrasónico. Para la mecánica del robot cuenta con piezas de las denominadas Technic, que permiten diseñar dife-rentes estructuras según el destino del robot creado (Figura 10). El len-guaje Introducción a la robótica de programación es un am-biente gráfico muy sencillo, similar al Robolab de las versiones anterio-res, pero con mayor potencia y ver-satilidad. Para finalizar, una de las mejores decisiones que ha tomado la firma Lego es publicar muchísima información sobre el desarrollo tan-to de hardware como de software del kit, lo que ha permitido que en po-co tiempo (salió a la venta en agos-to de 2006) las personas de todo el mundo que tienen este hobby hayan desarrollado hardware y software es-pecífico fuera del oficial. Para obte-ner más información, podemos visi-tar http://mindstorms.lego.com. 27 Figura 11. Placa educativa del Basic Stamp de Parallax.
  • 30. Figura 12. Aquí podemos ver uno de los modelos constructivos de XiOR, conocido como N10. • Parallax: el producto más popular de esta empresa es el micro Basic Stamp (Figura 11). Aunque uno puede adqui-rir solamente el micro y realizar el ro-bot desde cero como comentaremos más adelante, hay tantos desarrollos y tantas presentaciones de productos de la firma Parallax que hemos deci-dido presentarlo dentro de esta sec-ción. El Basic Stamp Starter Kit es-tá desarrollado para iniciarse en el mundo de la robótica. Incluye un Ba-sic Stamp II, que tiene una velocidad de procesamiento de 20 Mhz, con 2 Kb de EEPROM(electrically-erasable programmable read-only memory, ROM programable y borrable eléc-tricamente) y 16 E/S (entradas y sa-lidas) más 2 dedicadas. Este micro es-tá instalado en una placa educativa con una pequeña protoboard (pla-queta de experimentación), donde podremos realizar todas nuestras ex-periencias. Viene con un servo, leds, capacitores, resistencias y otros com-ponentes para diseñar nuestro robot. Las guías que acompañan a este y otros kits son excelentes (¡y algunas están en castellano!), y pueden con-seguirse en forma gratuita en el sitio de la empresa. La última creación de Parallax ha sido el micro de nombre Propeller, con 8 procesadores para-lelos en su interior. Tiene una arqui-tectura de 32 bits, 80 Mhz, con 32 pines de E/S direccionables por cual-quiera de los 8 procesadores. Para buscar más información, podemos visitar www.parallax.com. • XiOR: en América Latina, conta-mos con nuestro propio kit de ro-bótica. XiOR (www.xior.org) es una empresa argentina de tecnolo-gía y entre sus trabajos ha desarro-llado un sistema constructivo para la fabricación de robots móviles au-tónomos. El modelo N10 es el pri-mer robot desarrollado con él (Figu-ra 12). Una de sus principales carac-terísticas es la posibilidad de que el usuario reconfigure toda su morfo-logía física para adaptarlo a diferen-tes entornos y experimentos. Inclu-so es posible combinarlo con otros robots similares para formar parte de estructuras mayores. Normalmente, está equipado con 2 o 4 celdas de Li-Ion de 900 mAh, 1. CONCEPTOS FUNDAMENTALES 28
  • 31. agrupadas en packs de a dos. En cuanto a las capacidades de procesa-miento, el controlador XiOR.0107 tiene un procesador AVR ATMega8 (Atmel, 2003) de 16 MIPS aproxi-madamente, y 8 KB de RAM de programa, e incorpora comunica-ciones RS-232, 2WI y drivers de po-tencia para agregar dos motores adi-cionales de corriente continua o un motor paso a paso. El sistema constructivo Múltiplo ofrece piezas de aluminio y plásti-co cuidadosamente diseñadas para desarrollar robots de tamaño redu-cido, pero con una precisión y ro-bustez sorprendentes. Podemos encontrar más información en www.xior.org. Además de estos kits que mencio-namos, el mercado de la robótica educativa crece día a día, y en la Web podemos encontrar muchos otros que tal vez se ajusten mejor a nuestras necesidades. Aunque aquí describimos los más conoci-dos, podemos navegar para buscar más información sobre el tema. Introducción a la robótica Figura 13. Sphinx, otro modelo de XiOR para el control de pozos de petróleo. Robótica sin kits Como comentamos antes, realizar un robot sin la ayuda de un kit nos proporciona mayor versatilidad, ro-bustez, potencia, precisión, veloci-dad y adaptabilidad. El problema esencial es que nos exige mayor co-nocimiento y trabajo. Cuando co-mencemos un desarrollo de este tipo, lo primero que debemos analizar es el procesador que vamos a utilizar, según la funcionalidad y el costo que deseamos que tenga nuestro robot. 29 ▲ OTROS KITS LATINOAMERICANOS Además de los kits mencionados, a continuación presentamos links donde se pue-den encontrar otros kits desarrollados en Latinoamérica: •NeoRobotic: kits de robótica autónoma (www.neorobotic.com). •Arbot: robots controlados desde la PC por puerto paralelo (www.dutten.com.ar). •Blocky-tronic: sistema constructivo con microcontrolador, sensores y motores (www.blockymania.com.ar/blockytronic/).
  • 32. Además, debemos tener en cuenta que es necesario complementar el procesador con un circuito de con-trol adecuado para realizar las cone-xiones de entrada, salida, alimenta-ción y control de dispositivos. Microcontroladores El procesamiento más habitual en los robots pequeños y de bajo costo es el provisto por microcontroladores. Los micros más utilizados son los de la familia PIC, de la firma Micro-chip. De todos los modelos que se ofrecen, el más popular para la cons-trucción de robots es el PIC16F84. Posee una memoria de programa Flash de 1 KB con palabras de 14 bits, una memoria RAM de datos de 68 bytes y una EEPROM de 64 bytes, y 13 pines de E/S. Por otra parte, su precio es más que accesible. Dado que desarrollaremos nuestro robot con PIC, dejaremos para más adelante una descripción más detallada de éstos. La empresa Atmel fabrica otro tipo de microcontroladores, que también son de uso habitual en la construc-ción de robots. De todas sus líneas, la denominada AVR de 8 bits es la más recomendada para el procesamiento en esta disciplina. Toda la línea AVR presenta características como bajo poder de consumo, arquitectura RISC y Harvard, 32 registros de 8 bits de propósito general y facilidad de implementación de lenguajes de alto nivel para la programación. En particular, el micro ATMega8 (Figu-ra 15) es ideal, dado que presenta una memoria de 8 KB de programa, 1 KB de SRAM y 512 bytes de EEPROM, seis canales de PWM, USART progra- 1. CONCEPTOS FUNDAMENTALES Figura 14. Otro de los micros de la firma Microchip, creadora del 16F84. Figura 15. ATMega8 en una placa de prototipado rápido. 30
  • 33. mable, conversor analógico digital de cuatro canales multiplexados de 10 u 8 bits y dos canales de 8 bits, entre otras características que se pueden encontrar en la página de la firma. PDA Si no tenemos una base de conoci-miento ❘❘❘ y experiencia en electrónica para utilizar los microcontroladores que presentamos pero contamos con una Palm o una PocketPC, podemos destinar parte de su tiempo de uso pa-ra que actúe como cerebro de nuestra creación. En los últimos años, estos dispositivos han bajado de precio en forma notable y, además, algunos mo-delos han caído en desuso, aunque pueden adaptarse perfectamente para ser empleados con nuestros robots. Uno de los ejemplos más interesantes en este punto es la adaptación del ro-bot Robosapien (Figura 17) de la fir-ma Wow Wee para que pueda ser controlado desde una PocketPC por infrarrojo, con lo cual utilizamos la PDA como control remoto inteligen-te que puede generar su propio pro-cesamiento. Para la detección del Introducción a la robótica mundo se utiliza una cámara que se conecta en el puerto de tarjetas de me-moria. En síntesis, con poco dinero podemos tener un robot humanoide. Se puede obtener más información en www.informatik.uni-freiburg.de/ ~nimbro/media.html. El Instituto de Robótica de Car-negie Mellon desarrolló un proyec-to para la construcción de un robot autónomo móvil de bajo costo, y se utilizó una Palm como procesador (Fi-gura 18). En el sitio www.cs.cmu.edu/ ~reshko/PILOT podemos encontrar todos los pasos y los materiales nece- ARDUINO, UNA PLATAFORMA OPEN HARDWARE PARA ROBÓTICA 31 Figura 16. Arduino, una plataforma abierta en software y hardware para el desarrollo de robots. Arduino es una placa basada en el micro Atmel ATmega8, programable por serial o USB, con entradas y salidas analógicas y digitales. Su diseño y distribución son com-pletamente libres. En su sitio web, www.arduino.cc, podemos encontrar los planos pa-ra armar la placa y el software necesarios para su programación. Si no nos animamos a construirlos desde cero, podemos adquirir los componentes en el mismo sitio.
  • 34. sarios para construirlo, incluido el software que es indispensable bajar en la Palm para la programación. Si bien utiliza ruedas omnidirecciona-les, servos y otros materiales que pueden ser costosos en el mercado local, con ellos obtendremos un ro-bot móvil de excelente calidad. Comprar una PDA pura y exclusiva-mente para la construcción de un ro-bot es demasiado costoso en compa-ración con las otras variantes. Pero si disponemos de una, o si los precios de estos dispositivos continúan ba-jando, puede ser una posibilidad muy interesante por su potencia de procesamiento y tamaño. Computadoras (PC) Por último, no queremos dejar de pre-sentar la posibilidad de usar mother-boards de PC convencionales pero de tamaños reducidos, conocidos como Mini y Nano-ITX (Figura 19). Por ejemplo, la conocida firma VIA ha de-sarrollado la línea EPIA, de bajo con-sumo y con un tamaño que oscila en-tre 12 y 17 centímetros de lado. Uno de sus modelos, el VIA EPIA NL, po-see placa de video de S3, zócalo para memoria DDR 266/333/400, un slot mini PCI, un puerto S-ATA y dos P-ATA, placa de sonido, LAN, puerto serie, USB y otros, que permiten tener toda la potencialidad de una PC ¡en 12 x 12 centímetros! En el sitio www. mini-itx.com se muestran desarrollos 1. CONCEPTOS FUNDAMENTALES Figura 17. Robot Robosapien hackeado con una PDA en su cabeza como procesador. Figura 18. Palm Pilot Robot Kit es un kit de robótica cuyo procesador es una Palm Pilot. 32
  • 35. de fanáticos de estos modelos, no só-lo en robótica, sino también en los dispositivos más extraños. En www. epiacenter.com se analizan muchos mothers de este tipo, de diferentes marcas, y se ofrecen los links a tiendas en línea donde adquirirlos. La enorme ventaja de utilizar este tipo de tecno-logía ❘❘❘ es la potencia que nos brinda una PC para el procesamiento de la infor-mación de los sensores y la toma de decisiones, la posibilidad de progra-mar cómodamente en lenguajes de al-to nivel, y la facilidad de desarrollar y de testear en nuestra computadora de escritorio. Por otra parte, tanto los sensores como los actuadores que que-ramos conectar pueden desarrollarse sobre plataformas muy conocidas, co-mo serial, paralelo o USB. Cualquier cámara web puede conectarse en se-gundos, y todos los drivers de los dis-positivos ya desarrollados funcionan sin problema en nuestro robot. Sensores Una de las características fundamen-tales que debe tener un robot es po-seer Introducción a la robótica Figura 19. Nano-itx, un motherboard de la empresa Via, de 12 cm por 12 cm. algún mecanismo de modifica-ción de su comportamiento según el ambiente en el que se encuentra. Pa-ra esto, tiene que contar con disposi-tivos que le permitan sentir el mun-do que lo rodea, según la tarea que deba realizar. Por ejemplo, en am-bientes muy dinámicos, es probable que deseemos sensores que puedan captar rápidamente la información, aunque perdamos precisión. Si esto no fuera así, la información recibida no sería útil, porque representaría un ROBOTS CON NOTEBOOKS Gracias a la baja de su precio y a su tamaño, no es sorprendente encontrar robots cuyo procesamiento lo realiza una notebook. Permite utilizar lenguajes de alto ni-vel, muy buena velocidad de procesamiento y entradas y salidas estándares como serial, paralelo, USB o firewire. Además, es posible desarrollar todo el comporta-miento del robot desde una PC convencional, y cualquier desperfecto es fácil de sal-var 33 con la instalación una nueva notebook.
  • 36. estado antiguo que, con seguridad, ha sido modificado por el alto dina-mismo del ambiente. Un ejemplo de esto es el fútbol de robots. En otros casos, necesitamos la mayor precisión posible por la operación que realizamos y para lograrlo, tendremos que utilizar sensores de mayor fiabili-dad, aunque su tiempo de respuesta sea bajo. En realidad, cuando cons-truimos un robot, siempre luchamos con esta dualidad (y, seguramente, con muchas variables más). Es por eso que la elección de los sensores que utilicemos estará determinada por la tarea que vayamos a realizar y sus requerimientos particulares. Los sensores pueden definirse como dispositivos que nos permiten medir alguna característica del ambiente, co-mo la temperatura, la distancia, la po-sición, el sonido, la intensidad de la luz, los colores, la altitud, la velocidad, la rotación, etcétera. Lamentablemen-te, en la realidad no existe el sensor perfecto, y por lo tanto debemos com-pletar y corregir la información con la utilización de algoritmos de correc-ción y redundancia de sensores. Otro aspecto importante para tener en cuenta es que, según el tipo de controlador que utilicemos para nuestro robot, deberemos diseñar circuitos intermedios entre el sen-sor y el controlador, con el fin de convertir la señal del sensor en un 1. CONCEPTOS FUNDAMENTALES 34 30 25 20 15 10 5 0 0 5 10 15 20 25 30 Tiempo Valor Figura 20. En este caso, los valores son los de un sensor analógico.
  • 37. valor interpretable por nuestro pro-cesador. Por lo tanto, aunque poda-mos utilizar un mismo sensor para diferentes plataformas de controla-dores, con seguridad tendremos que diseñar estas interfaces en forma de-dicada para cada procesador. Clasificación Podemos dividir a los sensores en dos grandes grupos: analógicos y digita-les. Los analógicos entregan un valor (por ejemplo, una tensión) dentro de un determinado rango continuo (Figu-ra 20). Un ejemplo de este tipo es una fotorresistencia, que mide la intensi-dad de la luz, y que podemos adaptar para que entregue un valor de 0 a 5 Vol-tios. Introducción a la robótica Los sensores digitales entregan una señal discreta dentro de un conjunto posible de valores (Figura 21). Es decir, este conjunto de valores se modifica de un rango a otro por saltos discretos y no continuos. Un ejemplo clásico es el sensor de to-que, que devuelve valor 1 (ó 0 Vol-tios) si está apretado y 0 (ó 5 Voltios) si no es así. Desde ya que, a pesar de que el sen-sor sea analógico, finalmente, en la lectura del controlador, obtendremos un valor discreto. Es decir, se realiza-rá una conversión analógico/digital dentro del controlador o en la inter-faz que construyamos para la adapta-ción del sensor al controlador. 35 30 25 20 15 10 5 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Tiempo Valor Figura 21. Aquí podemos ver un ejemplo de valores tomados por un sensor digital.
  • 38. Figura 22. Aquí podemos apreciar un sensor de efecto hall. Otra clasificación posible de los sen-sores es internos y externos. Los in-ternos son aquellos que nos brindan información del propio robot, como la velocidad, la rotación, la posición, la altura, etcétera; en tanto que los ex-ternos son los que proporcionan da-tos del ambiente, como las distancias, la temperatura, la presión, etcétera. Por último, también podemos dividir los sensores en pasivos y activos. Los activos son los que necesitan enviar una señal hacia el ambiente para luego reci-bir el rebote de esa señal y, de esta ma-nera, interpretar el estado del mundo que lo rodea. Un ejemplo clásico de es-te tipo de sensor es el ultrasónico, que envía una señal sonora que, al rebotar con un objeto, vuelve al robot, y al cal-cular el tiempo de demora, puede in-terpretar la distancia al objeto. Desde ya que los sensores activos necesitan mucha más electrónica para su funcio-namiento, pero la información que nos brindan es mucho más rica que la que nos ofrecen los sensores pasivos. Tipos de sensores Hacer una lista de todos los tipos de sensores existentes sería imposible. Los que nombraremos a continua-ción son los más utilizados en robó-tica de bajo costo: • Sensores de interrupción: simple-mente, detectan si pasa corriente o no. Se utilizan como sensores de choque o contadores de eventos (vueltas de una rueda, por ejemplo). • Sensores de posición: determinan la posición del robot. Un sensor de es-te tipo puede ser un potenciómetro que cambia su valor por la rotación de las ruedas; u ópticos, como los que 1. CONCEPTOS FUNDAMENTALES SIMULADORES ▲ Existen cientos de simuladores de distintos tipos de robots: humanoides, autóno-mos, 36 robots para fútbol, etcétera. Por ejemplo, uno de los más interesantes en el fútbol de robots lo podemos conseguir en el sitio www.fira.net/soccer/simurosot/ R_Soccer_ v15a_030204.exe. Sin embargo, un simulador no es lo mismo que la ro-bótica física. Creer que la experiencia física es igual a la simulada es pensar que Second Life es igual a la vida misma. Y no es así, ¿no?
  • 39. se usan en un mouse tradicional, que cuentan la cantidad de veces que re-cibe ❴❵ señal el sensor óptico de una rue-dita que tiene ventanitas cada deter-minado ángulo (podemos abrir uno para verlo, el mecanismo es sencillo). • Sensores de efecto hall: estos sen-sores utilizan una propiedad de los imanes, que modifican su conduc-tividad cuando encuentran un ob-jeto metálico (Figura 22). • Sensores de luz o brillo: detectan la cantidad de luz que reciben. Se-gún el tipo de sensor utilizado, por este mecanismo podemos detectar diferencias entre los colores, si és-tos no son brillantes. • Sensores infrarrojos: envían una señal infrarroja y determinan el tiempo que tardan en volver a reci-birla. Permiten detectar obstáculos (si la señal vuelve) o medir distan-cias si el sensor es preciso. • Sensores de ultrasonido: como explicamos antes, envían una señal sonora y captan el rebote, de la misma manera en que lo hace un Sonar en el mar. Introducción a la robótica En los últimos tiempos, gracias a la posibilidad de contar con mucha ca-pacidad de procesamiento en tamaño reducido, se ha comenzado a utilizar el video como sensor de los robots. 37 Figura 23. Laser Sick, usado como sensor por su magnífica precisión. ROBOTS ADAPTATIVOS Una de las dificultades más complejas en el desarrollo de robots es la de darles la capacidad de adaptarse en tiempo real al mundo que los rodea. Por ejemplo, los sis-temas de visión son muy dependientes de la luz que existe en el ambiente. Por esa razón, es habitual que en las competencias de robots, los equipos que han tenido un gran desempeño en días anteriores, ante un leve cambio de iluminación no puedan realizar prácticamente ninguna tarea.
  • 40. Figura 24. En esta imagen podemos ver un insecto robótico que, en lugar de motores, utiliza músculos de alambre. El procesamiento de imágenes es un tema muy complejo y apasionante al mismo tiempo, y escapa a la arquitec-tura ❘❘❘ y los costos de fabricación de los robots que nos hemos propuesto pa-ra este libro. Pero seguramente, en poco tiempo podremos utilizar nues-tras webcam en forma sencilla y eco-nómica para nuestras creaciones. Las cámaras son los sensores que más da-tos nos proveen en un lapso de tiem-po muy breve. El problema funda-mental es que necesitamos mucho tiempo de procesamiento en algorit-mos complejos para extraer informa-ción útil de semejante cantidad de 1. CONCEPTOS FUNDAMENTALES MÚSCULOS DE ALAMBRE Hasta hoy, el movimiento de los robots se ha realizado con motores. Pero si queremos imitar el movimiento de organismos vivos, ninguno de ellos utiliza este tipo de dispo-sitivos. 38 Es por eso que se ha desarrollado otro tipo de sistema de movimiento conoci-do como músculos de alambre (wired muscles). Los músculos de alambre son, como su nombre lo indica, alambres que cambian su longitud cuando se calientan, lo que se puede lograr al pasar corriente eléctrica por ellos (Figura 24).
  • 41. ❘❘❘ bits. Es en este tipo de algoritmos donde podremos encontrar con más claridad el dilema a resolver entre velocidad y precisión. Actuadores Si nuestro robot sólo observara el mundo sin actuar en él, sería un robot sumamente limitado. Nuestro deseo es que modifique su estado y el del ambiente según la información que obtiene en el proceso. Con este fin, disponemos de motores, músculos de alambre, lámparas, displays, buzzers, etcétera. Al conjunto de estos disposi-tivos se lo denomina actuadores. Los actuadores más sencillos de utili-zar son las lámparas, que no ameritan demasiada descripción para su uso. Simplemente, con conectarlas a algu-na salida del procesador y proveer la alimentación necesaria para su fun-cionamiento, podremos encenderlas y apagarlas con nuestro programa. Sin embargo, pondremos nuestro fo-co de atención en los motores, dado que definen en gran medida nuestra capacidad de desplazamiento, los grados de libertad y otros aspectos vinculados al movimiento del robot. Por definición, el motor eléctrico es un dispositivo electromotriz, es decir, que convierte la energía eléctrica en energía motriz. Todos los motores disponen de un eje de salida para aco-plar un engranaje, una rueda, una po-lea o cualquier mecanismo capaz de Introducción a la robótica transmitir el movimiento creado por el motor. La etapa de elección de un motor puede ser una tarea muy com-plicada según las limitaciones de nuestro proyecto, si tenemos en cuenta todas las características que definen al motor. Éstas son: tamaño, peso, velocidad (revoluciones por mi-nuto, RPM), torque (kilogramo por centímetro) tensión y, la más sensi-ble: el costo. En la actualidad, existen diferentes tipos de motores, que des-cribiremos a continuación: Motores de corriente continua (CC) Son los motores más comunes y que casi todos conocemos (Figura 25). En general, los encontramos en cualquier LEYES DE LA ROBÓTICA Dentro de su producción literaria basa-da en la robótica, Asimov definió tres leyes para la protección de los huma-nos que los robots de ficción tienen al-macenadas en su cerebro positrónico. Éstas son: 1. Un robot no puede hacerle daño a un ser humano o, por inacción, permitir que un ser humano sufra daño. 2. Un robot debe obedecer las órdenes de un humano, salvo que alguna de és-tas entre en conflicto con la primera ley. 3. Un robot debe proteger su propia existencia, salvo que esto viole la pri-mera 39 o la segunda ley.
  • 42. Figura 25. Motores y motorreductores de corriente continua. tipo de juguete (¡un buen lugar don-de ir a buscarlos!). El funcionamien-to del motor se basa en la acción de campos magnéticos opuestos que ha-cen ▲ girar el rotor (eje interno) en di-rección opuesta al estator (imán ex-terno o bobina). De este modo, si su-jetamos la cubierta del motor por me-dio de soportes o bridas, el rotor con el eje de salida será lo único que gira-rá. Para cambiar la dirección de giro en un motor de corriente continua, tan sólo debemos invertir la polaridad de su alimentación eléctrica. Un detalle importante es que, casi siempre, se utilizan acompañados de un sistema de engranajes que reducen la velocidad y proporcionan mayor fuerza, dado que este tipo de motores carece de esta cualidad. Es convenien-te conseguir el conjunto completo porque las adaptaciones son compli-cadas y pocas veces se obtienen muy buenos resultados. Motores paso a paso (PAP) Un motor paso a paso (Figura 26) se diferencia de uno convencional por-que puede ubicar su eje en posicio-nes fijas o pasos, con lo cual es ca-paz de mantener la posición. Esta peculiaridad se debe a la construc-ción del motor en sí: por un lado, tiene el rotor constituido por un imán permanente, y por el otro, el estator construido por bobinas. Al alimentar alguna de esas bobinas, se atrae el polo magnético del rotor opuesto al polo generado por la bo-bina, y éste permanece en esta posi-ción hasta que la bobina deje de ge-nerar el campo magnético y se acti- 1. CONCEPTOS FUNDAMENTALES FANÁTICOS DE LEGO Como comentamos anteriormente, Lego tuvo la precaución de liberar muchísima información sobre sus diseños de manera que otros pudieran desarrollar material para sus kits. Es por eso que podemos encontrar varios lenguajes para poder pro-gramar 40 los robots de esta firma. Además, también se pueden conseguir los planos de los sensores de todo tipo. Una de las páginas más conocidas de sensores case-ros es www.extremenxt.com/lego.htm.
  • 43. ve otra bobina, lo cual hace avanzar o retroceder al rotor. De esta mane-ra, al variar los campos magnéticos en torno al eje del motor, se logra que gire. Los motores PAP pueden ser de dos tipos: Bipolar: lleva dos bobinados indepen-dientes. ❘❘❘ Para controlarlo se necesita in-vertir la polaridad de cada una de las bobinas en la secuencia adecuada. Unipolar: dispone, normalmente, de 5 ó 6 cables, dependiendo de si el común está unido en forma interna o no. Para controlar este tipo de mo-tores existen tres métodos con sus correspondientes secuencias de en-cendido de bobinas. El común irá conectado a +VCC o masa según el circuito de control usado y, luego, sólo tendremos que alimentar la bo-bina correcta para que el motor avance o retroceda según avancemos o retrocedamos en la secuencia. Es-tos motores son muy utilizados en disqueteras, lectoras de CD e impre-soras. En las antiguas disqueteras de 51/4, podemos encontrar algunos bastante poderosos, y en las lectoras Introducción a la robótica de CD, unos más pequeños pero siempre acompañados de buenos me-canismos reductores. Servomotores El servo (Figura 27) es un pequeño pe-ro potente dispositivo que dispone en su interior de un pequeño motor con un reductor de velocidad y un multi-plicador de fuerza. También cuenta con un pequeño circuito eléctrico en-cargado de gobernar el sistema. El re-corrido del eje de salida es de 180º en 41 Figura 26. Vista interna de un motor paso a paso. BUZZERS PARA DETECTAR ERRORES Una de las herramientas fundamentales para detectar errores en nuestro robot es la posibilidad de mostrar en un display el valor de los sensores, las variables, etcé-tera. El problema es que como se trata de un ente autónomo, tendríamos que co-rrer detrás de él para ver qué ocurre y leer los valores que se muestran en el dis-play. Es por eso que usualmente al robot se le agrega un buzzer que nos permite emitir sonidos y enterarnos de lo que sucede.
  • 44. Figura 27. Servomotor tradicional de la marca Hitec. la mayoría de ellos, pero se puede mo-dificar ✱ con facilidad para tener un re-corrido libre de 360º y, entonces, ac-tuar como un motor común. El control de posición lo efectúa el servo en forma interna mediante un potenciómetro que va conectado en forma mecánica al eje de salida. Éste controla un PWM (Pulse Width Mo-duler, modulador de anchura de pul-sos) interno para compararlo con la entrada PWM externa del servo, me-diante un sistema diferencial y así, modificar la posición del eje de sali-da hasta que los valores se igualen y el servo se detenga en la posición in-dicada. En esta posición, el motor del servo deja de consumir corriente y sólo circula una pequeña cantidad hasta el circuito interno. Si en ese 1. CONCEPTOS FUNDAMENTALES NANOBOTS Los nanobots son robots de tamaño microscópico, cuyas dimensiones están en el or-den 42 de una millonésima de milímetro. Se realizan con técnicas de nanotecnología y, aunque aún son ensayos y especulaciones teóricas, ya se han dado pasos para su con-creción. Esencialmente, se han desarrollado nanobots químicos o moleculares con fun-ciones limitadas. La aplicación para estos futuros robotitos está apuntada a la medici-na, la industria, la ecología y la producción de alimentos.
  • 45. momento forzamos el servo (al mo-ver el eje de salida con la mano), el control diferencial interno lo detecta y manda la corriente necesaria al mo-tor para corregir la posición. Para controlar un servo, tenemos que aplicar un pulso de duración y una frecuencia específicos. Todos los ser-vos disponen de tres cables: dos pa-ra la alimentación y uno para aplicar el tren de pulsos de control que ha-rán que el circuito de control dife-rencial Introducción a la robótica interno ponga el servo en la po-sición indicada por la anchura del pul-so. Los servomotores son una muy buena alternativa, ya que traen inte-grado un sistema reductor que nos ahorrará dolores de cabeza a la hora de buscar fuerza. La desventaja para al-gunas aplicaciones es que, en general, son lentos. Se utilizan mucho en los automóviles y aviones radiocontrola-dos, principalmente para accionar el mecanismo que les da la dirección. 43 … RESUMEN En este primer capítulo hemos hecho una breve introducción a los conceptos fun-damentales de la robótica. Un robot no es más que un dispositivo con un deter-minado grado de movilidad, que puede realizar un conjunto de tareas en forma independiente y se puede adaptar al mundo en el que opera. Existen diversos ti-pos de robots, según el uso para el cual se han destinado, el medio en el que se mueven, la capacidad de autonomía que presentan, etcétera. Cualquiera de estos robots está dirigido por una unidad de procesamiento, que se puede adquirir en forma completa con todas sus comunicaciones de entrada y sa-lida resueltas, o que podemos desarrollar desde cero con micros, dispositivos portátiles o, simplemente, motherboards de PC. Además, necesita de sensores para poder captar el mundo. Cuanto más complejo sea un sensor y más datos nos provea, tendremos que renunciar a ciertos aspec-tos de velocidad para obtener información más precisa. Por último, para que el ro-bot pueda trasladarse y actuar sobre el entorno, necesitamos de los actuadores. Los esenciales y más usados son los motores, de los cuales tenemos diversos ti-pos según el objetivo de nuestro robot y la cantidad de dinero que poseamos.
  • 46. ✔ ACTIVIDADES TEST DE AUTOEVALUACIÓN 1 ¿Cuál es nuestra definición de robot? 2 ¿Qué clasificaciones encontramos de los diferentes tipos de robots? 3 ¿Cuáles son las unidades que presen-ta 44 un robot? 4 Compare las ventajas y desventajas del uso de un kit de robótica o el desarrollo desde cero del procesamiento del robot. 5 Si desarrollamos la unidad de procesa-miento por nuestros propios medios, ¿qué dispositivos podemos utilizar? 6 ¿Qué es un sensor? ¿Cuál es la diferen-cia entre sensores activos y pasivos? 7 ¿Cuáles son los tipos de sensores con los que podemos contar en la elabora-ción de nuestro robot? 8 ¿Qué ventajas y desventajas presenta el uso de video como entrada de datos de un robot? 9 ¿A qué llamamos actuadores? 10¿Qué tipos de motores encontramos en el mercado?
  • 47. Robótica Componentes del robot Capítulo 2 Antes de comenzar a construir nuestro robot, daremos una mirada general a todos los componentes que lo conformarán. Desde ya que elegiremos puntualmente alguno de ellos, pero con este capítulo nos será sencillo seleccionar otras variantes según el objetivo que tengamos para nuestro robot. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Una mirada global a nuestro futuro robot 46 Objetivos de nuestro robot 47 Tipo de procesamiento seleccionado 48 ¿Cómo le damos movimiento a nuestro robot? 50 ¿Y cómo captamos el mundo que nos rodea? 53 Materiales para la mecánica 55 Resumen 59 Actividades 60
  • 48. UNA MIRADA GLOBAL A NUESTRO FUTURO ROBOT Como hemos podido ver en el primer capítulo, la cantidad de variantes que tenemos para construir nuestro robot es inmensa. Es por eso que en este capítulo, presentaremos los materia-les que hemos decidido utilizar para nuestra primera creación, y justifica-remos la elección que hemos realiza-do. En primer lugar, vamos a dar un paseo por el mundo de los micropro-cesadores, introduciremos un conjun-to de conceptos que nos serán im-prescindibles a la hora de construir el controlador de nuestro robot. Luego veremos el tipo de motores que vamos a utilizar y dónde podemos conse-guirlos. Para esto podremos desarmar algún equipo electrónico antiguo, co-mo disqueteras, impresoras, etcétera. Luego, haremos lo mismo con los sensores, siempre con el objetivo de gastar la menor cantidad de dinero posible en nuestro primer proyecto (¡luego vendrán proyectos multimi-llonarios!). Y por último, echaremos una mirada sobre el material que po-demos utilizar para la construcción del cuerpo de nuestro robot. 2. COMPONENTES DEL ROBOT 46 Figura 1. Ejemplo de un robot artesanal con diversos sensores.
  • 49. Objetivos de nuestro robot Para la elección de todos los compo-nentes de nuestro robot, es necesario que fijemos claramente cuáles serán los objetivos, es decir, las tareas que queremos que nuestro robot realice. La primera decisión fundamental es definir si vamos a utilizar un kit o construiremos nuestro robot desde cero en forma artesanal. Es una deci-sión fundamental porque implica un presupuesto mucho más alto en el pri-mer caso y, de alguna manera, tam-bién acota las posibilidades de lo que vamos a diseñar. Por otra parte, en el primer capítulo ya enumeramos las ventajas que brinda el uso de un kit, pero en nuestro proyecto vamos a de-sarrollar el robot desde cero, paso a paso, componente por componente. En nuestro caso, la primera razón por la que lo haremos de esta manera es porque así vamos a aprender mucho más sobre todas las capas que com-ponen al robot. La segunda razón, no menos importante, es el costo de nuestro proyecto. La idea es que po-damos reutilizar elementos que en-contremos en desuso. Un humilde aporte ecológico de nuestra parte. Bien, ahora que hemos decidido ar-mar en forma artesanal nuestro pri-mer robot, tenemos que dejar en cla-ro qué es lo que queremos que haga. En este libro, nuestro objetivo es re-alizar un robot que pueda, en dife-rentes adaptaciones, detectar obje-tos Una mirada global a nuestro futuro robot y esquivarlos, seguir una línea negra, y buscar una luz. Cuando decimos diferentes adaptacio-nes, lo que queremos acentuar es que no necesariamente hará las tres cosas el mismo robot. Vamos a organizar dife-rentes proyectos, con mínimas modi-ficaciones entre uno y otro, para lograr los tres objetivos. Luego, si combina-mos la capacidad de tocar objetos con la detección de la línea negra, podre-mos construir un luchador de sumo. Y para realizar un sencillo jugador de fút-bol, uniremos la detección de luz con el tacto de los objetos, dado que nos prepararemos para una categoría que 47 Figura 2. Partido de fútbol de robots donde se utiliza una pelota infrarroja.
  • 50. Figura 3. Uno de los micros de la firma Atmel. usa una pelota infrarroja (Figura 2). Pe-ro ya llegaremos a este punto dentro de unas cuantas páginas. Comencemos con el procesamiento. Tipo de procesamiento seleccionado Si seguimos la línea que acabamos de presentar, decidimos realizar nuestro controlador basándonos en un microcontrolador que fuera económico y de uso popular. Pero, para empezar, veamos qué es esto de los microcontroladores. A esta al-tura del siglo XXI, no nos sorpren-de encontrar en cualquier casa u ofi-cina una computadora, con sus uni-dades de entrada, de salida y de pro-cesamiento. Y estas computadoras, para nuestra alegría, se reducen cada vez más en precio y tamaño. ¿Pero, cuál es el límite de esta reducción? Aquellos que usaron un dispositivo portátil, como una PDA, habrán no-tado que la pantalla y el teclado son, en estos momentos, los puntos crí-ticos de reducción. Ahora bien, si no necesitáramos información por una pantalla y el ingreso por teclado, ¿podríamos tener una computadora mucho más pequeña? Sí, podemos, y de alguna manera eso es un mi-crocontrolador, un circuito integra-do, con CPU, memoria y conexión para entradas y salidas. Todo esto, en un tamaño muy reducido, no mayor al de una estampilla. Si lo vemos de esta manera, pode-mos confundir un microcontrolador con un microprocesador. ¿En qué se diferencian? Principalmente, en que el microcontrolador suma a un mi-croprocesador un conjunto de ca-racterísticas electrónicas que lo ha- 2. COMPONENTES DEL ROBOT ❘❘❘ La primera prueba sorprendente que realizaremos con un robot, y la competencia más habitual en los torneos de robots, es el seguimiento de una línea. En general, esta prueba está condimentada con otras dificultades, como la presencia de obstá-culos 48 SEGUIDOR DE LÍNEA (LINETRACKER) que tenemos que esquivar, variaciones de iluminación o de colores en la lí-nea, secciones donde la línea desaparece, etcétera.
  • 51. cen menos dependiente de los chips de apoyo. Por ejemplo, la memoria, los conversores analógico digitales y el reloj, ya están incluidos dentro de los microcontroladores. ¿Y para qué sirve un microcontrola-dor? Bueno, tener una computadora de ese tamaño nos permitiría contro-lar en forma medianamente inteligen-te diversos dispositivos. Y esto es lo que ocurre alrededor nuestro: en el au-to, en la heladera, en el microondas o en el lavarropas, con seguridad podre-mos encontrar uno o más microcon-troladores, que hacen muchísimo más sencilla la electrónica del aparato. Algunos de los microcontroladores son de propósito específico, es decir, fueron diseñados y optimizados para una tarea Una mirada global a nuestro futuro robot determinada. En general, estos micro-controladores no pueden ser reprogra-mados, por lo que también contamos con micros de propósito general, que pueden ser programados en diversos lenguajes y con destinos de todo tipo. Las empresas de microprocesadores de propósito general más conocidas son Microchip (PIC) y Atmel (AVR). Pondremos nuestra atención en la pri-mera de las dos, dado que el micro que usaremos será el PIC 16F88. Micro-chip Technology Inc. es una empre-sa de electrónica de Estados Unidos, surgida de la empresa GI (General Ins-truments). Del conjunto de productos que ha fabricado, la línea PIC (Perip-heral Interface Controller, Controlador de Interfaz Periférico) de microcon- 49 Figura 4. Un microcontrolador PIC montado en una placa controladora GoGo.
  • 52. troladores ha sido su bastión funda-mental (Figura 4). Una de las carac-terísticas más importantes de estos mi-cros es que son de tipo RISC (Redu-ced Instruction Set Computer, Compu-tadora con Conjunto de Instruccio-nes Reducido) en contraposición con la arquitectura CISC (Complex Ins-truction Set Computer, Computadora con Conjunto de Instrucciones Com-plejo). Esto implica que tienen un conjunto reducido de instrucciones de tamaño fijo con respecto a la can-tidad de ciclos de reloj (en general, to-das las instrucciones necesitan de un solo ciclo de reloj) y que sólo las ins-trucciones de carga y almacenamien-to acceden a la memoria. Las ventajas que estas (y otras) características nos brindan son que la ejecución es más rápida y que permite el paralelismo entre instrucciones mediante una téc-nica llamada pipelined. La desventaja radica en que la pro-gramación con este reducido conjun-to de instrucciones tan atómicas im-plicará más trabajo. Con respecto a los PIC, las características fundamen-tales que podemos encontrar entre los diferentes modelos son: • Núcleo de 8/16 bits con arquitec-tura Harvard (las memorias de ins-trucciones y de datos están separa-das, y la CPU accede a ella por bu-ses distintos). • Puertos de E/S con conversores analógicos/digitales. • Memoria Rom y Flash. • Temporizadores. • Periféricos serie. La arquitectura básica de todos los PICs contiene una memoria de datos, una memoria de programa, una unidad aritmético lógica, una unidad de con-trol y puertos de E/S (entrada y salida). De todos los modelos, hemos elegido el 16F88 para realizar nuestro robot. Es por eso que en el próximo capítulo nos detendremos a analizar en forma deta-llada este micro en particular. ¿Cómo le damos movimiento a nuestro robot? En el primer capítulo, ya hemos des-cripto el tipo de actuadores que po-demos encontrar en un robot. En nuestro caso, usaremos motores de corriente continua (cc) entre 8V y 12V, con un consumo no superior a 100 mAmp, que describiremos en profundidad más adelante. Estos mo-tores son más económicos y sencillos de controlar, pero en general carecen de precisión y fuerza (Figura 5). Para solucionar este problema, recomenda-mos los motores con caja de reducción incorporada (conocidos como moto-rreductores), que poseen un pequeño motor que gira a muchísimas revolu-ciones, unido a un sistema de reduc-ción que permite obtener fuerza con menor velocidad. Para nuestro robot utilizaremos un sistema de tracción 2. COMPONENTES DEL ROBOT 50
  • 53. diferencial, dado que es el más senci-llo de controlar desde nuestro pro-grama (Figura 6). Este sistema utiliza dos ruedas convencionales ubicadas en el centro del robot, una de cada la-do, conectadas directamente a los motores. Esto nos dará la posibilidad de ir para adelante o para atrás, de aplicar la misma energía en ambos motores, o de realizar giros según la diferencia de velocidad de cada mo-tor. El recorrido en forma recta es difícil de conseguir en esta arquitec-tura dado que siempre encontramos diferencias de velocidad entre los mo-tores o en el giro de las ruedas, des-plazamientos, etcétera. Una de las maneras de controlar esto es realizar un sensado del mundo. Por ejemplo, si tenemos que seguir una línea ne-gra, bastaría con tener uno o dos sen-sores de luz que nos permitan detec-tar nuestra desviación de la línea pa-ra modificar la velocidad de los mo-tores. Otra manera es sensar el movi-miento de las ruedas con encoders si-milares a los que se utilizaban en un mouse antiguo. El problema de este mecanismo es que necesitamos de Una mirada global a nuestro futuro robot Figura 5. Motores de corriente continua de tamaño reducido. electrónica específica para este con-trol, algo que escapa a nuestro pri-mer proyecto. Por eso, por ahora nos conformaremos con que vaya me-dianamente en línea recta. Otra arquitectura de movimiento in-teresante es la omnidireccional. Con tres ruedas especiales ubicadas como podemos ver en la Figura 7, podemos dirigir al robot hacia cualquier punto, sin necesidad de girarlo en esa direc-ción. Esta forma de navegación es muchísimo más efectiva, ya que aho- ❘❘❘ PICS ESPECIALES En la actualidad, tenemos modelos muy sorprendentes como el rfPIC, que incorpo-ra la posibilidad de comunicación wireless (¡en el mismo micro!) y los dsPIC, que tienen un bus de datos de 16 bits que permiten realizar operaciones de procesa-miento digital de señales. También podemos encontrar clones, más baratos o con 51 mejoras, como los que realiza la empresa Ubicom.
  • 54. Figura 6. Vista desde abajo de un robot de tracción diferencial. Figura 7. Arquitectura de un robot con ruedas omnidireccionales. rramos tiempo al movernos siempre en línea recta. Pero el costo de las rue-das es elevado, y se necesita de algo-ritmos algo más complejos para cal-cular la velocidad que debe tener ca-da rueda para tener la dirección dese-ada. Una vez que hemos decidido el tipo de motor y la arquitectura de las ruedas que vamos a usar, ¿dónde po-demos conseguir los motores? Desde ya, una de las formas más sencillas de conseguirlos es comprarlos. Sin embargo, si tratamos de ahorrar ese dinero, va a ser necesario extraer los motores de algún aparato que ten-gamos en desuso. El problema de ha-cer esto es que como estos motores no tienen reducción, tendremos que in-geniárnosla para darles fuerza (desde ya, se perderá velocidad). Los apara-tos de donde podemos conseguir mo-tores de corriente continua son: • Impresoras: habitualmente con-tienen motores de corriente conti-nua y paso a paso. • Juguetes: autos o cualquier juguete con movimiento. En general, son motores muy pequeños. • Limpiaparabrisas: hay de 12V y de 24V. Debemos conseguir los del primer grupo. • Reproductores de casetes y videos. Si tenemos algún servo desperdicia-do, podemos modificarlo para utili-zarlo como motor CC. Los servos son un motor de ese tipo con una ca-ja reductora y un circuito de control y tope físico, que limita su giro a 180 grados. Para convertirlo en lo que necesitamos, debemos eliminar el circuito de control y la limitación fí-sica, y de esta manera aprovechar la 2. COMPONENTES DEL ROBOT 52
  • 55. caja reductora que posee. Los pasos necesarios para llevar a cabo esta ta-rea los veremos más adelante. Como dijimos previamente, para construir nuestro robot utilizaremos dos motores de CC de 12V, con un consumo de 100 mAH. ¿Y cómo captamos el mundo que nos rodea? Como ya vimos en el capítulo ante-rior, un robot sin sensores es incapaz de cambiar su comportamiento para adaptarse al medio que lo rodea, por-que no puede captarlo. Es por eso que la elección que haremos de los senso-res es fundamental. En nuestro caso, utilizaremos sensores de contacto pa-ra detectar colisiones y sensores de luz o infrarrojos para detectar las líneas negras y la pelota infrarroja. Comencemos con el detector de co-lisiones. ¿Qué podemos utilizar para ello? En realidad, cualquier dispositi-vo que funcione como interruptor es suficiente. Los sensores de contacto que se utilizan en robótica industrial se conocen como final de carrera. Una mirada global a nuestro futuro robot 53 Figura 8. Motor paso a paso unipolar. ▲ Figura 9. Un ejemplo de sensor de final de carrera. MOTORES DE CORRIENTE CONTINUA Si no sabemos dónde conseguir motores de corriente continua, podemos visitar los sitios de los proveedores de este tipo de motores: • Ignis: www.ignis.com.ar. • Baldor: www.baldordistribuidora.com. • Telco: www.telcointercon.com/telcomotion/brushed/micro_dc.htm. • Micro-Drives: www.micro-drives.com.
  • 56. Figura 10. Micro switch utilizado habitualmente como sensor de contacto. Este sensor debe tener algún meca-nismo para que, una vez activado, luego vuelva a su posición inicial. Por otra parte, es necesario utilizar algún amplificador de la mecánica del final de carrera, según el tamaño y la posición del objeto que es nece-sario detectar. Como se puede ver en la Figura 10, el espacio de detección es muy pequeño, por lo que necesi-tamos construir un paragolpes (bumper). También podemos cons-truir nosotros este sensor con la ar-quitectura que más nos plazca. Sim-plemente, tiene que cerrar (o abrir) el circuito cuando se activa, y volver a su situación inicial cuando está de-sactivado. Los interruptores de final de carrera se pueden adquirir en ne-gocios de electrónica, y también se pueden extraer de elementos como: • Mouse: podemos usar los inte-rruptores que son presionados por los botones. El problema es que la amplificación es complicada de re-alizar por la forma de éstos. • Impresoras: para detectar si la ta-pa está cerrada o no, o para el mo-vimiento del cabezal, en general se utilizan estos mecanismos. • Celulares: aquí podemos hallar versiones pequeñas de los inte-rruptores para detectar el cierre de la tapa del celular. 2. COMPONENTES DEL ROBOT 54 Figura 11. Un LDR utilizado para la detección de luz en un robot. ❘❘❘ SENSORES DE CONTACTO ESPECIALES Podemos realizar un sensor para detectar piezas metálicas si utilizamos escobillas de autitos de pistas de carrera. En este caso, las escobillas impares están conecta-das a uno de los cables, y las pares al otro. De esta manera, cuando dos escobillas tocan el objeto metálico que se encuentra en el piso, se cierra el circuito y el con-trolador determina que se ha detectado un objeto.
  • 57. Para la detección de luz, podemos uti-lizar un sensor de luz convencional, co-nocido como fotorresistencia (LDR, Light-Dependent Resistor, resistencia que depende de la luz). Éste es un componente electrónico cuya resis-tencia disminuye a medida que la luz incide sobre él (Figura 11). Es económico y sencillo de usar, pero es altamente sensible a la luz ambien-te. Por esa razón, es bueno añadirle un led emisor para poder captar el rebote de la luz de este componente sobre la superficie a detectar. Para evitar el pro-blema de la luz ambiente, podemos utilizar un sensor infrarrojo. El fun-cionamiento es similar al anterior, pe-ro son menos sensibles a la luz am-biente, ya que sólo detectan luz dentro del rango del infrarrojo. Está com-puesto por un diodo emisor infrarrojo en una determinada longitud de onda y un receptor (en general un fototran-sistor) que apunta en la misma direc-ción que el emisor. Un buen ejemplo es el sensor activo CNY70, que puede captar objetos entre 5mm y 10mm de distancia (Figura 12). Ambos sensores son económicos, y pueden conseguirse en cualquier ne-gocio de electrónica. Es posible con-seguir alguno de ellos si desarmamos algún juguete (por ejemplo, los muñecos que detectan la presencia de un objeto por delante y emiten algún sonido), pero son tan económicos que no vale la pena tomarse ese trabajo. Una mirada global a nuestro futuro robot Figura 12. CNY70, un sensor infrarrojo muy popular. Materiales para la mecánica A la hora de construir el chasis de nuestro robot, tenemos múltiples opciones con respecto a los materia-les que usaremos. Es importante te-ner en cuenta que cuanto más livia-no sea el robot, necesitaremos mo-tores menos potentes y, por lo tan-to, menos baterías, lo que finalmen-te es más económico. Excepto en los casos en los que el peso del robot presente una ventaja, como puede ser la lucha de sumo, un robot más liviano siempre es mejor. A conti- 55 Figura 13. Aquí podemos ver un robot hecho con piezas de Lego, pero con sensores y controlador propios.
  • 58. nuación presentaremos una lista de los que se pueden conseguir con más facilidad en el mercado, con sus res-pectivas ventajas y desventajas. Piezas de Lego, Mecano u otros juguetes constructivos Seguramente, en algún rincón de nuestro baúl de los recuerdos tene-mos una bolsa con las piezas de nues-tro querido sistema de construcción de la infancia. Si hemos cometido el error de prometerlas como regalo a un vecino pequeño o al hermanito de nuestra novia, debemos olvidarlo. Estas piezas son muy prácticas para realizar prototipos de nuestros robots (¡que muchas veces quedan como versiones finales!). Una de las venta-jas fundamentales es su facilidad de uso y su versatilidad para lograr las formas deseadas (Figura 13). Otra ven-taja es la reusabilidad: una vez ter-minado el robot, podemos desarmar-lo y volver a usar el material. Por el lado de las desventajas, la más importante es la fragilidad de la es-tructura que podemos lograr. Y si no tenemos las piezas de antemano, su valor es muy alto en comparación con los otros tipos de materiales. Juguetes usados Cuando queramos construir un robot que imite algún vehículo tradicional, una muy buena opción es montarlo sobre un juguete usado, o por qué no, 2. COMPONENTES DEL ROBOT Figura 14. Aquí podemos ver un Robosapien modificado, donde el controlador es una Pocket PC. 56
  • 59. manera, podremos manipularlo con cierto cuidado. Para unir piezas, se uti-lizan pegamentos del tipo cianocrila-to. Se puede cortar con una sierrita de dientes pequeños, y es posible quitar las rebabas con una lija fina. Aglomerado Es una plancha realizada con fibras de madera pegadas a presión con una re-sina sintética (Figura 15). También es conocido como MDF (Medium Den-sity Fibreboard, Tablero de fibra de densidad media). Es económico como el PVC y puede conseguirse en cual-quier maderera. Es fácil de manipular pero es más complejo conseguir ter-minaciones prolijas. Los chasis reali-zados con este material son robustos, pero su peso es una desventaja que hay que tener en cuenta. Tampoco es aconsejable que el material se moje, aunque es resistente a salpicaduras. comprar uno con este propósito. Por ejemplo, para construir un humanoi-de es más sencillo comprar uno ya ar-mado y montar la inteligencia sobre la mecánica ya resuelta, que cons-truirlo desde cero (Figura 14). Si partimos de un juguete abando-nado, podemos considerarlo como costo cero. De todas formas, con se-guridad tendremos que añadir par-tes desarrolladas por nosotros para poder adaptar el controlador, los sensores, etcétera. En este caso, una desventaja puede ser la dificultad de ensamblar la estructura del juguete con las nuevas partes del robot. Otro problema es que, en general, las pie-zas del juguete son frágiles, por lo que deberemos tratarlas con cuida-do. Es recomendable incorporar las partes nuevas con un pegamento adecuado, y no agujerear el juguete. Por último, la reusabilidad de los materiales que utilicemos es muy baja, dado que están adaptados a es-te proyecto en particular. PVC Es un material plástico muy económi-co que se presenta en formato rígido o flexible. Es muy fuerte y resistente, aunque se puede cortar y taladrar con facilidad. Para las carcasas cilíndricas, podemos utilizar caños de este mate-rial. Si necesitamos deformarlo, el PVC se ablanda al llegar a los 80º (por ejemplo, sobre una hornalla) y de esta Una mirada global a nuestro futuro robot 57 Figura 15. Planchas de aglomerado.
  • 60. Figura 16. Robot con piezas de acrílico. Poliestireno expandido Este material es conocido universal-mente, pero denominado de diversas formas en todo el mundo: telgopor, porexpan, corcho blanco, unicel, estereofón o tecnopor son algunas de las denominaciones más habitua-les. Es muy liviano y absorbe muy bien los impactos, pero su resistencia es limitada. Es fácil de manipular con cortadores en caliente, aunque sus terminaciones son complicadas. Por su bajo costo, es ideal para rea-lizar prototipos, pero su baja resis-tencia no permite la construcción del modelo final de un robot. Acrílico En realidad, llamamos acrílico al me-tacrilato compuesto por ácido me-tacrílico. Cuando vemos un robot re-alizado íntegramente en este mate-rial, y en especial si es transparente, todos nos enamoramos. Es muy atractivo, muy resistente, liviano, y de fácil corte con sierras y caladoras, aunque hay que realizarlo con pa-ciencia porque el calor de la fricción puede derretir el material (Figura 16). Otro problema del corte es el polvi-llo que genera, por lo que se reco-mienda el uso de mascarillas para ha-cerlo. El moldeo es un poco más complicado, ya que necesita de calor local, y se realiza con pistolas de aire caliente o bandas resistivas. La des-ventaja más grave de este material es el precio, que supera ampliamente los materiales que ya comentamos. Aluminio Es el material más usado en la fabri-cación de las versiones finales de los robots. Es muy resistente, liviano y de 2. COMPONENTES DEL ROBOT ❘❘❘ La familia de micros de Atmel se llama AVR. También son RISC con 32 regis-tros 58 LOS MICROS DE ATMEL de 8 bits. Fueron diseñados para ejecutar en forma eficiente código C compilado. Aunque el núcleo de ins-trucciones es el mismo, existen diver-sos modelos, que van desde los más pequeños con 1KB de memoria flash y sin RAM, hasta los más poderosos con 256 KB de memoria flash, 8KB de RAM, 4 KB de EEPROM, conversor analógico digital y otras maravillas.
  • 61. relativo bajo precio. Si tenemos que hacer cortes sencillos, podemos traba-jar el aluminio con herramientas con-vencionales, pero si necesitamos pie-zas Una mirada global a nuestro futuro robot más complejas debemos contar con un torno específico. Por otra par-te, para moldearlo necesitamos hor-nos especiales a altas temperaturas. 59 Figura 17. Robot con chasis de aluminio. … RESUMEN En este capítulo presentamos los objetivos de nuestro robot y los materiales nece-sarios para construirlo. Hemos decidido construirlo en forma artesanal desde cero, para tener costos más bajos y para lograr un conocimiento más profundo de la ar-quitectura del robot. El objetivo de nuestro trabajo es conseguir un robot autónomo, capaz de seguir una línea negra, dirigirse a sitios más iluminados y detectar objetos que se interpongan en su camino. Para ello, utilizaremos un procesador PIC 16F88 de la empresa Microchip. El movimiento lo lograremos con dos motores de corrien-te continua de 12 Voltios. Para detectar el mundo, vamos a agregarle sensores de contacto para obstáculos físicos y fotorresistencias, y sensores infrarrojos para la detección de luces y líneas de colores. Para la construcción del chasis de nuestro robot, hemos elegido el aglomerado, dado que nos permite construir una estructu-ra robusta, con herramientas sencillas y a muy bajo precio.
  • 62. ✔ TEST DE AUTOEVALUACIÓN 1 ¿Por qué decidimos desarrollar el robot 60 en forma artesanal? 2 ¿Cuáles son los objetivos de nuestro robot? 3 ¿Qué es un microcontrolador? 4 ¿Qué diferencia un microcontrolador de un microprocesador? 5 ¿Qué características presentan los mi-cros con tecnología RISC? 6 ¿Cuál es la arquitectura básica de to-do PIC? 7 ¿Qué ventajas y desventajas presentan los motores de corriente continua? 8 ¿Qué características presenta la trac-ción diferencial? 9 ¿Qué es un final de carrera? 10 ¿Qué ventajas presenta el sensor infra-rrojo sobre el LDR? 11¿Cuáles son los tipos de materiales que presentamos para la construcción del chasis? ACTIVIDADES
  • 63. Robótica La inteligencia del robot Capítulo 3 Antes de comenzar a construir nuestro robot, daremos una mirada general a todos los componentes que lo conformarán. Desde ya que elegiremos puntualmente alguno de ellos, pero con este capítulo nos será sencillo seleccionar otras variantes según el objetivo que tengamos para nuestro robot. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com El cerebro 62 Componentes de nuestro robot 63 Objetivos del controlador 64 El microcontrolador, cerebro del cerebro 64 Conceptos fundamentales de un PIC 65 Características del PIC16F88 66 Compatibilidad con el 16F84 67 Puente H para el control de los motores 67 Listado de componentes del controlador 68 Descripción del circuito 69 Placa experimental 71 El programador 71 Nuestro programador 71 Resumen 75 Actividades 76 Colaborador: Ing. Néstor Adrián Balich
  • 64. EL CEREBRO Cuando Asimov creó sus primeros robots de ficción, aún no existían las computadoras. Tuvo que inventar los cerebros positrónicos, que son dis-positivos con inteligencia artificial que le permiten al robot almacenar información, realizar operaciones ló-gicas y tomar sus propias decisiones. Con esa capacidad sorprendente de adelantarse décadas en el tiempo, Asimov realizó una descripción que, en muchos casos, coincide con los controladores que tenemos en la ac-tualidad. De este tema, y con la in-tención de emular la genialidad de Asimov, hablaremos en este capítulo. Hay diversas formas de controlar un robot. Esencialmente, varían en fun-ción de nuestra necesidad y de lo que queremos hacer con él. Los primeros robots fueron simples autómatas, co-mo el jugador de ajedrez, que no son más que una sucesión de combina-ciones de engranajes, poleas y otros artilugios electromecánicos, en donde el creador articula el robot en forma mecánica, y gobierna así sus movi-mientos. Luego surgieron los robots con electrónica analógica (transisto-res) y compuertas digitales, que en al-gunos casos hasta pueden programar-se en forma muy primitiva con álge-bra de boole. Por último, en la ac-tualidad, nuestros robots poseen mi-crocontroladores y computadores, co-mo comentamos en el primer capítu- 3. LA INTELIGENCIA DEL ROBOT 62 Figura 1. Robot con cerebro positrónico de la película Yo, robot, inspirado en la obra de Asimov.
  • 65. ❘❘❘ lo. En nuestro caso, cuando elegimos el controlador que vamos a presentar en este libro, optamos por una solu-ción del último espectro, pero con la suficiente sencillez para su construc-ción y la suficiente complejidad pa-ra poder lograr comportamientos medianamente inteligentes. Para el desarrollo de nuestro robot necesitamos algunas habilidades de electrónica que podremos adquirir con facilidad. Esto es necesario por-que así tendremos un robot con pres-taciones iguales o mayores que las de algunos de los kits que se pueden comprar y principalmente nos per-mitirá dar los primeros pasos en la utilización de microcontroladores. Componentes de nuestro robot A la hora de diseñar nuestro contro-lador, es necesario tener presente qué tipo de robot deseamos cons-truir, porque esto nos dará una no-ción de la cantidad de actuadores y sensores que necesitaremos. Como definimos en el capítulo anterior, nuestro robot tendrá dos ruedas con dos motores, que nos permitirán controlar la dirección de manera di-ferencial. Contará con dos bumpers (sensores de choque) y un sensor analógico para poder seguir una lí-nea (robot rastreador). Si tenemos en cuenta esto, podemos definir las partes de nuestro robot en: • Chasis: éste es el armazón que contiene el controlador, los moto-res y las baterías. • Alimentación: batería de 9 V, con-junto de pilas, o batería de gel de 12 V. • Control: controlador programa-ble multipropósito. El cerebro 63 Figura 2. Un robot cuyo cerebro es nuestro controlador. CEREBROS POSITRÓNICOS Todos los robots de la obra de Asimov poseían cerebros positrónicos, que consistían en una malla de platino don-de la actividad cerebral estaba dada por un flujo de positrones. Si no tene-mos en cuenta el punto de vista litera-rio, es difícil imaginar que el positrón (antipartícula del electrón) no destruya la malla de platino, en una colisión ma-teria – antimateria.
  • 66. Figura 3. Una de las versiones del PIC16F88. • Driver H: interfaz de potencia pa-ra los motores de corriente conti-nua con inversión de giro. • Sensores: dos sensores de colisión ubicados al frente del robot. • Monitor: un led de monitoreo del programa. • Sensor analógico: para futuras aplicaciones. Objetivos del controlador Dados los objetivos que hemos defi-nido, el controlador debe cumplir con las siguientes características: • Poder controlar dos motores de corriente continua de 12 V de has-ta 400 miliamperes. • Permitir que el robot se desplace en todas direcciones mediante una tracción diferencial (de dos ruedas). • Ser programable en circuito me-diante un programador conectado a la computadora. • Utilizar baterías comunes de dife-rente voltaje entre 7 y 12 V. • Poseer la capacidad de conectar sensores de diversos tipos, tanto analógicos como digitales. • Poder configurar las entradas y las salidas según el objetivo del robot. • Permitir controlar una gran varie-dad de robots. El microcontrolador, cerebro del cerebro Como comentamos antes, el princi-pal componente de nuestra placa con-troladora es el microcontrolador. De su elección depende el tiempo de uti-lidad de ésta, ya que nos permitirá au-mentar la complejidad y adoptar di-ferentes configuraciones de robots, simplemente preocupándonos por cambiar la mecánica/electromecánica cuando sea necesario. En síntesis, el objetivo es contar con nuestro propio controlador universal de robots. En el Capítulo 2 adelantamos nuestra elección por el micro 16F88 de la firma Microchip (Figura 3). Cabe mencionar que aunque el 16F84 es el micro más difundido de esta em-presa, hemos decidido dar un paso adelante por dos razones: el nuevo modelo nos da muchas prestaciones adicionales, y todo lo desarrollado para 16F88 que no utilicen esas prestaciones es absolutamente com-patible con el 16F84. En el presente libro, en gran parte usaremos del micro nuevo aquellas funcionalidades que sean compati-bles con el anterior. Pero así nos que-da armado un controlador con am-plia capacidad de expansión. 3. LA INTELIGENCIA DEL ROBOT 64
  • 67. Conceptos fundamentales de un PIC Como en el punto siguiente quere-mos realizar una presentación del 16F88 y compararlo con otros mi-cros, a continuación describiremos un conjunto de términos necesarios para poder comprender mejor. Los conceptos que vamos a explicar son fundamentales en la arquitectura y el funcionamiento de un PIC. Si ya tenemos experiencia, esto nos resul-tará conocido y podremos continuar hasta el punto siguiente. Si no, aquí encontraremos un buen diccionario de palabras vinculadas al que podremos recurrir en los próxi-mos capítulos. • Memoria flash: es el área de alma-cenamiento de los programas. Pue-de ser reescrita miles de veces, lo que presenta una gran ventaja para reu-tilizar el controlador y para progra-mar sin temor al error. • RAM (Random Access Memory, me-moria de acceso aleatorio): almace-na todas las variables y los datos in-termedios del programa. • EEPROM (Electrically-Erasable El cerebro Programmable Read-Only Memory, ROM que se puede programar y borrar eléctricamente): en esta me-moria se almacenan los datos que deben conservarse aun cuando ha-ya pérdida de energía. Puede ser reescrita en más oportunidades que la memoria flash. • I/O Ports (Input/Output Ports, puertos de entrada/salida): es la comunicación del PIC con el mundo que lo rodea. Desde allí podrá enviar señales a la electróni-ca externa y recibir datos de ésta. • Timers (temporizadores): en ge-neral, todos los PICs poseen hasta tres temporizadores, con diversas capacidades y funciones. Se utili-zan como contadores, relojes y ge-neradores de interrupciones. • USART (Universal Synchronous Asynchronous Receiver Transmitter, transmisor y receptor sincrónico y asincrónico universal): módulo que presentan los PIC que nos brindan un puerto serie. • CCP (Capture/Compare/PWM, Cap-tura/ Comparación/Modulación por ancho de pulso): este módulo tiene tres modos de comparación. ❘❘❘ MODULACIÓN POR ANCHO DE PULSO La modulación por ancho de pulso (PWM, Pulse With Modulation) se utiliza para de-terminar la velocidad de giro de los motores eléctricos. En el pulso tenemos un mo-mento alto (con corriente) y un momento bajo (sin corriente). Según la longitud de 65 estos pulsos, logramos la velocidad de nuestro motor.
  • 68. Figura 4. Otros modelos de PIC vinculados al 16F84 y el 16F88. En el primer caso (Capture) nos permite capturar el tiempo de un evento. En el segundo (Compare) genera una salida cuando el timer 1 alcanza un valor. El último nos brinda una salida de 10 bits de re-solución sin consumo de ciclos con una determinada frecuencia, confi-gurada por el timer 2. • Comparador: es un módulo que brinda dos comparadores analógicos, de manera tal que las entradas analó-gicas o digitales se puedan comparar con los voltajes de referencia. • ICSP (In Circuit Serial Program-ming, programación en circuito): los PICs se pueden programar sin tener que sacarlos del controlador, conectándolos con el programador mediante un cable especial que des-cribiremos más adelante. Características del PIC16F88 El PIC16F88 es un salto importan-te con respecto al PIC16F84, una suerte de hermano mayor más avan-zado. En realidad, es un reemplazo de los 16F87X, que mantiene com-patibilidad con sus antecesores para hacer más sencilla la migración. Tie-ne 35 instrucciones de una sola pa-labra, de 200 nanosegundos de eje-cución. Además, cuenta con un os-cilador interno de 8MHz, 256 bytes de memoria EEPROM, 368 bytes de RAM y 4 Kb de memoria flash. Viene con un USART, un puerto se-rie sincrónico, tres timers, un mó-dulo CCP y un comparador. Para los sensores disponemos de siete canales 3. LA INTELIGENCIA DEL ROBOT ❘❘❘ Existen diferentes propuestas de emulación del procesamiento de nuestro cerebro. Entre otras, las redes neuronales son un sistema de interconexión de nodos que si-mulan 66 REDES NEURONALES neuronas que puede implementarse por hardware o por software. Estas neu-ronas reciben diversas entradas de información y mediante un conjunto de funcio-nes determinan la salida de la neurona. El arquitecto de la red define su estructu-ra y luego, mediante un sistema de aprendizaje, entrena a la red para los datos que luego deberá procesar. Luego del aprendizaje, la red es capaz de interpretar los da-tos de entrada y brindar una salida acorde.
  • 69. de entrada con conversor analógico digital. Su consumo es muy bajo, para suerte de nuestras baterías (aunque los motores serán nuestros enemigos en este aspecto). Compatibilidad con el 16F84 A pesar de las grandes capacidades que hemos mostrado del 16F88, la compa-tibilidad con el 16F84 es muy alta, lo que permite utilizar hardware y soft-ware desarrollado para el micro más an-tiguo. En primer lugar, tienen el mis-mo pinout (asignación de los pines). El 16F88 puede ejecutar el mismo código que el 16F84 con mínimas variantes, y se puede programar con el mismo hardware. Es decir, si tenemos un ro-bot con un 16F84, es posible que po-damos hacerlo funcionar con el 16F88, ¡y a un precio menor! Efectivamente, El cerebro este último modelo ha sido lanzado a menor precio que su antecesor. Para es-ta versión del controlador hemos ar-mado una placa experimental en la que no es necesario tener el 16F88 ya que es compatible con el 16F84. Por lo tanto, podremos usar el antiguo micro (incluso los primeros progra-mas estarán desarrollados para el 16F84). La necesidad del 16F88 se hará presente a medida que avance-mos en la utilización de sensores analógicos, la utilización del bootloa-der o el agregado de una interfaz se-rial RS232, entre otras cosas. Puente H para el control de los motores Para poder controlar la velocidad y la dirección de los motores de corriente continua, se utiliza un circuito deno- 67 CHIP INHIBIT 1 INPUT 1 2 OUPUT 1 3 GND 4 GND 5 OUTPUT 2 6 INPUT 2 7 VC 8 16 VSS 15 INPUT 4 14 OUPUT 4 13 GND 12 GND 11 OUTPUT 3 10 INPUT 3 9 CHIP INHIBIT 2 Figura 5. Esquema del integrado controlador de los motores L293D.
  • 70. minado Puente H. Este curioso nom-bre proviene de la forma en la que an-tiguamente se posicionaban los tran-sistores al realizar el puente. La electrónica ha avanzado y en la actua-lidad utilizamos integrados que nos proporcionan esa funcionalidad, en un espacio menor y a bajo costo. En nuestro caso, la interfaz de potencia se basa en el chip L293D, que cuen-ta con diodos de protección para los motores (Figura 5). Además, posee cuatro drivers de potencia que nos permiten controlar dos motores de hasta 600 miliampers de pico (con in-versión de giro) o cuatro motores sim-ples, controlados por dos líneas de co-mando de 5 V por motor conectados directamente al micro. Los pines 2, 7, 10 y 15 son entradas digitales que sirven para controlar la dirección de los motores. Los pines CHIP INHIBIT (1 y 9) permiten controlar la velocidad con la técnica PWM ya mencionada. Los motores se conectan a 3, 6, 11 y 14. VSS (voltaje lógico) es la que alimentará o dará potencia al motor. Listado de componentes del controlador La mayoría de los componentes que vamos a utilizar (Tabla 1) se puede conseguir en cualquier negocio de electrónica, y se puede reemplazar por otros de valores aproximados. Los elementos más costosos son los dos procesadores, el 16F84 ó 16F88 y el L293D. Otro componente de costo alto es la batería recargable de 9 V, de la cual hablaremos más ade-lante. Para poder conectar todos estos 3. LA INTELIGENCIA DEL ROBOT IDENTIFICADOR VALOR C1 100uF / 50V C2 .1uF C3 .1uF C4 47uF / 25V C5 .1uf C6 .1uf C7 22p C8 22p D1 DIODE IC1 16F88 IC3 L78L05 IC4 L293D ISCP Programador Conector 5 pines J3 Bornera 3 L1 LED Verde L2 LED Rojo Motor1 Bornera 2 Motor2 Bornera 2 POWER Bornera 2 R1 390 R2 390 R3 1K R4 1K R5 10K Reset Microswitch Sensor1 Microswitch Sensor2 Microswitch XTAL 4Mhz 4Mhz Tabla 1. Lista de componentes. 68
  • 71. componentes, podemos usar una protoboard (Figura 6) o directamente armar el circuito en una plaqueta ex-perimental. En el primer caso, el ta-maño de nuestro controlador será incómodo para montarlo sobre el ro-bot, pero puede ser útil para realizar un primer prototipo de prueba. Una vez que tengamos todo en funciona-miento, podemos pasar nuestro desa-rrollo a una placa experimental. Descripción del circuito El circuito es muy sencillo (Figura 7). Consta de una fuente de alimenta-ción regulada, basada en un 7805 que nos permite obtener a la salida una tensión estable de 5 V para ali-mentar a los circuitos integrados, in-dependientemente de que la tensión de entrada esté entre 7 V y 12 V. El El cerebro 69 Figura 6. Protoboard de buen tamaño que nos permite armar el circuito sin usar soldaduras. Figura 7. Esquema del circuito del controlador de nuestro robot.
  • 72. diodo D1 permite tener una protec-ción contra la inversión accidental de la tensión de alimentación. Los electrolíticos y condensadores cerá-micos actúan de filtros y el led L1 sólo nos sirve para indicar que el cir-cuito se encuentra alimentado. El ISCP es un conector para la pro-gramación del micro, que cuenta con un cristal oscilador (XTAL) de 4Mhz (lo podemos evitar en el caso del 16F88 gracias a que contiene un oscilador interno, pero ya que es de bajo costo y más preciso, preferimos mantenerlo en el esquema), y un pulsador de reset para bloqueos o reinicialización del sistema. El led L2 se utiliza para monitorear los di-ferentes ciclos del programa (lo po-dremos usar para depuración y tes-teos) y está controlado por RB3. Las entradas RA3 y RA4 permiten sen-sar los dos switch (llaves) que indi-can cuándo nuestro robot colisiona con algún objeto. Se encuentran co-nectadas al positivo mediante dos resistencias R3 y R4 de 1K, que nos sirven de pullup para disminuir el disparo por ruido eléctrico que pro-viene de los motores. Por su parte, RB1, RB2, RB4 y RB5 se utilizan para controlar dos moto-res de corriente continua de 12 V y 300 miliamperes. RB6 y RB7 están destinados al programador. Además de esto, nos quedan libres 4 pines (RB0, RA0, RA1, RA2) que podemos utilizar para propósitos di-versos y la posibilidad de utilizar los del cristal o de conmutar los de pro-gramación, entre otras modificacio-nes posibles. 3. LA INTELIGENCIA DEL ROBOT 70 Batería 9 V Fuente Regulada 5 V Driver H Controlador Sensor 2 Sensor 1 Motor 1 Motor 2 L 2 Figura 8. En esta figura podemos observar los bloques lógicos que componen nuestro controlador.
  • 73. Placa experimental A modo de ejemplo, en la Figura 9 mostramos la placa experimental bá-sica realizada para las pruebas preli-minares, en donde puede observarse el regulador 7805, los integrados 16F84 y L293D y, en la parte inferior a la izquierda y debajo del 16F84, la salida para el programador ICSP. El programador Cuando diseñamos el controlador del robot, uno de los objetivos fundamen-tales fue que pudiera ser programado de diversas maneras según el propósi-to final del robot. De esta forma, po-demos reutilizar nuestro controlador en la misma estructura mecánica o en otras, con otros sensores, motores, etcétera. Por eso, nos decidimos a tra-bajar con el PIC y no con el PICAXE (Figura 10), a pesar de que éste último también es una opción. El PICAXE es un micro que ya tiene grabado un pe-queño firmware, algo así como un sis-tema operativo mínimo, que permite cargarle nuestro programa por el puer-to serie del computador. Es una buena ayuda porque nos evitamos la cons-trucción del programador. El proble-ma es que si utilizamos un PICAXE dependemos totalmente de este firmware y si por cualquier proble-ma eléctrico se desprogramara el mi-cro, estaríamos en problemas. La única solución sería comprar un nuevo PICAXE o grabarle el firmware El cerebro de nuevo, para lo cual se necesita ¡un programador! Por lo tanto, tarde o tem-prano, este recurso nos es indispensa-ble, y ya que compramos componentes y hacemos circuitos, agregamos el pro-gramador para quedarnos tranquilos. Además, si alguna vez queremos cam-biar de micro, cargar un firmware de-sarrollado por otro o por nosotros, u otra variante, podremos hacerlo con nuestro programador sin problemas. Nuestro programador En Internet podemos encontrar un mundo de aficionados y profesionales que desarrollan sus actividades con PIC. Por esa razón, la oferta de pro-gramadores es amplia y si lo deseamos, 71 Figura 9. Visión final del controlador desarrollado sobre una placa experimental. Figura 10. Picaxe 8, la versión más pequeña de la línea PICAXE.
  • 74. 3. LA INTELIGENCIA DEL ROBOT 72 Figura 11. Pantalla principal del WinPic800, configurada para el 16F88. Figura 12. Esquema del programador GTP LITE.
  • 75. podemos comprar un programador en algún negocio de electrónica. Pero pa-ra cumplir nuestra promesa de que el robot será completamente artesanal, presentamos el programador GTP Li-te. Este programador fue diseñado por Jaime Fernández-Caro Belmonte de HobbyPic (www.hobbypic.com). Está basado en un desarrollo anterior del grupo Todopic (www.todopic.com. ar) llamado GTP (Grabador TodoPic). Para realizar la grabación de lo que pro-gramamos en nuestra PC hacia el mi-cro, utilizaremos el soft WinPic800 (www.winpic800.com), que nos per-mite acceder a muchos micros distin-tos (Figura 11). Más adelante, nos ex-tenderemos en el uso de este software para bajar nuestros programas al con-trolador. Con respecto a los programa-dores, existen otros modelos como el GTP-USB, pero elegimos el mencio-nado por una cuestión de costos. El GTP Lite (Figura 12) es un grabador ICSP para PICs y memorias que uti-liza un puerto paralelo y alimentación externa. Con él se pueden grabar los PICs que soporten el modo de graba-ción ICSP y que se encuentren en el El cerebro 73 ▲ OTROS PROGRAMADORES Figura 13. En esta imagen podemos ver el board del GTP LITE. Figura 14. Programador GTP LITE terminado, visto desde arriba. Uno de los programadores más populares del momento es el GTP USB Lite que, como su nombre lo indica, nos permite programar mediante la utilización del puerto USB. Podemos encontrar la información para diseñarlo en www.todopic.com.ar/foros/ index.php?topic=1716.0. En el siguiente foro podremos encontrar toda la información sobre diversos grabadores de PICs: www.todopic.com.ar/foros/index.php?board=7.0.
  • 76. nuestra placa programadora y enviar-le el programa desde la PC con un software de grabación de PIC, como el Winpic800. Pero en nuestro robot presentamos otra variante. La progra-mación en circuito ICSP (In circuit se-rial programming, programación en circuito) es ideal para trabajar con pro-totipos, ya que de manera rápida po-dremos programar nuestro robot sin necesidad de sacar el microprocesador cada vez que cambiemos el programa. Esta programación se basa en utilizar los mismos pines que usa el progra-mador para la programación directa, pero con un circuito muy simple que permite programar el integrado direc-tamente en nuestra placa controlado-ra. Para esto será necesario un conec-tor especial que posee la placa del pro-gramador con salida para ICSP. De es-ta manera, si conectamos el programa-dor a nuestro controlador por este co-nector, el mismo programa Win-pic800 podrá grabar el 16F88 sin te-ner que desarmar nuestro robot. Co-mo dijimos, esto es muy práctico por-que al ser un robot experimental, car-garemos muchos programas y haremos 3. LA INTELIGENCIA DEL ROBOT WinPIC800. La forma más tradicio-nal de grabar el programa en el micro es poner el integrado en el zócalo de IDENTIFICADOR VALOR C1 100uF/63v C2 100nF C3 100nF D1 Verde D2 Rojo D3 1N4007 D4 1N4007 D5 1N4007 IC1 78L05 IC2 78L12 J1 CONN DB25M PD1 Diodo Puente 1A Q1 BC558B RG1 ICSP RG2 15VAC R1 1k R3 1k R5 1k R2 4.7k R8 4.7k R4 1.5k U1 74LS04 Tabla 2. Lista de componentes del programador. PIN DESCRIPCIÓN FUNCIÓN TIPO DESCRIPCIÓN 12 RB6 Clock E Pulsos de reloj 13 RB7 Data E/S E/S de datos 4 MCLR Vtest MODE Selección de modo 5 VSS Vss P Masa (Gnd) 74 Tabla 3. Pines del cable para conectar el programador a la controladora.
  • 77. pruebas con él en forma constante. En la Tabla 2 describimos la lista de com-ponentes del programador. Para co-nectar el programador a nuestra con-troladora, será necesario fabricar un ca-ble (podemos utilizar alguno de los ca-bles planos que nos sobran de una PC antigua) con los pines de la Tabla 3. Re-comendamos que el cable no supere Figura 15. El mismo programador, con una toma desde la parte inferior. El cerebro los 70 centímetros de longitud. No necesitaremos 5 V ya que usamos masa común entre el programador y la controladora, con la única condi-ción de que nuestro robot deberá es-tar encendido al momento de pro-gramarlo. Este cable es el que conec-tará nuestra controladora al conector que tenemos debajo del micro. 75 … RESUMEN Hemos llegado al punto de poner manos a la obra. En este capítulo, conocimos to-dos los detalles de nuestro controlador y el programador correspondiente. Final-mente, nos decidimos por el micro PIC16F88 de la firma Microchip, en especial por su bajo costo, su buena performance, la compatibilidad con el PIC16F84 y por la po-sibilidad de programarlo en circuito, sin necesidad de sacarlo de nuestro controla-dor. Para poder realizar esto, construimos un programador conocido como GTP-LITE, de uso muy difundido entre los usuarios de PIC, y de bajo costo. Para poder re-alizar la programación, utilizaremos el software Winpic800, que nos permite pro-gramar diversos modelos de PICs y de otros tipos de micros.
  • 78. ✔ TEST DE AUTOEVALUACIÓN 1 ¿Cuáles fueron los tipos de control que 76 tuvieron los robots a lo largo de la his-toria? 2 ¿Cuáles son, esencialmente, los com-ponentes de nuestro robot? 3 ¿Qué objetivos tendrá nuestro contro-lador? 4 ¿Cuáles son los tipos de memorias que podemos encontrar en un PIC? 5 ¿Qué es el USART? 6 ¿Qué significa ICSP y qué ventajas pre-senta? 7 ¿Por qué elegimos el microcontrola-dor PIC16F88? 8 ¿En qué aspectos es compatible el 16F88 con el 16F84? 9 ¿Qué es un puente H? ¿Con qué inte-grado lo implementamos? 10 ¿Por qué no usamos el PICAXE? ACTIVIDADES
  • 79. Robótica Comida de robots Capítulo 4 Hemos visto maravillas en el aumento de la potencia de los procesadores, en la mejora de la calidad de los materiales y en la reducción de los costos de todos estos componentes. Pero lamentablemente hay un punto en el que aún no hemos hecho grandes progresos: la energía portátil. En este capítulo presentaremos los diferentes tipos de baterías para utilizar en nuestro robot. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com La fuente de energía 78 Características de las celdas de las baterías 79 Tipos de baterías 81 Calidad de las baterías 86 Cargadores 87 Ayudar a que no sólo las baterías duren más 89 Resumen 91 Actividades 92
  • 80. LA FUENTE DE ENERGÍA Volvamos a nuestros sueños de robots. Soñamos con un robot veloz, ágil, y que recorra el universo sin desgaste. Soñamos con un robot poderoso, con alta tracción que le permita subir los caminos más inhóspitos. Soñamos con un robot de mucha autonomía, que pueda dar varias vueltas al uni-verso sin necesidad de pasar por el en-chufe. Soñamos con la máquina de movimiento perpetuo, y no somos los primeros. Desde que construimos nuestros primeros mecanismos autó-nomos con desplazamiento, hemos buscado la piedra filosofal de la energía: carbón, petróleo, electrici-dad, biocombustibles, baterías, hidró-geno, energía nuclear, etcétera. Mucha agua ha pasado debajo del puente y sin embargo, la ecuación que planteamos al comienzo es irresoluble: si aumen-tamos la autonomía, necesitamos mayor tamaño y peso, y por lo tan-to, mayor consumo. Si queremos ma-yor potencia, también consumimos las cargas más rápidamente. Por aho-ra, nos tendremos que arreglar con lo que tenemos a nuestro alcance para darle energía a nuestro robot, y esto es lo que presentaremos en este capítulo. 4. COMIDA DE ROBOTS 78 Figura 1. Aibo, el perro robot de Sony, con un juguete que podría ser su comida simbólica.
  • 81. Características de las celdas de las baterías En el caso de los robots pequeños, la obtención de energía por sistemas de combustión o la energía nuclear constituyen un sistema un poco des-proporcionado. Es por eso que nos inclinamos por las baterías com-puestas por una o más celdas, con determinadas características que las hacen convenientes o no según el proyecto en el que trabajemos. Por esa razón, antes de analizar los tipos de baterías, haremos una breve pre-sentación de los conceptos funda-mentales que las distinguen. Voltaje Todas las celdas que presentaremos utilizan procesos químicos para la li-beración de energía. El tipo de mate-rial utilizado para esa reacción es el que determinará el voltaje produci-do. Pero mientras se descarga, el vol-taje puede variar. Es por esto que apa-rece el concepto de voltaje nominal, que indica el valor más estable en el que permanecerá una batería cuando se descargue. Puede ocurrir que ape-nas La fuente de energía empiece a descargarse la batería, su voltaje nominal comience a bajar, o que se mantenga durante un tiem-po para luego descender más brusca-mente sus valores. Consideraremos que la batería está descargada cuando el voltaje disminuye alrededor del 20% de su valor nominal. Por ejemplo, las baterías de autos tienen seis celdas de plomo ácido, cada una con un voltaje nominal de 2 voltios, y así nos proveen de 12 voltios nominales finales. De todas formas, es posible que nues-tro robot pueda funcionar con un voltaje menor al 80% del valor no-minal. Esto dependerá esencialmen-te de los motores que utilicemos. Capacidad En general, cuanto más grande es la batería, mayor capacidad posee (es más pesada, pero nada es perfecto). Se mide en Ampere/hora (A/h) o miliampere/hora (mA/h) y se re-presenta con la letra C. Por ejemplo, si en la batería aparece C=250, esto nos indica que puede suministrar 250 mA durante una hora, ó 125 ❘❘❘ VITRIFICACIÓN DE PILAS Una propuesta para el procesamiento de las pilas desechadas es lo que se conoce como vitrificación. Una vez eliminados, mediante calor, todos sus elementos combustibles, se separan los metales y los electrodos internos, y los químicos tóxicos se convierten en óxi-do, en forma de polvo. Este polvo se mezcla con vidrio, lo que permite un desecho que, de 79 1000 a 2000 años, comenzará a incorporarse en forma gradual a la biósfera.
  • 82. Figura 2. Una muestra de todos los tamaños clásicos de las baterías recargables. mA durante dos horas, etcétera, an-tes de que caiga su voltaje. Densidad de energía Éste es uno de los puntos más im-portantes de análisis en los robots móviles autónomos. Con la densidad de energía representamos la relación de la capacidad por unidad de vo-lumen. En nuestro caso, necesitamos la mayor relación posible, para lograr mayor autonomía y potencia. Pero seguramente, aparecerá algún otro problema, como los costos. Curva de descarga Es la curva que nos indica el voltaje de la batería en relación con el tiempo de consumo. En general, si la curva es plana, la batería baja su voltaje de gol-pe, lo que en general es bueno (man-tenemos la performance de los robots pareja durante largo tiempo), pero pe-ligroso en los casos de los robots acuá-ticos. Cuando la curva tiene un des-censo parejo, muchas veces nos en-contramos rápidamente con dificulta-des para determinar un comporta-miento consistente en el robot. En ese caso, nos es imprescindible modificar el accionar de nuestro robot median-te la lectura de sensores, y no debemos confiar en los valores absolutos. Resistencia interna Todo generador de energía eléctrica también se comporta como un con-ductor y, por lo tanto, ofrece cierta resistencia al pasaje de corriente. A es-to se lo llama resistencia interna. Por ejemplo, es una gran ventaja que las baterías de auto tengan baja resisten-cia, dado que necesitamos mucha co-rriente de golpe para encender el mo-tor. En nuestro caso, las baterías con baja resistencia interna pueden ser pe- 4. COMIDA DE ROBOTS 80
  • 83. ligrosas porque ante un corto entre-gan mucha corriente, aumentan el ca-lor de la batería y pueden ocasionar-les problemas a nuestros circuitos y, en casos extremos, una explosión. A medida que las celdas se desgastan, la resistencia interna crece, y por lo tan-to, la tensión disminuye. Capacidad de recarga Otra característica fundamental de nuestras baterías es si son recargables o no, y cuántas veces se pueden re-cargar. Dado que las baterías son muy contaminantes, esta caracterís-tica no sólo es una cuestión de cos-tos, sino que también nos propone una actitud ecológica que considera-remos más adelante. Lamentable-mente, las baterías con mayor densi-dad de energía no son recargables. Efecto memoria Es un término vinculado específica-mente a las baterías de Níquel cadmio. Cuando una batería de este tipo no se descarga en forma completa antes de ser recargada, tiende a recordar este ni-vel de descarga como el nivel 0. Por lo La fuente de energía tanto, la próxima vez considerará que está descargada cuando llegue a este punto. Aunque no hay una postura de-finida sobre este concepto, siempre se aconseja que, antes de recargar estas ba-terías, se las descargue por completo. Costo Y por último, nos encontramos con el factor común de todos los análisis: el costo. La relación entre la calidad de las baterías y el precio es directamente proporcional. Por suerte, la aparición de las cámaras digitales, los reproduc-tores portátiles, los celulares y otros dispositivos que consumen baterías a granel, ha masificado la producción de éstas, y hoy encontramos en el merca-do una gran variedad de calidad y pre-cio para nuestras necesidades. Antes de empezar a realizar una comparación con respecto a estos conceptos presentados, vamos a des-cribir los tipos de baterías que po-demos utilizar en nuestros robots. Tipos de baterías A continuación haremos un recorrido por los diversos tipos de baterías que ❘❘❘ Como si no tuviéramos suficiente con la falsificación de baterías, también debemos tener cuidado con los cargadores, que no siempre son originales. En general, son muy parecidos y la diferencia está dada por el embalaje. Para protegernos, pode-mos consultar guías de compras que se brindan en los sitios de compra por Inter-net, o dirigirnos a los comercios de prestigio de nuestra zona. 81 LOS CARGADORES TAMBIÉN SE FALSIFICAN
  • 84. tenemos para poder alimentar un ro-bot, y veremos sus ventajas y desven-tajas. Por último, definiremos un con-junto de elecciones posibles para nuestro modelo en particular. Batería de Iones de Litio (Li-Ion) Estas baterías aparecieron reciente-mente y se utilizan mucho en los celu-lares (Figura 3). Poseen una elevada den-sidad de energía y, en general, se pre-sentan en placas rectangulares de me-nos de 5mm de espesor. Tienen un vol-taje de 3,7 V, y carecen de efecto me-moria. La tasa de autodescarga es baja, con lo cual podemos sacarla del robot y guardarla aparte, y así se pierde sólo un 6% de su carga cada mes. La curva de descarga es lineal, con las ventajas y desventajas que presentamos antes. Con respecto a su vida útil, indepen-dientemente del uso que hagamos de ella, su duración es de tres años. A pesar de todas las recomendaciones que nos dan al comprar celulares, no es necesario cargarla durante 12 horas en su primera carga. De hecho, las baterías más nuevas no necesitan más que 8 ho-ras para cargarse completamente. Tam-poco es real que los primeros ciclos de carga y descarga deben ser completos. Descargar en forma completa antes de cargarla puede ocasionar un mecanis-mo de bloqueo en sus circuitos. Siem-pre es preferible cargar la batería cuan-do la capacidad sea parcial. A pesar de que aún son caras, el uso masivo en los celulares ha permitido que estén a nuestro alcance para ali-mentar a nuestro robot. 4. COMIDA DE ROBOTS 82 Figura 3. En esta imagen podemos ver baterías de Iones de Litio.
  • 85. Baterías de Níquel Cadmio (Ni-Cd) Fueron las primeras baterías recarga-bles que usamos en nuestros disposi-tivos (Figura 4). Su uso ha disminui-do a favor de las baterías de Níquel Metal (Ni/Mh), principalmente por su efecto memoria y por la contami-nación que produce el cadmio. Una ventaja que poseen es la cantidad de ciclos de carga, que ronda los 1.500 ciclos. Otra característica posi-tiva es el costo, que ronda en la cuar-ta parte de las de Ni/Mh, aunque es-ta diferencia se reduce día a día. Baterías de Níquel Metal (Ni/Mh) Son las baterías de moda en este mo-mento (Figura 6). Tienen un 40% más de capacidad que las de Ni-Cd. Además, poseen baja resistencia in-terna, lo que permite una carga más rápida y una baja tasa de autodescar-ga. El problema es que luego de los 300 ciclos, su capacidad cae drástica-mente, y luego de los 600 la resisten-cia interna aumenta en forma tan abrupta que se considera que el lími-te de los ciclos de carga es cercano a 500. Sin embargo, al tener mayor ca-pacidad y no sufrir de efecto memo- La fuente de energía Figura 6. Baterías AA de Níquel Metal de 2500 mAh. 83 ❘❘❘ Figura 4. Batería de Niquel Cadmio para luces de emergencia. Figura 5. Pequeñas baterías recargables de Ni/Mh y Ni-Cd. BATERÍAS DE POLÍMERO DE LITIO Las baterías de polímero de litio son muy parecidas a las de litio que ya describi-mos, pero se pueden producir en láminas de un milímetro de espesor y poseen un ciclo de carga y descarga más prolongado, por lo que se obtiene una batería más pequeña, más liviana y de mayor capacidad.
  • 86. Figura 7. Una UPS alimentada por una batería de plomo-ácido. Figura 8. Batería recargable de gel de 12 V. ria, la cantidad de ciclos necesaria es menor. Otra ventaja es que son más ecológicas que las de Ni-Cd. Baterías de Plomo–ácido Son las baterías que podemos encon-trar en nuestros vehículos (Figura 7). Están compuestas por celdas de 2 V, en general agrupadas en múltiplos de 3 (lo que brinda múltiplos de 6 V). Tienen un depósito de ácido sulfúrico donde se insertan unas placas de plo-mo. Cuando las celdas están cargadas, los electrodos son de plomo metálico y óxido de plomo, sumergidos en el ácido sulfúrico (diluido en agua). En el proceso de liberación de energía, ambos electrodos se convier-ten en sulfato de plomo y disminuyen así la presencia del ácido en el agua. En la carga, en el polo negativo el sul-fato de plomo vuelve a convertirse en plomo metálico, mientras que en el positivo se forma óxido de plomo, y aumenta la presencia de ácido sulfú-rico en el electrolito. Tienen una gran capacidad de corriente con una baja resistencia interna, lo que las hace es-pecialmente útiles para los motores de arranque. Son económicas pero de gran peso, lo que no las hace reco-mendables para los robots autónomos de tamaño mediano o pequeño. 4. COMIDA DE ROBOTS ▲ EN EUROPA NO SE CONSIGUE En Latinoamérica también tenemos desarrollo e investigación relacionados con las cel-das 84 de combustible. Lo curioso es que uno de los grupos dedicados a este tema surge de un colegio de nivel medio. Allí desarrollaron una celda electroquímica circular para generar hidrógeno y oxígeno que alimentan una celda combustible, que será uno de sus próximos proyectos. Más información en http://electrolizadoro7.110mb.com.
  • 87. Baterías de gel Esencialmente, son una modificación de las baterías de plomo-ácido, donde se le añade un agente gelificante al elec-trolito para disminuir su movimiento dentro de la carcasa (Figura 8). Además, presentan un mecanismo por el cual los gases internos no se liberan al exte-rior, sino que se recombinan con el agua de la batería. De esta manera, están selladas y pueden estar orienta-das en cualquier dirección. Para su re-carga, se recomienda utilizar un carga-dor de baterías especial de cuatro eta-pas, dado que en este proceso puede desprender gases o reducir su vida útil. Tienen una autodescarga muy baja y su carga útil dura hasta casi medio año. Celdas de combustible Es un dispositivo electroquímico si-milar a una batería, pero se reabastece a partir de una fuente externa de com-bustible y oxígeno. Por otra parte, los electrodos no se modifican como en una batería convencional, sino que se mantienen estables. En el caso clásico La fuente de energía de una celda de hidrógeno, los reacti-vos que se utilizan son hidrógeno en el lado del ánodo y oxígeno en el cá-todo. Al generar electricidad, el dese-cho resultante es agua y calor, con lo cual la contaminación producida por estas celdas es mínima. Aunque aún son muy costosas, en los últimos cin-co años han bajado 25 veces su precio. Quedan como una buena propuesta para seguir atentamente en el futuro. En la Tabla 1 presentamos una tabla comparativa entre las baterías que po-demos encontrar en el mercado. En ella, podemos ver todas sus carac-terísticas en forma más sencilla. Nuestra elección Como vemos, tenemos muchas va-riantes al momento de elegir la fuen-te de energía de nuestros robots. Pa-ra hacer nuestra elección, tuvimos en mente los siguientes aspectos: • Costo. • Capacidad de recarga. • Masividad de uso (es decir, que pue-dan usarse en otros dispositivos). 85 TIPO VOLTAJE DENSIDAD RESISTENCIA CAPACIDAD COSTO POR CELDA DE ENERGÍA INTERNA DE RECARGA Pila carbón zinc 1,5 V Baja Alta No Muy bajo Pila alcalina 1,5V Alta Alta No Moderado Li-Ion 3,7V Alta Media Sí Alto Ni-Cd 1,2V Moderada Baja Sí Moderado Ni/Mh 1,2V Alta Baja Sí Moderado Plomo ácido 2,0V Moderada Muy baja Sí Bajo Tabla 1. Tabla comparativa entre las baterías más comunes.
  • 88. • Densidad de energía. • Peso. Antes de presentar nuestra elección, queremos aclarar que cualquier fuen-te de corriente continua entre 9 V y 12 V es perfectamente utilizable en nuestro diseño. Por lo tanto, no es ne-cesario comprar lo mismo que men-cionamos aquí, ya que podemos reu-tilizar baterías que tengamos en nues-tro hogar. Por otro lado, en los mo-mentos en los que realizamos pruebas con nuestra computadora, podemos conectar una fuente de corriente con-tinua de 12 V para no consumir la energía de nuestras baterías. En nuestro caso, hemos elegido las pi-las AA de Ni/Mh de 2.500 mA/H, porque son las que presentan la mejor combinación de las características que hemos usado para nuestro análisis. Da-do que proporcionan 1,25 V, usaremos un pack de 8 a 12 pilas para alimen-tar a nuestro robot. Para ello, podemos adquirir 2 ó 3 portapilas de 4 pilas ca-da uno. En el capítulo en el que haga-mos el montaje, vamos a ver cómo los ubicamos, pero antes de eso, los co-nectaremos con nuestro controlador para comenzar las primeras pruebas. Calidad de las baterías Un factor fundamental en el éxito de nuestra fuente de energía es su cali-dad. Es tan masivo el uso de las pi-las recargables, que podemos encon-trar ofertas muy diversas a la hora de comprarlas. En un documento reali-zado para su tienda de Ebay, Javier Martínez nos da algunas recomen-daciones muy interesantes que pre-sentamos a continuación. En general, las pilas más económicas no brindan información real con respecto a su capacidad. La manera de comprobar esto es utilizar algún cargador con medidor de capacidad, pero en general son muy costosos, además de que no pueden realizar la medición en forma instantánea. Una segunda opción, inmediata y económica, es ¡pesar las pilas! Efec-tivamente, dado que la capacidad está relacionada con los componen-tes internos de la pila, una pila con mayor capacidad debe ser más pesa-da. En la próxima página vemos la Tabla 2, creada por Javier, con testeos que ha realizado con diversas pilas de Ni/Mh. En todos los casos, las pi-las medidas son AA. Lamentable-mente, otro problema que tenemos es 4. COMIDA DE ROBOTS Figura 9. Portapilas para 8 pilas AA. 86
  • 89. que también se comercializan pilas de marcas conocidas que, en realidad, son imitaciones. Para detectarlas, la variable peso también es útil. Por otro lado, es importante mencionar que las marcas Sony y Panasonic no han pro-ducido pilas de más de 2700 mAh. Po-demos consultar varias páginas web que nos alertan, mes a mes, sobre las falsificaciones que aparecen en el mer-cado (Figura 10). Cargadores El cargador de baterías es un dispositi-vo que permite recargar baterías ap-tas para tal fin, y fuerza el ingreso de corriente eléctrica dentro de ellas. El cargador más sencillo (Figura 11) es La fuente de energía CAPACIDAD EN MAH PESO EN GRAMOS 1700 – 1800 27 1800 – 2000 27,5 2000 – 2200 28 2200 – 2300 29 2300 – 2600 30 2600 – 2800 31 2950 33 Tabla 2. Relación entre el peso y la capacidad de las pilas AA. aquel que introduce una corriente con-tinua en la batería que debe ser carga-da sin modificar la corriente según el tiempo o la carga producida hasta el momento. Es económico, pero el re-sultado deja bastante que desear. En general, son de carga lenta para evitar 87 Figura 10. En el sitio de MercadoLibre podemos encontrar guías especiales para detectar falsificaciones.
  • 90. el deterioro de las baterías. De todas formas, si las dejamos mayor tiempo que el indicado, podemos debilitar-las o deteriorarlas por sobrecarga. Un modelo algo más complejo es aquel que detiene su carga luego de un tiempo predefinido. Se utilizaron mu-cho con las baterías de Ni-Cd a fines de la década del 90. Frecuentemente, se comercializa el pack de baterías jun-to al cargador, que viene configurado con el tiempo acorde para las baterías asociadas. Si utilizamos otro tipo de baterías, corremos riesgos de sobrecar-ga si son de menor capacidad o de car-ga parcial en el caso contrario. También podemos contar con carga-dores inteligentes (Figura 12), donde el dispositivo monitorea en forma cons-tante el voltaje de la batería, su tempe-ratura o el tiempo de carga, y determi-na el momento de corte óptimo para cada caso en particular. Para las baterías de Ni-Cd y Ni/Mh, el voltaje sobre la batería crece en forma lenta durante el proceso de carga, y decrece cuando están llenas. Esto le indica al cargador que han llegado a su punto máximo de carga. Sin embargo, monitorear la temperatura nos asegura no tener ningún tipo de problemas con las ba-terías que se encuentren en corto. En estos cargadores, es ideal que las ba-terías no se ubiquen en serie, sino de forma independiente, para que el mo-nitoreo sea específico en cada unidad. Los cargadores rápidos de buena cali- 4. COMIDA DE ROBOTS 88 Figura 11. Cargador de baterías tradicional. Figura 12. Cargador inteligente para baterías de diferentes capacidades.
  • 91. dad, específicos para un modelo de ba-tería, usan circuitos de control interno de las baterías que permiten acelerar el proceso de carga. Muchos de ellos in-cluyen un sistema de ventilación para impedir el sobrecalentamiento. De to-das formas, cuando se utilizan con ba-terías de otras marcas, realizan una car-ga normal. Si el cargador rápido no uti-liza este sistema de control interno, puede dañar las baterías. Existen algu-nos cargadores especiales que pueden realizar esta carga rápida sobre cual-quier batería, pero son de marcas reco-nocidas y su precio es elevado. Como novedad, han comenzado a aparecer cargadores que utilizan el puerto USB de la computadora para evitar la necesidad de otro enchufe (Fi-gura 14). Incluso hay pilas que tienen un adaptador USB para conectarlas directamente a nuestra PC. Si perte-necemos a la clase de fanáticos que tiene un hub USB de muchas bocas, tal vez nos quede algún lugar para co-nectar estos nuevos juguetes. Ayudar a que no sólo las baterías duren más Todos los dispositivos que hemos mencionado, en menor o mayor me-dida, son contaminantes. Es por eso que queremos ofrecer algunos con-sejos con respecto a la forma de de-sechar las baterías para que su poder contaminante se reduzca. Antes que nada, en los momentos de testeo, La fuente de energía Figura 13. Cargador para baterías de 9 V. podemos usar nuestro robot conec-tado a la corriente eléctrica. Así cui-daremos nuestro bolsillo y nuestro planeta. De esta forma, los ciclos de carga de las baterías se realizarán es-pecíficamente cuando sean necesa-rios. Por otra parte, el uso de ba-terías recargables (en lugar de alcali-nas, de carbón, etcétera) ya es un 89 Figura 14. Cargadores de baterías por USB.
  • 92. 4. COMIDA DE ROBOTS Figura 15. Batería flexible, una propuesta ecológica para la generación de energía. punto de partida muy interesante para evitar este tipo de contamina-ción. La solución ideal para el dese-cho de las baterías parte de un tra-bajo en conjunto de la sociedad, que debe apartarlas de la basura común, y del Estado, que debe proveer plan-tas de reciclado donde podamos en-viar lo que hemos apartado. El pro-ceso de reciclado no es directamen-te rentable, por lo que es necesario que las empresas que realicen este proceso pertenezcan al Estado o estén subvencionadas por él. Hasta ❘❘❘ LO BARATO SALE CARO El INTI (Instituto Nacional de Tecnología Industrial, de Argentina) realizó un estudio comparativo de pilas alcalinas y de carbón, que incluía tanto las marcas reconoci-das como las de venta callejera. Las conclusiones son que, aunque las de venta ca-llejera sean más baratas, la duración es mucho menor, por lo que no son conve-nientes económicamente. Además, las de carbón drenan su contenido al exterior y son mucho más tóxicas que las de mayor valor. 90
  • 93. que no se tome conciencia de este peligro, los consejos que dan las ONGs vinculadas a la ecología son: • No juntar pilas porque así se con-centran los riesgos. • No tirar las pilas a la cloaca porque pueden contaminar el agua. • No quemar pilas ni baterías de ningún tipo. • No dejarlas en lugares a los que pue-den acceder los niños. • Reemplazar, en la medida de lo po-sible, el uso de pilas por corriente eléctrica. La fuente de energía 91 … RESUMEN Hay un conjunto amplio de variantes para alimentar a nuestro robot. Desde las tra-dicionales baterías de plomo, demasiado pesadas para nuestros pequeños móviles, hasta las nuevas celdas de combustible que no sólo aportan más capacidad, sino que colaboran con un mundo más limpio. En particular, hemos optado por el tipo de ba-terías que consideramos de uso más popular y más económico: las baterías de Ni/Mh. Aunque tengamos que usar entre 8 y 10 baterías, el peso y la capacidad que tienen serán de gran utilidad para mover a nuestro robot. Y además, probablemente no ten-gamos que comprar un cargador, porque las cargaremos con lo que ya tenemos en nuestra casa. Por último, no debemos olvidar el impacto de todo tipo de baterías en nuestra biósfera. Es por eso que recomendamos el uso de una fuente para alimen-tar a nuestro robot, y sólo en aquellos momentos en los que necesitemos indepen-dencia de cables, utilizar las baterías.
  • 94. ✔ TEST DE AUTOEVALUACIÓN 1 ¿A qué llamamos capacidad de una ba-tería? 2 ¿Qué es la densidad de energía? 3 ¿A qué se llama resistencia interna de 92 una batería? 4 ¿En qué tipo de pilas nos encontramos con el famoso efecto memoria? 5 Realice una comparación entre las ba-terías de Li-Ion, las de Ni-Cd y las de Ni/Mh. 6 ¿Cuáles son las desventajas que pre-sentan las baterías de Plomo–ácido? 7 ¿Qué son las celdas de combustible? 8 ¿Qué tipo de baterías elegimos para nuestro proyecto y por qué? 9 ¿Qué factores podemos analizar para determinar la autenticidad de una ba-tería? 10¿Cuáles son los factores que analizan los cargadores inteligentes? ACTIVIDADES
  • 95. Robótica Hablar con nuestro robot Capítulo 5 Cuando ya desarrollamos el controlador y tomamos la decisión de cómo lo vamos a alimentar, comienza el desafío de programar el controlador. Los lenguajes no son sencillos y necesitamos procesos lógicos para poder expresar, en el lenguaje del robot, lo que deseamos que realice. En este capítulo presentaremos los diferentes lenguajes y elegiremos uno para explicar lo que necesitamos al programar el comportamiento del robot. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Comunicación con el robot 94 Lenguajes de programación para robots 95 PicBasic Pro 95 Compilador CCS C 97 MikroBasic 98 Editor de código fuente de mikroBasic 100 Explorador de código 103 Depurador 103 Manos a la obra 106 Elementos del léxico 108 Organización de los módulos 110 Alcance y visibilidad 111 Variables, constantes y tipos 112 Estructuras 115 Operadores 116 Sentencias 117 Resumen 123 Actividades 124
  • 96. COMUNICACIÓN CON EL ROBOT Ya hemos logrado construir el cerebro de nuestro robot y lo hemos dotado de energía. Sólo nos falta encenderlo para darle vida a nuestra criatura. Pre-sionamos un botón y en un primer momento, nada ocurre. Pero de pron-to, algunos músculos tiemblan y sus ojos se abren. ¡Hemos logrado el mi-lagro! Sólo basta con solicitar lo que deseamos que haga y nuestros sueños se cumplirán. Entonces le pedimos que nos traiga el periódico, que nos prepare una buena cena y que luego deje la cocina en orden. Nada ocurre. Sigue allí, con sus lucecitas parpade-antes, sin demostrar buena voluntad para obedecer a nuestras órdenes. ¿No tiene incorporadas las tres leyes de la robótica? Tal vez fue demasiado com-plejo el pedido. Intentamos con cosas más sencillas: que nos traiga el con-trol remoto, que atienda la puerta, que saque a pasear al perro, que re-suelva esas integrales dobles que nos fastidian, y nuestro robot sigue allí, sin obedecer. ¿No será que no entien-de castellano? Probamos con inglés, alemán, francés, aymará y, sin embar-go, no obtenemos respuesta. Es hora de que nos detengamos a tratar de comprender a nuestro robot. Es hora de que nos demos cuenta de que aún es pequeño, y que sólo entenderá ins-trucciones muy sencillas, instruccio-nes de muy bajo nivel. 5. HABLAR CON NUESTRO ROBOT 94 Figura 1. Una Sinclair Spectrum que, con 48 Kb de RAM, desafiaba nuestra capacidad de programar con poca memoria y baja velocidad.
  • 97. Lenguajes de programación para robots Para aquellos que hemos trabajado con computadoras de baja capacidad de procesamiento y poca cantidad de memoria, programar los micros de los robots nos resulta familiar, dado que volvemos a tener las limitaciones de aquellos viejos tiempos. Con la aparición de las PCs, la velo-cidad de procesamiento y la memoria de las que disponemos nos permiten utilizar lenguajes que no hagan un aprovechamiento preciso de todos los recursos. Gracias a estas ventajas, apa-recen los lenguajes de alto nivel, que nos brindan un mayor poder de ex-presividad a cambio de gastar mucha memoria y procesamiento. En el caso de los robots, carecemos de estos dos recursos. Por eso, nece-sitamos lenguajes que aprovechen al máximo cada byte de memoria y ca-da ciclo de procesador para realizar nuestra tarea. De esta forma, los mi-cros utilizan habitualmente lengua-jes de bajo nivel. Estos lenguajes son pobres en capacidad expresiva, pero muy potentes a la hora de uti-lizar cada componente de nuestro controlador. El problema es que aprender a utilizarlos es complicado. Pero no temamos, vamos a hacer una recorrida por los lenguajes más comunes, desde los más potentes hasta los más sencillos de utilizar, y nos quedaremos, para nuestras pri-meras Comunicación con el robot ALTO Y BAJO NIVEL experiencias, con uno de esta última categoría: MikroBasic. Más adelante, cuando ya nos quede claro el funcionamiento de nuestro mi-cro, podremos aventurarnos a hori-zontes más complejos. PicBasic Pro Uno de los lenguajes más populares para los micros PIC es el PicBasic Pro (PBP), de microEngineering Labs. Como su nombre lo indica, es un compilador Basic que posibilita la programación en un lenguaje mucho más sencillo que el ensamblador de MicroChip. Es similar al Basic del Ba- 95 ❘❘❘ Nuestro robot no es más que una com-putadora, y tenemos que darle un con-junto de instrucciones para que realice una tarea. Los lenguajes de alto nivel nos permiten describir la tarea en un ni-vel de abstracción cercano a nuestro proceso humano de razonamiento, pero son más lentos y menos poderosos por-que no tienen acceso a instrucciones tan detalladas y precisas. Los lenguajes de bajo nivel son complejos de entender y utilizar porque nos obligan a expresar lo que queremos que realice el robot en instrucciones muy cercanas a procesos electrónicos y mecánicos, pero nos brin-dan un poder mucho mayor por el nivel de detalle que podemos lograr.
  • 98. sic Stamp y posee librerías similares a éste. Produce código para una gran va-riedad de PIC de 8 a 68 pines. Para crear un programa a ser compi-lado por PBP, utilizamos nuestro edi-tor de texto plano preferido, y graba-mos el archivo con extensión .BAS. Luego llevamos ese archivo donde está el compilador pbp.exe y allí eje-cutamos Pbp nombreDelArchivo. Si el código es sintácticamente co-rrecto, se creará un código interme-dio de extensión .ASM, que invo-cará al ensamblador para generar, por último, un archivo .HEX. En este archivo está el código del micro, y lo bajaremos luego con el softwa-re programador. Veamos un ejemplo de código en PicBasic Pro: while true high PORTB.0 ‘enciende el puerto pause 500 ‘espera 500 milisegundos low PORTB.0 ‘apaga el puerto pause 500 ‘espera otros 500 milisegundos wend Si en el puerto tuviéramos conectado un led, tendríamos una bonita luz que se enciende y apaga indefinidamente. Los creadores de PBP han desarrolla-do una suite, MicroCode Studio Plus (Figura 2), que une todas las he-rramientas necesarias en una única IDE. El editor posee coloreado de sin-taxis y ayuda sensible al contexto. Su explorador de código permite saltar con rapidez a secciones específicas, como declaración de variables, cons-tantes, símbolos y etiquetas inclui-dos en el código fuente. Posee todas las funcionalidades convencionales de los editores de texto como cortar, co-piar, pegar, búsquedas y reemplazos, entre otros. Además, la IDE nos per-mite realizar In Circuit Debugger (ICD, depuración en circuito), y re-saltar cada línea de código cuando se ejecuta en el micro. Podemos definir puntos de corte y ejecución de códi-go paso a paso, lo que facilita en gran medida la depuración de nuestro pro-grama. MicroCode Studio Plus tam-bién nos brinda un cargador de códi-go (bootloader) para incorporar a nuestro PIC, de manera que no nece- 5. HABLAR CON NUESTRO ROBOT ▲ Como casi todas las cosas de este universo, en la red podemos encontrar demos de los lenguajes e IDEs que estamos comentando. Aquí van los sitios: ● PicBasic Pro: www.melabs.com/index.htm. ● CCS C: www.ccsinfo.com. ● MikroBasic: www.mikroe.com/en/. 96 ENCONTRAR LOS LENGUAJES PARA PROGRAMAR LOS PICS
  • 99. sitemos un programador para nuestro micro. Sólo lo necesitaremos la pri-mera vez, para cargar este bootloader. Compilador CCS C Este compilador de lenguaje C ha si-do diseñado exclusivamente para la línea PIC. Se considera el compila-dor más optimizado para estos mi-cros. Tiene una librería de funciones predefinidas, lo que facilita la pro-gramación en un lenguaje de bajo ni-vel como el C. Sin estas funciones, sería muy engorroso programar el micro. Cuenta con controladores de reloj en tiempo real y conversores analógicos digitales. Por ejemplo, contamos con la instrucción READ_ ADC(), que permite leer un valor del Comunicación con el robot conversor mencionado. Podemos de-finir variables estructuradas cuyos componentes se correspondan uno a uno con registros del micro. Es integrable con simuladores de PIC como el MPLAB y podemos mezclar código assembler en el medio de nuestro programa en C, y hacer refe-rencia a las variables de éste. Para te-ner una idea de la sintaxis, desarrolla-remos el mismo ejemplo que mostra-mos antes con PicBasic. while (TRUE) { output_high(PIN_B0); ‘enciende el puerto delay_us(500); ‘espera 500 milisegundos 97 Figura 2. Vista del MicroCode Studio Plus, IDE para el PicBasic Pro.
  • 100. output_low(PIN_B0); ‘apaga el puerto delay_us(500); ‘espera otros 500 milisegundos } ‘Todo esto se repite eternamente… Cabe aclarar que las funciones que se presentan en este ejemplo desen-cadenan código mucho más optimi-zado que el generado por Basic. La firma CCS también ofrece IDEs para Windows, llamadas PCW y PCWH. La única diferencia es que PCWH soporta la serie PIC 18. Po-seen un editor de código fuente (C Aware Editor, Figura 3), que realiza co-loreo de sintaxis, control de tabula-ciones, provee ayuda sensible al con-texto y pareo de llaves y paréntesis. Brinda un asistente (Figura 4) para nue-vos proyectos donde, en pocos pasos, podemos generar la estructura básica del programa. También permite reali-zar depuración, pero requiere de hardware especial para su uso. En sín-tesis, para programación en bajo ni-vel, es la opción que presenta más he-rramientas para facilitar el desarrollo. MikroBasic Por último, llegamos al lenguaje ele-gido para nuestros ejemplos de pro-yectos. La empresa MikroElectróni-ca ha desarrollado un conjunto de compiladores para micros, tanto para lenguaje C como para Basic. Lo más interesante de ambos es que integran 5. HABLAR CON NUESTRO ROBOT 98 Figura 3. Vista del editor C Aware de CCS.
  • 101. un IDE que facilita mucho la progra-mación, ya que presenta las carac-terísticas que hemos mencionado, co-mo coloreo de sintaxis, ayuda sensible al contexto, estadísticas sobre el uso del micro y muchas otras más. Por otra parte, los desarrolladores nos per-miten bajar un demo gratuito com-pletamente funcional, donde sólo te-nemos un límite de 2Kb en el códi-go fuente, lo que es suficiente para to-dos los proyectos que desarrollaremos en nuestro libro. Soporta una gran cantidad de modelos de PICs y pro-porciona librerías para RS-232, cone-xiones USB, interfaz para displays, etcétera. Dado que es el lenguaje y la IDE que vamos a utilizar, comence-mos a estudiar en detalle cada una de sus herramientas. Comunicación con el robot Instalación de mikroBasic Para instalar el programa en nuestra computadora, debemos dirigirnos a la dirección www.mikroe.com/en/ compilers/mikrobasic/pic/ y en-trar en la sección Download, donde podremos bajar la última versión. Los pasos de instalación son muy sencillos, clásicos en cualquier pro-grama de Windows (Figura 5). En la misma sección del sitio pode-mos encontrar actualizaciones y par-ches, por lo que recomendamos visi-tar periódicamente el sitio. También podemos encontrar un conjunto de manuales, muy claros y didácticos, que nos permitirán completar nuestra breve mirada sobre la herramienta. En nuestro caso, todos los ejemplos que mostraremos y las indicaciones 99 Figura 4. Asistente de proyectos del PCW.
  • 102. de operación del mikroBasic están basados en la versión 5.0.0.2, del 31 de octubre de 2006. Editor de código fuente de mikroBasic Uno de los puntos más fuertes de la IDE es el editor que nos proporciona. Como todo editor de texto, presenta las utilidades clásicas como cortar, co-piar y pegar, y búsquedas y reempla-zos masivos. Pero además, nos ofrece: • Coloreo de sintaxis. • Asistente de código. • Asistente para parámetros de fun-ciones. • Plantillas prearmadas. • Autocorrección de tipos. • Bookmarks. Éstas y otras opciones se pueden confi-gurar desde Tool/Preferences… o al ha-cer clic sobre el icono Tools (Figura 6). Para utilizar el asistente de código, una vez que ingresamos las primeras letras de lo que deseamos escribir, presiona-mos CTRL + ESPACIO y todos los iden-tificadores válidos que comiencen con esas letras se desplegarán en un cuadro de lista. Allí podremos elegir lo que íbamos a escribir o, simplemente, con-tinuar con el texto deseado si no lo en-contramos (Figura 7). Es necesario rea-lizar una primera compilación para que funcione el asistente. También podemos activar un asis-tente para los parámetros de las fun-ciones (Figura 8). Para ello, escribi-mos la llamada a la función y, cuan-do abrimos el paréntesis, automáti- 5. HABLAR CON NUESTRO ROBOT Figura 5. Durante la instalación, es recomendable dejar todo como está en la selección de componentes para mikroBasic, ya que no ocupa demasiado espacio. 100
  • 103. Comunicación con el robot CINTA ADHESIVA, PEGAMENTO, BANDAS ELÁSTICAS, ¡TODO VALE! 101 Figura 6. Editor de preferencias de la IDE de mikroBasic. Figura 7. Ejemplo de la lista presentada por el asistente de código cuando escribimos de y luego CTRL + ESPACIO. ❘❘❘ Muchas veces se puede salir de situaciones problemáticas gracias a estos materiales. Si no nos presentamos en concursos de belleza, cuando el tiempo nos corre y debemos pre-sentarnos en el torneo, ¡todo lo que una fuertemente a nuestras piezas será válido!
  • 104. camente aparecerá un pequeño car-tel con el o los parámetros corres-pondientes, que nos indicará con nombre:tipo qué función cumple el parámetro y de qué tipo es. Para las estructuras más complejas, como las funciones, los procedi-mientos, los encabezados u otras, podemos utilizar las plantillas (Figu-ra 9). Por ejemplo, si escribimos func y presionamos CTRL + J, automáti-camente se escribirá la estructura completa de una función para que completemos con los datos necesa-rios. También tenemos la posibili-dad de crear nuestras propias plan-tillas en la opción Auto Complete de Tools/Preferences…. Por otro lado, cabe mencionar que además de las características que ya presentamos, tenemos herramientas para realizar autocorrección, co-mentar o descomentar un conjunto de líneas de código, insertar marcas y saltar de una a otra e ir a un nú-mero de línea de código. 5. HABLAR CON NUESTRO ROBOT Figura 8. Asistente que informa los parámetros de las funciones. 102 Figura 9. Editor de las plantillas de código.
  • 105. Explorador de código El explorador de código (Code Explo-rer) se encuentra en la zona izquierda de la ventana. Nos proporciona una lista de los ítems declarados en el có-digo. Desde allí podemos saltar a cual-quiera de las declaraciones con sólo hacer doble clic sobre ella. En la par-te superior del explorador podemos encontrar dos solapas más. La solapa QHelp nos proporciona ayuda sobre la librería de funciones. La última sola-pa (Keyboard) nos proporciona una lista de los atajos de teclado del editor. Depurador MikroBasic proporciona un depura-dor a nivel de código fuente (Figura 11). Esto nos permite simular el com-portamiento del micro y nos asiste para la depuración de errores. Dado Comunicación con el robot que es a nivel de código y no tiene lectura real del micro, no permite si-mular ciertas propiedades intrínsecas del procesador, como temporizado-res, interrupciones, etcétera. Una vez que hemos compilado nues-tro programa (Project/Build), ejecuta-mos el depurador en Run/Start Debug-ger. Automáticamente nos marca la primera línea de código y nos aparece la ventana Watch, que nos permitirá re-alizar el control de la depuración. En esta ventana podemos visualizar varia-bles y registros del PIC, actualizados según la ejecución del programa. En la parte superior de la ventana encontra-mos iconos para el control de la ejecu-ción del depurador (arranque, pausa, detención) y mecanismos de ejecución del código paso a paso. Debajo de es-ta barra tenemos un cuadro de lista pa- 103 Figura 10. Aquí podemos ver la parte de la ventana que contiene el explorador, la ayuda y los atajos de teclado.
  • 106. ra poder agregarle variables y registros al cuadro inferior, que nos permitirá seguir el comportamiento de ellos pa-so a paso. En ese cuadro, cuando agre-gamos una variable o un registro, po-demos ver el nombre, el valor y la di-rección de memoria que ocupa. Para poder probar las opciones del de-purador, realicemos nuestro primer programa sencillo, idéntico al que he-mos utilizado en cada ejemplo del compilador. Para comenzar, luego de abrir mikroBasic, cerremos el proyec-to que tengamos abierto y vayamos al menú Project/Close Project. Creemos un proyecto nuevo en Project/New Project…, donde nos aparecerá la ven-tana que podemos ver en la Figura 12. Completemos el nombre, el sendero y la descripción del proyecto y eliga-mos el procesador (utilicemos el PIC 16F88) y la velocidad de reloj (en nuestro caso, 4.0). Las banderas que 5. HABLAR CON NUESTRO ROBOT Figura 11. Ventana del controlador de la depuración. 104 Figura 12. Creación de un proyecto nuevo.
  • 107. aparecen en la parte inferior las de-jaremos como están por defecto. Au-tomáticamente nos aparecerá un fuente con el encabezado del progra-ma. Debajo del encabezado escribi-remos el siguiente código: main: TRISB = 0 ‘Configura los pines de PORTB como salida while true PORTB.3 = 255 ‘Enciende los pines de PORTB delay_ms(500)’ Espera 500 milisegundos PORTB.3 = 0 ‘Apaga PORTB delay_ms(500)’ Nuevamente espera 500 milisegundos wend end. Si luego de realizar la compilación (CTRL + F9) ejecutamos el depurador (F9), podremos ver cómo señala la primera línea posterior a main y abre la ventana Watch Window. Allí po-dremos añadir las variables TRISB y PORTB para realizar el seguimiento de sus valores. Si ejecutamos paso a paso, nos indicará en qué línea nos encontramos y la resaltará con color, y veremos la modificación de los va-lores de las variables. Cuando lle-guemos a delay, en la parte inferior Comunicación con el robot de la ventana podremos ver cómo se simula el paso del tiempo. Si hace-mos doble clic sobre una variable, podremos modificar su valor en el formato numérico que deseemos. Otras ventanas de depuración que podemos encontrar si nos dirigimos a View/Debug windows son: • Stopwatch: esta ventana nos mues-tra la cantidad de ciclos/tiempo utilizados hasta la ejecución del úl-timo comando (Figura 13). El valor Delta nos muestra el número de ci-clos/ tiempo entre la última línea ejecutada y la línea activa. Con el botón Reset To Zero podemos po-ner en 0 el valor de Stopwatch, pe-ro continuaremos acumulando en el cuadro Current Count. • RAM: nos muestra el contenido de la RAM e indica los últimos valores cambiados en color rojo. • History: presenta las últimas N líne-as de nuestro fuente que se han eje-cutado, pero en código assembler. 105 Figura 13. Ventana del Stopwatch.
  • 108. Por último, cuando procedemos a compilar, si tenemos errores en nuestro código, aparecerán en la parte inferior de nuestra pantalla, en la ventana de errores. Allí se nos indicará la línea del error, su mensaje y la unidad donde se pro-dujo. Si hacemos doble clic sobre es-ta línea, iremos directamente a su posición en el código fuente. Probablemente, todas estas carac-terísticas del depurador de mikroBa-sic lo convierten en la IDE más po-derosa del mercado para la progra-mación de PICs. Ahora que ya co-nocemos la herramienta, pasemos a crear nuestros propios programas. Manos a la obra Como ya hemos visto, mikroBasic organiza sus aplicaciones en proyec-tos. Estos proyectos están compues-tos por un archivo .PBP descriptor del proyecto y uno o más archivos de código fuente con extensión .PBAS. Cabe aclarar que sólo podemos compilar un fuente si éste forma parte de un proyecto. Una vez que tenemos creado el pro-yecto, como vimos en el punto an-terior, podemos editarlo si vamos a Project/Edit project, donde nos apa-recerá la misma ventana que usamos para crearlo. Cuando compilamos nuestro proyecto, se nos generan los siguientes archivos: 5. HABLAR CON NUESTRO ROBOT 106 Figura 14. Una mirada sobre todas las herramientas que presenta la IDE de mikroBasic.
  • 109. • hex: archivo estilo Intel. Con él programaremos el micro. • mcl: archivo binario de distribu-ción. Puede agregarse a otros pro-yectos sin entregar el fuente. • asm: archivo en código assembler (Figura 15), pero con un conjunto de comentarios que lo hace muy legible y más fácil de entender. Por ejemplo, para cada instrucción del fuente en Basic aparece la lista de comandos en assembler. También podemos verlo una vez que se ha-ya generado desde el menú View/ View Assembly. Para aprender, es recomendable que miremos el .ASM generado por el ejemplo que utilizamos para el depurador. Comunicación con el robot WINPIC800 Para poder bajar nuestros programas al programador y de allí a nuestro con-trolador, debemos usar el WinPic800, que podemos conseguir en forma gra-tuita en el sitio www.winpic800.com. Está todo en castellano y su forma de uso es muy sencilla. De todas maneras, si se presenta alguna duda, es reco-mendable consultar la ayuda y los fo-ros De nuestra parte, una única recomen-dación que no encontramos en la docu-mentación: en la solapa Config, probar con las diferentes opciones de Osc, y dejar activo sólo WDT. 107 ❘❘❘ que hay en el sitio. Figura 15. Aquí podemos ver el assembler del código que enciende el led. Los comentarios que tiene lo hacen más legible.
  • 110. MikroBasic nos proporciona un conjunto de variables globales y constantes predefinidas. Todos los registros están implícitamente de-clarados como variables globales de tipo byte y son visibles en todo el proyecto. También nos proporciona constantes como PORTB, TMR1, etcé-tera. Todos los identificadores están en mayúscula, tal como se los iden-tifica en las hojas de datos de Mi-crochip. Para ver la lista completa de predefiniciones, podemos abrir el archivo .DEF correspondiente al micro utilizado. Estos archivos se encuentran dentro de la carpeta defs, donde se instaló mikroBasic. Con respecto a las variables, pode-mos acceder a ellas a nivel de bit. Por ejemplo, si declaramos la variable mivar de tipo longint, lo cual define un rango de 32 bits, podemos acce-der a cualquiera de ellos si escribi-mos mivar.n, donde n es un número entre 0 y 31, que indica el bit al cual accedemos. Este acceso es tanto a ni-vel de lectura como de escritura. Elementos del léxico Cuando un código fuente es compi-lado, la primera fase que se produce es la de tokenización. En este mo-mento, una herramienta llamada par-ser recorre el archivo de texto y reco-noce unidades significativas (tokens), como palabras clave, literales, varia-bles, etcétera, y los espacios en blan-co. En realidad, se llama espacios en blanco a todos los espacios, tabula-ciones, fines de línea y comentarios. Todos ellos determinan el comienzo o el fin de un token. Por ejemplo: 5. HABLAR CON NUESTRO ROBOT 108 Figura 16. MikroBasic nos brinda magníficos gráficos estadísticos sobre el código de máquina que genera nuestro fuente.
  • 111. Dim a as byte Dim b as longint Es equivalente a Dim a as byte Dim b as longint Para los comentarios se utiliza el apóstrofe como iniciación y se fina-liza con el fin de línea. No podemos poner comentarios de más de una lí-nea, excepto que comencemos cada línea con un apóstrofe. Los tokens son los elementos más pequeños que tienen significado por sí mismos en Basic. MikroBasic re-conoce los siguientes tokens: • Keywords (palabras clave). • Identificadores. • Constantes. • Operadores. • Separadores. Por ejemplo, si tenemos el siguiente código: mivar=23 Esto se convierte en los siguientes tokens: • mivar: variable. Comunicación con el robot • =: operador de asignación. • 23: literal. • newline: fin de la sentencia. Los literales son aquellas expresiones que no deben ser evaluadas, que ya tienen valor por sí mismas. En el ca-so de los literales que representan nú-meros enteros, pueden estar antecedi-dos por un signo más o un signo me-nos. También podemos escribir litera-les enteros en hexadecimal si antepo-nemos el prefijo $ ó 0x ($3F ó 0x3F) o en binario, si anteponemos % (%100101). Los literales de punto flotante representan el signo decimal con un punto. La estructura es: par-teEntera. parteDecimalExponente, si utilizamos la notación científica tra-dicional. Algunos ejemplos: 0. ‘=0.0 -1.43 ‘=-1.43 12.55e6 ‘=12.55 * 1000000 2e-5 ‘=2 * 10^-5 o lo que es igual, 2 / 100000 .04e33 ‘=0.04 * 10^33 Los literales de caracteres y de cade-na se encierran entre comillas. Las comillas consecutivas, “”, se consi-deran como un carácter nulo. Con respecto a los identificadores (nom-bres de variables, de funciones, constantes, etcétera), pueden tener una longitud arbitraria y contener 109
  • 112. caracteres de la A a la Z, el carácter _ (guión bajo), y los dígitos del 0 al 9. La primera letra debe ser un carácter o el guión bajo. No se dis-tingue mayúsculas, por lo tanto var, Var y vAr son el mismo identificador. Organización de los módulos Un proyecto en mikroBasic consiste en un módulo principal y en un con-junto de módulos adicionales (optati-vos) con librerías de funciones, decla-raciones, etcétera. El módulo princi-pal tiene una estructura como la que presentamos a continuación: program <nombre> include <otros módulos incluidos> ‘********************** ‘Declaraciones ‘********************** ‘Declaración de símbolos symbol… ‘Declaración de constantes const… ‘Declaración de variables dim… ‘Declaraciones de procedimientos sub procedure <nombre procedimiento>(<param1>, …) <declaraciones locales> … end sub ‘Declaraciones de funciones sub function <nombre función>(<param1>, …) <declaraciones locales> … end sub ‘********************** ‘Cuerpo de programa ‘********************** main: ‘aquí va nuestra obra maestra… end. Las otras unidades deberían tener el siguiente aspecto: 5. HABLAR CON NUESTRO ROBOT ❘❘❘ Cada vez que desde una función o un procedimiento llamamos a otra rutina (o a sí mismo en el caso de recursividad), decimos que aumentamos el nivel de anidación en uno. Lamentablemente, las llamadas recursivas no son soportadas por mikro- Basic. De todas maneras, también tenemos un límite en los niveles de anidación, que en el caso de la familia PIC16, es de 8 niveles. 110 LIMITACIONES DE ANIDACIÓN
  • 113. module <nombre> include <otros módulos incluidos> ‘********************** ‘Interface (globales): ‘********************** ‘Declaración de símbolos symbol… ‘Declaración de constantes const… ‘Declaración de variables dim… ‘prototipos de procedimientos sub procedure <nombre procedimiento>(<param1>, …) ‘prototipos de funciones sub function <nombre función>(<param1>, …) ‘********************** ‘Implementación ‘********************** implements ‘Declaración de constantes const… ‘Declaración de variables dim… Comunicación con el robot ‘Declaraciones de procedimientos sub procedure <nombre procedimiento>(<param1>, …) <declaraciones locales> … end sub ‘Declaraciones de funciones sub function <nombre función>(<param1>, …) <declaraciones locales> … end sub end. Alcance y visibilidad Llamamos alcance de un identifica-dor a la parte del programa donde el identificador se puede utilizar para acceder al objeto al que apunta. Hay diversos alcances según el lugar donde hacemos la declaración del identificador, veamos: • Si el identificador se declara en la sección de declaraciones del módu-lo principal, fuera de toda función o todo procedimiento, el alcance se extiende desde la declaración hasta el final del archivo, y se incluyen to-das las rutinas que allí se encuen-tran. Diremos que estos identifica-dores tienen un alcance global. • Si en cambio se declara en una función o un procedimiento, su al- 111
  • 114. cance se extiende hasta el final de la rutina. En este caso, los identi-ficadores son locales. • Si se declara en la sección interfaz de un módulo, su alcance se ex-tiende desde donde se declara has-ta el final, y a todo módulo que use el módulo donde se encuentra la declaración. La única excepción son los símbolos, que tienen un al-cance limitado al archivo donde fueron declarados. • Si se declara en la sección imple-mentación de un módulo, pero no dentro de una función o un pro-cedimiento, el alcance va desde la declaración hasta el final del ar-chivo, y está disponible en todas las funciones y en todos los proce-dimientos del módulo. Llamamos visibilidad de un identi-ficador a las regiones del fuente don-de podemos acceder a los objetos apuntados por él. En general, alcan-ce y visibilidad coinciden, pero no necesariamente. Podríamos tener un identificador que se vuelva invisible en una función o en un procedi-miento porque un identificador lo-cal tiene su mismo nombre. Sin em-bargo, el objeto identificado sigue presente, aunque no es accesible. En síntesis, la visibilidad nunca exce-de al alcance, pero sí puede ocurrir que el alcance exceda a la visibilidad. No profundizaremos más sobre el desarrollo de programas modulares, dado que realizaremos programas pequeños. Cuando veamos cuestio-nes sobre fútbol de robots, progra-maremos algunos módulos de detec-ción del piso y de la pelota. Variables, constantes y tipos Las variables, como ya sabemos, son simplemente un identificador o un apuntador a una zona de memoria de contenido plausible de ser modificado. Todas las variables se deben declarar antes de usar. Para ello escribimos: dim lista_de_nombres_de_ variables as tipo La lista_ de_nombres_de_variables es una lista delimitada por comas de identificadores válidos, que serán 5. HABLAR CON NUESTRO ROBOT ❘❘❘ En las aplicaciones sobre PIC16 (que es nuestro caso), una rutina no puede exceder una página (aproximadamente, 2000 instrucciones). Si la rutina no entra en una pági-na, 112 LÍMITES DE TAMAÑO EN LAS RUTINAS se producirá un error de compilación. Si nos encontramos con este problema, bas-ta con rediseñar nuestro código para obtener rutinas más pequeñas.
  • 115. todas del mismo tipo de datos. Por ejemplo: dim dias, edad, curso as byte dim contador as word Las constantes son datos que no varían en la ejecución del programa, es decir, no consumen memoria RAM. Se declaran de la siguiente manera: const NOMBRE_DE_CONSTANTE [as tipo] = valor El nombre de la constante debe ser un identificador válido. Por conven-ción, se ponen todas las letras de su nombre en mayúscula, para identi-ficarlas rápidamente en el código. Aunque la declaración de tipo es op-cional, cabe aclarar que si no lo ha-cemos, elegirá el tipo más chico que Comunicación con el robot permita el valor asignado. Aquí te-nemos algunos ejemplos: const MAX as longint = 16348 const MIN = 100 ‘el compilador asume el tipo word const LETRA=’a’ ‘el compilador asume char cont ERROR=”Error grave” ‘el compilador asume string const meses as byte[12]=(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) Basic es un lenguaje con tipos es-trictos. Esto significa que en el mo-mento de la compilación se debe po-der definir un tipo específico para cada identificador. En estos lenguajes, los tipos sirven para determinar la cantidad de me-moria necesaria, interpretar los bits que encuentran en el objeto cuando acceden y para asegurar asignaciones y pasajes de parámetros correctos. 113 TIPO TAMAÑO RANGO byte 8 bits 0 .. 255 char 8 bits 0 .. 255 word 16 bits 0 .. 65535 short 8 bits -128 .. 127 integer 16 bits -32768 .. 32767 longint 32 bits -2147483648 .. 2147483647 float 32 bits ±1.17549435082*1038 .. ±6.80564774407*1038 Tabla 1. Tipos simples de variables.
  • 116. Los tipos simples son los que pode-mos observar en la Tabla 1. En mikroBasic también contamos con arreglos. Un arreglo (Figura 17) es una colección de elementos del mis-mo tipo, identificados en su conjun-to con un nombre e individualmente con un índice. Por ejemplo: dim semana as byte[7] Esto declara un arreglo de nombre semana que contiene siete elementos de tipo byte. Cada elemento estará identificado como semana[i], donde i es un número entre 0 y 6. De esta manera, accedemos a cada elemen-to, tanto para su lectura como para su escritura. Por ejemplo: semana[2] = 12 Esto le asigna al tercer elemento de la colección (recordemos que el primer elemento es el 0) el valor 12. También podemos crear arreglos multidimensionales. Para poder re-crear una imagen sencilla, podemos pensar un arreglo de dos dimensiones como una planilla, donde un índice indica la fila y el otro la columna. Por ejemplo, para declarar un arreglo de dos dimensiones escribimos: dim sueldos as integer[23][12] De esta manera, tenemos una varia-ble sueldos que tiene 23 filas y 12 co- 5. HABLAR CON NUESTRO ROBOT 114 Índice: 5 6 2 3 4 1 4 8 0 1 2 3 4 5 6 7 Figura 17. Un arreglo es una colección de elementos del mismo tipo identificados por un índice. ❘❘❘ CICLOS INFINITOS A pesar de que en la programación tradicional un ciclo infinito trasluce algún error, en el caso de los robots es habitual su uso. Como el robot hará lo mismo hasta que se apague o se quede sin baterías, en general la tarea principal, y otras tareas que se estén ejecutando en forma paralela, están dentro de una estructura while true… wend. De esta manera, se ejecutará infinitamente hasta que el robot se detenga.
  • 117. lumnas, desde sueldos[0][0] hasta sueldos[22][11]. Es decir, 276 ele-mentos. Las cadenas son arreglos de caracteres, y se las declara de esa manera. Por ejemplo: dim nombre as string[14] Esto declara una variable nombre que apuntará a una cadena de 14 caracte-res. De todas formas, podemos acce-der a la cadena como un solo ele-mento, como podemos ver aquí: nombre=”Iris” En este ejemplo, le asignamos una cadena de 4 caracteres a la variable nombre. El límite de cadena a asig-nar es de 14 caracteres. Estructuras Para representar objetos cuya infor-mación es un conjunto de datos de diversos tipos, utilizamos estructu-ras. Por ejemplo, si queremos repre-sentar un punto, necesitamos la co-ordenada x y la coordenada y com-prendida por un nombre único. La declaración de la estructura es la que podemos ver a continuación: structure nombre_estructura dim miembro1 as tipo … Comunicación con el robot EFICIENCIA DE TIPOS dim miembron as tipo end structure Donde nombre_estructura y miem-bro1 son nombres válidos para los identificadores. Por ejemplo: structure punto dim x as integer dim y as integer end structure Una vez creada la estructura, se la uti-liza como si fuera un tipo en la decla-ración de identificadores. Por ejemplo: dim posicion as punto dim esquina as punto 115 ❘❘❘ La unidad aritmético lógica de los PICs se ha optimizado para trabajar a nivel de by-tes. Aunque con mikroBasic podemos tra-bajar tipos de datos muy complejos, esto aumenta dramáticamente el tiempo de procesamiento. Siempre conviene usar el tipo de datos más pequeño para cada si-tuación. Cada modelo de procesador tie-ne diferentes comportamientos en su uni-dad aritmético lógica, pero siempre es bueno usar tipos ajustados a lo necesario.
  • 118. Para acceder a cada elemento de la es-tructura, simplemente escribimos identificador.campo_de_estructura. Por ejemplo: posicion.x=12 esquina.y=posicion.y Operadores En mikroBasic podemos encontrar los siguientes operadores: • Aritméticos: estos operadores per-miten realizar cómputos matemá-ticos. Sus operandos son numéri-cos y también retornan un resulta-do numérico. Ellos son los que po-demos ver en la Tabla 2. Cabe men-cionar que el operador – también puede usarse delante de un núme-ro para cambiar su signo. • Relacionales: los operadores rela-cionales comparan dos expresiones y devuelven verdadero o falso según la comparación realizada. Ellos son los que se muestran en la Tabla 3. • De bits: operan sobre bits individua-les de los operandos. Ambos operandos deben ser de tipos con signo o sin signo simultánea-mente. Los operadores de bits son los de la Tabla 4. Los operadores and, or y not tam-bién se pueden utilizar con expre-siones lógicas, es decir, cuyo valor 5. HABLAR CON NUESTRO ROBOT OPERADOR OPERACIÓN EJEMPLO + Suma 5 + 3 retorna 8 - Resta 2 - 3 retorna -1 * Multiplicación 5 * 4 retorna 20 / División 14/4 retorna 3.5 div División entera 14 div 4 retorna 3 mod Resto de la división entera 14 mod 4 retorna 2 116 Tabla 2. Operadores aritméticos. OPERADOR OPERACIÓN EJEMPLO = Igual 5 = 5 retorna Verdadero (true) <> Distinto 5 – 4 < > 6 - 2 retorna Falso (false) > Mayor que 3.5 + 7.2 > 5.2 + 9.3 retorna Falso < Menor que 9 > 3 retorna Verdadero >= Mayor o igual 3 + 2 > = 1 + 4 retorna Verdadero <= Menor o igual 13.6 < = 12.8 retorna Falso Tabla 3. Operadores relacionales.
  • 119. Comunicación con el robot ❘❘❘ DIVISIÓN POR CERO Si se utiliza de manera explícita el lite-ral 0 como segundo operando, el com-pilador reportará un error y no gene-rará código. Pero en el caso de que es-te problema se produzca en forma implícita (por ejemplo, cuando tene-mos una variable que toma fortuita-mente el valor 0 y está como dividendo) el resultado será el máximo valor posi-ble 117 evaluado es verdadero o falso. Lo que retornan tiene la misma lógica que en los operadores a nivel de bits. Es decir, podemos pensar en verda-dero como 1 y en falso como 0, y a partir de allí, analizar el resultado de la operación como si fuera una ope-ración a nivel de bits. Sentencias Como en todo lenguaje de progra-mación procedural, tenemos un pe-queño conjunto de sentencias que el compilador convierte en las instruc-ciones de código máquina corres-pondientes. En general, este con-junto es mínimo, y se enriquece con la librería de funciones y procedi-mientos que ofrece el ambiente. A para el tipo apropiado. partir de esa librería comenzaremos a construir la propia para aumentar el poder de nuestro lenguaje en el ámbito específico de nuestro traba-jo. Veamos las sentencias que nos proporciona este Basic. OPERADOR OPERACIÓN EJEMPLO and Retorna 1 si ambos bits en la misma 12 (%1100) and posición están en 1. 10 (%1010) retorna 8 (%1000) or Retorna 1 si por lo menos uno de los 2 bits 12 (%1100) or en la misma posición está en 1. 10 (%1010) retorna 14 (%1110) xor Retorna 1 si uno de los 2 bits en la misma 12 (%1100) xor posición está en 1 y el otro no. 10 (%1010) retorna 6 (%0110) not Invierte cada bit del número. not 6 (%0110) retorna 9 (%1001) << Mueve los bits una posición hacia la izquierda. 7 (%0111) << 2 retorna 28 (%11100) Los bits ubicados más a la izquierda se descartan y a la derecha se rellena con ceros. >> Igual a << pero a la derecha. 35 (%100011) >> 3 retorna 4 (%100) Tabla 4. En esta tabla podemos observar los operadores de bits con los que podemos trabajar.
  • 120. 5. HABLAR CON NUESTRO ROBOT Sentencia asm La primera sentencia que presenta-remos es asm, que permite incorpo-rar código assembler en nuestro có-digo Basic. Su sintaxis es: asm conjunto de instrucciones en assembler end asm Dentro de esta sentencia, debemos comenzar los comentarios con pun-to y coma. Luego, al compilar, este código quedará directamente tradu-cido a los valores correspondientes de código máquina. Asignación Aunque ya la hemos usado, no pode-mos dejar de presentar la asignación que tiene la siguiente forma: variable=expresión La expresión se evalúa y asigna su re-sultado a la variable. No debemos con-fundir este operador con el operador 118 relacional homónimo. Simplemente, el contexto de uso de cada uno determi-na la semántica que utilizará el compi-lador para tomarlo como una asigna-ción o un operador. Sentencias condicionales Como en otros lenguajes procedura-les, contamos con sentencias condi-cionales que nos permiten seguir uno u otro curso de acción según deter-minada condición. La más conocida es la sentencia if, cuya sintaxis es: if expresión then sentencias … [ else otras sentencias ] end if La expresión del if debe ser una ex-presión booleana, es decir, que de-vuelva verdadero o falso. En el caso de retornar el valor verdadero, se eje-cutan las sentencias que están den-tro del primer grupo. Si el segundo grupo de sentencias está definido (los corchetes no deben escribirse, ✱ VARIABLES DENTRO DEL CÓDIGO EN ASSEMBLER Dentro del código en assembler, podemos usar variables que estén declaradas en la parte Basic de nuestro fuente. Una recomendación es estar seguros de que la va-riable está inicializada en el momento que se use de esta manera. Si no, se puede producir un error y el programa se puede colgar.
  • 121. sólo nos muestra que esa sección es optativa), entonces se ejecuta este segundo grupo. Si no está, se con-tinúa con las sentencias posteriores al end if. Por ejemplo: if PORTA.3=1 then PORTB.2=1 else PORTB.3=1 endif … Supongamos que el bit 3 del puerto A está definido como entrada y los bits 2 y 3 del puerto B como salidas. Lo que hacemos aquí es encender el bit 2 de B si la entrada registrada en el 3 de A se enciende, y encender el bit 3 de B en el otro caso. Otra sentencia que define el flujo del programa según una condición es la sentencia select case. Su sintaxis es: select case selector case valor_1 sentencias_1 Comunicación con el robot case valor_2 sentencias_2 … case valor_n sentencias_n [case else sentencias_por_ defecto ] end select El selector es la expresión que se evalúa para luego determinar si coin-cide con alguno de los valores de las sentencias case. Esos valores pueden ser literales, constantes o expresio-nes. El case else es optativo, y sus sentencias se ejecutan si no ingresó en ninguno de los case anteriores. En los valores podemos agrupar un con-junto de ellos separados por una co-ma, para que se ejecuten sus senten-cias cuando el selector coincida con cualquiera de ellos. Por ejemplo: select case resu 119 ▲ HOJA DE DATOS DE LOS PICS Para tener información completa y detallada de cada PIC, podemos recurrir a sus hojas de datos (datasheet). Microchip las ofrece en su sitio www.microchip.com. Estas hojas tienen una descripción profunda del micro, su diagrama de pines en todos los modelos, diagramas internos, organización de la memoria, funcionamiento de los timers, etcétera.
  • 122. case 0 oper=0 case 1, 4, 7, 9 oper=1 case 2,5,8 oper=2 case else oper=3 end select En el caso de que resu valga 0, oper tomará el valor 0. Si vale 1, 4, 7 ó 9, oper tomará el valor 1. En el caso de que sea 2, 5 u 8, el valor de oper será 2. Y en otro caso, oper saldrá de esta estructura con valor 3. Sentencias de iteración Las sentencias de iteración nos per-miten repetir un conjunto de sen-tencias una determinada cantidad de veces o según se produzca una condición o no. En el primer caso, la sentencia for nos permite definir un número de repeticiones a ejecu-tarse, de la siguiente manera: for contador = valor_inicial to valor_final [step valor_salto] sentencias next contador El contador es una variable que au-mentará en cada repetición según lo que esté definido en valor_salto. Si el step no se define, el salto es de uno en uno. El contador comienza con el valor indicado en valor_inicial, y si en algún momento supera el valor_final, el ciclo deja de repetirse. Es decir, cada vez que se llega a next contador, el contador aumenta lo in-dicado por valor_salto y se evalúa si ha superado el valor_final. De ser así, no vuelven a ejecutarse las sentencias del ciclo. Por ejemplo, en el siguien-te caso, el arreglo a toma el valor 255 en cada posición del 0 al 7. for i= 0 to 7 a[i]=255 next i Otra sentencia que podemos usar para una repetición es la estructura while, que se define de esta manera: while expresión sentencias wend Cada vez que se está por ejecutar el conjunto de sentencias, se evalúa la expresión. Si su resultado es verda-dero, se ejecutan. Si es falso, se con-tinúa la ejecución con las sentencias posteriores al wend. Con este comportamiento, pode-mos tener casos en los que las sen- 5. HABLAR CON NUESTRO ROBOT 120
  • 123. tencias no se ejecutan nunca, porque la expresión retorna falso en la pri-mera evaluación. Por ejemplo: i=0 while i<=7 a[i]=255 i=i+1 wend En este ejemplo, logramos exacta-mente que lo que hicimos en el an-terior. En general, cuando la condi-ción de corte está basada en alguna variable que aumenta en forma line-al (de 1 en 1, de N en N) se utiliza la sentencia for. En otro caso, cuan-do la condición es más compleja y el comportamiento de las variables que entran en juego en la condición es más complejo y menos lineal que un aumento de N en N, es necesaria una estructura while. Si necesitamos que el conjunto de sentencias que se van a repetir se eje-cute por lo menos una vez, debemos Comunicación con el robot evaluar la expresión luego de la eje-cución de las sentencias. Para ello tenemos la sentencia do, con la siguiente sintaxis: do sentencias loop until expresión En este caso, no sólo el momento de evaluación varía con respecto al while. También la lógica se invierte. Si al lle-gar a loop until la expresión es falsa, se vuelve a ejecutar el ciclo. De lo con-trario, se continúa con las sentencias posteriores a loop until. Tomemos el mismo ejemplo anterior y traduzcá-moslo a esta nueva estructura, como vemos a continuación: i=0 do a[i]=255 i=i+1 loop until i>7 ✱ DAR VUELTAS POR LA ETERNIDAD Es fundamental analizar si las expresiones que escribimos para ser evaluadas en las estructuras de repetición tienen alguna o algunas variables que puedan modifi-car su contenido en algún momento de la ejecución del programa. Si la expresión puede tener el mismo resultado eternamente, tenemos algún error conceptual en ella o en el ciclo de repetición. También puede ocurrir que utilicemos métodos des-prolijos 121 como el break, pero no es recomendable.
  • 124. ❘❘❘ INTELIGENCIA ARTIFICIAL Si nos interesa conocer más sobre el tema, debemos saber que existen mi-les Como podemos ver, el conjunto de sentencias se ejecuta sí o sí una vez en este caso. Un uso muy habitual de esta sentencia es la espera de un estado de un sensor. Por ejemplo, si conectamos un sen-sor de tacto en el bit 3 del puerto B, podemos esperar que se active mien-tras mantenemos el estado del robot, de la siguiente manera: do loop until PORTB.3=1 … El robot quedará con sus actuadores en el estado en el que se encontraba antes de llegar al loop, y cuando se produzca la activación del sensor, continuará con las sentencias que le siguen. Sentencias de salto de ejecución de programa Estas sentencias permiten redirigir el flujo de ejecución de un progra-ma. Ninguna de ellas es altamente aconsejable. Para ser rigurosos aun-que tengamos que trabajar un poco más, tendríamos que reemplazarlas por las sentencias ya vistas, dado que es difícil realizar el seguimiento pa-ra la depuración de estos programas. Un salto a otro lado en algún mo-mento marea a cualquiera. Como adelantamos, la sentencia break permite salir de cualquier es-tructura. Por ejemplo: while true if PORTA.1=1 then break end if … wend En este caso, el conjunto de senten-cias posterior al if se ejecutaría infi-nitamente. Pero, si en algún mo-mento el segundo bit del puerto A se enciende, el break obliga a la sali- 5. HABLAR CON NUESTRO ROBOT 122 de libros de divulgación vinculados a la inteligencia artificial y que lo hacen desde diversos puntos de vista. Tal vez el más completo de ellos es La mente nueva del emperador, de Roger Penrose. En esta obra, su autor se ocu-pa de criticar la postura de la inteli-gencia artificial fuerte que plantea que nuestro cerebro es absolutamente imi-table por una combinación artificial de hardware y software. La belleza del libro está dada en que en sus páginas, el autor hace un recorrido por diferentes ciencias, como la física, la lógica, la matemática, la biología y otras, para presentar y sostener su postura.
  • 125. da del ciclo y continúa con las sen-tencias posteriores al wend. Otra sentencia de salto es el goto, que nos permite saltar incondicio-nalmente a la etiqueta referida. Su sintaxis es la siguiente: goto nombre_etiqueta De esta manera, salta a la sentencia siguiente donde está ubicada la eti-queta. La sintaxis de la etiqueta es la que vemos a continuación, y cabe aclarar que debemos incluir los dos puntos en la sintaxis. nombre_etiqueta: Comunicación con el robot Otra sentencia de salto es exit, que nos permite salir de una función o de un procedimiento y volver al punto en el que se había invocado a la rutina. También contamos con gosub y continue, pero como enten-demos que violan demasiado el flu-jo del programa y porque son fácil-mente reemplazables por alguna de las opciones que ya presentamos, no vamos a ver detalles sobre ellas. Lo único que nos interesa resaltar en es-te punto, es que todas estas senten-cias de salto hacen más compleja la depuración y la lectura del código, por lo que aconsejamos evitarlas siempre que sea posible. 123 … RESUMEN En este capítulo hemos realizado un primer acercamiento a los diferentes len-guajes que podemos utilizar para la programación de los micros de Microchip. De todos ellos, nos hemos quedado con el que consideramos más sencillo, y que pro-bablemente resulte familiar a todos los que alguna vez programaron en algún lenguaje. MikroBasic, además de brindarnos un lenguaje Basic muy accesible, po-see una IDE muy completa y amable para este duro proceso de programación. He-mos presentado los elementos esenciales del lenguaje y nos hemos introducido en la estructura de los programas y sus sentencias. Los ejemplos que hemos mostrado son pequeños, dado que en el próximo capítulo, al conectar los moto-res, podremos comenzar a darle vida a nuestro robot.
  • 126. ✔ ACTIVIDADES TEST DE AUTOEVALUACIÓN 1 ¿A qué llamamos lenguajes de bajo y al-to 124 nivel? ¿Qué ventajas y limitaciones presenta cada uno? 2 ¿Qué características presenta el Pic- Basic Pro? 3 ¿Cuál es la IDE de PicBasic Pro? ¿Qué características presenta? 4 ¿Qué es el ICD? 5 ¿Para qué es útil programar en CCS C? 6 Recuerde tres razones por las cuales elegimos mikroBasic para programar nuestro robot. 7 ¿Qué características presenta el edi-tor de mikroBasic? 8 ¿Cómo es la organización de archivos de un proyecto en mikroBasic? 9 ¿Qué son los tokens y los espacios en blanco? 10 ¿Qué módulos encontramos en un pro-yecto mikroBasic? 11Defina el alcance y la visibilidad de las variables. 12 ¿Cuáles son los tipos de operadores que podemos encontrar en mikroBasic? 13Compare las sentencias for, while y do. Para cada una de ellas, construya una estructura con el mismo compor-tamiento mediante la utilización de cada una de las otras dos. Por ejem-plo, construya una estructura for con while y otra con do.
  • 127. Robótica Recorrer el mundo Capítulo 6 Una de las características fundamentales de los robots autónomos móviles es la habilidad de transportarse por el ambiente en el que desempeñan sus tareas. La navegación de un robot de ruedas laterales no es sencilla si queremos optimizar el tiempo que nos lleva llegar hasta un punto determinado. Nuestro objetivo en este capítulo es aprender qué tipo de motores podemos utilizar en nuestro robot y cómo programarlos. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com El movimiento del robot 126 Tipos de motores 126 Motores de corriente continua 127 Motores paso a paso (Motores PaP) 135 Servos 140 Resumen 145 Actividades 146
  • 128. EL MOVIMIENTO DEL ROBOT Nuestro robot crece. Después de va-rios intentos le hemos podido brin-dar una inteligencia precaria. Puede encender o apagar un led, lo que nos emociona cada vez que ocurre. Pero nada nos conforma. Queremos que empiece a andar, a hacer su propio camino. Y es por eso que analizamos con cuidado cuáles serán sus futuros pasos. Lógicamen-te, en los diferentes tipos de am-bientes donde puede moverse nues-tro robot necesita de diversos meca-nismos de locomoción. ¿Volará hacia otros planetas? ¿Se sumergirá en bus-ca de tesoros? ¿Reptará en pantanos movedizos? ¿O sólo se trasladará so-bre un piso pulido, sin rebordes ni pelos que traben sus motores? Como ya habrá tiempo de hazañas y proezas, por ahora nos basta con re-correr con dos ruedas sencillas una superficie que no presente proble-mas. Cuando veamos que ya domi-na el mundo de dos dimensiones del piso, estaremos en condiciones de proyectar otros horizontes. Tipos de motores Como hemos comentado en capítu-los anteriores, la arquitectura de nuestro robot con respecto a sus me-canismos de locomoción será extre-madamente sencilla. Usaremos rue-das laterales, que nos permiten tener control mediante un sistema de pro-gramación al alcance de todos, y que desde el punto de vista mecánico son fáciles de implementar. En el Capítulo 8, donde construiremos el cuerpo de nuestra criatura, analiza-remos todas las posibilidades de lo-comoción que tenemos con nuestro robot, pero por ahora pondremos nuestro esfuerzo en controlar los motores, que no es poco. Aunque ya hicimos una introducción muy breve de cada uno de los tipos de 6. RECORRER EL MUNDO Figura 1. Determinación de los polos por el pasaje de corriente en la bobina. Figura 2. Si invertimos la polaridad de la bobina, cambiamos los polos del núcleo. 126
  • 129. motores clásicos que podremos utili-zar, ▲ ahora presentaremos en forma profunda cada uno de ellos, y desa-rrollaremos la electrónica necesaria para conectarlos con nuestro contro-lador. Además, veremos un conjunto de ejemplos de programación para poder manejarlos en forma efectiva. Es posible que al principio resulte un poco complejo, pero creemos que los ejemplos aclararán el panorama. Motores de corriente continua Los motores de corriente continua (CC) son los actuadores que podre-mos conseguir con mayor facilidad, y que seguramente estarán presentes en muchos de nuestros robots. En gene-ral, están formados por dos imanes pegados a la carcasa del motor y un conjunto de bobinas de cobre en el eje del motor. El funcionamiento se basa en la atracción o la repulsión en-tre el campo magnético que se gene-ra en las bobinas por el paso de la elec-tricidad El movimiento del robot y los imanes que se encuen-tran alrededor de ellas. Veamos cómo se produce esta interacción. Cuando la corriente eléctrica pasa por la bobi-na, genera en el núcleo un campo magnético con una orientación de-terminada, es decir, un polo Norte y uno Sur (Figura 1). Si cambiamos la polaridad de la bobina, se invierte la dirección de los polos (Figura 2). Los dos imanes que se encuentran en la carcasa tienen polos distintos. Si aprovechamos el efecto magnético de que los polos iguales se rechazan y los opuestos se atraen, cambiamos la polaridad de la bobina, y genera-mos rechazo o atracción entre ellas y los imanes de la carcasa (Figura 3). De esta manera, y si consideramos que tenemos más de una bobina, genera-mos el movimiento del motor con su respectivo torque. Este último con-cepto se refiere a la potencia o la fuerza que tiene el giro del motor, y RECICLADO El reciclado es una tendencia que, además de proteger el medio ambiente, nos permi-te ahorrar dinero. Además de todas las recomendaciones que hacemos aquí para recu-perar partes de equipos o juguetes que ya no utilicemos, Internet es una fuente adicio-nal de ideas. Estos son algunos sitios interesantes donde se explica cómo reciclar com-ponentes de aparatos en desuso. Muchos de ellos serán útiles para nuestros robots: 127 •Reciclaje y proyectos electrónicos: http://heli.xbot.es/wp/. •Proyecto EconoBot (un robot de costo cero): http://mundobot.com/blog/. •Disquetera convertida en robot: www.sorgonet.com/trashing/madmaxfloppy/.
  • 130. S S II II que depende de la cantidad de energía que pasa por las bobinas, la cantidad de vueltas del bobinado, el grosor del alambre, etcétera. Los motores de CC tienen dos pun-tos de conexión para la fuente de ali-mentación, y según cómo lo conec-temos, el motor girará en un sentido o en otro. El problema es que noso-tros queremos lograr esto en el mo-mento en que el robot está en fun-cionamiento. ¡Sería desprolijo correr detrás del robot para invertir la di-rección de sus motores mediante algún dispositivo físico! Por lo tanto, necesitamos algún artilugio electró-nico que nos permita determinarlo al enviar una señal con nuestro micro. En este momento podríamos pensar en conectar directamente el motor al 16F88. ¡Error! Los motores absorben demasiada corriente. Si los conecta-mos directamente al micro, se que-marán (que es algo que con seguridad no queremos hacer). Es por eso que entre el micro y los motores incorpo-ramos una etapa intermedia, conoci-da como etapa de potencia. Cuando utilizamos una fuente de alimenta- 6. RECORRER EL MUNDO 128 Torque Figura 3. Efecto de giro del motor gracias a la atracción/el rechazo del núcleo de la bobina y los imanes de la carcasa. ▲ PARA VER EL FUNCIONAMIENTO INTERNO DE UN MOTOR CC En la Web podemos encontrar varios sitios con información más detallada sobre el fun-cionamiento de los motores CC. Uno de los más completos es www.walter-fendt. de/ph11s/electricmotor_s.htm, donde vemos en una simulación en Java los pasos que realiza el motor en su giro. Allí podremos cambiar algunas variables que nos permi-tirán comprender en forma más precisa las características de estos motores.
  • 131. ción simple, como es nuestro caso, se utiliza un puente H (H Bridge), cu-yo esquema electrónico básico es el que podemos ver en la Figura 4. Cuando C1 no tiene corriente (está en 0) y C2 sí la tiene (está en 1), el motor gira en el sentido de las agu-jas del reloj. En el caso contrario, el motor invierte el sentido de su giro. Cabe aclarar que el esquema es más complejo que el que vimos. Por ejemplo, necesitamos un mecanismo que impida que las dos señales se ac-tiven, porque estarían en riesgo los transistores y la fuente. Para estos y otros problemas, la solución más sencilla es utilizar un integrado que una todos estos componentes en un solo chip, y así se soluciona todo en El movimiento del robot 129 + Vcc GND PNP C 1 C 2 NPN PNP NPN Figura 4. Esquema básico de un puente H. ❘❘❘ EL L293D Y EL L293B En general, cuando vamos a comprar el integrado L293D nos informan que tie-nen el L293B. ¿Qué diferencia existe entre ellos? ¿Es lo mismo llevar el que nos ofrecen? El L293D provee 600 mA por canal, mientras que el otro nos ofrece 1 A. Por otra parte, el D tiene los diodos de protección en forma interna, que en el caso del B, debemos agre-garlos nosotros para evitar que el inte-grado se queme ante cualquier even-tualidad que tenga el motor. Una combinación de ambos es el TI SN754410, que combina lo mejor de los dos. Este integrado es un reemplazo plug and play del L293D, así que pode-mos comprarlo sin problema.
  • 132. un solo componente. El integrado propuesto para esta función es el L293D, que cuenta con cuatro dri-vers de potencia y diodos de protec-ción para los motores (Figura 5). De la misma manera, podríamos utilizar otros integrados como el UCN5804, el BA6286, el L293B, etcétera. Con el L293D podremos controlar cuatro motores con un solo sentido de giro, es decir, que gire o esté de-tenido, o dos motores con inversión de giro. Este último caso es el que más nos interesa a nosotros para construir un vehículo móvil. Si co-nectamos el motor en los pines 3 y 6, según el estado de los pines 1, 2 y 7, lograremos el sentido del giro del motor, su freno o un estado de punto muerto, como podemos ob-servar en la Tabla 1. En este punto, ya sabemos cómo controlar el sentido de los motores, y si están frenados o libres, pero to-davía no hemos resuelto el tema de la velocidad. Es importante recordar que estos motores tienen poca fuer-za y mucha velocidad, con lo cual es necesario agregarles un sistema de reducción para aumentar la fuerza y reducir la velocidad. Más adelante veremos una solución interna al mo-tor y, en el Capítulo 8, opciones para soluciones externas. De todas for- 6. RECORRER EL MUNDO 130 Vc M l 2 7 6 3 2 16 Vss Chip Inhibit 4, 5, 12, 13 8 l 1 1 Figura 5. Diseño de conexiones para controlar un motor con inversión de giro mediante el uso del L293D.
  • 133. mas, necesitamos un mecanismo electrónico de control para poder modificar la velocidad del motor. Uno de ellos es la modulación por ancho de pulso (Pulse With Modu-lation, PWM), que ya mencionamos para el control de los servos. También en los motores de CC uti-lizamos PWM, pero en un sentido distinto al que se usa con los servos. Dado que necesitamos generar los pulsos, es necesario entender cómo funciona esta modulación. En la Fi-gura 6 podemos ver un ejemplo grá-fico de esto. En PWM, la frecuencia de los pulsos se mantiene constante. Lo que se modifica es el tiempo en el que la señal está alta dentro de esos pulsos. Cuanto más largo sea el tiempo en el que la señal esté alta, El movimiento del robot mayor será la velocidad del motor. Para dar un ejemplo más sencillo, imaginemos que tenemos el motor conectado a un interruptor que con-trolamos con la mano. Con una fre-cuencia de dos segundos, encende-mos (señal alta) y apagamos (señal baja) el motor dentro de ese tiempo. Por ejemplo, podríamos tenerlo un segundo prendido y un segundo apagado. O un segundo y medio prendido y medio segundo apagado. En el primer caso, se lograría mayor velocidad que en el segundo ejem-plo. La velocidad mayor se da cuan-do lo tenemos prendido práctica-mente los dos segundos completos. Con este control, la cantidad de co-rriente es constante, la tensión no varía y, por lo tanto, el torque es el 131 PIN 1 PIN 2 PIN 7 ESTADO DEL MOTOR H H L Gira como las agujas del reloj. H L H Gira en sentido contrario a las agujas del reloj. H Pin 2=Pin 7 Motor frenado. L X X Motor en punto muerto. Tabla 1. Cómo lograr cada estado del motor con los pines del L293D. H: high (alto); L: low (bajo). Velocidad Mínima Velocidad Máxima Figura 6. Ejemplo gráfico de la modulación por ancho de pulsos.
  • 134. mismo. Como veremos más adelan-te, lograremos el control del motor con PWM mediante la programación de nuestro micro. Gracias al L293D, no necesitaremos más electrónica que la presente en nuestra controladora, dado que los diodos de protección del motor se encuentran incorpora-dos en el integrado. Otro mecanismo habitual para el control de la velocidad de los moto-res de CC es la modulación por fre-cuencia de pulsos (Pulse Frequency Modulation, PFM). En este caso, la proporción de la señal alta y baja dentro del pulso se mantiene cons-tante. Lo que cambia es la frecuen-cia de los pulsos. Cuanta más alta es la frecuencia, la potencia aumenta. No entraremos en detalle porque no será el mecanismo que utilizaremos en nuestro robot. Ejemplos de programación de un motor CC con nuestro controlador Como podemos observar en la cons-trucción del controlador, el motor 1 está conectado a los pines 11 y 14 del L293D (Output 3 y 4, respecti-vamente) y el motor 2 a los pines 3 y 6 (Output 1 y 2). Para realizar nuestros ejemplos trabajaremos so-bre el motor 1, pero desde ya que lo que veamos sobre este motor es apli-cable al otro. El control de los pines 11 y 14 está dado por los inputs 3 y 4, ubicados en los pines 10 y 15 del L293D. Si seguimos las conexiones de nuestro controlador, podemos ver que estas dos entradas están con-troladas por RB1 y RB2 del 16F88 (pines 7 y 8). De esta manera, po-demos reformular la tabla que vimos antes para mostrar cómo se com-portará el motor 1 según el estado de los pines 7 y 8 del 16F88. El re-sultado de esta reformulación lo po-demos ver en la Tabla 2. Sin embargo, como detalle adicio-nal, cabe aclarar que no podremos lograr este último estado en nuestro controlador porque el pin 9 del L293D está en alto constantemente y no está controlado por el 16F88. 6. RECORRER EL MUNDO ❘❘❘ Cuando construimos nuestros robots, aparecen problemas físicos que segura-mente 132 PROBLEMAS FÍSICOS hemos visto en nuestros estudios, pero que tal vez no vinculamos. Por ejemplo, uno de los problemas es el te-ma de la reducción. ¿Por qué si aumen-tamos la fuerza disminuye la velocidad? ¿Cómo deben ser los engranajes para lograr esto? De la misma manera, otros conceptos tecnológicos fundamentales que surgen de nuestra obra serán las poleas, las cadenas de transmisión, las estructuras rígidas y flexibles, las palan-cas, etcétera. Tal vez no esté nada mal repasar estos conceptos para entender por qué funciona o no nuestro robot.
  • 135. Ejemplos de código en mikroBasic Aunque los ejemplos más completos estarán incluidos en los capítulos donde haremos robots para cumplir misiones específicas, ya podemos comenzar a realizar algunos progra-mas para empezar a testear a nuestro robot. En el capítulo pasado en-cendíamos y apagábamos todo el PORTB para encender y apagar el led. A partir de ahora comenzaremos a ser más delicados, y sólo encendere-mos los bits que sean necesarios pa-ra cada caso. Por ejemplo, en el ca-so del programa que titila el led, só-lo deberíamos encender el Rb3, co-mo vemos a continuación: program TitilaLedPreciso main: TRISB = 0 ‘ Configura los pines de PORTB como salida while true PORTB.3 = 1 ‘ Enciende RB3 donde está conectado el led El movimiento del robot delay_ms(500) ‘ Espera 500 milisegundos PORTB.3 = 0 ‘ Apaga RB3 delay_ms(500) ‘ Nuevamente espera 500 milisegundos wend end. Con la misma lógica, podemos hacer que el motor 1 encienda un segundo en un sentido, otro segundo en el sentido contrario, y un segundo se encuentre detenido (¡No nos olvidemos de que debemos conectar el motor en 1!). program mueveMotorCC main: TRISB = 0 ‘ Configura los pines de PORTB como salida while true ‘Configuramos el Pin 7 y el 8 para girar en un sentido 133 L293D-PIN 9 L293D-PIN 10 L293D–PIN 15 ESTADO DEL MOTOR 16F88-PIN 8 16F88-PIN 7 H H L Gira como las agujas del reloj. H L H Gira en sentido contrario a las agujas del reloj. H Pines en mismo estado Motor frenado. L X X Motor en punto muerto. Tabla 2. Estados del motor de CC al utilizar la programación de nuestro 16F88.
  • 136. 6. RECORRER EL MUNDO PORTB.1 = 1 ‘ Enciende RB1 (Pin 7 del 16F88) PORTB.2 = 0 ‘ Apaga RB2 (Pin 8 del 16F88) delay_ms(1000) ‘ Espera 1 segundo ‘Configuramos el Pin 7 y el 8 para girar en el otro sentido PORTB.2 = 1 ‘ Enciende RB2 (Pin 8 del 16F88) PORTB.1 = 0 ‘ Apaga RB1 (Pin 7 del 16F88) delay_ms(1000) ‘ Espera 1 segundo ‘Configuramos el Pin 7 y el 8 para que el motor se detenga PORTB.1 = 0 ‘ Enciende RB1 (Pin 7 del 16F88) 134 PORTB.2 = 0 ‘ Enciende RB2 (Pin 8 del 16F88) delay_ms(1000) ‘ Espera 1 segundo wend end. Motorreductores CC Como ya comentamos, los motores CC tienen mucha velocidad y poca fuerza, por lo que se hace necesario el uso de un sistema de reducción para poder equilibrar estas variables. Una de las soluciones es construir una caja reductora externa al motor. Sin embargo, en los últimos años han surgido motores de CC que ya proveen esta solución a nivel inter-no. A estos motores se los conoce co-mo motorreductores. Consisten en un micromotor de CC con una ca-ja reductora que usa el sistema de ti-po planetario en un compartimien-to sellado, lo que libera al sistema de la suciedad que podría afectar su funcionamiento (Figura 7). ▲ DÓNDE CONSEGUIR MOTORREDUCTORES Los motorreductores son más difíciles de conseguir que los motores de CC con-vencionales. Sin embargo, una forma sencilla de hacerlo es convertir un servo co-mo veremos al final de este capítulo. Si queremos comprar directamente uno, aquí van algunas páginas web de proveedores: •Ignis (fabricante): www.ignis.com.ar. •Robodacta (proveedor de elementos de robótica): www.robodacta.com.
  • 137. Como ejemplo de estos motorreduc-tores, podemos presentar el modelo MR-4 de Ignis, que tiene un torque de 0,12 a 2 Kgf*cm, según el mode-lo, con un consumo de 100 mA. Los modelos existentes son el 4-15, 4-50, 4-100 y 4-200, donde el último nú-mero indica la cantidad de revolucio-nes El movimiento del robot por minuto (RPM: a mayor RPM, menor fuerza, como ya hemos visto). Funcionan desde los 6 hasta los 12 V, pero toda la información de su hoja de datos está basada en una ali-mentación de 12 V (Figura 8). En algunos casos, es posible conse-guir un reductor para conectar en forma externa a un motor de CC, pero en términos de costos y de complejidad en la conexión de ma-teriales, no es aconsejable. Motores paso a paso (Motores PaP) Como hemos visto, el control de un motor CC es relativamente sencillo. Pero, si necesitáramos precisión en la cantidad de rotaciones del motor, sería casi imposible lograrlo con un 135 Figura 7. Vista interna de la caja de reducción de un motorreductor pendular. Figura 8. Un motorreductor con sinfín es lento pero tiene muchísima fuerza.
  • 138. motor de ese tipo. Los motores de CC tardan un tiempo en lograr la velocidad buscada y cuando se los deja de alimentar, poseen inercia y tardan en detenerse. Por lo tanto, es una cuestión de suerte lograr un nú-mero preciso de vueltas. Si necesita-mos fracciones de vueltas, esto es aún más complejo. Si le agregamos un sistema de reducción al motor podremos disminuir el problema, pero no desaparece por completo por la cantidad de variables que en-tran en juego: fricción de los engra-najes del sistema de reducción, peso del rotor, fricción interna del motor, temperatura, etcétera. Para lograr esta precisión necesita-mos un motor PaP (Figura 9) o un servo. Los motores PaP tienen un mecanismo que les permite girar un ángulo determinado. Los más comu-nes están formados por un rotor (un imán permanente) y un conjunto de bobinados en el estator. No giran li-bremente por sí mismos, sino que avanzan al girar pequeños pasos por cada pulso que se aplica. El tamaño del paso, en grados, es lo que defi- 6. RECORRER EL MUNDO 136 Figura 9. En esta imagen podemos ver ejemplos de motores paso a paso. ❘❘❘ ELEMENTOS QUE SE OBTIENEN AL RECICLAR APARATOS Disqueteras de 3 1/2: motor paso a paso del cabezal, motor de cc del giro del disco y electrónica de control de los motores. Disquetera de 5 1/4: lo mismo que en la disquetera de 3 1/2. Reproductor de DVD: distintos drivers para motores, motor paso a paso del cabezal, motor de CC del giro del disco, motor CC de la carga del disco. Impresora: motor paso a paso de avance del papel, motor paso a paso del cabezal, drivers de los motores paso a paso.
  • 139. nirá la precisión que tendremos en nuestro motor. Los pasos más comu-nes que podemos encontrar son: 0,72°; 1,8°; 3,6°; 7,5°; 15° y 90°. En el primer caso, para dar un giro com-pleto necesitaremos 500 pasos. En cambio, en el último, con 4 pasos ha-bremos dado la vuelta entera. En ge-neral, en la carcasa del motor se in-dica la cantidad de grados por paso. Si esto no es así, aparecerá la canti-dad de pasos por revolución. Para calcular los grados por paso, dividi-mos 360° por la cantidad de pasos. Dentro de los motores de imán per-manente, nos encontramos con dos tipos distintos, los unipolares y los bipolares, que exigen circuitos de control distintos (Figura 10). Los bipolares son más complejos de controlar que los unipolares, pero son más livianos y tienen mejor torque. El control ha dejado de ser un problema gracias a integrados como el L293D. Una vez que consigamos un motor de este tipo, debemos distinguir los ca-bles El movimiento del robot No. DE PASO 1A 1B 2A 2B 1 +Vcc Gnd +Vcc Gnd 2 +Vcc Gnd Gnd +Vcc 3 Gnd +Vcc Gnd +Vcc 4 Gnd +Vcc +Vcc Gnd Tabla 3. Secuencia de pasos para poder controlar un motor paso a paso bipolar. 1a, 1b, 2a y 2b. Esto es sencillo con un tester, dado que podemos de-tectar continuidad entre los cables que pertenecen a la misma bobina. Para lograr el giro del motor bipolar, debemos invertir las polaridades de las bobinas 1 y 2 en una determinada se-cuencia para girar a favor de las agujas del reloj, y en la secuencia invertida para girar en sentido contrario. La se-cuencia es la que vemos en la Tabla 3. Para realizar este control usaremos el L293D. En este caso, podremos con-trolar sólo un motor paso a paso, da-do que tendremos que usar los cua-tro puentes H que ofrece el integra-do para lograr la secuencia. Debería-mos conectar cada uno de los 4 ca- 137 1a 1b M 2a 2b 1a Com1 M Com2 1b 2a 2b Motor-PaP Bipolar Motor-PaP Unipolar Figura 10. Esquemas de las bobinas de los motores bipolares y unipolares.
  • 140. bles en los conectores del motor 1 y el motor 2 de nuestro controlador (Figura 11). Luego, si programamos las salidas del 16F88 que se corres-ponden con los inputs del L293D para seguir la secuencia anterior, lo-graremos el giro del motor. Cuanto más rápida suceda esa secuencia, más rápido será el movimiento del motor. Los motores unipolares cuentan con 5 ó 6 cables, según cómo sea el cone-xionado interno. Si es de 6 cables, ten-dremos que detectar cuáles represen-tan a Com1 y Com2 (Figura 10). Al unir esos dos cables, tendremos la mis-ma configuración que en los motores de 5 cables (Figura 12). Para detectar las parejas 1A y 1B, y 2A y 2B, medimos la resistencia. Cuando encontremos la resistencia más alta, habremos deter-minado la pareja correspondiente. Los cables Com1 y Com2 contra esos ca-bles tienen una resistencia baja (y además, habitualmente, son los únicos dos que tienen el mismo color). Si la medición no marca nada, hemos co-nectado cables de bobinas distintas. Por lo tanto, ya tenemos definidas las parejas y el cable común. Ahora, para determinar cuál es cuál, alimentamos al motor por el quinto cable o por el cable común con la ten-sión correspondiente. Tomamos uno de los otros cuatro cables, le ponemos la etiqueta 1A y lo conectamos a ma-sa. Luego tomamos otro y también lo conectamos a masa. Si gira en senti-do de las agujas del reloj, lo nombra-mos 1B, si gira al revés, 2B y si no gi-ra, 2A. De esta manera, podemos eti-quetar todos los cables. Tenemos tres formas distintas de con-trolar los motores unipolares. En todas ellas, si invertimos la secuencia cam- 6. RECORRER EL MUNDO Figura 11. Un ejemplo de motor bipolar, con 4 cables. 138 Figura 12. Ejemplo de motor unipolar con 5 cables, que tiene los dos rojos comunes.
  • 141. biamos el sentido de giro. El control más habitual es encender de a dos las bobinas, de la siguiente manera: No. DE PASO 1A 1B 2A 2B 1 H H L L 2 L H H L 3 L L H H 4 H L L H Tabla 4. Secuencia de pasos para controlar un motor unipolar. Al encender las bobinas de a dos, el campo magnético es más fuerte, y el motor tiene mayor torque y más fuer-za al ser frenado. Otro control es en-cender ❘❘❘ las bobinas de a 1: No. DE PASO 1A 1B 2A 2B 1 H L L L 2 L H L L 3 L L H L 4 L L L H Tabla 5. Otra secuencia para controlar un motor bipolar, más sencilla pero con menos torque. Es más sencillo que el esquema an-terior, pero el motor tiene menos torque. Si combinamos estos dos es-quemas El movimiento del robot podemos duplicar la canti-dad de pasos de este motor, como podemos ver a continuación: No. DE PASO 1A 1B 2A 2B 1 H L L L 2 H H L L 3 L H L L 4 L H H L 5 L L H L 6 L L H H 7 L L L H 8 H L L H Tabla 6. Combinación de los dos mecanismos anteriores que nos permiten mayor precisión en los giros. De esta forma, duplicamos la cantidad de pasos al girar el rotor en cada bobi-na y entre dos bobinas contiguas. A es-ta secuencia se la conoce como se-cuencia de medio paso. Hay que te-ner en cuenta que en los tres tipos de controles debemos ser cuidadosos con la velocidad en el cambio de los esta-dos, porque si es muy veloz podemos no alcanzar el tiempo necesario para que el rotor se acomode en la nueva po-sición. Si es así, obtendremos un mo-vimiento extraño, aleatorio del motor. DETECTAR EL TIPO DE MOTOR PASO A PASO A SIMPLE VISTA •Un motor PaP con 5 cables es casi seguro de 4 fases y unipolar. •Un motor PaP con 6 cables probablemente sea de 4 fases y unipolar, con 2 cables co-munes para la alimentación. Buscar si dos cables tienen el mismo color y unirlos. 139 •Un motor PaP con 4 cables con seguridad es bipolar.
  • 142. ● Terminal de control: es por donde ingresamos la señal que permite de-terminar el ángulo del motor. Los colores de estos cables varían según cada fabricante, pero en la Ta-bla 7 presentamos un detalle con los colores utilizados por los principales fabricantes de servos. Habitualmente, la capacidad de gi-ro de un servo es de 180 grados, pe-ro más adelante veremos cómo eli-minar este límite. El circuito de con-trol posiciona al eje y compara la señal que recibe de un potencióme-tro interno con la señal de control externa. Cuando gira el eje, también gira el potenciómetro. Por último, el ángulo va a estar determinado por la duración de un pulso que se aplica 6. RECORRER EL MUNDO Servos Un servo es un motor de CC pero con dos características fundamenta-les 140 que lo diferencian: una caja de reducción interna al motor que le brinda un gran torque y un sistema electrónico de control que le per-mite posicionar al motor en el án-gulo deseado. Se utilizan con mucha frecuencia en aparatos radiocontro-lados como aviones, barcos y autos a control remoto. También se usan mucho en robótica por su bajo peso y sus altas prestaciones (Figura 13). Los servos tienen 3 cables o terminales: ● Terminal positivo: recibe la energía que alimenta al motor (usualmente, de 4 a 8 voltios). ● Terminal negativo: dirigido a tierra. Figura 13. Servomotor Hitec, muy utilizado en robótica.
  • 143. FABRICANTE TERMINAL POSITIVO TERMINAL NEGATIVO ENTRADA DE SEÑAL Futaba Rojo Negro Blanco Fleet Rojo Negro Blanco Hitec Rojo Negro Amarillo Airtronics Rojo Negro Naranja JR Rojo Marrón Naranja Kraft Rojo Negro Naranja Tabla 7. Los colores de los tres cables de los servos de las marcas más conocidas. al cable de control. Esta señal es una onda cuadrada de 1,5 ms que se re-pite a un ritmo de entre 10 a 22 ms, y con un valor de pico entre 3 y 5 V. La frecuencia puede variar entre marcas distintas, pero debe ser una señal estable para poder conseguir la rotación precisa. Aquí aplicaremos de nuevo lo aprendido en PWM. La posición del eje dependerá del ancho del pulso de la señal de control. Por ejemplo, cuando el pulso se mantie-ne El movimiento del robot en 1,5 ms, el eje se ubicará en el ángulo 0, y vamos hacia -90° cuan-do disminuimos el ancho del pulso y hacia 90 en el caso contrario. La descripción que hemos hecho se refiere a los servos analógicos (que son los más comunes). Los servos digita-les tienen, en su placa de control, un micro que analiza la señal, la procesa y controla el motor. Reaccionan mu-cho más rápido a los cambios y tienen 141 Figura 14. Un servo visto por dentro.
  • 144. 6. RECORRER EL MUNDO más fuerza. Como contrapartida, son más caros y el consumo de energía es mayor que en los analógicos. Modificación de los servos Como ya hemos comentado, los ser-vos tienen un radio de giro de apro-ximadamente 180 grados. Su sistema de control nos permite definir su án-gulo de rotación en forma precisa y sencilla, pero muchas veces necesita-mos que el motor gire 360° en forma continua, como en el caso de las rue-das. Para ello vamos a tener que rea-lizar un conjunto de modificaciones en el servo. Estas modificaciones pue-den dañar el servo (de por sí lo dañan porque cambian su funcionalidad), por lo que sólo recomendamos reali-zarlas si no conseguimos motores de CC con caja reductora integrada, co-mo los que hemos presentado al co-mienzo de este capítulo. Una de las modificaciones posibles es eliminar el circuito de control y cortar los topes mecánicos. De esta forma, lo convertiremos en un mo-tor de CC con caja reductora. El ca-ble de control desaparece y sólo te-nemos dos cables donde se aplica co-rriente. A mayor corriente tendre-mos mayor velocidad y, si modifica-mos la polaridad, podemos cambiar el sentido del giro. A continuación veremos los pasos necesarios para re-alizar la modificación, pero cabe aclarar que las imágenes sólo son de referencia, ya que debemos buscar los pasos correspondientes para nuestro servo específico. ■ Modificar un servo PASO A PASO Si el servo posee un engranaje externo en el eje, desatorníllelo con cuida-do, sin forzar el giro del eje más allá de su tope de rotación. 142
  • 145. El movimiento del robot Abra la tapa posterior del servo desenroscando los cuatro tornillos y desmóntelo en forma completa. Saque la tapa superior que encierra la caja reductora y preste mucha aten-ción a la disposición de los engranajes para volver a ubicarlos en su lugar. 143
  • 146. 6. RECORRER EL MUNDO Corte o extraiga cuidadosamente el tope físico que tiene el engranaje de salida del servo. Lije con una lija fina para no dejar rebordes o muescas que provoquen fricciones hostiles al movimiento de la caja reductora. Elimine el circuito de control. La forma de hacer esto va a depender del modelo del servo en cuestión. En algunos casos, basta con desvincular uno de los engranajes del potenciómetro. En otros, habrá que encontrar el modo de comunicación de los engranajes con el sistema de control. Para ello, es conveniente buscar en Internet los pasos necesarios para modificar el servo específico que desee adaptar. 144
  • 147. Volvemos a repetir: sólo es necesario realizar esto si no conseguimos un motorreductor. De todas maneras, este procedimiento era más habitual cuando no se conseguían con facili-dad, pero hoy es mucho más sencillo comprar directamente uno de ellos que modificar un servo. El movimiento del robot MODIFICAR SERVOS A continuación presentamos las direc-ciones de algunos sitios donde se pro-porcionan los pasos para modificar di-versos •Futaba 3003: www.kronosrobotics.com/an116/ GAN116_3003.htm. •Hitec HS 300: www.kronosrobotics.com/an116/ GAN116_hs300.shtml. •Futaba S148: www.seattlerobotics.org/ encoder/200304/Futaba%20S148%20 Servo%20mod%20for%20PWM.htm. •Sub micro CS21: www.dprg.org/projects/1998-04b/ index.html. 145 … RESUMEN ▲ modelos de servos: Hemos llegado al hermoso momento en que nuestra criatura sale a recorrer el mun-do. Pero no todo es tan sencillo. En este capítulo hemos analizado los diferentes ti-pos de motores que pueden usarse con nuestra alimentación de corriente continua. Los motores de CC son sencillos de conseguir y fáciles de controlar, pero tienen po-co torque. Por lo tanto, debemos agregarles una caja de reducción para poder mo-ver las ruedas a una velocidad razonable y con la fuerza necesaria. Por suerte con-tamos con motorreductores, que ya nos ofrecen ese sistema en forma interna en la caja del motor, aunque con un costo mayor. También podemos utilizar motores pa-so a paso, que en general están presentes en disqueteras, impresoras, discos rígi-dos, etcétera. El control es un poco más complejo, pero nos brindan precisión en sus movimientos. Si queremos mayor precisión y no necesitamos giros completos, los servos son la tercera opción para los movimientos de nuestro robot.
  • 148. ✔ ACTIVIDADES TEST DE AUTOEVALUACIÓN 1 ¿Qué es el torque? ¿Cómo se logra en 146 un motor de corriente continua? 2 ¿Qué integrado utilizamos para controlar los motores de CC? ¿Por qué no los con-trolamos directamente desde el 16F88? 3 ¿Qué es un puente H? 4 ¿Qué es el PWM? 5 ¿Cuáles son los cuatro estados del motor de CC? ¿Cómo lo logramos con el L293D? 6 ¿Qué es un motorreductor? ¿Qué venta-jas y desventajas presenta con respec-to a un motor de CC convencional? 7 ¿Cómo funciona un motor paso a paso? 8 ¿Qué características tienen los motores PaP bipolares y unipolares? 9 ¿Cómo se distingue el cableado de los motores PaP? 10 ¿Qué componentes tiene un servo? 11 ¿Cuál es el objetivo de modificar un ser-vo? ¿Por qué no se recomienda hacerlo? EJERCICIOS 1 Mediante la utilización de la modula-ción por pulsos, haga un programa que, según el valor de una variable, encienda con mayor o menor potencia el led de la controladora. 2 Realice un programa para controlar los dos motores: los primeros 3 segundos ambos motores deben moverse en un sentido (lo consideramos avance), lue-go deben retroceder otros 3 segundos, posteriormente girar para un lado, de-jar un motor para adelante y otro para atrás, y por último invertir el sentido del giro. Estas últimas dos etapas, también de 3 segundos cada una. 3 Mediante la utilización de la modula-ción por pulsos, haga un programa que, según el valor de una variable, modifi-que la velocidad del motor 1. 4 Conecte un motor bipolar en los conec-tores de motor 1 y motor 2, y programe su funcionamiento con la técnica vista en la sección correspondiente.
  • 149. Robótica Sensar el mundo Capítulo 7 Cuando construimos robots autónomos, uno de los desafíos más importantes es la habilidad de adaptarse al mundo que los rodea. Si no incorporamos sentidos a nuestro dispositivo, sólo tendremos un juguete a control remoto, donde la inteligencia y la captación del ambiente están en nuestras manos. En este capítulo conoceremos los tipos de sensores que podemos encontrar y veremos la electrónica y la programación que usaremos en los próximos capítulos. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Adaptación al entorno 148 Tipos de sensores 148 Características esenciales de los sensores 149 Sensores digitales 152 Los sensores analógicos 158 Tipos de sensores analógicos 162 Resumen 165 Actividades 166
  • 150. ADAPTACIÓN AL ENTORNO Ya piensa, ya camina… La obra con-tinúa creciendo. Y sin embargo, cada vez que lo ponemos a nuestro lado pa-ra que nos acompañe, se lleva por de-lante una pared, se pierde por lugares insólitos o se cae por una escalera. Al-go nos falta, algún soplo de creación nos hemos olvidado de brindarle a nuestro robot. ¡Nos hemos olvidado de incorporarle sentidos! Sin ver, sin tocar y sin escuchar, es imposible que se separe de nuestra mano y de nues-tros ojos. Y es por eso que empezamos a pensar cuáles serían los sentidos esenciales que podemos brindarle. ¿Le agregamos la vista? Es un desafío complejo, demasiada información para su pequeña inteligencia. ¿El tac-to será suficiente? Tendrá una vida dura, golpeándose contra todo para poder captar el mundo que lo rodea. ¿El olfato será de utilidad? Muchas dudas nos preocupan, pero nos lanza-mos decididos a buscar qué es lo que nos puede ayudar. Y encontramos que en el mundo de la electrónica, los sen-tidos se multiplican infinitamente. Tipos de sensores Los sensores tienen como objetivo captar alguna señal brindada por el ambiente que rodea al robot, y transformar esa señal en un impul-so eléctrico que reciba nuestro con-trolador. Luego, desde el programa que usemos para darle comporta-miento, interpretaremos este impul-so para actuar en consecuencia. Cuando hablamos de señales del ambiente, nos referimos a la infor-mación habitual que, como huma-nos, podemos captar: imágenes vi-suales, olores, información táctil, so- 7. SENSAR EL MUNDO 148 Figura 1. Kephera es un robot con ocho sensores infrarrojos y una cámara de visión lineal.
  • 151. nidos y sabores. Pero esto no termi-na aquí: podemos utilizar otros me-canismos que superen al sistema sensorial humano. Contamos con sensores ultrasónicos para medir dis-tancias, sensores de metales, detec-tores de diversos gases, etcétera. La oferta es muy grande, y cada ti-po de sensor nos obliga a incorporar algo de electrónica y de programa-ción en nuestro robot. En este capí-tulo veremos los tipos de sensores que podemos encontrar habitual-mente en el mercado, sus caracterís-ticas y cómo podríamos incorporar-los a nuestro robot. Luego nos de-tendremos en los sensores que va-mos a utilizar para los desafíos que hemos planteado en este libro. Características esenciales de los sensores Los sensores determinan en forma precisa el comportamiento de nuestro robot. Es por eso que cuando elegi-mos el tipo de sensor que incorpora-mos, debemos analizar un conjunto de características que nos permitirán definir si es o no el que necesitamos para nuestra tarea. Éstas son: ● Fiabilidad: esta característica está muy vinculada al ambiente en el que se mueve nuestro robot. Por ejemplo, si utilizamos un sensor de luz o brillo en un lugar con luz es-table, Adaptación al entorno NARICES ELECTRÓNICAS podremos utilizar sensores de menor calidad porque sabemos que los resultados, luego de cali-brar el sensor, se mantendrán pa-rejos y podremos confiar en ellos. En cambio, en los ambientes don-de las condiciones se modifican en forma constante, los sensores que utilicemos deben poseer mecanis-mos electrónicos de balanceo que permitan superar estas dificulta-des. Si los valores devueltos por el sensor no son fiables, necesitare-mos compensar este problema con programación, para lo que utiliza-mos varias muestras y distintos métodos estadísticos que ajusten al mínimo el margen de error. Cabe aclarar que esto se paga con mayor tiempo de procesamiento. ● Rango de valores: el rango de va-lores es el valor mínimo y máximo que puede devolver el sensor. 149 ❘❘❘ De todos los sentidos, es probable que el olfato y el gusto sean los más complica-dos de emular. Sin embargo, existen las narices electrónicas. Esos instrumentos permiten realizar análisis de una mezcla de gases, vapores y olores en tiempo re-al. Sirven para el control de la calidad alimenticia, el diagnóstico médico, la de-tección de escape de gases, procesos in-dustriales, usos militares, etcétera.
  • 152. ● Precisión: aun si se tiene el mis-mo rango de valores, los sensores pueden devolver más o menos es-tados intermedios dentro de ese rango. Llamamos precisión a la cantidad de valores distintos que nos puede devolver el sensor en su rango de valores. Por ejemplo, no es lo mismo un sensor de brillo con un rango de 0 a 100 con una precisión de 1, que uno con una precisión de 0.1. En el segundo ca-so, podremos detectar variaciones mínimas que en el primero se le-erían como valores idénticos. ● Velocidad de muestreo: es la fre-cuencia con la que el sensor refres-ca su lectura del ambiente. A ma-yor velocidad, mejor adaptación a los cambios del mundo en el que se mueve nuestro robot. Pero por otro lado, nos exige mayor procesa-miento de los valores de entrada. De todas formas, si el sensor tiene una alta velocidad y no nos da tiempo para procesar los datos, po-demos desechar valores de lectura y lograr la velocidad de muestreo que necesitemos. En el caso contrario, no podemos solucionar el proble-ma. Es decir, nos conviene un sen-sor con la mayor velocidad de muestreo posible, que luego regula-remos al tomar todos los valores o sólo un conjunto de ellos. ● Costo: aunque en nuestros prime-ros proyectos tal vez no parezca un elemento fundamental de análisis, cuando desarrollemos robots más complejos nos encontraremos con limitaciones de este tipo. Y lamen-tablemente, veremos que hay una relación lineal entre el costo y las demás características: los sensores más caros son mejores. ● Sencillez de uso: en estos prime-ros pasos, es fundamental que tan-to la interfaz electrónica que debe-mos desarrollar entre el sensor y el micro, como su programación pa-ra la interpretación de los datos, sea lo más sencilla posible. 7. SENSAR EL MUNDO Figura 2. Sick es un escáner láser muy usado en robótica que permite medir distancias con precisión milimétrica y realizar mapeos de objetos próximos. 150
  • 153. ● Tamaño y forma: en el momento en el que queramos insertar el sen-sor en nuestro robot, con seguri-dad querremos realizarle la menor cantidad de modificaciones posi-bles a la arquitectura que ya tene-mos definida. Por otra parte, es ne-cesario que el sensor esté a la dis-tancia precisa para poder captar lo sensado. Por ejemplo, el sensor que utilizaremos para el seguimiento de línea es sencillo, pero con un al-cance muy bajo. Por lo tanto, será necesario ubicarlo lo más cerca po-sible de la línea debajo del robot. Otro ejemplo son los sensores de tacto: es habitual tener que ampli-ficar la mecánica del sensor para detectar con mayor facilidad los objetos. Para ello es fundamental elegir el tamaño y la forma que se Adaptación al entorno adapten a nuestras necesidades en el conjunto de sensores que cum-plen la misma función. ● Calibración: en este caso, tam-bién tenemos el problema de que cuanto más sencillo sea el sensor, más trabajo de calibración tendre-mos que hacer con el software. En general, la calibración no está brindada directamente por el sen-sor, sino que es en la electrónica de la conexión donde podemos agre-gar elementos que nos permitan modificar, con una simple vuelta de potenciómetro, las señales de entrada o la sensibilidad de lectu-ra. Aunque le agreguemos más tra-bajo al diseño inicial del robot, luego agradeceremos que con un destornillador podamos readaptar al robot a diversos ambientes. 151 Figura 3. Lego provee diferentes sensores, como los de tacto, luz y sonido, entre otros.
  • 154. Si tenemos en mente estos principios, podremos salir en la búsqueda del sensor que solucione nuestros pro-blemas. Vamos a dividir nuestro de-sarrollo en dos grandes grupos de sensores: los digitales y los analógi-cos. También podemos clasificarlos como internos y externos, activos y pasivos, etcétera, pero hemos elegido la primera taxonomía porque nos de-termina diferencias sustanciales en la electrónica y la programación. Sensores digitales Los sensores digitales son aquellos que, como salida de su sensado del mundo, nos devuelven hacia el con-trolador un valor discreto (Figura 4). El modelo más sencillo de este tipo de sensores es aquel que directamen-te nos devuelve un uno o un cero. En todos los casos, necesitamos de algu-na interfaz electrónica entre el sensor y el micro. A veces, esta electrónica puede ser una simple resistencia y en otros casos puede ser un desarrollo mucho más complejo, dependiendo del tipo de sensor. Hay una gran variedad de sensores digitales en el mercado, e incluso po-demos convertir sensores analógicos en digitales, como por ejemplo con el uso del integrado 74HC14. Mu-chos se conectan de forma similar, con la utilización de una resistencia de pull-up conectada a Vcc para mantener la señal en nivel alto, o a GND para mantenerla en nivel ba-jo. Cuando el sensor se activa, la señal pasa al nivel contrario. Uno de los sensores digitales más pri-mitivos es el interruptor o switch, que 7. SENSAR EL MUNDO 152 14.0 12.0 10.0 8.0 6.0 4.0 2.0 0.0 Señal discreta 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Figura 4. Ejemplo gráfico de los valores que entrega un sensor digital.
  • 155. nos permite representar el sentido del tacto. Este sentido parece ser uno de los más simples de implementar, pero en realidad para reproducirlo en toda su expresión deberíamos sensar tem-peratura, contacto y fuerza (por ejem-plo, no es sencillo reproducir la pre-sión ejercida por nuestra mano cuan-do tomamos un objeto frágil, que se puede deformar por un excesivo nivel de fuerza). Por ahora nos ocuparemos del sensado de contacto, con la idea Adaptación al entorno de detectar colisiones contra objetos para permitir el cambio de sentido de nuestro robot. Estos sensores se co-nocen en el mundo de la robótica co-mo bumpers. En nuestro controlador ya tenemos el conexionado y la electrónica necesarios para conectar dos de estos sensores (Figura 5). Estos sensores son dos interruptores sencillos (abierto/cerrado) que se co-nectan a +5 V con una resistencia (Pull-Up) o a GND (Pull-Down). La 153 + 5 R 3 1 K R 4 1 K Sensores Sensor 1 Sensor 2 1 2 3 Figura 5. Conexión de los dos interruptores en nuestro controlador. ❘❘❘ SENSORES DE ESTACIONAMIENTO Muchos de los sensores que se utilizan para robots, luego desembarcan en la vida cotidiana. Un ejemplo de esto son los sensores de estacionamiento. Por poco dine-ro podemos agregarle a nuestro vehículo un sensor de este tipo que nos indica, con un display o con sonidos, la proximidad de los objetos en la parte trasera de nues-tro auto. Sólo se activan con la marcha atrás, y nos dan información de distancia mediante luces, textos o cantidad de bips.
  • 156. diferencia se producirá si queremos de-tectar un 0 lógico (entre 0 V y +1,5 V aproximadamente) cuando se produz-ca un cambio en el estado del switch o si, por el contrario, queremos detectar un 1 lógico (de +2 V a +5 V). Otra variante es usar contactos nor-malmente cerrados o normalmente abiertos, que se comportarán como una compuerta NOT o directa, si consideramos el valor TRUE como 1 lógico, que representa +5 V en el pin del microcontrolador, producto de la acción Chocar y el 0 como FALSE en el caso contrario. Como podemos observar en el controlador, nuestra entrada está asociada en forma di-recta a RA3 en el caso del sensor 1, y a RA4 en el caso del sensor 2. Po-demos agregarle un condensador de bajo valor (0.1uF a 1uF) en paralelo con los contactos del interruptor pa-ra reducir los efectos de rebote. Con respecto a los interruptores que podemos utilizar, la variedad es muy grande. Uno de los más usados en robótica es el microswitch. Este sen-sor cuenta con 3 conectores: C (Co-mmon, común), NC (Normal Closed, normalmente cerrado) y NO (Normal Opened, normalmente abierto). Cuando el sensor está en reposo, está cerrado el circuito de C a NC. Al presionar la extensión metálica que sirve de amplificador mecánico de la señal, cerramos el circuito entre C y NO. Esta extensión metálica puede te-ner una palanca suficientemente gran-de (Figura 6) como para poder usarlo de sensor de tacto sin modificaciones ex-tras. También puede contar con un pe-queño rodillo en la punta que nos per-mita realizar tacto sobre las superficies sin provocar rozamiento entre el sen-sor y lo sensado (Figura 7). Otro sensor que podemos utilizar en forma digital es el infrarrojo (Figura 8). 7. SENSAR EL MUNDO Figura 6. Un modelo de microswitch con palanca grande. Figura 7. Otro modelo con rueda en el extremo de la palanca. 154
  • 157. Esencialmente, consiste en un emisor de señal infrarroja (un led) y un foto-transistor. Si ambos apuntan hacia el mismo lado, tenemos un sensor re-flectivo, dado que el fototransistor será estimulado cuando la luz del led se re-fleje sobre una superficie. Esto es útil para detectar colores muy distintos (por ejemplo, una línea negra sobre un papel blanco) o sensar si el robot está por caer al vacío (el sensor detecta la re-flectancia de la mesa, pero al acercarse a un borde deja de recibir la señal). Uno de los problemas que podemos encontrar es que el fototransistor pue-de estar estimulado por las luces del ambiente. Para evitarlo, debemos en-capsularlo de manera tal que sólo el re-flejo de su led lo estimule. El más co-nocido y económico de todos es el CNY70, que también podemos utilizar como sensor analógico, dado que de-vuelve un valor entre 0 V (reflejo abso-luto) hasta 3.3 V (absorción absoluta). Lo analizaremos más adelante cuando veamos los sensores analógicos. Adaptación al entorno Otra forma de utilizar el sensor infra-rrojo es enfrentar el led con el foto-transistor. Por lo tanto, lo que pode-mos detectar allí es el corte de visión entre ambos. A este tipo de arquitec-tura se la conoce como sensor de ra-nura. Podemos utilizarlo simplemente para la detección de objetos (como se usa en ciertos estacionamientos para avisar la salida de un auto) o para con-tar los pasos de una rueda asociada al eje de un motor y, de esta manera, ar-mar un sensor de rotación. Depen-diendo de cómo está acanalada la rue- 155 Figura 8. Sensor infrarrojo de tamaño reducido. ❘❘❘ RECICLAR SENSORES PARA NUESTRO ROBOT En el capítulo anterior ya vimos cómo podíamos reciclar los motores de nuestros an-tiguos dispositivos. Ahora veamos qué ocurre con los sensores: Disquetera 5 1/4: detector infrarrojo de ranura para detectar pista cero, fototransisto-res, led emisor de infrarrojo, detectores de efecto hall. Disquetera 3 1/2: detector infrarrojo de ranura muy pequeño, microswitches. Video VHS: led emisor de infrarrojo, receptores de infrarrojo, receptor del IR del con-trol remoto, microswitches, infrarrojos de ranura, sensores de efecto hall.
  • 158. da y de la cantidad de sensores que po-damos utilizar, la detección que pode-mos hacer puede ir desde contar la can-tidad de pasos que se han dado, hasta la codificación de la posición absoluta. Si queremos conectar un infrarrojo a nuestro controlador para detectar una línea negra en el piso o un ob-jeto muy cercano a nuestro robot, podemos utilizar la electrónica que vemos en la Figura 10. Es posible ver que por un lado tenemos conectado el led infrarrojo a RA1, al que lo de-clararemos de salida para poder en-cender o apagar el led según nues-tras necesidades. Si queremos que el led esté encendido todo el tiempo, directamente podemos conectarlo a 5 V. El fototransistor está en RA2, para lo cual deberemos declararlo de entrada. Queda claro que, en estos transistores, la base no está conecta-da, sino que es el mismo sensor el que activa la señal ante la luz. Otro sensor digital interesante es el sensor de efecto hall. Este efecto con-siste en la aparición de un campo eléc-trico en un conductor ante la presen-cia de un campo magnético. El inte-grado Figura 9. Rueda de posicionamiento absoluto con sensores infrarrojos. Con siete sensores podemos determinar 128 posiciones distintas de la rueda. En ese caso, tenemos una precisión de algo menos de 3 grados. ❘❘❘ Es posible armar sensores digitales caseros con sólo diseñar un dispositivo que cie-rre UGN3503 puede detectar cambios magnéticos con precisión. Tiene 3 conexiones: alimentación, 7. SENSAR EL MUNDO 156 SENSORES DIGITALES CASEROS o abra el circuito según la detección que se quiera hacer. Por ejemplo, para de-tectar unos discos de metal que se encontraban pegados al piso, cuyo borde era con-ductor, realizamos un sensor muy sencillo con escobillas de autitos de carrera. Só-lo pusimos bajo una madera 14 pedazos de escobilla en forma paralela con una dis-tancia menor al diámetro de los discos. Conectamos los pedazos impares entre sí y éstos a la entrada del sensor, y los pares los conectamos a masa. Cuando un disco tocaba dos de las escobillas, cerraba el circuito y lo detectaba. ¡Gracias a este sen-sor ganamos un campeonato de robótica latinoamericano!
  • 159. tierra y salida. Si no hay campo magnético, la tensión en la salida es de la mitad de la entrada. Si se acerca el polo sur de un elemento magneti-zado, aumenta el voltaje. Y si se acer-ca el norte disminuye. Si queremos utilizarlo de esta manera, deberemos prestar atención cuando veamos có-mo usar sensores analógicos. Pero si sólo queremos detectar la presencia o no de un elemento magnético, nos al-canza con un procesamiento digital. Programación de los switches de nuestro controlador A continuación presentamos un pro-grama muy sencillo que nos permite encender el led cuando detecta la ac-tivación Adaptación al entorno del sensor de tacto 1 que te-nemos en nuestro controlador. program Sensorescapitulo7 main: TRISA = 255 ‘ Configura los pines de PORTA como entrada TRISB = 0 ‘ Configura los pines de PORTB como salida while true if PORTA.3=1 then ‘ Verifica el estado del pin donde está conectado 157 Vss Infrarrojo LED2 Photo PNP RA0 RA1 RA2 RA3 RA4/TOCKL 17 18 1 2 5 3 1 2 +5 R2 R3 R1 Figura 10. Circuito básico de conexión del infrarrojo a nuestro controlador.
  • 160. el sensor 1 PORTB.3=1 ‘ si está encendido (el sensor activado) enciende el led else PORTB.3=0 ‘ si no, lo apaga end if wend end. Los sensores analógicos A medida que nuestro robot evolucio-na, nos encontramos con la necesidad de captar el ambiente con mayor pre-cisión. Ya no nos alcanza con uno o más sensores digitales. Queremos re-cibir un valor dentro de un rango. A los sensores que nos permiten este ni-vel de precisión se los conoce como analógicos (Figura 11). Por ejemplo, una fotorresistencia nos puede entre-gar un valor entre 0 y 5 V. Ahora, el problema que tenemos es que, a pesar de todo lo bueno que pueda ser nuestro micro, siempre trabaja en forma digital. Por lo tan-to, necesitamos convertir esta señal analógica en un valor digital. Para ello existen los conversores analógi-cos/ digitales (A/D). Estos dispositi-vos, a partir del valor de entrada, nos devuelven un número de 8, 10 ó más bits. Veamos una tabla de un su-puesto conversor A/D que provee una salida de 4 bits. Esto significa que tenemos 16 estados distintos po-sibles de salida. Si la entrada es un valor entre 0 V y 5 V, el esquema podría ser el que vemos en la Tabla 1. 7. SENSAR EL MUNDO 158 5.0 4.0 3.0 2.0 1.0 0.0 Señal analógica 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Figura 11. Gráfico ejemplo de los valores que entrega un sensor analógico.
  • 161. VOLTAJE ENTRADA SALIDA Adaptación al entorno MIN MAX BINARIA DECIMAL 0 0,3125 0000 0 0,3125 0,625 0001 1 0,625 0,9375 0010 2 0,9375 1,25 0011 3 1,25 1,5625 0100 4 1,5625 1,875 0101 5 1,875 2,1875 0110 6 2,1875 2,5 0111 7 2,5 2,8125 1000 8 2,8125 3,125 1001 9 3,125 3,4375 1010 10 3,4375 3,75 1011 11 3,75 4,0625 1100 12 4,0625 4,375 1101 13 4,375 4,6875 1110 14 4,6875 5 1111 15 Existe una inmensa variedad de con-versores A/D. Habitualmente, se usan de 8 bits con los micros, como por ejemplo el ADC0804 (Figura 12). Este conversor acepta una entrada de 0 V a 5 V. En su pin 20 alimentamos con 5 V, en el 9 con 2.5 V (la mitad exacta de lo que se quiere medir) y en el pin 7 con 0 V. En los pines 8 y 10 se co-necta a tierra. En el pin 6 tenemos la entrada analó-gica y en los pines 11 a 18 tenemos los 8 bits de la salida digital, que en nuestro caso deberíamos conectar, por ejemplo, con RB0 a RB7 (¡nos 159 Tabla 1. Relación de valores en la conversión de una señal analógica entre 0 V y 5 V a una señal digital de 4 bits. ▲ HOJAS DE DATOS Si buscamos información sobre algún integrado, seguramente llegaremos a su res-pectivo datasheet (hoja de datos). Cada fabricante tiene la hoja de datos de sus propios integrados, pero tenemos sitios que juntan y clasifican las hojas más comunes: •Universidad Nacional del Sur: www.ceia.uns.edu.ar/integrados/index.asp. •Catálogo completo de hojas de datos: www.datasheetcatalog.net/es/.
  • 162. 20 19 consume un montón de entradas un único sensor!). Para que inicie la conversión, debemos enviar al pin 3 primero un 1 y luego un 0, y al pin 2, al mismo tiempo, lo contrario. Allí toma la entrada analógica y rea-liza la salida digital hasta que se vuel-van a producir las activaciones de los pines 2 y 3 ya mencionadas. Como vemos, tener un conversor A/D nos agrega algunas cuestiones electróni-cas y nos consume una cantidad im-portante de entradas digitales. Pero la electrónica avanza, y es aquí don-de podemos encontrar la mayor di-ferencia (para este libro) entre el 16F84 y el 16F88. Este último mi-cro de Microchip, ¡tiene un conver-sor A/D incorporado! En el 16F88 tenemos siete entradas analógicas (siete canales), asociadas las cinco primeras a RA0 a RA4 y las últimas dos a RB6 y RB7, respecti-vamente. Cada una de ellas nos pro-porciona un resultado digital de 10 bits, es decir, un valor entre 0 y 1023. Las referencias positivas y ne-gativas (Vref+ y Vref-) son seleccio-nables mediante RA2 y RA3. Los registros de control son: ● ADRESH y ADRESL: parte alta y ba-ja del resultado, que en nuestro ca-so, con mikroBasic, podremos ob-tener de manera directa con la lla-mada a la función ADC_read. 7. SENSAR EL MUNDO 160 CS ADC0804 RD1 WR CLK IN INTR Vin+ Vin- A GN D Vcc CLK R D0 D1 D2 D3 D4 Vref/2 D GN D D5 D6 D7 1 2 3 4 5 6 7 8 9 10 18 17 16 15 14 13 12 11 Figura 12. Esquema del conversor A/D ADC0804. ❘❘❘ CONVERSIÓN ANALÓGICO-DIGITAL Aunque parezca un tema novedoso y desconocido, vivimos rodeados de conversio-nes de este tipo. Por ejemplo, la música en CD es una conversión a lo digital de las señales sonoras, que son analógicas. Cuando grabamos con un micrófono en la computadora, cuando escaneamos una imagen, cuando sacamos una foto digital, convertimos el mundo analógico real en un formato digital. En todos los casos, ne-cesitamos pasar del infinito continuo al finito discreto.
  • 163. ● ADCON0 y ADCON1: registros de con-trol que describiremos más adelante. ● ANSEL: registro de selección de en-tradas analógicas. También resuel-to por mikroBasic. Los pasos de operación del ADC son complicados. Por suerte, como ya comentamos, mikroBasic nos pro-porcionar una solución. Para operar el ADC desde mikroBasic, en pri-mer lugar debemos inicializar el re-gistro de control ADCON1. En este ca-so, debemos poner un valor que de-termine los cuatro bits más signifi-cativos (del 4 al 7). Los bits 4 y 5 de-terminan los valores de referencia según la siguiente tabla: VALOR VREF+ VREF- 00 AVdd AVss 01 AVdd Vref- (RA3) 10 Vref+ (RA2) Avss 11 Vref+ (RA2) Vref- (RA3) Tabla 2. Valores a ser seteados en ADCON1 para definir los valores de referencia Vref+ y Vref- en la conversión A/D. En el caso de usar RA2 y RA3, de-ben ser configurados como entradas analógicas. El bit 6 determina si la fuente del reloj de la A/D se divide por 2 cuando se usa el reloj del sis-tema (habitualmente lo ponemos en 0). El bit 7 determina cuáles son los bits que quedarán en 0 en el valor Adaptación al entorno SENSORES ULTRASÓNICOS word que devuelve la lectura digital. Como sabemos que son 10 bits que quedarán en ADRESH y ADRESL, en-tonces, si ponemos este bit en 1, los 6 bits que quedan en 0 son los más importantes, es decir, los 6 más sig-nificativos de ADRESH. En el caso contrario, serán los 6 menos signifi-cativos de ADRESL. Como paso siguiente, debemos in-dicar los pines que serán de entrada en A con TRISA o en B con TRISB. Para finalizar, leemos el valor del ca-nal donde tengamos la entrada con la función Adc_Read(nro de canal), que devuelve un valor de tipo word. Cabe mencionar que en el llamado a esta función se realizan muchos pasos más que, por suerte, no nos 161 ❘❘❘ Émulos del mecanismo de ubicación de los murciélagos, los sensores ultrasó-nicos nos permiten medir distancias a bajo costo. Pueden tener el emisor y el receptor por separado o utilizar el mis-mo piezoeléctrico para ambas cosas. Podemos conseguirlos en algunas cá-maras antiguas con foco automático, o utilizar la serie SRF de Devantech. El más adecuado en este caso es el SRF08, que funciona con 5 V y tiene ba-jo consumo.
  • 164. 5 V E D 5 V deben preocupar, ya que los realizará en forma automática. Con estos pasos, podemos tomar los valores de los sensores que describire-mos a continuación, y que nos brin-darán la riqueza de la precisión que los sensores digitales no tenían. Tipos de sensores analógicos Uno de los sensores más sencillos de utilizar y más económicos es el fa-moso CNY70, que ya hemos men-cionado. Para usarlo, sólo lo conec-tamos como indica la Figura 13, don-de la señal debe ir hacia la entrada analógica. Otro sensor conocido y económico es el LDR, que consiste en una re-sistencia que varía su valor resistivo en función de la luz que recibe. De esta manera, podemos obtener infor-mación compleja del entorno donde el robot realiza su tarea. También po-demos agregarle un led específico del color que deseamos detectar, para que los valores de rebote sean más significativos. En la Figura 14 pode-mos ver la conexión del sensor a nuestro controlador, y más adelante veremos cómo programar la detec-ción de su valor analógico. 7. SENSAR EL MUNDO ❘❘❘ El gran avance de la tecnología nunca terminará de sorprendernos. Unos científicos japoneses desarrollaron una piel artificial flexible con capacidades sensoriales. Por ahora sólo son sensibles a la presión, pero en breve tendremos pieles que además detecten temperatura, fuerza, tensión, etcétera. Esto permitiría una manipulación mucho más fina de los objetos por parte de un robot, sin necesidad de hacer pro-cesamiento 162 PIEL PARA ROBOTS de imágenes para lograrlo. 20 K 20 K Señal Masa Masa Figura 13. Conexión del CNY70 para usarlo como sensor analógico.
  • 165. OSC1/TCLKIN OSC2/CLKOUT Otro sensor analógico corriente es el potenciómetro. Conectado a un motor, lo podemos utilizar como sensor de rotación, principalmente si es multivuelta. En la Figura 15 podemos ver el es-quema de conexión. Otros sensores analógicos que pode-mos encontrar en el mercado son: Adaptación al entorno R3 1K ● De luz o color: fotodiodos, foto-transistores y CCD (integrado que posee una matriz de celdas que son sensibles a la luz). ● De presión. ● Táctiles: a diferencia de los senso-res de tacto, pueden determinar el grado de presión y la zona donde se produce el contacto. 163 Vss RA0 RA1 RA2 RA3 RA4/TOCKL 17 18 1 2 3 16F88 / 16F84 LDR R1 +5 Figura 14. Conexión del LDR a nuestro controlador. ❘❘❘ DETECTOR DE MENTIRAS Si queremos usar nuestro robot para combatir el crimen organizado, además de po-nerle una capa y un antifaz, podemos agregarle un sensor que nos permita detectar mentiras. Este sensor es, simplemente, un medidor de la resistencia que tenemos en la piel, que se modifica cuando transpiramos. Supuestamente, cuando mentimos, su-damos, y por lo tanto cambiamos esta medida, aunque a veces nos parece que hay gen-te que miente sin que se le mueva un pelo.
  • 166. 3 3 0 Figura 16. Uno de los tantos sensores ultrasónicos que hay en el mercado. ● Micrófonos. ● Ultrasónicos: permiten medir distan-cias con el mismo mecanismo que utilizan los murciélagos (Figura 16). ● Acelerómetros: detectan acelera-ción y vibración. ● Inclinómetros: sensan la posición vertical. ● Termistores: para medir temperaturas. ● Termorresistencias: de la misma manera que los termistores, permi-ten medir temperaturas, pero en condiciones mucho más extremas. ● Pirosensores: divisan fuego por su capacidad para detectar ciertos rangos de ultravioletas. ● Humedad. ● GPS. ● Proximidad. Ejemplo de programación de la lectura de un LDR en una entrada analógica Este ejemplo es una de las pocas co-sas que no podremos hacer si tenemos un 16F84, y es por eso que recomen-damos hacer el pasaje de micro. En el ejemplo que dimos, teníamos conec-tado el LDR en RA2. Por lo tanto, tendremos que leer el canal 2. program LDR dim resu as word main: ADCON1 = $80 ‘ configuro la forma de lectura del valor digital ‘ y que utilizaré Vss y Vdd como valores de referencia. 7. SENSAR EL MUNDO 164 10 K VCC al conversor A/D Potenciómetro Figura 15. Conexión del potenciómetro a nuestro controlador.
  • 167. TRISA = $FF ‘ defino PORTA como entrada TRISB = $00 ‘ defino PORTB como salida while true resu = ADC_read(2) if resu300 then ‘Si el valor del ldr es mayor a 300 PORTB.3=1 ‘Enciendo el led else PORTB.3=0 ‘Y si no, lo apago end if wend end. Adaptación al entorno 165 … RESUMEN Los sensores son uno de los núcleos fundamentales de los robots autónomos. Sin embargo, presentan diversas dificultades, desde la conexión electrónica hasta el procesamiento de la información que nos entregan. En este capítulo hemos visto las características fundamentales de un sensor a la luz que debemos analizar según el objetivo de nuestro robot. En el conjunto de sensores, tenemos los digi-tales, que nos devuelven valores discretos, habitualmente, 1 y 0. Entre estos sen-sores, de fácil procesamiento, podemos encontrar microswitches y sensores de luz. También tenemos sensores analógicos, que devuelven un valor dentro de un rango continuo. Dado que nuestros procesadores trabajan en forma digital, de-bemos pasar este valor de entrada por un conversor analógico digital. Afortuna-damente, varios micros ya proveen en forma interna ese conversor, como el 16F88 que recomendamos en este libro.
  • 168. ✔ ACTIVIDADES TEST DE AUTOEVALUACIÓN 1 ¿Cuáles son las características esen-ciales 166 de los sensores? 2 ¿Qué es un sensor digital? ¿Cómo con-vertimos un sensor analógico en uno digital? 3 Describa los interruptores o micros-witches. 4 ¿Cuáles son los conectores de un mi-croswitch y cómo se conectan? 5 ¿Cuáles son los tipos de sensores in-frarrojos que podemos utilizar según su arquitectura? 6 Describa los sensores de efecto hall. 7 ¿Qué es un sensor analógico? ¿Qué es un conversor A/D? 8 ¿Cómo se utiliza el conversor ADC0804? 9 ¿Cómo funciona el conversor A/D del 16F88? 10 Describir cuatro tipos de sensores analógicos. EJERCICIOS 1 Realizar un programa donde el led se encienda si los dos interruptores están en el mismo estado (los dos presionados o sueltos). 2 Realizar un programa donde el led se en-cienda cada 3 pulsaciones. Es decir, si se pulsa una vez o dos veces no se encien-de. A la tercera pulsación se enciende. Luego se apaga en la cuarta y quinta, y vuelve a encenderse en la sexta. 3 Conecte ocho leds al puerto B del mi-cro y un potenciómetro a una entrada analógica. Realice un programa que encienda los leds según la salida digi-tal del valor del potenciómetro (es de-cir, que los leds representen los 8 bits menos significativos de la salida). 4 Conecte un CNY70 y programe el mi-cro para que el motor 1 se encienda y el 2 se apague si el sensor está sobre una línea negra, y al revés si está so-bre una superficie blanca.
  • 169. Robótica El cuerpo del robot Capítulo 8 Llegó la hora de armar una estructura que permita optimizar el funcionamiento del robot. Para eso buscaremos un equilibrio entre el peso, la funcionalidad, la estabilidad y el tamaño. Analizaremos las arquitecturas posibles y nos detendremos en los mecanismos de locomoción de los robots. Ubicaremos los sensores para captar el ambiente, y dejaremos todo listo para los próximos capítulos. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Cuerpo a cuerpo 168 Características mecánicas de un robot autónomo 169 Robots aéreos 173 Robots subacuáticos 174 Robots terrestres 174 Sistemas con ruedas 179 Estructura de nuestro robot 184 Mecanismos de transmisión y reducción 190 Cinemática de un robot 194 Odometría 196 Resumen 197 Actividades 198 Colaborador: Ing. Néstor Balich
  • 170. CUERPO A CUERPO Nuestra criatura está creciendo. Es inteligente, se mueve (aún en forma torpe), puede detectar el mundo que la rodea. Pero sabemos que no esta-remos a su lado toda la vida, y que-remos preparar a nuestro robot para vencer distintos tipos de dificulta-des: seguir una línea, detectar las lu-ces encendidas y apagadas, jugar al fútbol con sus compañeritos, luchar con ellos ante un problema. El armado incompleto que tiene en este momento es demasiado frágil para afrontar todos estos desafíos. Por eso, necesitamos acomodar to-das sus piezas y darle una arquitec-tura que sea fuerte, robusta y veloz. Pero como siempre, tenemos muchí-simas opciones: ¿ruedas, orugas o patas? Y si son ruedas, ¿diferenciales u omnidireccionales? Y si son patas, ¿dos, cuatro, seis, cien? Como vemos, no es fácil decidir la estructura de nuestro robot, y esta decisión está fuertemente vinculada con su destino final. En nuestro ca-so, haremos un equilibrio entre el costo y la estructura, y tendremos en mente la posibilidad de encarar di-versos desafíos con la misma forma. Pero como ya hemos comentado, el que mucho abarca, poco aprieta. El cuerpo que vamos a desarrollar nos permitirá realizar muchas fun-ciones distintas, pero en ningún ca-so será la mejor estructura posible. Es por eso que presentaremos diver- 8. EL CUERPO DEL ROBOT 168 Figura 1. Dos equipos formados para comenzar un partido de fútbol de siete contra siete.
  • 171. sos aspectos de la construcción de manera tal que más adelante, se pue-da desarrollar el robot que mejor se adapte a la tarea final. Características mecánicas de un robot autónomo Cuando desarrollamos la estructura de un robot, tenemos que tener en cuenta un conjunto de variables que, en muchas ocasiones, se con-traponen. Desde ya, la variable por excelencia, lo que tenemos que tener en mente constantemente, es el ob-jetivo o la misión del robot. En nuestro caso, dado que queremos cumplir diversas pruebas con el mis-mo robot, tenemos que elegir una estructura que nos permita acceder con facilidad a los sensores y cam-biarlos de lugar con sencillez, entre otras cosas. Pero como nuestro ob-jetivo es que luego de leer este libro podamos comenzar a realizar dife-rentes diseños de robots, a conti-nuación presentaremos cuáles son las características que debemos tener en cuenta en el desarrollo. ● Ubicación de las baterías: ya he-mos comentado que éste es un te-ma especial y molesto. Si en nues-tro robot agregamos la electrónica de la carga de la batería, podemos ubicarla en algún lugar inaccesible mientras podamos enchufar el ca-ble de alimentación. Pero si no Cuerpo a cuerpo CÓMO UBICAR LAS PILAS agregamos esto, necesitamos ubi-car las baterías en algún lugar don-de podamos sacarlas y ponerlas sin tener que desarmar todo. ● Ubicación del controlador: tene-mos un problema similar al de las baterías. Si desarrollamos la pro-gramación en circuito (como es nuestro caso), basta con dejar el conector para comunicarnos con el programador. Pero si tenemos el micro en un zócalo, tendremos que poder acceder a él para llevar-lo al programador y regresarlo. ● Tipos de locomoción: otro aspec-to fundamental es el ambiente donde el robot debe desarrollar la actividad. Son tantas las modifica-ciones que debemos tener en cuen-ta, que trataremos este tema en forma detallada más adelante. 169 ❘❘❘ Para poder ubicar las pilas de la forma que más nos convenga, podemos com-prar los portapilas en diferentes confi-guraciones. En general, existen porta-pilas de cuatro pilas, pero podemos conseguir de dos, de seis y de ocho. Una vez que tengamos determinada la configuración que nos será más útil pa-ra nuestro robot, no tenemos que olvi-dar conectarlos entre sí en serie para obtener un negativo y un positivo con el voltaje necesario.
  • 172. ● Equilibrio del robot: cada am-biente en particular añade carac-terísticas específicas a la actividad. Por ejemplo, uno de los problemas habituales son las rampas o los obstáculos. En el caso de las rampas, tenemos que analizar con atención si la potencia de los motores nos permitirá subirlas o bajarlas sin ca-ernos o quedarnos estancados. Y es-to no hay que hacerlo mediante el encendido de los motores y luego colocar al robot al comienzo de la rampa para ver si la sube, dado que si debe sensar para poder subir, el comportamiento de los motores será mucho más complejo y con se-guridad no alcanzaremos la poten-cia necesaria. Al probarlo es necesa-rio tener en cuenta todos los pro-blemas que se encontrará en el tra-yecto de subida. Lo mismo ocurre con los obstáculos. Puede ocurrir que nuestro robot supere uno de ellos cuando lo ponemos directa-mente frente a él, pero si llega in-clinado o mientras analiza los sen-sores, es posible que fracase en su in-tento. Es por eso que el verdadero comportamiento lo vamos a obte-ner en la arena real. Una buena idea es construir un espacio lo más pare-cido posible al que va a tener el ro-bot como ambiente, para poder tes-tearlo en forma robusta. ● Superficie donde se desarrolla la 8. EL CUERPO DEL ROBOT 170 Figura 2. La arquitectura del robot dependerá de su objetivo. Aquí tenemos un robusto luchador de sumo.
  • 173. actividad: el tipo de superficie tam-bién genera problemas con respecto al comportamiento inercial del robot y su adherencia. Tendremos que de-tenernos a analizar cómo son nues-tras ruedas, de qué material están he-chas, si no es mejor utilizar orugas, si son de goma, de metal, etcétera. También en esta oportunidad es más conveniente tener el material real de la superficie, porque el comporta-miento cambia completamente. ¡Y no nos podemos dar el lujo de tener juegos de botines completos! ● Ubicación de los sensores: en el capítulo de los sensores hemos co-mentado algo sobre esto. Según el ti-po de sensor, será necesario ubicarlo Cuerpo a cuerpo 171 Figura 3. La superficie de la cancha determinará el tipo de ruedas a utilizar. ❴❵ TESTEO DEL ROBOT Para poder observar el comportamien-to inercial del robot, es necesario que lo probemos en los siguientes estados: •A toda velocidad hacia delante y hacia atrás, y luego frenar bruscamente. •A toda velocidad hacia delante y hacia atrás, y luego dejar las ruedas sin ali-mentación. •Girar a toda velocidad para un lado y para el otro y luego hacerlo frenar de manera brusca. •Girar a toda velocidad para un lado y para el otro y luego dejar las ruedas sin alimentación.
  • 174. más cerca o más lejos de los objetos que tendrá que detectar. Por ejemplo, si usamos un CNY70 para seguir una línea, prácticamente lo tendremos que pegar al piso. Por otro lado, tam-bién es necesario que la ubicación nos permita aislarlo lo más posible de las interferencias del ambiente. Por ejemplo, los sensores de luz de cual-quier tipo tienen que estar lo más ais-lados posible de la luz ambiente para poder tener uniformidad. ● Ubicación de los motores y de la transmisión: éste es otro proble-ma importante, en especial si nuestro presupuesto no nos ha permitido comprar micromotores o motorreductores. La ubicación de los motores nos complicará el mecanismo de transmisión hasta las ruedas. Además, cualquier mo-vimiento o vibración de los moto-res no contemplado, comenzará a deteriorar el sistema de transmi-sión. Tanto los motores como los ejes donde se asiente la transmi-sión deben estar robustamente an-clados para evitar estos problemas. ● Ubicación del sistema de comu-nicación: si tenemos el placer de añadir un sistema de comunica-ción inalámbrico, tenemos que ubicarlo en algún lugar donde no tengamos interferencias y donde podamos cambiar de canal con fa-cilidad si es necesario (por ejem-plo, en el caso de uso de radio). ● Tamaño y peso: todo lo que hemos descripto también está acotado por estos dos factores, que se presentan como límites habituales en las com-petencias de robots. Tal vez el más sencillo de solucionar es el peso, ya que si modificamos los materiales de la estructura del robot, lo podemos lograr. Pero con respecto al tamaño, mu-chas veces, si no hemos pre-visto con antelación el pro-blema, estamos obligados a desarmar el robot en forma ca-si completa. Figura 4. No siempre nuestro robot es prolijo y ordenado en los primeros intentos. Lo importante es que podamos cambiar su configuración con facilidad. 8. EL CUERPO DEL ROBOT 172
  • 175. Todo lo que hemos descripto se apli-ca a robots terrestres. ¡Imaginemos to-dos los problemas que surgen en los aéreos y submarinos! Como el nivel de complejidad de estos robots supera nuestro humilde libro, comentaremos de forma muy simple algunas cuestio-nes de los robots de este tipo, para lue-go profundizar en los terrestres. Robots aéreos Uno de los problemas fundamentales que podemos encontrar en el desa-rrollo de estos robots es la necesidad de obtener información del ambiente con una frecuencia mucho mayor que en el caso de los robots terrestres. En estos casos, el robot no puede hacer Cuerpo a cuerpo nada y debe quedar en estado de re-poso. Necesariamente tiene que reci-bir información de su movimiento en 3D y adaptar la velocidad de sus mo-tores y posicionamiento de sus alas o rotores en forma constante. En general, utilizan un sistema re-dundante de sensores para su posicio-namiento, de forma tal que ante cual-quier interrupción momentánea de uno o más de ellos, pueda recuperar-se de la pérdida. Por otra parte, con esta redundancia se logra mayor fia-bilidad y precisión en la información. En general utilizan GPS (Global Posi-tioning System, Sistema de Posiciona-miento Global), acelerómetros, girós-copos, telémetros y otros sensores so- Figura 5. Marvin MarkII, un robot aéreo autónomo desarrollado por el Departamento 173 de Ciencias de Computación de la Universidad Técnica de Berlín.
  • 176. fisticados para poder ubicarse en 3D. Los robots aéreos más versátiles son los helicópteros, pero también se han de-sarrollado aviones y zeppelines, que son más estables y fáciles de controlar. Otro problema fundamental es tener información constante en tierra so-bre la batería restante o algún meca-nismo automático de aterrizaje en caso de que nos quedemos sin energía. En los robots terrestres, si nos quedamos sin batería, dejarán de funcionar. En los aéreos, las conse-cuencias son imaginables, ¿no? Robots subacuáticos Los problemas planteados por este tipo de robots son similares a los aéreos. Te-nemos movimiento 3D, pero en este caso, tenemos mayor estabilidad en el medio. Es decir, podemos usar más tiempo para tomar decisiones, dado que a lo sumo nos sumergiremos más o menos cuando no hacemos nada. Aquí las dificultades surgen en los tipos de sensores a usar, dado que el agua es un medio más complejo e inestable. Podemos encontrar partículas suspen-didas que modifican todo tipo de señal. También la comunicación se hace más compleja, con lo cual el riesgo de per-der el robot es más grande (¡no se rom-pe pero se pierde en el mar!). Con respecto a las baterías, el proble-ma es similar al caso aéreo. Para su-mergirse utiliza sistemas de flotabili-dad que, con la entrada o la salida de agua, permiten modificar la profun-didad del robot. Con respecto al mo-vimiento, con motores desplaza el agua que lo circunda. Robots terrestres Dentro del conjunto de robots terres-tres, tenemos diversos tipos de formas de locomoción. Cada una de ellas po-see ventajas y desventajas, y depende del tipo de superficie que recorramos. Vamos a describir genéricamente ca-da una de ellas para detenernos, más adelante, en los sistemas con ruedas, que son los que podremos imple-mentar en nuestro robot. 8. EL CUERPO DEL ROBOT ❘❘❘ La Asociación Internacional de Vehículos Autónomos (AUVSI) organiza competencias de robots aéreos autónomos. En cada una de ellas se plantea una misión sobre un ambiente determinado, como un rescate en el mar o el ingreso a una zona donde se produjo un desastre nuclear para tomar imágenes. El objetivo es volar hasta una zo-na 174 COMPETENCIA INTERNACIONAL DE ROBOTS AÉREOS distante a tres kilómetros del punto de partida e identificar una estructura en particular. Podemos encontrar la información completa en el sitio http://avdil.gtri. gatech.edu/AUVS/IARCLaunchPoint.html.
  • 177. Cuerpo a cuerpo Figura 6. Explorador subacuático realizado por alumnos de una escuela media de Argentina. No es autónomo, pero resuelve todas las dificultades mecánicas de un robot submarino. ❴❵ ROBOT SUBACUÁTICO HECHO POR ALUMNOS DE UNA ESCUELA Ex.Su.Ac. (Explorador SubAcuático) es un robot desarrollado por alumnos de la Es-cuela Técnica No. 3 de Buenos Aires. El robot se realizó con la utilización de pro-ductos prefabricados de PVC y puede sumergirse hasta 15 metros de profundidad. Tiene como objetivo colaborar en la búsqueda de problemas de residuos en tanques y conductos de agua, en el rescate de cuerpos u objetos sumergidos, y en la gene-ración de mapas del suelo subacuático. Podemos encontrar más información en 175 www.oni.escuelas. edu.ar/2005/GCBA/972/.
  • 178. Orugas Los sistemas de oruga unen la rueda trasera con la delantera (Figura 7). Tie-nen como ventaja una mayor adhe-rencia a la superficie y la capacidad de adaptarse a terrenos irregulares. En general son de goma, pero también podemos hallar orugas metálicas que le permiten clavarse en superficies de-masiado pulidas. La desventaja que presentan es la imposibilidad de rea-lizar trayectorias curvas. La única for-ma de rotar es si se giran las orugas de cada lado en sentido opuesto, lo que logra un giro en el lugar, pero el avan-ce sólo puede ser en línea recta. Patas Los robots con patas son el resultado de un enfoque biológico de la arqui-tectura, y van de la mano del sueño de la criatura humana (Figura 8). Tam-bién tienen como ventaja una mayor adaptación a terrenos complejos, pe-ro eso aún no se ha logrado. El siste-ma de equilibrio en estos robots es complicado, y necesitan de una coor-dinación muy precisa de los mecanis-mos de control de los motores. CUBE REVOLUTIONS En general, presentan 3 grados de li-bertad en cada pierna: cadera, rodi-lla y tobillo. En las dos ligas inter-nacionales de fútbol de robots en-contramos categorías de robots con patas, pero aún no juegan verdade-ros partidos, sino pruebas de destre-za. Una forma de aumentar el equi-librio consiste en incrementar el nú-mero de patas. En este sentido, los 8. EL CUERPO DEL ROBOT 176 Figura 7. Robot NR3 con sistema de orugas desarrollado por Francisco Carabaza Piñeiro. ▲ Este proyecto de la Universidad Autóno-ma de Madrid se basa en la construcción de un robot ápodo y modular. El robot está compuesto por 8 módulos idénticos con la misma orientación, y puede adop-tar diversas formas. Logra su locomo-ción por medio de ondas periódicas, por semiondas o al convertirse en una rue-da que rota sobre sí misma. El desarro-llo del robot es completamente abierto y libre, y fue diseñado con herramientas de las mismas características. El control se realiza desde una PC mediante el puerto serial. Podemos encontrarlo en www.iearobotics.com/personal/juan/ doctorado/cube-revolutions/index.html.
  • 179. Cuerpo a cuerpo Figura 8. Nimbro, humanoide participante de la RoboCup 2006, desarrollado por la Universidad de Freiburg. ❴❵ En todas las competencias de fútbol de robots encontramos categorías de jugadores con patas. En el caso de la Robocup, están presentes las categorías Four-legged (cuatro patas), donde cada equipo está formado por cuatro Aibos, y Humanoid (hu-manoide), donde el equipo está compuesto por un arquero y un jugador, ambos con dos patas. En la FIRA, la categoría se llama HuroSot, y los humanoides no juegan partidos, sino que realizan pruebas de destreza. 177 JUGADORES DE FÚTBOL CON PATAS
  • 180. 8. EL CUERPO DEL ROBOT Figura 9. Robot hexápodo desarrollado por un aficionado en Japón, con el uso de ¡dieciocho servos! esquemas tradicionales son bípedos, cuadrúpedos y hexápodos (Figura 9). Los ejemplos más conocidos son Asimo de Honda y Qrio de Sony en el caso de los bípedos, y Aibo de Sony en el caso de cuadrúpedos. Ápodos Los ápodos son robots que no em-plean ruedas, orugas o patas (Figura 10). El modelo a seguir es el de los gusanos o serpientes. Están com-puestos por partes pequeñas, articu-ladas en forma completamente mo-dular. Pueden moverse sobre super-ficies muy diversas y tomar configu-raciones distintas para entrar en lu-gares complicados. La idea es di-señar un módulo básico y crear di- 178 ferentes tipos de robots ápodos al conectar varios de estos módulos. El movimiento en línea recta se lo-gra con un efecto de onda a partir de la cola. Comienza con una contrac-ción inicial que se propaga en cada módulo. En esta arquitectura, lo complejo es la coordinación de los módulos. Además, necesitamos sen-sores en los módulos para poder adaptarlos a distintos terrenos. Otro problema complejo es agregarles grados de libertad a los módulos pa-ra obtener movimientos en superfi-cies y no sólo en línea recta. En ge-neral, se usa al intercalar módulos en diferentes fases (uno hacia arriba y otro hacia el costado).
  • 181. Sistemas con ruedas Los robots con ruedas son los más económicos y sencillos de implemen-tar. De todas formas, hay diversas ar-quitecturas que analizaremos detenida-mente, y pueden tener alta compleji-dad. En ellas, uno de los problemas fundamentales que también trataremos en profundidad son los mecanismos de transmisión desde los motores hasta las ruedas. En general, la estabilidad del robot con ruedas no es problema, al igual que la repartición de la carga del robot. Sin embargo, no se adaptan a cualquier tipo de terreno. Si los desni-veles superan el radio de las ruedas, se hace muy difícil superarlos. Ahora ve-amos cada tipo de arquitectura. Configuración diferencial Ésta es la configuración de ruedas más sencilla, y es la que utilizaremos en nuestro robot (Figura 11). Es econó-mica y la transmisión no es tan com-pleja. Cuerpo a cuerpo Se utilizan dos ruedas, una de cada lado. Además se agrega una rue-da libre o un punto de apoyo en la parte trasera o delantera para mante-ner el equilibrio. Al tener las ruedas alimentadas por dos motores inde-pendientes, es complicado mantener un movimiento rectilíneo sin el uso de sensores internos (encoders vincu-lados a las ruedas) o externos. 179 Figura 10. Robot ápodo desarrollado por la Escuela Politécnica Superior de la Universidad Autónoma de Madrid. ▲ RECICLADO Éstos son algunos sitios interesantes don-de se explica cómo reciclar componentes de aparatos en desuso. Muchos de ellos serán útiles para nuestros robots: •Reciclaje y proyectos electrónicos: http://heli.xbot.es/wp/. •Proyecto EconoBot (un robot de costo cero): http://mundobot.com/blog/. •Disquetera convertida en robot: www.sorgonet.com/trashing
  • 182. Cuando el motor que alimenta la rue-da da las vueltas necesarias para com-pletar una vuelta de esta última, no necesariamente ha girado su circunfe-rencia por problemas de rozamiento. De este modo, la única forma de ve-rificar que ambas ruedas giran sincro-nizadas es sensar el comportamiento interno o externo del robot. Otra dificultad es la navegación ha-cia un punto determinado. Es un desafío complejo e interesante hacer que un robot llegue lo más rápido posible a su destino. Una forma sen-cilla es rotar hasta apuntar al objeti-vo final, y luego navegar en forma recta, corrigiendo de tanto en tanto el recorrido. Ésta es una navegación muy lenta para los ambientes diná-micos, como el del fútbol (Figura 12). Es por eso que más adelante hare-mos un estudio detenido de la nave-gación en estos casos, y veremos al-gunas alternativas a la navegación con trayectos curvos. Configuración síncrona En este caso, el robot tiene tres rue-das alimentadas por un mismo motor (Figura 13). Gracias a esto, avanza en línea recta en forma precisa. Para po-der girar, incorpora un segundo mo-tor, que también afecta a las tres rue-das, para rotarlas en su eje. De esta 8. EL CUERPO DEL ROBOT 180 Figura 11. Robot diferencial con una rueda libre, desarrollado por Garnet Hertz. Es la base de un robot que luego se controló ¡con una cucaracha!
  • 183. forma, puede avanzar en línea recta hacia cualquier punto, pero no puede trazar curvas. Al funcionar de esta manera, el frente del robot siempre estaría para el mismo lado. Es posible que esto no sea un problema, pero si necesitamos apuntar su frente en dis-tintas direcciones, tenemos que agre-gar un mecanismo que permita rotar el chasis en la dirección de las ruedas. Otra arquitectura de la configuración síncrona sólo permite dos posiciones de las tres ruedas. En una de ellas, el robot avanza en línea recta, y en la otra posición, las ruedas se acomodan de tal manera que el robot gira sobre su eje. De esta manera, evitamos el Cuerpo a cuerpo problema del frente del chasis, pero la navegación es más lenta. Figura 13. Un robot de configuración síncrona hecho con Lego. Se puede observar el engranaje que alimenta el giro de la rueda y el que alimenta la rotación del soporte de ésta. 181 Figura 12. Robot Chebot, jugador de fútbol con tracción diferencial desarrollado en la Universidad de Buenos Aires, Argentina.
  • 184. Triciclo En este caso tenemos dos ruedas ali-mentadas por un motor para darle tracción al robot, y una tercera rueda en la parte anterior o posterior del ro-bot, sin tracción, pero con giro sobre su eje, que le permite darle dirección al dispositivo (Figura 14). Tiene buena estabilidad y su mecánica es sencilla. Puede ir recto en forma precisa gra-cias a que las ruedas de tracción están alimentadas por un único motor. El problema que se presenta es que el movimiento curvo es complejo, dado que el radio de las curvas que puede realizar es muy grande. No puede gi-rar sobre sí mismo ni hacer curvas ce-rradas. Esto, para los robots que se mueven en ambientes pequeños, pue-de ser un problema insalvable. Ackerman Esta arquitectura es la que encontra-mos en los automóviles convencionales (Figura 15). Tenemos dos ruedas trase-ras con tracción y dos ruedas delante-ras que definen dirección. Tiene la mis-ma filosofía que el triciclo, pero agrega mayor estabilidad. La desventaja es que necesitamos desarrollar el sincronismo entre las dos ruedas delanteras, pero no es complicado. También se mueve en línea recta con absoluta precisión y tie-ne dificultades para realizar las curvas. Otra diferencia con el triciclo es que las ruedas traseras utilizan un mecanismo llamado diferencial que asegura que, a pesar de que la alimentación de ambas ruedas se realice con el mismo motor, una rueda pueda girar menos que la otra cuando sea necesario. Ruedas omnidireccionales Como podemos ver en la Figura 16, las ruedas ominidireccionales pre-sentan una estructura muy peculiar. Se comportan como una rueda con-vencional pero no ofrecen resisten-cia para su desplazamiento lateral. 8. EL CUERPO DEL ROBOT 182 Figura 14. Esquema de un robot con arquitectura de triciclo.
  • 185. Por lo tanto, con tres ruedas ubica-das como se observa en la Figura 17, y con determinada velocidad en ca-da rueda, podemos lograr que el ro-bot se dirija hacia cualquier punto o que gire sobre su eje. Cuerpo a cuerpo 183 Figura 15. Arquitectura de un robot con control de ruedas Ackerman. Figura 16. Rueda omnidireccional. Los rodillos permiten que la rueda se desplace en forma lateral con mínimo rozamiento. ▲ EAGLE KNIGHTS En el Instituto Tecnológico Autónomo de México, el laboratorio de robótica ha desarro-llado un equipo de fútbol de robots para competir en la categoría F-180 de la RoboCup. El equipo está conformado por cinco robots omnidireccionales que están controlados por un sistema central de inteligencia artificial. Este sistema central realiza el procesamiento de imágenes de las cámaras ubicadas sobre el terreno de juego, define las estrategias y los comportamientos de los robots, y les envía las instrucciones por radio. Podemos en-contrar el proyecto completo en http://robotica.itam.mx/espanol/.
  • 186. El algoritmo necesario para calcular la velocidad de cada rueda para dirigir-se con un ángulo determinado es sen-cillo y consume mínimo tiempo de procesamiento. Las desventajas son que no es sencillo moverse en línea recta en forma precisa, y que es algo compleja la arquitectura del robot con respecto a la ubicación de los mo-tores y las ruedas. ¡Pero es un buen de-safío para afrontar más adelante! Es muy interesante ver cómo se mueven los robots con estas ruedas. Estructura de nuestro robot Antes de continuar con otros con-ceptos teóricos relacionados con los movimientos, desarrollaremos el cha-sis y la arquitectura de nuestro robot. Una vez que lo tengamos armado y podamos comenzar a probarlo, estu-diaremos algunos conceptos físicos y matemáticos para lograr una navega-ción eficiente. Especificaciones El diseño que propondremos en este libro tiene como objetivo cumplir con las especificaciones del Campeonato Argentino de Fútbol de Robots, de manera tal que podamos utilizarlo pa-ra participar en la competencia. Está diseñado para la categoría Junior, aun-que el tamaño también cumple con las especificaciones de la categoría Senior. Los chasis presentados (Figura 18) son 8. EL CUERPO DEL ROBOT 184 Figura 17. Arquitectura de un robot con tres ruedas omnidireccionales.
  • 187. a modo de sugerencia, y dependen del uso que se le quiera dar al robot. Para poder calificar en cualquiera de las ca-tegorías del CAFR, el robot tiene que entrar en un cilindro de 18 cm de diá-metro por 15 cm de alto. No hay restricciones en cuanto a la cantidad de ruedas, motores y ba-terías, siempre y cuando el robot se adecue a las limitaciones del regla-mento. Las principales limitaciones son que quepa dentro del cilindro mencionado y que no lastime o per-judique intencionalmente a un robot contrario (¡Fairplay!). Para mayor de-talle del reglamento, podemos visitar la página del CAFR (www.cafr. com.ar), donde están las reglas origi-nales de la RoboCup y la adaptación para nuestro campeonato local. Tracción diferencial A la hora de elegir el tipo de transmi-sión, la más fácil de implementar y con grandes ventajas es la tracción diferen-cial. Para lograrla, ubicaremos dos mo-tores en el centro del robot conectados en forma directa a sus ruedas. De esta manera, podremos controlar la direc-ción del robot mediante el giro de los dos motores, de la siguiente manera: Cuerpo a cuerpo 185 Figura 18. Ejemplo de chasis propuesto. El parche en la parte superior permite reconocer al robot en un sistema de visión. ❘❘❘ CAETI El CAETI (Centro de Altos Estudios en Tec-nología Informática) es el centro de inves-tigación de la UAI (Universidad Abierta In-teramericana), donde los autores de este libro desarrollamos y probamos todo lo que contamos en estas páginas. La rama de investigación en la que participamos es la de robótica autónoma, y hemos forma-do el GIRA, Grupo de Investigación en Robótica Autónoma. Uno de los campos de trabajo es el fútbol de robots y cada año organizamos, junto con otras universida-des e instituciones educativas, el Campe-onato Argentino de Fútbol de Robots. Nuestro centro está abierto para todos los estudiantes e investigadores que quieran trabajar dentro de este campo. Para más información se puede consultar la página web: http://caeti.uai.edu.ar/.
  • 188. ● Uno detenido y el otro que gire: giro sobre radio exterior. ● Uno que gire en un sentido y otro en el sentido opuesto: giro sobre su centro. ● Los dos que giren en el mismo sen-tido pero uno a menor velocidad: giro sobre un arco. ● Los dos motores que giren a la mis-ma velocidad: avance o retroceso en línea recta. Como ya comentamos, esta opción es teóricamente posible, pero en su ejecución siempre nos encontramos con diversos proble-mas, como la diferencia de veloci-dad entre los motores, los roza-mientos desparejos, etcétera. Nece-sitaremos de mecanismos de sensa-do del mundo o de las ruedas, de manera tal que podamos corregir los errores que se producen. Chasis troquelado Este chasis está realizado en aglomera-do de 2 milímetros, inspirado en las fi-guras de cartón que venían troqueladas para armar. La plancha de aglomerado de ese espesor se puede cortar con un cúter, pero nos puede dar algo de tra-bajo. Si usamos una caladora de made-ra, podremos lograr nuestro objetivo con más facilidad. Al finalizar la secuencia de armado, podremos pegar las piezas o encastrar-las. De elegir la primera opción, po-demos dejar de lado algunas piezas cu-ya finalidad es darle rigidez estructu-ral, como es el caso del soporte supe-rior. En la Figura 19 podemos ver el conjunto total de 14 piezas, el con-trolador, la batería, los motores y las dos ruedas (que utilizan unos bujes, que pueden ser reemplazados según las ruedas y los motores que utilice-mos). Como vemos, en este caso hici-mos el robot con una batería de 12 V porque no teníamos portapilas para 8 pilas de 1,5 V, pero nuestra sugeren-cia es que conviene usar 8 ó 12 pilas como comentamos en el capítulo de las baterías, así aprovechamos las pilas AA recargables convencionales. Estructura de soporte En primer lugar, cortaremos los so-portes laterales que tienen por función principal el montaje de los motores. No olvidemos que el robot no debe superar los 15 cm de altura y 18 cm de diámetro. Los laterales son simé-tricos en espejo entre sí, y lo pode-mos observar en las ranuras en don-de se encajan las otras piezas (Figura 20). A continuación, procederemos a cortar la pieza circular, que es la pla-taforma central donde se colocará la placa controladora. Por último, la pieza rectangular es un soporte que tiene por función darle rigidez al con-junto. La última pieza que cortare-mos es el soporte para la batería. Allí montaremos la rueda de estabiliza-ción, que también es de madera, co-mo podemos ver en la Figura 21. 8. EL CUERPO DEL ROBOT 186
  • 189. Cuerpo a cuerpo 187 Figura 19. Conjunto total con las 14 piezas que componen nuestro robot. Figura 20. Soportes principales de la estructura de nuestro robot. Figura 21. Soporte de las baterías y rueda de estabilización.
  • 190. 8. EL CUERPO DEL ROBOT El montaje Para poder realizar el montaje de nuestro robot, debemos llevar a cabo los pasos que veremos a continuación. ■ Realizar el montaje PASO A PASO En primer lugar, debe montar el motor en los soportes laterales. Monte la plataforma central con el primer soporte. Monte el segundo soporte en la plataforma y la pieza superior para dar-les rigidez a los soportes laterales. 188
  • 191. Cuerpo a cuerpo Monte el soporte para las baterías. En este caso, los portapilas de pilas AA. Ubique el controlador en la parte superior del robot, o en el lugar que quede disponible si agregó otros componentes. Así queda el robot terminado. 189
  • 192. Mecanismos de transmisión y reducción Muchas veces, los motores no se en-cuentran directamente vinculados con las ruedas o el mecanismo que se quiere mover. También tenemos ca-sos en los que queremos alimentar, con un mismo motor, a un conjun-to de ruedas, como en la configura-ción síncrona. Entonces, tenemos que desarrollar algún mecanismo de transmisión del movimiento del mo-tor. Además, muchas veces el motor no tiene el torque (fuerza de rota-ción) o la velocidad que deseamos. Para ello, utilizamos mecanismos de reducción. Ambos están muy rela-cionados. Presentaremos cada meca-nismo y comentaremos cómo fun-ciona la transmisión y la reducción en cada caso. Engranajes Los engranajes son ruedas dentadas que empalman en forma directa una con otra. Los dientes se enganchan 8. EL CUERPO DEL ROBOT Podemos ver que el armado de la es-tructura es sencillo, y cada uno lo puede hacer a su medida. Si quere-mos variar de configuración, es reco-mendable utilizar piezas como las de Lego, Rasti o Mecano, junto con al-gunos soportes de aglomerado para los motores. Lo ideal es armar una pieza para cada motor que luego sea fácilmente vinculable con los ladri-llos o las piezas del juego. Las plata-formas para las baterías o el contro-lador son mucho más sencillas de re-alizar con las piezas. Figura 22. Robot listo para jugar un partido en la categoría Junior del CAFR. ❴❵ Cuando trabajamos con software, estamos acostumbrados a diseñar nuestros progra-mas 190 IMPRESORAS 3D con libertad, y podemos cambiar cualquier bit sin problemas. Pero en cuestión de hardware, de lo que tenemos en mente hasta obtener el objeto físico hay un largo tre-cho. Sin embargo, ya se han inventado las impresoras 3D, que nos permiten crear, en diversos materiales, las piezas que necesitemos para nuestro robot. Por lo tanto, casi no quedan barreras para poder llevar cumplir nuestros sueños. ¡Sólo tenemos que de-jar volar nuestra imaginación, contar con estas maravillas y ponernos a trabajar! Po-demos ver un modelo de estas impresoras en www.zcorp.com.
  • 193. entre sí, y el giro del engranaje de entrada (conectado al motor) se transmite al engranaje de salida (co-nectado a la rueda). Cada uno de ellos transmite su sentido e invierte el sentido del engranaje asociado. La transmisión es muy fiable, dado que si la conexión es correcta, no se pro-duce ningún tipo de falla en la trans-misión de los giros. Uno de sus defectos es que el alcan-ce de la transmisión es corto, y es ne-cesario introducir engranajes inter-medios (conocidos como engrana-jes solidarios) para alcanzar mayo-res distancias (Figura 27). Además de ser usados para este fin, con los engranajes también pode-mos hacer reducciones. Un engra-naje pequeño de entrada contra un engranaje más grande en la salida, aumenta la potencia y reduce la ve-locidad. Por ejemplo, si la entrada es Cuerpo a cuerpo de 8 dientes y la salida de 32, ante un giro de la entrada, sólo tendre-mos un giro de 1/4 de vuelta en la salida. Por lo tanto, las revoluciones de la rueda con respecto a las del motor disminuyen. Sin embargo, al tener el punto de apoyo más cerca del centro en el caso del engranaje pequeño, y más lejos en el que tiene conectado, aumenta el torque en la misma proporción. Por lo tanto, si queremos calcular cómo se comportan el torque y la ve-locidad en la transmisión entre dos engranajes, debemos realizar ecua-ciones, pero primero veamos lo que significa cada sigla. RR: Revoluciones de la rueda. RM: Revoluciones del motor. DEE: Dientes de engranaje de entrada. DES: Dientes de engranaje de salida. TM: Torque del motor. TR: Torque de la rueda. 191 Figura 23. Un ejemplo típico de reducción
  • 194. La primera ecuación sería: RR = RM * DEE / DES. Si seguimos nuestro ejemplo de un engranaje de 8 dientes en la entrada y 32 dientes en la salida, ¿cuántas RPM (revoluciones por minuto) tendrá la rueda si el motor es de 20 RPM? RR = 20 * 8 / 32 = 5 RPM En el caso del torque la ecuación es: TR = TM / DEE * DES En nuestro ejemplo, si nuestro motor tiene 2 kgf, entonces, ¿qué torque tendremos en las ruedas? FR=2 / 8 * 32 = 8 kgf Podemos encontrar diversos tipos de engranajes, que nos permitirán realizar distintos tipos de conexiones según nuestras necesidades. Los engranajes solidarios son los tradicionales, que comparten un plano pero que tienen ejes distintos, como vemos en la Figura 23. Los engranajes cónicos permiten cambiar la dirección de la rotación y modificar así el plano de ésta. Podemos ver un ejemplo en la Figura 24. Los sinfín o gusanos permiten realizar una caja de reducción que aumenta poderosamente la fuerza y disminuye notoriamente la velocidad. Podemos ver un ejemplo de caja de reducción en la Figura 25. Los engranajes de piñón y cremallera permiten transformar un movimien-to circular en traslación, como vemos en la Figura 26. Por último, también contamos con engranajes antitrabas, que si la transmisión supera determi-nada cantidad de fuerza, comienzan a girar en falso y ponen a salvo al mo-tor que genera dicha fuerza. 8. EL CUERPO DEL ROBOT 192 Figura 24. En esta imagen podemos observar un ejemplo de engranajes cónicos que fueron desarrollados por la empresa Arrow Gear.
  • 195. Cuando usamos engranajes solida-rios, el sentido de rotación del de sa-lida es inverso al de entrada. Si queremos mantener el mismo sentido, tenemos que incorporar en el medio engranajes libres, de mane-ra tal que los que tienen la misma paridad (es decir, los pares por un la-do y los impares por otro) manten-gan el mismo sentido de rotación, como podemos ver en la Figura 27. El tamaño de la rueda también pue-de Cuerpo a cuerpo considerarse en el cálculo de la ve-locidad y la fuerza. Es decir, cuando tenemos ruedas más grandes, obtene-mos mayor velocidad, pero disminui-mos la fuerza, y viceversa. Transmisión por poleas Si necesitamos realizar la transmi-sión a una distancia mayor, utiliza-mos poleas unidas por correas o elás-ticos, como podemos ver en la Figu-ra 28 de la próxima página. 193 Figura 25. Aquí podemos ver una caja reductora hecha con engranajes de Lego. Figura 26. Engranajes de piñón y cremallera desarrollados por la empresa Gaes. Figura 27. Sentido de rotación de cada engranaje en un conjunto de engranajes solidarios.
  • 196. En este caso, la polea de entrada tie-ne el mismo sentido de rotación que la polea de salida, salvo que cruce-mos la correa como se puede ver en la Figura 29. También tenemos un cál-culo de reducción relacionado con la proporción entre las poleas conecta-das. La diferencia fundamental es que durante la transmisión, puede haber pérdida de movimiento por deslizamiento de las correas o pole-as, lo que no ocurre en los engrana-jes excepto que éstos se rompan. Si necesitamos combinar las venta-jas de ambos mecanismos, es decir, si queremos transmitir a larga dis-tancia pero sin tener deslizamientos, entonces tenemos que utilizar cade-nas con piñones, como las que po-demos encontrar en las bicicletas. Cinemática de un robot Cuando comenzamos a estudiar el comportamiento de los movimien-tos de nuestro robot, nos damos cuenta de que tenemos que tener en cuenta un conjunto muy amplio de variables, propias y externas de nuestro dispositivo. Al estudio de todos estos aspectos en nuestra cria-tura se lo conoce como dinámica del robot. Como es un campo com-plejo para encarar en este primer pa-so, vamos a estudiar el movimiento del robot sin considerar las fuerzas involucradas (inercia, pesos, roza-mientos), sólo tomaremos el com-portamiento de las ruedas, con ad-herencia perfecta. A este campo se lo conoce como cinemática del robot. Ahora bien, podemos encarar dos ti-pos de estudios. Uno de ellos es, si 8. EL CUERPO DEL ROBOT 194 Figura 28. Transmisión por poleas. Cuanto más gruesa es la correa de transmisión, nos aseguramos menor probabilidad de deslizamiento.
  • 197. sabemos la posición inicial del robot y los movimientos que realiza, de-terminar la posición final. A esto se lo llama cinemática directa. Cuando queremos saber qué movi-mientos hacer para llevar al robot de una posición inicial a una posición final, estudiamos la cinemática in-versa. Éste es el campo que a noso-tros más nos interesa, porque con el robot queremos llegar a un punto determinado del espacio y realizar la mejor trayectoria posible desde nuestro punto inicial. Cada una de las arquitecturas que presentamos tiene una cinemática distinta, que establece ciertas res-tricciones en el movimiento. Antes de analizar las restricciones y estudiar los mecanismos de navega-ción, Cuerpo a cuerpo debemos aclarar que en los ro-bots móviles, tenemos tres grados de libertad: posición en el plano (X e Y) y rotación (ver Figura 30). En el caso de los robots diferencia-les, los de configuración síncrona y los de ruedas omnidireccionales, las restricciones cinemáticas son ho-lonómicas, lo que significa que los diferentes grados de libertad son in-dependientes. En este caso, posición es independiente de rotación. En el caso de la arquitectura triciclo y Ackerman, decimos que la restric-ción no es holonómica. Necesaria-mente, para girar afectamos la posi-ción (X,Y) del robot. En cada uno de ellos el estudio de la cinemática presenta características distintas. 195 Figura 29. En esta imagen podemos observar cómo funciona la inversión del sentido de rotación de la polea de salida.
  • 198. Odometría Ahora bien, ¿cómo podemos saber la posición de nuestro robot en todo momento? Como comentamos an-tes, una de las formas es analizar el contexto que rodea al robot cons-tantemente. El problema es que no siempre contamos con información externa y, por otra parte, esto nos exige tomar datos en forma cons-tante con sensores que pueden nece-sitar una tasa de procesamiento muy alta. Es por eso que la odometría es el mecanismo más utilizado para de-terminar en forma aproximada la posición del robot. Consiste en in-corporar encoders situados en las ruedas de los robots, de la misma manera que los antiguos mouses de-tectaban el giro de la bolita inferior (Figura 31). Como ya mencionamos, esto es sencillo de realizar con sen-sores de ranura y un disco acanala-do que permita el conteo de los cor-tes de señal, o que posibilite el cál-culo de rotación por los sensores que se encuentran activados. Esto resul-ta económico, pero sin información externa, y se produce una acumula-ción de errores que nos puede llevar a datos inexactos. Por ejemplo, si la rueda resbala sobre el piso, el enco-der detectará el giro y supuestamen-te un avance lineal, cuando en reali-dad no se produjo. Los tipos de errores que podemos encontrar en la odometría son sis-temáticos, cuando son intrínsecos al mecanismo de toma de datos, co-mo pueden ser problemas en la tasa de muestreo, mal alineamiento de 8. EL CUERPO DEL ROBOT 196 (X,Y) Figura 30. Grados de libertad que tenemos en un robot terrestre móvil.
  • 199. las ruedas, etcétera. Y no sistemáti-cos, cuando están vinculados a he-chos casuales como los comentados: una rueda que patina, fuerzas exter-nas que retienen o levantan al robot, suelos desnivelados, etcétera. A pesar de todo, por su bajo costo y su facilidad de cálculo, es uno de los métodos más utilizados. Lo que reco-mendamos es sumar alguna toma de información más que permita reducir los errores de este proceso. Cuerpo a cuerpo Figura 31. Rueda con encoder para desarrollar algoritmos de odometría. 197 … RESUMEN La arquitectura de nuestro robot definirá un conjunto de variables relacionadas con su navegación. La decisión del tipo de mecanismo utilizado para el movi-miento deberá estar basada en la superficie en la que se desplazará. Desde ya, los aéreos y los acuáticos son los más complejos de resolver, pero el movimien-to en tierra también presenta un conjunto de desafíos. Podemos utilizar patas, orugas, ruedas, o construir un robot similar al funcionamiento de un gusano. En nuestro primer robot, utilizamos un sistema de ruedas diferencial, ya que es el más sencillo de implementar y el de menor costo. Esto nos obligará a detener-nos a estudiar la cinemática inversa de nuestro robot, para obtener la navegación más precisa posible. Pero cuando hayamos superado las primeras pruebas, po-dremos intentar con otros sistemas de ruedas como las síncronas o las omnidi-reccionales. En todos los casos, tendremos que resolver el problema de la trans-misión del giro de los motores hacia las ruedas, con engranajes o poleas. Y si es posible, agregarles encoders a las ruedas para que nos permitan obtener infor-mación sobre los movimientos de nuestro robot.
  • 200. ✔ ACTIVIDADES TEST DE AUTOEVALUACIÓN 1 ¿Cuáles son las características que hay que tener en cuenta para el diseño del cuerpo del robot? 2 ¿Cuáles son los problemas más impor-tantes 198 en el diseño de los robots aéreos? 3 ¿Cuáles son los problemas más impor-tantes en el diseño de los subacuáticos? 4 ¿Cuáles son los mecanismos de despla-zamiento de los robots terrestres? 5 ¿Cómo se componen los robots ápodos y cómo generan el movimiento? 6 Describa los sensores de efecto hall. 7 ¿Cómo es la configuración diferencial de las ruedas? 8 ¿Qué diferencias y similitudes tienen la arquitectura de triciclo y la Ackerman? 9 ¿Cómo funcionan las ruedas omnidi-reccionales? 10 ¿Cuál fue el sistema de desplazamien-to que elegimos para nuestro robot y por qué? EJERCICIOS 1 Construya el cuerpo del robot y prográ-melo para que funcione en línea recta. ¿Qué diferencias tuvo que determinar en los pulsos de cada motor para igua-lar la velocidad? 2 Realice un programa para que el robot gire sobre sí mismo. 3 Incorpore un sensor de tacto en la par-te delantera (puede usar un micro-switch con una palanca grande), pro-grame el robot para que cada vez que detecte un objeto retroceda, gire y se dirija a otro lado. 4 Incorpore un sensor de luz en la parte inferior delantera del robot, realice un programa para que se mueva sobre una mesa blanca (o con un papel blanco) y si se está por caer (es decir, el sensor deja de recibir señal), frene, retroceda y se dirija a otro lado. 5 Describa el comportamiento de los engranajes para la transmisión y la reducción. 6 Compare las ventajas y desventajas en-tre el uso de engranajes y poleas.
  • 201. Robótica Salir al ruedo Capítulo 9 Ya tenemos nuestro robot armado. Ahora nos toca probar cómo se comporta en las pruebas de robótica autónoma móvil. Para ello presentaremos un conjunto de desafíos, veremos los problemas que tendremos que resolver y propondremos un código para programar nuestro robot. ¡Pero el ambiente no será siempre igual! Por lo tanto, hay que experimentar una y otra vez hasta encontrarles la solución a los problemas. Y luego, modificar nuestro robot para mejorar los resultados. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Presentarse a competir 200 Características comunes de las pruebas de robots autónomos 200 Pruebas tradicionales para robots autónomos 210 ¡La luz, la luz, he visto la luz! 213 Resumen 219 Actividades 220
  • 202. PRESENTARSE A COMPETIR Ahí está, ¿no es bonito? Toda una ma-ravilla, independiente, solícito y muy inteligente. Nuestro robot está listo para comenzar a representarnos en el mundo. Ahora tiene que salir al rue-do, porque allí es donde se ven los buenos caballos. Pero eso es pan co-mido. Le colocamos dos sensores de luz, lo ponemos sobre una línea negra para que la siga y… ¡Se va a cualquier lado! Lo ubicamos sobre una mesa y al llegar al final no detecta el borde y cae con sus trágicas consecuencias. Le ponemos una linterna adelante para que la siga y nada, da vueltas deses-perado sin hallar la luz que lo guíe. Evidentemente, hemos subestimado la dificultad de las pruebas y nos fal-ta entrenamiento, horas y horas de entrenamiento para hacer de nuestro robot un buen contrincante. En este capítulo presentaremos las pruebas clásicas para robots autóno-mos móviles y nos detendremos a analizarlas para ver dónde se encuen-tran las dificultades. También vere-mos algunos aspectos de navegación para que el movimiento de nuestro robot sea lo más fluido posible y nos adentraremos un poco en el fútbol de robots, que es el tema de nuestro pró-ximo capítulo. Si hemos tenido la pa-ciencia de llegar hasta este capítulo, lo que nos espera ¡es apasionante! Características comunes de las pruebas de robots autónomos Cada prueba de robótica presenta cuestiones particulares que debemos resolver, pero en general hay un con-junto de principios básicos comunes. Antes de encarar cada una de ellas, presentaremos cuáles son los puntos que tenemos que tener presentes tan- 9. SALIR AL RUEDO 200 Figura 1. Robot seguidor de líneas.
  • 203. to en el hardware como en el softwa-re de nuestro robot. Problemas mecánicos Es posible que éstos sean los proble-mas más habituales y más difíciles de superar. Es fundamental e imprescin-dible crear un espacio de pruebas lo más parecido posible al lugar donde se ejecutará la competencia. Lamen-tablemente, es habitual que no tenga-mos la descripción completa del te-rreno, sino una aproximación con co-tas de mínima y máxima en diferen-tes aspectos. Dada esta información, para poder completar la misión en el ambiente más exigente, testeamos to-do con las cotas más duras. Esto trae aparejado que nuestro robot sea más lento o impreciso en otros aspectos. Por ejemplo, si tenemos que subir una rampa de un ángulo de inclinación importante, las orugas brindan buena tracción. El problema es que su capa-cidad Presentarse a competir de giro es muy limitada, y la velocidad es lenta. Por lo tanto, si al llegar a probar nuestro robot en el es-cenario real nos encontramos con una rampa de menor inclinación, es posible que un sistema diferencial nos permita subirla sin las otras difi-cultades. En resumen, debemos te-ner la capacidad de cambiar entre dos o tres sistemas de tracción en el momento de la competencia. Otra dificultad es el tipo se superficie donde nos movemos y la presencia de escombros u objetos que estorben nuestro recorrido. Para ello, contar con diferentes sistemas de tracción también puede ser una solución. Si los objetos son fijos, deberemos añadir sistemas de sensado para poder esquivarlos. Otro aspecto complicado es la distri-bución de los pesos en el robot. Esto influye en el comportamiento de los 201 Figura 2. Seguimiento de línea con obstáculos.
  • 204. giros, en cómo se ubican los sensores ante los objetos a detectar, etcétera. Los pesos más significativos están da-dos por las baterías y los motores. Co-mo los motores no se pueden reubi-car con facilidad, sería bueno que contemos con abrojos en el robot donde podamos pegar las baterías de diversas formas para la distribución del peso. Si usamos pilas, es bueno te-nerlas en portapilas separados, de dos pilas cada uno, de manera tal que po-damos reubicarlos con mayor liber-tad. Una anécdota con respecto a es-te punto: en el Primer Campeonato Latinoamericano de Robótica IEEE, utilizamos un sensor casero muy pe-sado, hecho de madera y escobillas de autitos de carrera, que hacía que el ro-bot volcara hacia delante. Esto per-turbaba el giro del robot. Muchas ve-ces quedaba trabado sobre imperfec-ciones del piso y arruinaba nuestro desempeño. Como no teníamos peso para agregarle (sólo podíamos utilizar fichas del kit de Lego), le pusimos un controlador adicional (el RCX de Le-go) con seis pilas en la parte posterior, y así logramos el equilibrio necesario. Cuando obtuvimos el primer pues-to, nos felicitaron por la compleji-dad del robot que utilizaba dos con-troladores que se comunicaban en-tre sí. Nuestra honestidad (¡y la alegría del primer puesto!), nos llevó a aclarar que el segundo controlador estaba apagado y que su única fun-ción era de servir de contrapeso, con lo cual las risas colmaron el salón. Para cada uno de los sistemas de tracción que construyamos, tendre-mos que analizar en forma detallada la forma en que nuestro robot reali-zará los giros. Esto también va a in- 9. SALIR AL RUEDO 202 Figura 3. Sensor casero que utilizamos en el Primer Campeonato Argentino de Robótica IEEE. ¡Qué pesado que era!
  • 205. fluir en la ubicación de los sensores y en la programación. Por lo tanto, también tendremos que poder reu-bicar los sensores con facilidad. Problemas de sensores Con respecto a los sensores, también se nos presenta un conjunto de pro-blemas diversos. Así como la super-ficie de la competencia puede variar llegado el juego, con seguridad las luces ambiente, los colores, la capa-cidad reflectiva, etcétera, las podre-mos definir recién en ese momento. Incluso ¡pueden variar en el trans-curso de la competencia! Por lo tan-to, debemos tener algún mecanismo que nos permita testear los valores y modificar nuestro programa para que se comporte en forma correcta. Ahora, ¿cómo hacemos para saber si el sensor se activa o no, o cuál es el rango analógico en el que se debe ac-tivar? Con el control que hemos re-alizado, pareciera que no tenemos forma alguna de monitorear los va-lores de lectura. Pero vamos a ver al-gunos trucos que nos pueden ayudar. La primera forma de monitorear un sensor digital es usar el led que hemos conectado para nuestras pruebas. Por ejemplo, con el siguiente programa podemos verificar si el sensor CNY70 detecta la variación entre negro y blanco. Consideramos, como vimos en el Capítulo 7, que hemos conectado el led infrarrojo en RA1 y el sensor Presentarse a competir ROBOLIGA propiamente dicho en RA2. Por lo tanto, tendremos que configurar RA1 como bit de salida, y RA2 como bit de entrada. Un detalle fundamental a tener en cuenta es que la resistencia que va del sensor a +5 puede ser mo-dificada para obtener mayor o menor sensibilidad en la detección. program testCNY TRISB=0 ‘Declaro RB de salida TRISA.1=0 ‘RA1 (donde está el led infrarrojo) de salida PORTA.1=1 ‘Lo enciendo TRISA.2=1 ‘Declaro RA2 de entrada while true 203 ❘❘❘ La Roboliga consiste en tres eventos que se realizan en el mes de noviembre en Argentina: la Olimpíada Argentina de Robótica, la Feria de Proyectos de Robó-tica y Control Automatizado, y el Encuen-tro Docente para la Enseñanza de Robó-tica. Está dirigido a los alumnos de es-cuelas primarias y medias, se organiza desde el año 2000 y se cuenta con la pre-sencia de más de 40 escuelas de todo el país. Para tener más información pode-mos visitar www.roboliga.edu.ar.
  • 206. if PORTA.2 = 1 then ‘Si RA2 está encendido, apago el led PORTB.3=0 else PORTB.3=1 ‘Si no, lo enciendo end if delay_ms(200) wend end. También podemos utilizar un parlan-te piezoeléctrico para generar diversos sonidos que nos permitan conocer el valor de un sensor (Figura 4). Éstos se pueden conectar directamente, una de sus conexiones a GND y la otra a un pin. Para generar sonido desde mikro- Basic podemos utilizar las siguientes funciones de librería: ● Sound_Init(dim byref port as byte, dim pin as byte): inicializa el pin para salida. Por ejemplo: Sound_ Init (PORTB, 2). En este caso, se en-carga de inicializar RB2. ● Sound_Play(dim periodo_div_10 as byte, dim num_de_periodos as word): el primer parámetro indica la fre-cuencia, y para simplificar su defini-ción, sólo debemos dividir la fre-cuencia que queramos por 1 y mul-tiplicar el resultado por 100000 pa-ra obtener el valor final. El segundo parámetro indica la cantidad de ci-clos de duración del sonido. De esta forma, podemos vincular el valor de un sensor analógico con di-ferentes sonidos, y así monitorear el comportamiento de los sensores. Por último, lo más interesante puede ser conectar un display a nuestro mi-cro (Figura 5). El problema es que pa-ra controlarlo utilizamos casi todos los puertos de salida. Será necesario utilizar un micro aparte para tener es- 9. SALIR AL RUEDO ❘❘❘ El Consejo Latinoamericano de Robótica (LARC) tiene como objetivo organizar, con la colaboración de organismos locales, competencias y simposios de robótica lati-noamericanos 204 CONSEJO LATINOAMERICANO DE ROBÓTICA IEEE – RAS a nivel regional y nacional de manera anual. El consejo promueve la programación de estos eventos, define las bases para las competencias, e interactúa con los voluntarios locales que luego desarrollan estas actividades por sí mismos. Este consejo trabaja principalmente en Internet, y está apoyado por la sociedad de robótica y automatización RAS que pertenece a la IEEE mediante los capítulos pro-fesionales y estudiantiles de la región. Para más datos podemos visitar www.ewh. ieee.org/reg/9/ robotica/indexsp.htm.
  • 207. te tipo de salida, si así lo deseamos. Escapa al alcance de este libro, pero se puede encontrar mucha información vinculada a este tema en Internet. Problemas de programación Uno de los problemas más comunes cuando sensamos el mundo que nos rodea con nuestro robot, es la nece-sidad de estar atentos a dos o más sensores al mismo tiempo. Por ejem-plo, si realizamos un seguidor de lí-nea con un par de sensores y además tenemos un sensor de tacto en caso de que encontremos un objeto de-lante de nosotros, las estructuras de decisiones se vuelven complejas o Presentarse a competir Figura 4. Buzzer piezoeléctrico para analizar valores de sensores analógicos. 205 Figura 5. Capacímetro digital basado en un 16F84 con display de LCD, desarrollado por Sonytel Argentina.
  • 208. imposibles para representar la com-binación de todos los estados posi-bles de las entradas. Es por eso que a continuación presentaremos un me-canismo muy utilizado en los proce-sadores: las interrupciones. La idea de una interrupción es po-der vincular algún proceso interno del micro, como el estado de un pin de entrada o el valor de un timer, con un procedimiento de nuestro programa. Es decir, ante un cambio en el estado del pin o ante el des-bordamiento de un timer, se ejecuta el procedimiento indicado. Por ejemplo, de esta manera podemos asociar nuestro sensor principal a un bit con interrupción, de forma tal que cuando se active, se invoque en forma automática al procedimiento asociado, se atienda la necesidad que presenta el sensor, y luego volvamos a nuestra rutina habitual. En el caso del seguidor de línea con obstáculos, el programa principal ejecuta el se-guimiento y al bit de interrupción le asociamos nuestro sensor de tacto. Por lo tanto, si encuentra un obstá-culo, se detiene el seguimiento de la línea, se esquiva el objeto, y al vol-ver sobre la línea se continúa con el programa principal. Las interrupciones pueden produ-cirse por alguna acción externa, co-mo la activación de un sensor, o por una interna, como el caso de un ti-mer o desbordamiento de un regis-tro. En el 16F84/8 tenemos cuatro fuentes de interrupciones: ● RB0/INT (externa). ● Pines RB4 a RB7, al cambiar de estado si están configurados como entrada (externa). ● Desbordamiento del registro TMR0, cuando pasa de 255 a 0 (interna). ● Al completar la escritura de la EE-PROM (interna). En nuestro caso, las tres primeras son las que podremos aprovechar en nuestro robot. Cuando se producen, se modifica el estado de un flag de interrupciones, lo que nos permite saber cuál se ha producido. Este flag es el registro INTCON, donde el bit que cambia es el siguiente: 9. SALIR AL RUEDO ❘❘❘ Es la competencia de robótica más gran-de 206 ROBOGAMES del mundo. En su edición de 2007 se presentaron setenta categorías distin-tas, desde el simple seguidor de líneas hasta combates cuerpo a cuerpo entre robots. Algunas de ellas son con robots controlados por humanos y en otros ca-sos, el desafío es autónomo. Ese año es-tuvieron representados veintiocho paí-ses de todos los continentes, y para el año que viene se esperan alrededor de veinte países más.
  • 209. ● Bit 1, INTF, cuando se produce una interrupción por RB0. ● Bit 0, RBIF, cuando se produce por cambio en RB4 a RB7. ● Bit 2, T0IF, cuando se produce por TMR0. Para tener una mirada general del re-gistro INTCON y su funcionalidad, podemos observar la Tabla 1. Los bits 3 a 7 nos permiten determi-nar si se atenderá la interrupción co-rrespondiente o no (0: deshabilitado; 1: habilitado). En el caso de GIE, si está en 0 se deshabilitan todas las in-terrupciones. Los bits del 0 al 2 se en-cienden en el caso de que se produz-ca la interrupción en cada caso. Cuando se produce una interrupción y el programa salta a la rutina que la atiende, como veremos más adelante, podemos examinar los bits del 0 al 2 para saber la fuente que la ha causado. El GIE se pondrá automáticamente en 0 para no atender otra interrupción al Presentarse a competir mismo tiempo. Al finalizar nuestra ru-tina de atención, debemos volver a po-ner en 0 el flag correspondiente (0 a 2) para que no se vuelva a producir la lla-mada. El retorno de la rutina nos ha-bilitará de nuevo GIE para una nueva llamada. Sólo el contador de programa será almacenado en el momento de lla-mar a la rutina, para luego saber dón-de retornar, con lo cual es problema nuestro almacenar el estado de otros re-gistros que puedan llegar a modificarse en la ejecución de nuestra rutina. A continuación presentamos un ejemplo general de código para la atención de las interrupciones por cambio de estado en RB4 a RB7. De esta manera, podemos tener senso-res conectados a uno de estos 4 pi-nes, de forma tal que el programa general se ejecute, y cuando se pro-duzca la activación de alguno de los sensores, la rutina de la interrupción atienda la llamada y luego retorne al punto en el que se encontraba. No. NOMBRE DESCRIPCIÓN 7 GIE Global Interrupt Enable (Habilitación general de interrupciones). 6 EEIE EEPROM Write Interrupt Enable (Habilitación de interrupción por escritura de la EEPROM). 5 T0IE TMR0 Interrupt Enable (Habilitación de interrupción del timer TMR0). 4 INTE INT Interrupt Enable (Habilitación de interrupción de RB0/INT). 3 RBIE RBIF Interrupt Enable (Habilitación de interrupción por cambio en RB4 al RB7). 2 TOIF TMR0 Overflow Interrupt Flag (Bandera de interrupción por desbordamiento de TMR0). 1 INTF INT Interrupt Flag (Bandera de interrupción de RB0/INT). 0 RBIF RB Port Interrupt Flag (Bandera de interrupción por cambio en RB4 al RB7). 207 Tabla 1. Funcionalidad del registro INTCON.
  • 210. program interrupcionRB dim antRB as byte sub procedure interrupt ‘Rutina de atención de interrupciones if (INTCON.RBIF = 1) then ‘Cambio en RB4-RB7 select case (antRB xor PORTB) ‘Se fija cuál cambió comparando con el estado anterior de PORTB case %10000000 ‘Cambió RB7 if ((PORTB and %10000000) = 0) then ‘RB7 desactivado ‘Código a ejecu tarse cuando se desactiva RB7 else ‘RB7 activado ‘Código a ejecutarse cuando se activa RB7 end if case %01000000 ‘Cambió RB6 if ((PORTB and %01000000) = 0) then ‘RB6 desactivado ‘Código a ejecutarse cuando se desactiva RB6 else ‘RB6 activado ‘Código a ejecutarse cuando se activa RB6 9. SALIR AL RUEDO 208 Figura 6. Subir una rampa mientras se sigue una línea, cambia el comportamiento del robot.
  • 211. end if case %00100000 ‘Cambió RB5 if ((PORTB and %00100000) = 0) then ‘RB5 desactivado ‘Código a ejecutarse cuando se desactiva RB5 else ‘RB5 activado ‘Código a ejecutarse cuando se activa RB5 end if case %00010000 ‘Cambió RB4 if ((PORTB and %00010000) = 0) then ‘RB4 desactivado ‘Código a ejecutar se cuando se desactiva RB4 else ‘RB4 activado ‘Código a ejecutarse cuando se activa RB4 end if end select antRB = PORTB ‘Almaceno el estado actual de PORTB para compararlo luego INTCON.RBIF = 0 ‘Reseteo el flag de la interrupción end if end sub main: TRISB = %11110001 ‘RB 0 entrada, 1-3 salidas, 4-7 entradas INTCON = %10001000 ‘ Habilito interrupciones en general y las de RB4 a 7 PORTB = 0 ‘ Valor inicial de PORTB Presentarse a competir ✱ LAS INTERRUPCIONES Las interrupciones son un mecanismo habitual en las computadoras para que los dispositivos le avisen al CPU que deben ser atendidos. De esta manera, el procesa-dor no tiene que estar atento a las necesidades de éstos, y simplemente procesa la información entrante en el momento en que se lo solicitan. En el momento en que atiende una interrupción, almacena el estado del procesamiento en ese instante, y luego de atenderla, continúa exactamente en el punto en el que había dejado el pro-ceso. Cuando no existía este mecanismo, el CPU debía dedicar mucho tiempo para verificar si era necesaria esa atención. Al pasar la responsabilidad a los dispositi-vos, 209 el rendimiento del CPU es mucho mayor.
  • 212. antRB = 0 ‘ Valor inicial de estado previo de PORTB while(true) { ‘Mientras no se produzca una interrupción el programa se ejecuta en un loop infinito ‘Aquí va el código que atiende a la tarea principal } end. Con este ejemplo general, práctica-mente puede aplicarse el uso de in-terrupciones en todos los casos en los que sea necesario. Pruebas tradicionales para robots autónomos A continuación presentaremos un conjunto de pruebas clásicas para los robots autónomos móviles, junto con algunos consejos desde el punto de vista mecánico, electrónico y de la programación. Para construir las pis-tas de prueba, aconsejamos utilizar lona vinílica blanca y realizar los cir-cuitos con pintura negra especial pa-ra esta superficie. Puede ser costoso pero es más sencillo de transportar que la madera u otros materiales. En el peor de los casos, unas buenas im-presiones en láser empalmadas con cinta transparente pueden ser sufi-cientes. Lo importante es que los co-lores sean muy distinguibles, y que no haya ondulaciones o muescas en la pista que traben el funcionamien-to de nuestro robot. Seguidor de línea Ésta es la primera prueba por exce-lencia. En principio, comenzaremos por utilizar un solo sensor de luz que apunte hacia abajo para recorrer la pista. Al momento de construir la mecánica de nuestro robot, debe-mos tener en cuenta que debe girar con facilidad. Esto es fundamental cuando las curvas son muy cerradas. Por lo tanto, la arquitectura más 9. SALIR AL RUEDO 210 Figura 7. Robot seguidor de una línea muy delgada. ¡Eso es complicado!
  • 213. económica y confiable para este de-safío es la de las ruedas laterales con movimiento diferencial. Si se cuenta con un único sensor, la solución más sencilla es la que co-nocemos como ciego con bastón, dado que aplica la misma mecánica que los no videntes cuando tantean paredes o el piso con su bastón blan-co. Ponemos el robot a la derecha de la línea, con el sensor que apunte a blanco, encendemos el motor dere-cho (MD), y dejamos apagado el iz-quierdo (MI). Cuando el sensor de-tecta negro, invertimos el encendido de los motores, dejamos apagado el MD y encendido el MI. Allí esperamos hasta encontrar blan-co y así sucesivamente. Es un meca-nismo sencillo, efectivo, pero muy lento (Figura 8). Para mejorar la velo-cidad Presentarse a competir de recorrido con un único sen-sor, si la línea negra a seguir es del-gada, podemos realizar el siguiente algoritmo: 1) Ponemos el robot con el sensor a la derecha de la línea negra. 2) Encendemos el MD y apagamos el MI. 3) Esperamos a ver negro con el sensor. 4) Esperamos a ver blanco con el sensor. 5) Encendemos el MI y apagamos el MD. 6) Esperamos a ver negro con el sensor. 7) Esperamos a ver blanco con el sensor. 8) Saltamos al paso 2. De esta manera, mejoramos la veloci-dad de recorrido, pero es más sensible a las curvas cerradas (Figura 9). 211 Figura 8. Método de seguimiento de líneas versión 1. Figura 9. Método de seguimiento de líneas versión 2.
  • 214. Si podemos contar con dos sensores, las mejoras pueden ser considerables. En este caso, ubicamos un sensor del lado izquierdo de la línea y otro del la-do derecho, ambos sobre blanco. En el programa principal, sólo tenemos un ciclo infinito con los dos motores prendidos. Además, conectamos los sensores a alguno de los pines de RB4 a RB7, para atenderlos mediante una interrupción. Cuando uno de los dos vea negro, ésta se lanzará. Analizamos cuál de los dos cambió de estado, y de-finimos los estados de los motores de manera tal que el robot gire para el la-do correspondiente hasta que el sensor vuelva a ver blanco. Allí retornamos de la interrupción y se vuelven a encender ambos sensores. Este mecanismo es muy efectivo, y podemos mejorarlo con más sensores, y usar algunos sobre negro y otros sobre blanco. ROBOCUP JUNIOR Si la línea posee espacios en blanco (gaps), nos conviene utilizar un me-canismo de un solo sensor. Además, debemos activar el timer 0 y esta-blecer que si durante determinado período no se ve negro con alguno de los dos sensores, el robot debe avanzar en línea recta hasta encon-trar negro nuevamente (Figura 11). Otra prueba típica es el seguimiento de una línea con obstáculos. En este caso, podemos sumar un sensor de to-que en el frente del robot, también conectado a una de las entradas que activan interrupciones. De esta ma-nera, ante la detección del objeto, de-tenemos el seguimiento de la línea, es-quivamos el obstáculo y, al volver so-bre la línea negra, retomamos la ruti-na. Una precaución a tomar es que 9. SALIR AL RUEDO Figura 10. Sensores en un robot seguidor de línea creado por David Cook. 212 ❘❘❘ La RoboCup Junior es una división de la RoboCup dedicada a estimular el estudio de la robótica en los jóvenes de hasta 19 años, y organiza las competencias para estas edades dentro de la RoboCup. Los desafíos presentados son tres: fútbol, rescate y danza. Está enfocado en la educación y no en la competencia. Los robots que participan deben ser autóno-mos y deben cumplir con límites de pe-so, tamaño, etcétera. Su sitio oficial es www.robocupjunior.org.
  • 215. cuando volvamos sobre la línea, el ro-bot quede en una posición adecuada para continuar con el seguimiento. ¡La luz, la luz, he visto la luz! Otro desafío típico está relacionado con la búsqueda o el seguimiento de una fuente de luz. El problema más sencillo es posicionar el robot en un lugar y que gire hasta encontrar una luz que hemos ubicado cerca de él. Para ello, es necesario utilizar un sen-sor analógico que nos permita detec-tar los diferentes grados de luminosi-dad que tenemos en el ambiente (y por lo tanto, el 16F88 por su con-versor). El robot debe tomar el valor del sensor en la posición en la que se encuentra y girar lentamente en al-guno Presentarse a competir de los dos sentidos. Si aumen-ta el valor de luz hacia ese lado, man-tiene su giro. Si no, intenta para el otro lado. En el momento en que al girar para ambos lados disminuya el valor de luz, es que hemos encontra-do la fuente de luminosidad. Otra prueba algo más compleja es se-guir una luz originada por una linter-na o por alguna pelota que emita una señal infrarroja, como las que se utili-zan en fútbol de robots junior. Para ello es útil que usemos dos sensores analógicos conectados a pines de este tipo. Si el valor de lectura de ambos sensores supera cierto umbral, consi-deramos que la fuente de luz está fren-te al robot y nos dirigimos hacia de-lante. Si la diferencia entre el valor de 213 Figura 11. Seguimiento de línea con detección de víctimas y saltos en las marcas (Roboliga).
  • 216. 9. SALIR AL RUEDO uno y otro sensor es grande, giramos hacia el lado donde se recibe el mayor valor. Si no hay una diferencia impor-tante y no están ambos iluminados, consideramos que la luz está detrás y giramos en cualquiera de los dos sen-tidos. Podríamos seguir con muchas pruebas de este tipo, como realizar 214 un robot insecto que busque el lugar con mejor luz de la sala, otro que no se caiga de una mesa, etcétera. ¡Todo queda librado a nuestra imaginación! Como hemos visto, a medida que nuestras pruebas se vuelven más complejas, es necesario un micro más poderoso, como el 16F88. Figura 12. Competencia de rescate de la Roboliga, Olimpíada Argentina de Robótica. ✱ BEAM ROBOTICS (ROBOTS BEAM) BEAM es el acrónimo de Biology, Electronics, Aesthetics and Mechanics (Biología, Electrónica, Estética y Mecánica). Es un término que se refiere a la construcción de robots que usan circuitos análogos en vez de digitales, que tienen un diseño simple y que imitan a los organismos de la naturaleza. Los circuitos analógicos imitan a los bloques biológicos como las neuronas. Las tres reglas principales son: usar el me-nor número de elementos electrónicos (y sencillos); reciclar y reutilizar componen-tes; y usar sistemas de energía radiante, como la energía solar. Dentro de los di-versos diseños realizados, es un clásico el Phototrope (fotótropo), un pequeño ro-bot que busca la luz dentro de un ambiente o escapa de ésta.
  • 217. Luchador de sumo Una de las competencias que más apasionan a los participantes, y que no exige demasiada capacidad de procesamiento por parte del robot, es la lucha de sumo. Hay diferentes re-glamentos en el mundo del sumo robótico. Es interesante conocer el reglamento del Campeonato Uru-guay o de Sumo de Robots, organi-zado por el Instituto de Computa-ción de la Facultad de Ingeniería de la Universidad de la República de Uruguay. Éste se basa en el Torneo de sumo de robots FSI-ALL de Japón. Este campeonato es muy interesante, y en el sitio (www.fing.edu.uy/inco/ eventos/sumo.uy/index.html) po-demos bajar un simulador y templa-tes en diferentes lenguajes para po-der jugar en nuestra computadora. Luego, si deseamos participar de la competencia, podemos llevar nues-tro propio robot, o utilizar uno pro-visto por los organizadores, que tie-ne Presentarse a competir Figura 13. Competencia de Sumo de la Universidad Tecnológica Nacional de Bahía Blanca, Argentina. las mismas características que el utilizado en el simulador. La arena de competencia se llama Dohyo. Es un cilindro de 5 cm de altura y 154 cm de diámetro de un color distinto al blanco y al marrón (en general, negro). Las líneas de inicio, donde se ubican los robots en el comienzo de la lucha, se indican por líneas marrones de 2 cm por 20 cm, a 20 cm del centro del Doyho. ❘❘❘ CAMPEONATO DE SUMO ROBÓTICO DE URUGUAY Desde el año 2004, el Instituto de Computación de la Facultad de Ingeniería de la Uni-versidad de la República de Uruguay organiza el campeonato de sumo robótico. El ob-jetivo de esta competencia es crear un espacio para investigar diversos aspectos de la robótica móvil autónoma. Las características particulares que presenta esta prueba son: un ambiente muy dinámico, comportamiento en tiempo real, y reglas sencillas y precisas. Una ventaja que tiene este campeonato es que no necesitamos de un robot para participar, dado que está provisto por la organización. Antes de la competencia, podemos programar el comportamiento de nuestro representante mediante un simu-lador 215 y luego, en el momento de luchar, volcamos esa estrategia a un robot real.
  • 218. El borde de la arena es de 5 cm de color blanco. Fuera del Doyho, el piso será de cualquier color excepto blanco o marrón. Cada categoría en particular determinará un límite pa-ra el tamaño y el peso del robot. Una partida consta de tres sets de un minuto cada uno. El primer partici-pante en ganar dos puntos yuko (ya ve-remos qué son) es el ganador de la par-tida. Cuando ningún participante reci-be puntos, el jurado decide quién es el ganador. Para comenzar el partido, los robots se ubican sobre las líneas de ini-cio o detrás de éstas, para lo cual dis-ponen de dos minutos. El robot no puede realizar ningún movimiento an-tes de recibir la señal de comienzo. Los puntos yuko se consiguen por me-dio de alguna de las siguientes accio-nes: cuando un robot saca a su opo-nente del Doyho, cuando el oponente sale del Doyho por sus propios medios o cuando un robot es descalificado o recibe dos advertencias o más. Un set se puede cancelar y repetir si los robots se encuentran trabados de forma tal que no exista movimiento posible, a criterio del jurado. Si ambos robots tocan el exterior del Doyho al mismo tiempo o ante cual-quier otra condición en la que el ju-rado no pueda definir un ganador, el set se reinicia, se ubican los robots en la línea de inicio, y se cuenta con dos minutos para hacerlo desde la indicación del árbitro. 9. SALIR AL RUEDO 216 Figura 14. Competencia tradicional de sumo en la Roboliga.
  • 219. En resumen, éstas son las reglas bási-cas de juego. Como vemos, las reglas no son complejas y esencialmente es un desafío mecánico y electrónico, con algoritmos sencillos para el con-trol del robot. Los problemas que de-bemos resolver son tres: cómo detec-tar la línea límite del Doyho para no salir de ella (y que esa detección sea en toda la circunferencia del robot), cómo detectar la distancia al con-trincante para poder abalanzarnos so-bre él y cómo detectarlo cuando lo tocamos para ir hacia él o huir de él, según convenga. No agregamos el te-ma del posicionamiento dentro del Doyho porque es muy complejo de realizar con la información tan pobre que nos brinda la arena. En realidad, sólo es absolutamente necesario re-solver el primer problema para so-brevivir en la lucha. En el caso de la detección del oponente, si no desea-mos hacerlo, podemos recorrer en forma aleatoria el Doyho de un lado a otro para ver si logramos cruzar al otro robot en algún momento. Presentarse a competir Desde el punto de vista mecánico, en general, si un robot tiene mucha fuerza, con seguridad será lento, co-mo vimos en los capítulos anteriores. Por lo tanto, recorrer toda la arena será complicado. Es mejor tener un sistema de detección del contrincan-te para ir hacia donde se encuentra. Para ello, es bueno y no es complica-do implementar el uso de un sensor de ultrasonido. Sólo con detectar la presencia (es decir, hacer un uso di-gital del sensor) nos alcanza para po-ner en movimiento el robot hacia el oponente. Con respecto a la detec-ción de los límites del Doyho, alcan-za con un sensor de luz de los que he-mos usado. Tenemos que tener en cuenta que podemos encontrarnos con el límite no sólo si vamos hacia delante, dado que el contrincante puede empujarnos. Por eso sugeri-mos usar varios sensores que recorran el borde del robot. También necesita-remos sensores de tacto que rodeen a nuestro representante, de forma tal que al ser presionados por uno de los ❘❘❘ El grupo de robótica del Departamento de Ingeniería Eléctrica de la Universidad Tecnoló-gica Nacional de Bahía Blanca, Argentina, todos los años organiza un campeonato de su-mo de robots. Se presentan tres categorías, entre las que se destaca la categoría libre. El Doyho en este caso es de 1,75 m y los robots deben poder entrar en una caja de 20 cm por 20 cm. Además, no pueden superar los 3 kg de peso. El procesamiento se debe realizar por un microcontrolador de 4 Kb máximo y no se permite el uso de microprocesadores. Para mayor información podemos visitar www.frbb.utn.edu.ar/robotica/. 217 COMPETENCIA DE SUMO DE ROBOTS EN ARGENTINA
  • 220. costados, huyamos o empujemos con más fuerza según la estrategia que ha-yamos desarrollado. Un tema fundamental en la presta-ción mecánica de nuestro luchador es la potencia de los motores. Según los límites que presente la categoría, nos va a convenir utilizar los moto-res más potentes posibles, junto con un buen sistema de reducción. Para ello tendremos que contar con ba-terías poderosas, y por lo tanto, pe-sadas. Lógicamente, todo dependerá de cuáles sean los pesos y los ta-maños que nos impongan las reglas del juego. Pero no dudemos en in-vertir en ello si queremos triunfar. Otras pruebas clásicas A continuación describiremos otras pruebas clásicas de robots móviles autónomos, que podremos profun-dizar si buscamos en la Web. En es-te listado, dejamos el fútbol de ro-bots para el capítulo siguiente. Tiralatas: en una arena rectangular o circular. Se ubica un conjunto de la-tas con cierto peso que el robot debe sacar en el menor tiempo posible. Laberinto: el robot debe encontrar la salida del laberinto en el menor tiem-po posible. En general, la salida está indicada con una luz, de manera tal que el robot pueda intentar realizar el camino más corto hacia ésta. Carrera de postas: un conjunto de robots debe comunicarse entre sí pa-ra completar un recorrido definido por una línea negra. Rescate: este tema incluye infinidad de pruebas (Figura 15). Esencialmente, se basa en dos de-safíos: detectar o rescatar un con- 9. SALIR AL RUEDO 218 Figura 15. Competencia de rescate del Campeonato Latinoamericano de Robótica IEEE.
  • 221. junto de víctimas en una zona de de-sastre, o rescatar víveres y medicinas que han caído en una zona conta- Presentarse a competir minada para llevarlos a una zona li-berada. Además, estas pruebas pue-den ser solitarias o colaborativas. 219 Figura 16. Pista de la competencia de rescate de la RoboCup Junior. … RESUMEN Ha llegado la hora de sacar nuestro robot al ruedo. Todas las pruebas son dife-rentes, pero hay un conjunto de características o de problemas habituales. Estos problemas pueden ser de índole mecánica, como el tipo de arquitectura elegido para nuestro robot o su punto de equilibrio. También tendremos problemas con los sensores, dado que el ambiente en el que se desarrollan los desafíos habi-tualmente difiere del que utilizamos para preparar a nuestros robots. Es por eso que tenemos que utilizar mecanismos robustos que puedan trabajar sobre valo-res relativos del ambiente y no con valores absolutos. Por otra parte, la ubica-ción de los sensores debe aislar al máximo las perturbaciones del entorno. Con respecto a la programación, presentamos el uso de interrupciones, que nos per-mitirán estar atentos a más de un sensor en nuestro programa. De las pruebas clásicas, el seguimiento de la línea, la búsqueda o el seguimiento de luz, y el su-mo de robots, son las que nos permitirán poner en juego toda la capacidad y las características de nuestro robot.
  • 222. ✔ ACTIVIDADES TEST DE AUTOEVALUACIÓN 1 ¿Cuáles son los problemas mecánicos 220 que puede presentar un robot en una competencia? 2 ¿Qué mecanismos tenemos para lo-grar que nuestro robot sea menos sensible a los cambios del ambiente en el que compite? 3 ¿De qué manera podemos visualizar el comportamiento de los sensores? ¿Cuál se usaría en un sensor digital y cuál en uno analógico? 4 ¿Para qué sirven las interrupciones? 5 ¿Cuáles son los tipos de interrupciones que podemos encontrar en un 16F84/88? 6 ¿Qué función cumple el registro INT-CON? 7 Describa los algoritmos tradicionales de seguimiento de línea. 8 ¿Cuáles son los problemas que debe-mos afrontar en un robot luchador de sumo? EJERCICIOS 1 Modifique el robot y prográmelo para que siga una línea negra con el método del ciego con bastón. Probar con dife-rentes grados en las curvas. 2 Realice un robot con dos sensores pa-ra realizar el seguimiento de la línea lo más rápido posible. Compare los tiempos con los logrados en el ejerci-cio anterior. 3 Ponga un obstáculo sobre la pista del punto anterior y realice un robot que pueda esquivarlo. El obstáculo debe ser algo pesado, como una caja con una piedra dentro. 4 Realice un robot que siga la luz de una linterna. 5 Realice un robot que recorra una mesa sin caerse de ella. 6 Realice un robot con un sensor de ul-trasonido que, ante la cercanía de un objeto, cambie de dirección.
  • 223. Robótica Jugar al fútbol Capítulo 10 El fútbol de robots es una actividad donde se presentan todos los problemas de la robótica situada, en un marco divertido, mediático y de reglas conocidas a nivel internacional. Es por eso que hemos decidido cerrar nuestro libro con este capítulo, al presentar las reglas y las características del desafío, para invitarlos a sumarse a la investigación dentro de esta maravillosa rama de la robótica. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Fútbol de robots 222 Características del fútbol de robots 222 Ligas nacionales e internacionales de fútbol de robots 232 Modificaciones para que nuestro robot pueda jugar 242 Una pelota infrarroja 244 Resumen 245 Actividades 246
  • 224. FÚTBOL DE ROBOTS Para el año 2050, desarrollar un equipo de robots humanoides com-pletamente autónomos, que en un partido de fútbol puedan vencer al equipo campeón mundial humano. Éste es el lema de la organización RoboCup, una de las dos ligas mun-diales de fútbol de robots. Puede pa-recer un lema de ciencia ficción, pe-ro puede dejar de serlo si realizamos el siguiente cálculo. En el momento en el que se lee este libro, ¿cuánto falta para el año 2050? ¿Cuarenta y tres, cuarenta y dos años? Bien. Aho-ra restemos del año actual la canti-dad de años que faltan para el 2050. ¿Cómo eran las computadoras en esa época? ¿No era de ciencia ficción pensar en lo que tenemos hoy en día, los robots que se han desarrollado, Internet, las notebooks, los celula-res, etcétera? Entonces, si vemos las cosas desde este punto de vista, tal vez pensar en un equipo de fútbol de robots que jueguen un buen partido de fútbol no es locura. Por lo tanto, no perdamos el tiem-po, empecemos desde ahora a pre-parar a nuestro pequeño. Enseñé-mosle los rudimentos de este depor-te para que comience con sus prác-ticas de tiro libre, de penales, de amagues y fintas. Quién nos quita la ilusión de que en un futuro no muy lejano, lo acompañemos por todo el mundo en sus viajes con la Selección Mundial de Fútbol de Robots. Características del fútbol de robots Dentro del campo de la robótica autónoma móvil, en los últimos años ha surgido una disciplina co-nocida como robótica situada. Su objeto de estudio es el desarrollo de robots autónomos móviles en am- 10. JUGAR AL FÚTBOL 222 Figura 1. Podemos imaginar un equipo de robots que enfrenten a un equipo humano en el año 2050. Hagamos apuestas.
  • 225. bientes muy dinámicos. Ejemplos de esto son los vehículos terrestres, aéreos y acuáticos, los robots enfer-meros y todos aquellos que tengan que desenvolverse en un mundo que cambia segundo a segundo. El fútbol de robots es el deporte que presenta los problemas más impor-tantes que podemos encontrar en la robótica situada y aunque existen diversas categorías donde estos pro-blemas pueden ser más o menos sig-nificativos, de alguna manera u otra, están presentes en todas. Para hacer una analogía con respec-to al fútbol convencional, podemos decir que para jugar bien necesita-mos las siguientes virtudes: ● Un buen estado físico: llegar an-tes a la pelota, patear fuerte y po-der ir de un punto a otro de la can-cha en forma veloz, nos permitirá tener un control del juego mucho más efectivo. ● Una lectura precisa y veloz del juego: es una característica funda-mental que el jugador se anticipe a la jugada. Por ejemplo, que vaya al encuentro de la pelota donde la pueda ganar y también quede me-jor parado para el gol. O que pue-da saber dónde conviene estar pa-rado para recibir un pase. ● Juego colectivo: el equipo no pue-de comportarse como un conjunto de niños que corre detrás de la pe-lota. Fútbol de robots OTROS DEPORTES Debemos tener un rol que cumplir, que ese rol sea dinámico y que el conjunto de roles deter-mine el comportamiento del equi-po optimizado para nuestro objeti-vo final: el gol en el arco contrario. Éstos son los tres problemas que te-nemos en el fútbol de robots, y en general en la robótica situada: la ar-quitectura de los robots, el sensado y el procesamiento de la informa-ción del ambiente y el comporta-miento colaborativo. A continua-ción presentaremos cuáles son las di-ficultades en cada uno de ellos y cuá-les son las soluciones propuestas. 223 ❘❘❘ No sólo de fútbol viven los robots. Ya se están desarrollando nuevas criaturas para otros deportes u otras competen-cias como el sumo, que ya hemos men-cionado, el basquetbol y la lucha libre, entre otros. En este último caso, hay muchos tipos de torneos pero ¡cuidado! En general, las luchas que pasan por la televisión no son de robots autónomos, sino que están controlados por un ser humano. En este caso, se enfrentan problemas mecánicos y electrónicos, pero se carece de sistemas de inteli-gencia y sensado del mundo dado que esa función la cumple la persona que controla al robot. Por lo tanto, eso no es robótica situada.
  • 226. Arquitectura y navegación de los robots Como hemos visto antes, con fre-cuencia en las competencias tene-mos un límite vinculado al peso y el tamaño de los robots. En el fútbol ocurre lo mismo. Por lo tanto, nues-tro objetivo es lograr el robot más robusto y más rápido en el pequeño espacio que nos brindan. Lamenta-blemente, en el caso de la electróni-ca y los motores, más pequeño sig-nifica más costoso, y es aquí que nuestro bolsillo será otro límite que deberemos contemplar. Con respecto a los robots para fútbol, la arquitectura clásica consiste en: pa-tas (para ciertas categorías específicas), omnidireccional y diferencial. En el caso de los robots con navegación om-nidireccional (Figura 2), las ventajas son conocidas, pero incorporar tres moto-res en el espacio que tenemos, más uno de un pateador si fuera necesario, es complejo y el valor de los motores y las ruedas puede ser costoso. En general, para comenzar utilizare-mos navegación diferencial (Figura 3), como la que tenemos en nuestro ro-bot. Por lo tanto, tenemos que anali-zar cómo realizamos la navegación con ruedas diferenciales. Esta navega-ción dependerá de la información que podemos extraer del ambiente. En el caso de los robots más sencillos, pro- 10. JUGAR AL FÚTBOL 224 Figura 2. Un jugador de fútbol del equipo alemán FU-Fighters con ruedas omnidireccionales.
  • 227. bablemente nuestro funcionamiento será menos proyectado y calculado, más primitivo. Cuando tenemos más información del ambiente, como la posición X e Y de la pelota, y X, Y y la rotación de nuestros robots, pode-mos realizar un cálculo de navegación más preciso. En este punto tenemos dos situaciones que estudiar: la nave-gación hacia un punto fijo y hacia un punto móvil (como puede ser la pe-lota). La diferencia sustancial en los dos casos es que en el caso del punto móvil, si es posible, debemos realizar una proyección del comportamiento del punto en el futuro para navegar hacia esa proyección, de la misma for-ma que cuando nos lanzan un centro en el fútbol real corremos hacia don-de caerá la pelota, y no detrás de ella. De esta manera, el sistema de nave-gación para los dos casos será el mis-mo, sólo que en el punto móvil nues-tro destino final será un punto calcu-lado a partir del historial del punto y no del estado actual. Desde ya que es-te mecanismo sirve para los objetos móviles con comportamiento relati-vamente lineal, como es el caso de la pelota. En el caso de los robots con-trarios, no tiene demasiado sentido dado que es imposible predecir el fu-turo de su comportamiento. Un algoritmo de navegación trivial es girar hasta ver el punto de desti-no (siempre con un umbral de error porque si no la misma inercia de Fútbol de robots PROYECCIÓN DE LA PELOTA movimiento nos hará pasar de largo en el giro y nos quedaremos oscilan-do para corregir el error), y luego del giro, avanzar hacia el punto. Al te-ner definido un umbral de error, cuando avancemos hacia el destino, llegará un momento en el que su-peraremos ese umbral, y por lo tan-to, el robot volverá a girar para co-rregir su desvío, y así sucesivamen-te. También tendremos que deter-minar un umbral de distancia don-de consideraremos que hemos llega-do al punto para no oscilar yendo y viniendo hacia el punto de destino. 225 ❘❘❘ Está claro que en el fútbol es fundamen-tal llegar a la pelota lo antes posible. Pa-ra ello, es necesario ir hacia el punto de cruce con ella que más nos convenga. Es decir, proyectar el comportamiento de la pelota a futuro para determinar cuál es el mejor momento de cruzarla. La line-alidad en el movimiento de la pelota ha-ce sencillo esto, si no fuera por la pre-sencia de las paredes, nuestros robots y los contrarios. Con respecto a las pare-des, podemos considerarlas en varios pasos futuros porque están allí en for-ma constante. Pero con respecto a los otros robots, después de una proyección de 4 ó 5 cuadros, nos conviene dejar de tenerlos en cuenta, porque no sabemos con precisión dónde estarán ubicados.
  • 228. La navegación que acabamos de pre-sentar no es complicada de imple-mentar, pero dista mucho de ser rá-pida y eso, en el fútbol, es un pro-blema. Para optimizar nuestra nave-gación tenemos que hacer un análisis profundo de la física implicada en el juego. Es decir, tenemos que deter-minar cómo funciona la inercia del robot, cuánto tarda en alcanzar di-versas velocidades, cuánto tarda en realizar giros de diversas amplitudes partiendo de diferentes estados, etcé-tera. En esto influirá la arquitectura del robot (más allá de que sea dife-rencial, cómo está repartido el peso del robot y cómo se ubican las ruedas son puntos esenciales), los materiales de las ruedas y el piso de la cancha. Como vemos, tenemos que invertir un largo tiempo de estudio para re-alizar pruebas en el campo con el ob-jetivo de pulir la navegación. Por úl-timo, tenemos que poder desarrollar un modelo donde para llegar a un punto determinado, en lugar de girar y luego ir en forma recta, determine-mos velocidades diferentes en las rue-das para trazar una curva optimizada hacia el destino. Una vez hecho esto, podemos seguir nuestro estudio me-diante la realización de navegaciones donde nos interese con qué ángulo llegamos al final, desde qué lado lle-gamos al punto, etcétera. Sensado y detección del ambiente Este punto es fundamental. Aquí te-nemos mucho trabajo apasionante por delante. En el caso de usar sen-sores sencillos, como ultrasónicos, sensores de luz, de tacto y otros sen-sores locales, la información que ob-tendremos es bastante imprecisa. La imagen que conseguiremos del am-biente no nos permitirá navegar con total exactitud. Todo lo que podre-mos hacer es buscar la pelota con algún sensor, acercarnos a ella, y una vez que nos encontramos cerca, in-tentar llegar hasta el arco contrario. Lo que hemos utilizado para obtener mayor precisión en la captación del ambiente son los sistemas de visión. En este caso, tenemos que realizar un delicado equilibrio entre la cantidad 10. JUGAR AL FÚTBOL Figura 3. Ejemplo de robot de fútbol con ruedas diferenciales. 226
  • 229. de cuadros por segundo que proce-samos y la precisión que obtenemos al final. Aquí encontramos la gran diferencia entre los sistemas de vi-sión industriales tradicionales y los que tenemos que aplicar en robótica situada. En el primer caso, podemos tomar mayor tiempo de procesa-miento, con lo cual el resultado final es mucho más preciso. En nuestro juego, tenemos que complementar y corregir la información de la cámara con datos previos del ambiente y con proyección del estado actual en el ca-so de los objetos de comportamien-to lineal. Y desde ya, renunciar a la Fútbol de robots precisión si queremos obtener el es-tado del ambiente actual, ¡y no el que existía hace 30 segundos! El sistema de visión puede ser global o local a los robots. En el primer caso (Figura 4), un procesador externo reali-za el procesamiento y luego les envía el resultado a los robots para que tomen sus decisiones, o directamente éste u otro procesador externo, a partir de los datos captados, define la estrategia y les envía órdenes a los robots como la ve-locidad de las ruedas, etcétera. En la vi-sión local, cada robot capta el ambien-te. Como decíamos antes, si esto se ha- 227 Figura 4. Sistema de visión global en una cancha de fútbol de robots. Podemos ver las cámaras conectadas en la parte superior.
  • 230. ce mediante sensores, la calidad de la información es bastante baja. Si en el robot tenemos un sistema de visión, los datos que tenemos del ambiente son mayores, pero esto exige que cada ro-bot realice el arduo procesamiento de la imagen. Por otra parte, la visión lo-cal en general es parcial, porque los ro-bots apuntan a una dirección determi-nada. Para superar esto, es habitual que la cámara se apunte hacia arriba y que se coloque un espejo cónico o se-miesférico en la parte superior para te-ner una captura de 360 grados (Figura 6). La deformación que se produce en esta imagen es muy fácil de solucionar. Aun así, el robot puede tener informa-ción incompleta porque otros le tapan la pelota, el arco o algún otro objeto. Es 10. JUGAR AL FÚTBOL 228 Figura 5. Ejemplos de robots seguidores de una pelota infrarroja. ❘❘❘ VISIÓN INDUSTRIAL Con un poco más de dinero, podemos ad-quirir una cámara de visión industrial con salida firewire para que en nuestra com-putadora ingresen los datos en forma di-gital y no sea necesario un framegrabber (prácticamente todas las computadoras ya vienen con entrada firewire, y de lo con-trario compramos una placa con esa en-trada). Un aspecto importante es que la lente tenga un montaje (la forma de co-nectarse a la cámara) que sea estándar, como el montaje CS, de manera tal que podamos cambiar de lentes según el am-biente y la distancia a la cancha. Otra ca-racterística interesante es la posibilidad de aplicar filtros desde el hardware, lo cual hace mucho más rápido el proceso.
  • 231. Figura 6. Un equipo con sistema de visión local. La cámara apunta hacia una semiesfera en la parte superior. por eso que en todos los sistemas de vi-sión, complementamos lo que capta-mos en el cuadro con información del historial, como haríamos con nuestros propios ojos y cerebro. Si vemos que viene la pelota y en un momento la de-jamos de ver porque queda detrás de un jugador, realizamos una proyección de su movimiento y prevemos encontrar-la en un punto posterior, ya que cono-cemos cómo se estaba moviendo y po-demos anticiparnos a su comporta-miento futuro. De la misma manera lo hacemos (¡o por lo menos lo intenta-mos!) en el fútbol de robots. Comportamiento colaborativo Además de todo lo que vimos, nece-sitamos que jueguen en equipo. En un conjunto de robots que tienen un Fútbol de robots objetivo determinado, es necesario algún mecanismo de organización que permita que cada uno realice una o más tareas determinadas en forma dinámica, en pos de ese obje-tivo. Existen muchas formas de lo-grar esto, pero plantearemos dos: el comportamiento emergente y el comportamiento dirigido. El comportamiento emergente den-tro de un sistema es el que surge de la interacción de sus componentes, y no puede explicarse a partir de los com-portamientos individuales. Por ejem-plo, ninguna hormiga puede realizar una colonia por sí misma, ni organi-zarla dándoles órdenes a otras hormi-gas. Pero su comportamiento indivi-dual sencillo en conjunto con las otras hormigas, les permite lograr un tra- 229
  • 232. bajo en equipo muy complejo (Figura 7). Otro ejemplo es el de las bandadas de pájaros. Muchas veces nos queda-mos maravillados ante las hermosas figuras geométricas que logran al vo-lar en grupo. Sin embargo, ninguna mente superior ordena ese vuelo. Un conjunto de reglas sencillas de ubica-ción de cada pájaro en la bandada, que permite minimizar la resistencia del aire, es la que logra esa organiza-ción que nos sorprende. Un último ejemplo que podemos presentar es el de la generación del aplauso y su rit-mo. En un recital o en una obra de te-atro, no nos organizamos para aplau-dir. Alguna señal, como el final de la canción o de un acto, genera un pri-mer aplauso, que luego comienza a crecer y que, mágicamente, toma una cadencia general a partir de la senci-lla actitud de cada uno de nosotros al golpear nuestras manos. En un grupo de robots, podemos de-terminar cierto conjunto de acciones primitivas, como ir a un punto o ir a la pelota, y que cada robot decida por sí mismo qué hacer según las condi-ciones del ambiente. Por ejemplo, ca-da robot, según la cantidad de cua-dros que tardaría en llegar a la pelota, podría decidir si va hacia ella o no. De la misma forma, podríamos determi-nar un grupo de acciones posibles que estén condicionadas por el estado del robot dentro del ambiente. El proble- 10. JUGAR AL FÚTBOL Figura 7. Las hormigas, un maravilloso ejemplo de comportamiento emergente. 230
  • 233. ma que podemos tener es que varios robots decidan hacer lo mismo o que ninguno ejerza alguna función vital, como la de arquero. La ventaja es que con sólo agregar alguna o algunas ac-ciones más, y si pulimos el sistema de decisiones de cada robot, el compor-tamiento puede cambiar en forma notable. Además, todos los robots son iguales, y por lo tanto no necesitamos programar diversos comportamientos para cada uno de ellos. El comportamiento emerge en forma espontánea. Es muy sorprendente ver-los organizarse por ellos mismos y cumplir determinados roles cuando nosotros nunca lo hicimos en forma explícita. ¡Es algo mágico! El proble-ma es que muchas veces, este com-portamiento no surge en forma tan precisa ni veloz como lo necesitamos en un ambiente dinámico. Y es en ese momento cuando pensamos que tener un director de orquesta puede presen-tarnos Fútbol de robots un mundo más gris y represivo, pero infinitamente más ejecutivo. Así surge el comportamiento dirigi-do. En este esquema, un robot del equipo, o un agente externo, toma de-cisiones, elige una estrategia y le asig-na un rol a cada robot. En el caso de los sistemas de visión global, donde un computador externo realiza el pro-cesamiento de imágenes, el mismo procesador, o uno que está comuni-cado con él, toma estas decisiones y sólo comunica a cada robot la veloci-dad que debe tomar su rueda izquier-da y derecha. De esta manera, la asig-nación de roles y el comportamiento es muchísimo más preciso y las deci-siones se toman en forma veloz. Pero es necesario que imaginemos todos los mundos posibles, porque nuestro conjunto de robots nunca saldrá de lo puramente establecido por nuestro al-goritmo. Todo comportamiento de-penderá de lo que hayamos previsto ✱ SEGUIR EL GUANTE BLANCO DE MICHAEL JACKSON El comportamiento emergente también puede aplicarse para el seguimiento de obje-tos en un video. El White Glove Tracking Project (Proyecto de Seguimiento del Guan-te Blanco) fue un proyecto respaldado por Rhizome.org, en donde un gran número de usuarios debían marcar el lugar donde veían el guante blanco de Michael en un video de 5 minutos y medio. Con la información de cada uno, que individualmente podía te-ner un buen margen de error, se determinó la posición con una precisión completa. Es decir, a partir del comportamiento sencillo de seguir el guante con el puntero del mou-se, el software levantó los datos en tiempo real y los ponderó para definir la posición 231 perfecta del guante. Éste es otro ejemplo de comportamiento emergente.
  • 234. en nuestra programación. En reali-dad, en general usamos una combi-nación de éstos y otros mecanismos de organización en equipo. La elec-ción de uno u otro dependerá, en es-pecial, de los buenos resultados que logremos con ese comportamiento. Ligas nacionales e internacio-nales de fútbol de robots Como dice el sabio adagio, todo lo que hacemos los investigadores es para conquistar a las muchachas que en nuestra juventud, con nuestro as-pecto de nerds, nunca pudimos se-ducir. Debido a que pasamos días enteros detrás de nuestros inventos, es fácil suponer que nuestro estado físico deja bastante que desear. Es por eso que decidimos crear los cam-peonatos de fútbol de robots: quere-mos ser famosos, reconocidos por la calle y conseguir novias modelos, co-mo los jugadores de fútbol reales. Luego de doce años de competencias no hemos logrado ninguno de estos objetivos, pero no hemos perdido las esperanzas. Por lo menos, en las reu-niones sociales hemos logrado algu-nos minutos de atención al comen-tar nuestra extraña profesión. Ahora, hablando en serio, los cam-peonatos de fútbol de robots son una buena excusa para intercambiar conocimientos con otros investiga-dores de la misma disciplina. Las re-glas del fútbol son conocidas a nivel internacional y no hacen falta de-masiadas palabras para que nos po-damos encontrar en un partido. Y luego, entre goles y tiros libres, com-partimos los últimos resultados de nuestros trabajos en los campos que presentamos en el punto anterior. A continuación comentaremos cada una de las ligas y las categorías vin-culadas al fútbol que presentan. RoboCup Según se detalla en su propio sitio, la RoboCup es un proyecto de colabo-ración internacional para promover el desarrollo de la robótica, la inteli-gencia artificial y los campos afines. Fomenta la investigación de estos te-mas y provee problemas estándares, donde una amplia gama de tecno-logías puede integrarse y ponerse a prueba. Ha elegido el fútbol de ro-bots como tema central con el obje-tivo de aplicar los resultados de las in-vestigaciones a problemas sociales significativos y a la industria. La me-ta final es lograr hacer un equipo de once robots autónomos para el 2050, que le gane un partido a la última se-lección campeona del mundo. Dado que muchas de las tecnologías estudiadas son aplicables a la búsque-da y el rescate de personas en situa-ciones de desastre, se ha agregado a las competencias de rescate (RoboCup Rescue) como una forma de aplica- 10. JUGAR AL FÚTBOL 232
  • 235. ción significativa de los resultados de las investigaciones. Además de las ca-tegorías de fútbol, también presenta categorías físicas y simuladas de resca-te y categorías de fútbol, rescate y dan-za para jóvenes entre 10 y 18 años. Las categorías de fútbol que ofrece son: ● Simulación: en estos momentos hay dos subcategorías, una de 2D y otra de 3D. En esta categoría, de-bemos controlar los once jugadores y al entrenador, cada uno con un proceso independiente entre sí y sin comunicación directa entre ellos. El partido se desarrolla en un simulador de la física del ambien-te, con el cual los procesos que controlan al equipo se comunican Fútbol de robots mediante mensajes de texto por sockets. Además, contamos con un visualizador gráfico del ambiente. Es decir, cuando se juega un parti-do tenemos 26 procesos que co-rren: 22 jugadores, 2 entrenadores, 1 simulador y 1 visualizador. La comunicación entre los jugado-res y el técnico se realiza mediante gritos entre ellos. Por lo tanto, te-nemos un comando que podemos ejecutar en nuestro agente que gri-ta un mensaje y desde ya, también puede escucharlo. Además, tene-mos comandos de movimiento, pa-teo, giro, etcétera. El servidor, además de recibir los comandos pa-ra los robots, nos provee informa-ción de sensado (particular de cada 233 Figura 8. Imagen de uno de los monitores para el simulador de la RoboCup.
  • 236. agente), como lo que ve, la energía del jugador, la velocidad, etcétera. Esta información de los sensores puede estar contaminada por el rui-do (errores), como en un sensor re-al. Es importante recordar que el servidor no espera que le enviemos los comandos para los robots, sino que funciona como un sistema de tiempo real con ciclos discretos, y que aquí también tenemos el com-promiso de equilibrar precisión y velocidad. Si nuestra heurística tar-da demasiado tiempo en definir el comportamiento del robot, vamos a entregar acciones para un mundo que ha cambiado, y con una fre-cuencia demasiado lenta para la vi-talidad del ambiente. El objetivo del simulador es poder solucionar todos los aspectos físicos y de vi-sión, para que nos podamos con-centrar en los temas vinculados al comportamiento colaborativo. ● Small size (tamaño pequeño), tam-bién conocido como F180: aquí te-nemos un partido de fútbol físico en-tre dos equipos de cinco jugadores cada uno (Figura 9). Cada robot debe poder entrar en un cilindro de 180 mm de diámetro, con una altura no mayor a 15 cm, salvo que tenga su propio sistema de visión. De no ser así, se utiliza un sistema de visión global con comunicación inalámbri-ca entre el procesador de imágenes y los robots. El campo de juego es de 10. JUGAR AL FÚTBOL 234 Figura 9. Equipo Small size del ITAM de México.
  • 237. 4,9 m de largo por 3,4 m de ancho y se utiliza una pelota de golf naranja. A pesar de que la visión puede ser lo-cal, todos los equipos que hemos vis-to en los torneos tienen visión global. ● Middle size (tamaño medio): en es-ta categoría física los robots también son autónomos en el sistema de vi-sión. Cada equipo cuenta con cua-tro jugadores que se comunican en-tre ellos en forma inalámbrica (Figu-ra 10). No puede haber ninguna in-tervención externa, salvo para inser-tar o remover robots del campo de juego. Cada robot debe poder entrar en una caja de 50 cm de ancho, 50 cm de largo y 85 cm de alto. Por mo-mentos, puede crecer hasta 60 cm Fútbol de robots por 60 cm cuando patea. El peso máximo del robot es de 80 kg. ● Standard platform league (liga de plataforma estándar): en esta cate-goría se selecciona un robot están-dar que debe ser usado por todos los equipos. Hasta el año 2007, la pla-taforma seleccionada fue el Aibo de Sony, y por eso esta categoría se co-nocía como four legged (cuatro pa-tas). En 2008 se utilizará el robot Aldebaran Nao (Figura 11). Cada equipo debe ser de cuatro jugadores autónomos mediante la utilización de esta plataforma básica. De esta manera, se pone el acento en el de-sarrollo del software para solucionar el aspecto físico del robot. 235 Figura 10. Un partido a punto de comenzar en la Middle size de la RoboCup.
  • 238. ● Humanoid (humanoide): aquí, los equipos deben estar formados por dos humanoides, donde uno será el arquero. Existen dos subcategorías (kidsize y teensize), donde sólo hay diferencias de tamaño. Cada robot debe tener proporciones en su cuerpo similares a las proporciones humanas (Figura 12). Las reglas pro-porcionan un conjunto de fórmu-las que determinan los límites de mínimo y máximo para cada parte del cuerpo. Además de jugar parti-dos, deben realizar pruebas de des-treza como esquivar obstáculos, re-correr caminos, etcétera. 10. JUGAR AL FÚTBOL Figura 11. En esta imagen vemos un prototipo avanzado del Aldebaran Nao. 236 Figura 12. Robotina, el humanoide de la categoría TeenSize del equipo Nimbro de la Universidad de Freiburg.
  • 239. FIRA (Federación Internacional de Fútbol de Robots) La FIRA es una liga futbolera. Los robots de sus diversas categorías son de complejidad menor que los de la RoboCup, con características menos cercanas al fútbol real. Por ejemplo, en sus canchas no hay laterales. La dinámica es más parecida al fútbol de salón. Con estas características, sus partidos son más vistosos y emocio-nantes, ya que la pelota está cons-tantemente en juego y sus robots se mueven a una velocidad sorprenden-te. Las categorías que presenta son: ● MiroSot: en esta categoría, los ro-bots tienen un límite de 7,5 cm de lado (sin incluir la antena de comu-nicación). Se juega con una pelota de golf naranja y la visión es global. Fútbol de robots 237 ❘❘❘ PLATAFORMA ROBOCUP El robot Aldebaran Nao es un desarro-llo de origen francés que comenzó en el año 2005 y fue presentado dos años más tarde. El objetivo que persigue es el de lograr un humanoide que se en-cuentre disponible para el público, de costo accesible, con las características que vemos a continuación: •Cámara digital incorporada. •Reconocimiento de voz. •Sintetizador de voz. •Expresiones de emoción. •Comunicación por WiFi. •Veinticinco grados de libertad. Para obtener más información, pode-mos visitar la siguiente dirección: www.aldebaran-robotics.com. Figura 13. Ejemplo de robot MiroSot para esta categoría de la FIRA.
  • 240. Existe una subcategoría de cinco con-tra cinco donde la cancha es de 220 cm por 180 cm, y otra de once con-tra once de 400 cm por 280 cm (Fi-gura 14). La cámara colocada en la par-te superior de la cancha captura las imágenes, que luego son procesadas por una computadora externa. Ésta última, una vez procesada la imagen y analizado el ambiente, determina el comportamiento de los robots y le envía las órdenes a cada uno en forma inalámbrica. Por el tamaño del robot y las reglas de cubrimiento de la pe-lota, es imposible capturarla, por lo que el transporte es bastante comple-jo, y se juega mucho con los rebotes y el transporte colectivo. ● SimuroSot: categoría simulada que emula a MiroSot de cinco contra cinco y de once contra once. El si-mulador (Figura 16) provee los datos del ambiente cada 16 milisegundos y nuestro equipo (una dll hecha en C++) toma sus decisiones e informa la velocidad de la rueda izquierda y derecha de cada robot. ● NaroSot: es una versión mini de MiroSot (Figura 15). Aquí los ro-bots deben ser de 4 cm de ancho, 10. JUGAR AL FÚTBOL 238 Figura 14. Partido de cinco contra cinco en la categoría MiroSot de la FIRA.
  • 241. 4 cm de largo y 5,5 cm de alto (sin contar la antena). El sistema de vi-sión también es global y juegan cinco contra cinco con una pelota de golf naranja. ● RoboSot: ésta es la categoría con visión local. Cada equipo está for-mado por tres robots que deben caber en un cilindro de 20 cm de diámetro y con una altura no ma-yor a 40 cm. La pelota es de tenis Fútbol de robots 239 Figura 15. Pequeños robots de la categoría NaroSot de la Universidad de Tecnología de Viena. Figura 16. Simulador de 5 contra 5 que se utiliza en la categoría SimuroSot de la FIRA.
  • 242. color amarillo y ya pueden incor-porar a su arquitectura sistemas de acarreo de la pelota (con restric-ciones) y sistemas de pateo. ● HuroSot: ésta es la categoría de humanoides de la FIRA (Figura 17). Aún no se juegan partidos de fút-bol, sino que el robot debe cum-plir ciertas pruebas de destreza co-mo realizar un recorrido, patear penales, etcétera. La altura máxi-ma es de 150 cm y 30 kg de peso. Las proporciones del robot deben ser similares a las humanas, como en la RoboCup. ● KepheraSot: en esta categoría, que está en vías de desaparición, los equipos utilizan una arquitectura conocida como Kephera. Juegan uno contra uno con un sistema de visión local muy interesante, ya que posee una cámara con captura de una sola línea. Es por eso que los ju-gadores se identifican con un cilin-dro de rayas negras y blancas, y la pelota es de color verde. Campeonato Latinoamericano IEEE El Campeonato Latinoamericano IEEE comenzó en el año 2002 y no 10. JUGAR AL FÚTBOL 240 Figura 17. Robot de la categoría HuroSot de la FIRA intentando resolver un problema.
  • 243. contaba con pruebas de fútbol de ro-bots. Sin embargo, en las últimas tres ediciones ha incorporado la Ro-boCup Latinoamericana. De esta manera, se hacen presentes las categorías Small Size, Four Le-gged y Simulación. Además, pro-pone una categoría inicial donde se utiliza el kit de Lego para la cons-trucción de los robots, con desafíos de rescate o colaborativos, y una ca-tegoría abierta, donde los robots de-ben ser desarrollados por los propios participantes, con determinadas res-tricciones en los procesadores. Fútbol de robots Concurso Mexicano de Robótica Versión local del Concurso IEEE La-tinoamericano que agrega a sus com-petencias las categorías Junior de la RoboCup (para menores de 18 años) y un concurso de robots limpiadores, también con diversas categorías. Con respecto al fútbol en particular, están presentes Small Size y Junior. Campeonato Argentino de Fútbol de Robots (CAFR) El CAFR combina pruebas de am-bas ligas internacionales. Con res-pecto a la FIRA, presenta su cate- 241 Figura 18. El equipo argentino del CAETI recibiendo su premio por el cuarto puesto en la categoría SimuroSot.
  • 244. goría SimuroSot, donde tiene el ma-yor número de participantes. De la RoboCup presenta una versión más pequeña que la Small Size (con me-nos cantidad de robots) y la Junior con pelota infrarroja (Figura 19). Roboliga (Olimpíada Argentina de Robótica) La Roboliga es una competencia des-tinada a alumnos menores de 18 años. Es la competencia de robótica más antigua de Latinoamérica y conjuga pruebas de destreza con presentación de proyectos de investigación de los alumnos. Dentro de las competen-cias, que se modifican año a año, con frecuencia aparecen pruebas de resca-te, sumo, y destrezas de fútbol de ro-bots, que utilizan el mismo campo y las mismas características que la Ro-boCup Junior (Figura 20). Modificaciones para que nuestro robot pueda jugar Con nuestro robot podríamos parti-cipar de la categoría Small Size de la RoboCup y de la competencia de fút-bol de la RoboCup Junior. En el pri-mer caso, deberíamos desarrollar un sistema de visión para poder realizar el seguimiento de nuestro equipo y 10. JUGAR AL FÚTBOL 242 Figura 19. Categoría Senior del Campeonato Argentino de Fútbol de Robots.
  • 245. sumar algún sistema de comunica-ciones para enviar las órdenes de la computadora central hacia los robots (y desde ya, ¡programar todo esto!). Con respecto al sistema de visión, ya existe un servidor de procesamiento de imágenes de distribución libre y gratuita que nos puede ser útil: Do-raemon. Fue desarrollado por el De-partamento de Ciencias de la Com-putación de la Universidad de Mani-toba, corre en Linux y necesita de una placa capturadora de video con en-trada compuesta o SVHS. De las cap-turadoras de video que tienen drivers en Linux, nosotros logramos poner Fútbol de robots en marcha el sistema con aquellas que tienen chip bt878, como la antigua PCTV de Pinnacle. Conectada a es-ta placa, podemos utilizar cualquier cámara con las salidas mencionadas, como cualquier handycam que ten-gamos en nuestras casas. Hemos te-nido varias luchas para que funcione, pero una vez que se logra darle arran-que y se configuran los colores en for-ma correcta, nos provee los datos con buena precisión. Los datos del am-biente y de los robots los comunica mediante un socket UDP, por lo que podemos capturarlos desde otro pro-ceso en el mismo Linux o en otra má- 243 Figura 20. Competencia colaborativa en la Roboliga.
  • 246. 10. JUGAR AL FÚTBOL quina con cualquier sistema opera-tivo y cualquier lenguaje que pueda acceder a sockets (¡todos los lengua-jes pueden hacerlo!). Ahora, si estamos completamente lanzados a la construcción de nues-tras propias herramientas para lo que es el procesamiento de imáge-nes, es recomendable detenerse a es-tudiar la librería OpenCV, desarro-llada por los laboratorios de Intel. Ésta es una librería desarrollada en C++ que nos proporciona todos los algoritmos básicos de procesamien-to como filtros, balances, detección de bordes, tracking, etcétera. Reali-zar nuestro propio sistema de visión implicará combinar un conjunto de las funciones provistas por OpenCV con algunas buenas ideas de uso del historial del ambiente y el compor-tamiento lineal de la pelota. Con respecto al sistema de comu-nicaciones, tendremos que incorpo-rarle un módulo RF (radiofrecuen- 244 cia) o bluetooth a nuestro robot. La-mentablemente, este tema escapa a la complejidad de este libro, pero po-demos encontrar muchísima infor-mación en Internet sobre él, en es-pecial con respecto a la conexión de módulos RF con el PIC. Una pelota infrarroja Si queremos evitar el arduo procesa-miento de imágenes, podemos po-ner a nuestra criatura al servicio de la categoría Junior. Aquí, la visión es local y muy sencilla. Para jugar se utiliza una pelota con leds infrarro-jos. Esta pelota emite constante-mente y, de esta manera, uno o más sensores de luz la pueden detectar con facilidad (es mejor usar por lo menos dos para poder saber si la pe-lota se fue de nuestro frente para un lado o para el otro). Para ubicarse a nivel espacial, el pi-so de la cancha de esta categoría tie-ne un degradé de blanco a negro, con lo que podemos saber si nos di- ✱ El Grupo de Robótica Cognitiva de la Universidad Nacional del Sur, en Argentina, ha colaborado en el desarrollo de una liga de la RoboCup que luego fue dejada de lado. Sin embargo, toda su experiencia con Doraemon (¡y con su compleja instalación!) puede encontrarse en su sitio web: http://cs.uns.edu.ar/~ajg/matebots/. Además, allí podemos encontrar información sobre la programación del comportamiento del equipo en Prolog y sobre el uso de Lego Mindstorms para jugar al fútbol. Lamenta-blemente, UNA BUENA FORMA DE COMENZAR CON EL FÚTBOL DE ROBOTS la E-league (Entry League) no continuó con su desarrollo en la RoboCup, lo que hubiera permitido un ingreso menos complejo a la liga.
  • 247. rigimos hacia nuestro arco o hacia el contrario con el uso de uno o más sensores de luz que apuntan hacia abajo. Si queremos ser más exquisi-tos, al usar tres o cuatro sensores en forma analógica podemos darnos Fútbol de robots cuenta del grado de rotación de nuestro robot por la diferencia cap-tada por cada uno de los sensores. Si apunta hacia el arco, los valores cap-tados por los sensores que miran ha-cia abajo tendrían que ser similares. 245 … RESUMEN El fútbol no sólo es una buena excusa para una reunión de amigos. En el caso de los robots, nos permite poner a prueba las soluciones que hayamos encontrado a un conjunto de problemas habituales en la robótica situada, como la captación del ambiente en tiempo real, la navegación hacia puntos fijos y móviles, y el com-portamiento colaborativo. Ésta es la razón por la que ha crecido tanto la activi-dad en los centros de investigación. Cada liga de fútbol de robots presenta dife-rentes reglamentos y categorías, lo que permite tener una amplia variedad de oportunidades para ingresar en este mundo. La propuesta más económica y sen-cilla para comenzar son las competencias simuladas. En ellas, con una computa-dora convencional y muchas horas de programación, podremos lograr un equipo para salir a la cancha. Pero el sueño siempre es trabajar con elementos físicos, y en ese caso tenemos plataformas estándares, humanoides, robots pequeños, robots grandes, etcétera. Con seguridad, encontraremos el proyecto que se ajus-te a nuestros deseos y nuestras posibilidades. Y ojalá nos encontremos en algún potrero robótico para compartir un buen partido.
  • 248. ✔ ACTIVIDADES TEST DE AUTOEVALUACIÓN 1 ¿Cuáles son las tres características que podemos transpolar del fútbol conven-cional 246 al fútbol de robots? 2 ¿Qué problemas presenta la arquitectu-ra y la navegación de los robots de fútbol? 3 ¿Qué método se utiliza habitualmente en la detección del ambiente de juego, y qué problemas trae esto aparejado? 4 ¿A qué nos referimos con equilibrio en-tre velocidad y precisión en el procesa-miento de imágenes? 5 ¿Cómo son las arquitecturas de visión global y de visión local? 6 ¿A qué llamamos comportamiento co-laborativo? ¿Qué problemas presenta? 7 ¿Qué es el comportamiento emergente? 8 ¿Qué es el comportamiento dirigido? 9 ¿Cuáles son las características de las categorías de la RoboCup? 10 ¿Cuáles son las características de las categorías de la FIRA? EJERCICIOS 1 Imprima un degradé de blanco a negro en una hoja oficio y construya un robot que, al comenzar en cualquier posición, se ubique en forma recta y apunte ha-cia el borde negro. 2 Agréguele un tercer motor al robot con algún mecanismo sencillo de pateo. 3 Instale Doraemon en Linux según las indicaciones de la Universidad del Sur, y escuche el socket configurado para entender cómo se envían los paquetes. 4 Instale el simulador de fútbol de la FIRA y desarrolle un pequeño equipo basán-dose en el ejemplo que se descomprime en la misma carpeta donde está instala-do el programa.
  • 249. Robótica Conceptos básicos de electrónica Apéndice A Este apéndice permitirá conocer algunos conceptos que aparecen explícita o implícitamente involucrados en los capítulos anteriores. Aunque podemos llegar a buen puerto sin leerlo, la comprensión de lo que construimos será más profunda si lo hacemos. Y en algunos casos, como los consejos para soldar, nos ahorraremos muchos dolores de cabeza. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com La electrónica 248 Conceptos de electricidad 248 Componentes que utilizamos en nuestros circuitos 251 Herramientas fundamentales 256 Consejos para soldar 258
  • 250. LA ELECTRÓNICA Motor del siglo XX, la electrónica ha jugado un papel fundamental en las características actuales del mundo en el que vivimos. Todo lo que nos rodea está compuesto en algún punto por componentes electrónicos: automóvi-les, aviones, computadoras, juguetes, televisores, reproductores de mp3, etcétera. Y cada día que pasa, gracias a las maravillas de la evolución tec-nológica, la electrónica se vuelve más pequeña, más robusta y más econó-mica. Probablemente, en algún mo-mento de nuestras vidas sentimos cu-riosidad por este tema y nos adentra-mos en él con alguna revista, algún kit específico o por qué no, mediante es-tudios formales. Para aquellos que nos hemos acercado porque lo teníamos como un simple hobby, la aparición de los integrados nos ha facilitado aún más la tarea. Muchas veces, cuan-do necesitamos algo, en lugar de te-ner que diseñarlo, basta con buscar en los catálogos un integrado que cum-pla esa función. Basta un ejemplo: un grupo de alumnos había desarrollado un órgano electrónico controlado desde el puerto paralelo de una PC. Cuando le presentaron el proyecto al profesor, con decenas de transistores, resistencias, diodos y otros compo-nentes, el docente los felicitó porque el trabajo era muy interesante. Y lue-go de charlar con ellos les dijo que no quería que gastaran ni dinero ni tiem-po demás. Que todo lo que habían desarrollado se podía resolver con un integrado. Todo, menos un conjunto de leds, quedaba encapsulado en un integrado específico. Como dirían los programadores de objetos, todo está hecho, sólo hay que encontrar las pie-zas y ensamblarlas. Este apéndice tiene como objetivo aclarar algunos conceptos de electró-nica básica y dar algunas recetas pri-mitivas que seguramente nos aho-rrarán muchos dolores de cabeza. To-do lector que alguna vez haya cons-truido un circuito ya ha pasado por esto, y no creemos que su lectura pueda aportarle nada nuevo. Pero si es la primera vez que vamos a hacer una soldadura, este apéndice será una tabla de salvación. Conceptos de electricidad Para comenzar con nuestro aprendi-zaje de electrónica, debemos conocer una serie de conceptos fundamenta-les. En primer lugar, veremos aquellos relacionados con la electricidad. Corriente eléctrica La corriente eléctrica no es más que un flujo ordenado de electrones que atraviesa un material de un punto a otro. Algunos de ellos, al tener un electrón libre en su nivel superior, permiten el pasaje de un punto a otro en forma mucho más simple y con A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 248
  • 251. menos resistencia. De allí el nombre de materiales conductores. A los materiales que no permiten el flujo de electrones en condiciones norma-les se los conoce como materiales aislantes. Pero ¡cuidado!: ante ciertos factores un material aislante puede convertirse en conductor. El ejemplo más conocido es el de la cerámica usada en los viejos tapones por su ca-pacidad aislante, que ante una tem-peratura muy baja, no sólo conduce, sino que ¡superconduce! Para profun-dizar este tema, es recomendable bus-car información sobre la supercon-ductividad y sus propiedades. Si queremos producir este flujo (Fi-gura 1) en un material eléctricamen-te neutro, tenemos que utilizar una fuente de energía externa. Si coloca-mos La electrónica el material neutro entre un cuerpo con muchos electrones (car-ga negativa) y uno con pocos (carga positiva), los electrones atravesarán el material para ir del potencial ne-gativo al positivo. ¿Del negativo al positivo? ¿No era al revés? En efecto es así, pero históricamente se la de-finió como un flujo de cargas posi-tivas, lo que luego resultó incorrec-to. De todas maneras, cuando se piensa en el pasaje de corriente eléc-trica, con frecuencia se lo describe al revés porque lo que se considera es el flujo del potencial positivo. Si el flujo se desplaza en forma conti-nua de un punto a otro, se lo conoce como corriente continua. Un ejem-plo de este tipo de corriente es la que 249 + + — — Figura 1. Esquema del flujo de la corriente eléctrica.
  • 252. brinda una pila o batería. En otro ca-so, si el flujo corre primero en un sen-tido y luego en el contrario, se lo lla-ma corriente alterna. Un ejemplo de este caso es la corriente que recibimos en los enchufes de nuestras casas, la corriente eléctrica de la red. Podemos buscar en Internet la historia de por qué se eligió la alterna y no la conti-nua para las casas, ya que es una lu-cha interesante entre Nikola Tesla y Thomas Edison (Figura 2). La corriente se mide en Amperios (A). Esta unidad mide la cantidad de electrones que fluyen en un material en una unidad de tiempo. Una co-rriente tiene una intensidad de 1 A cuando, al pasar por una solución acuosa de nitrato de plata, deposita 0,001118 gramos de plata por segun-do (esto podemos olvidarlo rápida-mente, sólo es para aclarar que existe un patrón). En electrónica, esa uni-dad es demasiado grande, por lo que utilizamos los submúltiplos. Un Mi-liampere (mA) es la milésima parte de un ampere. Un Microampere (μA) es la millonésima parte. Tensión (voltaje) Para que los electrones fluyan de un terminal a otro, debemos tener algu-na fuente que genere ese movimien-to o, como se dice habitualmente, de-bemos aplicarle energía al conductor. Para lograrlo, en un terminal debe-mos tener una carga negativa y en la otra una positiva. La tensión es la di-ferencia de potencial que hay entre dichas terminales. El ejemplo más habitual es el curso del agua de un río. Para que el agua corra, es necesa-rio un desnivel entre la vertiente y la desembocadura. Ese desnivel es el que determinará la tensión. La unidad de medida es el Voltio o volt (V). Una pila AA alcalina tiene una tensión de 1,5 V. En las tomas eléctricas de nuestras casas solemos tener 110 V ó 220 V. A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 250 Figura 2. Nikola Tesla y Thomas Edison, uno de los enfrentamientos más grandes en la historia de la ciencia a partir de la corriente continua y la alterna.
  • 253. Resistividad / Resistencia La resistividad de un material es la pro-piedad que tiene de oponerse al paso de corriente. Se mide en Ohms-me-tro y depende de un conjunto de fac-tores, como por ejemplo la temperatu-ra. En un componente concreto, su re-sistencia está definida por la resistividad del material, su longitud y el área trans-versal del componente. A mayor longi-tud y menor área transversal, más re-sistencia. En este caso, la unidad es el Ohm (Ω). Al inverso de la resistividad se lo llama conductividad. Ley de Ohm Una de las leyes más importantes de la electrónica es la Ley de Ohm. Si to-mamos una fuente variable de co-rriente continua y un cable conduc-tor que ofrezca cierta resistencia, po-dremos ver que al aumentar la ten-sión, la corriente aumenta en forma directamente proporcional. El co-ciente que obtenemos entre tensión y corriente es la resistencia del ma-terial. En síntesis: R= V / I. R: resistencia. V: tensión. I: corriente. Desde ya que con esta fórmula po-demos calcular cualquiera de los parámetros si conocemos los otros dos. Por ejemplo, la fórmula V=R*I nos permite calcular cuántos voltios cae la tensión a lo largo de un con-ductor con resistencia. La electrónica Componentes que utilizamos en nuestros circuitos A continuación vamos a describir los componentes pasivos y activos más im-portantes que hemos utilizado en nues-tros circuitos. Llamamos componen-tes activos a aquellos que proporcio-nan excitación eléctrica, ganancia o control. Esencialmente, son los gene-radores eléctricos, los diodos y ciertos semiconductores. En contraposición, los pasivos son los que no generan in-tensidad ni tensión en nuestro cir-cuito, como los cables, las resisten-cias, los interruptores, los capacito-res, los transformadores, etcétera. Ve-amos qué función cumplen algunos componentes que hemos utilizado. Resistencia Es un componente pasivo que ubi-camos en el paso de una corriente y que se opone a que ésta circule. Se re-presentan con la letra R y su valor se mide en Ohms o en sus múltiplos, KiloOhms (1 KΩ = 1000 Ω) o Me-gaOhms (1 MΩ = 1000 KΩ). Hay una gran variedad de tipos de resis-tencias y de valores posibles (Figura 3). Figura 3. Resistencia de 62Ω ± 5% y símbolo electrónico de la resistencia. 251
  • 254. Para describir el valor e indicarlo so-bre el componente se utiliza un có-digo de colores que determina la re-sistencia y la tolerancia. Los tres primeros (Tabla 1) definen el valor de la resistencia y cada uno re-presenta un dígito decimal. Entre éstos, los dos primeros indican el va-lor en Ω y el tercero es el multipli-cador del valor anterior para obtener el valor final. Por su parte, el cuarto dígito representa la tolerancia del componente (Tabla 2). COLOR DÍGITO MULTIPLICADOR Negro 0 1 Marrón 1 10 Rojo 2 100 Naranja 3 1000 Amarillo 4 10000 Verde 5 100000 Azul 6 1000000 Violeta 7 10000000 Gris 8 Blanco 9 Dorado 0,1 Plateado 0,01 Tabla 1. Interpretación de las tres primeras bandas de colores de las resistencias. COLOR TOLERANCIA Dorado ±5% Plateado ±10% Sin color ±20% Tabla 2. Interpretación de la cuarta banda de color de las resistencias. En la Tabla 3 podemos ver algunos ejemplos que nos permiten compren-der cómo se interpretan los colores de los códigos de las resistencias. COLORES VALOR Y TOLERANCIA Marrón–negro–marrón–dorado 100Ω al 5% Rojo–rojo–rojo–plateado 2,2 KΩ al 10% Amarillo–violeta–rojo–dorado 4,7 KΩ al 5% Tabla 3. Ejemplos de la interpretación de los colores de las resistencias. En lo que respecta a los diferentes ti-pos de resistencias, tenemos las fijas, cuyo valor nominal no se altera. Las variables, en cambio, pueden modi-ficar su valor de resistencia por un ajuste humano o por algún elemento del circuito o del ambiente. Éstas úl-timas también se usan como senso-res, dado que alteran su comporta-miento por factores externos. Por ejemplo, tenemos resistencias varia-bles de presión, de luz (que ya hemos visto), de temperatura, etcétera. Cuando soldamos una resistencia de-bemos tener cuidado porque el calor puede modificar sustancialmente su capacidad resistiva. Por eso es aconse-jable soldarlas con rapidez y utilizar algún disipador que permita dismi-nuir el calor que recibe la resistencia. Capacitor (Condensador) Es un componente que almacena energía en forma de campo eléctri-co. Está formado por dos placas metá- A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 252
  • 255. licas separadas por un aislante conoci-do como dieléctrico. La unidad de medida de su capacidad es el Faradio (F) y sus submúltiplos, como el Mili- Faradio (1 mF = 1 F/1.000), el Mi-croFaradio (1 uF = 1F / 1.000.000 = 10-6F), el NanoFaradio (1nF = 10-9F) y el PicoFaradio (1 pF = 10-12F). Además de su capacidad, otra carac-terística fundamental es la máxima tensión que soporta. Nunca debemos conectar un capacitor a un voltaje su-perior porque puede explotar. En los capacitores también encontra-mos fijos y variables. Con respecto a los fijos, la diferencia entre ellos de-pende del dieléctrico que utilizan. No vamos a entrar en detalles, pero las ca-racterísticas que difieren entre ellos por el tipo de dieléctrico son esencialmen-te la capacidad, la fuga, la resistencia a los cambios de voltaje y la robustez. En particular, los capacitores electrolíticos (Figura 4) son polarizados, y hay que tener en cuenta cómo los conectamos (dónde ponemos el positivo y dónde el negativo) porque una conexión in-vertida los puede hacer explotar (tie-nen una válvula de seguridad que los hace bullir en lugar de explotar, con esa imagen tan característica de un ca-pacitor al que se le ha salido la tapa de la cabeza). Entre los capacitores varia-bles podemos encontrar los girato-rios, que se utilizan mucho en la sin-tonía de radios, y los trimmers, que permiten un ajuste muy fino. La electrónica Figura 4. Capacitor electrolítico y símbolo electrónico del capacitor. Podemos ver la marca de la patita que debe ir a tierra. En los capacitores cerámicos (Figura 5), que son los más pequeños, cuando la capacidad es menor a 1uF, se usa la uni-dad picoFaradio (pF) y se expresa en el componente con el valor completo si es pequeño, o con una notación de 3 nú-meros en caso contrario. Los dos pri-meros representan su valor, y el tercero nos informa de un factor de multipli-cación, como lo muestra la Tabla 4. TERCER NÚMERO FACTOR DE MULTIPLICACIÓN 0 1 1 10 2 100 3 1000 4 10000 5 100000 8 0.01 9 0.1 Tabla 4. Factor de multiplicación representado por el tercer número que aparece en un capacitor. 253
  • 256. Luego de este número aparece una le-tra que indica la tolerancia en por-centaje, como vemos en la Tabla 5. LETRA PORCENTAJE DE TOLERANCIA D +/- 0.5 pF F +/- 1% G +/- 2% H +/- 3% J +/- 5% K +/- 10% M +/- 20% P +100% ,-0% Z +80%, -20% Tabla 5. Tolerancia que representa cada letra al final de los números que indican el valor del capacitor. Demos algunos ejemplos. Si encon-tramos un capacitor con el número 104G, nos indica que tiene una capa-cidad de 100.000 pF y una tolerancia del +/- 2%. Si encontramos otro con 332, representa 3.300 pF, sin infor-mación de la tolerancia. Diodo El diodo es un componente que per-mite que el flujo de corriente vaya en una sola dirección (Figura 6). De-bajo de cierta diferencia de potencial, no conduce. Si superamos ese um-bral, lo hace con una resistencia muy baja. También se lo conoce como rec-tificador, dado que puede convertir una corriente alterna en continua. Figura 6. Un diodo y su símbolo. Los primeros diodos fueron las vál-vulas de vacío, con aspecto similar al de una lámpara eléctrica. Tienen un filamento (el cátodo) por donde cir-cula la corriente que los calienta. Al ocurrir esto, comienzan a emitir elec-trones al vacío que los rodea. Estos electrones se dirigen hacia una placa cargada positivamente (ánodo), y se logra así el pasaje de corriente. Si el cátodo no se calienta, nada de esto funciona. Por ende, los circuitos que lo usan necesitan de un tiempo pa-ra aumentar la temperatura antes de prestar su servicio. Por otra parte, en el pasado se quemaban muy segui-do. Por suerte, los diodos han evo-lucionado notablemente y ahora no presentan estas dificultades. A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 254 Figura 5. En esta imagen vemos un capacitor cerámico.
  • 257. Existen diversos tipos de diodos. El led (Light Emmiting Diode, diodo emisor de luz) es un diodo que emi-te luz monocromática cuando la co-rriente lo atraviesa. El color, curiosa-mente, no depende del plástico que lo rodea sino del material empleado en la construcción del diodo. Los pri-meros leds fueron infrarrojos y de co-lor rojo, naranja, amarillo y verde. Hace poco tiempo se han logrado leds azules, con lo cual podemos cre-ar cualquier color con la combina-ción de rojo, verde y azul. El voltaje de operación de un led varía entre 1,5 V y 2,2 V, la intensidad varía entre 10 mA y 20 mA en los rojos, y entre 20 mA y 40 mA en los otros. Transistor El transitor es un componente semi-conductor activo que se puede utili-zar como amplificador, oscilador, rectificador o conmutador. Lo po-demos encontrar en prácticamente el 100% de los productos electrónicos que nos rodean. Fue creado en los la-boratorios de Bell en 1947 como re-emplazo La electrónica del triodo (una válvula de tres patas con las mismas funciones pero con los problemas que ya vimos que presenta ese componente). El más común (y que nosotros usamos en nuestros circuitos) tiene tres patitas, que se conocen como emisor, colec-tor y base. En forma simplificada, la corriente que aplicamos en el colector sale amplificada en el emisor si es que la base recibe corriente continua. Es más, la corriente que sale por el emi-sor puede ser regulada por la corrien-te que ingresa por la base. Estos tran-sistores, que se conocen como bipo-lares, son los más comunes y los po-demos encontrar en dos variantes: NPN y PNP. La diferencia entre es-tos dos modelos es la polaridad de sus electrodos. En el primer caso, la base va a positivo y el emisor a negativo, y es al revés en el otro caso, como po-demos ver en la Figura 7. Además, en NPN, el colector debe ser más positi-vo que la base y en PNP, más negati-vo. La aparición del transistor fue un salto muy significativo para la electró-nica digital, en reemplazo de las vál- 255 PNP Colector Base Emisor PNP Colector Base Emisor Figura 7. Un transistor y los símbolos para NPN (en el que la flecha va hacia fuera) y PNP.
  • 258. vulas de vacío y el surgimiento de apa-ratos electrónicos de menor tamaño, costo y temperatura. Luego, con el surgimiento de los integrados, estas características se acentuaron aún más. Circuitos integrados Como bien dice su nombre, es un circuito plasmado en una pequeña pastilla de silicio con miles o millo-nes de componentes, principalmen-te diodos y transistores (Figura 8). Como ejemplo tenemos los micro-procesadores, las memorias, los am-plificadores, los osciladores, etcéte-ra. A pesar de que existe un conjun-to de barreras físicas a la reducción de tamaño de los integrados, día a día se mejoran los materiales y las técnicas de fabricación, lo que per-mite el crecimiento del número de componentes del circuito. Su inven-tor, Jack Kilby, recibió el premio Nobel en el año 2000, 42 años des-pués de la aparición de su invento. Figura 8. Un circuito integrado por dentro. Herramientas fundamentales Ahora que ya hemos visto los com-ponentes más significativos de nues-tro proyecto, presentaremos una lis-ta de las herramientas que conside-ramos imprescindibles para armar nuestro pequeño taller de electróni-ca y así llevar a nuestros primeros ro-bots a buen puerto. ● Estaño: recomendamos el que tiene almas de resina, en forma de alam-bre, de 0,8 mm de grosor, 60% de estaño y 40% de plomo. Como se-guramente lo usaremos en gran can-tidad, es mejor comprar un rollo (Fi-gura 9) que nos durará largo tiempo. Figura 9. Rollo de estaño. ● Soldador: nos va a alcanzar con un soldador de 35 a 40 W con una punta de 2 a 3 mm. El tipo de sol-dador más económico es el de lá-piz (Figura 10), que es suficiente pa-ra nuestras primeras experiencias. El único problema que tiene es que tarda en levantar temperatura, pero sólo nos consumirá un po-quito de paciencia. A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 256
  • 259. Figura 10. Soldador tipo lápiz. ● Soporte de soldador: si no quere-mos dejar marcas en todas las mesas sobre las que trabajemos, el soporte de soldador (Figura 11) nos permitirá dejarlo en funcionamiento sin que-mar la superficie donde lo apoye-mos. No es imprescindible, pero se-guro será más caro hacer una res-tauración de la mesa. Figura 11. Soporte de soldador típico. ● Desoldador: es un succionador de estaño que nos permite, en forma sencilla cuando queremos corregir o desoldar un componente, aspirar rá-pidamente el estaño cuando se ablan-da. En nuestros primeros fracasos cuando soldemos, se convertirá en un aliado fundamental (Figura 12). La electrónica Figura 12. Desoldador de succión o vacío. ● Morsita o pinzas para manos li-bres: cuando tenemos que soldar ne-cesitamos que las partes estén en una posición cómoda. Con alguno de es-tos implementos podemos ubicarlas en el aire y sin contactos molestos. ● Pinzas y alicates: permiten tomar objetos para manipularlos con preci-sión, doblar las patitas de los compo-nentes, cortar y pelar cables, etcétera. ● Destornilladores: planos y philips, nos permitirán ajustar potencióme-tros variables, borneras, separar inte-grados de sus zócalos, etcétera. ● Tester: pieza fundamental de nuestro taller, nos permitirá medir la conti-nuidad, la resistencia, la corriente y la tensión de nuestro circuito (Figura 13). Por último, recomendamos buscar un lugar cómodo para poder trabajar, don-de podamos dejar nuestro proyecto a medio terminar sin tener que guardar-lo y sacarlo cada vez. Es necesario que seamos ordenados con nuestros com-ponentes, y para ello podemos utilizar diversas cajitas que nos permitan clasi-ficar los elementos para encontrarlos con rapidez cuando los necesitemos. Tener todos los componentes en un frasco nos hará perder mucho tiempo. 257
  • 260. Consejos para soldar Para finalizar este apéndice, daremos al-gunos consejos útiles para soldar, dado que todo error que cometamos en este punto hará que detectar dónde se pro-duce la falla sea mucho más complica-do. Además, una soldadura mal hecha puede ocasionar problemas en el cir-cuito en un momento inesperado. Uno de los errores más habituales es el de la soldadura fría, que ocurre cuan-do no aplicamos el calor en forma co-rrecta y el estaño está soldado en forma parcial y muy débil. Para evitarlo, de-bemos usar un soldador con la poten-cia adecuada para el tipo de estaño que utilicemos. También el estaño debe ser el adecuado para las uniones que reali-cemos. Todas las superficies que una-mos deben estar limpias, igual que la punta del soldador. Cuando aplicamos el estaño, lo debemos hacer sobre la su-perficie calentada y no sobre la punta del soldador. Una característica que po-demos usar para verificar la calidad de nuestra soldadura es su color: si su aca-bado es brillante, es un buen signo. La unión mate nos indica una posible sol-dadura fría. Otro problema habitual es creer que el estaño nos servirá no sólo para la conducción sino también para el sostén mecánico de la unión. Esto no es así. Es fácil de comprobar al ver có-mo se comporta el material cuando lo tenemos en el rollo: es blando y muy maleable. Por lo tanto, la unión mecá-nica entre los componentes debe estar dada por otros aspectos de la conexión. El estaño sólo sirve para unir de forma eléctrica, pero no de forma mecánica. A. CONCEPTOS BÁSICOS DE ELECTRÓNICA 258 Figura 13. Tester digital.
  • 261. Robótica Sitios web Apéndice B En este apartado conoceremos un listado de los sitios que nos ayudarán a encontrar información adicional sobre cuestiones relacionadas con la robótica. Además, conoceremos algunas aplicaciones que podemos utilizar para ampliar nuestras posibilidades de programación. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Listado de sitios 260 Aplicaciones útiles 267
  • 262. LISTADO DE SITIOS Pablin www.pablin.com.ar Un buen lugar para profundizar aquellos aspectos vinculados a la electrónica que no hayamos comprendido de nuestro robot. Tiene cursos de programación y pla-nos de circuitos que podemos fabricar para usar en nuestra creación. RobotIA www.robotia.com.ar Sitio desarrollado por Néstor Balich, uno de los colaboradores de este libro. Pre-senta videos, noticias y proyectos de robótica autónoma y controlada. Tiene in-formación de los equipos del CAETI que participan en campeonatos de fútbol. B. SITIOS WEB 260
  • 263. Curso básico de electrónica www.electronica2000.net Si nuestros conocimientos de electrónica son muy básicos, en este sitio po-demos encontrar un buen tutorial que nos ayudará a esclarecer el mágico funcionamiento de nuestros circuitos. Comienza con conceptos funda-mentales y recorre una amplia gama de temas electrónicos. FIRA www.fira.net FIRA (Federation of International Robosoccer Association) es una de las dos ligas internacionales sobre fútbol de robots. En su sitio podemos en-contrar el reglamento de todas las categorías, los programas de simulación, y noticias y videos de todos los torneos que se llevan a cabo. Listado de sitios 261
  • 264. B. SITIOS WEB RoboCup www.robocup.org Ésta es la otra liga internacional de fútbol de robots, que incluye competencias de rescate. En su sitio podemos ver imágenes y videos de las competencias, en-terarnos de las últimas novedades y conocer los sitios de los participantes. Carnegie Mellon – The Robotics Institute www.ri.cmu.edu A nuestro humilde entender, el centro de robótica más importante del pla-neta en todos los niveles. A pesar de que el MIT tiene grandes desarrollos en software, con respecto al hardware estos muchachos nos hacen sacar el sombrero. En este sitio podemos encontrar miles de artículos y enlaces pa-ra divertirnos por el resto de nuestras vidas. 262
  • 265. Robots en Argentina http://robots-argentina.com.ar Listado de sitios Un espacio lleno de noticias, artículos, enlaces, desarrollos y otros mate-riales sobre robótica coordinado por Eduardo J. Carletti. Podemos encon-trar información de sensores, actuadores, circuitos, baterías, controladores y todo lo que necesitemos para construir nuestros robots. Microchip www.microchip.com La cuna de nuestro querido PIC16F84 y todos sus primos y hermanos. Aquí encontraremos todas las hojas de datos, descripciones, comparaciones, bench-marks y demás sobre la línea de micros de esta empresa. Si queremos fami-liarizarnos con estos productos, no podemos dejar de visitar este sitio. 263
  • 266. B. SITIOS WEB Atmel www.atmel.com Y si nombramos a Microchip, no podemos dejar de lado a su empresa com-petidora, los micros de Atmel. De la misma manera, en este sitio podemos encontrar toda la información sobre los micros que algunos prefieren por sobre los PICs por sus cualidades y buen precio. FIRST www.usfirst.org Sitio de la competencia FIRST (For Inspiration and Recognition of Science and Technology). Esta liga incluye diversas categorías de robótica inspiradas en pro-blemas científicos concretos. Incluye la FLL, First Lego League, orientada a jó-venes de 9 a 14 años que compiten con los robots de Lego. 264
  • 267. Laboratorio de robótica del MIT http://robots.mit.edu El MIT tampoco es un mal lugar para investigar sobre estos temas. En este sitio específico encontraremos los detalles de todos sus proyectos de robots es-paciales, móviles y otros. La lista de artículos presentados es notable, y algu-nos de ellos están disponibles para nuestra lectura. Grupo de Investigación en Robótica Autónoma de la UAI www.caeti.uai.edu.ar/gidra/ Éste es nuestro grupo de robótica del Centro de Altos Estudios de la UAI. Allí investigamos sobre robótica situada, y aplicamos estos estudios a fútbol de ro-bots, de rescate y otros. También nos preocupa la inserción de la robótica en la educación y para ello trabajamos mucho en ambientes educativos. Listado de sitios 265
  • 268. B. SITIOS WEB Robocup en el Instituto Tecnológico de Monterrey www.cem.itesm.mx/robocup/ El ITESM ha participado asiduamente de la RoboCup. En este sitio pode-mos encontrar información sobre los diversos equipos participantes, códigos fuentes para comenzar a trabajar, videos, reglamentos y muchas cosas más pa-ra empezar a soñar con la posibilidad de participar en la liga. Wowwee www.wowwee.com El mayor creador y fabricante de robots de producción masiva. Creadores del Robosapiens, Flytech y otros robots que parecen de juguete pero que permiten desarrollar muchísimas investigaciones con los aspectos mecáni-cos y electrónicos solucionados. 266
  • 269. Aplicaciones útiles 267 APLICACIONES ÚTILES Microsoft Robotics Studio http://msdn.microsoft.com/robotics/ Entorno de robótica basado en Windows para desarrollos académicos, hobbistas y comerciales. Permite vincularse con diversas plataformas de hardware y cuen-ta con un motor de simulación basado en física muy potente. Proyecto Rossum http://rossum.sourceforge.net/ Rossum es un proyecto para el desarrollo open source de plataformas de software para robótica. Ya está en funcionamiento un simulador donde po-demos poner en práctica nuestros conocimientos.
  • 270. B. SITIOS WEB Webots www.cyberbotics.com Webots es el software comercial más popular de prototipación y simulación de robots móviles. Puede vincularse con diversas plataformas de hardware, de manera tal que al finalizar la simulación podamos bajar el código al robot re-al. Tiene modelado a Aibo, Qrio y otros robots de amplia fama internacional. CCS www.ccsinfo.com Si el Basic no nos alcanza, aquí podemos encontrar diversos compiladores para PIC. Tenemos versiones para los micros más importantes de Micro-chip. 268 En todos los casos, están basados en el lenguaje C. Podemos usarlos en línea o con una IDE en Windows muy potente.
  • 271. Robótica Servicios al lector En este último apartado conoceremos el listado de publicaciones que nos ayudaron a obtener conocimientos y que, sin dudas, serán de utilidad para continuar con nuestro aprendizaje. SERVICIO DE ATENCIÓN AL LECTOR: lectores@redusers.com Bibliografía 270 Indice temático 275 Equivalencia de términos 277 Abreviaturas comúnmente utilizadas 279
  • 272. SERVICIOS AL LECTOR BIBLIOGRAFÍA General Santos, J. y Duro, R. (2004). Evolución Artificial y Robótica Autónoma. Coedición: Alfaomega-Rama. Meystel, A. (1991). Autonomous Mobile Robots. Vehicles with Cognitive Control. Singapore: World Scientific. Connell, J. H. (1990). Minimalist Mobile Robotics: A Colony-style Architecture for a Mobile Robot. Cambridge: Academic Press. Barrientos, A. y otros. (1997). Fundamentos de Robótica. Mc Graw Hill. Angulo Usategui, J. M. (1999). Robótica Práctica. Madrid: Paraninfo. Ollero Baturone, A. (2001). Robótica: Manipuladores y robots móviles. España: Marcombo. Angulo J. M., Romero Yesa S. y Angulo Martínez I. (2002). Microbótica. Tecnología, aplicaciones y montaje práctico. Madrid: Thomson - Paraninfo. Torres Medina F., Gil P., Pomares J. y Puente S. (2002). Robots y sistemas sensoriales. Prentice Hall. Artículos diversos de Wikipedia. Capítulo 1 Zabala, G. y Mon, G. (2005, mayo). Introducción a la robótica. Revista Power Users #20. Zabala, G. y Mon, G. (2005, junio). Primeros pasos en Robótica Autónoma. Revista Power Users #21. Zabala, G. y Mon, G. (2005, julio). Kit Lego Mindstorms. Revista Power Users #22. Zabala, G. y Mon, G. (2005, agosto). Basic Stamp. Revista Power Users #23. Zabala, G. y Mon, G. (2005, octubre). Kits Latinoamericanos. Revista Power Users #25. 270
  • 273. Bibliografía Zabala, G. y Mon, G. (2005, noviembre). Kit BlockyTronic y Fischer Technik. Revista Power Users #26. Zabala, G. y Mon, G. (2006, enero). Robótica sin kits (I). Revista Power Users #28. Zabala, G. y Mon, G. (2006, marzo). Robótica sin kits (II). Revista Power Users #30. Ramos, J., González Florentino, R. y Meléndez S. Clasificación de los robots. Consultado el 21 de enero de 2007, Robotec Tecnología Robótica, página web: http://robotec11.tripod.com/id4.html. Capítulo 2 Lindsay, A. (2004). Robotics with the Boe-Bot. California: Parallax. González Gómez, J. y Prieto-Moreno Torres, A. (2004, noviembre). Robótica en la Universidad. Madrid: Universidad Autónoma de Madrid. Lindsay, A. (2004). What´s a Microcontroller. Rocklin, California: Parallax. Capítulo 3 Zabala, G., Mon, G. y Balich, N. (2006, abril). Astro: construyendo nuestro primer robot (I). Revista Power Users #31. Zabala, G., Mon, G. y Balich, N. (2006, mayo). Astro: construyendo nuestro primer robot (II). Revista Power Users #32. Zabala, G., Mon, G. y Balich, N. (2006, junio). Astro: construyendo nuestro primer robot (III). Revista Power Users #33. Microchip (2005). Datasheet PIC16F87/88. Chandler, Arizona: Microchip. Capítulo 4 Upadhye, R. S. (2004, abril). Selection of Batteries and Fuel Cells for Yucca Mountain Robots. 10th International Conference on Robotics and Remote Systems For Hazardous Environments. Gainesville, FL: American Nuclear Society. 271
  • 274. SERVICIOS AL LECTOR Young, J. y Bennett, J. (2000). Elec 201: Course Notes. Batteries. Houston, Texas: Rice University. Obtenido el 14 de abril de 2007 de www.owlnet.rice.edu/~elec201/Course_Notes.htm#contents. MIT 6.270 book. (1997). Obtenido el 14 de abril de 2007 de http://mil.ufl.edu/imdl/6270/DEFAULT.HTM. Capítulo 5 MikroElektronika (2006). Manual del usuario de mikroBasic. Belgrado: mikroElektronika. Capítulo 6 Wikipedia. Motor de corriente continua. Obtenido el 2 de junio de 2007 de http://es.wikipedia.org/wiki/Motor_de_corriente_continua. Motor de corriente continua C.C. Obtenido el 2 de junio de 2007 de www.unicrom.com/Tut_MotorCC.asp. Motor de corriente continua. Obtenido el 2 de junio de 2007 de http://personales.com/peru/arequipa/compupari/. Rueda, L. Secuencia para Motores-PaP Unipolares. Obtenido el 4 de junio de 2007 de http://r-luis.xbot.es/ebasica2/mpap_03.html. Tutorial sobre motores paso a paso. Obtenido el 4 de junio de 2007 de www.todorobot.com.ar/informacion/tutorial%20stepper/ stepper-tutorial.htm. Cubas García, A. Introducción a los motores paso a paso. Obtenido el 4 de junio de 2007 de www.redeya.com/electronica/tutoriales/ mpp/mpp.htm. Teoría del funcionamiento de los servomotores. Obtenido el 4 de junio de 2007 de www.todorobot.com.ar/documentos/servomotor.pdf. Baliñas Santos, J. (2006). Trucaje de Servomotores Futaba 3003. Seminario de diseño y construcción de microrrobots. Universidad de Alcalá. Fernández, J. (2006). ¿Qué es un servomotor?. Obtenido el 4 de junio de 2007 de www.zonabot.com/actuadores/que-es-un-servomotor-.html. 272
  • 275. Bibliografía Capítulo 7 Abad Cartón, G. (2006). Sensores en robótica. Seminario de diseño y construcción de microrrobots. Universidad de Alcalá. Microchip (1998). Datasheet PIC16F84A. Chandler, Arizona: Microchip. López, G. y Margni, S. (2003). Motores y Sensores en Robótica. Proyecto de grado de la Facultad de Ingeniería de la Universidad de la República Oriental del Uruguay. Zabala, G., Mon, G. y Balich, N. (2006, junio). Astro: construyendo nuestro primer robot (III). Revista Power Users #33. Manuel Fernando Campos Cerda, M. F., Castañeda Pérez R. y Contreras Torres A. C. (1998). Implementación de un sistema de desarrollo utilizando los microcontroladores PIC Microchip Technology. Universidad de Guadalajara. Capítulo 8 Lober, J. A. V. (2003). Técnicas de inteligencia artificial en la construcción de robots móviles autónomos. Trabajo de grado. Facultad de Ciencias de la Universidad de Salamanca. Martin, F. (1995). El arte del diseño con Lego. Documento interno de Lego con traducción del Ing. Hazel Díaz. Carreras, M., Hospital, E., Salellas, J. y Batlle, J. (2000). Arquitectura mecánica de un prototipo de robot bípedo. Comunicación de un proyecto de investigación de la Universidad de Girona. Arango Saveedra A., Satizábal Mejía, H. F. y Loaiza Correa, H. (2004) Diseño e implementación de un robot móvil hexápodo. Universidad del Valle, Colombia. Sucar, L. E. Robótica Móvil: Arquitecturas. Presentación para el Departamento de Computación del ITESM Cuernavaca. González Gómez, J. (2004). Diseño de robots ápodos: Cube revolutions. Escuela Politécnica Superior de la Universidad Autónoma de Madrid. Presentación en la Semana de la Ciencia Andaluza. 273
  • 276. SERVICIOS AL LECTOR Ruiz del Solar, J., Zagal, J. C. Documentación de la materia EL710 Robótica Móvil. Universidad de Chile. Obtenida el 24 de junio de http://robotica.li2.uchile.cl/el710/. Capítulo 9 Zabala, G. (2004, julio). Roboliga - Publicación del artículo presentado en el 14 Encuentro de Actualización Docente. En Revista Novedades Educativas. Remiro, F. Microcontroladores: las interrupciones. Obtenido el 30 de julio de 2007 de www.terra.es/personal/fremiro/interrupciones.htm. Capítulo 10 Martins da Silva Aparicio, P. M. (2000). Design and implementation of a population of cooperative autonomous robots. Tesis de grado. Universidad Técnica de Lisboa. Zabala, G. (2004, noviembre). Programación en Fútbol de Robots. Revista .Code #7. Sotelo Iniesta, E. D. (2006). Diseño e implementación de los robots F180 del ITAM. Tesis de grado. Instituto Tecnológico Autónomo de México. Apéndice A González Romero N. (2005). Manual de soldadura. Universidad Politécnica de Madrid. Documento presentado en Cybertech 2005. Bodington, C. (2007). Lectura de capacitores. Obtenido el 14 de septiembre de 2007 de www.conexionelectronica.com/content/view/23/29/. Palazzesi, A. (2007). Herramientas necesarias para el taller del hobbista de la electrónica. Obtenido el 14 de septiembre de 2007 de www.ucontrol.com.ar. 274
  • 277. ÍNDICE TEMÁTICO A Actuadores 23, 39 Acuáticos 21, 174 Aéreos 21, 173 Alcance 111 Analógico 35, 64, 158 Arreglo 114 Assembler 97, 107, 118 Autónomos 22 B Baterías 79, 169 Bipolar 41, 137 Bootloader 67, 96 Bumpers 63, 153 Buzzers 23 C Campo magnético 127 Capacitor 252 Cargador 87 CCP 65 Cianocrilato 57 Cinemática 194 Circuitos intermedios 34 Código fuente 100 Comparador 66 Compilador 96, 98 Control automatizado 22 Controlador 64, 157, 169 Corriente continua 39, 127, 249 D Depurador 103, 105 Digital 35, 152 Índice temático Diodo 254 Display 23, 41 E EEPROM 28, 65 Efecto hall 156 Electricidad 248 Encoder 23, 196 Engranajes 190 Estator 40 F Final de carrera 53 Firmware 24, 26 Fotorresistencia 35, 55 Funciones 102 H Híbridos 21, 22 Holonómica 195 I ICSP 66, 74 Industriales 19 Infrarrojo 37, 55, 154 Interrupciones 206 K Kits 24 L LDR 55, 162 Leds 23 Lego 26, 56 Litio 82 275
  • 278. M MDF 57 Memoria 65 Metacrilato 58 MicroBasic 95, 98 Microcontrolador 30, 48, 64 Micromotor 134 Motor 23, 25, 39, 126, 172 Motorreductores 50, 134 N Níquel 81, 83 O Odometría 196 Omnidireccional 51, 182, 224 Operadores 116 P Palm 31 Paso a paso 40, 135 PDA 31 PFM 132 PIC 49 Pinout 67 Pipelined 50 Placa experimental 71 Plantillas 102 Plomo 84 Pocket PC 31 Poleas 193 Portapilas 86 Potenciómetro 163 Procesador 24 Procesamiento 23 Programador 71, 96 Protoboard 28, 69 Puente H 67, 129 PVC 57 PWM 42, 65, 131, 141 R RAM 65 Recargar 87 Resistencia 251 Reusabilidad 25, 56 Rotor 40, 136 S Sensor 23, 25, 33, 53, 64, 148, 171, 203 Sentencias 117 Servo 140 Servomotor 41 Soldar 258 T Tensión 250 Terrestres 21, 174 Timer 65 Tokens 108 Torque 127 Tracción diferencial 51, 185, 224 Transistor 255 U Ultrasonido 37 Unipolar 41, 137 USART 65 V Variables 108, 112 Visibilidad 112 Vitrificación 79 Voltaje nominal 79 SERVICIOS AL LECTOR 276
  • 279. Equivalencia de términos 277 EQUIVALENCIA DE TÉRMINOS En este libro Otras formas En inglés ▲ ▲ ▲ Acceso dial up Acceso de marcación Actualización Update, Upgrade Actualizar Refresh Ancho de banda Bandwidth Archivos Filas, Ficheros, Archivos electrónicos Files Archivos adjuntos Archivos anexados o anexos Attach, Attachment Backup Copia de respaldo, Copia de seguridad Balde de pintura Bote de pintura Base de datos Database Booteo Inicio/Arranque Boot Buscador Search engine Captura de pantalla Snapshot Carpeta Folder Casilla de correo Buzón de correo CD-ROM Disco compacto Compact disk Chequear Checar, Verificar, Revisar Check Chip Pastilla Cibercafé Café de Internet Clipboard Portapapeles Cliquear Pinchar Colgar Trabar Tilt Controlador Adaptador Driver Correo electrónico E-Mail, Electronic Mail, Mail Descargar programas Bajar programas, Telecargar programas Download Desfragmentar Defrag Destornillador Desarmador Disco de inicio Disco de arranque Startup disk Disco rígido Disco duro, Disco fijo Hard disk Disquete Disco flexible Floppy drive Firewall Cortafuego Formatear Format Fuente Font Gabinete Chasis, Cubierta Grabadora de CD Quemadora de CD CD Burn Grupo de noticias Newsgroup
  • 280. SERVICIOS AL LECTOR En este libro Otras formas En inglés ▲ ▲ ▲ Handheld Computadora de mano Hipertexto HyperText Hospedaje de sitios Alojamiento de sitios Hosting Hub Concentrador Impresora Printer Inalámbrico Wireless Libro electrónico E-Book Lista de correo Lista de distribución Mailing list Motherboard Placa madre, Placa base Mouse Ratón Navegador Browser Notebook Computadora de mano, 278 Computadora portátil Offline Fuera de línea Online En línea Página de inicio Home page Panel de control Control panel Parlantes Bocinas, Altavoces PC Computador, Ordenador, Computadora Personal Computer Personal, Equipo de cómputo Pestaña Ficha, Solapa Pila Batería Battery Placa de sonido Soundboard Plug Play Enchufar y usar Por defecto Por predefinición By default Programas Aplicación, Utilitarios Software, Applications Protector de pantalla Screensaver Proveedor de acceso Internet Service a Internet Provider Puente Bridge Puerto Serial Serial Port Ranura Slot Red Net, Network Servidor Server Sistema operativo SO Operating System (OS) Sitio web Site Tarjeta de video Placa de video Tipear Teclear, Escribir, Ingresar, Digitar Vínculo Liga, Enlace, Hipervínculo, Hiperenlace Link
  • 281. Abreviaturas comúnmente utilizadas 279 ABREVIATURAS COMÚNMENTE UTILIZADAS Abreviatura Definición ▲ ▲ ADSL Asymmetric Digital Subscriber Line o Línea de abonado digital asimétrica AGP Accelerated Graphic Port o Puerto acelerado para gráficos ANSI American National Standards Institute ASCII American Standard Code of Information Interchange o Código americano estándar para el intercambio de información BASIC Beginner´s All-Purpose Symbolic Instruction Code BIOS Basic Input/Output System Bit Binary digit (Dígito binario) Bps Bits por segundo CD Compact Disk CGI Common Gateway Interface CPU Central Processing Unit o Unidad central de proceso CRC Cyclic Redundancy Checking DNS Domain Name System o Sistema de nombres de dominios DPI Dots per inch o puntos por pulgada DVD Digital Versatile Disc FTP File Transfer Protocol o Protocolo de transferencia de archivos GB Gigabyte HTML HyperText Mark-up Language HTTP HyperText Transfer Protocol IDE Integrated Device Electronic IEEE Institute of Electrical and Electronics Engineers IP Internet Protocol IR Infra Red IRC Internet Relay Chat IRQ Interrupt Request Line o Línea de petición de interrupción ISO International Organization Standard u Organización de Estándares Internacionales ISP Internet Service Provider o Proveedor de acceso a Internet KB Kilobyte LAN Local Area Network o Red de área local LCD Liquid Crystal Display o Pantalla de cristal líquido LPT Line Print Terminal MB Megabyte MBR Master Boot Record MHz Megahertz
  • 282. SERVICIOS AL LECTOR Abreviatura Definición ▲ ▲ NETBEUI Network Basic Extended User Interface o Interfaz de usuario extendida NETBios OEM Original Equipment Manufacturer OS Operative System OSI Open Systems Interconnection o Interconexión de sistemas abiertos PCMCIA Personal Computer Memory Card International Association PDA Personal Digital Assistant PDF Portable Document Format Perl Practical Extraction and Report Language PGP Pretty Good Privacy PHP Personal Home Page Tools, ahora llamado PHP Hypertext Preprocessor POP3 Post Office Protocol 3 o versión 3 del Protocolo de oficina de correo PPP Point to Point Protocol o Protocolo punto a punto RAM Random Access Memory ROM Read Only Memory SMTP Simple Mail Transport Protocol o Protocolo simple 280 de transferencia de correo SPX/IPX Sequence Packet eXchange/Internetwork Packet eXchange o Intercambio de paquetes secuenciales/Intercambio de paquetes entre redes SQL Structured Query Language SSL Secure Socket Layer TCP/IP Transfer Control Protocol / Internet Protocol o Protocolo de control de transferencia / Protocolo de Internet UML Lenguaje de Modelado Unificado UDP User Datagram Protocol UPS Uninterruptible Power Supply URL Uniform Resource Locator USB Universal Serial Bus VGA Video Graphic Array WAN Wide Area Network o Red de área extensa WAP Wireless Application Protocol WWW World Wide Web XML Extensible Markup Language
  • 283. usershop.redusers.com Vi s i t e n u e s t ro sitio web Utilice nuestro sitio usershop.redusers.com: • Vea información más detallada sobre cada libro de este catálogo. • Obtenga un capítulo gratuito para evaluar la posible compra de un ejemplar. • Conozca qué opinaron otros lectores. • Compre los libros sin moverse de su casa y con importantes descuentos. • Publique su comentario sobre el libro que leyó. • Manténgase informado acerca de las últimas novedades y los próximos lanzamientos. También puede conseguir nuestros libros en kioscos o puestos de periódicos, librerías, cadenas comerciales, supermercados y casas de computación de todo el país. CLAVES PARA COMPRAR UN LIBRO DE COMPUTACIÓN Sobre el autor y la editorial 1 Revise que haya un cuadro sobre el autor, en el que se informe sobre su experiencia en el tema. En cuanto a la editorial, es conveniente que sea especializada en computación. Preste atención al diseño 2 Compruebe que el libro tenga guías visuales, explicaciones paso a paso, recuadros con información adicional y gran cantidad de pantallas. Su lectura será más ágil y atractiva que la de un libro de puro texto. Compare precios 3 Suele haber grandes diferencias de precio entre libros del mismo tema; si no tiene el valor en la tapa, pregunte y compare. ¿Tiene valores agregados? 4 Desde un sitio exclusivo en la Red hasta un CD-ROM, desde un Servicio de Atención al Lector hasta la posibilidad de leer el sumario en la Web para evaluar con tranquilidad la compra, o la presencia de buenos índices temáticos, todo suma al valor de un buen libro. Verifique el idioma 5 No sólo el del texto; también revise que las pantallas incluidas en el libro estén en el mismo idioma del programa que usted utiliza. Revise la fecha de publicación 6 Está en letra pequeña en las primeras páginas; si es un libro traducido, la que vale es la fecha de la edición original. Compra Directa! usershop.redusers.com Conéctese con nosotros y obtenga beneficios exclusivos: ARGENTINA (011) 4110-8700 CHILE (2) 810-7400 ESPAÑA (93) 635-4120 MÉXICO (55) 5350-3099, desde el interior sin costo al 01-800-2888-010 e-mail a: usershop@redusers.com
  • 284. Visite nuestro sitio en la Web usershop.redusers.com Redes GNU/Linux En las páginas de este libro encon-traremos un recorrido por aquellos temas vinculados al armado de redes profesionales, y descubriremos ca-da una de las herramientas que GNU/Linux posee para su adminis-tración avanzada. COLECCIÓN: MANUALES USERS 336 páginas / ISBN 978-987-1347-55-1 Mundo Linux Este manual contiene informes, secre-tos, consejos y trucos que nos permiti-rán descubrir y aprovechar todo el po-tencial que posee este sistema opera-tivo. Está destinado a usuarios que ya tienen alguna experiencia y desean dominar sus herramientas. COLECCIÓN: MANUALES USERS 256 páginas / ISBN 978-987-1347-54-4 Administrador de Redes En este manual encontraremos en for-ma didáctica, clara y precisa todos los conceptos vinculados a la planifica-ción, instalación y puesta en funcio-namiento de una red en una empresa pequeña utilizando Windows Small Business Server. COLECCIÓN: MANUALES USERS 336 páginas / ISBN 978-987-1347-53-7 101 Trucos para la PC Este libro nos permitirá acelerar el fun-cionamiento de nuestra PC, convertir-la en una fortaleza frente a los ata-ques, optimizar el rendimiento, nave-gar más rápido por Internet, aprove-char al máximo las nuevas caracterís-ticas de Office 2007 y mucho más. COLECCIÓN: MANUALES USERS 336 páginas / ISBN 978-987-1347-48-3 El gran libro del desarrollador En este libro encontraremos el mejor material para estar actualizados con las últimas tecnologías, herramientas y recursos del mundo de la progra-mación. 256 páginas a todo color donde los expertos desarrollan los conceptos fundamentales de cada plataforma. COLECCIÓN: MANUALES USERS 256 páginas / ISBN 978-987-1347-47-6 202 Secretos de Linux Cómo optimizar el sistema y volverlo más seguro, aumentar el rendimiento del equipo, habilitar funciones espe-ciales y automatizar tareas cotidianas, son sólo algunos de los objetivos que lograremos con los más de 200 secre-tos revelados en este libro. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 978-987-1347-41-4 I Un servicio exclusivo para responder a sus consultas sobre nuestros productos
  • 285. ¡GRATIS LÉALO ANTES! En nuestro sitio puede obtener en forma gratuita un capítulo del libro que quiera. Servicio de Atención al Lector lectores@redusers.com Excel 2007 Este manual brinda los conocimientos necesarios para dominar la nueva ver-sión de Excel. Está destinado tanto a quienes nunca utilizaron Excel, como también a quienes buscan conocer y dominar las novedades de esta pode-rosa herramienta. COLECCIÓN: MANUALES USERS 352 páginas / ISBN 978-987-1347-50-6 Inteligencia Artificial En este libro empezaremos a descu-brir la esencia detrás de esta metodo-logía del desarrollo de videojuegos y a crear algoritmos que tomen decisio-nes o las apoyen de manera inteligen-te. Una obra práctica reforzada con te-oría para aprender más rápido. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 978-987-1347-51-3 PC Total Este libro contiene cientos de activi-dades, procedimientos, ideas y conse-jos que nos permitirán obtener el máx-imo potencial de nuestra PC. Destina-do a quienes utilizan su computadora especialmente en la oficina o en su casa para trabajar o estudiar. COLECCIÓN: MANUALES USERS 224 páginas / ISBN 978-987-1347-49-0 Secretos PC En esta obra presentamos una selec-ción de los mejores secretos, solucio-nes, ideas y actividades para aprove-char nuestra computadora al máximo. Con explicaciones desarrolladas a tra-vés de procedimientos paso a paso, guí-as visuales y consejos de los expertos. COLECCIÓN: MANUALES USERS 224 páginas / ISBN 978-987-1347-42-1 Windows Vista Este manual contiene un material imper-dible para aprovechar al máximo todo el potencial del nuevo Windows Vista. En sus páginas encontraremos cientos de trucos, claves y secretos para dominar nuestra PC en el trabajo y el hogar con el nuevo sistema operativo. COLECCIÓN: MANUALES USERS 384 páginas / ISBN 978-987-1347-40-7 Videojuegos En este libro encontrará todas las claves para aprender a programar un videojuego desde cero utilizando Visu-al C++ Express. Un material imperdible de principio a fin para quienes quieren hacer sus primeras armas en el mun-do de la creación de videojuegos. COLECCIÓN: MANUALES USERS 416 páginas / ISBN 978-987-1347-38-4
  • 286. Visite nuestro sitio en la Web usershop.redusers.com Redes avanzadas Un libro especialmente pensado para instalar, configurar y administrar grandes redes. Siguiendo un ejemplo concreto, veremos todos los pasos a seguir para comprar el equipamiento, instalar el cableado, configurar los servidores y administrar la red COLECCIÓN: MANUALES USERS 256 páginas / ISBN 978-987-1347-36-0 Técnico en Redes Este libro brinda los conocimientos necesarios para planificar, instalar, configurar y administrar redes de computadoras para el hogar y la ofi-cina. Veremos cómo comprar e insta-lar, armar la red, compartir y adminis-trar los recursos y protegerla. COLECCIÓN: MANUALES USERS 256 páginas / ISBN 978-987-1347-37-7 Diseño Web con Flash Esta obra está destinada a usuarios que no conocen Flash y desean dom-inarlo, y a quienes buscan conocer los pasos a seguir para hacer que un sitio web luzca profesional. El material más completo sobre la herramienta elegi-da por los profesionales. COLECCIÓN: MANUALES USERS 384 páginas / ISBN 978-987-1347-34-6 3D Max Master En las páginas de este libro encon-traremos un recorrido por aquellos temas vinculados al armado de redes profesionales, y descubriremos ca-da una de las herramientas que GNU/Linux posee para su adminis-tración avanzada. COLECCIÓN: MANUALES USERS 352 páginas / ISBN 978-987-1347-28-5 Producción musical con la PC Este libro nos ofrece las herramientas teóricas y prácticas necesarias para poder componer y grabar música por computadora. Cada capítulo contiene ideas para dominar Ableton Live, Rea-son y Soundforge. Gracias al proyec-to integrador, dominaremos este arte. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 978-987-1347-24-7 AJAX Web 2.0 Este manual nos brindará los conoci-mientos y las herramientas necesa-rias para implementar soluciones ba-sadas en Ajax. Veremos los lenguajes JavaScript, PHP, .NET, Java, XML, y JSON. Conceptos teóricos y casos prácticos listos para implementar. COLECCIÓN: MANUALES USERS 416 páginas / ISBN 978-987-1347-20-9 I Un servicio exclusivo para responder a sus consultas sobre nuestros productos
  • 287. ¡GRATIS LÉALO ANTES! En nuestro sitio puede obtener en forma gratuita un capítulo del libro que quiera. Visual Basic 20055 En este libro encontraremos los prin-cipales conceptos de .NET y Visual Basic: .NET Framework, control de errores, orientación a objetos, desa-rrollo de aplicaciones Windows y Web, acceso a datos con ADO.NET y todo lo que necesita el desarrollador COLECCIÓN: MANUALES USERS 368 páginas / ISBN 978-987-1347-32-2 Grabación de CDs y DVDs Un material imperdible con las carac-terísticas para comparar las grabado-ras del mercado; la instalación y con-figuración para obtener el máximo rendimiento; y el software y los secre-tos de los expertos para exprimir la grabadora al máximo. COLECCIÓN: MANUALES USERS 353 páginas / ISBN 978-987-1347-31-5 Gestión empresarial El objetivo de esta obra es brindar las habilidades necesarias para la elabo-ración de proyectos que permitan me-jorar la gestión de la empresa utilizan-do Microsoft Excel, una herramienta indiscutida para llevar a cabo esta tarea en la compañía. COLECCIÓN: PROFESSIONAL TOOLS 272 páginas / ISBN 978-987-1347-30-8 Hardware Este manual brinda las habilidades pa-ra dar solución a los problemas que pueda tener una PC. Una obra a todo color, con ilustraciones y fotografías de los procedimientos, que no puede faltar en la biblioteca de ningún técni-co o amante del hardware. COLECCIÓN: MANUALES USERS 352 páginas / ISBN 987-1347-18-9 Edición de video En este manual encontrará las claves y los secretos para procesar un video desde cero. Desde la captura de las imágenes, analizaremos todos los pa-sos que se deben seguir para proce-sar, editar y grabar un video utilizan-do Adobe Premiere Pro. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 987-1347-14-6 Proyectos Web A través del desarrollo de proyectos, esta obra combina todo el potencial de cuatro poderosas tecnologías: Flash del lado del cliente, PHP del la-do del servidor, XML como nexo entre cliente y servidor, y MySQL como ba-se de datos. COLECCIÓN: MANUALES USERS 384 páginas / ISBN 987-1347-15-4 Servicio de Atención al Lector lectores@redusers.com
  • 288. Visite nuestro sitio en la Web usershop.redusers.com I Un servicio exclusivo para responder a sus consultas sobre nuestros productos Photoshop Master Este manual explica los mayores secre-tos de esta poderosa herramienta para crear los efectos más increíbles: conver-tir fotografías en historietas, crear obje-tos realistas, incorporar cambios climá-ticos, retocar las imágenes de personas, mejorar la iluminación y mucho más. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 987-1347-12-x Web Services con C# Entender Web Services es fundamen-tal para todo arquitecto, ingeniero, analista y desarrollador de software. En este libro se brindan las habilida-des necesarias para introducirse en el desarrollo, diseño y administración de Web Services empleando C#. COLECCIÓN: MANUALES USERS 368 páginas / ISBN 987-1347-11-1 Actualizar la PC Este libro es el mejor material para aprender a actualizar nuestra PC des-de cero. Descubriremos cómo evaluar las características técnicas de cada equipo, y reemplazar los componen-tes internos y los periféricos, sin tener conocimientos previos. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 987-1347-10-3 DirectX En este libro se abordan los conceptos fundamentales vinculados a la progra-mación de gráficos 3D con DirectX, el API más utilizado para el desarrollo de aplicaciones interactivas y videojue-gos. Técnicas y procedimientos para crear objetos 3D profesionales. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 987-1347-04-9 101 secretos de Windows Una obra imperdible con más de 100 trucos que nos permitirán personali-zar y optimizar el funcionamiento de Windows XP. Todas las claves y los se-cretos para modificar el entorno grá-fico, acelerar las tareas, resolver fa-llas y mejorar el trabajo en red. COLECCIÓN: USERS EXPRESS 272 páginas / ISBN 987-1347-01-4 Creación de sitios Web Con este manual aprenderemos a di-señar y armar sitios web utilizando Fi-reworks, Flash y Dreamweaver. Cómo planificar y armar la estructura de las páginas, preparar las imágenes, regis-trar y publicar el sitio. Resultados sor-prendentes en cada trabajo. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 987-22995-9-5
  • 289. ¡GRATIS LÉALO ANTES! En nuestro sitio puede obtener en forma gratuita un capítulo del libro que quiera. ADO.NET Con el objetivo fundamental de apro-vechar las optimizaciones que existen en cada una de las versiones de ADO.NET, este libro brinda las habilida-des necesarias para introducirse en las diferentes partes que lo componen. Una obra ideal para el desarrollador. COLECCIÓN: MANUALES USERS 320 páginas / ISBN 987-1347-07-3 Técnico en Hardware Esta obra brinda las habilidades nece-sarias para diagnosticar y reparar fa-llas de hardware. Imprescindible pa-ra hacer frente a conflictos con el motherboard, el microprocesador o la memoria; fallas en la fuente de alimen-tación, periféricos y más. COLECCIÓN: MANUALES USERS 224 páginas / ISBN 987-1347-05-7 Técnico en Windows En esta obra se desarrolla el camino a seguir para implementar la solución adecuada a los problemas, y respon-der en forma profesional a las necesi-dades de clientes potenciales y em-presas. Una guía con todo lo que un técnico debe saber sobre Windows. COLECCIÓN: MANUALES USERS 224 páginas / ISBN 987-1347-06-5 Implementación y debugging Ésta es una obra de consulta perma-nente para el desarrollador. En ella se abordan dos etapas clave del ciclo de vida de un software: la implementa-ción de un proyecto y su debugging. Codificación exitosa y técnicas de de-bugging sin errores. COLECCIÓN: USERS.CODE 320 páginas / ISBN 987-22995-7-9 PHP5 PHP es uno de los lenguajes de pro-gramación elegidos a nivel mundial para el desarrollo de sitios web. Este manual brinda el conocimiento para comprender las mejoras introducidas en esta versión y aplicarlas en los pro-yectos personales y profesionales. COLECCIÓN: USERS.CODE 416 páginas / ISBN 987-22995-6-0 Cómo proteger la PC Virus, spyware, troyanos y muchas amenazas más circulan por la Web buscando nuevas víctimas. ¿Cómo evitar intrusiones? ¿Cómo eliminar el spam? En este libro, las respuestas a estas preguntas y los fundamentos para evitarlas en el futuro. COLECCIÓN: MANUALES USERS 352 páginas / ISBN 987-22995-4-4 Servicio de Atención al Lector lectores@redusers.com
  • 290. Visite nuestro sitio en la Web usershop.redusers.com Linux para todos Esta obra explica, desde cero, cómo instalar y configurar Linux en nuestra PC. Personalización, optimización, mantenimiento, seguridad, las mejo-res aplicaciones y mucho más. ¡Llegó el momento de dar el gran paso y hac-er el cambio COLECCIÓN: MANUALES USERS 320 páginas / ISBN 987-526-396-6 Computación para fanáticos 256 páginas destinadas a conocer los secretos para elegir e instalar dispo-sitivos, descubrir las mejores opcio-nes para optimizar el sistema operati-vo y hacer que nuestra PC vuele. El li-bro perfecto para quienes no nos con-formamos con sólo usar la PC. COLECCIÓN: MANUALES USERS 256 páginas / ISBN 987-226-71-3-8 Programación Web Java Este libro brinda las herramientas ne-cesarias para convertirse en un ver-dadero experto en el desarrollo de aplicaciones web con Java. Destina-do a todos aquellos desarrolladores que posean conocimientos de progra-mación orientada a objetos. COLECCIÓN: USERS.CODE 352 páginas / ISBN 987-526-391-5 El gran Libro del Software En este libro encontrará los tutoriales de las mejores herramientas, trucos y secretos para aprovechar al máximo su computadora. Explicaciones deta-lladas, con divisiones por categorías para facilitar el aprendizaje de las dis-tintas áreas de la informática actual. COLECCIÓN: MI PC 256 páginas / ISBN 987-526-385-7 Freeware Una recopilación de los mejores pro-gramas de licencia libre, explicados en detalle. Guías visuales y procedi-mientos paso a paso para llevar el uso de la PC a una nueva dimensión. En el CD incluido en el libro encontrará los programas listos para su instalación. COLECCIÓN: USERS EXPRESS 368 páginas / ISBN 987-526-370-2 Mi PC 256 páginas que lo introducirán en el mundo de la informática. Sepa cómo manejarse en el entorno Windows, y aprenda a configurar sus principales elementos y aplicaciones. Entienda cómo funcionan la PC y sus compo-nentes. La guía inicial de la PC. COLECCIÓN: MI PC 256 páginas / ISBN 987-526-369-9 I Un servicio exclusivo para responder a sus consultas sobre nuestros productos
  • 292. ROBOTICA CONTENIDO 1 | INTRODUCCIÓN ¿Qué es un robot? ¿Cuándo conviviremos con ellos? ¿Tendremos diversos tipos de robots entre nosotros? ¿Lavarán los platos? En este primer capítulo intentaremos responder éstas y otras preguntas. 2 | COMPONENTES DEL ROBOT Tipos de procesamiento | ¿Cómo le damos movimiento a nuestro robot? | ¿Cómo captamos el mundo que nos rodea? | Materiales para la mecánica 3 | LA INTELIGENCIA DEL ROBOT Componentes de nuestro robot | Objetivos del controlador | Conceptos fundamentales de un PIC | Listado de componentes del controlador | Descripción del circuito | Placa experimental | El programador 4 | COMIDA DE ROBOTS La fuente de energia | Tipos de batería | Cargadores | Características de las celdas de las baterías | Voltaje | Capacidad | Densidad | Curva de descarga | Resistencia | Capacidad de recarga | Costo | Efecto memoria 5 | HABLAR CON NUESTRO ROBOT Lenguajes de programación para robots | PicBasic Pro | Compilador CCS C | MikroBasic 6 | RECORRER EL MUNDO El movimiento de los robots | Motor de corriente continua | Motor paso a paso | Servos 7 | ADAPTACIÓN AL ENTORNO Sensores analógicos y digitales | Tipos y características 8 | EL CUERPO DEL ROBOT Características de un robot autónomo | Robots aéreos | Robots subacuáticos | Robots terrestres | Sistemas con ruedas | El montaje de los elementos | Mecanismos de transmisión y reducción | Cinemática | Odometría 9 | SALIR AL RUEDO Presentarnos a competir | Problemas frecuentes | Pruebas tradicionales 10 | FÚTBOL DE ROBOTS Arquitectura y navegación de los robots | Sensado y detección del ambiente | Comportamiento colaborativo | Ligas nacionales e internacionales APÉNDICE | LA ELECTRÓNICA La ROBÓTICA ya no es parte de un futuro lejano sino de nuestro presente tangible. Y este manual es, sin dudas, la mejor forma de acceder a ella. En su interior encontraremos un recorrido teórico y práctico por cada uno de los conceptos fundamentales. Se explican en detalle cuáles son las partes que componen un robot y cada uno de los pasos por seguir para armar-lo y programarlo a nuestro gusto. Destinado a entusiastas y aficionados de la cien-cia ficción y las nuevas tecnologías, cada uno de los temas es desarrollado desde cero, y con la mayor claridad y profundidad. Su autor, coordinador del campeona-to argentino de Fútbol de Robots y miembro del Consejo Latinoamericano de RoboCup y Cochair de la FIRA, vuelca en este libro su vasta experiencia. redusers.com NIVEL EXPERTO AVANZADO INTERMEDIO PRINCIPIANTE En este sitio encontrará una gran variedad de recursos y software relacionado, que le servirán como complemento al contenido del libro. Además, tendrá la posibilidad de estar en contacto con los editores, y de parti-cipar del foro de lectores, en donde podrá intercambiar opiniones y experiencias. ROBOTICS This science is no longer part of a distant future, it is a part of a very real and concrete present. This manual offers the fundamentals to be a member of this new reality through practical projects and by learning the theory behind them. APRENDA A ARMAR ROBOTS DESDE CERO