Robotica [Users]

292
APRENDA A ARMAR ROBOTS DESDE CERO ¡CONVIERTA SU PASIÓN EN REALIDAD! EL MONTAJE DE LA PIEZAS Las partes que componen un robot Los pasos para ensamblarlas Gonzalo Zabala LA INTELIGENCIA Trabajar con microcontroladores Lenguajes de programación ROBOTS AUTÓNOMOS Utilización de sensores Mecanismos para generar movimiento Guía Teórica y Práctica

description

Robotica [Users] Aunque este libro les será de utilidad a los tres primeros grupos, seguramente 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 sencillo y de bajo costo, que permita realizar tareas simples en forma autónoma.Para ello, presentaremos todos los aspectos esenciales que conforman la arquitectura de un robot, inclusive más allá de los que necesitaremos para la construcción de nuestro modelo, de manera tal que el lector pueda perfeccionar su creación con nuevos sensores, actuadores y procesadores. ----------------------------------------------------------------------------------- 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 profundamente los conceptos que entran en juego. En los siguientes capítulos estudiaremos paso a paso los elementos necesarios para llevar a cabo esta tarea con éxito.

Transcript of Robotica [Users]

Page 1: Robotica [Users]

APRENDA A ARMAR ROBOTS DESDE CERO

¡CONVIERTA SUPASIÓNEN REALIDAD!

EL MONTAJE DE LA PIEZAS● Las partes que componen un robot● Los pasos para ensamblarlas

Gonzalo Zabala

LA INTELIGENCIA● Trabajar con microcontroladores● Lenguajes de programación

ROBOTS AUTÓNOMOS● Utilización de sensores● Mecanismos para generar movimiento

Guía Teórica y PrácticaRO

BOTIC

AG

uía

Teór

ica

y Pr

ácti

ca

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ítulointentaremos responder éstas y otras preguntas.

2 | COMPONENTES DEL ROBOTTipos de procesamiento | ¿Cómo le damos movimientoa nuestro robot? | ¿Cómo captamos el mundo que nosrodea? | Materiales para la mecánica

3 | LA INTELIGENCIA DEL ROBOTComponentes de nuestro robot | Objetivos delcontrolador | Conceptos fundamentales de un PIC |Listado de componentes del controlador | Descripcióndel circuito | Placa experimental | El programador

4 | COMIDA DE ROBOTSLa 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 ROBOTLenguajes de programación para robots | PicBasic Pro |Compilador CCS C | MikroBasic

6 | RECORRER EL MUNDOEl movimiento de los robots | Motor de corrientecontinua | Motor paso a paso | Servos

7 | ADAPTACIÓN AL ENTORNOSensores analógicos y digitales | Tipos y características

8 | EL CUERPO DEL ROBOTCaracterísticas de un robot autónomo | Robots aéreos |Robots subacuáticos | Robots terrestres | Sistemas conruedas | El montaje de los elementos | Mecanismos detransmisión y reducción | Cinemática | Odometría

9 | SALIR AL RUEDOPresentarnos a competir | Problemas frecuentes |Pruebas tradicionales

10 | FÚTBOL DE ROBOTSArquitectura y navegación de los robots | Sensado ydetección del ambiente | Comportamiento colaborativo| Ligas nacionales e internacionales

APÉNDICE | LA ELECTRÓNICA

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.

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.

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.

ROBOTICS

redusers.com

APRENDA A ARMAR ROBOTS DESDE CERO

NIVEL

EXPERTO

AVANZADO

INTERMEDIO

PRINCIPIANTE

opcion2.qxp 16/11/2009 12:51 Página 1

Page 2: Robotica [Users]

Untitled-3 1Untitled-3 1 06/11/2009 16:10:4306/11/2009 16:10:43

Page 3: Robotica [Users]

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.

En nuestro sitio puede obtener, en forma gratuita, un capítulo de cada uno de nuestros libros:u s e r s h o p . r e d u s e r s . c o m

Gratis!Léalo antes Gratis!

usershop.redusers.com

ARGENTINA& (011)4110-8700

MÉXICO& (55)5350-3099

CHILE& (2)810-7400

ESPAÑA& (93)635-4120

o por e-mail a: [email protected]

Conéctese con nosotros!

Av_Pag01 10/23/07 11:04 PM Page 1

Page 4: Robotica [Users]

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 marcala ley 11723. Todos los derechos reservados. No se permite la reproducción parcial ototal, 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. Suinfracció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 lasmarcas mencionadas en este libro son propiedad exclusiva de sus respectivos due-ños. Impreso en Argentina. Libro de edición argentina. Primera impresión realizadaen Sevagraf, Costa Rica 5226, Grand Bourg, Malvinas Argentinas, Pcia. de Buenos Ai-res en noviembre de MMIX.

IISSBBNN 997788--998877--11334477--5566--88

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ítuloCDD 005.3

00_robotica.qxp 18/11/2009 10:52 Página 2

Page 5: Robotica [Users]

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 3

Page 6: Robotica [Users]

PRELIMINARES

4

Gonzalo Zabala

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ógicay 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 eventoscon 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 AbiertaInteramericana, donde creó el Grupo de Investigación deRobótica Autónoma. Fue coordinador de diversos equipos dealumnos que han participado en forma nacional e interna-cional en competencias de robótica, y obtuvieron excelentesresultados 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.

DedicatoriaA 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 susalumnos construyan robots maravillosos de la nada.Y a Marcelo De Vincenzi, porque me abrió las puertaspara 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.

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 4

Page 7: Robotica [Users]

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 deellas, pero seguramente me olvidaré de muchas más, que espero que meperdonen y me lo recriminen, para no olvidarme la próxima vez.

Antes que nada, quiero agradecerles a Néstor Balich y a Gonzalo Mon porla colaboración en los capítulos en los que están mencionados, en especiala 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 misconstantes incumplimientos, por alentarme cuando me quería bajar deltren 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énsoportaron 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 delo que aprendí fue gracias a sus preguntas. Para ellos, mi más dulce recuerdo.

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 5

Page 8: Robotica [Users]

PRELIMINARES

6

Prólogo

Si Ud. tiene este libro en sus manos, es por alguna o algunas de las siguien-tes 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 vezle 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 lalí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 deellos. Nuestro objetivo es poder describir, paso a paso, la electrónica, lamecá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 conformanla 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 puedaperfeccionar 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-

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 6

Page 9: Robotica [Users]

Prólogo

7

mente le parezca mágico el funcionamiento de ciertos aspectos del robot. Sinembargo, como seguiremos la descripción de la construcción de forma deta-llada, 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 nosencontramos 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 conubicar las ruedas en forma razonable.

Bienvenido entonces, estimado lector, a esta nueva aventura. Es nuestroprofundo deseo que al finalizar estas páginas, tenga dando vueltas por sucasa 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 (¡oen el planeta!). Y por qué no, que un día, al golearnos con su equipo derobots en un partido de cinco contra cinco, nos honre al contarnos que suprimera experiencia fue con esta humilde obra. Le podemos asegurar queese día, a pesar de la derrota, ¡tocaremos el cielo con las manos!

Lic. Gonzalo Zabala y colaboradores.

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 7

Page 10: Robotica [Users]

PRELIMINARES

8

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

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 8

Page 11: Robotica [Users]

El libro de un vistazo

9

!

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:

INFORMACIÓN COMPLEMENTARIA

CURIOSIDADESE IDEAS

DATOS ÚTILESY NOVEDADES

ATENCIÓN SITIOS WEB❘❘❘

✱❴❵

de sensores y los probaremos con nuestro

controlador. Del mar de componentes digi-

tales y analógicos, seleccionaremos un

subconjunto para aplicarlo a nuestro robot.

Capítulo 8

EL CUERPO DEL ROBOT

En este punto, tenemos el robot casi termi-

nado pero desmembrado. ¿Qué materiales

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 con sus respectivas modificaciones

electrónicas, mecánicas y de programación.

Analizaremos las características de las

pruebas de robots autónomos y los proble-

mas que hay que enfrentar para superarlas.

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

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.

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 9

Page 12: Robotica [Users]

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

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 10

Page 13: Robotica [Users]

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

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 11

Page 14: Robotica [Users]

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

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 12

Page 15: Robotica [Users]

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

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

Contenido

13

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 13

Page 16: Robotica [Users]

14

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 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 queutilizamos para aquellos que entran a nuestros laboratorios y nos preguntan ¿y esoque 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, tuvimosganas de abrir el juego. La gente de esta editorial nos invitó a presentar el tema enforma 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 queentienden todo sin que se les explique demasiado porque tienen una suerte de gen delprogramador y, con sólo recibir un par de ideas y algunos apuntes, al cabo de un mesregresaban con un sistema de control de centrales termonucleares. Y el otro conjuntode alumnos, más abultado, que a pesar de todos los recursos, inventos y triquiñuelasdidácticos, no lograban superar el PRINT “HOLA MUNDO”. Por lo tanto, mi tareacomo 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í mecrucé con los robots y con los entornos de objetos. Con el primer tema me casé y conel 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 meha dado inmensas satisfacciones, me ha permitido viajar a lugares que nunca creí queiba 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 sencillopara viajar a obras mucho más completas que nos regalarán experiencias maravillosas.

00_robotica.qxp 24/10/2007 01:57 p.m. PÆgina 14

Page 17: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Introducción a la robótica 16¿Qué es un robot? 16Tipos de robots 19Unidades de un robot 23Procesamiento 24Sensores 33Actuadores 39

Resumen 43Actividades 44

Colaborador:Ing. Gonzalo Mon

01_ROBOTICA.qxd 24/10/2007 02:01 p.m. PÆgina 15

Page 18: Robotica [Users]

INTRODUCCIÓN A LA ROBÓTICA

Día a día, nos sorprendemos con lasnoticias que aparecen en los mediosde comunicación vinculadas a lapresencia de robots en diversos cam-pos de la vida cotidiana. Robots en-fermeros, mascotas, repositores desupermercados, detectores de explo-sivos, aspiradoras hogareñas, o sim-ples jugadores de fútbol, son algu-nos de los ejemplos que podemosencontrar en el mercado de la tecno-logía de última generación. En síntesis, la robótica ya no esparte de nuestro futuro sino denuestro 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 limitacionesreales están desdibujados en el ima-ginario colectivo. Es por eso que eneste primer capítulo haremos unaintroducción a los conceptos funda-mentales de la robótica.

¿Qué es un robot?Sueño de muchas generaciones, laexplosión tecnológica nos ha puestoal alcance de poder concretarlo.Para comenzar nuestro recorrido,hagamos un repaso de la historia dela robótica para comprender haciadónde nos dirigimos.

1. CONCEPTOS FUNDAMENTALES

16

Figura 1. Roomba, la aspiradora robótica más popular y económica del mercado.

01_ROBOTICA.qxd 24/10/2007 02:01 p.m. PÆgina 16

Page 19: Robotica [Users]

A imagen y semejanzaDesde los orígenes del hombre, po-demos encontrar varios relatos sobrela creación de vida artificial. Porejemplo, en la leyenda del Golem,un rabino de Praga le infunde vida auna estatua de barro. Asimismo, enla obra literaria Frankenstein, eldoctor de dicho nombre crea un sera partir de órganos de otras perso-nas, que luego se vuelve contra él.Si nos apartamos de la literatura, enel antiguo Egipto encontramos esta-tuas de dioses que incorporaban bra-zos mecánicos operados por los sa-cerdotes. En el siglo XIX, también sehicieron conocidas las creaciones derobots que jugaban ajedrez, aunqueen realidad éstos ocultaban a un serhumano de baja estatura que opera-ba la máquina desde su interior (Fi-gura 2). Es decir, el deseo de creaciónde 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. Eldramaturgo Karel Capek utilizó porprimera vez este término en su obraOpilek para referirse a un conjuntode máquinas inventadas por un cien-tífico para realizar tareas pesadas yaburridas. En checo, idioma originalde 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

17

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.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 17

Page 20: Robotica [Users]

to de robótica en diversos relatos deciencia ficción de su autoría. En susobras, Asimov muestra facetas hu-manas de los robots y define un con-junto de leyes para que estos seresnuevos nunca se rebelen contra loshumanos. Luego, el cine y la televi-sión generaron cientos de robots dediversa índole, algunos simpáticos(como R2D2 y Cortocircuito), yotros definitivamente en contra desus 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 TheTomorrow Tool. A partir de ese mo-mento, junto con la evolución de lossistemas de procesamiento, el creci-miento de la robótica ha sido expo-nencial. La reducción de tamaño yde costos, y el aumento de la capa-cidad de cálculo de los procesadores,han permitido la creación de robotscada vez más sofisticados, rápidos yautónomos. Sin embargo, aún esta-mos lejos de crear un robot a nues-tra imagen y semejanza.

Definición de la palabra robotExisten muchas definiciones de lapalabra robot. En cada una de ellas,encontramos destacado algún aspec-to en particular, que es el que cadaautor quiere resaltar en su obra. Se-

gún la Asociación Japonesa de Robó-tica Industrial (JIRA), los robots sondispositivos capaces de moverse de mo-do flexible, análogo al que poseen losorganismos vivos, con o sin funcionesintelectuales, lo que permite la realiza-ción de operaciones en respuesta a ór-denes recibidas por humanos. Vemosque en esta definición se encuentraresaltada la capacidad de movimien-to de los robots y su analogía con losseres de la naturaleza. Sin embargo,a la JIRA no le interesa la inteligen-cia artificial aplicada al robot, dadoque su función fundamental es seroperado 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.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 18

Page 21: Robotica [Users]

teamérica (RIA) define a un robotindustrial como un manipuladormultifuncional y reprogramable dise-ñado para desplazar materiales, com-ponentes, herramientas o dispositivosespecializados por medio de movimien-tos programados variables, con el fin derealizar diversas tareas. En este caso,el acento está puesto en la capacidadde programación del robot y, por lotanto, en cierta independencia defuncionamiento con respecto a laoperación humana. Como dijo Jo-seph Engelberg, padre de la robóticaindustrial: 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 hemosganado el derecho dado que estamosescribiendo un libro sobre robótica,agregaremos una definición más derobot a la larga lista preexistente: unrobot es un dispositivo con un de-terminado grado de movilidad, quepuede realizar un conjunto de ta-reas en forma independiente y quese adapta al mundo en el que ope-ra. El objetivo de esta definición es

comenzar a introducirnos en el tipode robot sobre el que vamos a centrar-nos en el desarrollo del libro.

Tipos de robotsDe 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 encontramosen el desarrollo de un robot. Las cla-sificaciones elegidas son:

Según el uso del robotA continuación presentaremos unaclasificación posible de los robots se-gún su utilidad específica.• Industriales: se utilizan dentro de

un proceso de trabajo industrial. Esel tipo de robot que más ha sido de-sarrollado en la historia (Figura 5).

• Espaciales: deben desenvolverse enzonas inexploradas y a larga distan-cia de su centro de control.

• Médicos: son utilizados comoapoyo en la intervención médica

Introducción a la robótica

19

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

UN ROBOT QUE JUGABA AL AJEDREZ

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 19

Page 22: Robotica [Users]

sobre los humanos y como com-plemento para las personas con ca-pacidades disminuidas.

• Domésticos: el sueño de todo amoo 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únel ambiente en el que trabajan.

• Sociales: robots utilizados en ám-bitos sociales (como películas,eventos y supermercados) con fun-ciones de comunicación intensivacon 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 realizaruna comunicación completa, congestos, tonos, silencios, etcétera.

• Agrícolas: así como en sus co-mienzos la robótica tuvo ampliaaplicación en la industria, en losúltimos años ha comenzado a cre-cer en forma exponencial el uso derobots y de la inteligencia artificialen el sector agrícola-ganadero. Lascosechadoras autónomas, las sem-bradoras controladas por mapassatelitales, los fumigadores roboti-zados y otros dispositivos hicieronsu aparición dentro de lo que ac-tualmente se conoce como agri-cultura de precisión (Figura 6).

1. CONCEPTOS FUNDAMENTALES

20

Figura 5. Kit de brazo robótico

RA-01 con 5 servos.

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

ROBOTS INSECTOS

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 20

Page 23: Robotica [Users]

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 vistamecánico y electrónico (Figura 8).

• Terrestres: son los más popularesy 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 delsistema de levitación (Figura 7).

• Híbridos: combinación de algu-nos de los anteriores.

En esta clasificación, las característi-cas mecánicas del robot se modifi-can en forma sustancial entre uno uotro medio. Prácticamente, es impo-

Introducción a la robótica

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.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 21

Page 24: Robotica [Users]

sible utilizar la mecánica de un ro-bot construido en un medio paraque 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. Puedecomunicarse con otros o con unsistema central, pero los aspectosesenciales de funcionamiento seresuelven en forma independienteen el propio robot.

• Control automatizado (semiautó-nomos): la mayor parte de la inte-ligencia del robot está ubicada enun sistema central. Los sensorespueden ser locales, es decir que leenvían la información obtenida aese sistema central, o globales. Elsistema central les comunica a los

robots las acciones que deben rea-lizar. Un ejemplo de este modeloes la categoría Mirosot de fútbolde robots de la FIRA.

• Híbridos: son robots autónomosque, en ciertos momentos del pro-ceso, pueden ser controlados porhumanos o por un sistema central.Un ejemplo son los robots que seutilizan en misiones espaciales, queoperan en forma autónoma peroque, ante un percance, pueden serdirigidos desde nuestro planeta.

También podríamos clasificar a losrobots por sus características estruc-turales, por el tipo de sensado delmundo, etcétera. De todas maneras,todos los robots comparten la mis-ma arquitectura básica, desde el máspequeño hasta Terminator. A conti-nuación veremos la fuerte analogía

1. CONCEPTOS FUNDAMENTALES

22

Figura 8. Robotacuático japonés,

que imita la

estructura de

algunos seres

acuáticos.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 22

Page 25: Robotica [Users]

que encontramos entre un robot yuna computadora convencional.

Unidades de un robotEn la arquitectura de cualquier com-putadora, podemos encontrar las si-guientes unidades que la componen:

• Unidades de procesamiento: es elconjunto de dispositivos que seencargan de realizar la transforma-ción de los datos de entrada paraobtener 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 comunicarlelos resultados del procesamiento alusuario u operador.

En un robot podemos encontrar lamisma arquitectura. A las unidadesde entrada de un robot las llamamossensores, que pueden ser externos,como un sensor de tacto, o internos,como un encoder que permite deter-minar la distancia recorrida por unarueda. A las unidades de salida se lasconoce como actuadores. Aquí po-demos mencionar leds de señaliza-ción, buzzers, motores, displays,etcétera. En síntesis, el robot recibeinformación del ambiente mediantesus sensores, procesa la informa-ción con su unidad de procesamien-

to y realiza sus acciones al movermotores y encender luces y buzzers.Tomemos como ejemplo a uno de losrobots 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 tactoque tiene su piel. No recordamos quetenga olfato o que alguna vez haya co-mentado lo sabroso de alguna comi-da. Sus actuadores esenciales son losmotores o los músculos de alambreque conforman su cuerpo.Uno de los problemas más apasio-nantes de la robótica es el equilibrioque es necesario obtener entre las tresunidades, para lograr que el robotcumpla con su objetivo. Por ejemplo,los sensores más sofisticados o que

Introducción a la robótica

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.

GENERACIONES DE ROBOTS

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 23

Page 26: Robotica [Users]

entregan mayor cantidad de datos,como puede ser una cámara de video,exigen de parte del procesador unmayor tiempo de trabajo para poderobtener un conjunto de informaciónque resulte significativo. De la mismamanera, el control de los actuadoressofisticados, 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 imprescindiblelograr el equilibrio entre velocidady precisión, en especial en aquellosrobots que operan en entornos muydiná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 liberade esta tarea al procesador central yse complementa su función.En las próximas páginas, analizare-mos cada una de estas unidades enprofundidad, de forma tal que poda-mos realizar la elección adecuada se-gún los objetivos específicos quetengamos para nuestro robot.

ProcesamientoCuando comenzamos a analizar loque nos ofrece el mercado de la ro-bótica con respecto a procesamiento,probablemente nos encontremosconfundidos ante la diversidad deposibilidades. Podemos encontrardesde micros de muy bajo precio, en

los que debemos construir en formaartesanal toda la electrónica que loscomplementa para poder procesarlas entradas y salidas, hasta costososkits que tienen absolutamente todoresuelto. Está claro que con éstos úl-timos podremos hacer que nuestrorobot funcione en algunas horas, pe-ro es en el primer caso donde tendre-mos un control absoluto y de bajonivel de las capacidades de procesa-miento de nuestro dispositivo.De todas maneras, analizaremos enforma detallada las ventajas y lasdesventajas de ambas propuestas: eldesarrollo con el uso de kits frente ala construcción en forma artesanalde los robots. Además, conoceremosbrevemente algunos kits y microsdisponibles en el mercado, y hare-mos una lista de los sitios web don-de se puede conseguir informaciónmás detallada y completa.

KitsLos 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 deentrada y salida de los sensores re-suelta. Además, poseen un sistemaoperativo dentro del controlador(firmware), que eleva el nivel de pro-gramación de los procesadores, loque posibilita el uso de lenguajes dealto nivel o interfaces gráficas para el

1. CONCEPTOS FUNDAMENTALES

24

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 24

Page 27: Robotica [Users]

desarrollo de la inteligencia de nues-tro robot en forma muy sencilla.

• Un conjunto de sensores queaprovechan la electrónica ya re-suelta, y que con una simple cone-xión funcionan de manera casimágica. Por ejemplo, sensores deluz donde el firmware interpreta elvoltaje que entrega el sensor comoun valor entre 0 y 100.

• Un conjunto de motores quetambién utilizan la electrónica desalida, que se alimentan directa-mente de la misma fuente que ali-menta al procesador, y que graciasal firmware podemos indicarle di-rección, velocidad, etcétera, sin lanecesidad de cálculos complejos.

• Material constructivo para resolverla mecánica del robot, altamente

reutilizable y que en poco tiempopermite la elaboración de la física delrobot mediante la aplicación de co-nocimientos de nuestra infancia.

Si tenemos en cuenta este conjuntode materiales, es sencillo notar que lasventajas que nos presenta el uso dekits para la construcción de nuestrorobot son las siguientes:• Menor tiempo de construcción

del robot: en pocas horas, podemosobtener robots poderosos para losdesafíos habituales en robótica.

• Alta reusabilidad del material:una vez terminado el desafío, po-demos desarmar el robot y utilizartodas las piezas, los sensores, losmotores y el procesador para armarun robot completamente distinto.

• Baja necesidad de conocimientos

Introducción a la robótica

25

Figura 9. Lego Nxt con el conjunto de motores y sensores que vienen con el kit.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 25

Page 28: Robotica [Users]

técnicos: sin saber electrónica yprácticamente sin saber programa-ción, podemos desarrollar un robotpoderoso. Desde ya que para aque-llos usuarios que sí tengan esos co-nocimientos, el aprovechamientoserá mucho mayor. Más aún si losdesarrolladores del kit tuvieron laprecaución de dejar abiertos tanto elfirmware como el hardware del pro-cesador y los sensores.

De todas formas, no todas son cosaspositivas. 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 conrespecto a un desarrollo manual. Elrobot que construiremos en este li-bro mantiene esta relación con loskits más económicos de robótica.

• La imposiblidad, en muchos casos,de poder realizar modificaciones debajo nivel en el hardware o el firm-ware del robot. A pesar de todos losesfuerzos de documentación que ha-ga la empresa creadora del kit, es im-posible que todo sea altamente mo-dificable, por la misma necesidad demantener la arquitectura intrínsecadel robot. Su elaboración artesanaldesde cero nos permite modificarhasta el más mínimo detalle.

• Baja precisión y calidad final delos robots: dado que los kits sonpara el desarrollo de robots de di-versos propósitos, en todos los ca-sos perdemos precisión y calidad.Por ejemplo, los motores sirvenpara moverse en un determinadoambiente con alto margen deerror, pero no son veloces ni per-miten movimientos de precisióncomo lo pueden exigir ciertos ob-jetivos. En general, los sensoresson económicos, y el rango de va-lores que devuelven es pobre.

Los kits de robótica más conocidosen 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

Figura 10. Un humanoide realizado

con el Lego Nxt.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 26

Page 29: Robotica [Users]

Su procesador es un ARM7 de 32bits. Cuenta con 256 Kb de Flash y64 Kb de RAM. Se comunica porBluetooth clase 2 y por USB. Tiene4 entradas para sensores y 3 salidaspara actuadores. En el kit se inte-gran 3 motores servo con encodersincorporados para controlar su mo-vimiento con precisión.Además, cuenta con un sensor detacto, uno de sonido, otro de luz ypor último un sensor ultrasónico.Para la mecánica del robot cuentacon piezas de las denominadasTechnic, que permiten diseñar dife-rentes estructuras según el destinodel robot creado (Figura 10). El len-

guaje de programación es un am-biente gráfico muy sencillo, similaral Robolab de las versiones anterio-res, pero con mayor potencia y ver-satilidad. Para finalizar, una de lasmejores decisiones que ha tomado lafirma Lego es publicar muchísimainformación sobre el desarrollo tan-to de hardware como de software delkit, lo que ha permitido que en po-co tiempo (salió a la venta en agos-to de 2006) las personas de todo elmundo que tienen este hobby hayandesarrollado hardware y software es-pecífico fuera del oficial. Para obte-ner más información, podemos visi-tar http://mindstorms.lego.com.

Introducción a la robótica

27

Figura 11. Placa educativa del Basic Stamp de Parallax.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 27

Page 30: Robotica [Users]

• Parallax: el producto más popular deesta empresa es el micro Basic Stamp(Figura 11). Aunque uno puede adqui-rir solamente el micro y realizar el ro-bot desde cero como comentaremosmás adelante, hay tantos desarrollosy tantas presentaciones de productosde 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 elmundo de la robótica. Incluye un Ba-sic Stamp II, que tiene una velocidadde procesamiento de 20 Mhz, con 2Kb de EEPROM (electrically-erasableprogrammable 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 educativacon una pequeña protoboard (pla-

queta de experimentación), dondepodremos 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 yotros kits son excelentes (¡y algunasestán en castellano!), y pueden con-seguirse en forma gratuita en el sitiode la empresa. La última creación deParallax ha sido el micro de nombrePropeller, con 8 procesadores para-lelos en su interior. Tiene una arqui-tectura de 32 bits, 80 Mhz, con 32pines de E/S direccionables por cual-quiera de los 8 procesadores. Parabuscar más información, podemosvisitar www.parallax.com.

• XiOR: en América Latina, conta-mos con nuestro propio kit de ro-bótica. XiOR (www.xior.org) esuna empresa argentina de tecnolo-gía y entre sus trabajos ha desarro-llado un sistema constructivo parala 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 elusuario reconfigure toda su morfo-logía física para adaptarlo a diferen-tes entornos y experimentos. Inclu-so es posible combinarlo con otrosrobots similares para formar partede estructuras mayores.Normalmente, está equipado con2 o 4 celdas de Li-Ion de 900 mAh,

1. CONCEPTOS FUNDAMENTALES

28

Figura 12. Aquí podemos ver uno

de los modelos constructivos de XiOR,

conocido como N10.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 28

Page 31: Robotica [Users]

agrupadas en packs de a dos. Encuanto a las capacidades de procesa-miento, el controlador XiOR.0107tiene un procesador AVR ATMega8(Atmel, 2003) de 16 MIPS aproxi-madamente, y 8 KB de RAM deprograma, e incorpora comunica-ciones RS-232, 2WI y drivers de po-tencia para agregar dos motores adi-cionales de corriente continua o unmotor paso a paso. El sistema constructivo Múltiploofrece piezas de aluminio y plásti-co cuidadosamente diseñadas paradesarrollar robots de tamaño redu-cido, pero con una precisión y ro-bustez sorprendentes. Podemosencontrar más información enwww.xior.org.Además de estos kits que mencio-namos, el mercado de la robóticaeducativa crece día a día, y en laWeb podemos encontrar muchosotros que tal vez se ajusten mejora nuestras necesidades. Aunqueaquí describimos los más conoci-dos, podemos navegar para buscarmás información sobre el tema.

Robótica sin kitsComo comentamos antes, realizarun robot sin la ayuda de un kit nosproporciona mayor versatilidad, ro-bustez, potencia, precisión, veloci-dad y adaptabilidad. El problemaesencial es que nos exige mayor co-nocimiento y trabajo. Cuando co-mencemos un desarrollo de este tipo,lo primero que debemos analizar esel procesador que vamos a utilizar,según la funcionalidad y el costo quedeseamos que tenga nuestro robot.

Introducción a la robótica

29

Figura 13. Sphinx, otro modelo de XiOR

para el control de pozos de petróleo.

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

OTROS KITS LATINOAMERICANOS

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 29

Page 32: Robotica [Users]

Además, debemos tener en cuentaque es necesario complementar elprocesador con un circuito de con-trol adecuado para realizar las cone-xiones de entrada, salida, alimenta-ción y control de dispositivos.

MicrocontroladoresEl procesamiento más habitual en losrobots pequeños y de bajo costo es elprovisto por microcontroladores.Los micros más utilizados son los dela familia PIC, de la firma Micro-chip. De todos los modelos que seofrecen, el más popular para la cons-trucción de robots es el PIC16F84.Posee una memoria de programaFlash de 1 KB con palabras de 14 bits,una memoria RAM de datos de 68bytes y una EEPROM de 64 bytes, y13 pines de E/S. Por otra parte, su precio es más queaccesible. Dado que desarrollaremosnuestro robot con PIC, dejaremospara más adelante una descripciónmás detallada de éstos.La empresa Atmel fabrica otro tipode microcontroladores, que tambiénson de uso habitual en la construc-ción de robots. De todas sus líneas, ladenominada AVR de 8 bits es la másrecomendada para el procesamientoen esta disciplina. Toda la línea AVRpresenta características como bajopoder de consumo, arquitecturaRISC y Harvard, 32 registros de 8bits de propósito general y facilidadde implementación de lenguajes dealto nivel para la programación. En particular, el micro ATMega8 (Figu-ra 15) es ideal, dado que presenta unamemoria de 8 KB de programa, 1 KBde SRAM y 512 bytes de EEPROM,seis canales de PWM, USART progra-

1. CONCEPTOS FUNDAMENTALES

30

Figura 14. Otro de los micros

de la firma Microchip, creadora

del 16F84.

Figura 15. ATMega8 en una placa

de prototipado rápido.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 30

Page 33: Robotica [Users]

❘❘❘

mable, conversor analógico digital decuatro canales multiplexados de 10 u 8bits y dos canales de 8 bits, entre otrascaracterísticas que se pueden encontraren la página de la firma.

PDASi no tenemos una base de conoci-miento y experiencia en electrónicapara utilizar los microcontroladoresque presentamos pero contamos conuna Palm o una PocketPC, podemosdestinar parte de su tiempo de uso pa-ra que actúe como cerebro de nuestracreación. En los últimos años, estosdispositivos han bajado de precio enforma notable y, además, algunos mo-delos han caído en desuso, aunquepueden adaptarse perfectamente paraser empleados con nuestros robots.Uno de los ejemplos más interesantesen este punto es la adaptación del ro-bot Robosapien (Figura 17) de la fir-ma Wow Wee para que pueda sercontrolado desde una PocketPC porinfrarrojo, con lo cual utilizamos laPDA como control remoto inteligen-te que puede generar su propio pro-cesamiento. Para la detección del

mundo se utiliza una cámara que seconecta en el puerto de tarjetas de me-moria. En síntesis, con poco dineropodemos tener un robot humanoide.Se puede obtener más información enwww.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 robotautónomo móvil de bajo costo, y seutilizó una Palm como procesador (Fi-gura 18). En el sitio www.cs.cmu.edu/~reshko/PILOT podemos encontrartodos los pasos y los materiales nece-

Introducción a la 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.

ARDUINO, UNA PLATAFORMA OPEN HARDWARE PARA ROBÓTICA

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 31

Page 34: Robotica [Users]

sarios para construirlo, incluido elsoftware que es indispensable bajaren la Palm para la programación. Sibien utiliza ruedas omnidirecciona-les, servos y otros materiales quepueden ser costosos en el mercadolocal, 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 sidisponemos de una, o si los preciosde estos dispositivos continúan ba-jando, puede ser una posibilidadmuy interesante por su potencia deprocesamiento y tamaño.

Computadoras (PC)Por último, no queremos dejar de pre-sentar la posibilidad de usar mother-boards de PC convencionales pero detamaños reducidos, conocidos comoMini y Nano-ITX (Figura 19). Porejemplo, 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. Unode sus modelos, el VIA EPIA NL, po-see placa de video de S3, zócalo paramemoria DDR 266/333/400, un slotmini PCI, un puerto S-ATA y dosP-ATA, placa de sonido, LAN, puertoserie, USB y otros, que permiten tenertoda la potencialidad de una PC ¡en 12x 12 centímetros! En el sitio www.mini-itx.com se muestran desarrollos

1. CONCEPTOS FUNDAMENTALES

32

Figura 17. Robot Robosapienhackeado con una PDA en

su cabeza como procesador.

Figura 18. Palm Pilot Robot Kites un kit de robótica cuyo

procesador es una Palm Pilot.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 32

Page 35: Robotica [Users]

❘❘❘

de fanáticos de estos modelos, no só-lo en robótica, sino también en losdispositivos más extraños. En www.epiacenter.com se analizan muchosmothers de este tipo, de diferentesmarcas, y se ofrecen los links a tiendasen línea donde adquirirlos. La enormeventaja de utilizar este tipo de tecno-logía es la potencia que nos brinda unaPC para el procesamiento de la infor-mación de los sensores y la toma dedecisiones, la posibilidad de progra-mar cómodamente en lenguajes de al-to nivel, y la facilidad de desarrollar yde testear en nuestra computadora deescritorio. Por otra parte, tanto lossensores como los actuadores que que-ramos conectar pueden desarrollarsesobre plataformas muy conocidas, co-mo serial, paralelo o USB. Cualquiercámara web puede conectarse en se-gundos, y todos los drivers de los dis-positivos ya desarrollados funcionansin problema en nuestro robot.

SensoresUna de las características fundamen-tales que debe tener un robot es po-

seer algún mecanismo de modifica-ción de su comportamiento según elambiente 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 quedeba realizar. Por ejemplo, en am-bientes muy dinámicos, es probableque deseemos sensores que puedancaptar rápidamente la información,aunque perdamos precisión. Si estono fuera así, la información recibidano sería útil, porque representaría un

Introducción a la robótica

33

Figura 19. Nano-itx, un motherboard

de la empresa Via, de 12 cm por 12 cm.

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 con la instalación una nueva notebook.

ROBOTS CON NOTEBOOKS

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 33

Page 36: Robotica [Users]

estado antiguo que, con seguridad,ha sido modificado por el alto dina-mismo del ambiente. Un ejemplo deesto es el fútbol de robots. En otros casos, necesitamos la mayorprecisión posible por la operación querealizamos y para lograrlo, tendremosque utilizar sensores de mayor fiabili-dad, aunque su tiempo de respuestasea bajo. En realidad, cuando cons-truimos un robot, siempre luchamoscon esta dualidad (y, seguramente,con muchas variables más). Es poreso que la elección de los sensoresque utilicemos estará determinadapor la tarea que vayamos a realizar ysus requerimientos particulares.Los sensores pueden definirse como

dispositivos que nos permiten mediralguna característica del ambiente, co-mo la temperatura, la distancia, la po-sición, el sonido, la intensidad de laluz, los colores, la altitud, la velocidad,la rotación, etcétera. Lamentablemen-te, en la realidad no existe el sensorperfecto, y por lo tanto debemos com-pletar y corregir la información con lautilización de algoritmos de correc-ción y redundancia de sensores.Otro aspecto importante para teneren cuenta es que, según el tipo decontrolador que utilicemos paranuestro robot, deberemos diseñarcircuitos intermedios entre el sen-sor y el controlador, con el fin deconvertir 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

Valo

r

Figura 20. En este caso, los valores son los de un sensor analógico.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 34

Page 37: Robotica [Users]

valor interpretable por nuestro pro-cesador. Por lo tanto, aunque poda-mos utilizar un mismo sensor paradiferentes plataformas de controla-dores, con seguridad tendremos quediseñar estas interfaces en forma de-dicada para cada procesador.

ClasificaciónPodemos dividir a los sensores en dosgrandes grupos: analógicos y digita-les. Los analógicos entregan un valor(por ejemplo, una tensión) dentro deun determinado rango continuo (Figu-ra 20). Un ejemplo de este tipo es unafotorresistencia, que mide la intensi-dad de la luz, y que podemos adaptarpara que entregue un valor de 0 a 5 Vol-

tios. Los sensores digitales entregan unaseñal discreta dentro de un conjuntoposible de valores (Figura 21). Es decir,este conjunto de valores se modifica deun rango a otro por saltos discretos yno 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 lalectura del controlador, obtendremosun valor discreto. Es decir, se realiza-rá una conversión analógico/digitaldentro del controlador o en la inter-faz que construyamos para la adapta-ción del sensor al controlador.

Introducción a la robótica

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

Valo

r

Figura 21. Aquí podemos ver un ejemplo de valores tomados por un sensor digital.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 35

Page 38: Robotica [Users]

Otra clasificación posible de los sen-sores es internos y externos. Los in-ternos son aquellos que nos brindaninformación del propio robot, comola 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 dividirlos sensores en pasivos y activos. Losactivos son los que necesitan enviar unaseñal hacia el ambiente para luego reci-bir el rebote de esa señal y, de esta ma-nera, interpretar el estado del mundoque lo rodea. Un ejemplo clásico de es-

te tipo de sensor es el ultrasónico, queenvía una señal sonora que, al rebotarcon un objeto, vuelve al robot, y al cal-cular el tiempo de demora, puede in-terpretar la distancia al objeto. Desdeya que los sensores activos necesitanmucha más electrónica para su funcio-namiento, pero la información que nosbrindan es mucho más rica que la quenos ofrecen los sensores pasivos.

Tipos de sensoresHacer una lista de todos los tipos desensores 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 ono. Se utilizan como sensores dechoque o contadores de eventos(vueltas de una rueda, por ejemplo).

• Sensores de posición: determinan laposición del robot. Un sensor de es-te tipo puede ser un potenciómetroque cambia su valor por la rotaciónde las ruedas; u ópticos, como los que

1. CONCEPTOS FUNDAMENTALES

36

Figura 22. Aquí podemos apreciar

un sensor de efecto hall.

Existen cientos de simuladores de distintos tipos de robots: humanoides, autóno-

mos, 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?

SIMULADORES

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 36

Page 39: Robotica [Users]

❴❵

se usan en un mouse tradicional, quecuentan 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 unopara verlo, el mecanismo es sencillo).

• Sensores de efecto hall: estos sen-sores utilizan una propiedad de losimanes, que modifican su conduc-tividad cuando encuentran un ob-jeto metálico (Figura 22).

• Sensores de luz o brillo: detectanla cantidad de luz que reciben. Se-gún el tipo de sensor utilizado, poreste mecanismo podemos detectardiferencias entre los colores, si és-tos no son brillantes.

• Sensores infrarrojos: envían unaseñal infrarroja y determinan eltiempo 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: comoexplicamos antes, envían una señalsonora y captan el rebote, de lamisma manera en que lo hace unSonar en el mar.

En los últimos tiempos, gracias a laposibilidad de contar con mucha ca-pacidad de procesamiento en tamañoreducido, se ha comenzado a utilizarel video como sensor de los robots.

Introducción a la robótica

37

Figura 23. Laser Sick, usado como

sensor por su magnífica precisión.

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.

ROBOTS ADAPTATIVOS

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 37

Page 40: Robotica [Users]

❘❘❘

El procesamiento de imágenes es untema muy complejo y apasionante almismo tiempo, y escapa a la arquitec-tura y los costos de fabricación de losrobots que nos hemos propuesto pa-ra este libro. Pero seguramente, enpoco tiempo podremos utilizar nues-tras webcam en forma sencilla y eco-

nómica para nuestras creaciones. Lascá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 muchotiempo de procesamiento en algorit-mos complejos para extraer informa-ción útil de semejante cantidad de

1. CONCEPTOS FUNDAMENTALES

38

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

MÚSCULOS DE ALAMBRE

Figura 24. En esta imagen podemos ver un insecto robótico que,

en lugar de motores, utiliza músculos de alambre.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 38

Page 41: Robotica [Users]

❘❘❘

bits. Es en este tipo de algoritmosdonde podremos encontrar con másclaridad el dilema a resolver entrevelocidad y precisión.

ActuadoresSi nuestro robot sólo observara elmundo sin actuar en él, sería un robotsumamente limitado. Nuestro deseoes que modifique su estado y el delambiente según la información queobtiene en el proceso. Con este fin,disponemos de motores, músculos dealambre, 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 ameritandemasiada descripción para su uso.Simplemente, con conectarlas a algu-na salida del procesador y proveer laalimentación necesaria para su fun-cionamiento, podremos encenderlasy apagarlas con nuestro programa.Sin embargo, pondremos nuestro fo-co de atención en los motores, dadoque definen en gran medida nuestracapacidad de desplazamiento, losgrados de libertad y otros aspectosvinculados al movimiento del robot.Por definición, el motor eléctrico esun dispositivo electromotriz, es decir,que convierte la energía eléctrica enenergía motriz. Todos los motoresdisponen de un eje de salida para aco-plar un engranaje, una rueda, una po-lea o cualquier mecanismo capaz de

transmitir el movimiento creado porel motor. La etapa de elección de unmotor puede ser una tarea muy com-plicada según las limitaciones denuestro proyecto, si tenemos encuenta todas las características quedefinen al motor. Éstas son: tamaño,peso, velocidad (revoluciones por mi-nuto, RPM), torque (kilogramo porcentímetro) tensión y, la más sensi-ble: el costo. En la actualidad, existendiferentes tipos de motores, que des-cribiremos a continuación:

Motores de corriente continua (CC)Son los motores más comunes y quecasi todos conocemos (Figura 25). Engeneral, los encontramos en cualquier

Introducción a la robótica

39

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 o la segunda ley.

LEYES DE LA ROBÓTICA

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 39

Page 42: Robotica [Users]

tipo de juguete (¡un buen lugar don-de ir a buscarlos!). El funcionamien-to del motor se basa en la acción decampos 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 conel eje de salida será lo único que gira-rá. Para cambiar la dirección de giroen un motor de corriente continua,tan sólo debemos invertir la polaridadde su alimentación eléctrica.

Un detalle importante es que, casisiempre, se utilizan acompañados deun sistema de engranajes que reducenla velocidad y proporcionan mayorfuerza, dado que este tipo de motorescarece de esta cualidad. Es convenien-te conseguir el conjunto completoporque las adaptaciones son compli-cadas y pocas veces se obtienen muybuenos resultados.

Motores paso a paso (PAP)Un motor paso a paso (Figura 26) sediferencia 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. Estapeculiaridad se debe a la construc-ción del motor en sí: por un lado,tiene el rotor constituido por unimán permanente, y por el otro, elestator construido por bobinas. Alalimentar alguna de esas bobinas, seatrae el polo magnético del rotoropuesto 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

40

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

FANÁTICOS DE LEGO

Figura 25. Motores y motorreductores

de corriente continua.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 40

Page 43: Robotica [Users]

❘❘❘

ve otra bobina, lo cual hace avanzaro retroceder al rotor. De esta mane-ra, al variar los campos magnéticosen torno al eje del motor, se lograque gire. Los motores PAP puedenser de dos tipos: Bipolar: lleva dos bobinados indepen-dientes. Para controlarlo se necesita in-vertir la polaridad de cada una de lasbobinas en la secuencia adecuada. Unipolar: dispone, normalmente,de 5 ó 6 cables, dependiendo de si elcomún está unido en forma internao no. Para controlar este tipo de mo-tores existen tres métodos con suscorrespondientes secuencias de en-cendido de bobinas. El común iráconectado a +VCC o masa según elcircuito de control usado y, luego,sólo tendremos que alimentar la bo-bina correcta para que el motoravance o retroceda según avancemoso retrocedamos en la secuencia. Es-tos motores son muy utilizados endisqueteras, lectoras de CD e impre-soras. En las antiguas disqueteras de51/4, podemos encontrar algunosbastante poderosos, y en las lectoras

de CD, unos más pequeños perosiempre acompañados de buenos me-canismos reductores.

ServomotoresEl servo (Figura 27) es un pequeño pe-ro potente dispositivo que dispone ensu interior de un pequeño motor conun reductor de velocidad y un multi-plicador de fuerza. También cuentacon un pequeño circuito eléctrico en-cargado de gobernar el sistema. El re-corrido del eje de salida es de 180º en

Introducción a la robótica

41

Figura 26. Vista interna

de un motor paso a paso.

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.

BUZZERS PARA DETECTAR ERRORES

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 41

Page 44: Robotica [Users]

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 elservo en forma interna mediante unpotenciómetro que va conectado enforma mecánica al eje de salida. Éstecontrola un PWM (Pulse Width Mo-duler, modulador de anchura de pul-

sos) interno para compararlo con laentrada 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 yel servo se detenga en la posición in-dicada. En esta posición, el motor delservo deja de consumir corriente ysólo circula una pequeña cantidadhasta el circuito interno. Si en ese

1. CONCEPTOS FUNDAMENTALES

42

Los nanobots son robots de tamaño microscópico, cuyas dimensiones están en el or-

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

NANOBOTS

Figura 27. Servomotor tradicional de la marca Hitec.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 42

Page 45: Robotica [Users]

momento forzamos el servo (al mo-ver el eje de salida con la mano), elcontrol diferencial interno lo detectay manda la corriente necesaria al mo-tor para corregir la posición.Para controlar un servo, tenemos queaplicar un pulso de duración y unafrecuencia específicos. Todos los ser-vos disponen de tres cables: dos pa-ra la alimentación y uno para aplicarel tren de pulsos de control que ha-rán que el circuito de control dife-

rencial interno ponga el servo en la po-sición indicada por la anchura del pul-so. Los servomotores son una muybuena alternativa, ya que traen inte-grado un sistema reductor que nosahorrará dolores de cabeza a la hora debuscar fuerza. La desventaja para al-gunas aplicaciones es que, en general,son lentos. Se utilizan mucho en losautomóviles y aviones radiocontrola-dos, principalmente para accionar elmecanismo que les da la dirección.

Introducción a la robótica

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.

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 43

Page 46: Robotica [Users]

44

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 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?

ACTIVIDADES

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?

01_ROBOTICA.qxd 24/10/2007 02:02 p.m. PÆgina 44

Page 47: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Una mirada global a nuestro futuro robot 46

Objetivos de nuestro robot 47Tipo de procesamiento seleccionado 48¿Cómo le damos movimiento a nuestro robot? 50¿Y cómo captamos el mundo que nos rodea? 53Materiales para la mecánica 55

Resumen 59Actividades 60

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 45

Page 48: Robotica [Users]

UNA MIRADA GLOBAL A NUESTRO FUTURO ROBOTComo hemos podido ver en el primercapítulo, la cantidad de variantes quetenemos para construir nuestro robotes inmensa. Es por eso que en estecapítulo, presentaremos los materia-les que hemos decidido utilizar paranuestra primera creación, y justifica-remos la elección que hemos realiza-do. En primer lugar, vamos a dar unpaseo por el mundo de los micropro-cesadores, introduciremos un conjun-to de conceptos que nos serán im-

prescindibles a la hora de construir elcontrolador de nuestro robot. Luegoveremos el tipo de motores que vamosa utilizar y dónde podemos conse-guirlos. Para esto podremos desarmaralgún equipo electrónico antiguo, co-mo disqueteras, impresoras, etcétera.Luego, haremos lo mismo con lossensores, siempre con el objetivo degastar la menor cantidad de dineroposible en nuestro primer proyecto(¡luego vendrán proyectos multimi-llonarios!). Y por último, echaremosuna mirada sobre el material que po-demos utilizar para la construccióndel cuerpo de nuestro robot.

2. COMPONENTES DEL ROBOT

46

Figura 1. Ejemplo de un robot artesanal con diversos sensores.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 46

Page 49: Robotica [Users]

Objetivos de nuestro robotPara la elección de todos los compo-nentes de nuestro robot, es necesarioque fijemos claramente cuáles seránlos objetivos, es decir, las tareas quequeremos que nuestro robot realice.La primera decisión fundamental esdefinir si vamos a utilizar un kit oconstruiremos nuestro robot desdecero en forma artesanal. Es una deci-sión fundamental porque implica unpresupuesto mucho más alto en el pri-mer caso y, de alguna manera, tam-bién acota las posibilidades de lo quevamos a diseñar. Por otra parte, en elprimer capítulo ya enumeramos lasventajas que brinda el uso de un kit,pero en nuestro proyecto vamos a de-sarrollar el robot desde cero, paso apaso, componente por componente.En nuestro caso, la primera razón porla que lo haremos de esta manera esporque así vamos a aprender muchomás sobre todas las capas que com-ponen al robot. La segunda razón, nomenos importante, es el costo denuestro proyecto. La idea es que po-damos reutilizar elementos que en-contremos en desuso. Un humildeaporte 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 y esquivarlos, seguir una líneanegra, y buscar una luz.Cuando decimos diferentes adaptacio-nes, lo que queremos acentuar es queno necesariamente hará las tres cosas elmismo robot. Vamos a organizar dife-rentes proyectos, con mínimas modi-ficaciones entre uno y otro, para lograrlos tres objetivos. Luego, si combina-mos la capacidad de tocar objetos conla detección de la línea negra, podre-mos construir un luchador de sumo. Ypara realizar un sencillo jugador de fút-bol, uniremos la detección de luz conel tacto de los objetos, dado que nosprepararemos para una categoría que

Una mirada global a nuestro futuro robot

47

Figura 2. Partido de fútbol de robots

donde se utiliza una pelota infrarroja.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 47

Page 50: Robotica [Users]

usa una pelota infrarroja (Figura 2). Pe-ro ya llegaremos a este punto dentro deunas cuantas páginas. Comencemoscon el procesamiento.

Tipo de procesamiento seleccionadoSi seguimos la línea que acabamosde presentar, decidimos realizarnuestro controlador basándonos enun microcontrolador que fueraeconómico y de uso popular. Pero,para empezar, veamos qué es esto delos 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 cadavez más en precio y tamaño. ¿Pero,cuál es el límite de esta reducción?Aquellos que usaron un dispositivoportá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 nonecesitáramos información por unapantalla y el ingreso por teclado,¿podríamos tener una computadoramucho más pequeña? Sí, podemos,y de alguna manera eso es un mi-crocontrolador, un circuito integra-do, con CPU, memoria y conexiónpara entradas y salidas. Todo esto, enun tamaño muy reducido, no mayoral de una estampilla.Si lo vemos de esta manera, pode-mos confundir un microcontroladorcon un microprocesador. ¿En qué sediferencian? Principalmente, en queel microcontrolador suma a un mi-croprocesador un conjunto de ca-racterísticas electrónicas que lo ha-

2. COMPONENTES DEL ROBOT

48

❘❘❘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 que tenemos que esquivar, variaciones de iluminación o de colores en la lí-

nea, secciones donde la línea desaparece, etcétera.

SEGUIDOR DE LÍNEA (LINETRACKER)

Figura 3. Uno de los micros

de la firma Atmel.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 48

Page 51: Robotica [Users]

cen menos dependiente de los chipsde apoyo. Por ejemplo, la memoria,los conversores analógico digitales yel reloj, ya están incluidos dentro delos microcontroladores.¿Y para qué sirve un microcontrola-dor? Bueno, tener una computadorade ese tamaño nos permitiría contro-lar en forma medianamente inteligen-te diversos dispositivos. Y esto es loque ocurre alrededor nuestro: en el au-to, en la heladera, en el microondas oen el lavarropas, con seguridad podre-mos encontrar uno o más microcon-troladores, que hacen muchísimo mássencilla la electrónica del aparato. Algunos de los microcontroladores sonde propósito específico, es decir, fuerondiseñados y optimizados para una tarea

determinada. En general, estos micro-controladores no pueden ser reprogra-mados, por lo que también contamoscon micros de propósito general, quepueden ser programados en diversoslenguajes y con destinos de todo tipo.Las empresas de microprocesadores depropósito general más conocidas sonMicrochip (PIC) y Atmel (AVR).Pondremos nuestra atención en la pri-mera de las dos, dado que el micro queusaremos 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 productosque ha fabricado, la línea PIC (Perip-heral Interface Controller, Controladorde Interfaz Periférico) de microcon-

Una mirada global a nuestro futuro robot

49

Figura 4. Un microcontrolador PIC montado en una placa controladora GoGo.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 49

Page 52: Robotica [Users]

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 conla arquitectura CISC (Complex Ins-truction Set Computer, Computadoracon Conjunto de Instrucciones Com-plejo). Esto implica que tienen unconjunto reducido de instruccionesde tamaño fijo con respecto a la can-tidad de ciclos de reloj (en general, to-das las instrucciones necesitan de unsolo ciclo de reloj) y que sólo las ins-trucciones de carga y almacenamien-to acceden a la memoria. Las ventajasque estas (y otras) características nosbrindan son que la ejecución es másrápida y que permite el paralelismoentre 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 alos PIC, las características fundamen-tales que podemos encontrar entre losdiferentes 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 conversoresanalógicos/digitales.

• Memoria Rom y Flash.• Temporizadores.• Periféricos serie.

La arquitectura básica de todos losPICs contiene una memoria de datos,una memoria de programa, una unidadaritmético lógica, una unidad de con-trol y puertos de E/S (entrada y salida).De todos los modelos, hemos elegidoel 16F88 para realizar nuestro robot. Espor eso que en el próximo capítulo nosdetendremos a analizar en forma deta-llada este micro en particular.

¿Cómo le damos movimientoa nuestro robot?En el primer capítulo, ya hemos des-cripto el tipo de actuadores que po-demos encontrar en un robot. Ennuestro caso, usaremos motores decorriente continua (cc) entre 8V y12V, con un consumo no superior a100 mAmp, que describiremos enprofundidad más adelante. Estos mo-tores son más económicos y sencillosde controlar, pero en general carecende precisión y fuerza (Figura 5). Parasolucionar este problema, recomenda-mos los motores con caja de reducciónincorporada (conocidos como moto-rreductores), que poseen un pequeñomotor que gira a muchísimas revolu-ciones, unido a un sistema de reduc-ción que permite obtener fuerza conmenor velocidad. Para nuestro robotutilizaremos un sistema de tracción

2. COMPONENTES DEL ROBOT

50

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 50

Page 53: Robotica [Users]

diferencial, dado que es el más senci-llo de controlar desde nuestro pro-grama (Figura 6). Este sistema utilizados ruedas convencionales ubicadasen el centro del robot, una de cada la-do, conectadas directamente a losmotores. Esto nos dará la posibilidadde ir para adelante o para atrás, deaplicar la misma energía en ambosmotores, o de realizar giros según ladiferencia de velocidad de cada mo-tor. El recorrido en forma recta esdifícil de conseguir en esta arquitec-tura dado que siempre encontramosdiferencias de velocidad entre los mo-tores o en el giro de las ruedas, des-plazamientos, etcétera. Una de lasmaneras de controlar esto es realizarun 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 unmouse antiguo. El problema de estemecanismo es que necesitamos de

electrónica específica para este con-trol, algo que escapa a nuestro pri-mer proyecto. Por eso, por ahora nosconformaremos con que vaya me-dianamente en línea recta.Otra arquitectura de movimiento in-teresante es la omnidireccional. Contres ruedas especiales ubicadas comopodemos ver en la Figura 7, podemosdirigir al robot hacia cualquier punto,sin necesidad de girarlo en esa direc-ción. Esta forma de navegación esmuchísimo más efectiva, ya que aho-

Una mirada global a nuestro futuro robot

51

❘❘❘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

mejoras, como los que realiza la empresa Ubicom.

PICS ESPECIALES

Figura 5. Motores de corriente

continua de tamaño reducido.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 51

Page 54: Robotica [Users]

rramos tiempo al movernos siempreen 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 lasruedas que vamos a usar, ¿dónde po-demos conseguir los motores? Desdeya, una de las formas más sencillas deconseguirlos es comprarlos.Sin embargo, si tratamos de ahorrarese dinero, va a ser necesario extraerlos motores de algún aparato que ten-gamos en desuso. El problema de ha-cer esto es que como estos motores notienen reducción, tendremos que in-geniárnosla para darles fuerza (desdeya, 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 juguetecon movimiento. En general, sonmotores muy pequeños.

• Limpiaparabrisas: hay de 12V yde 24V. Debemos conseguir losdel primer grupo.

• Reproductores de casetes y videos.

Si tenemos algún servo desperdicia-do, podemos modificarlo para utili-zarlo como motor CC. Los servosson un motor de ese tipo con una ca-ja reductora y un circuito de controly tope físico, que limita su giro a 180grados. Para convertirlo en lo quenecesitamos, debemos eliminar elcircuito de control y la limitación fí-sica, y de esta manera aprovechar la

2. COMPONENTES DEL ROBOT

52

Figura 6. Vista desde abajo

de un robot de tracción diferencial.

Figura 7. Arquitectura de un robot

con ruedas omnidireccionales.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 52

Page 55: Robotica [Users]

caja reductora que posee. Los pasosnecesarios para llevar a cabo esta ta-rea los veremos más adelante. Como dijimos previamente, paraconstruir nuestro robot utilizaremosdos motores de CC de 12V, con unconsumo de 100 mAH.

¿Y cómo captamos el mundoque nos rodea?Como ya vimos en el capítulo ante-rior, un robot sin sensores es incapazde cambiar su comportamiento paraadaptarse al medio que lo rodea, por-que no puede captarlo. Es por eso quela elección que haremos de los senso-res es fundamental. En nuestro caso,utilizaremos sensores de contacto pa-ra detectar colisiones y sensores de luzo infrarrojos para detectar las líneasnegras y la pelota infrarroja.Comencemos con el detector de co-lisiones. ¿Qué podemos utilizar paraello? En realidad, cualquier dispositi-vo que funcione como interruptor essuficiente. Los sensores de contactoque se utilizan en robótica industrialse conocen como final de carrera.

Una mirada global a nuestro futuro robot

53

Figura 8. Motor paso a paso unipolar.

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.

MOTORES DE CORRIENTE CONTINUA

Figura 9. Un ejemplo de sensor

de final de carrera.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 53

Page 56: Robotica [Users]

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 utilizaralgún amplificador de la mecánica

del final de carrera, según el tamañoy la posición del objeto que es nece-sario detectar. Como se puede ver enla Figura 10, el espacio de detecciónes 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 volvera su situación inicial cuando está de-sactivado. Los interruptores de finalde carrera se pueden adquirir en ne-gocios de electrónica, y también sepueden extraer de elementos como:• Mouse: podemos usar los inte-

rruptores que son presionados porlos botones. El problema es que laamplificació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 seutilizan estos mecanismos.

• Celulares: aquí podemos hallarversiones pequeñas de los inte-rruptores para detectar el cierre dela tapa del celular.

2. COMPONENTES DEL ROBOT

54

Figura 10. Micro switch utilizado

habitualmente como sensor de contacto.

Figura 11.Un LDRutilizado para

la detección

de luz en

un robot.

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

SENSORES DE CONTACTO ESPECIALES

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 54

Page 57: Robotica [Users]

Para la detección de luz, podemos uti-lizar un sensor de luz convencional, co-nocido como fotorresistencia (LDR,Light-Dependent Resistor, resistenciaque depende de la luz). Éste es uncomponente electrónico cuya resis-tencia disminuye a medida que la luzincide sobre él (Figura 11). Es económico y sencillo de usar, peroes altamente sensible a la luz ambien-te. Por esa razón, es bueno añadirle unled emisor para poder captar el rebotede la luz de este componente sobre lasuperficie a detectar. Para evitar el pro-blema de la luz ambiente, podemosutilizar 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 dentrodel rango del infrarrojo. Está com-puesto por un diodo emisor infrarrojoen una determinada longitud de onday un receptor (en general un fototran-sistor) que apunta en la misma direc-ción que el emisor. Un buen ejemploes el sensor activo CNY70, que puedecaptar objetos entre 5mm y 10mm dedistancia (Figura 12).Ambos sensores son económicos, ypueden conseguirse en cualquier ne-gocio de electrónica. Es posible con-seguir alguno de ellos si desarmamosalgún juguete (por ejemplo, losmuñecos que detectan la presencia deun objeto por delante y emiten algúnsonido), pero son tan económicos queno vale la pena tomarse ese trabajo.

Materiales para la mecánicaA la hora de construir el chasis denuestro robot, tenemos múltiplesopciones 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 loscasos en los que el peso del robotpresente una ventaja, como puedeser la lucha de sumo, un robot másliviano siempre es mejor. A conti-

Una mirada global a nuestro futuro robot

55

Figura 12. CNY70,

un sensor

infrarrojo muy

popular.

Figura 13. Aquí podemos ver un robot

hecho con piezas de Lego, pero con

sensores y controlador propios.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 55

Page 58: Robotica [Users]

nuación presentaremos una lista delos que se pueden conseguir con másfacilidad en el mercado, con sus res-pectivas ventajas y desventajas.

Piezas de Lego, Mecano u otros juguetes constructivosSeguramente, en algún rincón denuestro baúl de los recuerdos tene-mos una bolsa con las piezas de nues-tro querido sistema de construcciónde la infancia. Si hemos cometido elerror de prometerlas como regalo aun vecino pequeño o al hermanito denuestra novia, debemos olvidarlo.Estas piezas son muy prácticas pararealizar prototipos de nuestros robots(¡que muchas veces quedan comoversiones finales!). Una de las venta-jas fundamentales es su facilidad deuso y su versatilidad para lograr lasformas 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ásimportante es la fragilidad de la es-tructura que podemos lograr. Y si notenemos las piezas de antemano, suvalor es muy alto en comparación conlos otros tipos de materiales.

Juguetes usadosCuando queramos construir un robotque imite algún vehículo tradicional,una muy buena opción es montarlosobre un juguete usado, o por qué no,

2. COMPONENTES DEL ROBOT

56

Figura 14. Aquí podemos ver

un Robosapien modificado, donde

el controlador es una Pocket PC.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 56

Page 59: Robotica [Users]

manera, podremos manipularlo concierto cuidado. Para unir piezas, se uti-lizan pegamentos del tipo cianocrila-to. Se puede cortar con una sierrita dedientes pequeños, y es posible quitarlas rebabas con una lija fina.

AglomeradoEs una plancha realizada con fibras demadera pegadas a presión con una re-sina sintética (Figura 15). También esconocido como MDF (Medium Den-sity Fibreboard, Tablero de fibra dedensidad media). Es económico comoel PVC y puede conseguirse en cual-quier maderera. Es fácil de manipularpero es más complejo conseguir ter-minaciones prolijas. Los chasis reali-zados con este material son robustos,pero su peso es una desventaja que hayque tener en cuenta. Tampoco esaconsejable que el material se moje,aunque es resistente a salpicaduras.

comprar uno con este propósito. Porejemplo, para construir un humanoi-de es más sencillo comprar uno ya ar-mado y montar la inteligencia sobrela mecánica ya resuelta, que cons-truirlo desde cero (Figura 14).Si partimos de un juguete abando-nado, podemos considerarlo comocosto cero. De todas formas, con se-guridad tendremos que añadir par-tes desarrolladas por nosotros parapoder adaptar el controlador, lossensores, etcétera. En este caso, unadesventaja puede ser la dificultad deensamblar la estructura del juguetecon las nuevas partes del robot. Otroproblema es que, en general, las pie-zas del juguete son frágiles, por loque deberemos tratarlas con cuida-do. Es recomendable incorporar laspartes nuevas con un pegamentoadecuado, y no agujerear el juguete.Por último, la reusabilidad de losmateriales que utilicemos es muybaja, dado que están adaptados a es-te proyecto en particular.

PVCEs un material plástico muy económi-co que se presenta en formato rígido oflexible. Es muy fuerte y resistente,aunque se puede cortar y taladrar confacilidad. Para las carcasas cilíndricas,podemos utilizar caños de este mate-rial. Si necesitamos deformarlo, elPVC se ablanda al llegar a los 80º (porejemplo, sobre una hornalla) y de esta

Una mirada global a nuestro futuro robot

57

Figura 15. Planchas de aglomerado.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 57

Page 60: Robotica [Users]

Poliestireno expandidoEste material es conocido universal-mente, pero denominado de diversasformas en todo el mundo: telgopor,porexpan, corcho blanco, unicel,estereofón o tecnopor son algunasde las denominaciones más habitua-

les. Es muy liviano y absorbe muybien los impactos, pero su resistenciaes limitada. Es fácil de manipularcon cortadores en caliente, aunquesus terminaciones son complicadas.Por su bajo costo, es ideal para rea-lizar prototipos, pero su baja resis-tencia no permite la construcción delmodelo final de un robot.

AcrílicoEn 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 muyatractivo, muy resistente, liviano, yde fácil corte con sierras y caladoras,aunque hay que realizarlo con pa-ciencia porque el calor de la fricciónpuede 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áscomplicado, ya que necesita de calorlocal, y se realiza con pistolas de airecaliente o bandas resistivas. La des-ventaja más grave de este material esel precio, que supera ampliamentelos materiales que ya comentamos.

AluminioEs el material más usado en la fabri-cación de las versiones finales de losrobots. Es muy resistente, liviano y de

2. COMPONENTES DEL ROBOT

58

Figura 16. Robot con piezas de acrílico.

❘❘❘La familia de micros de Atmel se llama

AVR. También son RISC con 32 regis-

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

LOS MICROS DE ATMEL

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 58

Page 61: Robotica [Users]

relativo bajo precio. Si tenemos quehacer cortes sencillos, podemos traba-jar el aluminio con herramientas con-vencionales, pero si necesitamos pie-

zas más complejas debemos contarcon un torno específico. Por otra par-te, para moldearlo necesitamos hor-nos especiales a altas temperaturas.

Una mirada global a nuestro futuro robot

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.

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 59

Page 62: Robotica [Users]

60

TEST DE AUTOEVALUACIÓN

1 ¿Por qué decidimos desarrollar el robot

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

02_ROBOTICA.qxd 24/10/2007 05:02 p.m. PÆgina 60

Page 63: Robotica [Users]

La inteligenciadel 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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

El cerebro 62Componentes de nuestro robot 63Objetivos del controlador 64El microcontrolador, cerebro del cerebro 64Conceptos fundamentales de un PIC 65Características del PIC16F88 66Compatibilidad con el 16F84 67Puente H para el control de los motores 67Listado de componentes del controlador 68Descripción del circuito 69Placa experimental 71El programador 71Nuestro programador 71

Resumen 75Actividades 76

Colaborador:Ing. Néstor Adrián Balich

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 61

Page 64: Robotica [Users]

EL CEREBRO

Cuando Asimov creó sus primerosrobots de ficción, aún no existían lascomputadoras. Tuvo que inventar loscerebros positrónicos, que son dis-positivos con inteligencia artificialque le permiten al robot almacenarinformación, realizar operaciones ló-gicas y tomar sus propias decisiones.Con esa capacidad sorprendente deadelantarse décadas en el tiempo,Asimov realizó una descripción que,en muchos casos, coincide con loscontroladores que tenemos en la ac-tualidad. De este tema, y con la in-tención de emular la genialidad deAsimov, 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 quequeremos hacer con él. Los primerosrobots fueron simples autómatas, co-mo el jugador de ajedrez, que no sonmás que una sucesión de combina-ciones de engranajes, poleas y otrosartilugios electromecánicos, en dondeel creador articula el robot en formamecánica, y gobierna así sus movi-mientos. Luego surgieron los robotscon 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.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 62

Page 65: Robotica [Users]

❘❘❘

lo. En nuestro caso, cuando elegimosel controlador que vamos a presentaren este libro, optamos por una solu-ción del último espectro, pero con lasuficiente sencillez para su construc-ción y la suficiente complejidad pa-ra poder lograr comportamientosmedianamente inteligentes.Para el desarrollo de nuestro robotnecesitamos algunas habilidades deelectrónica que podremos adquirircon facilidad. Esto es necesario por-que así tendremos un robot con pres-taciones iguales o mayores que las dealgunos de los kits que se puedencomprar y principalmente nos per-mitirá dar los primeros pasos en lautilización de microcontroladores.

Componentes de nuestro robotA la hora de diseñar nuestro contro-lador, es necesario tener presentequé tipo de robot deseamos cons-truir, porque esto nos dará una no-ción de la cantidad de actuadores ysensores que necesitaremos. Comodefinimos en el capítulo anterior,nuestro robot tendrá dos ruedas condos motores, que nos permitiráncontrolar la dirección de manera di-ferencial. Contará con dos bumpers(sensores de choque) y un sensoranalógico para poder seguir una lí-nea (robot rastreador). Si tenemosen cuenta esto, podemos definir laspartes de nuestro robot en:

• Chasis: éste es el armazón quecontiene 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 de12 V.

• Control: controlador programa-ble multipropósito.

El cerebro

63

Figura 2. Un robot cuyo cerebro

es nuestro controlador.

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.

CEREBROS POSITRÓNICOS

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 63

Page 66: Robotica [Users]

• Driver H: interfaz de potencia pa-ra los motores de corriente conti-nua con inversión de giro.

• Sensores: dos sensores de colisiónubicados al frente del robot.

• Monitor: un led de monitoreo delprograma.

• Sensor analógico: para futurasaplicaciones.

Objetivos del controladorDados los objetivos que hemos defi-nido, el controlador debe cumplircon 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 entodas direcciones mediante unatracción diferencial (de dos ruedas).

• Ser programable en circuito me-diante un programador conectadoa la computadora.

• Utilizar baterías comunes de dife-rente voltaje entre 7 y 12 V.

• Poseer la capacidad de conectarsensores de diversos tipos, tantoanalógicos como digitales.

• Poder configurar las entradas y lassalidas según el objetivo del robot.

• Permitir controlar una gran varie-dad de robots.

El microcontrolador, cerebrodel cerebroComo comentamos antes, el princi-pal componente de nuestra placa con-troladora es el microcontrolador. Desu 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 porcambiar la mecánica/electromecánicacuando sea necesario. En síntesis, elobjetivo es contar con nuestro propiocontrolador universal de robots.En el Capítulo 2 adelantamos nuestraelección por el micro 16F88 de lafirma Microchip (Figura 3). Cabemencionar que aunque el 16F84 esel micro más difundido de esta em-presa, hemos decidido dar un pasoadelante por dos razones: el nuevomodelo nos da muchas prestacionesadicionales, y todo lo desarrolladopara 16F88 que no utilicen esasprestaciones es absolutamente com-patible con el 16F84. En el presente libro, en gran parteusaremos del micro nuevo aquellasfuncionalidades 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

Figura 3. Una de las versiones

del PIC16F88.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 64

Page 67: Robotica [Users]

Conceptos fundamentales de un PICComo en el punto siguiente quere-mos realizar una presentación del16F88 y compararlo con otros mi-cros, a continuación describiremosun conjunto de términos necesariospara poder comprender mejor. Losconceptos que vamos a explicar sonfundamentales en la arquitectura yel funcionamiento de un PIC. Si yatenemos experiencia, esto nos resul-tará conocido y podremos continuarhasta el punto siguiente. Si no, aquí encontraremos un buendiccionario de palabras vinculadas alque 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 quepresenta 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

Programmable Read-Only Memory,ROM que se puede programar yborrar eléctricamente): en esta me-moria se almacenan los datos quedeben conservarse aun cuando ha-ya pérdida de energía. Puede serreescrita en más oportunidadesque la memoria flash.

• I/O Ports (Input/Output Ports,puertos de entrada/salida): es lacomunicación del PIC con elmundo 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 hastatres temporizadores, con diversascapacidades y funciones. Se utili-zan como contadores, relojes y ge-neradores de interrupciones.

• USART (Universal SynchronousAsynchronous Receiver Transmitter,transmisor y receptor sincrónico yasincrónico universal): móduloque presentan los PIC que nosbrindan un puerto serie.

• CCP (Capture/Compare/PWM, Cap-tura/Comparación/Modulaciónpor ancho de pulso): este módulotiene tres modos de comparación.

El cerebro

65

❘❘❘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

estos pulsos, logramos la velocidad de nuestro motor.

MODULACIÓN POR ANCHO DE PULSO

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 65

Page 68: Robotica [Users]

En el primer caso (Capture) nospermite capturar el tiempo de unevento. En el segundo (Compare)genera una salida cuando el timer 1alcanza un valor. El último nosbrinda una salida de 10 bits de re-solución sin consumo de ciclos conuna determinada frecuencia, confi-gurada por el timer 2.

• Comparador: es un módulo quebrinda dos comparadores analógicos,de manera tal que las entradas analó-gicas o digitales se puedan compararcon los voltajes de referencia.

• ICSP (In Circuit Serial Program-ming, programación en circuito):los PICs se pueden programar sintener que sacarlos del controlador,conectándolos con el programadormediante un cable especial que des-cribiremos más adelante.

Características del PIC16F88El PIC16F88 es un salto importan-te con respecto al PIC16F84, unasuerte de hermano mayor más avan-zado. En realidad, es un reemplazode los 16F87X, que mantiene com-patibilidad con sus antecesores parahacer 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 bytesde memoria EEPROM, 368 bytesde 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 lossensores disponemos de siete canales

3. LA INTELIGENCIA DEL ROBOT

66

Figura 4. Otros modelos de PIC

vinculados al 16F84 y el 16F88.

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

REDES NEURONALES

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 66

Page 69: Robotica [Users]

de entrada con conversor analógicodigital. Su consumo es muy bajo,para suerte de nuestras baterías(aunque los motores serán nuestrosenemigos en este aspecto).

Compatibilidad con el 16F84A pesar de las grandes capacidades quehemos mostrado del 16F88, la compa-tibilidad con el 16F84 es muy alta, loque 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). El16F88 puede ejecutar el mismo códigoque el 16F84 con mínimas variantes, yse puede programar con el mismohardware. 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,

este último modelo ha sido lanzado amenor precio que su antecesor. Para es-ta versión del controlador hemos ar-mado una placa experimental en laque no es necesario tener el 16F88 yaque es compatible con el 16F84. Porlo tanto, podremos usar el antiguomicro (incluso los primeros progra-mas estarán desarrollados para el16F84). La necesidad del 16F88 sehará presente a medida que avance-mos en la utilización de sensoresanaló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 motoresPara poder controlar la velocidad y ladirección de los motores de corrientecontinua, se utiliza un circuito deno-

El cerebro

67

CHIP INHIBIT 1

INPUT 1 2

OUPUT 1 3

GND 4

GND 5

OUTPUT 2 6

INPUT 2 7

VC 8

VSS 16

INPUT 4 15

OUPUT 4 14

GND 13

GND 12

OUTPUT 3 11

INPUT 3 10

CHIP INHIBIT 29

Figura 5. Esquema del integrado controlador de los motores L293D.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 67

Page 70: Robotica [Users]

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. Laelectrónica ha avanzado y en la actua-

lidad utilizamos integrados que nosproporcionan esa funcionalidad, enun espacio menor y a bajo costo. Ennuestro caso, la interfaz de potenciase basa en el chip L293D, que cuen-ta con diodos de protección para losmotores (Figura 5). Además, poseecuatro drivers de potencia que nospermiten controlar dos motores dehasta 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 conectadosdirectamente al micro.Los pines 2, 7, 10 y 15 son entradasdigitales que sirven para controlar ladirección de los motores. Los pinesCHIP INHIBIT (1 y 9) permitencontrolar la velocidad con la técnicaPWM ya mencionada. Los motoresse conectan a 3, 6, 11 y 14. VSS(voltaje lógico) es la que alimentaráo dará potencia al motor.

Listado de componentes del controladorLa mayoría de los componentes quevamos a utilizar (Tabla 1) se puedeconseguir en cualquier negocio deelectrónica, y se puede reemplazarpor otros de valores aproximados.Los elementos más costosos son losdos procesadores, el 16F84 ó 16F88y el L293D. Otro componente decosto alto es la batería recargable de9 V, de la cual hablaremos más ade-lante. Para poder conectar todos estos

3. LA INTELIGENCIA DEL ROBOT

68

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.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 68

Page 71: Robotica [Users]

componentes, podemos usar unaprotoboard (Figura 6) o directamentearmar 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 realizarun primer prototipo de prueba. Unavez que tengamos todo en funciona-miento, podemos pasar nuestro desa-rrollo a una placa experimental.

Descripción del circuitoEl circuito es muy sencillo (Figura 7).Consta de una fuente de alimenta-ción regulada, basada en un 7805que nos permite obtener a la salidauna tensión estable de 5 V para ali-mentar a los circuitos integrados, in-dependientemente de que la tensiónde 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.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 69

Page 72: Robotica [Users]

diodo D1 permite tener una protec-ción contra la inversión accidentalde la tensión de alimentación. Loselectrolíticos y condensadores cerá-micos actúan de filtros y el led L1só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 cuentacon un cristal oscilador (XTAL) de4Mhz (lo podemos evitar en el casodel 16F88 gracias a que contiene unoscilador interno, pero ya que es debajo costo y más preciso, preferimosmantenerlo en el esquema), y unpulsador de reset para bloqueos oreinicialización del sistema. El ledL2 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 colisionacon algún objeto. Se encuentran co-nectadas al positivo mediante dosresistencias R3 y R4 de 1K, que nossirven de pullup para disminuir eldisparo por ruido eléctrico que pro-viene de los motores.Por su parte, RB1, RB2, RB4 y RB5se utilizan para controlar dos moto-res de corriente continua de 12 V y300 miliamperes. RB6 y RB7 estándestinados al programador. Además de esto, nos quedan libres 4pines (RB0, RA0, RA1, RA2) quepodemos utilizar para propósitos di-versos y la posibilidad de utilizar losdel 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

Sensor 2 Sensor 1

Controlador

Motor 1

Motor 2

L 2

Figura 8. En esta figura podemos observar los bloques lógicos que componen nuestro controlador.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 70

Page 73: Robotica [Users]

Placa experimentalA modo de ejemplo, en la Figura 9mostramos la placa experimental bá-sica realizada para las pruebas preli-minares, en donde puede observarseel regulador 7805, los integrados16F84 y L293D y, en la parte inferiora la izquierda y debajo del 16F84, lasalida para el programador ICSP.

El programadorCuando diseñamos el controlador delrobot, uno de los objetivos fundamen-tales fue que pudiera ser programadode diversas maneras según el propósi-to final del robot. De esta forma, po-demos reutilizar nuestro controladoren la misma estructura mecánica o enotras, 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 últimotambién es una opción. El PICAXE esun micro que ya tiene grabado un pe-queño firmware, algo así como un sis-tema operativo mínimo, que permitecargarle nuestro programa por el puer-to serie del computador. Es una buenaayuda porque nos evitamos la cons-trucción del programador. El proble-ma es que si utilizamos un PICAXEdependemos totalmente de estefirmware y si por cualquier proble-ma eléctrico se desprogramara el mi-cro, estaríamos en problemas.La única solución sería comprar unnuevo PICAXE o grabarle el firmware

de nuevo, para lo cual se necesita ¡unprogramador! Por lo tanto, tarde o tem-prano, este recurso nos es indispensa-ble, y ya que compramos componentesy 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, uotra variante, podremos hacerlo connuestro programador sin problemas.

Nuestro programadorEn Internet podemos encontrar unmundo de aficionados y profesionalesque desarrollan sus actividades conPIC. Por esa razón, la oferta de pro-gramadores es amplia y si lo deseamos,

El cerebro

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.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 71

Page 74: Robotica [Users]

3. LA INTELIGENCIA DEL ROBOT

72

Figura 11. Pantalla principal del WinPic800, configurada para el 16F88.

Figura 12. Esquema del programador GTP LITE.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 72

Page 75: Robotica [Users]

podemos comprar un programador enalgún negocio de electrónica. Pero pa-ra cumplir nuestra promesa de que elrobot será completamente artesanal,presentamos el programador GTP Li-te. Este programador fue diseñado porJaime Fernández-Caro Belmonte deHobbyPic (www.hobbypic.com). Estábasado en un desarrollo anterior delgrupo 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 softwarepara bajar nuestros programas al con-trolador. Con respecto a los programa-dores, existen otros modelos como elGTP-USB, pero elegimos el mencio-nado por una cuestión de costos.El GTP Lite (Figura 12) es un grabadorICSP para PICs y memorias que uti-liza un puerto paralelo y alimentaciónexterna. Con él se pueden grabar losPICs que soporten el modo de graba-ción ICSP y que se encuentren en el

El cerebro

73

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.

OTROS PROGRAMADORES

Figura 14. Programador GTP LITE

terminado, visto desde arriba.

Figura 13. En esta imagen podemos

ver el board del GTP LITE.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 73

Page 76: Robotica [Users]

nuestra placa programadora y enviar-le el programa desde la PC con unsoftware de grabación de PIC, comoel Winpic800. Pero en nuestro robotpresentamos otra variante. La progra-mación en circuito ICSP (In circuit se-rial programming, programación encircuito) es ideal para trabajar con pro-totipos, ya que de manera rápida po-dremos programar nuestro robot sinnecesidad de sacar el microprocesadorcada vez que cambiemos el programa.Esta programación se basa en utilizarlos mismos pines que usa el progra-mador para la programación directa,pero con un circuito muy simple quepermite 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

WinPIC800. La forma más tradicio-nal de grabar el programa en el microes poner el integrado en el zócalo de

3. LA INTELIGENCIA DEL ROBOT

74

Tabla 2. Lista de componentes

del programador.

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 3. Pines del cable para conectar el programador a la controladora.

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)

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 74

Page 77: Robotica [Users]

Figura 15. El mismo

programador, con

una toma desde la

parte inferior.

pruebas con él en forma constante. Enla 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 PCantigua) con los pines de la Tabla 3. Re-comendamos que el cable no supere

los 70 centímetros de longitud. Nonecesitaremos 5 V ya que usamosmasa común entre el programador yla 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 conectorque tenemos debajo del micro.

El cerebro

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.

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 75

Page 78: Robotica [Users]

76

TEST DE AUTOEVALUACIÓN

1 ¿Cuáles fueron los tipos de control que

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

03_ROBOTICA.qxd 24/10/2007 02:12 p.m. PÆgina 76

Page 79: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

La fuente de energía 78Características de las celdas de las baterías 79Tipos de baterías 81Calidad de las baterías 86Cargadores 87Ayudar a que no sólo las baterías duren más 89

Resumen 91Actividades 92

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 77

Page 80: Robotica [Users]

LA FUENTE DE ENERGÍA

Volvamos a nuestros sueños de robots.Soñamos con un robot veloz, ágil, yque recorra el universo sin desgaste.Soñamos con un robot poderoso, conalta tracción que le permita subir loscaminos más inhóspitos. Soñamoscon 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 demovimiento perpetuo, y no somos losprimeros. Desde que construimosnuestros primeros mecanismos autó-nomos con desplazamiento, hemos

buscado la piedra filosofal de laenergía: carbón, petróleo, electrici-dad, biocombustibles, baterías, hidró-geno, energía nuclear, etcétera. Muchaagua ha pasado debajo del puente y sinembargo, la ecuación que planteamosal comienzo es irresoluble: si aumen-tamos la autonomía, necesitamosmayor tamaño y peso, y por lo tan-to, mayor consumo. Si queremos ma-yor potencia, también consumimoslas cargas más rápidamente. Por aho-ra, nos tendremos que arreglar con loque tenemos a nuestro alcance paradarle energía a nuestro robot, y esto eslo 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.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 78

Page 81: Robotica [Users]

Características de las celdas de las bateríasEn el caso de los robots pequeños, laobtención de energía por sistemas decombustión o la energía nuclearconstituyen un sistema un poco des-proporcionado. Es por eso que nosinclinamos por las baterías com-puestas por una o más celdas, condeterminadas características que lashacen convenientes o no según elproyecto en el que trabajemos. Poresa razón, antes de analizar los tiposde baterías, haremos una breve pre-sentación de los conceptos funda-mentales que las distinguen.

VoltajeTodas las celdas que presentaremosutilizan procesos químicos para la li-beración de energía. El tipo de mate-rial utilizado para esa reacción es elque 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 elque permanecerá una batería cuandose descargue. Puede ocurrir que ape-

nas 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. Consideraremosque la batería está descargada cuandoel voltaje disminuye alrededor del20% de su valor nominal.Por ejemplo, las baterías de autostienen seis celdas de plomo ácido,cada una con un voltaje nominal de2 voltios, y así nos proveen de 12voltios nominales finales. De todas formas, es posible que nues-tro robot pueda funcionar con unvoltaje menor al 80% del valor no-minal. Esto dependerá esencialmen-te de los motores que utilicemos.

CapacidadEn general, cuanto más grande es labatería, mayor capacidad posee (esmás pesada, pero nada es perfecto).Se mide en Ampere/hora (A/h) omiliampere/hora (mA/h) y se re-presenta con la letra C. Por ejemplo,si en la batería aparece C=250, estonos indica que puede suministrar250 mA durante una hora, ó 125

La fuente de energía

79

❘❘❘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

1000 a 2000 años, comenzará a incorporarse en forma gradual a la biósfera.

VITRIFICACIÓN DE PILAS

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 79

Page 82: Robotica [Users]

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 robotsmóviles autónomos. Con la densidadde energía representamos la relaciónde la capacidad por unidad de vo-lumen. En nuestro caso, necesitamosla mayor relación posible, para lograrmayor autonomía y potencia. Peroseguramente, aparecerá algún otroproblema, como los costos.

Curva de descargaEs la curva que nos indica el voltaje dela batería en relación con el tiempo deconsumo. En general, si la curva esplana, la batería baja su voltaje de gol-pe, lo que en general es bueno (man-tenemos la performance de los robotspareja 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 esecaso, nos es imprescindible modificarel accionar de nuestro robot median-te la lectura de sensores, y no debemosconfiar en los valores absolutos.

Resistencia internaTodo generador de energía eléctricatambién se comporta como un con-ductor y, por lo tanto, ofrece ciertaresistencia al pasaje de corriente. A es-to se lo llama resistencia interna. Porejemplo, es una gran ventaja que lasbaterí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 conbaja resistencia interna pueden ser pe-

4. COMIDA DE ROBOTS

80

Figura 2. Una muestra de todos los tamaños clásicos de las baterías recargables.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 80

Page 83: Robotica [Users]

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. Amedida que las celdas se desgastan, laresistencia interna crece, y por lo tan-to, la tensión disminuye.

Capacidad de recargaOtra característica fundamental denuestras baterías es si son recargableso no, y cuántas veces se pueden re-cargar. Dado que las baterías sonmuy contaminantes, esta caracterís-tica no sólo es una cuestión de cos-tos, sino que también nos proponeuna 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 memoriaEs un término vinculado específica-mente a las baterías de Níquel cadmio.Cuando una batería de este tipo no sedescarga en forma completa antes deser recargada, tiende a recordar este ni-vel de descarga como el nivel 0. Por lo

tanto, la próxima vez considerará queestá descargada cuando llegue a estepunto. Aunque no hay una postura de-finida sobre este concepto, siempre seaconseja que, antes de recargar estas ba-terías, se las descargue por completo.

CostoY por último, nos encontramos con elfactor común de todos los análisis: elcosto. La relación entre la calidad delas baterías y el precio es directamenteproporcional. Por suerte, la apariciónde las cámaras digitales, los reproduc-tores portátiles, los celulares y otrosdispositivos que consumen baterías agranel, 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 unacomparación con respecto a estosconceptos presentados, vamos a des-cribir los tipos de baterías que po-demos utilizar en nuestros robots.

Tipos de bateríasA continuación haremos un recorridopor los diversos tipos de baterías que

La fuente de energía

81

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

LOS CARGADORES TAMBIÉN SE FALSIFICAN

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 81

Page 84: Robotica [Users]

tenemos para poder alimentar un ro-bot, y veremos sus ventajas y desven-tajas. Por último, definiremos un con-junto de elecciones posibles paranuestro 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 roboty guardarla aparte, y así se pierde sóloun 6% de su carga cada mes. La curvade descarga es lineal, con las ventajas ydesventajas que presentamos antes.

Con respecto a su vida útil, indepen-dientemente del uso que hagamos deella, su duración es de tres años.A pesar de todas las recomendacionesque nos dan al comprar celulares, no esnecesario cargarla durante 12 horas ensu primera carga. De hecho, las bateríasmás nuevas no necesitan más que 8 ho-ras para cargarse completamente. Tam-poco es real que los primeros ciclos decarga y descarga deben ser completos.Descargar en forma completa antes decargarla 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 usomasivo en los celulares ha permitidoque 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.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 82

Page 85: Robotica [Users]

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íquelMetal (Ni/Mh), principalmente porsu efecto memoria y por la contami-nación que produce el cadmio. Una ventaja que poseen es la cantidadde ciclos de carga, que ronda los1.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ásde capacidad que las de Ni-Cd.Además, poseen baja resistencia in-terna, lo que permite una carga másrápida y una baja tasa de autodescar-ga. El problema es que luego de los300 ciclos, su capacidad cae drástica-mente, y luego de los 600 la resisten-cia interna aumenta en forma tanabrupta que se considera que el lími-te de los ciclos de carga es cercano a500. Sin embargo, al tener mayor ca-pacidad y no sufrir de efecto memo-

La fuente de energía

83

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

BATERÍAS DE POLÍMERO DE LITIO

Figura 4. Batería de Niquel Cadmiopara luces de emergencia.

Figura 5. Pequeñas baterías

recargables de Ni/Mh y Ni-Cd.

Figura 6.

Baterías AA de

Níquel Metalde 2500 mAh.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 83

Page 86: Robotica [Users]

ria, la cantidad de ciclos necesaria esmenor. Otra ventaja es que son másecológicas que las de Ni-Cd.

Baterías de Plomo–ácidoSon 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 de3 (lo que brinda múltiplos de 6 V).Tienen un depósito de ácido sulfúricodonde se insertan unas placas de plo-mo. Cuando las celdas están cargadas,los electrodos son de plomo metálicoy óxido de plomo, sumergidos en elácido sulfúrico (diluido en agua).En el proceso de liberación deenergía, ambos electrodos se convier-ten en sulfato de plomo y disminuyenasí la presencia del ácido en el agua.En la carga, en el polo negativo el sul-fato de plomo vuelve a convertirse enplomo metálico, mientras que en elpositivo se forma óxido de plomo, yaumenta la presencia de ácido sulfú-rico en el electrolito. Tienen una grancapacidad de corriente con una bajaresistencia interna, lo que las hace es-pecialmente útiles para los motores dearranque. Son económicas pero degran peso, lo que no las hace reco-mendables para los robots autónomosde tamaño mediano o pequeño.

4. COMIDA DE ROBOTS

84

Figura 7. Una UPS alimentada

por una batería de plomo-ácido.

Figura 8. Batería recargable

de gel de 12 V.▲

En Latinoamérica también tenemos desarrollo e investigación relacionados con las cel-

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

EN EUROPA NO SE CONSIGUE

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 84

Page 87: Robotica [Users]

Baterías de gelEsencialmente, son una modificaciónde las baterías de plomo-ácido, dondese le añade un agente gelificante al elec-trolito para disminuir su movimientodentro de la carcasa (Figura 8). Además,presentan un mecanismo por el cuallos gases internos no se liberan al exte-rior, sino que se recombinan con elagua 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 puededesprender gases o reducir su vida útil.Tienen una autodescarga muy baja ysu carga útil dura hasta casi medio año.

Celdas de combustibleEs un dispositivo electroquímico si-milar a una batería, pero se reabastecea partir de una fuente externa de com-bustible y oxígeno. Por otra parte, loselectrodos no se modifican como enuna batería convencional, sino que semantienen estables. En el caso clásico

de una celda de hidrógeno, los reacti-vos que se utilizan son hidrógeno enel lado del ánodo y oxígeno en el cá-todo. Al generar electricidad, el dese-cho resultante es agua y calor, con locual la contaminación producida porestas celdas es mínima. Aunque aúnson muy costosas, en los últimos cin-co años han bajado 25 veces su precio.Quedan como una buena propuestapara seguir atentamente en el futuro.En la Tabla 1 presentamos una tablacomparativa entre las baterías que po-demos encontrar en el mercado. Enella, podemos ver todas sus carac-terísticas en forma más sencilla.

Nuestra elecciónComo vemos, tenemos muchas va-riantes al momento de elegir la fuen-te de energía de nuestros robots. Pa-ra hacer nuestra elección, tuvimosen mente los siguientes aspectos:• Costo.• Capacidad de recarga.• Masividad de uso (es decir, que pue-

dan usarse en otros dispositivos).

La fuente de energía

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.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 85

Page 88: Robotica [Users]

• Densidad de energía.• Peso.

Antes de presentar nuestra elección,queremos aclarar que cualquier fuen-te de corriente continua entre 9 V y12 V es perfectamente utilizable ennuestro 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 pruebascon nuestra computadora, podemosconectar una fuente de corriente con-tinua de 12 V para no consumir laenergí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 mejorcombinación de las características quehemos usado para nuestro análisis. Da-do que proporcionan 1,25 V, usaremosun pack de 8 a 12 pilas para alimen-tar a nuestro robot. Para ello, podemosadquirir 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 losubicamos, pero antes de eso, los co-nectaremos con nuestro controladorpara comenzar las primeras pruebas.

Calidad de las bateríasUn factor fundamental en el éxito denuestra 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 decomprarlas. En un documento reali-zado para su tienda de Ebay, JavierMartínez nos da algunas recomen-daciones muy interesantes que pre-sentamos a continuación.En general, las pilas más económicasno brindan información real conrespecto a su capacidad. La manerade comprobar esto es utilizar algúncargador con medidor de capacidad,pero en general son muy costosos,además de que no pueden realizar lamedición en forma instantánea.Una segunda opción, inmediata yeconómica, es ¡pesar las pilas! Efec-tivamente, dado que la capacidadestá relacionada con los componen-tes internos de la pila, una pila conmayor capacidad debe ser más pesa-da. En la próxima página vemos laTabla 2, creada por Javier, con testeosque ha realizado con diversas pilasde Ni/Mh. En todos los casos, las pi-las medidas son AA. Lamentable-mente, otro problema que tenemos es

4. COMIDA DE ROBOTS

86

Figura 9. Portapilas para 8 pilas AA.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 86

Page 89: Robotica [Users]

que también se comercializan pilas demarcas conocidas que, en realidad,son imitaciones. Para detectarlas, lavariable peso también es útil. Por otrolado, es importante mencionar que lasmarcas Sony y Panasonic no han pro-ducido pilas de más de 2700 mAh. Po-demos consultar varias páginas webque nos alertan, mes a mes, sobre lasfalsificaciones que aparecen en el mer-cado (Figura 10).

CargadoresEl cargador de baterías es un dispositi-vo que permite recargar baterías ap-tas para tal fin, y fuerza el ingreso decorriente eléctrica dentro de ellas. Elcargador más sencillo (Figura 11) es

aquel que introduce una corriente con-tinua en la batería que debe ser carga-da sin modificar la corriente según eltiempo o la carga producida hasta elmomento. Es económico, pero el re-sultado deja bastante que desear. Engeneral, son de carga lenta para evitar

La fuente de energía

87

Figura 10. En el sitio de MercadoLibre podemos encontrar

guías especiales para detectar falsificaciones.

Tabla 2. Relación entre el pesoy la capacidad de las pilas AA.

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

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 87

Page 90: Robotica [Users]

el deterioro de las baterías. De todasformas, si las dejamos mayor tiempoque el indicado, podemos debilitar-las o deteriorarlas por sobrecarga.Un modelo algo más complejo esaquel que detiene su carga luego de untiempo predefinido. Se utilizaron mu-cho con las baterías de Ni-Cd a finesde la década del 90. Frecuentemente,se comercializa el pack de baterías jun-to al cargador, que viene configuradocon el tiempo acorde para las bateríasasociadas. Si utilizamos otro tipo debaterí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 eldispositivo 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 paracada caso en particular. Para las bateríasde Ni-Cd y Ni/Mh, el voltaje sobre labatería crece en forma lenta durante elproceso de carga, y decrece cuandoestán llenas. Esto le indica al cargadorque han llegado a su punto máximo decarga. Sin embargo, monitorear latemperatura nos asegura no tenerningún tipo de problemas con las ba-terías que se encuentren en corto. Enestos cargadores, es ideal que las ba-terías no se ubiquen en serie, sino deforma 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.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 88

Page 91: Robotica [Users]

dad, específicos para un modelo de ba-tería, usan circuitos de control internode las baterías que permiten acelerar elproceso de carga. Muchos de ellos in-cluyen un sistema de ventilación paraimpedir 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 puedenrealizar esta carga rápida sobre cual-quier batería, pero son de marcas reco-nocidas y su precio es elevado.Como novedad, han comenzado aaparecer cargadores que utilizan elpuerto USB de la computadora paraevitar la necesidad de otro enchufe (Fi-gura 14). Incluso hay pilas que tienenun adaptador USB para conectarlasdirectamente a nuestra PC. Si perte-necemos a la clase de fanáticos quetiene 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ásTodos los dispositivos que hemosmencionado, en menor o mayor me-dida, son contaminantes. Es por esoque queremos ofrecer algunos con-sejos con respecto a la forma de de-sechar las baterías para que su podercontaminante se reduzca. Antes quenada, en los momentos de testeo,

podemos usar nuestro robot conec-tado a la corriente eléctrica. Así cui-daremos nuestro bolsillo y nuestroplaneta. De esta forma, los ciclos decarga 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

La fuente de energía

89

Figura 13. Cargador para baterías de 9 V.

Figura 14. Cargadores

de baterías por USB.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 89

Page 92: Robotica [Users]

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

LO BARATO SALE CARO

punto de partida muy interesantepara 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, quedebe 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 necesarioque las empresas que realicen esteproceso pertenezcan al Estado oestén subvencionadas por él. Hasta

4. COMIDA DE ROBOTS

90

Figura 15. Batería flexible, una propuesta ecológica para la generación de energía.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 90

Page 93: Robotica [Users]

que no se tome conciencia de estepeligro, los consejos que dan lasONGs 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 deningú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 corrienteelé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.

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 91

Page 94: Robotica [Users]

92

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

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

04_ROBOTICA.qxd 24/10/2007 02:16 p.m. PÆgina 92

Page 95: Robotica [Users]

Hablar connuestro 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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Comunicación con el robot 94Lenguajes de programación para robots 95PicBasic Pro 95Compilador CCS C 97MikroBasic 98Editor de código fuente de mikroBasic 100Explorador de código 103Depurador 103Manos a la obra 106Elementos del léxico 108Organización de los módulos 110Alcance y visibilidad 111Variables, constantes y tipos 112Estructuras 115Operadores 116Sentencias 117

Resumen 123Actividades 124

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 93

Page 96: Robotica [Users]

COMUNICACIÓN CON EL ROBOTYa hemos logrado construir el cerebrode nuestro robot y lo hemos dotadode energía. Sólo nos falta encenderlopara darle vida a nuestra criatura. Pre-sionamos un botón y en un primermomento, nada ocurre. Pero de pron-to, algunos músculos tiemblan y susojos se abren. ¡Hemos logrado el mi-lagro! Sólo basta con solicitar lo quedeseamos que haga y nuestros sueñosse cumplirán. Entonces le pedimosque nos traiga el periódico, que nosprepare una buena cena y que luegodeje la cocina en orden. Nada ocurre.Sigue allí, con sus lucecitas parpade-antes, sin demostrar buena voluntad

para obedecer a nuestras órdenes. ¿Notiene incorporadas las tres leyes de larobótica? Tal vez fue demasiado com-plejo el pedido. Intentamos con cosasmá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 nosfastidian, 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 horade que nos detengamos a tratar decomprender a nuestro robot. Es horade que nos demos cuenta de que aúnes 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.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 94

Page 97: Robotica [Users]

Lenguajes de programaciónpara robotsPara aquellos que hemos trabajadocon computadoras de baja capacidadde procesamiento y poca cantidad dememoria, programar los micros de losrobots nos resulta familiar, dado quevolvemos a tener las limitaciones deaquellos viejos tiempos.Con la aparición de las PCs, la velo-cidad de procesamiento y la memoriade las que disponemos nos permitenutilizar lenguajes que no hagan unaprovechamiento preciso de todos losrecursos. Gracias a estas ventajas, apa-recen los lenguajes de alto nivel, quenos brindan un mayor poder de ex-presividad a cambio de gastar muchamemoria y procesamiento.En el caso de los robots, carecemosde estos dos recursos. Por eso, nece-sitamos lenguajes que aprovechen almáximo cada byte de memoria y ca-da ciclo de procesador para realizarnuestra tarea. De esta forma, los mi-cros utilizan habitualmente lengua-jes de bajo nivel. Estos lenguajesson pobres en capacidad expresiva,pero muy potentes a la hora de uti-lizar cada componente de nuestrocontrolador. El problema es queaprender a utilizarlos es complicado.Pero no temamos, vamos a haceruna recorrida por los lenguajes máscomunes, desde los más potenteshasta los más sencillos de utilizar, ynos quedaremos, para nuestras pri-

meras experiencias, con uno de estaúltima categoría: MikroBasic. Másadelante, cuando ya nos quede claroel funcionamiento de nuestro mi-cro, podremos aventurarnos a hori-zontes más complejos.

PicBasic ProUno de los lenguajes más popularespara los micros PIC es el PicBasic Pro(PBP), de microEngineering Labs.Como su nombre lo indica, es uncompilador Basic que posibilita laprogramación en un lenguaje muchomás sencillo que el ensamblador deMicroChip. Es similar al Basic del Ba-

Comunicación con el robot

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.

ALTO Y BAJO NIVEL

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 95

Page 98: Robotica [Users]

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 dondeestá 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. Eneste archivo está el código del micro,y lo bajaremos luego con el softwa-re programador. Veamos un ejemplode 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 conectadoun led, tendríamos una bonita luz quese enciende y apaga indefinidamente.Los creadores de PBP han desarrolla-do una suite, MicroCode StudioPlus (Figura 2), que une todas las he-rramientas necesarias en una únicaIDE. El editor posee coloreado de sin-taxis y ayuda sensible al contexto. Suexplorador de código permite saltarcon rapidez a secciones específicas,como declaración de variables, cons-tantes, símbolos y etiquetas inclui-dos en el código fuente. Posee todaslas funcionalidades convencionales delos 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 seejecuta en el micro. Podemos definirpuntos de corte y ejecución de códi-go paso a paso, lo que facilita en granmedida la depuración de nuestro pro-grama. MicroCode Studio Plus tam-bién nos brinda un cargador de códi-go (bootloader) para incorporar anuestro PIC, de manera que no nece-

5. HABLAR CON NUESTRO ROBOT

96

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

ENCONTRAR LOS LENGUAJES PARA PROGRAMAR LOS PICS

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 96

Page 99: Robotica [Users]

sitemos un programador para nuestromicro. Sólo lo necesitaremos la pri-mera vez, para cargar este bootloader.

Compilador CCS CEste compilador de lenguaje C ha si-do diseñado exclusivamente para lalínea PIC. Se considera el compila-dor más optimizado para estos mi-cros. Tiene una librería de funcionespredefinidas, 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 elmicro. Cuenta con controladores dereloj en tiempo real y conversoresanalógicos digitales. Por ejemplo,contamos con la instrucción READ_ADC(), que permite leer un valor del

conversor mencionado. Podemos de-finir variables estructuradas cuyoscomponentes se correspondan uno auno con registros del micro. Es integrable con simuladores de PICcomo el MPLAB y podemos mezclarcódigo assembler en el medio denuestro 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

Comunicación con el robot

97

Figura 2. Vista del MicroCode Studio Plus, IDE para el PicBasic Pro.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 97

Page 100: Robotica [Users]

output_low(PIN_B0); ‘apaga

el puerto

delay_us(500); ‘espera otros

500 milisegundos

} ‘Todo esto se repite

eternamente…

Cabe aclarar que las funciones quese presentan en este ejemplo desen-cadenan código mucho más optimi-zado que el generado por Basic.

La firma CCS también ofrece IDEspara Windows, llamadas PCW yPCWH. La única diferencia es quePCWH soporta la serie PIC 18. Po-seen un editor de código fuente (CAware 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ásicadel programa. También permite reali-zar depuración, pero requiere dehardware 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.

MikroBasicPor último, llegamos al lenguaje ele-gido para nuestros ejemplos de pro-yectos. La empresa MikroElectróni-ca ha desarrollado un conjunto decompiladores para micros, tanto paralenguaje C como para Basic. Lo másinteresante de ambos es que integran

5. HABLAR CON NUESTRO ROBOT

98

Figura 3. Vista del editor C Aware de CCS.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 98

Page 101: Robotica [Users]

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 sensibleal contexto, estadísticas sobre el usodel micro y muchas otras más. Porotra 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 desarrollaremosen nuestro libro. Soporta una grancantidad 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 laIDE que vamos a utilizar, comence-mos a estudiar en detalle cada una desus herramientas.

Instalación de mikroBasicPara instalar el programa en nuestracomputadora, debemos dirigirnos ala dirección www.mikroe.com/en/compilers/mikrobasic/pic/ y en-trar en la sección Download, dondepodremos bajar la última versión.Los pasos de instalación son muysencillos, 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énpodemos encontrar un conjunto demanuales, muy claros y didácticos,que nos permitirán completar nuestrabreve mirada sobre la herramienta.En nuestro caso, todos los ejemplosque mostraremos y las indicaciones

Comunicación con el robot

99

Figura 4. Asistente de proyectos del PCW.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 99

Page 102: Robotica [Users]

de operación del mikroBasic estánbasados en la versión 5.0.0.2, del 31de octubre de 2006.

Editor de código fuente de mikroBasicUno de los puntos más fuertes de laIDE es el editor que nos proporciona.Como todo editor de texto, presentalas 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, unavez que ingresamos las primeras letrasde lo que deseamos escribir, presiona-mos CTRL + ESPACIO y todos los iden-tificadores válidos que comiencen conesas letras se desplegarán en un cuadrode 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 paraque 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

100

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.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 100

Page 103: Robotica [Users]

Comunicación con el robot

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!

CINTA ADHESIVA, PEGAMENTO, BANDAS ELÁSTICAS, ¡TODO VALE!

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 101

Page 104: Robotica [Users]

camente aparecerá un pequeño car-tel con el o los parámetros corres-pondientes, que nos indicará connombre:tipo qué función cumple elpará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 funcy presionamos CTRL + J, automáti-camente se escribirá la estructuracompleta de una función para quecompletemos con los datos necesa-rios. También tenemos la posibili-dad de crear nuestras propias plan-tillas en la opción Auto Complete deTools/Preferences….Por otro lado, cabe mencionar queademás de las características que yapresentamos, tenemos herramientaspara realizar autocorrección, co-mentar o descomentar un conjuntode líneas de código, insertar marcasy saltar de una a otra e ir a un nú-mero de línea de código.

5. HABLAR CON NUESTRO ROBOT

102

Figura 8. Asistente que informa

los parámetros de las funciones.

Figura 9. Editor de las plantillas de código.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 102

Page 105: Robotica [Users]

Explorador de códigoEl explorador de código (Code Explo-rer) se encuentra en la zona izquierdade la ventana. Nos proporciona unalista de los ítems declarados en el có-digo. Desde allí podemos saltar a cual-quiera de las declaraciones con sólohacer doble clic sobre ella. En la par-te superior del explorador podemosencontrar dos solapas más. La solapaQHelp nos proporciona ayuda sobre lalibrería de funciones. La última sola-pa (Keyboard) nos proporciona unalista de los atajos de teclado del editor.

DepuradorMikroBasic proporciona un depura-dor a nivel de código fuente (Figura11). Esto nos permite simular el com-portamiento del micro y nos asistepara la depuración de errores. Dado

que es a nivel de código y no tienelectura real del micro, no permite si-mular ciertas propiedades intrínsecasdel 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 laprimera línea de código y nos aparecela ventana Watch, que nos permitirá re-alizar el control de la depuración. Enesta ventana podemos visualizar varia-bles y registros del PIC, actualizadossegún la ejecución del programa. En laparte 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óndel código paso a paso. Debajo de es-ta barra tenemos un cuadro de lista pa-

Comunicación con el robot

103

Figura 10. Aquí podemos ver la parte de la ventana

que contiene el explorador, la ayuda y los atajos de teclado.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 103

Page 106: Robotica [Users]

ra poder agregarle variables y registrosal 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 primerprograma sencillo, idéntico al que he-mos utilizado en cada ejemplo delcompilador. Para comenzar, luego deabrir mikroBasic, cerremos el proyec-to que tengamos abierto y vayamos almenú Project/Close Project. Creemosun proyecto nuevo en Project/NewProject…, donde nos aparecerá la ven-tana que podemos ver en la Figura 12.

Completemos el nombre, el senderoy la descripción del proyecto y eliga-mos el procesador (utilicemos el PIC16F88) y la velocidad de reloj (ennuestro caso, 4.0). Las banderas que

5. HABLAR CON NUESTRO ROBOT

104

Figura 11. Ventana del controlador

de la depuración.

Figura 12. Creación de un proyecto nuevo.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 104

Page 107: Robotica [Users]

aparecen en la parte inferior las de-jaremos como están por defecto. Au-tomáticamente nos aparecerá unfuente 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 laprimera línea posterior a main y abrela ventana Watch Window. Allí po-dremos añadir las variables TRISB yPORTB para realizar el seguimientode sus valores. Si ejecutamos paso apaso, nos indicará en qué línea nosencontramos 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

de la ventana podremos ver cómo sesimula el paso del tiempo. Si hace-mos doble clic sobre una variable,podremos modificar su valor en elformato numérico que deseemos. Otras ventanas de depuración quepodemos encontrar si nos dirigimosa View/Debug windows son:

• Stopwatch: esta ventana nos mues-tra la cantidad de ciclos/tiempoutilizados hasta la ejecución del úl-timo comando (Figura 13). El valorDelta nos muestra el número de ci-clos/tiempo entre la última líneaejecutada y la línea activa. Con elbotón Reset To Zero podemos po-ner en 0 el valor de Stopwatch, pe-ro continuaremos acumulando enel cuadro Current Count.

• RAM: nos muestra el contenido de laRAM e indica los últimos valorescambiados en color rojo.

• History: presenta las últimas N líne-as de nuestro fuente que se han eje-cutado, pero en código assembler.

Comunicación con el robot

105

Figura 13. Ventana del Stopwatch.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 105

Page 108: Robotica [Users]

Por último, cuando procedemos acompilar, si tenemos errores ennuestro código, aparecerán en laparte inferior de nuestra pantalla, enla 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 suposició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 acrear nuestros propios programas.

Manos a la obraComo ya hemos visto, mikroBasicorganiza sus aplicaciones en proyec-tos. Estos proyectos están compues-tos por un archivo .PBP descriptordel proyecto y uno o más archivos decódigo fuente con extensión .PBAS.Cabe aclarar que sólo podemoscompilar un fuente si éste formaparte de un proyecto. Una vez que tenemos creado el pro-yecto, como vimos en el punto an-terior, podemos editarlo si vamos aProject/Edit project, donde nos apa-recerá la misma ventana que usamospara crearlo. Cuando compilamosnuestro proyecto, se nos generan lossiguientes archivos:

5. HABLAR CON NUESTRO ROBOT

106

Figura 14. Una mirada sobre todas las herramientasque presenta la IDE de mikroBasic.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 106

Page 109: Robotica [Users]

• hex: archivo estilo Intel. Con élprogramaremos 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 conjuntode comentarios que lo hace muylegible y más fácil de entender. Porejemplo, para cada instrucción delfuente en Basic aparece la lista decomandos en assembler. Tambiénpodemos verlo una vez que se ha-ya generado desde el menú View/View Assembly. Para aprender, esrecomendable que miremos el.ASM generado por el ejemplo queutilizamos para el depurador.

Comunicación con el robot

107

Figura 15. Aquí podemos ver el assembler del código que enciende el led.

Los comentarios que tiene lo hacen más legible.

❘❘❘

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 que hay en el sitio.

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.

WINPIC800

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 107

Page 110: Robotica [Users]

MikroBasic nos proporciona unconjunto de variables globales yconstantes predefinidas. Todos losregistros están implícitamente de-clarados como variables globales detipo byte y son visibles en todo elproyecto. También nos proporcionaconstantes como PORTB, TMR1, etcé-tera. Todos los identificadores estánen mayúscula, tal como se los iden-tifica en las hojas de datos de Mi-crochip. Para ver la lista completa depredefiniciones, podemos abrir elarchivo .DEF correspondiente almicro utilizado. Estos archivos seencuentran dentro de la carpetadefs, donde se instaló mikroBasic.Con respecto a las variables, pode-mos acceder a ellas a nivel de bit. Porejemplo, si declaramos la variablemivar 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úmeroentre 0 y 31, que indica el bit al cualaccedemos. Este acceso es tanto a ni-vel de lectura como de escritura.

Elementos del léxicoCuando un código fuente es compi-lado, la primera fase que se producees 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 enblanco a todos los espacios, tabula-ciones, fines de línea y comentarios.Todos ellos determinan el comienzo oel fin de un token. Por ejemplo:

5. HABLAR CON NUESTRO ROBOT

108

Figura 16. MikroBasic nos brinda magníficos gráficos estadísticossobre el código de máquina que genera nuestro fuente.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 108

Page 111: Robotica [Users]

Dim a as byte

Dim b as longint

Es equivalente a

Dim a as byte

Dim b as longint

Para los comentarios se utiliza elapóstrofe como iniciación y se fina-liza con el fin de línea. No podemosponer comentarios de más de una lí-nea, excepto que comencemos cadalínea con un apóstrofe.Los tokens son los elementos máspequeños que tienen significado porsí mismos en Basic. MikroBasic re-conoce los siguientes tokens:

• Keywords (palabras clave).• Identificadores.• Constantes.• Operadores.• Separadores.

Por ejemplo, si tenemos el siguientecódigo:

mivar=23

Esto se convierte en los siguientestokens:

• mivar: variable.

• =: operador de asignación.• 23: literal.• newline: fin de la sentencia.

Los literales son aquellas expresionesque no deben ser evaluadas, que yatienen 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 puntoflotante representan el signo decimalcon un punto. La estructura es: par-teEntera.parteDecimalExponente, siutilizamos 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. Lascomillas consecutivas, “”, se consi-deran como un carácter nulo. Conrespecto a los identificadores (nom-bres de variables, de funciones,constantes, etcétera), pueden teneruna longitud arbitraria y contener

Comunicación con el robot

109

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 109

Page 112: Robotica [Users]

caracteres de la A a la Z, el carácter_ (guión bajo), y los dígitos del 0 al9. La primera letra debe ser uncará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ódulosUn proyecto en mikroBasic consisteen 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 quepresentamos 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 elsiguiente aspecto:

5. HABLAR CON NUESTRO ROBOT

110

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

LIMITACIONES DE ANIDACIÓN

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 110

Page 113: Robotica [Users]

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…

‘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 visibilidadLlamamos alcance de un identifica-dor a la parte del programa donde elidentificador se puede utilizar paraacceder al objeto al que apunta. Hay diversos alcances según el lugardonde hacemos la declaración delidentificador, veamos:

• Si el identificador se declara en lasección de declaraciones del módu-lo principal, fuera de toda funcióno todo procedimiento, el alcance seextiende desde la declaración hastael 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 unafunción o un procedimiento, su al-

Comunicación con el robot

111

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 111

Page 114: Robotica [Users]

cance se extiende hasta el final dela rutina. En este caso, los identi-ficadores son locales.

• Si se declara en la sección interfazde un módulo, su alcance se ex-tiende desde donde se declara has-ta el final, y a todo módulo que useel módulo donde se encuentra ladeclaración. La única excepciónson los símbolos, que tienen un al-cance limitado al archivo dondefueron declarados.

• Si se declara en la sección imple-mentación de un módulo, pero nodentro de una función o un pro-cedimiento, el alcance va desde ladeclaración hasta el final del ar-chivo, y está disponible en todaslas 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 objetosapuntados por él. En general, alcan-ce y visibilidad coinciden, pero nonecesariamente. Podríamos tener unidentificador que se vuelva invisibleen una función o en un procedi-miento porque un identificador lo-

cal tiene su mismo nombre. Sin em-bargo, el objeto identificado siguepresente, aunque no es accesible. Ensíntesis, la visibilidad nunca exce-de al alcance, pero sí puede ocurrirque el alcance exceda a la visibilidad.

No profundizaremos más sobre eldesarrollo de programas modulares,dado que realizaremos programaspequeñ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 tiposLas variables, como ya sabemos, sonsimplemente un identificador o unapuntador a una zona de memoria decontenido plausible de ser modificado.Todas las variables se deben declararantes de usar. Para ello escribimos:

dim lista_de_nombres_de_

variables as tipo

La lista_ de_nombres_de_variables esuna lista delimitada por comas deidentificadores válidos, que serán

5. HABLAR CON NUESTRO ROBOT

112

❘❘❘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, 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.

LÍMITES DE TAMAÑO EN LAS RUTINAS

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 112

Page 115: Robotica [Users]

todas del mismo tipo de datos. Porejemplo:

dim dias, edad, curso as byte

dim contador as word

Las constantes son datos que novarían en la ejecución del programa,es decir, no consumen memoriaRAM. Se declaran de la siguientemanera:

const NOMBRE_DE_CONSTANTE [as

tipo] = valor

El nombre de la constante debe serun identificador válido. Por conven-ción, se ponen todas las letras de sunombre 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

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 paracada identificador. En estos lenguajes, los tipos sirvenpara determinar la cantidad de me-moria necesaria, interpretar los bitsque encuentran en el objeto cuandoacceden y para asegurar asignacionesy pasajes de parámetros correctos.

Comunicación con el robot

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.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 113

Page 116: Robotica [Users]

Los tipos simples son los que pode-mos observar en la Tabla 1.En mikroBasic también contamoscon arreglos. Un arreglo (Figura 17) esuna colección de elementos del mis-mo tipo, identificados en su conjun-to con un nombre e individualmentecon un índice. Por ejemplo:

dim semana as byte[7]

Esto declara un arreglo de nombresemana que contiene siete elementosde tipo byte. Cada elemento estaráidentificado como semana[i], dondei es un número entre 0 y 6. De estamanera, accedemos a cada elemen-to, tanto para su lectura como parasu escritura. Por ejemplo:

semana[2] = 12

Esto le asigna al tercer elemento de lacolección (recordemos que el primerelemento es el 0) el valor 12.

También podemos crear arreglosmultidimensionales. Para poder re-crear una imagen sencilla, podemospensar un arreglo de dos dimensionescomo una planilla, donde un índiceindica la fila y el otro la columna. Porejemplo, para declarar un arreglo dedos 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.

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

CICLOS INFINITOS

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 114

Page 117: Robotica [Users]

lumnas, desde sueldos[0][0] hastasueldos[22][11]. Es decir, 276 ele-mentos. Las cadenas son arreglosde caracteres, y se las declara de esamanera. Por ejemplo:

dim nombre as string[14]

Esto declara una variable nombre queapuntará 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 unacadena de 4 caracteres a la variablenombre. El límite de cadena a asig-nar es de 14 caracteres.

EstructurasPara representar objetos cuya infor-mación es un conjunto de datos dediversos 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. Ladeclaración de la estructura es la quepodemos ver a continuación:

structure nombre_estructura

dim miembro1 as tipo

dim miembron as tipo

end structure

Donde nombre_estructura y miem-bro1 son nombres válidos para losidentificadores. 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

Comunicación con el robot

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.

EFICIENCIA DE TIPOS

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 115

Page 118: Robotica [Users]

Para acceder a cada elemento de la es-tructura, simplemente escribimosidentificador.campo_de_estructura.

Por ejemplo:

posicion.x=12

esquina.y=posicion.y

OperadoresEn mikroBasic podemos encontrarlos 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énpuede usarse delante de un núme-ro para cambiar su signo.

• Relacionales: los operadores rela-cionales comparan dos expresionesy devuelven verdadero o falso segúnla comparación realizada. Ellos sonlos que se muestran en la Tabla 3.

• De bits: operan sobre bits individua-les de los operandos. Ambos operandos deben ser de tiposcon signo o sin signo simultánea-mente. Los operadores de bits son losde 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

116

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

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.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 116

Page 119: Robotica [Users]

Comunicación con el robot

117

evaluado es verdadero o falso. Loque retornan tiene la misma lógicaque en los operadores a nivel de bits.Es decir, podemos pensar en verda-dero como 1 y en falso como 0, y apartir de allí, analizar el resultado dela operación como si fuera una ope-ración a nivel de bits.

SentenciasComo en todo lenguaje de progra-mación procedural, tenemos un pe-queño conjunto de sentencias que elcompilador convierte en las instruc-ciones de código máquina corres-pondientes. En general, este con-junto es mínimo, y se enriquece conla librería de funciones y procedi-mientos que ofrece el ambiente. A

partir de esa librería comenzaremosa construir la propia para aumentarel poder de nuestro lenguaje en elámbito específico de nuestro traba-jo. Veamos las sentencias que nosproporciona 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.

❘❘❘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 para el tipo apropiado.

DIVISIÓN POR CERO

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 117

Page 120: Robotica [Users]

Sentencia asmLa 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, debemoscomenzar los comentarios con pun-to y coma. Luego, al compilar, estecódigo quedará directamente tradu-cido a los valores correspondientesde código máquina.

AsignaciónAunque ya la hemos usado, no pode-mos dejar de presentar la asignaciónque 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

5. HABLAR CON NUESTRO ROBOT

118

relacional homónimo. Simplemente, elcontexto 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 condicionalesComo en otros lenguajes procedura-les, contamos con sentencias condi-cionales que nos permiten seguir unou otro curso de acción según deter-minada condición. La más conocidaes 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 casode retornar el valor verdadero, se eje-cutan las sentencias que están den-tro del primer grupo. Si el segundogrupo de sentencias está definido(los corchetes no deben escribirse,

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

VARIABLES DENTRO DEL CÓDIGO EN ASSEMBLER

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 118

Page 121: Robotica [Users]

sólo nos muestra que esa sección esoptativa), entonces se ejecuta estesegundo grupo. Si no está, se con-tinúa con las sentencias posterioresal end if. Por ejemplo:

if PORTA.3=1 then

PORTB.2=1

else

PORTB.3=1

endif

Supongamos que el bit 3 del puertoA está definido como entrada y losbits 2 y 3 del puerto B como salidas.Lo que hacemos aquí es encender elbit 2 de B si la entrada registrada enel 3 de A se enciende, y encender elbit 3 de B en el otro caso.

Otra sentencia que define el flujo delprograma según una condición es lasentencia select case. Su sintaxis es:

select case selector

case valor_1

sentencias_1

case valor_2

sentencias_2

case valor_n

sentencias_n

[case else

sentencias_por_

defecto

]

end select

El selector es la expresión que seevalúa para luego determinar si coin-cide con alguno de los valores de lassentencias case. Esos valores puedenser literales, constantes o expresio-nes. El case else es optativo, y sussentencias se ejecutan si no ingresóen ninguno de los case anteriores. Enlos valores podemos agrupar un con-junto de ellos separados por una co-ma, para que se ejecuten sus senten-cias cuando el selector coincida concualquiera de ellos. Por ejemplo:

select case resu

Comunicación con el robot

119

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.

HOJA DE DATOS DE LOS PICS

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 119

Page 122: Robotica [Users]

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, opertomará el valor 0. Si vale 1, 4, 7 ó 9,oper tomará el valor 1. En el caso deque sea 2, 5 u 8, el valor de oper será2. Y en otro caso, oper saldrá de estaestructura con valor 3.

Sentencias de iteraciónLas sentencias de iteración nos per-miten repetir un conjunto de sen-tencias una determinada cantidadde veces o según se produzca unacondición o no. En el primer caso,la sentencia for nos permite definirun 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 elstep no se define, el salto es de unoen uno. El contador comienza con elvalor indicado en valor_inicial, y sien algún momento supera elvalor_final, el ciclo deja de repetirse.Es decir, cada vez que se llega a nextcontador, el contador aumenta lo in-dicado por valor_salto y se evalúa siha superado el valor_final. De ser así,no vuelven a ejecutarse las sentenciasdel ciclo. Por ejemplo, en el siguien-te caso, el arreglo a toma el valor 255en cada posición del 0 al 7.

for i= 0 to 7

a[i]=255

next i

Otra sentencia que podemos usarpara una repetición es la estructurawhile, que se define de esta manera:

while expresión

sentencias

wend

Cada vez que se está por ejecutar elconjunto de sentencias, se evalúa laexpresión. Si su resultado es verda-dero, se ejecutan. Si es falso, se con-tinúa la ejecución con las sentenciasposteriores al wend. Con este comportamiento, pode-mos tener casos en los que las sen-

5. HABLAR CON NUESTRO ROBOT

120

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 120

Page 123: Robotica [Users]

tencias no se ejecutan nunca, porquela 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 algunavariable que aumenta en forma line-al (de 1 en 1, de N en N) se utilizala sentencia for. En otro caso, cuan-do la condición es más compleja y elcomportamiento de las variables queentran en juego en la condición esmás complejo y menos lineal que unaumento de N en N, es necesariauna estructura while.

Si necesitamos que el conjunto desentencias que se van a repetir se eje-cute por lo menos una vez, debemos

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 deevaluació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, sevuelve a ejecutar el ciclo. De lo con-trario, se continúa con las sentenciasposteriores a loop until. Tomemos elmismo ejemplo anterior y traduzcá-moslo a esta nueva estructura, comovemos a continuación:

i=0

do

a[i]=255

i=i+1

loop until i>7

Comunicación con el robot

121

✱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 como el break, pero no es recomendable.

DAR VUELTAS POR LA ETERNIDAD

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 121

Page 124: Robotica [Users]

Como podemos ver, el conjunto desentencias se ejecuta sí o sí una vezen este caso. Un uso muy habitualde esta sentencia es la espera de unestado 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 enel estado en el que se encontraba antesde llegar al loop, y cuando se produzcala activación del sensor, continuará conlas sentencias que le siguen.

Sentencias de salto de ejecuciónde programaEstas sentencias permiten redirigirel flujo de ejecución de un progra-ma. Ninguna de ellas es altamenteaconsejable. Para ser rigurosos aun-que tengamos que trabajar un pocomás, tendríamos que reemplazarlaspor las sentencias ya vistas, dado quees 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 sentenciabreak 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 Ase enciende, el break obliga a la sali-

5. HABLAR CON NUESTRO ROBOT

122

❘❘❘

Si nos interesa conocer más sobre el

tema, debemos saber que existen mi-

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

INTELIGENCIA ARTIFICIAL

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 122

Page 125: Robotica [Users]

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. Susintaxis es la siguiente:

goto nombre_etiqueta

De esta manera, salta a la sentenciasiguiente donde está ubicada la eti-queta. La sintaxis de la etiqueta es laque vemos a continuación, y cabeaclarar que debemos incluir los dospuntos en la sintaxis.

nombre_etiqueta:

Otra sentencia de salto es exit, quenos permite salir de una función ode un procedimiento y volver alpunto en el que se había invocado ala rutina. También contamos congosub y continue, pero como enten-demos que violan demasiado el flu-jo del programa y porque son fácil-mente reemplazables por alguna delas opciones que ya presentamos, novamos 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 ladepuración y la lectura del código,por lo que aconsejamos evitarlassiempre que sea posible.

Comunicación con el robot

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.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 123

Page 126: Robotica [Users]

124

TEST DE AUTOEVALUACIÓN

1 ¿A qué llamamos lenguajes de bajo y al-

to 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?

ACTIVIDADES

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.

05_robotica.qxd 24/10/2007 02:21 p.m. PÆgina 124

Page 127: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

El movimiento del robot 126Tipos de motores 126Motores de corriente continua 127Motores paso a paso (Motores PaP) 135Servos 140

Resumen 145Actividades 146

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 125

Page 128: Robotica [Users]

EL MOVIMIENTO DEL ROBOTNuestro robot crece. Después de va-rios intentos le hemos podido brin-dar una inteligencia precaria. Puedeencender o apagar un led, lo que nosemociona cada vez que ocurre. Peronada nos conforma. Queremos que empiece a andar, ahacer su propio camino. Y es por esoque analizamos con cuidado cuálesserá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á haciaotros planetas? ¿Se sumergirá en bus-ca de tesoros? ¿Reptará en pantanosmovedizos? ¿O sólo se trasladará so-bre un piso pulido, sin rebordes nipelos que traben sus motores? Como ya habrá tiempo de hazañas yproezas, por ahora nos basta con re-correr con dos ruedas sencillas unasuperficie que no presente proble-mas. Cuando veamos que ya domi-na el mundo de dos dimensiones delpiso, estaremos en condiciones deproyectar otros horizontes.

Tipos de motoresComo hemos comentado en capítu-los anteriores, la arquitectura denuestro robot con respecto a sus me-canismos de locomoción será extre-madamente sencilla. Usaremos rue-das laterales, que nos permiten tenercontrol mediante un sistema de pro-gramación al alcance de todos, y quedesde el punto de vista mecánicoson fáciles de implementar. En elCapítulo 8, donde construiremos elcuerpo de nuestra criatura, analiza-remos todas las posibilidades de lo-comoción que tenemos con nuestrorobot, pero por ahora pondremosnuestro esfuerzo en controlar losmotores, que no es poco.Aunque ya hicimos una introducciónmuy breve de cada uno de los tipos de

6. RECORRER EL MUNDO

126

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.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 126

Page 129: Robotica [Users]

motores clásicos que podremos utili-zar, ahora presentaremos en formaprofunda cada uno de ellos, y desa-rrollaremos la electrónica necesariapara conectarlos con nuestro contro-lador. Además, veremos un conjuntode ejemplos de programación parapoder manejarlos en forma efectiva.Es posible que al principio resulte unpoco complejo, pero creemos que losejemplos aclararán el panorama.

Motores de corriente continuaLos motores de corriente continua(CC) son los actuadores que podre-mos conseguir con mayor facilidad, yque seguramente estarán presentes enmuchos de nuestros robots. En gene-ral, están formados por dos imanespegados a la carcasa del motor y unconjunto de bobinas de cobre en eleje del motor. El funcionamiento sebasa 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 y los imanes que se encuen-tran alrededor de ellas. Veamos cómose produce esta interacción. Cuandola corriente eléctrica pasa por la bobi-na, genera en el núcleo un campomagnético con una orientación de-terminada, es decir, un polo Norte yuno Sur (Figura 1). Si cambiamos lapolaridad de la bobina, se invierte ladirección de los polos (Figura 2). Losdos imanes que se encuentran en lacarcasa tienen polos distintos.

Si aprovechamos el efecto magnéticode que los polos iguales se rechazany los opuestos se atraen, cambiamosla polaridad de la bobina, y genera-mos rechazo o atracción entre ellas ylos imanes de la carcasa (Figura 3). Deesta manera, y si consideramos quetenemos más de una bobina, genera-mos el movimiento del motor con surespectivo torque. Este último con-cepto se refiere a la potencia o lafuerza que tiene el giro del motor, y

El movimiento del robot

127

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:

•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/.

RECICLADO

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 127

Page 130: Robotica [Users]

que depende de la cantidad deenergía que pasa por las bobinas, lacantidad de vueltas del bobinado, elgrosor 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 sentidoo 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 correrdetrá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 alenviar una señal con nuestro micro.En este momento podríamos pensaren conectar directamente el motor al16F88. ¡Error! Los motores absorbendemasiada corriente. Si los conecta-mos directamente al micro, se que-marán (que es algo que con seguridadno queremos hacer). Es por eso queentre el micro y los motores incorpo-ramos una etapa intermedia, conoci-da como etapa de potencia. Cuandoutilizamos una fuente de alimenta-

6. RECORRER EL MUNDO

128

Torque

S S II II

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.

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.

PARA VER EL FUNCIONAMIENTO INTERNO DE UN MOTOR CC

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 128

Page 131: Robotica [Users]

ción simple, como es nuestro caso, seutiliza un puente H (H Bridge), cu-yo esquema electrónico básico es elque podemos ver en la Figura 4.

Cuando C1 no tiene corriente (estáen 0) y C2 sí la tiene (está en 1), elmotor gira en el sentido de las agu-jas del reloj. En el caso contrario, elmotor invierte el sentido de su giro.Cabe aclarar que el esquema es máscomplejo que el que vimos. Porejemplo, necesitamos un mecanismoque impida que las dos señales se ac-tiven, porque estarían en riesgo lostransistores y la fuente. Para estos yotros problemas, la solución mássencilla es utilizar un integrado queuna todos estos componentes en unsolo 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.

❘❘❘

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.

EL L293D Y EL L293B

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 129

Page 132: Robotica [Users]

un solo componente. El integradopropuesto para esta función es elL293D, que cuenta con cuatro dri-vers de potencia y diodos de protec-ción para los motores (Figura 5). Dela misma manera, podríamos utilizarotros integrados como el UCN5804,el BA6286, el L293B, etcétera.

Con el L293D podremos controlarcuatro motores con un solo sentidode giro, es decir, que gire o esté de-tenido, o dos motores con inversiónde giro. Este último caso es el quemás nos interesa a nosotros paraconstruir un vehículo móvil. Si co-nectamos el motor en los pines 3 y6, según el estado de los pines 1, 2

y 7, lograremos el sentido del girodel motor, su freno o un estado depunto muerto, como podemos ob-servar en la Tabla 1.

En este punto, ya sabemos cómocontrolar el sentido de los motores,y si están frenados o libres, pero to-davía no hemos resuelto el tema dela velocidad. Es importante recordarque estos motores tienen poca fuer-za y mucha velocidad, con lo cual esnecesario agregarles un sistema dereducción para aumentar la fuerza yreducir la velocidad. Más adelanteveremos una solución interna al mo-tor y, en el Capítulo 8, opciones parasoluciones 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.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 130

Page 133: Robotica [Users]

mas, necesitamos un mecanismoelectrónico de control para podermodificar la velocidad del motor.Uno de ellos es la modulación porancho de pulso (Pulse With Modu-lation, PWM), que ya mencionamospara el control de los servos.

También en los motores de CC uti-lizamos PWM, pero en un sentidodistinto al que se usa con los servos.Dado que necesitamos generar lospulsos, es necesario entender cómofunciona esta modulación. En la Fi-gura 6 podemos ver un ejemplo grá-fico de esto. En PWM, la frecuenciade los pulsos se mantiene constante.Lo que se modifica es el tiempo enel que la señal está alta dentro deesos pulsos. Cuanto más largo sea eltiempo en el que la señal esté alta,

mayor será la velocidad del motor.Para dar un ejemplo más sencillo,imaginemos que tenemos el motorconectado a un interruptor que con-trolamos con la mano. Con una fre-cuencia de dos segundos, encende-mos (señal alta) y apagamos (señalbaja) el motor dentro de ese tiempo. Por ejemplo, podríamos tenerlo unsegundo prendido y un segundoapagado. O un segundo y medioprendido y medio segundo apagado.En el primer caso, se lograría mayorvelocidad 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 novaría y, por lo tanto, el torque es el

El movimiento del robot

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.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 131

Page 134: Robotica [Users]

mismo. Como veremos más adelan-te, lograremos el control del motorcon PWM mediante la programaciónde nuestro micro. Gracias al L293D,no necesitaremos más electrónica quela presente en nuestra controladora,dado que los diodos de proteccióndel motor se encuentran incorpora-dos en el integrado.Otro mecanismo habitual para elcontrol de la velocidad de los moto-res de CC es la modulación por fre-cuencia de pulsos (Pulse FrequencyModulation, PFM). En este caso, laproporción de la señal alta y bajadentro 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 noserá el mecanismo que utilizaremosen nuestro robot.

Ejemplos de programación de unmotor CC con nuestro controladorComo podemos observar en la cons-trucción del controlador, el motor 1está conectado a los pines 11 y 14del L293D (Output 3 y 4, respecti-vamente) y el motor 2 a los pines 3y 6 (Output 1 y 2). Para realizarnuestros ejemplos trabajaremos so-bre el motor 1, pero desde ya que loque veamos sobre este motor es apli-cable al otro. El control de los pines11 y 14 está dado por los inputs 3 y4, ubicados en los pines 10 y 15 delL293D. Si seguimos las conexionesde nuestro controlador, podemosver 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 vimosantes para mostrar cómo se com-portará el motor 1 según el estadode 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 podremoslograr este último estado en nuestrocontrolador porque el pin 9 delL293D está en alto constantementey no está controlado por el 16F88.

6. RECORRER EL MUNDO

132

❘❘❘Cuando construimos nuestros robots,

aparecen problemas físicos que segura-

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

PROBLEMAS FÍSICOS

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 132

Page 135: Robotica [Users]

Ejemplos de código en mikroBasicAunque los ejemplos más completosestarán incluidos en los capítulosdonde haremos robots para cumplirmisiones específicas, ya podemoscomenzar a realizar algunos progra-mas para empezar a testear a nuestrorobot. En el capítulo pasado en-cendíamos y apagábamos todo elPORTB para encender y apagar el led. A partir de ahora comenzaremos aser 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

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 hacerque el motor 1 encienda un segundo enun sentido, otro segundo en el sentidocontrario, y un segundo se encuentredetenido (¡No nos olvidemos de quedebemos 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

El movimiento del robot

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.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 133

Page 136: Robotica [Users]

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)

6. RECORRER EL MUNDO

134

PORTB.2 = 0

‘ Enciende RB2

(Pin 8 del 16F88)

delay_ms(1000)

‘ Espera 1 segundo

wend

end.

Motorreductores CCComo ya comentamos, los motoresCC tienen mucha velocidad y pocafuerza, por lo que se hace necesarioel uso de un sistema de reducciónpara poder equilibrar estas variables.Una de las soluciones es construiruna caja reductora externa al motor.Sin embargo, en los últimos añoshan surgido motores de CC que yaproveen esta solución a nivel inter-no. A estos motores se los conoce co-mo motorreductores. Consisten enun 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 dela suciedad que podría afectar sufuncionamiento (Figura 7).

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.

DÓNDE CONSEGUIR MOTORREDUCTORES

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 134

Page 137: Robotica [Users]

Como ejemplo de estos motorreduc-tores, podemos presentar el modeloMR-4 de Ignis, que tiene un torquede 0,12 a 2 Kgf*cm, según el mode-lo, con un consumo de 100 mA. Losmodelos existentes son el 4-15, 4-50,4-100 y 4-200, donde el último nú-mero indica la cantidad de revolucio-

nes por minuto (RPM: a mayorRPM, menor fuerza, como ya hemosvisto). Funcionan desde los 6 hasta los12 V, pero toda la información de suhoja 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 enforma externa a un motor de CC,pero en términos de costos y decomplejidad en la conexión de ma-teriales, no es aconsejable.

Motores paso a paso (Motores PaP)Como hemos visto, el control de unmotor CC es relativamente sencillo.Pero, si necesitáramos precisión enla cantidad de rotaciones del motor,sería casi imposible lograrlo con un

El movimiento del robot

135

Figura 7. Vista interna de la caja de

reducción de un motorreductor pendular.

Figura 8. Un motorreductor con sinfínes lento pero tiene muchísima fuerza.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 135

Page 138: Robotica [Users]

motor de ese tipo. Los motores deCC tardan un tiempo en lograr lavelocidad buscada y cuando se losdeja de alimentar, poseen inercia ytardan en detenerse. Por lo tanto, esuna cuestión de suerte lograr un nú-mero preciso de vueltas. Si necesita-mos fracciones de vueltas, esto esaún más complejo. Si le agregamosun sistema de reducción al motorpodremos disminuir el problema,pero no desaparece por completopor 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 unservo. Los motores PaP tienen unmecanismo que les permite girar unángulo determinado. Los más comu-nes están formados por un rotor (unimán permanente) y un conjunto debobinados en el estator. No giran li-bremente por sí mismos, sino queavanzan al girar pequeños pasos porcada pulso que se aplica. El tamañodel 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.

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

ELEMENTOS QUE SE OBTIENEN AL RECICLAR APARATOS

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 136

Page 139: Robotica [Users]

nirá la precisión que tendremos ennuestro motor. Los pasos más comu-nes que podemos encontrar son:0,72°; 1,8°; 3,6°; 7,5°; 15° y 90°. Enel primer caso, para dar un giro com-pleto necesitaremos 500 pasos. Encambio, 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. Paracalcular los grados por paso, dividi-mos 360° por la cantidad de pasos.Dentro de los motores de imán per-manente, nos encontramos con dostipos distintos, los unipolares y losbipolares, que exigen circuitos decontrol distintos (Figura 10).

Los bipolares son más complejos decontrolar que los unipolares, pero sonmás livianos y tienen mejor torque. Elcontrol ha dejado de ser un problemagracias a integrados como el L293D.Una vez que consigamos un motor deeste tipo, debemos distinguir los ca-

bles 1a, 1b, 2a y 2b. Esto es sencillocon un tester, dado que podemos de-tectar continuidad entre los cablesque pertenecen a la misma bobina.Para lograr el giro del motor bipolar,debemos invertir las polaridades de lasbobinas 1 y 2 en una determinada se-cuencia para girar a favor de las agujasdel reloj, y en la secuencia invertidapara girar en sentido contrario. La se-cuencia es la que vemos en la Tabla 3.

Para realizar este control usaremos elL293D. 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-

El movimiento del robot

137

1a

1b

2b2a

Motor-PaP Bipolar Motor-PaP Unipolar

M

1a

Com1

Com

2

1b

2b2a

M

Figura 10. Esquemas de las bobinas de los motores bipolares y unipolares.

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.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 137

Page 140: Robotica [Users]

bles en los conectores del motor 1 yel motor 2 de nuestro controlador(Figura 11). Luego, si programamoslas salidas del 16F88 que se corres-ponden con los inputs del L293Dpara seguir la secuencia anterior, lo-graremos el giro del motor. Cuantomás rápida suceda esa secuencia, másrápido será el movimiento del motor.Los motores unipolares cuentan con5 ó 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). Alunir esos dos cables, tendremos la mis-ma configuración que en los motoresde 5 cables (Figura 12). Para detectar lasparejas 1A y 1B, y 2A y 2B, medimosla resistencia. Cuando encontremos laresistencia más alta, habremos deter-minado la pareja correspondiente. Loscables Com1 y Com2 contra esos ca-

bles tienen una resistencia baja (yademás, habitualmente, son los únicosdos que tienen el mismo color). Si lamedición no marca nada, hemos co-nectado cables de bobinas distintas.Por lo tanto, ya tenemos definidas lasparejas y el cable común.Ahora, para determinar cuál es cuál,alimentamos al motor por el quintocable o por el cable común con la ten-sión correspondiente. Tomamos unode los otros cuatro cables, le ponemosla etiqueta 1A y lo conectamos a ma-sa. Luego tomamos otro y también loconectamos 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 todasellas, si invertimos la secuencia cam-

6. RECORRER EL MUNDO

138

Figura 11. Un ejemplo de motor

bipolar, con 4 cables.

Figura 12. Ejemplo de motor

unipolar con 5 cables, que tiene

los dos rojos comunes.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 138

Page 141: Robotica [Users]

❘❘❘

biamos el sentido de giro. El controlmás habitual es encender de a dos lasbobinas, 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, elcampo magnético es más fuerte, y elmotor 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 menostorque. Si combinamos estos dos es-

quemas podemos duplicar la canti-dad de pasos de este motor, comopodemos 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 cantidadde 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 decontroles debemos ser cuidadosos conla velocidad en el cambio de los esta-dos, porque si es muy veloz podemosno alcanzar el tiempo necesario paraque el rotor se acomode en la nueva po-sición. Si es así, obtendremos un mo-vimiento extraño, aleatorio del motor.

El movimiento del robot

139

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

•Un motor PaP con 4 cables con seguridad es bipolar.

DETECTAR EL TIPO DE MOTOR PASO A PASO A SIMPLE VISTA

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 139

Page 142: Robotica [Users]

● Terminal de control: es por dondeingresamos la señal que permite de-terminar el ángulo del motor.

Los colores de estos cables varíansegún cada fabricante, pero en la Ta-bla 7 presentamos un detalle con loscolores utilizados por los principalesfabricantes 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 laseñal que recibe de un potencióme-tro interno con la señal de controlexterna. Cuando gira el eje, tambiéngira el potenciómetro. Por último, elángulo va a estar determinado por laduración de un pulso que se aplica

6. RECORRER EL MUNDO

140

ServosUn servo es un motor de CC perocon dos características fundamenta-les que lo diferencian: una caja dereducción interna al motor que lebrinda un gran torque y un sistemaelectrónico de control que le per-mite posicionar al motor en el án-gulo deseado. Se utilizan con muchafrecuencia en aparatos radiocontro-lados como aviones, barcos y autosa control remoto. También se usanmucho en robótica por su bajo pesoy sus altas prestaciones (Figura 13).

Los servos tienen 3 cables o terminales:

● Terminal positivo: recibe la energíaque alimenta al motor (usualmente,de 4 a 8 voltios).

● Terminal negativo: dirigido a tierra.

Figura 13. Servomotor Hitec, muy utilizado en robótica.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 140

Page 143: Robotica [Users]

al cable de control. Esta señal es unaonda 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 entremarcas distintas, pero debe ser unaseñal estable para poder conseguir larotación precisa. Aquí aplicaremosde nuevo lo aprendido en PWM. Laposición del eje dependerá del anchodel pulso de la señal de control. Porejemplo, cuando el pulso se mantie-

ne en 1,5 ms, el eje se ubicará en elángulo 0, y vamos hacia -90° cuan-do disminuimos el ancho del pulsoy hacia 90 en el caso contrario.

La descripción que hemos hecho serefiere a los servos analógicos (que sonlos más comunes). Los servos digita-les tienen, en su placa de control, unmicro que analiza la señal, la procesay controla el motor. Reaccionan mu-cho más rápido a los cambios y tienen

El movimiento del robot

141

Figura 14. Un servo visto por dentro.

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.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 141

Page 144: Robotica [Users]

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

más fuerza. Como contrapartida, sonmás caros y el consumo de energía esmayor que en los analógicos.

Modificación de los servosComo ya hemos comentado, los ser-vos tienen un radio de giro de apro-ximadamente 180 grados. Su sistemade control nos permite definir su án-gulo de rotación en forma precisa ysencilla, pero muchas veces necesita-mos que el motor gire 360° en formacontinua, como en el caso de las rue-das. Para ello vamos a tener que rea-lizar un conjunto de modificacionesen el servo. Estas modificaciones pue-den dañar el servo (de por sí lo dañanporque 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 posibleses eliminar el circuito de control ycortar los topes mecánicos. De estaforma, 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 cambiarel sentido del giro. A continuaciónveremos los pasos necesarios para re-alizar la modificación, pero cabeaclarar que las imágenes sólo son dereferencia, ya que debemos buscarlos pasos correspondientes paranuestro servo específico.

6. RECORRER EL MUNDO

142

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 142

Page 145: Robotica [Users]

Abra la tapa posterior del servo desenroscando los cuatro tornillos ydesmó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.

El movimiento del robot

143

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 143

Page 146: Robotica [Users]

Corte o extraiga cuidadosamente el tope físico que tiene el engranaje desalida del servo. Lije con una lija fina para no dejar rebordes o muescasque provoquen fricciones hostiles al movimiento de la caja reductora.

Elimine el circuito de control. La forma de hacer esto va a depender delmodelo del servo en cuestión. En algunos casos, basta con desvincularuno de los engranajes del potenciómetro. En otros, habrá que encontrarel modo de comunicación de los engranajes con el sistema de control.Para ello, es conveniente buscar en Internet los pasos necesarios paramodificar el servo específico que desee adaptar.

6. RECORRER EL MUNDO

144

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 144

Page 147: Robotica [Users]

Volvemos a repetir: sólo es necesariorealizar esto si no conseguimos unmotorreductor. De todas maneras,este procedimiento era más habitualcuando no se conseguían con facili-dad, pero hoy es mucho más sencillocomprar directamente uno de ellosque modificar un servo.

El movimiento del robot

145

… RESUMEN

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.

A continuación presentamos las direc-

ciones de algunos sitios donde se pro-

porcionan los pasos para modificar di-

versos modelos de servos:

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

MODIFICAR SERVOS

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 145

Page 148: Robotica [Users]

146

TEST DE AUTOEVALUACIÓN

1 ¿Qué es el torque? ¿Cómo se logra en

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?

ACTIVIDADES

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.

06_robotica.qxp 24/10/2007 02:27 p.m. PÆgina 146

Page 149: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Adaptación al entorno 148Tipos de sensores 148Características esenciales de los sensores 149Sensores digitales 152Los sensores analógicos 158Tipos de sensores analógicos 162

Resumen 165Actividades 166

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 147

Page 150: Robotica [Users]

ADAPTACIÓN AL ENTORNOYa piensa, ya camina… La obra con-tinúa creciendo. Y sin embargo, cadavez que lo ponemos a nuestro lado pa-ra que nos acompañe, se lleva por de-lante una pared, se pierde por lugaresinsólitos o se cae por una escalera. Al-go nos falta, algún soplo de creaciónnos hemos olvidado de brindarle anuestro robot. ¡Nos hemos olvidadode incorporarle sentidos! Sin ver, sintocar y sin escuchar, es imposible quese separe de nuestra mano y de nues-tros ojos. Y es por eso que empezamosa pensar cuáles serían los sentidosesenciales que podemos brindarle. ¿Leagregamos la vista? Es un desafíocomplejo, demasiada informaciónpara su pequeña inteligencia. ¿El tac-to será suficiente? Tendrá una vidadura, golpeándose contra todo para

poder captar el mundo que lo rodea.¿El olfato será de utilidad? Muchasdudas nos preocupan, pero nos lanza-mos decididos a buscar qué es lo quenos puede ayudar. Y encontramos queen el mundo de la electrónica, los sen-tidos se multiplican infinitamente.

Tipos de sensoresLos sensores tienen como objetivocaptar alguna señal brindada por elambiente que rodea al robot, ytransformar esa señal en un impul-so eléctrico que reciba nuestro con-trolador. Luego, desde el programaque usemos para darle comporta-miento, interpretaremos este impul-so para actuar en consecuencia.Cuando hablamos de señales delambiente, 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.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 148

Page 151: Robotica [Users]

nidos y sabores. Pero esto no termi-na aquí: podemos utilizar otros me-canismos que superen al sistemasensorial humano. Contamos consensores 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 incorporaralgo de electrónica y de programa-ción en nuestro robot. En este capí-tulo veremos los tipos de sensoresque 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 quehemos planteado en este libro.

Características esenciales de los sensoresLos sensores determinan en formaprecisa el comportamiento de nuestrorobot. Es por eso que cuando elegi-mos el tipo de sensor que incorpora-mos, debemos analizar un conjuntode características que nos permitirándefinir si es o no el que necesitamospara nuestra tarea. Éstas son:

● Fiabilidad: esta característica estámuy vinculada al ambiente en elque se mueve nuestro robot. Porejemplo, si utilizamos un sensor deluz o brillo en un lugar con luz es-

table, podremos utilizar sensoresde menor calidad porque sabemosque 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 enforma constante, los sensores queutilicemos deben poseer mecanis-mos electrónicos de balanceo quepermitan superar estas dificulta-des. Si los valores devueltos por elsensor no son fiables, necesitare-mos compensar este problema conprogramación, para lo que utiliza-mos varias muestras y distintosmétodos estadísticos que ajusten almínimo el margen de error. Cabeaclarar que esto se paga con mayortiempo de procesamiento.

● Rango de valores: el rango de va-lores es el valor mínimo y máximoque puede devolver el sensor.

Adaptación al entorno

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.

NARICES ELECTRÓNICAS

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 149

Page 152: Robotica [Users]

● Precisión: aun si se tiene el mis-mo rango de valores, los sensorespueden devolver más o menos es-tados intermedios dentro de eserango. Llamamos precisión a lacantidad de valores distintos quenos puede devolver el sensor en surango de valores. Por ejemplo, noes lo mismo un sensor de brillocon un rango de 0 a 100 con unaprecisión de 1, que uno con unaprecisión de 0.1. En el segundo ca-so, podremos detectar variacionesmí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 alos cambios del mundo en el que semueve nuestro robot. Pero por otrolado, nos exige mayor procesa-miento de los valores de entrada.De todas formas, si el sensor tieneuna alta velocidad y no nos datiempo para procesar los datos, po-demos desechar valores de lectura ylograr la velocidad de muestreo quenecesitemos. En el caso contrario,no podemos solucionar el proble-ma. Es decir, nos conviene un sen-sor con la mayor velocidad demuestreo posible, que luego regula-remos al tomar todos los valores osólo un conjunto de ellos.

● Costo: aunque en nuestros prime-ros proyectos tal vez no parezca unelemento fundamental de análisis,cuando desarrollemos robots máscomplejos nos encontraremos conlimitaciones de este tipo. Y lamen-tablemente, veremos que hay unarelación lineal entre el costo y lasdemás características: los sensoresmá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 elmicro, como su programación pa-ra la interpretación de los datos,sea lo más sencilla posible.

7. SENSAR EL MUNDO

150

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.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 150

Page 153: Robotica [Users]

● Tamaño y forma: en el momentoen el que queramos insertar el sen-sor en nuestro robot, con seguri-dad querremos realizarle la menorcantidad 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 losensado. Por ejemplo, el sensor queutilizaremos para el seguimientode 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 detacto: es habitual tener que ampli-ficar la mecánica del sensor paradetectar con mayor facilidad losobjetos. Para ello es fundamentalelegir el tamaño y la forma que se

adapten a nuestras necesidades enel conjunto de sensores que cum-plen la misma función.

● Calibración: en este caso, tam-bién tenemos el problema de quecuanto más sencillo sea el sensor,más trabajo de calibración tendre-mos que hacer con el software. Engeneral, la calibración no estábrindada directamente por el sen-sor, sino que es en la electrónica dela conexión donde podemos agre-gar elementos que nos permitanmodificar, con una simple vueltade potenciómetro, las señales deentrada o la sensibilidad de lectu-ra. Aunque le agreguemos más tra-bajo al diseño inicial del robot,luego agradeceremos que con undestornillador podamos readaptaral robot a diversos ambientes.

Adaptación al entorno

151

Figura 3. Lego provee diferentes sensores,

como los de tacto, luz y sonido, entre otros.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 151

Page 154: Robotica [Users]

Si tenemos en mente estos principios,podremos salir en la búsqueda delsensor que solucione nuestros pro-blemas. Vamos a dividir nuestro de-sarrollo en dos grandes grupos desensores: los digitales y los analógi-cos. También podemos clasificarloscomo internos y externos, activos ypasivos, etcétera, pero hemos elegidola primera taxonomía porque nos de-termina diferencias sustanciales en laelectrónica y la programación.

Sensores digitalesLos sensores digitales son aquellosque, como salida de su sensado delmundo, nos devuelven hacia el con-trolador un valor discreto (Figura 4).El modelo más sencillo de este tipode 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 sensory el micro. A veces, esta electrónicapuede ser una simple resistencia y enotros casos puede ser un desarrollomucho más complejo, dependiendodel tipo de sensor.Hay una gran variedad de sensoresdigitales en el mercado, e incluso po-demos convertir sensores analógicosen digitales, como por ejemplo conel uso del integrado 74HC14. Mu-chos se conectan de forma similar,con la utilización de una resistenciade pull-up conectada a Vcc paramantener la señal en nivel alto, o aGND para mantenerla en nivel ba-jo. Cuando el sensor se activa, laseñ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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Señal discreta

Figura 4. Ejemplo gráfico de los valores que entrega un sensor digital.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 152

Page 155: Robotica [Users]

nos permite representar el sentido deltacto. Este sentido parece ser uno delos más simples de implementar, peroen realidad para reproducirlo en todasu 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 sepuede deformar por un excesivo nivelde fuerza). Por ahora nos ocuparemosdel sensado de contacto, con la idea

de detectar colisiones contra objetospara permitir el cambio de sentido denuestro robot. Estos sensores se co-nocen en el mundo de la robótica co-mo bumpers. En nuestro controladorya tenemos el conexionado y laelectrónica necesarios para conectardos de estos sensores (Figura 5). Estos sensores son dos interruptoressencillos (abierto/cerrado) que se co-nectan a +5 V con una resistencia(Pull-Up) o a GND (Pull-Down). La

Adaptación al entorno

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.

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

SENSORES DE ESTACIONAMIENTO

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 153

Page 156: Robotica [Users]

diferencia se producirá si queremos de-tectar un 0 lógico (entre 0 V y +1,5 Vaproximadamente) cuando se produz-ca un cambio en el estado del switch osi, por el contrario, queremos detectarun 1 lógico (de +2 V a +5 V).Otra variante es usar contactos nor-malmente cerrados o normalmenteabiertos, que se comportarán comouna compuerta NOT o directa, si

consideramos el valor TRUE como 1lógico, que representa +5 V en el pindel microcontrolador, producto de laacción Chocar y el 0 como FALSE enel caso contrario. Como podemosobservar en el controlador, nuestraentrada 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 debajo valor (0.1uF a 1uF) en paralelocon los contactos del interruptor pa-ra reducir los efectos de rebote.Con respecto a los interruptores quepodemos utilizar, la variedad es muygrande. Uno de los más usados enrobótica es el microswitch. Este sen-sor cuenta con 3 conectores: C (Co-mmon, común), NC (Normal Closed,normalmente cerrado) y NO (NormalOpened, normalmente abierto).Cuando el sensor está en reposo, estácerrado el circuito de C a NC. Al presionar la extensión metálica quesirve de amplificador mecánico de laseñal, cerramos el circuito entre C yNO. Esta extensión metálica puede te-ner una palanca suficientemente gran-de (Figura 6) como para poder usarlo desensor 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 superficiessin provocar rozamiento entre el sen-sor y lo sensado (Figura 7).Otro sensor que podemos utilizar enforma digital es el infrarrojo (Figura 8).

7. SENSAR EL MUNDO

154

Figura 6. Un modelo de

microswitch con palanca grande.

Figura 7. Otro modelo con rueda

en el extremo de la palanca.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 154

Page 157: Robotica [Users]

Esencialmente, consiste en un emisorde señal infrarroja (un led) y un foto-transistor. Si ambos apuntan hacia elmismo 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 útilpara detectar colores muy distintos(por ejemplo, una línea negra sobre unpapel blanco) o sensar si el robot estápor caer al vacío (el sensor detecta la re-flectancia de la mesa, pero al acercarsea un borde deja de recibir la señal).Uno de los problemas que podemosencontrar es que el fototransistor pue-de estar estimulado por las luces delambiente. 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 elCNY70, que también podemos utilizarcomo 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 cuandoveamos los sensores analógicos.

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ónentre ambos. A este tipo de arquitec-tura se la conoce como sensor de ra-nura. Podemos utilizarlo simplementepara la detección de objetos (como seusa en ciertos estacionamientos paraavisar la salida de un auto) o para con-tar los pasos de una rueda asociada aleje de un motor y, de esta manera, ar-mar un sensor de rotación. Depen-diendo de cómo está acanalada la rue-

Adaptación al entorno

155

Figura 8. Sensor infrarrojo

de tamaño reducido.

❘❘❘

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.

RECICLAR SENSORES PARA NUESTRO ROBOT

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 155

Page 158: Robotica [Users]

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, hastala codificación de la posición absoluta. Si queremos conectar un infrarrojoa 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 quevemos en la Figura 10. Es posible verque por un lado tenemos conectadoel 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 elled esté encendido todo el tiempo,directamente podemos conectarlo a5 V. El fototransistor está en RA2,para lo cual deberemos declararlo deentrada. Queda claro que, en estostransistores, la base no está conecta-da, sino que es el mismo sensor elque activa la señal ante la luz. Otro sensor digital interesante es elsensor 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 UGN3503 puede detectarcambios magnéticos con precisión.Tiene 3 conexiones: alimentación,

7. SENSAR EL MUNDO

156

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 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!

SENSORES DIGITALES CASEROS

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 156

Page 159: Robotica [Users]

tierra y salida. Si no hay campomagnético, la tensión en la salida esde la mitad de la entrada. Si se acercael polo sur de un elemento magneti-zado, aumenta el voltaje. Y si se acer-ca el norte disminuye. Si queremosutilizarlo de esta manera, deberemosprestar atención cuando veamos có-mo usar sensores analógicos. Pero sisólo queremos detectar la presencia ono de un elemento magnético, nos al-canza con un procesamiento digital.

Programación de los switches de nuestro controladorA continuación presentamos un pro-grama muy sencillo que nos permiteencender el led cuando detecta la ac-

tivación 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

Adaptación al entorno

157

Vss

Infrarrojo LED2

Photo PNP

RA0 RA1 RA2 RA3

RA4/TOCKL

17181235

1

2

+5

R2

R3

R1

Figura 10. Circuito básico de conexión del infrarrojo a nuestro controlador.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 157

Page 160: Robotica [Users]

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ógicosA medida que nuestro robot evolucio-na, nos encontramos con la necesidadde captar el ambiente con mayor pre-cisión. Ya no nos alcanza con uno omás sensores digitales. Queremos re-cibir un valor dentro de un rango. Alos sensores que nos permiten este ni-

vel de precisión se los conoce comoanalógicos (Figura 11). Por ejemplo,una fotorresistencia nos puede entre-gar un valor entre 0 y 5 V.Ahora, el problema que tenemos esque, a pesar de todo lo bueno quepueda ser nuestro micro, siempretrabaja en forma digital. Por lo tan-to, necesitamos convertir esta señalanalógica en un valor digital. Paraello existen los conversores analógi-cos/digitales (A/D). Estos dispositi-vos, a partir del valor de entrada, nosdevuelven un número de 8, 10 ó másbits. Veamos una tabla de un su-puesto conversor A/D que proveeuna salida de 4 bits. Esto significaque tenemos 16 estados distintos po-sibles de salida. Si la entrada es unvalor entre 0 V y 5 V, el esquemapodrí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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Señal analógica

Figura 11. Gráfico ejemplo de los valores que entrega un sensor analógico.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 158

Page 161: Robotica [Users]

Existe una inmensa variedad de con-versores A/D. Habitualmente, seusan de 8 bits con los micros, comopor ejemplo el ADC0804 (Figura 12).Este conversor acepta una entrada de0 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 7con 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 tenemoslos 8 bits de la salida digital, que ennuestro caso deberíamos conectar,por ejemplo, con RB0 a RB7 (¡nos

VOLTAJE ENTRADA SALIDA

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

Adaptación al entorno

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.

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

HOJAS DE DATOS

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 159

Page 162: Robotica [Users]

consume un montón de entradas unúnico sensor!). Para que inicie laconversión, debemos enviar al pin 3primero un 1 y luego un 0, y al pin2, 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. Comovemos, tener un conversor A/D nosagrega algunas cuestiones electróni-cas y nos consume una cantidad im-portante de entradas digitales. Perola electrónica avanza, y es aquí don-de podemos encontrar la mayor di-ferencia (para este libro) entre el16F84 y el 16F88. Este último mi-cro de Microchip, ¡tiene un conver-sor A/D incorporado! En el 16F88 tenemos siete entradasanalógicas (siete canales), asociadaslas 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 10bits, es decir, un valor entre 0 y1023. 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

20

19

15

14

13

12

11

Figura 12. Esquema del conversor

A/D ADC0804.

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

CONVERSIÓN ANALÓGICO-DIGITAL

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 160

Page 163: Robotica [Users]

● 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 soncomplicados. Por suerte, como yacomentamos, mikroBasic nos pro-porcionar una solución. Para operarel 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 referenciasegú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 entradasanalógicas. El bit 6 determina si lafuente del reloj de la A/D se dividepor 2 cuando se usa el reloj del sis-tema (habitualmente lo ponemos en0). El bit 7 determina cuáles son losbits que quedarán en 0 en el valor

word que devuelve la lectura digital.Como sabemos que son 10 bits quequedarán en ADRESH y ADRESL, en-tonces, si ponemos este bit en 1, los6 bits que quedan en 0 son los másimportantes, es decir, los 6 más sig-nificativos de ADRESH. En el casocontrario, serán los 6 menos signifi-cativos de ADRESL.

Como paso siguiente, debemos in-dicar los pines que serán de entradaen A con TRISA o en B con TRISB.Para finalizar, leemos el valor del ca-nal donde tengamos la entrada conla función Adc_Read(nro de canal),que devuelve un valor de tipo word.

Cabe mencionar que en el llamadoa esta función se realizan muchospasos más que, por suerte, no nos

Adaptación al entorno

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.

SENSORES ULTRASÓNICOS

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 161

Page 164: Robotica [Users]

deben preocupar, ya que los realizaráen forma automática.Con estos pasos, podemos tomar losvalores de los sensores que describire-

mos a continuación, y que nos brin-darán la riqueza de la precisión quelos sensores digitales no tenían.

Tipos de sensores analógicosUno de los sensores más sencillos deutilizar 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 entradaanalógica.

Otro sensor conocido y económicoes el LDR, que consiste en una re-sistencia que varía su valor resistivoen función de la luz que recibe. Deesta manera, podemos obtener infor-mación compleja del entorno dondeel robot realiza su tarea. También po-demos agregarle un led específico delcolor que deseamos detectar, paraque los valores de rebote sean mássignificativos. En la Figura 14 pode-mos ver la conexión del sensor anuestro controlador, y más adelanteveremos cómo programar la detec-ción de su valor analógico.

7. SENSAR EL MUNDO

162

❘❘❘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 de imágenes para lograrlo.

PIEL PARA ROBOTS

5 V

5 V

20 K

20 K

Señal

Masa

E D

Masa

Figura 13. Conexión del CNY70

para usarlo como sensor analógico.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 162

Page 165: Robotica [Users]

Otro sensor analógico corriente es elpotenciómetro. Conectado a unmotor, lo podemos utilizar comosensor de rotación, principalmentesi 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:

● De luz o color: fotodiodos, foto-transistores y CCD (integrado queposee una matriz de celdas que sonsensibles a la luz).

● De presión.● Táctiles: a diferencia de los senso-

res de tacto, pueden determinar elgrado de presión y la zona dondese produce el contacto.

Adaptación al entorno

163

Vss

OSC1/TCLKIN

OSC2/CLKOUT RA0 RA1 RA2 RA3

RA4/TOCKL

1718123

16F88 / 16F84

LDR

R1

R31K

+5

Figura 14. Conexión del LDR a nuestro controlador.

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

DETECTOR DE MENTIRAS

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 163

Page 166: Robotica [Users]

● Micrófonos.● Ultrasónicos: permiten medir distan-

cias con el mismo mecanismo queutilizan los murciélagos (Figura 16).

● Acelerómetros: detectan acelera-ción y vibración.

● Inclinómetros: sensan la posiciónvertical.

● Termistores: para medir temperaturas.● Termorresistencias: de la misma

manera que los termistores, permi-ten medir temperaturas, pero encondiciones mucho más extremas.

● Pirosensores: divisan fuego por sucapacidad para detectar ciertosrangos de ultravioletas.

● Humedad.● GPS.● Proximidad.

Ejemplo de programación de la lectura de un LDR en una entrada analógicaEste ejemplo es una de las pocas co-sas que no podremos hacer si tenemosun 16F84, y es por eso que recomen-damos hacer el pasaje de micro. En elejemplo 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

Figura 16. Uno de los tantos sensoresultrasónicos que hay en el mercado.

10 K

3 3 0

VCC

al conversor A/D

Potenciómetro

Figura 15. Conexión del potenciómetro

a nuestro controlador.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 164

Page 167: Robotica [Users]

TRISA = $FF ‘ defino PORTA

como entrada

TRISB = $00 ‘ defino PORTB

como salida

while true

resu = ADC_read(2)

if resu>300 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.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 165

Page 168: Robotica [Users]

166

TEST DE AUTOEVALUACIÓN

1 ¿Cuáles son las características esen-

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

ACTIVIDADES

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.

07_robotica.qxp 24/10/2007 02:35 p.m. PÆgina 166

Page 169: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Cuerpo a cuerpo 168Características mecánicas de un robot autónomo 169Robots aéreos 173Robots subacuáticos 174Robots terrestres 174Sistemas con ruedas 179Estructura de nuestro robot 184Mecanismos de transmisión y reducción 190Cinemática de un robot 194Odometría 196

Resumen 197Actividades 198

Colaborador: Ing. Néstor Balich

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 167

Page 170: Robotica [Users]

CUERPO A CUERPO

Nuestra criatura está creciendo. Esinteligente, se mueve (aún en formatorpe), puede detectar el mundo quela rodea. Pero sabemos que no esta-remos a su lado toda la vida, y que-remos preparar a nuestro robot paravencer distintos tipos de dificulta-des: seguir una línea, detectar las lu-ces encendidas y apagadas, jugar alfútbol con sus compañeritos, lucharcon ellos ante un problema.El armado incompleto que tiene eneste momento es demasiado frágilpara 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 opatas? Y si son ruedas, ¿diferencialesu omnidireccionales? Y si son patas,¿dos, cuatro, seis, cien?

Como vemos, no es fácil decidir laestructura de nuestro robot, y estadecisión está fuertemente vinculadacon su destino final. En nuestro ca-so, haremos un equilibrio entre elcosto y la estructura, y tendremos enmente la posibilidad de encarar di-versos desafíos con la misma forma.Pero como ya hemos comentado, elque mucho abarca, poco aprieta. El cuerpo que vamos a desarrollarnos 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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 168

Page 171: Robotica [Users]

sos aspectos de la construcción demanera tal que más adelante, se pue-da desarrollar el robot que mejor seadapte a la tarea final.

Características mecánicas de un robot autónomoCuando desarrollamos la estructurade un robot, tenemos que tener encuenta un conjunto de variablesque, en muchas ocasiones, se con-traponen. Desde ya, la variable porexcelencia, lo que tenemos que teneren mente constantemente, es el ob-jetivo o la misión del robot. Ennuestro caso, dado que queremoscumplir diversas pruebas con el mis-mo robot, tenemos que elegir unaestructura que nos permita accedercon facilidad a los sensores y cam-biarlos de lugar con sencillez, entreotras cosas. Pero como nuestro ob-jetivo es que luego de leer este libropodamos comenzar a realizar dife-rentes diseños de robots, a conti-nuación presentaremos cuáles sonlas características que debemos teneren 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ónicade la carga de la batería, podemosubicarla en algún lugar inaccesiblemientras podamos enchufar el ca-ble de alimentación. Pero si no

agregamos esto, necesitamos ubi-car las baterías en algún lugar don-de podamos sacarlas y ponerlas sintener que desarmar todo.

● Ubicación del controlador: tene-mos un problema similar al de lasbaterías. Si desarrollamos la pro-gramación en circuito (como esnuestro caso), basta con dejar elconector para comunicarnos conel programador. Pero si tenemos elmicro en un zócalo, tendremosque poder acceder a él para llevar-lo al programador y regresarlo.

● Tipos de locomoción: otro aspec-to fundamental es el ambientedonde el robot debe desarrollar laactividad. Son tantas las modifica-ciones que debemos tener en cuen-ta, que trataremos este tema enforma detallada más adelante.

Cuerpo a cuerpo

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.

CÓMO UBICAR LAS PILAS

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 169

Page 172: Robotica [Users]

● Equilibrio del robot: cada am-biente en particular añade carac-terísticas específicas a la actividad.Por ejemplo, uno de los problemashabituales son las rampas o losobstáculos. En el caso de las rampas,tenemos que analizar con atenciónsi la potencia de los motores nospermitirá subirlas o bajarlas sin ca-ernos o quedarnos estancados. Y es-to no hay que hacerlo mediante elencendido de los motores y luegocolocar al robot al comienzo de larampa para ver si la sube, dado quesi debe sensar para poder subir, elcomportamiento de los motoresserá 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 ocurrecon los obstáculos. Puede ocurrirque nuestro robot supere uno deellos 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 verdaderocomportamiento lo vamos a obte-ner en la arena real. Una buena ideaes 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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 170

Page 173: Robotica [Users]

actividad: el tipo de superficie tam-bién genera problemas con respectoal comportamiento inercial del roboty 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, sison de goma, de metal, etcétera.También en esta oportunidad es másconveniente tener el material real dela superficie, porque el comporta-miento cambia completamente. ¡Yno nos podemos dar el lujo de tenerjuegos de botines completos!

● Ubicación de los sensores: en elcapí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.

❴❵

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.

TESTEO DEL ROBOT

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 171

Page 174: Robotica [Users]

más cerca o más lejos de los objetosque tendrá que detectar. Por ejemplo,si usamos un CNY70 para seguir unalínea, prácticamente lo tendremosque pegar al piso. Por otro lado, tam-bién es necesario que la ubicación nospermita aislarlo lo más posible de lasinterferencias del ambiente. Porejemplo, los sensores de luz de cual-quier tipo tienen que estar lo más ais-lados posible de la luz ambiente parapoder tener uniformidad.

● Ubicación de los motores y de latransmisión: éste es otro proble-ma importante, en especial sinuestro presupuesto no nos hapermitido comprar micromotoreso motorreductores. La ubicaciónde los motores nos complicará elmecanismo de transmisión hasta

las ruedas. Además, cualquier mo-vimiento o vibración de los moto-res no contemplado, comenzará adeteriorar el sistema de transmi-sión. Tanto los motores como losejes 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 deañadir un sistema de comunica-ción inalámbrico, tenemos queubicarlo en algún lugar donde notengamos interferencias y dondepodamos 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 hemosdescripto también está acotado porestos dos factores, que se presentancomo límites habituales en las com-petencias de robots. Tal vez el mássencillo de solucionar es el peso, yaque si modificamos los materiales

de la estructura del robot, lopodemos lograr. Pero conrespecto al tamaño, mu-chas veces, si no hemos pre-visto con antelación el pro-

blema, estamos obligados adesarmar 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

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 172

Page 175: Robotica [Users]

Todo lo que hemos descripto se apli-ca a robots terrestres. ¡Imaginemos to-dos los problemas que surgen en losaéreos y submarinos! Como el nivel decomplejidad de estos robots superanuestro humilde libro, comentaremosde forma muy simple algunas cuestio-nes de los robots de este tipo, para lue-go profundizar en los terrestres.

Robots aéreosUno de los problemas fundamentalesque podemos encontrar en el desa-rrollo de estos robots es la necesidadde obtener información del ambientecon una frecuencia mucho mayor queen el caso de los robots terrestres. Enestos casos, el robot no puede hacer

nada y debe quedar en estado de re-poso. Necesariamente tiene que reci-bir información de su movimiento en3D y adaptar la velocidad de sus mo-tores y posicionamiento de sus alas orotores 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 deuno o más de ellos, pueda recuperar-se de la pérdida. Por otra parte, conesta 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-

Cuerpo a cuerpo

173

Figura 5. Marvin MarkII, un robot aéreo autónomo desarrollado por el Departamento

de Ciencias de Computación de la Universidad Técnica de Berlín.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 173

Page 176: Robotica [Users]

fisticados para poder ubicarse en 3D.Los robots aéreos más versátiles son loshelicópteros, pero también se han de-sarrollado aviones y zeppelines, queson más estables y fáciles de controlar.

Otro problema fundamental es tenerinformación constante en tierra so-bre la batería restante o algún meca-nismo automático de aterrizaje encaso de que nos quedemos sinenergía. En los robots terrestres, sinos quedamos sin batería, dejarán defuncionar. En los aéreos, las conse-cuencias son imaginables, ¿no?

Robots subacuáticosLos problemas planteados por este tipode robots son similares a los aéreos. Te-nemos movimiento 3D, pero en estecaso, tenemos mayor estabilidad en elmedio. Es decir, podemos usar mástiempo para tomar decisiones, dadoque a lo sumo nos sumergiremos máso menos cuando no hacemos nada.Aquí las dificultades surgen en los tiposde 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áscompleja, 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 deagua, permiten modificar la profun-didad del robot. Con respecto al mo-vimiento, con motores desplaza elagua que lo circunda.

Robots terrestresDentro del conjunto de robots terres-tres, tenemos diversos tipos de formasde locomoción. Cada una de ellas po-see ventajas y desventajas, y dependedel tipo de superficie que recorramos.Vamos a describir genéricamente ca-da una de ellas para detenernos, másadelante, en los sistemas con ruedas,que son los que podremos imple-mentar en nuestro robot.

8. EL CUERPO DEL ROBOT

174

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

COMPETENCIA INTERNACIONAL DE ROBOTS AÉREOS

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 174

Page 177: Robotica [Users]

Cuerpo a cuerpo

175

❴❵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

www.oni.escuelas. edu.ar/2005/GCBA/972/.

ROBOT SUBACUÁTICO HECHO POR ALUMNOS DE UNA ESCUELA

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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 175

Page 178: Robotica [Users]

OrugasLos sistemas de oruga unen la ruedatrasera con la delantera (Figura 7). Tie-nen como ventaja una mayor adhe-rencia a la superficie y la capacidad deadaptarse a terrenos irregulares. Engeneral son de goma, pero tambiénpodemos hallar orugas metálicas quele permiten clavarse en superficies de-masiado pulidas. La desventaja quepresentan es la imposibilidad de rea-lizar trayectorias curvas. La única for-ma de rotar es si se giran las orugas decada lado en sentido opuesto, lo quelogra un giro en el lugar, pero el avan-ce sólo puede ser en línea recta.

PatasLos robots con patas son el resultadode un enfoque biológico de la arqui-tectura, y van de la mano del sueñode la criatura humana (Figura 8). Tam-bién tienen como ventaja una mayoradaptación a terrenos complejos, pe-ro eso aún no se ha logrado. El siste-ma de equilibrio en estos robots escomplicado, y necesitan de una coor-dinación muy precisa de los mecanis-mos de control de los motores.

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 conpatas, 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.

CUBE REVOLUTIONS

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 176

Page 179: Robotica [Users]

Cuerpo a cuerpo

177

❴❵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.

JUGADORES DE FÚTBOL CON PATAS

Figura 8. Nimbro, humanoide participante de la RoboCup 2006,

desarrollado por la Universidad de Freiburg.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 177

Page 180: Robotica [Users]

esquemas tradicionales son bípedos,cuadrúpedos y hexápodos (Figura 9).Los ejemplos más conocidos sonAsimo de Honda y Qrio de Sony enel caso de los bípedos, y Aibo deSony en el caso de cuadrúpedos.

ÁpodosLos ápodos son robots que no em-plean ruedas, orugas o patas (Figura10). El modelo a seguir es el de losgusanos 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-

8. EL CUERPO DEL ROBOT

178

ferentes tipos de robots ápodos alconectar varios de estos módulos.

El movimiento en línea recta se lo-gra con un efecto de onda a partir dela cola. Comienza con una contrac-ción inicial que se propaga en cadamódulo. En esta arquitectura, locomplejo es la coordinación de losmódulos. Además, necesitamos sen-sores en los módulos para poderadaptarlos a distintos terrenos. Otroproblema complejo es agregarlesgrados 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 endiferentes fases (uno hacia arriba yotro hacia el costado).

Figura 9. Robot hexápodo desarrollado por un aficionado

en Japón, con el uso de ¡dieciocho servos!

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 178

Page 181: Robotica [Users]

Sistemas con ruedasLos robots con ruedas son los máseconó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 problemasfundamentales que también trataremosen profundidad son los mecanismos detransmisión desde los motores hasta lasruedas. En general, la estabilidad delrobot con ruedas no es problema, aligual que la repartición de la carga delrobot. Sin embargo, no se adaptan acualquier tipo de terreno. Si los desni-veles superan el radio de las ruedas, sehace muy difícil superarlos. Ahora ve-amos cada tipo de arquitectura.

Configuración diferencialÉsta es la configuración de ruedas mássencilla, y es la que utilizaremos ennuestro robot (Figura 11). Es econó-mica y la transmisión no es tan com-

pleja. Se utilizan dos ruedas, una decada lado. Además se agrega una rue-da libre o un punto de apoyo en laparte trasera o delantera para mante-ner el equilibrio. Al tener las ruedasalimentadas por dos motores inde-pendientes, es complicado mantenerun movimiento rectilíneo sin el usode sensores internos (encoders vincu-lados a las ruedas) o externos.

Cuerpo a cuerpo

179

Figura 10. Robot ápodo desarrollado por la Escuela Politécnica

Superior de la Universidad Autónoma de Madrid.▲

É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

RECICLADO

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 179

Page 182: Robotica [Users]

Cuando el motor que alimenta la rue-da da las vueltas necesarias para com-pletar una vuelta de esta última, nonecesariamente 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 comportamientointerno o externo del robot.Otra dificultad es la navegación ha-cia un punto determinado. Es undesafío complejo e interesante hacerque un robot llegue lo más rápidoposible a su destino. Una forma sen-cilla es rotar hasta apuntar al objeti-vo final, y luego navegar en formarecta, corrigiendo de tanto en tanto

el recorrido. Ésta es una navegaciónmuy 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óncon trayectos curvos.

Configuración síncronaEn este caso, el robot tiene tres rue-das alimentadas por un mismo motor(Figura 13). Gracias a esto, avanza enlí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 diferencialcon una rueda libre, desarrollado

por Garnet Hertz. Es la base

de un robot que luego

se controló ¡con una cucaracha!

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 180

Page 183: Robotica [Users]

forma, puede avanzar en línea rectahacia cualquier punto, pero no puedetrazar curvas. Al funcionar de estamanera, el frente del robot siempreestaría para el mismo lado. Es posibleque esto no sea un problema, pero sinecesitamos apuntar su frente en dis-tintas direcciones, tenemos que agre-gar un mecanismo que permita rotarel chasis en la dirección de las ruedas.Otra arquitectura de la configuraciónsíncrona sólo permite dos posicionesde las tres ruedas. En una de ellas, elrobot avanza en línea recta, y en laotra posición, las ruedas se acomodande tal manera que el robot gira sobresu eje. De esta manera, evitamos el

problema del frente del chasis, pero lanavegació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.

Cuerpo a cuerpo

181

Figura 12. Robot

Chebot, jugador de fútbol

con tracción diferencial

desarrollado en la Universidad

de Buenos Aires, Argentina.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 181

Page 184: Robotica [Users]

TricicloEn este caso tenemos dos ruedas ali-mentadas por un motor para darletracción al robot, y una tercera ruedaen la parte anterior o posterior del ro-bot, sin tracción, pero con giro sobresu eje, que le permite darle direcciónal dispositivo (Figura 14). Tiene buenaestabilidad y su mecánica es sencilla.Puede ir recto en forma precisa gra-cias a que las ruedas de tracción estánalimentadas por un único motor. Elproblema que se presenta es que elmovimiento curvo es complejo, dadoque el radio de las curvas que puederealizar es muy grande. No puede gi-rar sobre sí mismo ni hacer curvas ce-rradas. Esto, para los robots que semueven en ambientes pequeños, pue-de ser un problema insalvable.

AckermanEsta 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 agregamayor estabilidad. La desventaja es quenecesitamos desarrollar el sincronismoentre las dos ruedas delanteras, pero noes complicado. También se mueve enlínea recta con absoluta precisión y tie-ne dificultades para realizar las curvas.Otra diferencia con el triciclo es que lasruedas traseras utilizan un mecanismollamado diferencial que asegura que, apesar de que la alimentación de ambasruedas se realice con el mismo motor,una rueda pueda girar menos que laotra cuando sea necesario.

Ruedas omnidireccionalesComo 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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 182

Page 185: Robotica [Users]

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

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

EAGLE KNIGHTS

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 183

Page 186: Robotica [Users]

El algoritmo necesario para calcular lavelocidad de cada rueda para dirigir-se con un ángulo determinado es sen-cillo y consume mínimo tiempo deprocesamiento. Las desventajas sonque no es sencillo moverse en línearecta en forma precisa, y que es algocompleja la arquitectura del robotcon respecto a la ubicación de los mo-tores y las ruedas. ¡Pero es un buen de-safío para afrontar más adelante! Esmuy interesante ver cómo se muevenlos robots con estas ruedas.

Estructura de nuestro robotAntes de continuar con otros con-ceptos teóricos relacionados con losmovimientos, desarrollaremos el cha-

sis y la arquitectura de nuestro robot.Una vez que lo tengamos armado ypodamos comenzar a probarlo, estu-diaremos algunos conceptos físicos ymatemáticos para lograr una navega-ción eficiente.

EspecificacionesEl diseño que propondremos en estelibro tiene como objetivo cumplir conlas especificaciones del CampeonatoArgentino de Fútbol de Robots, demanera 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 lasespecificaciones 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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 184

Page 187: Robotica [Users]

a modo de sugerencia, y dependen deluso que se le quiera dar al robot. Parapoder calificar en cualquiera de las ca-tegorías del CAFR, el robot tiene queentrar en un cilindro de 18 cm de diá-metro por 15 cm de alto.

No hay restricciones en cuanto a lacantidad de ruedas, motores y ba-terías, siempre y cuando el robot seadecue a las limitaciones del regla-mento. Las principales limitacionesson que quepa dentro del cilindromencionado y que no lastime o per-judique intencionalmente a un robotcontrario (¡Fairplay!). Para mayor de-talle del reglamento, podemos visitarla página del CAFR (www.cafr.com.ar), donde están las reglas origi-nales de la RoboCup y la adaptaciónpara nuestro campeonato local.

Tracción diferencialA la hora de elegir el tipo de transmi-sión, la más fácil de implementar y congrandes ventajas es la tracción diferen-cial. Para lograrla, ubicaremos dos mo-tores en el centro del robot conectadosen forma directa a sus ruedas. De estamanera, podremos controlar la direc-ción del robot mediante el giro de losdos 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.

❘❘❘

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

CAETI

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 185

Page 188: Robotica [Users]

● Uno detenido y el otro que gire:giro sobre radio exterior.

● Uno que gire en un sentido y otroen el sentido opuesto: giro sobresu 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 enlínea recta. Como ya comentamos,esta opción es teóricamente posible,pero en su ejecución siempre nosencontramos 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, demanera tal que podamos corregirlos errores que se producen.

Chasis troqueladoEste chasis está realizado en aglomera-do de 2 milímetros, inspirado en las fi-guras de cartón que venían troqueladaspara armar. La plancha de aglomeradode ese espesor se puede cortar con uncúter, pero nos puede dar algo de tra-bajo. Si usamos una caladora de made-ra, podremos lograr nuestro objetivocon 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 elconjunto total de 14 piezas, el con-trolador, la batería, los motores y lasdos ruedas (que utilizan unos bujes,que pueden ser reemplazados segúnlas ruedas y los motores que utilice-mos). Como vemos, en este caso hici-mos el robot con una batería de 12 Vporque no teníamos portapilas para 8pilas de 1,5 V, pero nuestra sugeren-cia es que conviene usar 8 ó 12 pilascomo comentamos en el capítulo delas baterías, así aprovechamos las pilasAA recargables convencionales.

Estructura de soporteEn primer lugar, cortaremos los so-portes laterales que tienen por funciónprincipal el montaje de los motores.No olvidemos que el robot no debesuperar los 15 cm de altura y 18 cmde 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 (Figura20). A continuación, procederemos acortar la pieza circular, que es la pla-taforma central donde se colocará laplaca controladora. Por último, lapieza rectangular es un soporte quetiene 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

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 186

Page 189: Robotica [Users]

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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 187

Page 190: Robotica [Users]

El montajePara poder realizar el montaje de nuestro robot, debemos llevar a cabo lospasos 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.

8. EL CUERPO DEL ROBOT

188

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 188

Page 191: Robotica [Users]

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 quededisponible si agregó otros componentes. Así queda el robot terminado.

Cuerpo a cuerpo

189

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 189

Page 192: Robotica [Users]

Mecanismos de transmisión y reducciónMuchas veces, los motores no se en-cuentran directamente vinculadoscon las ruedas o el mecanismo que sequiere 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, tenemosque desarrollar algún mecanismo detransmisión del movimiento del mo-tor. Además, muchas veces el motorno tiene el torque (fuerza de rota-ción) o la velocidad que deseamos.Para ello, utilizamos mecanismos dereducción. Ambos están muy rela-cionados. Presentaremos cada meca-nismo y comentaremos cómo fun-ciona la transmisión y la reducciónen cada caso.

EngranajesLos engranajes son ruedas dentadasque empalman en forma directa unacon otra. Los dientes se enganchan

8. EL CUERPO DEL ROBOT

190

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

IMPRESORAS 3D

Podemos ver que el armado de la es-tructura es sencillo, y cada uno lopuede hacer a su medida. Si quere-mos variar de configuración, es reco-mendable utilizar piezas como las deLego, Rasti o Mecano, junto con al-gunos soportes de aglomerado paralos motores. Lo ideal es armar unapieza para cada motor que luego seafá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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 190

Page 193: Robotica [Users]

entre sí, y el giro del engranaje deentrada (conectado al motor) setransmite al engranaje de salida (co-nectado a la rueda). Cada uno deellos transmite su sentido e invierteel sentido del engranaje asociado. Latransmisión es muy fiable, dado quesi 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 unengranaje más grande en la salida,aumenta la potencia y reduce la ve-locidad. Por ejemplo, si la entrada es

de 8 dientes y la salida de 32, anteun giro de la entrada, sólo tendre-mos un giro de 1/4 de vuelta en lasalida. Por lo tanto, las revolucionesde la rueda con respecto a las delmotor disminuyen. Sin embargo, altener el punto de apoyo más cercadel centro en el caso del engranajepequeño, y más lejos en el que tieneconectado, aumenta el torque en lamisma proporción. Por lo tanto, si queremos calcularcómo se comportan el torque y la ve-locidad en la transmisión entre dosengranajes, debemos realizar ecua-ciones, pero primero veamos lo quesignifica 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.

Cuerpo a cuerpo

191

Figura 23.

Un ejemplo típico

de reducción

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 191

Page 194: Robotica [Users]

La primera ecuación sería:

RR = RM * DEE / DES.

Si seguimos nuestro ejemplo de unengranaje de 8 dientes en la entrada y32 dientes en la salida, ¿cuántas RPM(revoluciones por minuto) tendrá larueda 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 motortiene 2 kgf, entonces, ¿qué torquetendremos en las ruedas?

FR=2 / 8 * 32 = 8 kgf

Podemos encontrar diversos tipos deengranajes, que nos permitirán realizardistintos tipos de conexiones según

nuestras necesidades. Los engranajessolidarios son los tradicionales, quecomparten un plano pero que tienenejes distintos, como vemos en la Figura23. Los engranajes cónicos permitencambiar la dirección de la rotación ymodificar así el plano de ésta. Podemosver un ejemplo en la Figura 24.

Los sinfín o gusanos permiten realizaruna caja de reducción que aumentapoderosamente la fuerza y disminuyenotoriamente la velocidad. Podemosver un ejemplo de caja de reducciónen la Figura 25.

Los engranajes de piñón y cremallerapermiten transformar un movimien-to circular en traslación, como vemosen la Figura 26. Por último, tambiéncontamos con engranajes antitrabas,que si la transmisión supera determi-nada cantidad de fuerza, comienzan agirar 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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 192

Page 195: Robotica [Users]

Cuando usamos engranajes solida-rios, el sentido de rotación del de sa-lida es inverso al de entrada. Si queremos mantener el mismosentido, tenemos que incorporar enel medio engranajes libres, de mane-ra tal que los que tienen la mismaparidad (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 considerarse en el cálculo de la ve-locidad y la fuerza. Es decir, cuandotenemos ruedas más grandes, obtene-mos mayor velocidad, pero disminui-mos la fuerza, y viceversa.

Transmisión por poleasSi 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.

Cuerpo a cuerpo

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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 193

Page 196: Robotica [Users]

En este caso, la polea de entrada tie-ne el mismo sentido de rotación quela polea de salida, salvo que cruce-mos la correa como se puede ver enla Figura 29. También tenemos un cál-culo de reducción relacionado con laproporción entre las poleas conecta-das. La diferencia fundamental esque durante la transmisión, puedehaber pérdida de movimiento pordeslizamiento 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 robotCuando comenzamos a estudiar elcomportamiento de los movimien-tos de nuestro robot, nos damoscuenta de que tenemos que tener encuenta un conjunto muy amplio devariables, propias y externas denuestro dispositivo. Al estudio detodos estos aspectos en nuestra cria-tura se lo conoce como dinámicadel robot. Como es un campo com-plejo para encarar en este primer pa-so, vamos a estudiar el movimientodel robot sin considerar las fuerzasinvolucradas (inercia, pesos, roza-mientos), sólo tomaremos el com-portamiento de las ruedas, con ad-herencia perfecta. A este campo se loconoce 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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 194

Page 197: Robotica [Users]

sabemos la posición inicial del roboty los movimientos que realiza, de-terminar la posición final. A esto selo llama cinemática directa.Cuando queremos saber qué movi-mientos hacer para llevar al robot deuna posición inicial a una posiciónfinal, estudiamos la cinemática in-versa. Éste es el campo que a noso-tros más nos interesa, porque con elrobot queremos llegar a un puntodeterminado del espacio y realizar lamejor trayectoria posible desdenuestro punto inicial.

Cada una de las arquitecturas quepresentamos tiene una cinemáticadistinta, que establece ciertas res-tricciones en el movimiento. Antes de analizar las restricciones yestudiar los mecanismos de navega-

ción, debemos aclarar que en los ro-bots móviles, tenemos tres grados delibertad: 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 ylos de ruedas omnidireccionales, lasrestricciones cinemáticas son ho-lonómicas, lo que significa que losdiferentes grados de libertad son in-dependientes. En este caso, posiciónes independiente de rotación.

En el caso de la arquitectura tricicloy 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 unode ellos el estudio de la cinemáticapresenta características distintas.

Cuerpo a cuerpo

195

Figura 29. En esta imagen podemos observar cómo funciona

la inversión del sentido de rotación de la polea de salida.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 195

Page 198: Robotica [Users]

OdometríaAhora bien, ¿cómo podemos saber laposición de nuestro robot en todomomento? Como comentamos an-tes, una de las formas es analizar elcontexto que rodea al robot cons-tantemente. El problema es que nosiempre contamos con informaciónexterna y, por otra parte, esto nosexige tomar datos en forma cons-tante con sensores que pueden nece-sitar una tasa de procesamiento muyalta. Es por eso que la odometría esel mecanismo más utilizado para de-terminar en forma aproximada laposición del robot. Consiste en in-corporar encoders situados en lasruedas de los robots, de la mismamanera 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 quese encuentran activados. Esto resul-ta económico, pero sin informaciónexterna, y se produce una acumula-ción de errores que nos puede llevara datos inexactos. Por ejemplo, si larueda 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 podemosencontrar en la odometría son sis-temáticos, cuando son intrínsecosal mecanismo de toma de datos, co-mo pueden ser problemas en la tasade 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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 196

Page 199: Robotica [Users]

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 ysu facilidad de cálculo, es uno de losmétodos más utilizados. Lo que reco-mendamos es sumar alguna toma deinformación más que permita reducirlos errores de este proceso.

Cuerpo a cuerpo

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.

Figura 31. Rueda con encoder para

desarrollar algoritmos de odometría.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 197

Page 200: Robotica [Users]

198

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 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é?

ACTIVIDADES

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.

08_robotica.qxp 24/10/2007 02:42 p.m. PÆgina 198

Page 201: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Presentarse a competir 200Características comunes de las pruebas de robots autónomos 200Pruebas tradicionales para robots autónomos 210¡La luz, la luz, he visto la luz! 213

Resumen 219Actividades 220

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 199

Page 202: Robotica [Users]

PRESENTARSE A COMPETIRAhí está, ¿no es bonito? Toda una ma-ravilla, independiente, solícito y muyinteligente. Nuestro robot está listopara comenzar a representarnos en elmundo. Ahora tiene que salir al rue-do, porque allí es donde se ven losbuenos caballos. Pero eso es pan co-mido. Le colocamos dos sensores deluz, lo ponemos sobre una línea negrapara que la siga y… ¡Se va a cualquierlado! Lo ubicamos sobre una mesa yal llegar al final no detecta el borde ycae con sus trágicas consecuencias. Leponemos una linterna adelante paraque la siga y nada, da vueltas deses-perado sin hallar la luz que lo guíe.Evidentemente, hemos subestimadola dificultad de las pruebas y nos fal-ta entrenamiento, horas y horas deentrenamiento para hacer de nuestrorobot un buen contrincante.

En este capítulo presentaremos laspruebas clásicas para robots autóno-mos móviles y nos detendremos aanalizarlas para ver dónde se encuen-tran las dificultades. También vere-mos algunos aspectos de navegaciónpara que el movimiento de nuestrorobot sea lo más fluido posible y nosadentraremos un poco en el fútbol derobots, que es el tema de nuestro pró-ximo capítulo. Si hemos tenido la pa-ciencia de llegar hasta este capítulo, loque nos espera ¡es apasionante!

Características comunes de las pruebas de robotsautónomosCada prueba de robótica presentacuestiones particulares que debemosresolver, pero en general hay un con-junto de principios básicos comunes.Antes de encarar cada una de ellas,presentaremos cuáles son los puntosque tenemos que tener presentes tan-

9. SALIR AL RUEDO

200

Figura 1. Robot seguidor de líneas.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 200

Page 203: Robotica [Users]

to en el hardware como en el softwa-re de nuestro robot.

Problemas mecánicosEs posible que éstos sean los proble-mas más habituales y más difíciles desuperar. Es fundamental e imprescin-dible crear un espacio de pruebas lomás parecido posible al lugar dondese 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 elambiente más exigente, testeamos to-do con las cotas más duras. Esto traeaparejado que nuestro robot sea máslento o impreciso en otros aspectos.Por ejemplo, si tenemos que subir unarampa de un ángulo de inclinaciónimportante, las orugas brindan buenatracción. El problema es que su capa-

cidad de giro es muy limitada, y lavelocidad es lenta. Por lo tanto, si alllegar a probar nuestro robot en el es-cenario real nos encontramos conuna rampa de menor inclinación, esposible que un sistema diferencialnos permita subirla sin las otras difi-cultades. En resumen, debemos te-ner la capacidad de cambiar entredos o tres sistemas de tracción en elmomento de la competencia.

Otra dificultad es el tipo se superficiedonde nos movemos y la presencia deescombros u objetos que estorbennuestro recorrido. Para ello, contar condiferentes sistemas de tracción tambiénpuede ser una solución. Si los objetosson fijos, deberemos añadir sistemas desensado para poder esquivarlos.

Otro aspecto complicado es la distri-bución de los pesos en el robot. Estoinfluye en el comportamiento de los

Presentarse a competir

201

Figura 2. Seguimiento de línea con obstáculos.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 201

Page 204: Robotica [Users]

giros, en cómo se ubican los sensoresante 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 quecontemos con abrojos en el robotdonde podamos pegar las baterías dediversas formas para la distribucióndel peso. Si usamos pilas, es bueno te-nerlas en portapilas separados, de dospilas 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 CampeonatoLatinoamericano de Robótica IEEE,utilizamos un sensor casero muy pe-sado, hecho de madera y escobillas deautitos 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 pesopara agregarle (sólo podíamos utilizarfichas del kit de Lego), le pusimos uncontrolador 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 laalegría del primer puesto!), nos llevóa aclarar que el segundo controladorestaba apagado y que su única fun-ción era de servir de contrapeso, conlo cual las risas colmaron el salón.

Para cada uno de los sistemas detracción que construyamos, tendre-mos que analizar en forma detalladala 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!

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 202

Page 205: Robotica [Users]

fluir en la ubicación de los sensoresy en la programación. Por lo tanto,también tendremos que poder reu-bicar los sensores con facilidad.

Problemas de sensoresCon respecto a los sensores, tambiénse nos presenta un conjunto de pro-blemas diversos. Así como la super-ficie de la competencia puede variarllegado el juego, con seguridad lasluces 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 mecanismoque nos permita testear los valores ymodificar nuestro programa paraque se comporte en forma correcta.Ahora, ¿cómo hacemos para saber siel sensor se activa o no, o cuál es elrango analógico en el que se debe ac-tivar? Con el control que hemos re-alizado, pareciera que no tenemosforma alguna de monitorear los va-lores de lectura. Pero vamos a ver al-gunos trucos que nos pueden ayudar.La primera forma de monitorear unsensor digital es usar el led que hemosconectado para nuestras pruebas. Porejemplo, con el siguiente programapodemos verificar si el sensor CNY70detecta la variación entre negro yblanco. Consideramos, como vimosen el Capítulo 7, que hemos conectadoel led infrarrojo en RA1 y el sensor

propiamente dicho en RA2. Por lotanto, tendremos que configurar RA1como bit de salida, y RA2 como bitde entrada. Un detalle fundamental atener en cuenta es que la resistenciaque va del sensor a +5 puede ser mo-dificada para obtener mayor o menorsensibilidad 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

Presentarse a competir

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.

ROBOLIGA

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 203

Page 206: Robotica [Users]

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 diversossonidos que nos permitan conocer elvalor de un sensor (Figura 4). Éstos sepueden conectar directamente, una desus conexiones a GND y la otra a unpin. Para generar sonido desde mikro-Basic podemos utilizar las siguientesfunciones de librería:

● Sound_Init(dim byref port as byte,

dim pin as byte): inicializa el pinpara salida. Por ejemplo: Sound_Init (PORTB, 2). En este caso, se en-carga de inicializar RB2.

● Sound_Play(dim periodo_div_10 asbyte, 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 segundoparámetro indica la cantidad de ci-clos de duración del sonido.

De esta forma, podemos vincular elvalor de un sensor analógico con di-ferentes sonidos, y así monitorear elcomportamiento de los sensores.Por último, lo más interesante puedeser conectar un display a nuestro mi-cro (Figura 5). El problema es que pa-ra controlarlo utilizamos casi todoslos puertos de salida. Será necesarioutilizar un micro aparte para tener es-

9. SALIR AL RUEDO

204

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

CONSEJO LATINOAMERICANO DE ROBÓTICA IEEE – RAS

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 204

Page 207: Robotica [Users]

te tipo de salida, si así lo deseamos.Escapa al alcance de este libro, pero sepuede encontrar mucha informaciónvinculada a este tema en Internet.

Problemas de programaciónUno de los problemas más comunescuando sensamos el mundo que nosrodea con nuestro robot, es la nece-sidad de estar atentos a dos o mássensores al mismo tiempo. Por ejem-plo, si realizamos un seguidor de lí-nea con un par de sensores y ademástenemos un sensor de tacto en casode que encontremos un objeto de-lante de nosotros, las estructuras dedecisiones se vuelven complejas o

Presentarse a competir

205

Figura 4. Buzzer piezoeléctrico para

analizar valores de sensores analógicos.

Figura 5. Capacímetro digital basado en un 16F84

con display de LCD, desarrollado por Sonytel Argentina.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 205

Page 208: Robotica [Users]

imposibles para representar la com-binación de todos los estados posi-bles de las entradas. Es por eso que acontinuació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 internodel micro, como el estado de un pinde entrada o el valor de un timer,con un procedimiento de nuestroprograma. Es decir, ante un cambioen el estado del pin o ante el des-bordamiento de un timer, se ejecutael procedimiento indicado. Porejemplo, de esta manera podemosasociar nuestro sensor principal a unbit con interrupción, de forma talque cuando se active, se invoque enforma automática al procedimiento

asociado, se atienda la necesidad quepresenta el sensor, y luego volvamosa nuestra rutina habitual. En el casodel seguidor de línea con obstáculos,el programa principal ejecuta el se-guimiento y al bit de interrupción leasociamos nuestro sensor de tacto.Por lo tanto, si encuentra un obstá-culo, se detiene el seguimiento de lalínea, se esquiva el objeto, y al vol-ver sobre la línea se continúa con elprograma principal.Las interrupciones pueden produ-cirse por alguna acción externa, co-mo la activación de un sensor, o poruna interna, como el caso de un ti-mer o desbordamiento de un regis-tro. En el 16F84/8 tenemos cuatrofuentes de interrupciones:

● RB0/INT (externa).● Pines RB4 a RB7, al cambiar de

estado si están configurados comoentrada (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 primerasson las que podremos aprovechar ennuestro robot. Cuando se producen,se modifica el estado de un flag deinterrupciones, lo que nos permitesaber cuál se ha producido. Este flages el registro INTCON, donde el bitque cambia es el siguiente:

9. SALIR AL RUEDO

206

❘❘❘Es la competencia de robótica más gran-

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

ROBOGAMES

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 206

Page 209: Robotica [Users]

● Bit 1, INTF, cuando se produce unainterrupción por RB0.

● Bit 0, RBIF, cuando se produce porcambio en RB4 a RB7.

● Bit 2, T0IF, cuando se produce porTMR0.

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, siestá 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 yel programa salta a la rutina que laatiende, como veremos más adelante,podemos examinar los bits del 0 al 2para saber la fuente que la ha causado.El GIE se pondrá automáticamente en0 para no atender otra interrupción al

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 nuevallamada. Sólo el contador de programaserá almacenado en el momento de lla-mar a la rutina, para luego saber dón-de retornar, con lo cual es problemanuestro almacenar el estado de otros re-gistros que puedan llegar a modificarseen la ejecución de nuestra rutina.

A continuación presentamos unejemplo general de código para laatención de las interrupciones porcambio de estado en RB4 a RB7. Deesta manera, podemos tener senso-res conectados a uno de estos 4 pi-nes, de forma tal que el programageneral se ejecute, y cuando se pro-duzca la activación de alguno de lossensores, la rutina de la interrupciónatienda la llamada y luego retorne alpunto en el que se encontraba.

Presentarse a competir

207

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

Tabla 1. Funcionalidad del registro INTCON.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 207

Page 210: Robotica [Users]

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.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 208

Page 211: Robotica [Users]

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

209

✱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, el rendimiento del CPU es mucho mayor.

LAS INTERRUPCIONES

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 209

Page 212: Robotica [Users]

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 enlos que sea necesario.

Pruebas tradicionales pararobots autónomosA continuación presentaremos unconjunto de pruebas clásicas para losrobots autónomos móviles, juntocon algunos consejos desde el puntode vista mecánico, electrónico y de laprogramación. Para construir las pis-tas de prueba, aconsejamos utilizarlona vinílica blanca y realizar los cir-cuitos con pintura negra especial pa-ra esta superficie. Puede ser costosopero es más sencillo de transportarque la madera u otros materiales. Enel peor de los casos, unas buenas im-

presiones en láser empalmadas concinta transparente pueden ser sufi-cientes. Lo importante es que los co-lores sean muy distinguibles, y queno haya ondulaciones o muescas enla pista que traben el funcionamien-to de nuestro robot.

Seguidor de líneaÉsta es la primera prueba por exce-lencia. En principio, comenzaremospor utilizar un solo sensor de luz queapunte hacia abajo para recorrer lapista. Al momento de construir lamecánica de nuestro robot, debe-mos tener en cuenta que debe girarcon facilidad. Esto es fundamentalcuando 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!

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 210

Page 213: Robotica [Users]

económica y confiable para este de-safío es la de las ruedas laterales conmovimiento diferencial.

Si se cuenta con un único sensor, lasolución más sencilla es la que co-nocemos como ciego con bastón,dado que aplica la misma mecánicaque los no videntes cuando tanteanparedes o el piso con su bastón blan-co. Ponemos el robot a la derecha dela línea, con el sensor que apunte ablanco, encendemos el motor dere-cho (MD), y dejamos apagado el iz-quierdo (MI). Cuando el sensor de-tecta negro, invertimos el encendidode los motores, dejamos apagado elMD y encendido el MI. Allí esperamos hasta encontrar blan-co y así sucesivamente. Es un meca-nismo sencillo, efectivo, pero muylento (Figura 8). Para mejorar la velo-

cidad de recorrido con un único sen-sor, si la línea negra a seguir es del-gada, podemos realizar el siguientealgoritmo:

1) Ponemos el robot con el sensor ala derecha de la línea negra.

2) Encendemos el MD y apagamosel 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 sensiblea las curvas cerradas (Figura 9).

Presentarse a competir

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.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 211

Page 214: Robotica [Users]

Si podemos contar con dos sensores,las mejoras pueden ser considerables.En este caso, ubicamos un sensor dellado izquierdo de la línea y otro del la-do derecho, ambos sobre blanco. En elprograma principal, sólo tenemos unciclo infinito con los dos motoresprendidos. Además, conectamos lossensores a alguno de los pines de RB4a RB7, para atenderlos mediante unainterrupción. Cuando uno de los dosvea negro, ésta se lanzará. Analizamoscuál de los dos cambió de estado, y de-finimos los estados de los motores demanera tal que el robot gire para el la-do correspondiente hasta que el sensorvuelva a ver blanco. Allí retornamos dela interrupción y se vuelven a encenderambos sensores. Este mecanismo esmuy efectivo, y podemos mejorarlocon más sensores, y usar algunos sobrenegro y otros sobre blanco.

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 determinadoperíodo no se ve negro con algunode los dos sensores, el robot debeavanzar en línea recta hasta encon-trar negro nuevamente (Figura 11).

Otra prueba típica es el seguimientode una línea con obstáculos. En estecaso, podemos sumar un sensor de to-que en el frente del robot, tambiénconectado a una de las entradas queactivan 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

212

Figura 10. Sensores

en un robot seguidor de línea

creado por David Cook.

❘❘❘

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.

ROBOCUP JUNIOR

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 212

Page 215: Robotica [Users]

cuando volvamos sobre la línea, el ro-bot quede en una posición adecuadapara continuar con el seguimiento.

¡La luz, la luz, he visto la luz!Otro desafío típico está relacionadocon la búsqueda o el seguimiento deuna fuente de luz. El problema mássencillo es posicionar el robot en unlugar y que gire hasta encontrar unaluz 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 (ypor lo tanto, el 16F88 por su con-versor). El robot debe tomar el valordel sensor en la posición en la que seencuentra y girar lentamente en al-

guno de los dos sentidos. Si aumen-ta el valor de luz hacia ese lado, man-tiene su giro. Si no, intenta para elotro lado. En el momento en que algirar para ambos lados disminuya elvalor 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 unaseñal infrarroja, como las que se utili-zan en fútbol de robots junior. Paraello es útil que usemos dos sensoresanalógicos conectados a pines de estetipo. Si el valor de lectura de ambossensores 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

Presentarse a competir

213

Figura 11. Seguimiento de línea con detección

de víctimas y saltos en las marcas (Roboliga).

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 213

Page 216: Robotica [Users]

uno y otro sensor es grande, giramoshacia el lado donde se recibe el mayorvalor. Si no hay una diferencia impor-tante y no están ambos iluminados,consideramos que la luz está detrás ygiramos en cualquiera de los dos sen-tidos. Podríamos seguir con muchaspruebas de este tipo, como realizar

9. SALIR AL RUEDO

214

un robot insecto que busque el lugarcon mejor luz de la sala, otro que nose caiga de una mesa, etcétera. ¡Todoqueda librado a nuestra imaginación!Como hemos visto, a medida quenuestras pruebas se vuelven máscomplejas, es necesario un micromás poderoso, como el 16F88.

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

BEAM ROBOTICS (ROBOTS BEAM)

Figura 12. Competencia de rescate de la

Roboliga, Olimpíada Argentina de Robótica.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 214

Page 217: Robotica [Users]

Luchador de sumoUna de las competencias que másapasionan a los participantes, y queno exige demasiada capacidad deprocesamiento por parte del robot, esla lucha de sumo. Hay diferentes re-glamentos en el mundo del sumorobótico. Es interesante conocer elreglamento del Campeonato Uru-guay o de Sumo de Robots, organi-zado por el Instituto de Computa-ción de la Facultad de Ingeniería dela Universidad de la República deUruguay. Éste se basa en el Torneo desumo 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 lacompetencia, podemos llevar nues-tro propio robot, o utilizar uno pro-visto por los organizadores, que tie-

ne las mismas características que elutilizado en el simulador.

La arena de competencia se llamaDohyo. Es un cilindro de 5 cm dealtura y 154 cm de diámetro de uncolor distinto al blanco y al marrón(en general, negro). Las líneas deinicio, donde se ubican los robots enel comienzo de la lucha, se indicanpor líneas marrones de 2 cm por 20cm, a 20 cm del centro del Doyho.

Presentarse a competir

215

❘❘❘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 y luego, en el momento de luchar, volcamos esa estrategia a un robot real.

CAMPEONATO DE SUMO ROBÓTICO DE URUGUAY

Figura 13. Competencia de Sumo

de la Universidad Tecnológica Nacional

de Bahía Blanca, Argentina.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 215

Page 218: Robotica [Users]

El borde de la arena es de 5 cm decolor blanco. Fuera del Doyho, elpiso será de cualquier color exceptoblanco o marrón. Cada categoría enparticular determinará un límite pa-ra el tamaño y el peso del robot.

Una partida consta de tres sets de unminuto 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 elganador. Para comenzar el partido, losrobots se ubican sobre las líneas de ini-cio o detrás de éstas, para lo cual dis-ponen de dos minutos. El robot nopuede 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 oponentesale del Doyho por sus propios medioso cuando un robot es descalificado orecibe dos advertencias o más.Un set se puede cancelar y repetir silos robots se encuentran trabados deforma tal que no exista movimientoposible, a criterio del jurado. Si ambos robots tocan el exterior delDoyho al mismo tiempo o ante cual-quier otra condición en la que el ju-rado no pueda definir un ganador, elset se reinicia, se ubican los robotsen la línea de inicio, y se cuenta condos minutos para hacerlo desde laindicación del árbitro.

9. SALIR AL RUEDO

216

Figura 14. Competencia tradicional de sumo en la Roboliga.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 216

Page 219: Robotica [Users]

En resumen, éstas son las reglas bási-cas de juego. Como vemos, las reglasno son complejas y esencialmente esun 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 nosalir de ella (y que esa detección seaen toda la circunferencia del robot),cómo detectar la distancia al con-trincante para poder abalanzarnos so-bre él y cómo detectarlo cuando lotocamos para ir hacia él o huir de él,según convenga. No agregamos el te-ma del posicionamiento dentro delDoyho porque es muy complejo derealizar con la información tan pobreque 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 ladetección del oponente, si no desea-mos hacerlo, podemos recorrer enforma aleatoria el Doyho de un ladoa otro para ver si logramos cruzar alotro robot en algún momento.

Desde el punto de vista mecánico, engeneral, si un robot tiene muchafuerza, con seguridad será lento, co-mo vimos en los capítulos anteriores.Por lo tanto, recorrer toda la arenaserá complicado. Es mejor tener unsistema 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 sensorde ultrasonido. Sólo con detectar lapresencia (es decir, hacer un uso di-gital del sensor) nos alcanza para po-ner en movimiento el robot hacia eloponente. 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 encuenta que podemos encontrarnoscon el límite no sólo si vamos haciadelante, dado que el contrincantepuede empujarnos. Por eso sugeri-mos usar varios sensores que recorranel borde del robot. También necesita-remos sensores de tacto que rodeen anuestro representante, de forma talque al ser presionados por uno de los

Presentarse a competir

217

❘❘❘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/.

COMPETENCIA DE SUMO DE ROBOTS EN ARGENTINA

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 217

Page 220: Robotica [Users]

costados, huyamos o empujemos conmás fuerza según la estrategia que ha-yamos desarrollado.Un tema fundamental en la presta-ción mecánica de nuestro luchadores la potencia de los motores. Segúnlos límites que presente la categoría,nos va a convenir utilizar los moto-res más potentes posibles, junto conun buen sistema de reducción. Paraello 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 reglasdel juego. Pero no dudemos en in-vertir en ello si queremos triunfar.

Otras pruebas clásicasA continuación describiremos otraspruebas clásicas de robots móvilesautó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 ocircular. Se ubica un conjunto de la-tas con cierto peso que el robot debesacar en el menor tiempo posible.Laberinto: el robot debe encontrar lasalida del laberinto en el menor tiem-po posible. En general, la salida estáindicada con una luz, de manera talque el robot pueda intentar realizar elcamino más corto hacia ésta.Carrera de postas: un conjunto derobots debe comunicarse entre sí pa-ra completar un recorrido definidopor una línea negra.Rescate: este tema incluye infinidadde 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.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 218

Page 221: Robotica [Users]

junto de víctimas en una zona de de-sastre, o rescatar víveres y medicinasque han caído en una zona conta-

Presentarse a competir

219

minada para llevarlos a una zona li-berada. Además, estas pruebas pue-den ser solitarias o colaborativas.

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

Figura 16. Pista

de la competencia

de rescate de la

RoboCup Junior.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 219

Page 222: Robotica [Users]

220

TEST DE AUTOEVALUACIÓN

1 ¿Cuáles son los problemas mecánicos

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?

ACTIVIDADES

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.

09_robotica.qxp 24/10/2007 03:10 p.m. PÆgina 220

Page 223: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Fútbol de robots 222Características del fútbol de robots 222Ligas nacionales e internacionales de fútbol de robots 232Modificaciones para que nuestro robot pueda jugar 242Una pelota infrarroja 244

Resumen 245Actividades 246

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 221

Page 224: Robotica [Users]

FÚTBOL DE ROBOTS

Para el año 2050, desarrollar unequipo de robots humanoides com-pletamente autónomos, que en unpartido de fútbol puedan vencer alequipo campeón mundial humano.

Éste es el lema de la organizaciónRoboCup, 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 realizamosel siguiente cálculo. En el momentoen el que se lee este libro, ¿cuántofalta para el año 2050? ¿Cuarenta ytres, 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ónpensar 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 lascosas desde este punto de vista, talvez pensar en un equipo de fútbol derobots que jueguen un buen partidode 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, deamagues y fintas. Quién nos quita lailusión de que en un futuro no muylejano, lo acompañemos por todo elmundo en sus viajes con la SelecciónMundial de Fútbol de Robots.

Características del fútbol de robotsDentro del campo de la robóticaautónoma móvil, en los últimosaños ha surgido una disciplina co-nocida como robótica situada. Suobjeto de estudio es el desarrollo derobots 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.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 222

Page 225: Robotica [Users]

bientes muy dinámicos. Ejemplosde esto son los vehículos terrestres,aéreos y acuáticos, los robots enfer-meros y todos aquellos que tenganque desenvolverse en un mundo quecambia segundo a segundo.El fútbol de robots es el deporte quepresenta los problemas más impor-tantes que podemos encontrar en larobótica situada y aunque existendiversas 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, podemosdecir 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 muchomás efectivo.

● Una lectura precisa y veloz deljuego: es una característica funda-mental que el jugador se anticipea la jugada. Por ejemplo, que vayaal encuentro de la pelota donde lapueda 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 conjuntode niños que corre detrás de la pe-

lota. Debemos tener un rol quecumplir, que ese rol sea dinámicoy 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 engeneral en la robótica situada: la ar-quitectura de los robots, el sensadoy 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.

Fútbol de robots

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.

OTROS DEPORTES

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 223

Page 226: Robotica [Users]

Arquitectura y navegación de los robotsComo hemos visto antes, con fre-cuencia en las competencias tene-mos un límite vinculado al peso y eltamaño de los robots. En el fútbolocurre lo mismo. Por lo tanto, nues-tro objetivo es lograr el robot másrobusto y más rápido en el pequeñoespacio 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í quenuestro bolsillo será otro límite quedeberemos 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 elcaso de los robots con navegación om-nidireccional (Figura 2), las ventajas sonconocidas, pero incorporar tres moto-res en el espacio que tenemos, más unode un pateador si fuera necesario, escomplejo y el valor de los motores y lasruedas 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óncon ruedas diferenciales. Esta navega-ción dependerá de la información quepodemos extraer del ambiente. En elcaso 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.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 224

Page 227: Robotica [Users]

bablemente nuestro funcionamientoserá menos proyectado y calculado,más primitivo. Cuando tenemos másinformación del ambiente, como laposición X e Y de la pelota, y X, Y yla rotación de nuestros robots, pode-mos realizar un cálculo de navegaciónmás preciso. En este punto tenemosdos situaciones que estudiar: la nave-gación hacia un punto fijo y hacia unpunto móvil (como puede ser la pe-lota). La diferencia sustancial en losdos casos es que en el caso del puntomóvil, si es posible, debemos realizaruna proyección del comportamientodel punto en el futuro para navegarhacia esa proyección, de la misma for-ma que cuando nos lanzan un centroen 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 yno del estado actual. Desde ya que es-te mecanismo sirve para los objetosmóviles con comportamiento relati-vamente lineal, como es el caso de lapelota. En el caso de los robots con-trarios, no tiene demasiado sentidodado que es imposible predecir el fu-turo de su comportamiento.Un algoritmo de navegación triviales girar hasta ver el punto de desti-no (siempre con un umbral de errorporque si no la misma inercia de

movimiento nos hará pasar de largoen el giro y nos quedaremos oscilan-do para corregir el error), y luego delgiro, 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 yviniendo hacia el punto de destino.

Fútbol de robots

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.

PROYECCIÓN DE LA PELOTA

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 225

Page 228: Robotica [Users]

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álisisprofundo de la física implicada en eljuego. Es decir, tenemos que deter-minar cómo funciona la inercia delrobot, cuánto tarda en alcanzar di-versas velocidades, cuánto tarda enrealizar giros de diversas amplitudespartiendo de diferentes estados, etcé-tera. En esto influirá la arquitecturadel robot (más allá de que sea dife-rencial, cómo está repartido el pesodel robot y cómo se ubican las ruedasson puntos esenciales), los materialesde 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 desarrollarun modelo donde para llegar a unpunto determinado, en lugar de girary luego ir en forma recta, determine-mos velocidades diferentes en las rue-das para trazar una curva optimizadahacia el destino. Una vez hecho esto,podemos seguir nuestro estudio me-diante la realización de navegacionesdonde nos interese con qué ángulollegamos al final, desde qué lado lle-gamos al punto, etcétera.

Sensado y detección del ambienteEste punto es fundamental. Aquí te-nemos mucho trabajo apasionantepor 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. Laimagen que conseguiremos del am-biente no nos permitirá navegar contotal exactitud. Todo lo que podre-mos hacer es buscar la pelota conalgún sensor, acercarnos a ella, y unavez que nos encontramos cerca, in-tentar llegar hasta el arco contrario.

Lo que hemos utilizado para obtenermayor precisión en la captación delambiente son los sistemas de visión.En este caso, tenemos que realizar undelicado equilibrio entre la cantidad

10. JUGAR AL FÚTBOL

226

Figura 3. Ejemplo de robot de fútbol

con ruedas diferenciales.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 226

Page 229: Robotica [Users]

de cuadros por segundo que proce-samos y la precisión que obtenemosal final. Aquí encontramos la grandiferencia entre los sistemas de vi-sión industriales tradicionales y losque tenemos que aplicar en robóticasituada. En el primer caso, podemostomar mayor tiempo de procesa-miento, con lo cual el resultado finales mucho más preciso. En nuestrojuego, tenemos que complementar ycorregir la información de la cámaracon datos previos del ambiente y conproyección del estado actual en el ca-so de los objetos de comportamien-to lineal. Y desde ya, renunciar a la

precisión si queremos obtener el es-tado del ambiente actual, ¡y no el queexistía hace 30 segundos!

El sistema de visión puede ser globalo local a los robots. En el primer caso(Figura 4), un procesador externo reali-za el procesamiento y luego les envía elresultado a los robots para que tomensus decisiones, o directamente éste uotro procesador externo, a partir de losdatos captados, define la estrategia y lesenví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-

Fútbol de robots

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.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 227

Page 230: Robotica [Users]

ce mediante sensores, la calidad de lainformación es bastante baja. Si en elrobot tenemos un sistema de visión, losdatos que tenemos del ambiente sonmayores, pero esto exige que cada ro-bot realice el arduo procesamiento dela 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 quela cámara se apunte hacia arriba y quese coloque un espejo cónico o se-miesférico en la parte superior para te-ner una captura de 360 grados (Figura6). La deformación que se produce enesta imagen es muy fácil de solucionar.

Aun así, el robot puede tener informa-ción incompleta porque otros le tapanla 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.

❘❘❘

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.

VISIÓN INDUSTRIAL

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 228

Page 231: Robotica [Users]

por eso que en todos los sistemas de vi-sión, complementamos lo que capta-mos en el cuadro con información delhistorial, como haríamos con nuestrospropios ojos y cerebro. Si vemos queviene la pelota y en un momento la de-jamos de ver porque queda detrás de unjugador, realizamos una proyección desu 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 lohacemos (¡o por lo menos lo intenta-mos!) en el fútbol de robots.

Comportamiento colaborativoAdemás de todo lo que vimos, nece-sitamos que jueguen en equipo. Enun conjunto de robots que tienen un

objetivo determinado, es necesarioalgún mecanismo de organizaciónque permita que cada uno realiceuna o más tareas determinadas enforma dinámica, en pos de ese obje-tivo. Existen muchas formas de lo-grar esto, pero plantearemos dos: elcomportamiento emergente y elcomportamiento dirigido.El comportamiento emergente den-tro de un sistema es el que surge de lainteracción de sus componentes, y nopuede explicarse a partir de los com-portamientos individuales. Por ejem-plo, ninguna hormiga puede realizaruna colonia por sí misma, ni organi-zarla dándoles órdenes a otras hormi-gas. Pero su comportamiento indivi-dual sencillo en conjunto con las otrashormigas, les permite lograr un tra-

Fútbol de robots

229

Figura 6. Un equipo con sistema de visión local.

La cámara apunta hacia una semiesfera en la parte superior.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 229

Page 232: Robotica [Users]

bajo en equipo muy complejo (Figura7). Otro ejemplo es el de las bandadasde pájaros. Muchas veces nos queda-mos maravillados ante las hermosasfiguras geométricas que logran al vo-lar en grupo. Sin embargo, ningunamente superior ordena ese vuelo. Unconjunto de reglas sencillas de ubica-ción de cada pájaro en la bandada,que permite minimizar la resistenciadel aire, es la que logra esa organiza-ción que nos sorprende. Un últimoejemplo que podemos presentar es elde 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 lacanción o de un acto, genera un pri-

mer aplauso, que luego comienza acrecer y que, mágicamente, toma unacadencia general a partir de la senci-lla actitud de cada uno de nosotros algolpear nuestras manos.En un grupo de robots, podemos de-terminar cierto conjunto de accionesprimitivas, como ir a un punto o ir ala pelota, y que cada robot decida porsí 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. Dela misma forma, podríamos determi-nar un grupo de acciones posibles queestén condicionadas por el estado delrobot dentro del ambiente. El proble-

10. JUGAR AL FÚTBOL

230

Figura 7. Las hormigas, un maravilloso ejemplo de comportamiento emergente.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 230

Page 233: Robotica [Users]

ma que podemos tener es que variosrobots decidan hacer lo mismo o queninguno ejerza alguna función vital,como la de arquero. La ventaja es quecon sólo agregar alguna o algunas ac-ciones más, y si pulimos el sistema dedecisiones de cada robot, el compor-tamiento puede cambiar en formanotable. Además, todos los robots soniguales, y por lo tanto no necesitamosprogramar diversos comportamientospara cada uno de ellos.

El comportamiento emerge en formaespontánea. Es muy sorprendente ver-los organizarse por ellos mismos ycumplir determinados roles cuandonosotros nunca lo hicimos en formaexplícita. ¡Es algo mágico! El proble-ma es que muchas veces, este com-portamiento no surge en forma tanprecisa ni veloz como lo necesitamosen un ambiente dinámico. Y es en esemomento cuando pensamos que tenerun director de orquesta puede presen-

tarnos un mundo más gris y represivo,pero infinitamente más ejecutivo.

Así surge el comportamiento dirigi-do. En este esquema, un robot delequipo, o un agente externo, toma de-cisiones, elige una estrategia y le asig-na un rol a cada robot. En el caso delos sistemas de visión global, dondeun computador externo realiza el pro-cesamiento de imágenes, el mismoprocesador, o uno que está comuni-cado con él, toma estas decisiones ysó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 comportamientoes muchísimo más preciso y las deci-siones se toman en forma veloz. Peroes necesario que imaginemos todoslos mundos posibles, porque nuestroconjunto de robots nunca saldrá de lopuramente establecido por nuestro al-goritmo. Todo comportamiento de-penderá de lo que hayamos previsto

Fútbol de robots

231

✱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

perfecta del guante. Éste es otro ejemplo de comportamiento emergente.

SEGUIR EL GUANTE BLANCO DE MICHAEL JACKSON

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 231

Page 234: Robotica [Users]

en nuestra programación. En reali-dad, en general usamos una combi-nación de éstos y otros mecanismosde organización en equipo. La elec-ción de uno u otro dependerá, en es-pecial, de los buenos resultados quelogremos con ese comportamiento.

Ligas nacionales e internacio-nales de fútbol de robotsComo dice el sabio adagio, todo loque hacemos los investigadores espara conquistar a las muchachas queen nuestra juventud, con nuestro as-pecto de nerds, nunca pudimos se-ducir. Debido a que pasamos díasenteros detrás de nuestros inventos,es fácil suponer que nuestro estadofísico deja bastante que desear. Espor eso que decidimos crear los cam-peonatos de fútbol de robots: quere-mos ser famosos, reconocidos por lacalle y conseguir novias modelos, co-mo los jugadores de fútbol reales.Luego de doce años de competenciasno hemos logrado ninguno de estosobjetivos, pero no hemos perdido lasesperanzas. 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 sonuna buena excusa para intercambiarconocimientos 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. Yluego, entre goles y tiros libres, com-partimos los últimos resultados denuestros trabajos en los campos quepresentamos en el punto anterior. Acontinuación comentaremos cadauna de las ligas y las categorías vin-culadas al fútbol que presentan.

RoboCupSegún se detalla en su propio sitio, laRoboCup es un proyecto de colabo-ración internacional para promoverel 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 aprueba. 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 socialessignificativos y a la industria. La me-ta final es lograr hacer un equipo deonce 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íasestudiadas son aplicables a la búsque-da y el rescate de personas en situa-ciones de desastre, se ha agregado a lascompetencias de rescate (RoboCupRescue) como una forma de aplica-

10. JUGAR AL FÚTBOL

232

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 232

Page 235: Robotica [Users]

ción significativa de los resultados delas investigaciones. Además de las ca-tegorías de fútbol, también presentacategorí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. Lascategorías de fútbol que ofrece son:

● Simulación: en estos momentoshay dos subcategorías, una de 2Dy otra de 3D. En esta categoría, de-bemos controlar los once jugadoresy al entrenador, cada uno con unproceso independiente entre sí ysin comunicación directa entreellos. El partido se desarrolla en unsimulador de la física del ambien-te, con el cual los procesos quecontrolan al equipo se comunican

mediante mensajes de texto porsockets. Además, contamos con unvisualizador 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 mediantegritos entre ellos. Por lo tanto, te-nemos un comando que podemosejecutar en nuestro agente que gri-ta un mensaje y desde ya, tambiénpuede 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

Fútbol de robots

233

Figura 8. Imagen de uno de los monitores para el simulador de la RoboCup.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 233

Page 236: Robotica [Users]

agente), como lo que ve, la energíadel jugador, la velocidad, etcétera.Esta información de los sensorespuede estar contaminada por el rui-do (errores), como en un sensor re-al. Es importante recordar que elservidor no espera que le enviemoslos comandos para los robots, sinoque funciona como un sistema detiempo real con ciclos discretos, yque aquí también tenemos el com-promiso de equilibrar precisión yvelocidad. Si nuestra heurística tar-da demasiado tiempo en definir elcomportamiento del robot, vamosa entregar acciones para un mundoque ha cambiado, y con una fre-cuencia demasiado lenta para la vi-talidad del ambiente. El objetivo

del simulador es poder solucionartodos los aspectos físicos y de vi-sión, para que nos podamos con-centrar en los temas vinculados alcomportamiento 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 jugadorescada uno (Figura 9). Cada robot debepoder entrar en un cilindro de 180mm de diámetro, con una altura nomayor a 15 cm, salvo que tenga supropio sistema de visión. De no serasí, se utiliza un sistema de visiónglobal con comunicación inalámbri-ca entre el procesador de imágenes ylos robots. El campo de juego es de

10. JUGAR AL FÚTBOL

234

Figura 9. Equipo Small size del ITAM de México.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 234

Page 237: Robotica [Users]

4,9 m de largo por 3,4 m de ancho yse 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énson 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 dejuego. Cada robot debe poder entraren una caja de 50 cm de ancho, 50cm de largo y 85 cm de alto. Por mo-mentos, puede crecer hasta 60 cm

por 60 cm cuando patea. El pesomáximo del robot es de 80 kg.

● Standard platform league (liga deplataforma estándar): en esta cate-goría se selecciona un robot están-dar que debe ser usado por todos losequipos. Hasta el año 2007, la pla-taforma seleccionada fue el Aibo deSony, y por eso esta categoría se co-nocía como four legged (cuatro pa-tas). En 2008 se utilizará el robotAldebaran Nao (Figura 11). Cadaequipo debe ser de cuatro jugadoresautónomos mediante la utilizaciónde esta plataforma básica. De estamanera, se pone el acento en el de-sarrollo del software para solucionarel aspecto físico del robot.

Fútbol de robots

235

Figura 10. Un partido a punto de comenzar en la Middle size de la RoboCup.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 235

Page 238: Robotica [Users]

● Humanoid (humanoide): aquí, losequipos deben estar formados pordos humanoides, donde uno será elarquero. Existen dos subcategorías(kidsize y teensize), donde sólo haydiferencias de tamaño. Cada robotdebe tener proporciones en sucuerpo similares a las proporciones

humanas (Figura 12). Las reglas pro-porcionan un conjunto de fórmu-las que determinan los límites demínimo y máximo para cada partedel 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

236

Figura 11. En esta imagen

vemos un prototipo avanzado

del Aldebaran Nao.

Figura 12. Robotina, el humanoide

de la categoría TeenSize del equipo

Nimbro de la Universidad de Freiburg.

10_robotica.qxp 24/10/2007 03:13 p.m. PÆgina 236

Page 239: Robotica [Users]

FIRA (Federación Internacional de Fútbol de Robots)La FIRA es una liga futbolera. Losrobots de sus diversas categorías sonde complejidad menor que los de laRoboCup, con características menoscercanas al fútbol real. Por ejemplo,en sus canchas no hay laterales. Ladinámica es más parecida al fútbol desalón. Con estas características, suspartidos son más vistosos y emocio-nantes, ya que la pelota está cons-tantemente en juego y sus robots semueven 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 delado (sin incluir la antena de comu-nicación). Se juega con una pelotade golf naranja y la visión es global.

Fútbol de robots

237

❘❘❘

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.

PLATAFORMA ROBOCUP

Figura 13. Ejemplo de

robot MiroSot para esta

categoría de la FIRA.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 237

Page 240: Robotica [Users]

Existe una subcategoría de cinco con-tra cinco donde la cancha es de 220cm 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 lasimágenes, que luego son procesadaspor una computadora externa. Éstaúltima, una vez procesada la imageny analizado el ambiente, determina elcomportamiento de los robots y leenvía las órdenes a cada uno en formainalámbrica. Por el tamaño del roboty las reglas de cubrimiento de la pe-lota, es imposible capturarla, por loque el transporte es bastante comple-

jo, y se juega mucho con los rebotesy el transporte colectivo.

● SimuroSot: categoría simulada queemula a MiroSot de cinco contracinco y de once contra once. El si-mulador (Figura 16) provee los datosdel ambiente cada 16 milisegundosy nuestro equipo (una dll hecha enC++) toma sus decisiones e informala velocidad de la rueda izquierda yderecha de cada robot.

● NaroSot: es una versión mini deMiroSot (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.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 238

Page 241: Robotica [Users]

4 cm de largo y 5,5 cm de alto (sincontar la antena). El sistema de vi-sión también es global y juegancinco contra cinco con una pelotade golf naranja.

● RoboSot: ésta es la categoría convisión local. Cada equipo está for-mado por tres robots que debencaber en un cilindro de 20 cm dediámetro y con una altura no ma-yor a 40 cm. La pelota es de tenis

Fútbol de robots

239

Figura 16. Simulador de 5 contra 5 que se utiliza

en la categoría SimuroSot de la FIRA.

Figura 15. Pequeños robots de la

categoría NaroSot de la Universidad de

Tecnología de Viena.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 239

Page 242: Robotica [Users]

color amarillo y ya pueden incor-porar a su arquitectura sistemas deacarreo de la pelota (con restric-ciones) y sistemas de pateo.

● HuroSot: ésta es la categoría dehumanoides 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, patearpenales, etcétera. La altura máxi-ma es de 150 cm y 30 kg de peso.Las proporciones del robot debenser similares a las humanas, comoen la RoboCup.

● KepheraSot: en esta categoría, queestá en vías de desaparición, losequipos utilizan una arquitecturaconocida como Kephera. Jueganuno contra uno con un sistema devisión local muy interesante, ya queposee una cámara con captura deuna sola línea. Es por eso que los ju-gadores se identifican con un cilin-dro de rayas negras y blancas, y lapelota es de color verde.

Campeonato Latinoamericano IEEEEl Campeonato LatinoamericanoIEEE 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.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 240

Page 243: Robotica [Users]

contaba con pruebas de fútbol de ro-bots. Sin embargo, en las últimastres ediciones ha incorporado la Ro-boCup Latinoamericana. De esta manera, se hacen presenteslas categorías Small Size, Four Le-gged y Simulación. Además, pro-pone una categoría inicial donde seutiliza el kit de Lego para la cons-trucción de los robots, con desafíosde rescate o colaborativos, y una ca-tegoría abierta, donde los robots de-ben ser desarrollados por los propiosparticipantes, con determinadas res-tricciones en los procesadores.

Concurso Mexicano de RobóticaVersión local del Concurso IEEE La-tinoamericano que agrega a sus com-petencias las categorías Junior de laRoboCup (para menores de 18 años)y un concurso de robots limpiadores,también con diversas categorías. Conrespecto al fútbol en particular, estánpresentes Small Size y Junior.

Campeonato Argentino de Fútbolde Robots (CAFR)El CAFR combina pruebas de am-bas ligas internacionales. Con res-pecto a la FIRA, presenta su cate-

Fútbol de robots

241

Figura 18. El equipo argentino del CAETI recibiendo

su premio por el cuarto puesto en la categoría SimuroSot.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 241

Page 244: Robotica [Users]

goría SimuroSot, donde tiene el ma-yor número de participantes. De laRoboCup presenta una versión máspequeña que la Small Size (con me-nos cantidad de robots) y la Juniorcon pelota infrarroja (Figura 19).

Roboliga (Olimpíada Argentinade Robótica)La Roboliga es una competencia des-tinada a alumnos menores de 18 años.Es la competencia de robótica másantigua de Latinoamérica y conjugapruebas de destreza con presentaciónde proyectos de investigación de losalumnos. Dentro de las competen-

cias, que se modifican año a año, confrecuencia aparecen pruebas de resca-te, sumo, y destrezas de fútbol de ro-bots, que utilizan el mismo campo ylas mismas características que la Ro-boCup Junior (Figura 20).

Modificaciones para quenuestro robot pueda jugarCon nuestro robot podríamos parti-cipar de la categoría Small Size de laRoboCup y de la competencia de fút-bol de la RoboCup Junior. En el pri-mer caso, deberíamos desarrollar unsistema de visión para poder realizarel seguimiento de nuestro equipo y

10. JUGAR AL FÚTBOL

242

Figura 19. Categoría Senior del Campeonato Argentino de Fútbol de Robots.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 242

Page 245: Robotica [Users]

sumar algún sistema de comunica-ciones para enviar las órdenes de lacomputadora central hacia los robots(y desde ya, ¡programar todo esto!).Con respecto al sistema de visión, yaexiste un servidor de procesamientode imágenes de distribución libre ygratuita 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 unaplaca capturadora de video con en-trada compuesta o SVHS. De las cap-turadoras de video que tienen driversen Linux, nosotros logramos poner

en marcha el sistema con aquellas quetienen chip bt878, como la antiguaPCTV de Pinnacle. Conectada a es-ta placa, podemos utilizar cualquiercá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 conbuena precisión. Los datos del am-biente y de los robots los comunicamediante un socket UDP, por lo quepodemos capturarlos desde otro pro-ceso en el mismo Linux o en otra má-

Fútbol de robots

243

Figura 20. Competencia colaborativa en la Roboliga.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 243

Page 246: Robotica [Users]

quina con cualquier sistema opera-tivo y cualquier lenguaje que puedaacceder a sockets (¡todos los lengua-jes pueden hacerlo!).

Ahora, si estamos completamentelanzados a la construcción de nues-tras propias herramientas para loque 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 enC++ que nos proporciona todos losalgoritmos básicos de procesamien-to como filtros, balances, detecciónde bordes, tracking, etcétera. Reali-zar nuestro propio sistema de visiónimplicará combinar un conjunto delas funciones provistas por OpenCVcon algunas buenas ideas de uso delhistorial 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-

10. JUGAR AL FÚTBOL

244

cia) o bluetooth a nuestro robot. La-mentablemente, este tema escapa a lacomplejidad 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 demódulos RF con el PIC.

Una pelota infrarrojaSi queremos evitar el arduo procesa-miento de imágenes, podemos po-ner a nuestra criatura al servicio dela categoría Junior. Aquí, la visión eslocal y muy sencilla. Para jugar seutiliza una pelota con leds infrarro-jos. Esta pelota emite constante-mente y, de esta manera, uno o mássensores de luz la pueden detectarcon facilidad (es mejor usar por lomenos dos para poder saber si la pe-lota se fue de nuestro frente para unlado 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, la E-league (Entry League) no continuó con su desarrollo en la RoboCup,

lo que hubiera permitido un ingreso menos complejo a la liga.

UNA BUENA FORMA DE COMENZAR CON EL FÚTBOL DE ROBOTS

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 244

Page 247: Robotica [Users]

rigimos hacia nuestro arco o hacia elcontrario con el uso de uno o mássensores de luz que apuntan haciaabajo. Si queremos ser más exquisi-tos, al usar tres o cuatro sensores enforma analógica podemos darnos

cuenta del grado de rotación denuestro robot por la diferencia cap-tada por cada uno de los sensores. Siapunta hacia el arco, los valores cap-tados por los sensores que miran ha-cia abajo tendrían que ser similares.

Fútbol de robots

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.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 245

Page 248: Robotica [Users]

246

TEST DE AUTOEVALUACIÓN

1 ¿Cuáles son las tres características que

podemos transpolar del fútbol conven-

cional 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?

ACTIVIDADES

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.

10_robotica.qxp 24/10/2007 03:14 p.m. PÆgina 246

Page 249: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

La electrónica 248Conceptos de electricidad 248Componentes que utilizamos en nuestros circuitos 251Herramientas fundamentales 256Consejos para soldar 258

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 247

Page 250: Robotica [Users]

LA ELECTRÓNICA

Motor del siglo XX, la electrónica hajugado un papel fundamental en lascaracterísticas actuales del mundo enel que vivimos. Todo lo que nos rodeaestá compuesto en algún punto porcomponentes electrónicos: automóvi-les, aviones, computadoras, juguetes,televisores, reproductores de mp3,etcétera. Y cada día que pasa, graciasa las maravillas de la evolución tec-nológica, la electrónica se vuelve máspequeñ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 kitespecífico o por qué no, mediante es-tudios formales. Para aquellos que noshemos acercado porque lo teníamoscomo un simple hobby, la apariciónde los integrados nos ha facilitadoaún más la tarea. Muchas veces, cuan-do necesitamos algo, en lugar de te-ner que diseñarlo, basta con buscar enlos catálogos un integrado que cum-pla esa función. Basta un ejemplo: ungrupo de alumnos había desarrolladoun órgano electrónico controladodesde el puerto paralelo de una PC.Cuando le presentaron el proyecto alprofesor, con decenas de transistores,resistencias, diodos y otros compo-nentes, el docente los felicitó porqueel 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íandesarrollado se podía resolver con unintegrado. Todo, menos un conjuntode leds, quedaba encapsulado en unintegrado específico. Como dirían losprogramadores de objetos, todo estáhecho, sólo hay que encontrar las pie-zas y ensamblarlas.Este apéndice tiene como objetivoaclarar 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 poresto, y no creemos que su lecturapueda aportarle nada nuevo. Pero sies la primera vez que vamos a haceruna soldadura, este apéndice seráuna tabla de salvación.

Conceptos de electricidadPara comenzar con nuestro aprendi-zaje de electrónica, debemos conoceruna serie de conceptos fundamenta-les. En primer lugar, veremos aquellosrelacionados con la electricidad.

Corriente eléctricaLa corriente eléctrica no es más queun flujo ordenado de electrones queatraviesa un material de un puntoa otro. Algunos de ellos, al tener unelectrón libre en su nivel superior,permiten el pasaje de un punto a otroen forma mucho más simple y con

A. CONCEPTOS BÁSICOS DE ELECTRÓNICA

248

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 248

Page 251: Robotica [Users]

menos resistencia. De allí el nombrede materiales conductores. A losmateriales que no permiten el flujode electrones en condiciones norma-les se los conoce como materialesaislantes. Pero ¡cuidado!: ante ciertosfactores un material aislante puedeconvertirse en conductor. El ejemplomás conocido es el de la cerámicausada 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 unafuente de energía externa. Si coloca-

mos el material neutro entre uncuerpo con muchos electrones (car-ga negativa) y uno con pocos (cargapositiva), los electrones atravesaránel material para ir del potencial ne-gativo al positivo. ¿Del negativo alpositivo? ¿No era al revés? En efectoes 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 sepiensa en el pasaje de corriente eléc-trica, con frecuencia se lo describe alrevés porque lo que se considera esel flujo del potencial positivo.

Si el flujo se desplaza en forma conti-nua de un punto a otro, se lo conocecomo corriente continua. Un ejem-plo de este tipo de corriente es la que

La electrónica

249

+ +

— —

Figura 1. Esquema del flujo de la corriente eléctrica.

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 249

Page 252: Robotica [Users]

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 deeste caso es la corriente que recibimosen los enchufes de nuestras casas, lacorriente eléctrica de la red. Podemosbuscar en Internet la historia de porqué se eligió la alterna y no la conti-nua para las casas, ya que es una lu-cha interesante entre Nikola Tesla yThomas Edison (Figura 2).La corriente se mide en Amperios(A). Esta unidad mide la cantidad deelectrones que fluyen en un materialen una unidad de tiempo. Una co-rriente tiene una intensidad de 1 Acuando, al pasar por una soluciónacuosa de nitrato de plata, deposita0,001118 gramos de plata por segun-do (esto podemos olvidarlo rápida-mente, sólo es para aclarar que existeun patrón). En electrónica, esa uni-dad es demasiado grande, por lo queutilizamos los submúltiplos. Un Mi-

liampere (mA) es la milésima partede un ampere. Un Microampere(µA) es la millonésima parte.

Tensión (voltaje)Para que los electrones fluyan de unterminal 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 laotra una positiva. La tensión es la di-ferencia de potencial que hay entredichas terminales. El ejemplo máshabitual es el curso del agua de unrío. Para que el agua corra, es necesa-rio un desnivel entre la vertiente y ladesembocadura. Ese desnivel es elque determinará la tensión.La unidad de medida es el Voltio ovolt (V). Una pila AA alcalina tieneuna tensión de 1,5 V. En las tomaseléctricas de nuestras casas solemostener 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.

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 250

Page 253: Robotica [Users]

Resistividad / ResistenciaLa resistividad de un material es la pro-piedad que tiene de oponerse al pasode 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 resistividaddel 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 elOhm (Ω). Al inverso de la resistividadse lo llama conductividad.

Ley de OhmUna de las leyes más importantes dela 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 formadirectamente proporcional. El co-ciente que obtenemos entre tensióny 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 losparámetros si conocemos los otrosdos. Por ejemplo, la fórmula V=R*Inos permite calcular cuántos voltioscae la tensión a lo largo de un con-ductor con resistencia.

Componentes que utilizamosen nuestros circuitosA continuación vamos a describir loscomponentes 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 ocontrol. Esencialmente, son los gene-radores eléctricos, los diodos y ciertossemiconductores. 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 algunoscomponentes que hemos utilizado.

ResistenciaEs un componente pasivo que ubi-camos en el paso de una corriente yque se opone a que ésta circule. Se re-presentan con la letra R y su valor semide en Ohms o en sus múltiplos,KiloOhms (1 KΩ = 1000 Ω) o Me-gaOhms (1 MΩ = 1000 KΩ). Hayuna 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.

La electrónica

251

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 251

Page 254: Robotica [Users]

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 elvalor 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 obtenerel valor final. Por su parte, el cuartodígito representa la tolerancia delcomponente (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 algunosejemplos que nos permiten compren-der cómo se interpretan los colores delos 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. Lasvariables, en cambio, pueden modi-ficar su valor de resistencia por unajuste humano o por algún elementodel circuito o del ambiente. Éstas úl-timas también se usan como senso-res, dado que alteran su comporta-miento por factores externos. Porejemplo, tenemos resistencias varia-bles de presión, de luz (que ya hemosvisto), de temperatura, etcétera.Cuando soldamos una resistencia de-bemos tener cuidado porque el calorpuede modificar sustancialmente sucapacidad resistiva. Por eso es aconse-jable soldarlas con rapidez y utilizaralgún disipador que permita dismi-nuir el calor que recibe la resistencia.

Capacitor (Condensador)Es un componente que almacenaenergía en forma de campo eléctri-co. Está formado por dos placas metá-

A. CONCEPTOS BÁSICOS DE ELECTRÓNICA

252

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 252

Page 255: Robotica [Users]

licas separadas por un aislante conoci-do como dieléctrico. La unidad demedida 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áximatensión que soporta. Nunca debemosconectar un capacitor a un voltaje su-perior porque puede explotar.En los capacitores también encontra-mos fijos y variables. Con respecto alos fijos, la diferencia entre ellos de-pende del dieléctrico que utilizan. Novamos a entrar en detalles, pero las ca-racterísticas que difieren entre ellos porel tipo de dieléctrico son esencialmen-te la capacidad, la fuga, la resistencia alos cambios de voltaje y la robustez. Enparticular, los capacitores electrolíticos(Figura 4) son polarizados, y hay quetener en cuenta cómo los conectamos(dónde ponemos el positivo y dóndeel negativo) porque una conexión in-vertida los puede hacer explotar (tie-nen una válvula de seguridad que loshace bullir en lugar de explotar, conesa imagen tan característica de un ca-pacitor al que se le ha salido la tapa dela 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, quepermiten un ajuste muy fino.

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 lacapacidad es menor a 1uF, se usa la uni-dad picoFaradio (pF) y se expresa en elcomponente con el valor completo si espequeño, o con una notación de 3 nú-meros en caso contrario. Los dos pri-meros representan su valor, y el terceronos 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.

La electrónica

253

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 253

Page 256: Robotica [Users]

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úmero104G, nos indica que tiene una capa-cidad de 100.000 pF y una toleranciadel +/- 2%. Si encontramos otro con332, representa 3.300 pF, sin infor-mación de la tolerancia.

DiodoEl 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 muybaja. También se lo conoce como rec-tificador, dado que puede convertiruna 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 alde una lámpara eléctrica. Tienen unfilamento (el cátodo) por donde cir-cula la corriente que los calienta. Alocurrir esto, comienzan a emitir elec-trones al vacío que los rodea. Estoselectrones se dirigen hacia una placacargada positivamente (ánodo), y selogra así el pasaje de corriente. Si elcátodo no se calienta, nada de estofunciona. Por ende, los circuitos quelo usan necesitan de un tiempo pa-ra aumentar la temperatura antes deprestar su servicio. Por otra parte, enel pasado se quemaban muy segui-do. Por suerte, los diodos han evo-lucionado notablemente y ahora nopresentan estas dificultades.

A. CONCEPTOS BÁSICOS DE ELECTRÓNICA

254

Figura 5.

En esta imagen

vemos un

capacitor

cerámico.

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 254

Page 257: Robotica [Users]

Existen diversos tipos de diodos. Elled (Light Emmiting Diode, diodoemisor 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 quelo rodea sino del material empleadoen 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 logradoleds azules, con lo cual podemos cre-ar cualquier color con la combina-ción de rojo, verde y azul. El voltajede operación de un led varía entre 1,5V y 2,2 V, la intensidad varía entre 10mA y 20 mA en los rojos, y entre 20mA y 40 mA en los otros.

TransistorEl 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 el100% de los productos electrónicosque nos rodean. Fue creado en los la-boratorios de Bell en 1947 como re-

emplazo del triodo (una válvula detres patas con las mismas funcionespero con los problemas que ya vimosque presenta ese componente). El máscomún (y que nosotros usamos ennuestros circuitos) tiene tres patitas,que se conocen como emisor, colec-tor y base. En forma simplificada, lacorriente que aplicamos en el colectorsale amplificada en el emisor si es quela base recibe corriente continua. Esmá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 suselectrodos. En el primer caso, la baseva a positivo y el emisor a negativo, yes al revés en el otro caso, como po-demos ver en la Figura 7. Además, enNPN, el colector debe ser más positi-vo que la base y en PNP, más negati-vo. La aparición del transistor fue unsalto muy significativo para la electró-nica digital, en reemplazo de las vál-

La electrónica

255

PNP

ColectorBase

Emisor

PNP

ColectorBase

Emisor

Figura 7. Un transistor y los símbolos para NPN

(en el que la flecha va hacia fuera) y PNP.

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 255

Page 258: Robotica [Users]

vulas de vacío y el surgimiento de apa-ratos electrónicos de menor tamaño,costo y temperatura. Luego, con elsurgimiento de los integrados, estascaracterísticas se acentuaron aún más.

Circuitos integradosComo bien dice su nombre, es uncircuito plasmado en una pequeñapastilla 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ónde tamaño de los integrados, día adía se mejoran los materiales y lastécnicas de fabricación, lo que per-mite el crecimiento del número decomponentes del circuito. Su inven-tor, Jack Kilby, recibió el premioNobel 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 fundamentalesAhora 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 armarnuestro pequeño taller de electróni-ca y así llevar a nuestros primeros ro-bots a buen puerto.

● Estaño: recomendamos el que tienealmas de resina, en forma de alam-bre, de 0,8 mm de grosor, 60% deestañ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 conun soldador de 35 a 40 W con unapunta 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 esque tarda en levantar temperatura,pero sólo nos consumirá un po-quito de paciencia.

A. CONCEPTOS BÁSICOS DE ELECTRÓNICA

256

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 256

Page 259: Robotica [Users]

Figura 10. Soldador tipo lápiz.

● Soporte de soldador: si no quere-mos dejar marcas en todas las mesassobre las que trabajemos, el soportede 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 deestaño que nos permite, en formasencilla cuando queremos corregir odesoldar un componente, aspirar rá-pidamente el estaño cuando se ablan-da. En nuestros primeros fracasoscuando soldemos, se convertirá en unaliado fundamental (Figura 12).

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 unaposición cómoda. Con alguno de es-tos implementos podemos ubicarlasen el aire y sin contactos molestos.

● Pinzas y alicates: permiten tomarobjetos 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 nuestrotaller, nos permitirá medir la conti-nuidad, la resistencia, la corriente y latensión de nuestro circuito (Figura 13).

Por último, recomendamos buscar unlugar cómodo para poder trabajar, don-de podamos dejar nuestro proyecto amedio terminar sin tener que guardar-lo y sacarlo cada vez. Es necesario queseamos ordenados con nuestros com-ponentes, y para ello podemos utilizardiversas cajitas que nos permitan clasi-ficar los elementos para encontrarloscon rapidez cuando los necesitemos.Tener todos los componentes en unfrasco nos hará perder mucho tiempo.

La electrónica

257

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 257

Page 260: Robotica [Users]

Consejos para soldarPara finalizar este apéndice, daremos al-gunos consejos útiles para soldar, dadoque todo error que cometamos en estepunto hará que detectar dónde se pro-duce la falla sea mucho más complica-do. Además, una soldadura mal hechapuede ocasionar problemas en el cir-cuito en un momento inesperado. Uno de los errores más habituales es elde la soldadura fría, que ocurre cuan-do no aplicamos el calor en forma co-rrecta y el estaño está soldado en formaparcial y muy débil. Para evitarlo, de-bemos usar un soldador con la poten-cia adecuada para el tipo de estaño queutilicemos. También el estaño debe serel adecuado para las uniones que reali-cemos. Todas las superficies que una-mos deben estar limpias, igual que la

punta del soldador. Cuando aplicamosel estaño, lo debemos hacer sobre la su-perficie calentada y no sobre la puntadel soldador. Una característica que po-demos usar para verificar la calidad denuestra soldadura es su color: si su aca-bado es brillante, es un buen signo. Launión mate nos indica una posible sol-dadura fría. Otro problema habitual escreer que el estaño nos servirá no sólopara la conducción sino también parael sostén mecánico de la unión. Esto noes así. Es fácil de comprobar al ver có-mo se comporta el material cuando lotenemos en el rollo: es blando y muymaleable. Por lo tanto, la unión mecá-nica entre los componentes debe estardada por otros aspectos de la conexión.El estaño sólo sirve para unir de formaeléctrica, pero no de forma mecánica.

A. CONCEPTOS BÁSICOS DE ELECTRÓNICA

258

Figura 13. Tester digital.

11_apendice a_robotica.qxp 24/10/2007 03:32 p.m. PÆgina 258

Page 261: Robotica [Users]

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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected] de sitios 260Aplicaciones útiles 267

12_Apendice B_robotica.qxp 24/10/2007 03:33 p.m. PÆgina 259

Page 262: Robotica [Users]

LISTADO DE SITIOS

Pablinwww.pablin.com.ar

Un buen lugar para profundizar aquellos aspectos vinculados a la electrónica queno hayamos comprendido de nuestro robot. Tiene cursos de programación y pla-nos de circuitos que podemos fabricar para usar en nuestra creación.

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

12_Apendice B_robotica.qxp 24/10/2007 03:33 p.m. PÆgina 260

Page 263: Robotica [Users]

Curso básico de electrónicawww.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ágicofuncionamiento de nuestros circuitos. Comienza con conceptos funda-mentales y recorre una amplia gama de temas electrónicos.

FIRAwww.fira.net

FIRA (Federation of International Robosoccer Association) es una de lasdos 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

12_Apendice B_robotica.qxp 24/10/2007 03:33 p.m. PÆgina 261

Page 264: Robotica [Users]

RoboCupwww.robocup.org

Ésta es la otra liga internacional de fútbol de robots, que incluye competenciasde 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 Institutewww.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 desarrollosen software, con respecto al hardware estos muchachos nos hacen sacar elsombrero. En este sitio podemos encontrar miles de artículos y enlaces pa-ra divertirnos por el resto de nuestras vidas.

B. SITIOS WEB

262

12_Apendice B_robotica.qxp 24/10/2007 03:33 p.m. PÆgina 262

Page 265: Robotica [Users]

Robots en Argentinahttp://robots-argentina.com.ar

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, controladoresy todo lo que necesitemos para construir nuestros robots.

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

Listado de sitios

263

12_Apendice B_robotica.qxp 24/10/2007 03:33 p.m. PÆgina 263

Page 266: Robotica [Users]

Atmelwww.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 podemosencontrar toda la información sobre los micros que algunos prefieren porsobre los PICs por sus cualidades y buen precio.

FIRSTwww.usfirst.org

Sitio de la competencia FIRST (For Inspiration and Recognition of Science andTechnology). 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.

B. SITIOS WEB

264

12_Apendice B_robotica.qxp 24/10/2007 03:34 p.m. PÆgina 264

Page 267: Robotica [Users]

Laboratorio de robótica del MIThttp://robots.mit.edu

El MIT tampoco es un mal lugar para investigar sobre estos temas. En estesitio 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 UAIwww.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 laeducación y para ello trabajamos mucho en ambientes educativos.

Listado de sitios

265

12_Apendice B_robotica.qxp 24/10/2007 03:34 p.m. PÆgina 265

Page 268: Robotica [Users]

Robocup en el Instituto Tecnológico de Monterreywww.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ódigosfuentes 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.

Wowweewww.wowwee.com

El mayor creador y fabricante de robots de producción masiva. Creadoresdel Robosapiens, Flytech y otros robots que parecen de juguete pero quepermiten desarrollar muchísimas investigaciones con los aspectos mecáni-cos y electrónicos solucionados.

B. SITIOS WEB

266

12_Apendice B_robotica.qxp 24/10/2007 03:34 p.m. PÆgina 266

Page 269: Robotica [Users]

Aplicaciones útiles

267

APLICACIONES ÚTILES

Microsoft Robotics Studiohttp://msdn.microsoft.com/robotics/

Entorno de robótica basado en Windows para desarrollos académicos, hobbistasy comerciales. Permite vincularse con diversas plataformas de hardware y cuen-ta con un motor de simulación basado en física muy potente.

Proyecto Rossumhttp://rossum.sourceforge.net/

Rossum es un proyecto para el desarrollo open source de plataformas desoftware para robótica. Ya está en funcionamiento un simulador donde po-demos poner en práctica nuestros conocimientos.

12_Apendice B_robotica.qxp 24/10/2007 03:34 p.m. PÆgina 267

Page 270: Robotica [Users]

B. SITIOS WEB

268

Webotswww.cyberbotics.com

Webots es el software comercial más popular de prototipación y simulaciónde robots móviles. Puede vincularse con diversas plataformas de hardware, demanera 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.

CCSwww.ccsinfo.com

Si el Basic no nos alcanza, aquí podemos encontrar diversos compiladorespara PIC. Tenemos versiones para los micros más importantes de Micro-chip. En todos los casos, están basados en el lenguaje C. Podemos usarlosen línea o con una IDE en Windows muy potente.

12_Apendice B_robotica.qxp 24/10/2007 03:34 p.m. PÆgina 268

Page 271: Robotica [Users]

Servicios al lectorEn 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.

Robótica

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Bibliografía 270Indice temático 275Equivalencia de términos 277Abreviaturas comúnmente utilizadas 279

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 269

Page 272: Robotica [Users]

BIBLIOGRAFÍA

GeneralSantos, 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 1Zabala, 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.

SERVICIOS AL LECTOR

270

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 270

Page 273: Robotica [Users]

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áginaweb: http://robotec11.tripod.com/id4.html.

Capítulo 2Lindsay, 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 3Zabala, 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 4Upadhye, 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.

Bibliografía

271

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 271

Page 274: Robotica [Users]

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 5MikroElektronika (2006). Manual del usuario de mikroBasic. Belgrado: mikroElektronika.

Capítulo 6Wikipedia. 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. Seminariode 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.

SERVICIOS AL LECTOR

272

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 272

Page 275: Robotica [Users]

Capítulo 7Abad 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 8Lober, 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.

Bibliografía

273

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 273

Page 276: Robotica [Users]

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 9Zabala, 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 10Martins da Silva Aparicio, P. M. (2000). Design and implementation ofa 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 AGonzá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 dewww.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.

SERVICIOS AL LECTOR

274

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 274

Page 277: Robotica [Users]

ÍNDICE TEMÁTICOA

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

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

Índice temático

275

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 275

Page 278: Robotica [Users]

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

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 276

Page 279: Robotica [Users]

Equivalencia de términos

277

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

EQUIVALENCIA DE TÉRMINOS

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 277

Page 280: Robotica [Users]

SERVICIOS AL LECTOR

278

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,

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

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 278

Page 281: Robotica [Users]

Abreviaturas comúnmente utilizadas

279

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

ABREVIATURAS COMÚNMENTE UTILIZADAS

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 279

Page 282: Robotica [Users]

SERVICIOS AL LECTOR

280

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

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

13_Apendice C_robotica.qxp 24/10/2007 03:49 p.m. PÆgina 280

Page 283: Robotica [Users]

usershop.redusers.com

V i s i t e n u e s t ro s i t i o w e b

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

Revise que haya un cuadro"sobre el autor", en el que seinforme sobre su experienciaen el tema. En cuanto a la editorial, es conveniente quesea especializada en computación.

Preste atención al diseño

Compruebe que el libro tengaguías visuales, explicacionespaso a paso, recuadros coninformación adicional y grancantidad de pantallas. Su lectura será más ágil y atractiva que la de un libro de puro texto.

Compare precios

Suele haber grandes diferencias de precio entrelibros del mismo tema; si notiene el valor en la tapa, pregunte y compare.

¿Tiene valores agregados?

Desde un sitio exclusivo en laRed hasta un CD-ROM, desdeun Servicio de Atención alLector hasta la posibilidad deleer el sumario en la Webpara evaluar con tranquilidadla compra, o la presencia debuenos índices temáticos,todo suma al valor de unbuen libro.

Verifique el idioma

No sólo el del texto; tambiénrevise que las pantallasincluidas en el libro estén en el mismo idioma del programa que usted utiliza.

Revise la fecha de publicación

Está en letra pequeña en lasprimeras páginas; si es un librotraducido, la que vale es lafecha de la edición original.

1

2

3

4

5

6

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-4120MÉXICO & (55) 5350-3099, desde el interior sin costo al 01-800-2888-010e-mail a: [email protected]

381-388_Catalogo155x220.qxd 10/23/07 10:57 PM Page 381

Page 284: Robotica [Users]

Visite nuestro sitio en la Web

>> usershop.redusers.com

Redes GNU/Linux

En las páginas de este libro encon-traremos un recorrido por aquellostemas vinculados al armado de redesprofesionales, y descubriremos ca-da una de las herramientas queGNU/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 yatienen alguna experiencia y deseandominar 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 losconceptos vinculados a la planifica-ción, instalación y puesta en funcio-namiento de una red en una empresapequeña utilizando Windows SmallBusiness 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 mejormaterial para estar actualizados conlas últimas tecnologías, herramientasy recursos del mundo de la progra-mación. 256 páginas a todo color dondelos expertos desarrollan los conceptosfundamentales 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 volverlomás seguro, aumentar el rendimientodel equipo, habilitar funciones espe-ciales y automatizar tareas cotidianas,son sólo algunos de los objetivos quelograremos 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 > > > > > > > > > > > >

381-388_Catalogo155x220.qxd 10/23/07 10:57 PM Page 382

Page 285: Robotica [Users]

¡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 >> [email protected]

Excel 2007Este manual brinda los conocimientosnecesarios para dominar la nueva ver-sión de Excel. Está destinado tanto aquienes nunca utilizaron Excel, comotambién a quienes buscan conocer ydominar 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 acrear 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 computadoraespecialmente en la oficina o en sucasa 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 VistaEste manual contiene un material imper-dible para aprovechar al máximo todo elpotencial del nuevo Windows Vista. Ensus páginas encontraremos cientos detrucos, claves y secretos para dominarnuestra PC en el trabajo y el hogar conel nuevo sistema operativo.

> COLECCIÓN: MANUALES USERS> 384 páginas / ISBN 978-987-1347-40-7

Videojuegos

En este libro encontrará todas lasclaves para aprender a programar unvideojuego desde cero utilizando Visu-al C++ Express. Un material imperdiblede principio a fin para quienes quierenhacer 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

> > > > > > > > > > > >

381-388_Catalogo155x220.qxd 10/23/07 10:57 PM Page 383

Page 286: Robotica [Users]

Visite nuestro sitio en la Web

>> usershop.redusers.com

Redes avanzadasUn libro especialmente pensado parainstalar, configurar y administrargrandes redes. Siguiendo un ejemploconcreto, veremos todos los pasos aseguir para comprar el equipamiento,instalar el cableado, configurar losservidores y administrar la red

> COLECCIÓN: MANUALES USERS> 256 páginas / ISBN 978-987-1347-36-0

Técnico en RedesEste libro brinda los conocimientosnecesarios para planificar, instalar,configurar y administrar redes decomputadoras 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 FlashEsta obra está destinada a usuariosque no conocen Flash y desean dom-inarlo, y a quienes buscan conocer lospasos a seguir para hacer que un sitioweb luzca profesional. El material máscompleto sobre la herramienta elegi-da por los profesionales.

> COLECCIÓN: MANUALES USERS> 384 páginas / ISBN 978-987-1347-34-6

3D Max MasterEn las páginas de este libro encon-traremos un recorrido por aquellostemas vinculados al armado de redesprofesionales, y descubriremos ca-da una de las herramientas queGNU/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 PCEste libro nos ofrece las herramientasteóricas y prácticas necesarias parapoder componer y grabar música porcomputadora. Cada capítulo contieneideas 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.0Este manual nos brindará los conoci-mientos y las herramientas necesa-rias para implementar soluciones ba-sadas en Ajax. Veremos los lenguajesJavaScript, PHP, .NET, Java, XML, yJSON. Conceptos teóricos y casosprá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 > > > > > > > > > > > >

381-388_Catalogo155x220.qxd 10/23/07 10:57 PM Page 384

Page 287: Robotica [Users]

¡GRATIS LÉALO ANTES! >> En nuestro sitio puede obtener en forma gratuita un capítulo del libro que quiera.

Visual Basic 20055En este libro encontraremos los prin-cipales conceptos de .NET y VisualBasic: .NET Framework, control deerrores, orientación a objetos, desa-rrollo de aplicaciones Windows yWeb, acceso a datos con ADO.NET ytodo lo que necesita el desarrollador

> COLECCIÓN: MANUALES USERS> 368 páginas / ISBN 978-987-1347-32-2

Grabación de CDs y DVDsUn 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áximorendimiento; y el software y los secre-tos de los expertos para exprimir lagrabadora al máximo.

> COLECCIÓN: MANUALES USERS> 353 páginas / ISBN 978-987-1347-31-5

Gestión empresarialEl objetivo de esta obra es brindar lashabilidades necesarias para la elabo-ración de proyectos que permitan me-jorar la gestión de la empresa utilizan-do Microsoft Excel, una herramientaindiscutida para llevar a cabo estatarea en la compañía.

> COLECCIÓN: PROFESSIONAL TOOLS> 272 páginas / ISBN 978-987-1347-30-8

HardwareEste manual brinda las habilidades pa-ra dar solución a los problemas quepueda tener una PC. Una obra a todocolor, con ilustraciones y fotografíasde los procedimientos, que no puedefaltar 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 videoEn este manual encontrará las clavesy los secretos para procesar un videodesde cero. Desde la captura de lasimá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 WebA través del desarrollo de proyectos,esta obra combina todo el potencialde cuatro poderosas tecnologías:Flash del lado del cliente, PHP del la-do del servidor, XML como nexo entrecliente 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 >> [email protected]

381-388_Catalogo155x220.qxd 10/23/07 10:57 PM Page 385

Page 288: Robotica [Users]

I Un servicio exclusivo para responder a sus consultas sobre nuestros productos > > > > > > > > > > > >

Visite nuestro sitio en la Web

>> usershop.redusers.com

Photoshop MasterEste manual explica los mayores secre-tos de esta poderosa herramienta paracrear 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 enel desarrollo, diseño y administraciónde Web Services empleando C#.

> COLECCIÓN: MANUALES USERS> 368 páginas / ISBN 987-1347-11-1

Actualizar la PCEste libro es el mejor material paraaprender a actualizar nuestra PC des-de cero. Descubriremos cómo evaluarlas características técnicas de cadaequipo, y reemplazar los componen-tes internos y los periféricos, sin tenerconocimientos previos.

> COLECCIÓN: MANUALES USERS> 320 páginas / ISBN 987-1347-10-3

DirectXEn este libro se abordan los conceptosfundamentales vinculados a la progra-mación de gráficos 3D con DirectX, elAPI más utilizado para el desarrollo deaplicaciones interactivas y videojue-gos. Técnicas y procedimientos paracrear objetos 3D profesionales.

> COLECCIÓN: MANUALES USERS> 320 páginas / ISBN 987-1347-04-9

101 secretos de WindowsUna obra imperdible con más de 100trucos que nos permitirán personali-zar y optimizar el funcionamiento deWindows 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 WebCon este manual aprenderemos a di-señar y armar sitios web utilizando Fi-reworks, Flash y Dreamweaver. Cómoplanificar y armar la estructura de laspá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

381-388_Catalogo155x220.qxd 10/23/07 10:57 PM Page 386

Page 289: Robotica [Users]

> > > > > > > > > > > > Servicio de Atención al Lector >> [email protected]

¡GRATIS LÉALO ANTES! >> En nuestro sitio puede obtener en forma gratuita un capítulo del libro que quiera.

ADO.NETCon el objetivo fundamental de apro-vechar las optimizaciones que existenen cada una de las versiones deADO.NET, este libro brinda las habilida-des necesarias para introducirse enlas 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 HardwareEsta obra brinda las habilidades nece-sarias para diagnosticar y reparar fa-llas de hardware. Imprescindible pa-ra hacer frente a conflictos con elmotherboard, el microprocesador o lamemoria; 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 WindowsEn esta obra se desarrolla el caminoa seguir para implementar la soluciónadecuada 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 unté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 seabordan dos etapas clave del ciclo devida 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

PHP5PHP es uno de los lenguajes de pro-gramación elegidos a nivel mundialpara el desarrollo de sitios web. Estemanual brinda el conocimiento paracomprender las mejoras introducidasen 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 PCVirus, spyware, troyanos y muchasamenazas más circulan por la Webbuscando nuevas víctimas. ¿Cómoevitar intrusiones? ¿Cómo eliminar elspam? En este libro, las respuestas aestas preguntas y los fundamentospara evitarlas en el futuro.

> COLECCIÓN: MANUALES USERS> 352 páginas / ISBN 987-22995-4-4

381-388_Catalogo155x220.qxd 10/23/07 10:57 PM Page 387

Page 290: Robotica [Users]

Visite nuestro sitio en la Web

>> usershop.redusers.com

Linux para todosEsta obra explica, desde cero, cómoinstalar y configurar Linux en nuestraPC. 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áticos256 páginas destinadas a conocer lossecretos 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 JavaEste libro brinda las herramientas ne-cesarias para convertirse en un ver-dadero experto en el desarrollo deaplicaciones web con Java. Destina-do a todos aquellos desarrolladoresque 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 SoftwareEn este libro encontrará los tutorialesde las mejores herramientas, trucos ysecretos para aprovechar al máximosu computadora. Explicaciones deta-lladas, con divisiones por categoríaspara 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

FreewareUna recopilación de los mejores pro-gramas de licencia libre, explicadosen detalle. Guías visuales y procedi-mientos paso a paso para llevar el usode la PC a una nueva dimensión. En elCD incluido en el libro encontrará losprogramas listos para su instalación.

> COLECCIÓN: USERS EXPRESS> 368 páginas / ISBN 987-526-370-2

Mi PC256 páginas que lo introducirán en elmundo de la informática. Sepa cómomanejarse en el entorno Windows, yaprenda a configurar sus principaleselementos y aplicaciones. Entiendacó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

381-388_Catalogo155x220.qxd 10/23/07 10:58 PM Page 388

Page 291: Robotica [Users]

Untitled-4 1Untitled-4 1 06/11/2009 17:24:5506/11/2009 17:24:55

Page 292: Robotica [Users]

APRENDA A ARMAR ROBOTS DESDE CERO

¡CONVIERTA SUPASIÓNEN REALIDAD!

EL MONTAJE DE LA PIEZAS● Las partes que componen un robot● Los pasos para ensamblarlas

Gonzalo Zabala

LA INTELIGENCIA● Trabajar con microcontroladores● Lenguajes de programación

ROBOTS AUTÓNOMOS● Utilización de sensores● Mecanismos para generar movimiento

Guía Teórica y PrácticaRO

BOTIC

AG

uía

Teór

ica

y Pr

ácti

ca

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ítulointentaremos responder éstas y otras preguntas.

2 | COMPONENTES DEL ROBOTTipos de procesamiento | ¿Cómo le damos movimientoa nuestro robot? | ¿Cómo captamos el mundo que nosrodea? | Materiales para la mecánica

3 | LA INTELIGENCIA DEL ROBOTComponentes de nuestro robot | Objetivos delcontrolador | Conceptos fundamentales de un PIC |Listado de componentes del controlador | Descripcióndel circuito | Placa experimental | El programador

4 | COMIDA DE ROBOTSLa 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 ROBOTLenguajes de programación para robots | PicBasic Pro |Compilador CCS C | MikroBasic

6 | RECORRER EL MUNDOEl movimiento de los robots | Motor de corrientecontinua | Motor paso a paso | Servos

7 | ADAPTACIÓN AL ENTORNOSensores analógicos y digitales | Tipos y características

8 | EL CUERPO DEL ROBOTCaracterísticas de un robot autónomo | Robots aéreos |Robots subacuáticos | Robots terrestres | Sistemas conruedas | El montaje de los elementos | Mecanismos detransmisión y reducción | Cinemática | Odometría

9 | SALIR AL RUEDOPresentarnos a competir | Problemas frecuentes |Pruebas tradicionales

10 | FÚTBOL DE ROBOTSArquitectura y navegación de los robots | Sensado ydetección del ambiente | Comportamiento colaborativo| Ligas nacionales e internacionales

APÉNDICE | LA ELECTRÓNICA

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.

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.

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.

ROBOTICS

redusers.com

APRENDA A ARMAR ROBOTS DESDE CERO

NIVEL

EXPERTO

AVANZADO

INTERMEDIO

PRINCIPIANTE

opcion2.qxp 16/11/2009 12:51 Página 1