You are on page 1of 147
Guia Teorica y Practica EL MONTAJE DE LA PIEZAS @ Las partes que componen un robot @ Los pasos para ensamblarlas LA INTELIGENCIA @ Trabajar con microcontroladores @ Lenguajes de programaci6én ROBOTS AUTONOMOS @ Utilizacion de sensores @ Mecanismos para generar movimiento Gonzalo Zabala APRENDA A ARMAR ROBOTS DESDE CERO RNS en En nuestro sitio pyede obteper, en fprma gratuita ros de COMPUTACION oS SR etry si L_| Se Pad ‘USERS power Programacién de 5 Videojuegos F | REPARACION de B) | COMPONENTES i € SRS AAS EE Uy iHAGALO USTED MISMO! Poetry] Pont ee eee 0s libros incluyen quias visuales, explicaciones paso a paso, recuadras complementarios,ejercicios, OAC TOR CUCU een Lee Semeur esi ckn pace eRe Le ae con nosotros! <=" © qpano-r00 Tedusers.COM cou, ¥ “mexico ae MAUNA UE TTT} Seen reese Ta ee Lc iadaaad tea ee Te 0 por e-mail a: lectores @redusers.com ——— ii r . HUSH CS em Se & Léalovantes (74) (is! Weg’ En nuestro sitio pyede obteper, en forma - libros rity KI} tl ay) ati iM > > un capitulo de ca on libros:| usershop.redusers.com Or Per Videojuegos REPARACION de COMPONENTES -— Cs EL SUENO DE TODO DESARROLLADOR NO aS Dente rn te seers) WANUALES USERS | 320 paginas | ISBN 987-525-287 FO NC ena SET CMO ee a ces losarns,atajs de teclado y todas los elementos necesarios para asegurar un aprendizaj exitoso y estar eee nears _ nosotros: am CHILE © (2810-7400 pore Pa UPC LIEU) RO eet aT Ce en ee eer Pre enn et ae eee TiTuLo: ROBOTICA AUTOR: Gonzalo Zabala COLECCION: USERS Express FORMATO: 22x185 0m PAGINAS: 288 Copyright © MMVI Es une publicacion de Gradi S.A. Hecho el depésito que marca la ley 1172. Todos los derechos reservados. No se permite lareproduccion parcial o {otal el almacenamiento, el alqiler, la transmisiono la transformacién de este iro, en cualquier forma o por cualquier medio, sea electrénico 0 mecénico, mediante fo- tocopias,cgitaizacién u otros métodos, sin el permiso previo y escrito del editor. Su infraccin esté penada por as ayes 11723 y 2546. Le editorial no asume responsa bildad alguna por cualquier consecuencia derivada de la fabricacién, funcionamien- to y/o utiizacién de los servicios y productos que se describen y/o analzan. Todaslas ‘marcas mencionadas en este libro son propiedad exclusiva de sus respectvos duo- fos. Impreso en Argentina. Libro de edicin argentina. Primera impresionrealizada en Sociedad Impresora Americana, Lavardén 189/57, Buenos Aires, Argentina, ISBN 978-987-1347-56-8 Zabala, Gonzalo Robética, - 1a ed. - Banfield - Lomas de Zamora: Gradi, 2007 288 p.; 22x 16 cm. (Users Express; 23) ISBN 978-987-1347-56-8 1. Informatica, | Titulo cop 005.3, PREUMINARES Sobre el autor _ mer Gonzalo Zabala Agradecimientos Profesor de Ensefianza Primaria (Normal No. 1) y Licencias do en Ciencias de la Computacién (UBA, Ciencias Exactas), ha conjugado ambas vocaciones en la educacién tecnolégi y el uso de tecnologia para la educacién. Trabajé durante mus chos afios como docente de diversas ramas de la informatica, y a fines del siglo pasado comenzé a usar robots para la ena sefianza de programacién. En el afio 2000 cred la Roboliga, Olimpfada Argentina de Robstica, que ya lleva siete eventos con participacién de alumnos y docentes de toda la Argentia na. En 2004 ingres6 en el Centro de Investigaciones de la Fae cultad de Tecnologia Informatica de la Universidad Abierta Interamericana, donde creé el Grupo de Investigacién de Robética Auténoma. Fue coordinador de diversos equipos de alumnos que han participado en forma nacional ¢ interna= Son muchas las personas que entran en juego en la confeccién de un libro, gunque luego aparezca s6lo una en la tapa. Aquf mencionaré a algunas de tdlas, pero seguramente me olvidaré de muchas més, que espero que me perdonen y me lo recriminen, para no olvidarme la préxima vez ‘Antes que nada, quiero agradecerles a Néstor Balich y a Gonzalo Mon por Ia colaboracién en los capitulos en los que estén mencionados, en especial a Néstor por su aporte del controlador y por todas las dudas que disips cuando probébamos las cosas. Ora heroina es Iris, mi compa ma, que soporté abandonos familiares y responsabilidades extras para de- jarme tiempo libre para escribir el libro, ra del al- Un capitulo aparte merecen Paula Budris y Diego Spaciuk por aceptar mis constantes incumplimientos, por alentarme cuando me queria bajar del cional en competencias de robstica, y obtuvicron excelentesf tren y por guiarme en todo este camino resultados en ftitbol de robots y prucbas de rescate. Actuals mente, continta 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 pais, co- ordinador del Campeonato Argentino de Fuitbol de Robots, miembro del Consejo Latinoamericano de RoboCup y Co- chair de la categoria SimuroSot de la FIRA. También quiero agradecerles a Dario Cardacci y a Carolina Soleil del CAETI (Centro de Investigaciones en Tecnologia Informética de la UAI), que también soportaron incumplimientos de mi parte para que yo llevara adelante esta tarea. Por tiltimo, agradezco a todos mis alumnos de estos afios, porque gran parte de lo que aprendi fue gracias a sus preguntas. Para ellos, mi més dulce recuerdo. Dedicatoria A Laura y Gastén, porque sus constantes preguntas me ha- e180, cen pensar una y otra vez mi impreciso modelo del uni A Ignacio Luppi, porque es un mago que logra que sus alumnos construyan robots maravillosos de la nada Y a Marcelo De Vincenzi, porque me abrié las puertas para que continuara mis investigaciones en este maravi- loso mundo de la robstica. Y porque disfruta de todo es to mas que cualquiera de nosotros. é sang 5 PRELIMINARES Prologo Si Ud. tiene este libro en sus manos, es por alguna 0 algunas de las sigui tes razones: a) Ha sido alcanzado por el suefio eterno de la humanidad de crear um a su imagen y semejanza. b) Desea bajar los costos de produccién de su industria, para darles horas libres a sus fieles obreros. ©) Quiere entender de qué hablan sus hijos 0 nietos cuando estan reuni en la mesa, y dejarle de temer a ese ser espeluznante que de vez en le habla con voz metilica y le solicita un hueso, una pelotita o simy mente que lo enchufen para recargar sus baterias 4) Quiere armar, de una vez por todas, un robot que funcione, que siga linea o la pelota, que busque la luz, sin tener que comprar 999 fasci los con destino incierto. Aunque este libro les serd de utilidad a los tres primeros grupos, segul mente el que quedara mas conforme es el lector que pertenece al tiltimo ellos. Nuestro objetivo es poder describir, paso a paso, la electronica, mecénica y la programacién necesarias para poder construir un robot s cillo y de bajo costo, que permita realizar tareas simples en forma aut6i ma. Para ello, presentaremos todos los aspectos esenciales que conform: la arquitectura de un robot, inclusive més alli de los que neces ro modelo, de manera tal que el lector pu perfeccionar su creacién con nuevos sensores, actuadores y procesadores itaremos ra la construccién de nues Nuestro punto de partida seré minimo, pero es necesario cierto cono miento basico (muy bdsico) de programacién para poder definir el co portamiento del robot. Para este fin, hemos elegido un lenguaje tan sen Ilo como el Basic, pero dado que no es un libro de programacién, le de caremos pocos capitulos a este aspecto. El uso de estructuras de decisi6 de ciclos de repeticién y el manejo de variables sencillas es el requerimi to para poder comprender los algoritmos presentados sin problemas También es bueno tener una base de electré: imprescin ble. De hecho, si no tiene ningtin conocimiento en este campo, probabll a, aunque no es Prologo aE enxe le parezca mégico el funcionamiento de ciertos aspectos del robot. Sin sae pgo, como seguiemos la descripcién dela construcién de forma deta- el = = £ ‘ dp, pods construiro sin saber el por que profundo de esa construccién, Con respecto ala mecénica, nuestro robot es tan sencillo que no necesita- mos ningiin conocimiento vinculado a ese tema. Si en algtin momento nos gncontramos cn una lucha de sumo de robots, con seguridad los que se- wan mas de mecénica nos vencerdn pero, para seguir una linea, basta con iicar las ruedas en forma razonable. Bienvenido entonces, estimado lector, a esta nueva aventura. Es nuestro profundo deseo que al finalizar estas paginas, tenga dando vueltas por su casa un pequefio robot independiente y que nos podamos encontrar en al- una de las tantas competencias de robstica que existen en nuestro pais (jo en el planetal). Y por qué no, que un dia, al golearnos con su equipo de robots en un partido de cinco contra cinco, nos honre al contarnos que st primera experiencia fue con esta humilde obra. Le podemos asegurar que ese dia, a pesar de la derrota, jtocaremos el cielo con las manos! Lic. Gonzalo Zabala y colaboradores. PRELIMINARES El libro de un vistazo La robstica 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 capitulos estudiare-. ‘mos paso a paso los elementos necesarios para llevar a cabo esta tarea con éxito eapltul ET Se 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 basica de un robot e intoduci- remos la terminologia que utilizaremos. leapilet 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. Aqui presentaremos el proyecto y prepararemos los implementos necesarios. Introduciremos el microcontro- lador, los motores, los sensores y los mate riales para construir la carcasa. CapllaleS URIBE Teg LA INTELIGENCIA DEL ROBOT Empezamos la construccién de nuestro ro- bot por la parte mas 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. El libro de un vistazo gesensores (0s probaremos con nuestro fitbol de robots, Explicaremos el por qué fentroiador. Del mar de componentes digi- de tanta pasién y cémo podemos usar fates y analdgicos, seleccionaremos un nuestro robot para participar de compe- gubconjunto para aplicarlo a nuestro robot. tencias nacionales e internacionales pied FETS SS ELCUERPO DEL ROBOT CONCEPTOS BASICOS DE ELECTRONICA Eneste punto, tenemos el robot casi termi- Si nos quedan dudas sobre cémo ocurre lo nado pero desmembrado. Qué materiales que hemos visto en este libro, aqui encon- usamos para construir el cuerpo del robot? _traremos material. Desde qué es la electri- {Qué ventajas y desventajas presenta cada cidad hasta la historia y el funcionamiento uno? ,Qué herramientas necesitamos? Aqui de los circuitos integrados, esclareceremos intentaremos responder estas preguntas. _los temas electrénicos fundamentales. COMIDA DE ROBOTS Este es uno de los problemas fundament les de la robstica auténoma, Estudiarem las ventajas y desventajas de los diversos pos de baterias, y seleccionaremos la que nos convenga para nuestro proyecto Mie: SEES edes a SALIR AL RUEDO SITIOS WEB Presentamos desafios y proyectos de apli- como todo esto es el comienzo, presenta- HABLAR CON NUESTRO ROBOT Comenzaremos a programar el controlad ‘eacién con sus respectivas modificaciones __remos una lista de sitios de electrénica y electrénicas, mecénicas y de programacién. robética donde podremos profundizar nues- con un lenguaje tan sencillo como el Basic Analizaremos las caracteristicas de las tros estudios y conocimientos, pruebas de robots auténomos y los proble- mas que hay que enfrentar para superarias. SBSBWEIGS)aUUGEGi nn Veremos las similitudes y diferencias con programacién tradicional y otros lenguaj BIBLIOGRAFIA MEGS como bien decia Newton, podemos ver lejos RECORRER EL MUNDO SUGAR AL FUTBOL porque nos hemos parado en hombros de Dentro de la robética auténoma, uno de loa} Uno de los campos mas atrayentes de gigantes. Aqui presentaremos las fuentes objetivos esenciales es trasladarse en el @plicacidn de la robética auténoma es el _de nuestras investigaciones y estudios. ambiente donde se desarrolla la tarea. Pat ello, tenemos diversos sistemas de locomt INFORMACION COMPLEMENTARIA ome i cin que difieren en costo, eficiencia, ta~ ‘maiio, consumo y otras variables. SENSAR EL MUNDO. sae Aire tds ety, Tenemos que ver qué pasa a nuestro alre- si dedor para no chocarnos, salirnos del ca~ mino 0 perdernos. Analizaremos los tipos PREUIMINARES Contenido Sobre el autor Agradecimientos Prétogo El libro de un vistazo Introduccién 1 CONCEPTOS FUNDAMENTALES Ronan Introduccién a ta robética 16 {Qué es un robot? 16 Tipos de robots 9 Unidades de un robot 2 Procesamiento 2% Sensores 3 ‘Actuadores 39 Resumen 4a Actividades 44 COMPONENTES DEL ROBOT Una mirada global a nuestro futuro robot 46 40 LA INTELIGENCIA DEL ROBOT El cerebro Objetivos de nuestro robot Tipo de procesamiento seleccionado 4Cémo le damos movimiento a nuestro robot? 2¥ cémo captamos el mundo que nos rodea? Materiales para la mecénica Resumen Actividades Componentes de nuestro robot Objetivos del controlador El mierocontrolador, cerebro del cerebro Conceptos fundamentales de un PIC Caracteristicas del PICI6F88 Compatibilidad con el 16F84 Puente H para el control de los motores Wig de componentes : Contador - ee 7 pa n rare n jestro programat ‘Nu 5 fe COMIDA DE ROBOTS: Lafuente de energia 78 Caracteristicas de las celdas de las baterias ” Tipos de baterias 81 Calidad de las baterias 86 Cargadores a7 Ayudar a que no sdlo las baterias duren mas 89 Resumen " Actividades 92 HABLAR CON NUESTRO ROBOT Comunicacién con el robot 14 Lenguajes de programacién Para robots 5 ts: PicBasic Pro Compilador CCS C MikroBasic Editor de cédigo fuente de mikroBasic Explorador de cédigo Depurador Manos a la obra Elementos del léxico Organizacién de los médulos Alcance y visibitidad Variables, constantes y tipos Estructuras Operadores Sentencias Resumen Actividades RECORRER EL MUNDO El movimiento del robot Tipos de motores Motores de corriente continua Contenido aS 8 7 98. 100 103 103 106 108 10 m1 112 115 16 17 123 124 | | _ 126 126 127 Motores paso a paso [Motores PaP} 135 Servos Resumen Actividades 140 145 146 PRELIMINARES Cie SENSAR EL MUNDO ‘Adaptacién al entorno Tipos de sensores Caracteristicas esenciales de los sensores Sensores digitales Los sensores analégicos Tipos de sensores analégicos Resumen Actividades 1468 148 149 152 158 162 165 166 EL CUERPO DEL ROBOT Cuerpo a cuerpo 168 Caracteristicas mecanicas de un robot auténomo Robots aéreos Robots subacuaticos Robots terrestres Sistemas con ruedas Estructura de nuestro robot Mecanismos de transmisién y reduccién Cinematica de un robot Odometria Resumen idades erick, SALIR AL RUEDO Presentarse a competir Peristicas comunes de las derobotsautdnomos 200 FP ppiebes tradicioncles robots auténomos 210 Gjetiailaluz,he visto la uz! 2193 men 219 peat 220 SUGAR AL FUTBOL Fiitbol de robots 222 Garacteristicas del fitbot de robots 222 Ligas nacionales e internacionales de futbol de robots 232 Modificaciones para Que nuestro robot pueda jugar 242 Una pelota infrarroja 2b Resumen 245 Actividades Contenido Eerie CONCEPTOS BASICOS DE ELECTRONICA Laelectrénica 268 Conceptos de electricidad 268 Componentes que utilizamos en nuestros circuitos 251 Herramientas fundamentales 256 Consejos para soldar & Cer eee SITIOS WEB Listado de sitios 260 Aplicaciones 267 Eee Bibliografia 270 Indice tematico 275 Equivalencia de términos 27 Abreviaturas coméinmente utilizadas. 219 13 PREUMINARES Introduccién pobstica Capitulo Decir que la robética es un tema del futuro es una prueba fehaciente de miop| Los robots e ble que asi sea. Desde los lavarropas hasta los vehiculos espaciales utilizan tex logias muy vinculadas con la disciplina. Seguramente, comenzaron con investi Conce tos ciones que en ese momento parecfan desconectadas de la realidad (vieja excusa {Qué es un robot? {Cuando entrando por nuestras puertas, ventanas, cerraduras, y ¢s inevi uslizamos para aquellos que entran a nuestoslaboratorios y nos preguntan gy que hacen para qué sirve2). Es por eso que después de algunos afios de investi cién sobre este tema, y luego de escribir algunos articulos inentendibles, tuvis ganas de abrir el juego. La gente de esta editorial nos invité a presentar el tema forma mds amena y al alcance de més lectores. conviviremos con ellos? {Tendremos Mi relacién con la robética comenzé desde el ambito educativo como un recurso creto y tangible para enseftarles programacién a jévenes entre 13 y 17 afios. En mi periencia como docente de programacién habia llegado a una conclusién terrible: amos a programar, dentro del aula tenemos dos grupos de alumnos. Los entienden todo sin que se les explique demasiado porque tienen una suerte de gen programador y, con sdlo recibir un par de ideas y algunos apuntes, al cabo de un regresaban con un sistema de control de centrales termonucleares. Y el otro con de alumnos, mas abultado, que a pesar de todos los recursos, inventos y triquifiu didécticos, no lograban superar el PRINT “HOLA MUNDO”, Por lo tanto, mi como docente era inttil en los dos casos: en el primer grupo, porque no me necesit diversos tipos de robots entre nosotros? do ens gLavaran los platos? En este primer capitulo intentaremos responder estas yotras preguntas, con el objetivo de entender cuales son ban, y en el segundo, porque no les podfa aportar cosas nuevas. En ese momento mencé a buscar algtin mecanismo para que nadie se diera cuenta de esto y, a com los al a nuacién, un recurso que permitiera mejorar la ensefianza de programacién. Allf es posibles de nuestro crucé con los robots y con los entornos de objetos. Con el primer tema me casé y rimer proyec l segundo tengo una relacién de amante que espero oficalizar en un préximo Lith Primer proyecto robético Tengo la suerte de que en las tiltimas investigaciones que he desarrollado, ambos as objetos. La robotica atisfacciones, me ha permitido viajar a lugares que nunca cref q tos se han unido y manejamos los robots desde un ambiente de ha dado inmensas iba a conocer y ha pagado alguna que otra comida mia y de mi familia. Pero ante t me ha brindado la posibilidad de sorprenderme dia tras dia. Siempre hay algo nu siempre hay otro desafio, Espero que este libro sirva como un punto de partida sen Colaborador: NE. Gonzalo Mon para viajar a obras mucho més completas que nos regalarin experiencias maravillosass iio oc arencion a uecron: lectores@redusers.com 4. CONCEPTOS FUNDAMENTALES INTRODUCCION ALA ROBOTICA Dfa a dia, nos sorprendemos con las noticias que aparecen en los medios de comunicacién vinculadas a la presencia de robots en diversos cam- pos de la vida cotidiana. Robots en- fermeros, mascotas, repositores de supermercados, detectores de explo- sivos, aspiradoras hogarefias, o sim- ples jugadores de fiitbol, son algu- nos de los ejemplos que podemos encontrar en el mercado de la tecno- logia de tiltima generacién. En sintesis, la robética ya no es parte de nuestro futuro sino de nuestro presente tangible, Sin em- Figura 1. Roomba, la aspiradora robotica mas popular y econémica del mercado. 16 bargo, probablemente gracias ala teratura y al cine de ciencia ficei el concepto de lo que es un rol sus posibilidades y sus limitacioy reales estan desdibujados en el i ginario colectivo. Es por eso que este primer capitulo haremos introduccién a los conceptos fun mentales de la robética. iQué es un robot? Suefio de muchas generaciones, explosidn tecnoldgica nos ha pu al alcance de poder concretarlo, Para comenzar nuestro recorri hagamos un repaso de la historia la robstica para comprender ha dénde nos dirigimos. Introducci6n a la robética y semejanza Desde los origenes del hombre, po- Hemos encontrar varios relatos sobre fa ereacion de vida artificial, Por sjemplo, <0 la leyenda del Golem, tin rabino de Praga le infunde vida a {una estatua de barro. Asimismo, en ja obra literaria Frankenstein, el doctor de dicho nombre crea un ser a partir de drganos de otras perso- nas, que luego se vuelve contra él. §{ nos apartamos de la literatura, en elantiguo Egipto encontramos esta- tuas de dioses que incorporaban bra- 20s mecinicos operados por los sa- cerdotes. En el siglo XIX, también se hicieron conocidas las creaciones de robots que jugaban ajedrez, aunque en realidad éstos ocultaban a un ser humano de baja estatura que opera- ba la maquina desde su interior (FF gra 2). Es decir, el deseo de creacién de un ser a nuestra imagen y seme- janza esta presente desde los prime- tos tiempos de la humanidad. El origen de la palabra robot se re- monta a comienzos del siglo XIX. El dramaturgo Karel Capek utilizé por Primera vez este término en su obra Opilek para referirse a un conjunto de miquinas inventadas por un cien- tifico para realizar tareas pesadas y aburtidas, En checo, idioma original de la obra, el término robota signi- fica trabajo tedioso. Pero fue el es- Stitor Isaac Asimov quien populari- % el término e introdujo el concep- Sens] Figura 2. E! Turco, un robot que simulaba Jugar al ajedrez y que, en realidad, tenia tun jugador humano adentro. Figura 3. Este es un robot que aparecia en la adaptacién de la obra de Karel Capek: Rossum's Universal Robot. a7 41. CONCEPTOS FUNDAMENTALES to de robética en diversos relatos de ciencia ficcién de su autora. En sus obras, Asimov muestra facetas hu- manas de los robots y define un con- junto de leyes para que estos seres nuevos nunca se rebelen contra los humanos. Luego, el cine y la televi- sidn generaron cientos de robots de diversa indole, algunos simpéticos (como R2D2 y Cortocircuito), y otros definitivamente en contra de sus creadores (Terminator, HAL) A partir de la creacién de las prime- ras computadoras comenzé el verda- dero desarrollo de los robots primi- tivos. En 1974, la empresa Cinci- anati Milacron realizé el primer ro- bor industrial, conocido como The Tomorrow Tool. A partir de ese mo- mento, junto con la evolucién de los sistemas de procesamiento, el cteci- miento de la robstica ha sido expo- nencial. La reduccién de tamafio y de costos, y el aumento de la capa- cidad de célculo de los procesadores, han permitido la creacién de robots cada vez mds sofisticados, répidos y auténomos. Sin embargo, atin esta- mos lejos de crear un robot a nues- tra imagen y semejanza. Definicion de la palabra robot existen muchas definiciones de la palabra robot. En cada una de ellas, encontramos destacado algiin aspec- to en particular, que es el que cada autor quiere resaltar en su obra. S 18 Figura 4. Isaac Asimov, creador de cientos de cuentos sobre robots y de la palabra robética. giin la Asociacién Japonesa de Robé tica Industrial (JIRA), los robots so dispositivos capaces de moverse de mo do flexible, andlogo al que poseen organismos vives, con o sin funcion intelectuales, lo que permite la realizas cidn de operaciones en respuesta a Ora denes recibidas por humanos. Vemo' que en esta definicién se encuentra resaltada la capacidad de movimien- to de los robots y su analogia con los seres de la naturaleza. Sin embargos a la JIRA no le interesa la inteligen« cia artificial aplicada al robot, dado que su funcién fundamental es ser operado por un humano. Por su pat- te, el Instituto de Robética de Nor- Introduccién a la robética comenvar a introducitnos en el tipo de robot sobre el que vamos a centrar- nos en el desarrollo del libro. RIA) define a un robot como un manipulador reamérica ( industrial — y reprogramable dise- splazar materiales, com- jrado para de mentes, herramicntas o dispositivos Tipos de robots sializados por medio de movimien- De la misma manera que con las de- of is - dos variables, con elfin de finiciones, podemos encontrar mu- tosprogramna : : eit ree diversas tareas. En este caso, chas clasificaciones distintas de r0- bots. En esta obra, al presentarlos, el acento esta puesto en la capacidad de programacién del robot y, por lo intentaremos acercarnos a los diver- sos problemas mecénicos, electréni- tanto, en cierta independencia de cos y de software que encontramos funcionamiento con respecto a la operacién humana. Como dijo Jo- en el desarrollo de un robot. Las cl sificaciones elegidas son: seph Engelberg, padre de la robética industrial: es posible que no sea ca- pas de definir qué es un robot, pe- 10 sé cudndo veo uno Particularmente, y ya que nos hemos ganado el derecho dado que estamos i bro sobre robs Segiin el uso del robot A continuacién presentaremos una clasificacidn posible de los robots se- giin su utilidad espectfica. * Industriales: se utilizan dentro de un proceso de trabajo industrial. Es el tipo de robot que mds ha sido de- sarrollado en la historia (Figura 8). * Espaciales: deben desenvolverse en zonas inexploradas y a larga distan- cia de su centro de control. * Médicos: son_utilizados agregaremos una definicién mas de robot a la larga lista preexistente: un robot es un dispositive con un de- terminado grado de movilidad, que puede realizar un conjunto de ta- teas en forma independiente y que se adapta al mundo en el que ope- fa. El objetivo de esta definicién es como apoyo en la intervencién médica UN ROBOT QUE JUGABA AL AJEDREZ de los primeros robots reales fue el jugador de ajedrez autémata de Wolfgang Kempelen, en 1769. Este consistia en una cabina de madera de 1,20 metros de. 19 +2. CONCEPTOS FUNDAMENTALES, sobre los humanos y como com- plemento para las personas con ca- pacidades disminuidas, + Domésticos: cl sueito de todo amo © ama de casa, un robot que reali- ce alguna o todas las tareas del ho- gar. Ya hay entre nosotros aspira- Figura 5. Kit de brazo robotico RA-O1 con 5 servos. ROBOTS INSECTOS 20 Como si no fueran suficientes los insectos que nos perturban durante todo el af, l ingenieros han decidido que, antes de imitar a un humano, es necesario lograr un Secto robético. Los sistemas de visidn y de vuelo de los insectos son dos fuentes inspiracién muy importantes, dado que con mecanismos sumamente sencillos, log} aptar el mundo que los rodea y volar sobre él de una manera altamente adaptati doras, lavarropas, heladeras, et tera, que modifican su comport miento en forma auténoma s el ambiente en el que trabajan. Sociales: robots utilizados en bitos sociales (como pelicul eventos y supermercados) con ciones de comunicacién intensiy con los humanos. En estos cé uno de los elementos de investi cién fundamental es el aspecto tético del robot, el estudio de lai terfaz con el humano para reali una comunicacién completa, gestos, tonos, silencios, etcétera, Agricolas: asi como en sus mienzos Ia robética tuvo ampli aplicacién en la industria, en I ultimos afios ha comenzado a a cet en forma exponencial el uso robots y de la inteligencia artific en el sector agricola-ganadero. cosechadoras auténomas, las sei bradoras controladas por maj satelitales, los fumigadores robo zados y otros dispositivos hicieral su aparicién dentro de lo que a tualmente se conoce como cultura de precisién (Figura 6). el medio en el que desarro- {fala actividad t Acuaticos: se caracterizan por movi mientos tridimensionales en un am- piente hostil desde el punto de vista ecinico y electrénico (Figura 8) serrestres: son los mds populares ‘econdmicos. Podemos, a su vez, ubclasificarlos por sistema de lo- comocién: fijos, ruedas, orugas, patas, arrastre, etcétera. «= Aéreos: con movimientos tridi mensionales, como el acudtico, pe- to con una exigencia mucho ma- yor en el control en tiempo real del sistema de levitacién (Figura 7). *Hibridos: combinacién de algu- nos de los anteriores. Beas Figura 7. Robot insecto volador desarrollado en la Universidad de Berkeley. Introduccién a la robética Figura 6. Demeter, un robot de aplicacién agricola desarrollado en la Universidad de Carnegie Mellon. En esta clasificacién, las caracteristi- cas mecinicas del robot se modifi- can en forma sustancial entre uno uw otro medio. Practicamente, es impo- 24 41. CONCEPTOS FUNDAMENTALES sible utilizar la mecénica de un ro- bot construido en un medio para que funcione en otro, salvo en el ca- so de algunos hibridos. Segtin la ubicacién de la inteligen- cia del robot + Auténomos: la inteligencia esté ubicada en el mismo robot. Puede comunicarse con otros 0 con un sistema central, pero los aspectos esenciales de funcionamiento se resuelven en forma independiente en el propio robot. * Control automatizado (semiauté- nomos): la mayor parte de la inte- ligencia del robot esté ubicada en un sistema central. Los sensores pueden ser locales, es decir que le envfan la informacién obtenida a ese sistema central, 0 globales. El sistema central les comunica a los 22 Figura 8. « encontramos entre un robot y _ f ‘acutico japon ate computadora convencional que imita la estructura de algunos seres acuaticos. Ynidades de un robot ga la arquitectura de cualquier com- wradora, podemos encontrar las si- Benes unidades que la componen: « Unidades de procesamiento: es el conjunto de dispositivos que se encargan de realizar la transforma- cién de los datos de entrada para obtener los datos de salida. + Unidades de entrada: son las uni- dades que permiten realizar el in- greso de informacién para su pos- terior procesamiento. * Unidades de salida: son las unida- des que se ocupan de comunicarle Jos resultados del procesamiento al usuario u operador. ones que deben lizar. Un ejemplo de este model es la categoria Mirosot de fie de robots de la FIRA. * Hibridos: son robots auténor que, en ciertos momentos del p eso, pueden ser controlados humanos o por un sistema cent Un ejemplo son los robots que utilizan en misiones espaciales, qt operan en forma auténoma pe que, ante un percance, pueden dirigidos desde nuestro planeta. En un robot podemos encontrar la misma arquitectura. A las unidades de entrada de un robot las llamamos Sensores, que pueden ser externos, Como un sensor de tacto, o internos, como un encoder que permite deter- Minar la distancia recorrida por una tueda. A las unidades de salida se las Sonoce como actuadores. Aqui po- demos mencionar leds de sefializa- cién, buzzers, motores, displays, También podriamos clasificar a I robots por sus caracteristicas estru turales, por el tipo de sensado d mundo, etcétera, De todas mane todos los robots comparten la mis Steétera. En sintesis, el robot recibe ma arquitectura bdsica, desde el m: informacién del ambiente mediante pequefio hasta Terminator. A conti SUS sensores, procesa la informa- Sign con su unidad de procesamien- SERS] nuacién veremos la fuerte analogia Introduccién a la robotica to y realiza sus acciones al mover motores y encender luces y buzzers. Tomemos como ejemplo a uno de los robots més conocidos: Terminator. En este caso, sus sensores son las cé- maras que le permiten mirar, su siste- ma auditivo y los sensores de tacto que tiene su piel. No recordamos que tenga olfato o que alguna vez haya co- mentado lo sabroso de alguna comi- da, Sus actuadores esenciales son los motores 0 los miisculos de alambre que conforman su cuerpo. Uno de los problemas més apasio- nantes de la robética es el equilibrio que es necesario obtener entre las tres unidades, para lograr que el robot cumpla con su objetivo. Por ejemplo, los sensores mas sofisticados 0 que oO GENERACIONES DE ROBOTS Asi 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 tas modificaciones que ocurren en su entorno. ‘© Segunda generacién: toman informa: ci6n limitada de su entorno y modifican su comportamiento. ‘© Tercera generacién: son programados enlenguaje naturaly organizan sus tareas en forma automatica en un nivel més alto que los de Segunda generacién. 23 12. CONCEPTOS FUNDAMENTALES entregan mayor cantidad de datos, como puede ser una camara de video, exigen de parte del procesador un mayor tiempo de trabajo para poder obtener un conjunto de informacién que resulte significativo, De la misma manera, el control de los actuadores sofisticados, como cierto tipo de mo- tores, consume tiempo de procesa- miento que es absolutamente necesa- rio para que el robot opere en tiem- po real. En sintesis, es imprescindible lograr el equilibrio entre velocidad y precisién, en especial en aquellos robots que operan en entornos muy dinémicos. Es por eso que, habitual- mente, se utilizan ciertos procesado- res especificos para el filtrado de la in- formacién de entrada y para el con- trol de los actuadores, y asi se libera de esta tarea al procesador central y se complementa su funcién, En las préximas paginas, anal mos cada una de estas unidades en profundidad, de forma tal que poda- mos realizar la eleccién adecuada se- giin los objetivos especificos que tengamos para nuestro robot. are- Procesamiento Cuando comenzamos a analizar lo que nos ofrece el mercado de la ro- bética con respecto a procesamiento, probablemente nos encontremos confundidos ante la diversidad de posibilidades. Podemos encontrar desde micros de muy bajo precio, en 24 los que debemos construir en fo} artesanal toda la clectrénica que complementa para poder proc las entradas y salidas, hasta cost kits que tienen absolutamente t resuelto. Esté claro que con éstos timos podremos hacer que nue robot funcione en algunas horas, ro es en el primer caso donde ten mos un control absoluto y de nivel de las capacidades de pro miento de nuestro dispositive. De todas maneras, analizaremos forma detallada las ventajas y desventajas de ambas propuestas: desarrollo con el uso de kits frem la construccién en forma artes de los robots. Ademds, conocerer brevemente algunos kits y mii disponibles en el mercado, y hi mos una lista de los sitios web d de se puede conseguir informaci mds detallada y completa. Kits Los kits para la construccién de bots, en general, presentan los guientes elementos: * Un procesador 0 conjunto de cesadores con toda la electrénica entrada y salida de los sensores suelta. Ademés, poscen un sist operative dentro del controk (firmware), que cleva el nivel dep gramacién de los procesadores, que posibilica el uso de lenguajes alto nivel o interfaces gréficas para Introducci6n a la robética Figura 9. Lego Nxt con el conjunto de motores y sensores que vienen con el kit. desarrollo de la inteligencia de nues- tro robot en forma muy sencilla. *Un conjunto de sensores que aprovechan la electrénica ya re- suelta, y que con una simple cone- xién funcionan de manera casi mgica. Por ejemplo, sensores de luz donde el firmware interpreta el voltaje que entrega el sensor como un valor entre 0 y 100. *Un conjunto de motores que también utilizan la electrénica de salida, que se alimentan directa- mente de la misma fuente que ali- Menta al procesador, y que gracias al firmware podemos indicarle di- Teccidn, velocidad, etcétera, s Recesidad de célculos complejos. * Material constructivo para resolver la mecénica del robot, altamente Resa nla reutilizable y que en poco tiempo permite laelaboracién dela fisica del robot mediante la aplicacién de co- nocimientos de nuestra infancia. Si tenemos en cuenta este conjunto de materiales, es sencillo notar que las ventajas que nos presenta el uso de kits para la construccién de nuestro robot son las siguientes: * Menor tiempo de construccién del robot: en pocas horas, podemos obtener robots poderosos para los desafios habituales en robética. * Alta reusabilidad del material: una vez terminado el desafio, po- demos desarmar el robot y utilizar todas las piczas, los sensores, los motores y el procesador para armar un robot completamente distinto * Baja necesidad de conocimientos 25 41. CONCEPTOS FUNDAMENTALES Figura 10. Un humanoide realizado con el Lego Nxt. técnicos: sin saber electrénica y précticamente sin saber programa- cin, podemos desarrollar un robot poderoso. Desde ya que para aque- llos usuarios que s{ tengan esos co- nocimientos, el aprovechamiento seré mucho mayor, Més atin si los desarrolladores del kit tuvieron la precaucién de dejar abiertos tanto el firmware como el hardware del pro- cesador y los sensores. De todas formas, no todas son cosas positivas. Las desventajas que tene- mos con el uso de kits son: * Elalto 0 altisimo costo de un kit: 26 la relacién puede ser de 20 a 1 respecto a.un desarrollo manu; robot que construiremos en bro mantiene esta relacién con kits mds econémicos de robéti La imposiblidad, en muchos de poder realizar modificacior bajo nivel en el hardware o el ware del robot. A pesar de tod esfuerzos de documentacién que gala empresa creadora del kit, es posible que todo sea altamente dificable, por la misma necesid mantener la arquitectura intris del robot, Su elaboracién art desde cero nos permite modi hasta el mds minimo detalle. * Baja precisién y calidad final los robots: dado que los kits para el desarrollo de robots de versos propésitos, en todos los sos perdemos precisién y cali Por ejemplo, los motores sit para moverse en un determin: ambiente con alto margen error, pero no son veloces ni miten movimientos de precisis como lo pueden exigir ciertos jetivos. En general, los sensot son econémicos, y el rango de lores que devuelven es pobre. Los kits de robética mds conocie en el mercado son los siguientes: + Lego Nxt: sucesor del mod Mindstorms, es el kit de mayor fasién en todo el mundo (Figura 9) gu procesador es un ARM7 de 32 pits. Cuenta con 256 Kb de Flash y (64 Kb de RAM. Se comunica por Bluetooth clase 2 y por USB. Tiene entradas para sensores y 3 salidas actuadores. En el kit se inte- in 3 motores servo con encoders jncorporados para controlar su mo- yimiento con precision, ‘Ademds, cuenta con un sensor de facto, uno de sonido, otro de luz y por tiltimo un sensor ultrasénico, Para la mecénica del robot cuenta con piezas de las denominadas Technic, que permiten disefiar dife- rentes estructuras segin el destino del robor creado (Figura 10). El len- CERES EES toed Introduccién a la robética guaje de programacién es un am- biente gréfico muy sencillo, similar al Robolab de las versiones anterio- res, pero con mayor potencia y ver satilidad, Para finalizar, una de las mejores decisiones que ha tomado la firma Lego es publicar muchisima informacién sobre el desarrollo tan- to de hardware como de software del kit, lo que ha permitido que en po- co tiempo (salié a la venta en agos- to de 2006) las personas de todo el mundo que tienen este hobby hayan desarrollado hardware y software es- pecifico fuera del oficial. Para obte- ner més informacién, podemos visi- tar http://mindstorms.lego.com. Figura 11. Placa educativa de! Basic Stamp de Parallax. 27 41. CONCEPTOS FUNDAMENTALES Figura 12. Aqui podemos ver uno de los modelos constructivos de XiOR, conocido como N10. * Parallax: cl producto més popular de esta empresa es el micro Basic Stamp (Figura 11). Aunque uno puede adqui- rir solamente el micro y realizar el r0- bot desde cero como comentaremos mids adelante, hay tantos desarrollos y tantas presentaciones de productos de la firma Parallax que hemos deci- dido presentarlo dentro de esta sec- cién. El Basic Stamp Starter Kit es- 4 desarrollado para iniciarse en el mundo de la robética. Incluye un Ba- sic Stamp II, que tiene una velocidad de procesamiento de 20 Mhz, con 2 Kb de EEPROM (elecirically-erasable programmable read-only memory, ROM programable y borrable eléc- tricamente) y 16 E/S (entradas y sa- lidas) més 2 dedicadas. Este micro es- t4 instalado en una placa educativa con una pequefia protoboard (pla- 28 queta de experimentacién), do podremos realizar todas nuestra periencias. Viene con un servo, capacitores, resistencias y otros ¢ ponentes para disefiar nuestro 10 Las gufas que acompafian a eg otros kits son excelentes (jy alg estén en castellano!), y pueden @ seguirse en forma gratuita en el si de la empresa. La ultima creacién Parallax ha sido el micro de nom Propeller, con 8 procesadores p lelos en su interior. Tiene una arqi tectura de 32 bits, 80 Mhz, con pines de E/S direccionables por et quiera de los 8 procesadores. buscar més informacién, podem visitar www.parallax.com. XiOR: en América Latina, cont mos con nuestro propio kit de 1 bética. XIOR (www.xior.org) una empresa argentina de tecno gia y entre sus trabajos ha desamn Ilado un sistema constructivo pa la fabricacién de robots méviles at ténomos. El modelo N10 es el p mer robot desarrollado con él ( ra 12). Una de sus principales c: ter(sticas es la posibilidad de que usuario reconfigure toda su morf logia fisica para adaptarlo a diferet tes entornos y experimentos. Indl so es posible combinarlo con otf robots similares para formar pa de estructuras mayores. Normalmente, est4 equipado col 204 celdas de Li-Ion de 900 das en packs de a dos. En unto a las capacidades de procesa- friento, el controlador XiOR.0107 tiene un procesador AVR ATMega8 Bateria 9 V Driver H eae) Figura 8 En esta figura podemos observar los bloques légicos que componen nuestro controlador. 70 entradas RA3 y RA4 permit sar los dos switch (llaves) qu can cudndo nuestro robot con algtin objeto. Se encuent nectadas al positivo medi resistencias R3 y R4 de 1K, sirven de pullup para dis disparo por ruido eléctrico Por su parte, RBI, RB2, RB se utilizan para controlar d res de corriente continua de 300 miliamperes, RBG y RB destinados al programador. _ Ademis de esto, nos quedan pines (RBO, RAO, RAI, podemos utilizar para pro versos y la posibilidad de ut del cristal o de conmutar los gramacién, entre otras modil experimental de ejemplo, en la Figura 9 ca expel I ba- Ja placa experimental nar da para las prucbas preli- , ‘en donde puede observarse 7805, los integrados arte inferior 1.293D y, en la parte in! 16F84¥ i nguierda y dcbajo del 16F84, la f y ialida para cl PPOs! programador ee idiseniamos el controlador del robot, uno de los objetivos fundamen- fais fue que pudiera ser programado dediversas maneras segiin el propési- fo final del robot. De esta forma, po- demos reutilizar nuestro controlador en Ja misma estructura mecénica o en fos, con otros sensores, motores, ecétera. Por cso, nos decidimos a tra- bajar con el PIC y no con el PICAXE (Rlewa 10), a pesar de que éste ultimo también es una opcién. El PICAXE es lin micro que ya tiene grabado un pe- leo firmware, algo as{ como un sis- fema operativo minimo, que permite Caxgarle nuestro programa por el puer- TWsetic del computador. Es una buena Porque nos evitamos la cons- Miscién del programador. El proble- 8 que si utilizamos un PICAXE demos totalmente de este te y si por cualquier proble- léctrico se desprogramara el mi- Sstarfamos en problemas. solucién serfa comprar un PICAXE o grabarle el firmware El cerebro Figura 9. Visién final del controlador desarrollado sobre una placa experimental. Figura 10. Picaxe 8, la ! versin mas | pequefia de la . linea PICAXE. de nuevo, para lo cual se necesita jun programador! Por lo tanto, tardeo tem- prano, este recurso nos es indispensa- ble, y ya que compramos componentes y hacemos circuitos, agregamos el pro- gramador para quedarnos tranquilos ‘Ademis, si alguna vez queremos cam- biar de micro, cargar un firmware de- sarrollado por otro 0 por nosotros, u otra variante, podremos hacerlo con nuestro programador sin problemas. Nuestro programador En Internet podemos encontrar un mundo de aficionados y profesionales que desarrollan sus actividades con PIC. Por esa raz6n, la oferta de pro- gramadores es amplia y silo deseamos, W 3. LA INTELIGENCIA DEL ROBOT 72 | i | comprar un programador en Mgocio de electronica. Pro pa- Se mplir nus promes de que a Rs sompletamente artesanal, seam: mrogramador GTP Li- z, imador fue disefiado por Fee een Caro. Belmonte. de ic (www.hobbypic.com). Estd en un desarrollo anterior del Todopic (www.todopic.com. {llamado GTP (Grabador TodoPic) Parrealizarla grabacién de lo que pro- fgamamos en nuestra PC hacia el mi- 6, utilizaremos el soft WinPic800 (worn:winpic800.com), que nos per- “mite acceder a muchos micros distit tos (Figura 11). Mas adelante, nos ex- tenderemos en cl uso de este software | para bajar nuestros programas al con- ttolador. Con respecto a los programa- ores, existen otros modelos como el GTP-USB, pero clegimos el mencio- Mado por una cuestién de costos. EIGTP Lite (Figura 12) es un gtabador HESP para PICs y memorias que uti- in puerto paralclo y alimentacién Sitema. Con él se pueden grabar los ue soporten el modo de graba- TCSP y que se encuentren en el e ee ‘. e ° ¢ 2 Me i OTROS PROGRAMADORES Figura 12. Esquema de! programador GIP LITE. El cerebro a) ° ¢} gua eee @ Ct a eeecccce oe Ltt ie @ 9000000000000 Figura 13. En esta imagen podemos ver el board del GTP LITE. Figura 14. Programador GTP LITE terminado, visto desde arriba. Programadores mas populares del momento es el GTP-USB Lite que, como \o indica, nos permite programar mediante la utitizaciin del puerto USB. S encontrar ta informacién para disefarto en www.todopic.com.ar/foros/ '*topic=1716.0, En el siguiente foro podremos encontrar toda ta informacion 0s grabadores de PICs: www.todopic.com.ar/foros/index.php ?board=7.0. 73 3. LA INTELIGENGIA DEL ROBOT El cerebro WinPIC800. La forma mds tradicio- nuestra placa programado son A en forma constante. En los 70 centimetros de longitud. No nal de grabar el programa en el micro 2 describimos la lista de com- necesitaremos 5 V ya que usamos es poner el integrado en el zécalo de software de grabacién de P Be del programador. Para co- masa comiin entre el programador y el Winpic800. Pero en nue presentamos otra variante, macién en circuito ICSP (h rial programming, progt )¢s ideal para trabaj totipos, ya que de manera 2 Rojo dremos programar nuestro. necesidad de sacar el microp ba 1Na007 cada vez que cambiemos el p Esta programacién se basa lot 78105 los mismos pines que usa mador para la programa pero con un circuito muy permite programar el inte a 85688 tamente en nuestra placa 69 ra, Para esto seré necesatio Re? 15VAC tor especial que posee la ph gramador con salida para ICS ta manera, si conectamos el p dor a nuestro controlador po fo 47K nector, el mismo program pic800 podré grabar el 168 net que desarmar nuestro Mf programador a nuestra con- la controladora, con la tinica condi- Keri necesario fabricar un ca-_cién de que nuestro robot deberd es- nos utilizar alguno de los ca- tar encendido al momento de pro gramarlo. Este cable es el que conec- taré nuestra controladora al conector que tenemos debajo del micro. cL 100uF/63v ca 1000F 3 i |15. EI mismo dor, con toma desde la parte inferior. R3 tk Ra 1.5K que al ser un robot experi garemos muchos programas: Tabla 2. Lista de componentes del programador. PIN E I Gtr 10 2 BO Clock aco yisto maravillas en el aumento otencia de los procesadores, jejora de la calidad de los. jales y en la reduccién de los costos os estos componentes. Pero itablemente hay un punto en el que 10 hemos hecho grandes progresos: ergia portatil. En este capitulo entaremos los diferentes tipos de as para utilizar en nuestro robot. DEATENcOn a LecToR:lectores@redusers.com 4, COMIDA DE ROBOTS: LA FUENTE DE ENERGIA Volvamos a nuestros suefios de robots. Sofiamos con un robot veloz, gil, y que recorra el universo sin desgaste. Sofiamos con un robot poderoso, con alta traccién que le permita subir los caminos més. inhéspitos. Sofiamos con un robot de mucha autonomfa, que pueda dar varias vueltas al uni- verso sin necesidad de pasar por el en- chufe. Sofiamos con la méquina de movimiento perpetuo, y no somos los primeros. Desde que construimos nuestros primeros mecanismos auté- nomes con desplazamiento, hemos «a 7 buscado Ia piedra filosg energia: carbén, petrél dad, biocombustibles, geno, energia nuclear, efi agua ha pasado debajo del p embargo, la ccuacién que al comienzo es irresoluble: tamos la autonomia, mayor tamafio y peso, y to, mayor consumo. Si yor potencia, también co las cargas mas répidament ra, nos tendremos que que tenemos a nuestro darle energia a nuestro robot, lo que presentaremos en este isticas celdas de las baterias 9 de los robots pequefios, la de energia por sistemas de a o la cnergia nuclear n un sistema un poco des- nado. Es por eso que nos por las baterias com- por una o mds celdas, con hadas caracteristicas que las ‘convenientes 0 no segiin el en el que trabajemos. Por Yén, antes de analizar los tipos rerfas, haremos una breve pre- in de los conceptos funda- tales que las distinguen. lls celdas que presentaremos procesos quimicos para la li- én de energia. El tipo de mate- do para esa reaccién es el inaré el voltaje produci- 0 mientras se descarga, el vol- puede variar. Es por esto que ap: el concepto de voltaje nominal, indica el valor més estable en el jPermanecerd una baterfa cuando escargue, Puede ocurrir que ape- VITRIFICACION DE PILAS Figura 1 Aibo, el perro de Sony, con un jug podria ser su comida La fuente de energia nas empiece a descargarse la bateria, su voltaje nominal comience a bajar, que se mantenga durante un tiem- po para luego descender més brusca- mente sus valores. Consideraremos que la bateria estd descargada cuando el voltaje disminuye alrededor del 20% de su valor nominal. Por ejemplo, las baterias de autos tienen seis celdas de plomo Acido, cada una con un voltaje nominal de 2 voltios, y asi nos proveen de 12 voltios nominales finales. De todas formas, ¢s posible que nues- tro robot pueda funcionar con un voltaje menor al 80% del valor no- minal. Esto depender4 esencialmen- te de los motores que utilicemos. Capacidad En general, cuanto mas grande es la bateria, mayor capacidad posee (es mis pesada, pero nada es perfecto). Se mide en Ampere/hora (A/h) 0 miliampere/hora (mAJ/h) y se re- presenta con la letra C. Por ejemplo, si en la bateria aparece C=250, esto nos indica que puede suministrar 250 mA durante una hora, 6 125 79 La fuente de energia ‘4. COMIDA DE ROBOTS tanto, la préxima vez considerard que Pr corriente, aumentan cl ca- std descargada cuando Hegue a este paterfa y pueden ocasionar- punto, Aunque no hay una postura de- mas a nuestros circuitos y, finida sobre este concepto, siempre se extremos, una explosién. A aconseja que, antes de recargar estas ba- ique las celdas se desgastan, la _terias, se las descargue por completo, jnterna crece, y por lo tan- in disminuye. Costo Y por tiltimo, nos encontramos con el d de recarga factor comiin de todos los andlisis: el costo, La relacién entre la calidad de baterfas cs si son recargables las baterias y el precio es directamente cudntas veces se pueden re-proporcional. Por suerte, la aparicién Dado que las baterfas son de las cémaras digitales, los reproduc- ligroso en los casos de los contaminantes, esta caracterfs-tores portitiles, los celulares y otros ticos. Cuando la curva s6lo es una cuestién de cos- dispositivos que consumen baterfas a censo parejo, muchas v @ que también nos propone granel, ha masificado la produccién de Densidad de energia contramos répidamente con: ftud ecoldgica que considera-_éstas, y hoy encontramos en el merca- ce ntre- [porque ante un corto entre Figura 2. Una muestra de todos los tamafios cldsicos de las baterias mA durante dos horas, etcétera, an- tes de que caiga su voltaje. Este es uno de los puntos més im- des para determinar un més adelante, Lamentable- do una gran variedad de calidad y pre- portantes de andlisis en los robots miento consistente en el has barerias con mayor densi- cio para nucstras necesidades. méviles auténomos. Con la densidad caso, nos es imprescindible energia no son recargables, Antes de empezar a realizar una de energia representamos la relacién el accionar de nuestro 1 comparacién con respecto a estos de la capacidad por unidad de vo- tea lectura de sensores, y ‘memoria conceptos presentados, vamos a des- Iumen, En nuestro caso, necesitamos _confiar en los valores absoh término vinculado especifica-cribir los tipos de baterias que po- alas baterias de Niquel cadmio. demos utilizar en nuestros robots. do una bateria de este tipo no se ga en forma completa antes de gada, tiende a recordar este n descarga como el nivel 0. Por lo la mayor relacién posible, para lograr mayor autonom/a y potencia. Pero Resistencia interna seguramente, aparecerd algtin otro Todo generador de en problema, como los costos. también se comporta como ductor y, por lo tanto, of Curva de descarga resistencia al pasaje de corrie Es la curva que nos indica el voltaje de _ to se lo llama resistencia i la baterfa en relacién con el tiempo de ejemplo, es una gran ventaj consumo. En general, si la curva es _baterias de auto tengan baja! plana, la bateria baja su voltaje de gol- cia, dado que necesitamos m pe, lo que en general es bueno (man- _rriente de golpe para encend tenemos la performance de los robots _ tor. En nuestro caso, las pareja durante largo tiempo), pero pe- baja resistencia interna pued Tipos de baterias A continuacién haremos un recorrido por los diversos tipos de baterias que 80 81 4. COMIDA DE ROBOTS tenemos para poder alimentar un ro- bot, y veremos sus ventajas y desven- tajas. Por tiltimo, definiremos un con- junto de elecciones posibles para nuestro modelo en particular. Bateria de lones de Litio (Li-lon) Estas baterfas aparecieron reciente- mente y se utilizan mucho en los celu- lares (Figura 3). Poseen una elevada den- sidad de energfa y, en general, se pre- sentan en placas rectangulares de me- nos de 5mm de espesor. Tienen un vol- taje de 3,7 V, y carecen de efecto me- moria. La tasa de autodescarga es baja, con lo cual podemos sacarla del robot y guardarla aparte, y asi se pierde sélo tun 6% de su carga cada mes. La curva de descarga es lineal, con las ventajas y desventajas que presentamos antes. Figura 3. En esta imagen podemos ver baterias de lones de Litio. Con respecto a su vida til dientemente del uso que ella, su duraci6n es de tres necesario cargarla durante 12 su primera carga. De hecho, mas nuevas no necesitan még ras para cargarse comple poco ¢s real que los primeros carga y descarga deben set 9 Descargar en forma completa cargarla puede ocasionar un mo de bloqueo en sus circuito pre es preferible cargar la bated do la capacidad sea parcial. A pesar de que atin son mas que estén a nuestro alcance mentar a nuestro robot. 17,500 ciclos. Otra caracteristica posi- | Sonllas baterias de moda en este mo- vo en los celulares ha perm | demas, poseen b: La fuente de energia de Niquel Cadmio (Ni-Cd) fs primeras bacerias recarga- On Memos en nuestros disposi- eg), Su uso ha disminui- ior de las bateras de Niquel INU/Mh), principalmence por memoria y por la contami- que produce el cadmio. Manraja que poseen es a cantidad mtddos de carga, que ronda los Figura 4, Bateria de Niquel Cadmio para luces de emergencia, Gel costo, que ronda en la cuar- zs 7 de las de Ni/Mh, aunque es- Spidiferencia se reduce dia a dia. ae . _Baterias de Niquel Metal (N/Mh) Figura 5. Pequefias baterias recargables de Ni/Mh y NECd. “mento (Figura 6). Tienen un 40% mas ‘de capacidad que las de Ni-Cd. resistencia in- | tema, lo que permite una carga mds “pda y una baja tasa de autodescar- BEI problema es que luego de los 300 ciclos, su capacidad cae drastica- fe, y luego de los 600 la resisten- interna aumenta en forma tan Figura 6. Abrupta que se considera que el limi- Baterias AA de ede los gi de carga es cercano a ‘Nique! Metal in embargo, al tener mayor ca- de 2500 mAh. id y no suftir de efecto memo- BATERIAS DE POLIMERO DE LITIO 4, COMIDA DE ROBOTS: Figura 7. Una UPS alimentada por una bateria de plomo-écido. Figura 8. Bateria recargable de gel de 12. ria, la cantidad de ciclos necesaria es menor. Otra ventaja es que son més ecolégicas que las de Ni-Cd. de gel fe, son una modificacién ‘de plomo-icido, donde tinagentegelificante al clec- sisminuit su movimiento Fela carcasa (Figura 8). Ademds, ee un mecanismo por el cual Hnternos no se liberan al exte- no que se recombinan con el Ja baterfa. De esta manera, das y pueden estar orienta- cualquier direccién. Para su re- ‘ge recomienda utilizar un carga- paterias especial de cuatro eta- do que en este proceso puede gases o reducir su vida dil, muna autodescarga muy baja y ga titil dura hasta casi medio afio. Son las baterfas que po trar en nuestros vehic Estén compuestas por en general agrupadas en 3 (lo que brinda miilkiple Tienen un depésito de donde se insertan unas pl. mo. Cuando las celdas estés los electrodos son de plot y 6xido de plomo, sum Acido sulfirico (diluido en: En el proceso de lib energia, ambos electrodos ten en sulfato de plomo y asi la presencia del dcido er En la carga, en el polo negati fato de plomo vuelve a con plomo metdlico, mientras q positivo se forma éxido de aumenta la presencia de rico en el electrolito. Tienen capacidad de corriente con resistencia interna, lo que las pecialmente titiles para los arrange. Son econémicas gran peso, lo que no las mendables para los robots aut de tamafio mediano o pequet de combustible n dispositivo electroquimico si- auna bateria, pero se reabastece ttir de una fuente externa de com- le y oxigeno. Por otra parte, los los no se modifican como en fa convencional, sino que se nen estables. En el caso clésico rr aes DENSIDAD DE ENERGIA La fuente de energia de una celda de hidrégeno, los reacti- vyos que se utilizan son hidrégeno en él lado del dnodo y oxigeno en el ci- todo. Al generar electricidad, el dese- cho resultante es agua y calor, con lo cual la contaminacién producida por estas celdas es minima. Aunque ain son muy costosas, en los iltimos cin- co afios han bajado 25 veces su precio. Quedan como una buena propuesta para seguir atentamente en el futuro. En la Tabla 1 presentamos una tabla comparativa entre las baterfas que po- demos encontrar en el mercado. En ella, podemos ver todas sus carac- teristicas en forma més sencilla. Nuestra eleccién Como vemos, tenemos muchas va- riantes al momento de elegir la fuen- te de energia de nuestros robots. Pa- ra hacer nuestra eleccién, tuvimos en mente los siguientes aspectos: * Costo. * Capacidad de recarga. * Masividad de uso (es decir, que pue- dan usarse en otros dispositivos).. CAPACIDAD DE RECARGA 4. COMIDA DE ROBOTS: * Densidad de energia. * Peso. Antes de presentar nuestra eleccién, quetemos aclarar que cualquier fuen- te de corriente continua entre 9 V y 12 V es perfectamente utilizable en nuestro disefio, Por lo tanto, no es ne- cesario comprar lo mismo que men- cionamos aqui, ya que podemos reu- tilizar baterfas que tengamos en nues- tro hogar. Por otro lado, en los mo- mentos en los que realizamos pruebas con nuestra computadora, podemos conectar una fuente de corriente con- tinua de 12 V para no consumir la energia de nuestras baterfas. En nuestro caso, hemos elegido las pi- las AA de Ni/Mh de 2.500 mA/H, porque son las que presentan la mejor combinacién de las caracteristicas que hemos usado para nuestro andlisis, Da- do que proporcionan 1,25 V, usaremos un pack de 8 a 12 pilas para alimen- tara nuestro robot. Para ello, podemos adquirir 2 6 3 portapilas de 4 pilas ca- Figura 9. Portapilas para 8 pilas AA. 86 La fuente de energia da uno, En el capitulo en el mos el montaje, vamos a ves ubicamos, pero antes de ¢g ign se comercializan pilas de nocidas que, en realidad, cemjones. Para detectarlas, la ectaremos con nuestro ¢ también es itil Por otro ine Saar para comenzar las primeras importante mencionar que r= -* Sony y Pamnons 00 a0 Pei eet aca eer Calidad de las baterias jlas de més de 2700 mAh. Po- oat 33 Un factor fundamental en éf Be sultar varias paginas web ; nuestra fuente de energia e alertan, mes a mes, sobre las Tabla 2 Relacién e ne dad. Es tan masivo el uso d jones que aparecen en elmer- la eapmokied de las piles AA las recargables, que podema trar ofertas muy diversas a comprarlas. En un documet zado para su tienda de Eb Martinez nos da algunas daciones muy interesantes sentamos a continuacin. En general, las pilas mds eco no brindan informacién respecto a su capacidad. de comprobar esto es util cargador con medidor de ca pero en general son muy ademas de que no pueden medicién en forma inst Una segunda opcién, in econémica, es ;pesar las pi tivamente, dado que la estd relacionada con los com tes internos de la pila, una mayor capacidad debe ser da. En la proxima pagina Tabla 2, creada por Javier, con que ha realizado con div de Ni/Mh. En todos los caso las medidas son AA. mente, otro problema que ten aquel que introduce una corriente con- tinua en la bateria que debe ser carga- da sin modificar la corriente segin el tiempo o la carga producida hasta el momento. Es econémico, pero el re- sultado deja bastante que desear. En general, son de carga lenta para evitar es un dispositi- permite recargar baterias ap- ra ta fin, y fuerza el ingreso de ente eléctrica dentro de ellas. El ical Lous wstis buseande? 0 reid pi nas [Mees tne sat nin sete catanin ‘in er Gece n'y se » M23 HAPs ‘iin Secretary rea ‘cma en ona nin Mose 425 102 Met Geproere ra sur auch ASMA MNCS ROONERN OSEME ESR cre nono cer on Bees oee Figura 10. En el sitio de MercadoLibre podemos encontrar guias especiales para detectar falsificaciones. peter tects ee 87 4, COMIDA DE ROBOTS Figura 11. Cargador de baterias tradicional. Figura 12. Cargador inteligente para baterias de diferentes capacidades. el deterioro de las bateria sefcos para un modelo de ba- formas, si las dejamos Grcuitos de control interno que el indicado, podemo que permiten acelerar el las o deteriorarlas por sob Un modelo algo més taj carga. Muchos de ellos in- f gstema de ventilacién para aquel que detiene su cargal i sobrecalentamiento. De to- tiempo predefinido. Se ut cuando se utilizan con ba- cho con las baterfas de Ne foteas marcas, realizan una car- de la década del 90. Fre Sil cargador répido no uti se comercializa el pack deb sistema de control interno, to al cargador, que viene oo ar las baterfas, Existen algu- con el tiempo acorde para gadores especiales que pueden i br esta carga ripida sobre cual- terfa, pero son de marcas reco- baterias, corremos riesgos de: ga si son de menor capacidad y su precio es elevado. ga parcial en el caso contrari 9 novedad, han comenzado a ‘También podemos contar ¢9 cargadores que utilizan el dores inteligentes (Figura 12), 9 USB de la computadora para dispositive monitorea en forn Janecesidad de otro enchufe (Ft tante el voltaje de la baterfa, s 4). Incluso hay pilas que tienen ratura o el tiempo de carga, y adaptador USB para conectarlas nna el momento de corte 6pti stamente a nuestra PC. Si perte- cada caso en particular. Para a la clase de fandticos que de Ni-Cd y Ni/Mh, el voltaje un hub USB de muchas bocas, bateria crece en forma lenta di E2nos quede algtin lugar para co- proceso de carga, y decree estos nuevos juguetes. estin llenas. Esto le indica al @ que han Ilegado a su punto ra que no sélo carga. Sin embargo, monito rias duren mas temperatura nos asegura § los dispositivos que hemos ningtin tipo de problemas com pelonado, cn menor © mayor m tetas que. 06 cncuennen Son contaminantes. Es por es0 ston corgedors, = del {Alueremos ofrecer algunos con- terfas no se ubiquen en serie, A Tespecto a la forma de de- forma independiente, para que! as baterias para que su poder nitoreo sea especifico en cada Uf Mnante se reduzca. Antes que Los cargadores répidos de buef €n los momentos de testeo, La fuente de energia Figura 13. Cargador para baterias de 9 V. 1S Figura 14. Cargadores de baterias por USB. podemos usar nuestro robot conec- tado a la corriente eléctrica. Asi cui- daremos nuestro bolsillo y nuestro planeta. De esta forma, los ciclos de carga de las baterfas se realizardn es- pecificamente cuando sean necesa- rios. Por otra parte, el uso de ba- terfas recargables (en lugar de alcal nas, de carbén, etcétera) ya es un 4, COMIDA DE ROBOTS: Figura 15. Bateria flexible, una propuesta ecolégica para la generacién de punto de partida muy interesante tas de reciclado donde podamt para evitar este tipo de contamina-viar lo que hemos apartado. cién. La solucién ideal para el dese- ceso de reciclado no es di cho de las baterfas parte de un tra- te rentable, por lo que es ned bajo en conjunto de la sociedad, que que las empresas que realicel debe apartarlas de la basura comin, proceso pertenezcan al Est y del Estado, que debe prover plan- esté subyencionadas por él HII} Lo BARATO SALE CARO ELINT! (Instituto Nacional de Tecnologia Industrial, de Argentinal realiz6 comparativo de pilas alcalinas y de carbén, que inclufa tanto las marca das como las de venta callejera. Las conclusiones son que, aunque las de Uejera sean mas baratas, la duracién es mucho menor, por lo que no nientes econémicamente, Ademés, las de carbén drenan su contenido al & son mucho mas téxicas que las de mayor valor. La fuente de energia rome conciencia de este *No quemar pilas ni baterias de Tos consejos que dan las ningain tipo. % dasa la ecologia son: * No dejarlas en lugares los que pue- mine jlas porque asi se con- den acceder los nifios. re sisgo + Reemplazar, en la medida de lo po- nos! in los riesgos. : i Hic las pilas ala cloaca porque sible, el uso de pilas por corriente an contaminar el agua. eléctrica. RESUMEN amplio de variantes para alimentar a nuestro robot. Desde las tra- baterias de plomo, demasiado pesadas para nuestros pequefios méviles, Nuevas celdas de combustible que no séto aportan mas capacidad, sino que ‘con un mundo mas limpio. En particular, hemos optado por el tipo de ba- ue consideramos de uso mas popular y mas econémico: las baterias de Ni/Mh. mos que usar entre 8 y 10 baterias, el peso y la capacidad que tienen ‘gran utilidad para mover a nuestro robot. Y ademas, probablemente no ten- comprar un cargador, porque las cargaremos con lo que ya tenemos en ‘casa. Por Gltimo, no debemos olvidar el impacto de todo tipo de baterias en biésfera. Es por eso que recomendamos el uso de una fuente para alimen- Fo robot, y séto en aquellos momentos en los que necesitemos indepen- cables, utilizar las baterias. ae ACTIVIDADES TEST DE AUTOEVALUACION 1 (A queé llamamos capacidad de una ba- teria? 2 {Qué es la densidad de energia? 3 {A qué se llama resistencia interna de una bateria? 4 En qué tipo de pilas nos encontramos con el famoso efecto memoria? § Realice una comparacién entre las ba- terias de Li-lon, las de Ni-Cd y las de Ni/Mh. 92 6 {Cudles son las desi sentan las baterias de ablar con juestro robot mos el controlador 8 {Qué tipo de baterias nuestro proyecto y por q ipjendo ya desarrollan 9 {Qué factores podemos: 5 determinar la autenticide teria? ytomamos la decisién de cémo lo vamos Balimentar, comienza el desafio d 10,Cudles son los factores « los cargadores inteligentes controlador. Los lenguajes programar € fRoson sencillos y necesitamos procesos lbgicos para poder expresar, en el lehguaje del robot, lo que deseamos que Pealice. En es| pitulo presentaremos ISdiferentes lenguajes y elegiremos uno Pera explicar lo que necesitamos al PPgramar el comportamiento del robot. DDE ATENCiON aL LecToR. lectores@redusers.com TiC 4) "Ector de cbdigo fuente de mikroBasic 5. HABLAR CON NUESTRO ROBOT COMUNICACION CON EL ROBOT Ya hemos logrado construir el cerebro de nuestro robot y lo hemos dotado de energia. Sélo nos falta encenderlo para darle vida a nuestra criatura. Pre- sionamos un botén y en un primer momento, nada ocurre. Pero de pron- to, algunos muisculos tiemblan y sus ojos se abren. jHemos logrado el mi- lagro! Sélo basta con solicitar lo que deseamos que haga y nuestros suefios se cumplirin. Entonces le pedimos que nos traiga el periddico, que nos prepare una buena cena y que luego deje la cocina en orden. Nada ocurre. Sigue alli, con sus lucecitas parpade- antes, sin demostrar buena voluntad Figura 4. Una Sinclair Spectrum que, con 48 Kb de RAM, desafiaba nuestra capacidad de programar con poca memoria y baja velocidad: para obedecer a nuestras érden 25 de programacién tiene incorporadas las tres robética? Tal vez fue demasiad plejo el pedido. Intentamos eg més sencillas: que nos traiga trol remoto, que atienda la que saque a pasear al perro, suelva esas integrales dobles fastidian, y nuestro robot s sin obedecer. {No seré que de castellano? Probamos con! alemén, francés, aymard y, sin} go, no obtenemos respuesta. de que nos detengamos a tt comprender a nuestro robot. de que nos demos cuenta de es pequefio, y que sélo ent trucciones muy sencillas, nes de muy bajo nivel. Fa ios que hemos rabajado a A adoras de baja capacidad Be iento y poca cantidad de Nee programat los micros de os pg resulta familiar, dado que fe a tencr [as limitaciones de igellos viejos tiempos. Gn ls aparicidn de las PCs, la velo- tddad de procesamiento y la memoria elas que disponemos nos permiten Wilizar lenguajes que no hagan un laprovechamiento preciso de todos los ecursos. Gracias a estas ventajas, apa- feeen los lenguajes de alto nivel, que "hos brindan un mayor poder de ex- Ditsividad a cambio de gastar mucha Memoria y procesamiento. Fil caso de los robots, carecemos “Weestos dos recursos. Por eso, nece- [Slamos lenguajes que aprovechen al Mikximo cada byte de memoria y ca- @eciclo de procesador para realizar Mestra tarea. De esta forma, los mi- ‘0s utilizan habitualmente lengua- de bajo nivel. Estos lenguajes $0 pobres en capacidad expresiva, Muy potentes a la hora de uti- @t cada componente de nuestro otttolador. El problema es que Ender a utilizarlos es complicado. » RO temamos, vamos a hacer Fecorrida por los lenguajes més mites, desde los mds potentes st los mas sencillos de utilizar, y Wedaremos, para nuestras pri- Comunicacién con el robot O ALTO Y BAJO NIVEL. Nuestro robot no es mas que una com- putadora, y tenemos que darle un con- junto de instrucciones para que re 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 mas 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 mecdnicos, pero nos brin- dan un poder mucho mayor por el nivel de detalle que podemos lograr. meras experiencias, con uno de esta tiltima categoria: MikroBasic. Més adelante, cuando ya nos quede claro el funcionamiento de nuestro mi- cro, podremos aventurarnos a hori- zontes mas complejos. PicBasic Pro Uno de los lenguajes més populares para los micros PIC es el PicBasic Pro (PBP), de microEngineering Labs Como su nombre lo indica, es un compilador Basic que posibilita la programacién en un lenguaje mucho mis sencillo que el ensamblador de MicroChip. Es similar al Basic del Ba- 95 ‘5. HABLAR CON NUESTRO ROBOT sic Stamp y posee librerfas similares a &xe, Produce cédigo para una gran va- riedad de PIC de 8 a 68 pines. Para crear un programa a ser compi- lado por PBP, utilizamos nuestro edi- tor de texto plano preferido, y graba- mos el archivo con extensién .BAS. Luego llevamos ese archivo donde est el compilador pbp.exe y alli eje- cutamos Pbp nombreDelArchivo. Si el cédigo ¢s sintécticamente co- rrecto, se creard un cédigo interme- dio de extensién ASM, que invo- card al ensamblador para generar, por ultimo, un archivo HEX. En este archivo esté el cédigo del micro, y lo bajaremos luego con el softwa- re programador. Veamos un ejemplo de cédigo en PicBasic Pro: ia ENCONTRAR LOS LENGUAJES PARA PROGRAMAR LOS Si en el puerto tuviéramos ¢9 un led, tendrfamos una bonit se enciende y apaga indefini Los creadores de PBP han d do una suite, Micro Plus (Figura 2), que une rramientas necesarias en IDE. Eleditor posce coloread taxis y ayuda sensible al com explorador de cédigo pi las funcionalidades convencios los editores de texto como ca piar, pegar, btisquedas y reer entre otros. Ademds, la IDE mite realizar In Circuit Del (ICD, depuracién en circuit saltar cada linea de cédigo ejecuta en el micro. Podemo puntos de corte y ejecucién g0 paso a paso, lo que facilita medida la depuracién de nues grama. MicroCode Studio bign nos brinda un cargador d go (bootloader) para incor nuestro PIC, de manera que n Figura 2. Vista del MicroCode Studio Plus, IDE para el PicBasic Pro. Sélo lo necesitaremos la pri- ver, para cargar este bootloader. uno con registros del micro. Es integrable con simuladores de PI ‘compilador de lenguaje C ha si- isefiado exclusivamente para la PIC. Se considera el compila- “més optimizado para estos mi- Tiene una libreria de funciones efinidas, lo que facilita la pr lcibn en un lenguaje de bajo ni- somo el C. Sin estas funciones, muy engorroso programar el cédigo assembler en el medio nuestro programa en C, y hacer re rencia a las variables de éste. Para ner una idea de la sintaxis, desarroll remos el mismo ejemplo que most mos antes con PicBasic. rh ve) { » Cuenta con controladores de | gutput high(PIN 80); ‘enciende £n tiempo real y conversores el: % Bicos digitales, Por cjempl ‘ wee F ales. ‘jemplo, 1us(500); ‘espera 500 NOS con la instruccién READ_ baal Sears es ‘Que permite leer un valor del “a Bk Comunicacién con el robot gs.un programador para nuestro conversor mencionado. Podemos de- finir variables estructuradas cuyos componentes se correspondan uno a IC como el MPLAB y podemos mezclar de fe- te- la- ra 97 5. HABLAR CON NUESTRO ROBOT Cabe aclarar que las funciones que se presentan en este ejemplo desen- cadenan cédigo mucho més optimi- zado que el generado por Basic. La firma CCS también ofrece IDEs Por iiltimo, llegamos al | para Windows, llamadas PCW y PCWH. La tinica diferencia es que PCWH soporta la serie PIC 18. Po- seen un editor de cédigo fuente (C ‘Aware Editor, Figura 3), que realiza co- oreo de sintaxis, control de tabula- 98 ‘include <16F877.n> naing PrAnte("Press any key to begin.\n\r" gete( printe(t khe signal activated.\r\n"); whi Le (TRUE, ‘output migh(PIM_f delay Us(5 ‘output_low(r' Figura 3. Vista del editor C Aware de CCS. uses HS,MOWDT ,MOPROTECT .NOLUP ciones, provee ayuda sensib texto y pareo de llaves y Brinda un asistente (Figura4) vos proyectos donde, en podemos generar la escrucn del programa, También pern zat depuracién, pero hardware especial para su tesis, para programacién en vel, es la opcién que present rramientas para facilitar el pe que facilita mucho la progra- ya que presenta las carac- Js que hemos mencionado, co- ploreo de sintaxis, ayuda sensible arte, los desarrolladores nos per- bajar un demo gratuito com- e funcional, donde sélo te- tun limite de 2Kb en el cédi- ente, lo que es suficiente para to- s proyectos que desarrollaremos 0 libro. Soporta una gran dad de modelos de PICs y pro- ciona librerias para RS-232, cone- es USB, interfaz para displays, Dado que es el lenguaje y la que vamos a utilizar, comence- estudiar en detalle cada una de MikroBasic gido para nuestros ejempl yectos. La empresa Mikro ca ha desarrollado un compiladores para micros, lenguaje C como para ts Satin Ome Comunicacién con el robot Instalacion de mikroBasic Para instalar el programa en nuestra computadora, debemos dirigitnos a la direccién www.mikroe.com/en/ compilers/mikrobasic/pic/ y en- trar en la seccién Download, donde podremos bajar la ultima version. Los pasos de instalacién son muy sencillos, clisicos en cualquier pro- grama de Windows (Figura 5). En la misma seccién del sitio pode- mos encontrar actualizaciones y par- ches, por lo que recomendamos visi- tar periédicamente el sitio. También podemos encontrar un conjunto de manuales, muy claros y didécticos, que nos permitiran completar nuestra breve mirada sobre la herramienta. En nuestro caso, todos los ejemplos que mostraremos y las indicaciones Qte On Ore 5. HABLAR CON NUESTRO ROBOT de operacién del mikroBasic estén basados en la versién 5.0.0.2, del 31 de octubre de 2006. Editor de cédigo fuente de mikroBasic Uno de los puntos mas fuertes de la IDE ¢s el editor que nos proporciona. Como todo editor de texto, presenta las utilidades clasicas como cortar, co- piar y pegar, y buisquedas y reempla- zos masivos. Pero ademés, nos oftece: * Coloreo de sintaxis. * Asistente de cédigo. * Asistente para pardmetros de fun- ciones. * Plantillas prearmadas. * Autocorreccién de tipos. * Bookmarks. © mkroBasic Setup Choore Components Choose wich fests of arose you want ort (ec the compares you nat ntl auch th ponents yu der nko bat ck Nesta contue Set comparerstotet Petes 1.0 Estas y otras opciones se pue gurar desde Tool Preferences... cer clic sobre el icono Tools (t Para utilizar el asistente de cédij vez que ingresamos las primet de lo que deseamos escribir, pi mos CTRL + ESPACIO y todos k tificadores validos que comi esas letras se desplegarén en unl de lista. Alli podremos elegir fbamos a escribir o, simplem tinuar con el texto deseado si contramos (Figura 7). Es nec lizar una primera compila que funcione el asisteni®, También podemos activar tente para los pardmetros de ciones (Figura 8). Para ello, mos la llamada a la funcién do abrimos el paréntesis, a i Figura 6. Editor de preferencias de la IDE de mikroBasic. Dac ibe Comunicacién con el robot Compiler Help Files 2 tramples igura 7. Ejemplo de la lista presentada por el asistente de cédigo cuando escribimos de y luego CTRL + ESPACIO. "85 se puede salir de situaciones problematicas gracias a estos materiales. fentamos en concursos de belleza, cuando el tiempo nos corre y debemos pre- fn el torneo, jtodo lo que una fuertemente a nuestras piezas sera valido! Figura 5. Durante la instalacién, es recomendable dejar todo como seleccién de componentes para mikroBasic, ya que no ocupa demasiado 101 100 ‘5. HABLAR CON NUESTRO ROBOT camente aparecerd un pequefio car- tel con el o los pardmetros corres- pondientes, que nos ini nombre:tipo qué funcién cumple el pardmetro y de qué tipo es. + program Led piinking : Tne Ins 25 celay_ne4 to TRISD = 0 iu waite crue ‘ PORT = not PORT * Poyyie sod Figura 8. Asistente que informa los pardmetros de las funciones. Figura 9. Editor de las plantillas de cédigo. 102 Para las estructuras mds com como las funciones, los mientos, los encabezados plorador de codigo (Code Explo- encuentra en la zona izquierda ventana. Nos proporciona una Jos {tems declarados en el c6- Desde alli podemos saltar a cual- de las declaraciones con sélo idoble clic sobre ella, En la par- erior del explorador podemos ar dos solapas mds. La solapa nos proporciona ayuda sobre la de funciones. La ultima sola- board) nos proporciona una Jos atajos de teclado del editor. podemos utilizar las planti ra9). Por ejemplo, si escribin y presionamos CTRL + J, at camente se escribiré la completa de una funcién completemos con los datos rios. También tenemos la dad de crear nuestras propi tillas en la opcién Auto © Tools/Preferences.. Por otro lado, cabe mencio ademas de las caracteristi presentamos, tenemos herra para realizar autocorrecel mentar 0 descomentar un de lineas de cédigo, insert y saltar de una a otra ¢ ir mero de linea de cédigo. eBasic proporciona un depura- nivel de cédigo fuente (Figura ros permite simular el com- miento del micro y nos asi tla depuracidn de errores. Dado Comunicacién con el robot que ¢s a nivel de cédigo y no tiene lectura real del micro, no permite si- mular ciertas propiedades intrinsecas del procesador, como temporizado- res, interrupciones, etcétera. Una ver que hemos compilado nues- tro programa (Project/Build), cjecuta- mos el depurador en Run/Start Debug- ger. Automdticamente nos marca la primera linea de cédigo y nos aparece la ventana Watch, que nos permitird re- alizar el control de la depuracién. En esta ventana podemos visualizar varia- bles y registros del PIC, actualizados segiin la ejecucién del programa. En la parte superior de la ventana encontra- ‘mos iconos para el control de la ejecu- cién del depurador (arranque, pausa, detencién) y mecanismos de ejecucién del cédigo paso a paso. Debajo de es- ta barra tenemos un cuadro de lista pa- ‘GD [seybowd] Code Exner |. ate] Fevbowrt a FI Heb | CTALeSHIFTSE E6ePioiect CTRLeN New Unt i CTAL+O Open CTAL+FS Compe SHIFT +F9 Buid at Fi Progam ii F20ptone d CTRL¢FT1 Conple and roger CTRL+SHIFTSES: Clear breakp 7 SHIFTF4 View breakports |) ‘Advanced Editor shortcuts CTRL+SPACE Code Assit CTAL.SHIFT+SPACE Paranal CCTRL*D Find dectation || -CTAL+E Incremental search CTAL+S Gotolne EL sone | ‘Convertor! Fina ue contiene el explorador, la ayuda y los a Figura 10. Aqui podemos ver la parte de la ventana jos de teclado. 103 ‘5. HABLAR CON NUESTRO ROBOT Comunicacién con el robot de la ventana podremos ver cémo se como estdn por defecto. Au- simula el paso del tiempo. Si hace- icamente nos aparecerf un mos doble clic sobre una variable, ‘con el encabezado del progra- podremos modificar su valor en el compilador. Para comenzar, formato numérico que deseemos. abrir mikroBasic, cerremos Otras ventanas de depuracién que to que tengamos abierto y ¥ podemos encontrar si nos dirigimos menti Project/Close Project, a View/Debug windows son: un proyecto nuevo en Prg Project..., donde nos ap: tana que podemos ver en ra poder agregarle variables y registros al cuadro inferior, que nos permitiré Para poder probar las opcion nen [a parte inferior las de- purador, realicemos seguir el comportamiento de ellos pa- programa sencillo, idéntico a soa paso. En ese cuadro, cuando agre- mos utilizado en cada gj gamos una variable 0 un registro, po- demos ver el nombre, el valor y la di- reccién de memoria que ocupa. GLO) a oe or ow * Stopwatch: esta ventana nos mues tra la cantidad de ciclos/tiempo utilizados hasta la ejecucién del ul- ‘baa (Btn at s) Completemos el nombre, i timo comando (Figura 13). El valor y la descripcién del proyeet Delta nos muestra el ntimero de ci- mos el procesador (utili ; clos/tiempo entre la tiltima linea Figura 14. Ventana del controlador 16F88) y la velocidad de ejecutada y la linea activa. Con el de la depuracion. nuestro caso, 4.0). Las bz botén Reset To Zero podemos po- ner en 0 el valor de Stopwateh, pe- ro continuaremos acumulando en el cuadro Current Count. * RAM: nos muestra el contenido de la RAM ¢ indica los tiltimos valores cambiados en color rojo. * History: presenta las tiltimas N Iine- go de realizar la compilacién as de nuestro fuente que se han eje- HL +F9) cjecutamos el depurador _cutado, pero en cédigo assembler. Podremos ver cémo sefiala la ea posterior a main y abre nlana Watch Window. Alli po- mos afiadir las variables TRISB y MB para realizar el seguimiento Sus valores. Si ejecutamos paso a ©: Nos indicard en qué linea nos pOAtramos y la resaltard con color, 'os la modificacién de los va- S de las variables. Cuando Ile- BOS a delay, en la parte inferior Figura 43. Ventana del Stopwatch. Bio Sr Cy ‘igrseed Schaar BS} tis Se ates a Figura 12. Creaci6n de un proyecto nuevo. 105 Comunicacién con el robot, 5. HABLAR CON NUESTRO ROBOT archivo estilo Intel. Con él Por tiltimo, cuando procedemos a Manos a la obra eramaremos el micro. compilar, si tenemos errores en Como ya hemos visto, mil nuestro cédigo, aparecerin en la organiza sus aplicaciones en archivo binario de distribu- parte inferior de nuestra pantalla, en tos. Estos proyectos estin co | Puede agregarse a otros pro- la ventana de errores. tos por un archivo .PBP d eros sin entregar el fuente. Alllf se nos indicard la linea del error, del proyecto y uno o més rchivo en cédigo assembler su mensaje y la unidad donde se pro- _cédigo fuente con extensién 15), pero con un conjunto dujo. Si hacemos doble clic sobre es- Cabe aclarar que sélo ‘comentarios que lo hace muy ta linea, iremos directamente a su compilar un fuente si gible y més facil de entender. Por posicién en el cédigo fuente. parte de un proyecto. jemplo, para cada instruccién del Una vez que tenemos cread ente en Basic aparece la lista de yecto, como vimos en el p indos en assembler. También terior, podemos editarlo si demos verlo una vez que se ha- Project/Edit project, donde 1 gencrado desde el ment View/ derosa del mercado para la progra-_recerd a misma ventana qt Assembly. Para aprender, es macién de PICs. Ahora que ya co- para crearlo, Cuando com omendable que miremos el nocemos la herramienta, pasemos a nuestro proyecto, se nos get ISM generado por el ejemplo que crear nuestros propios programas. _ siguientes archivos: ilizamos para el depurador. Probablemente, todas estas carac- teristicas del depurador de mikroBa- sic lo convierten en la IDE més po- “ate ate : ans f yste meen oy ewretenen = Figura 15. Aqui podemos ver e! assembler del cédigo que enciende el led. Los comentarios que tiene lo hacen més legible. Figura 14. Una mirada sobre todas las herramientas que presenta la IDE de mikroBasic. 106 107 5. HABLAR CON NUESTRO ROBOT MikroBasic nos proporciona un conjunto de variables globales y constantes predefinidas. Todos los registros estén implicitamente de- clarados como variables globales de tipo byte y son visibles en todo el proyecto. También nos proporciona constantes como PORTB, TMR1, etc¢- tera, Todos los identificadores estin en maytiscula, tal como se los iden- tifica en las hojas de datos de Mi- crochip. Para ver la lista completa de predefiniciones, podemos abrir el archivo .DEF correspondiente al micro utilizado, Estos archivos se encuentran dentro de la carpeta defs, donde se instalé mikroBasi Con respecto a las variables, pode- mos acceder a ellasa nivel de bit. Por ejemplo, si declaramos la variable mivar de tipo longint, lo cual define Figura 16. MikroBasic nos brinda magnificos graficos sobre el c6digo de maquina que genera nuestro fuente. Comunicacién con el robot un rango de 32 bits, pos der a cualquiera de ellos mos mivar.n, donde nes y entre 0 y 31, que indica el accedemos. Este acceso es. vel de lectura como de ¢s : operador de asignacién. * 23: literal. * newline: fin de la sentencia, Los literales son aquellas expresiones que no deben ser evaluadas, que ya tienen valor por s{ mismas. En el ca- so de los literales que representan nui- 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 $ 6 Ox ($3F 6 0x3F) © en binario, si anteponemos % (%100101). Los literales de punto flotante representan el signo decimal con un punto. La estructura es: par- teEntera.parteDecimalExponente, utilizamos la notacién cientifica tra- dicional. Algunos ejemplos: Elementos del léxico_ Cuando un cédigo fue lado, la primera fase que es la de tokenizacién. E mento, una herramientall ser recorre el archivo de noce unidades significati como palabras clave, lite bles, etcétera, y los esp co. En realidad, se lama blanco a todos los espaci ciones, fines de linea y coi Todos ellos determinan el el fin de un token. Por fos comentarios se utiliza el ofe como iniciacién y se fina- on el fin de linea, No podemos comentarios de mas de una li- pto que comencemos cada con un apéstrofe. ins son los elementos més fios que tienen significado por smos en Basic. MikroBasic re- ee los siguientes tokens: ords (palabras clave). Los literales de caracteres y de cade- na se encierran entre comillas. Las comillas consecutivas, ””, se consi- deran como un carécter nulo. Con respecto a los identificadores (nom- bres de variables, de funciones, constantes, etcétera), pueden tener una longitud arbitraria y contener 5. HABLAR CON NUESTRO ROBOT de la Aa la Z, el cardcter os del 0 al car: ‘Declaracién de _ (guién bajo), y los digi din. include Ceeeeeeaenresnen “Cuerpo de progr ediniento>(, ..) ‘Declaraciones (aeeennanaasensenensens saiah stipos de funciones ‘aqui van ‘Declaracién de sinbolos synbol. end. “Declaracién de constantes const. Las otras unidades deberl siguiente aspecto: {UT} LIMITACIONES DE ANIDACION Cada vez que desde una funcién 0 un procedimiento \lamamos a mismo en el caso de recursividad), decimos que aumentamos el niv en uno. Lamentablemente, las llamadas recursivas no son sopo Basic. De todas maneras, también tenemos un limit que en el caso de la familia PIC16, es de 8 niveles. faracién de constantes racion de variables 110 Comunicacién con el robot “Declaraciones de procedimientos sub procedure (, ..) end sub ‘Declaraciones de funciones sub function (, ..) end sub Alcance y visibilidad Llamamos alcance de un identifica- dor a la parte del programa donde el identificador se puede utilizar para acceder al objeto al que apunta Hay diversos alcances segtin el lugar donde hacemos la declaracién del identificador, veamos: i el identificador se declara en la seccién de declaraciones del médu- lo principal, fuera de toda funcién © todo procedimiento, el alcance se extiende desde la declaracién hasta el final del archivo, y se incluyen to- das las rutinas que allf se encuen- tran, Diremos que estos identifica- dores tienen un alcance global. * Si en cambio se declara en una funcidn o un procedimiento, su al- a. 5. HABLAR CON NUESTRO ROBOT cance se extiende hasta el final de la rutina, En este caso, los identi- ficadores son locales. * Si se declara en la seccién interfaz de un médulo, su alcance se ex- tiende desde donde se declara has- tacl final, ya todo médulo que use el médulo donde se encuentra la declaracién. La tinica excepcién son los simbolos, que tienen un al- cance limitado al archivo donde fueron declarados. * Si se declara en la seccién imple- mentacién de un médulo, pero no dentro de una funcién 0 un pro- cedimiento, el alcance va desde la declaracién hasta el final del ar- chivo, y esté disponible en todas las funciones y en todos los proce- dimientos del médulo. Llamamos visibilidad de un identi- ficador a las regiones del fuente don- de podemos acceder a los objeros apuntados por él. En general, alcan- ce y visibilidad coinciden, pero no necesariamente. Podriamos tener un identificador que se vuelva invisible en una funcién 0 en un procedi- miento porque un identificador lo- cal tiene su mismo nomb bargo, el objeto identifies presente, aunque no es sintesis, la visibilidad m de al alcance, pero si pi que el alcance exceda a lay gel mismo tipo de datos. Por No profundizaremos desarrollo de programas dado que tealizaremos pequefios. Cuando ve: nes sobre fiitbol de robo maremos algunos méd cién del piso y de la pel Variables, constat Las variables, como ya sa simplemente un iden apuntador a una zona de contenido plausible de ser n Todas las variables se deb antes de usar. Para ello nen la ejecucién del programa, cir, no consumen memoria Se declaran de la siguiente mbre de la constante debe ser tificador valido. Por conven- ponen todas las letras de su en maytiscula, para identi- rapidamente en el codigo. que la declaracién de tipo es op- cabe aclarar que si no lo ha- elegirs el tipo més chico que La lista_de_nombres_de una lista delimitada por identificadores. validos, Comunicacién con el robot permita el valor asignado, Aqui te- nemos algunos ejemplos: 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 especifico para cada identificador. En estos lenguajes, los tipos sirven para determinar la cantidad de me- moria necesaria, interpretar los bits que encuentran en el objeto cuando acceden y para asegurar asignaciones y pasajes de pardmetros correctos. RANGO 0.255 65535, & +46.80564774407"1038 Tabla 1. Tipos simples de variables. 113 5. HABLAR CON NUESTRO ROBOT Los tipos simples son los que pode- mos observar en la Tabla 1. = a En mikroBasic también contamos Esto le asigna al tercer elen con arreglos. Un arreglo (Figura 17) cs una coleccién de elementos del mis- mo tipo, identificados en stu conjun- elemento es el 0) el valor to con un nombre ¢ individualmente También podemos crear con un indice. Por ejemplo: multidimensionales. P: crear una imagen sencil como una planilla, donde indica ka fila y el otto la co Esto declara un arreglo de nombre ejemplo, para declarar un semana que contiene siete elementos dos dimensiones escribimo de tipo byte. Cada elemento estaré identificado como semanafi], donde ies un numero entre 0 y 6. De esta manera, accedemos a cada elemen- to, tanto para su lectura como para su escritura. Por ejemplo: ble sueldos que tiene 23 EE) He) indice: OF 11 2 3 4 5 Figura 17. Un arreglo es una coleccién de elementos del mismo tipo identificados por un indice. HI} CICLOS INFINITOS coleccién (recordemos que De esta manera, tenemos desde sueldos[0] [0] hasta 22[31]. Es decir, 276 cle- [Las cadenas son arreglos es, y se las declara de esa eclara una variable nombre que 4a.una cadena de 14 caracte- todas formas, podemos acce- la cadena como un solo ele- ‘como podemos ver aqui: ‘i te ejemplo, le asignamos una a de 4 caracteres a la variable . El limite de cadena a asig- de 14 caracteres. turas spresentar objetos cuya infor- nes un conjunto de datos de M505 tipos, utilizamos estructu- or ejemplo, si queremos repre- ‘un punto, necesitamos la co- tada x y la coordenada y com- Por un nombre tnico. La cién de la estructura es la que ®S ver a continuacién: Comunicacién con el robot I EFICIENCIA DE TIPOS Donde nombre_estructura y miem- bro1 son nombres vilidos para los identificadores. Por ejemplo: Una ver creada la estructura, se la uti- liza como si fuera un tipo en la decla- racién de identificadores. Por ejemplo: E 5. HABLAR CON NUESTRO ROBOT Comunicacién con el robot Jo ¢s verdadero o falso. Lo O DIVISION POR CERO man ene [a misma légica Ser os operadores a nivel de bits. vin, podemos pensar en verda- Por ejemplo: * Relacionales: los operad pmo 1 ¥ en falso como 0, y a cionales comparan dos ex ide alli, analizar el resultado de y devuelven verdadero o fi cién como si fuera una ope- la comparacién realizad anivel de bits. los que se muestran en la * De bits: operan sobre bits i jas Ies de los operandos. pen todo lenguaje de progra- Ambos operandos deben n procedural, tenemos un pe- fo conjunto de sentencias que el dor convierte en las instruc- partir de esa librerfa comenzaremos de cédigo m4quina corres- a construir la propia para aumentar ntes. En general, este con- el poder de nuestro lenguaje en el es minimo, y se enriquece con Ambito especifico de nuestro traba- reria de funciones y procedi- jo. Veamos las sentencias que nos fos que ofrece el ambiente. A proporciona este Basic. Para acceder a cada elemento de la es- demos ver en la Tabla 2. G, tructura, simplemente escribimos cionar que el operador identificador.campo_de_estructura. puede usarse delante de ro para cambiar su signo En mikroBasic podemos encontrar los siguientes operadores: con signo o sin signo si mente. Los operadores deb * Aritméticos: estos operadores per- de la Tabla 4. miten realizar csmputos matemé- ticos. Sus operandos son numéri- Los operadores and, or y cos y también retornan un resulta~bién se pueden utilizar co do numérico. Ellos son los que po-siones ldgicas, es decir, Ds ase ur + ‘Suma 5 +3 retoma 8 q Retoma 1 si ambos bits en la misma 12 (%1100) and posicién estén en 1. 10 (%1010) retorna Muttiplicacion 5 * 4 retoma 20 8 (%1000) Division entera 14 div 4 retoma 3 Tabla 2. Operadores aritméticos. Retorna 1 si uno de los 2 bits en la misma 12 (%1100) xor Posicidn esté en 1 y el oto no. 10 (%1010) retora oe q 6 (%0110) 3 ‘gual 5 = 5 retomna Verdadero lente ca Muere los bits una posicién hacia la igquierda. 7 (%0111) << 2 retoma 28 (%11100) Mayor que 3.5+17.2>5.2+93 Los bits ubicados més a la izquierda se descartan y ala derecha se rellena con ceros.. Mayor o igual 3+2>"1+4 retomay ual Tabla 4. En esta tabla podemos observar los operadores Tabla 3. Operadores relacionales. de bits con los que podemos trabajar. 116 117 5. HABLAR CON NUESTRO ROBOT Sentencia asm La primera sentencia que presenta- 's asm, que permite incorpo- rar cédigo assembler en nuestro cé- digo Basic, Su sintaxis es: remos asm conjunto de instrucciones en assenbler end asm Dentro de esta sentencia, debemos comenzar los comentarios con pun- to y coma. Luego, al compilar, este cédigo quedaré directamente tradu- cido a los valores correspondientes de cédigo maquina Asignacién Aunque ya la hemos usado, no pode- mos dejar de presentar la asignacién que tiene la siguiente forma: variable=expresién La expresin se evaltia y asigna su re- sultado a la variable. No debemos con- fundir este operador con el operador Producir un error y el programa se puede colgai 118 Bd VARIABLES DENTRO DEL CODIGO EN ASSEMBLER Dentro del cédigo en assembler, podemos usar variables que est la parte Basic de nuestro fuente. Una recomendacién es estar segi relacional homénimo. Simple contexto de uso de cada na la semadntica que utilizar lador para tomarlo como cién 0 un operador. tra que esa s 5 mues Mea)» encores SCC Bio grupo. Si no estd, se con- Bon las sentencias posteriores 4g. Por ejemplo Sentencias condicionales Como en otros lenguajes p les, contamos con senten cionales que nos permiten u otro curso de accién s minada condi .3=1 then os que el bit 3 del puerto Sti definido como entrada y los 2y 3 del puerto B como salidas I else hacemos aqui es encender el otras senten de B si la entrada registrada en end if Bide A se enciende, y encender el de B en el otro caso. sentencia que define el flujo del segiin una condicién es la select case. Su sintaxis es: La expresidn del if debe set presién booleana, es det vuelva verdadero o falso. de retornar el valor verdadet cutan las sentencias que € tro del primer grupo. Siel grupo de sentencias estdi (los corchetes no deben @ case selector fe valor_1 sentencias_1 Comunicacién con el robot case valor_2 sentencias_2 case valor_n sentencias_n [oase else sentencias_por_ defecto J end select EI selector es la expresién que se evaltia para luego determinar si coin- cide con alguno de los valores de las sentencias ease. Esos valores pueden ser literales, constantes 0 expresio- nes. El ease else es optativo, y sus sentencias se ejecutan si no ingresé en ninguno de los ease anteriores. En los valores podemos agrupar un con- junto de ellos separados por una co- ima, para que se ejecuten sus senten- tor coincida con cias cuando el sel cualquiera de ellos. Por ejemplo: select case resu informacién completa y detallade de cada PIC, podemos recurrir a sus hojas datasheet), Microchip las ofrece en su sitio www.microchip.com. Estas hojas 4escripcién profunda del micro, su diagrama de pines en todos los modelos, ternos, organizacién de la memoria, funcionamiento de los timers, etcétera. 119 5. HABLAR CON NUESTRO ROBOT case 0 oper=0 case 1, 4, 7,9 oper=1 case 2,5,8 oper=2 case else oper=3 end select En el caso de que resu valga 0, oper tomard el valor 0. Si vale 1, 4, 7 6 9, oper tomard el valor 1. En el caso de que sea 2, 5 u 8, el valor de oper sera 2. Y en otro caso, oper saldra de esta estructura con valor 3. Sentencias de iteracién Las sentencias de iteracién nos per- miten repetir un conjunto de sen- tencias una determinada cantidad de veces o segtin se produzca una condicién o no. En el primer caso, la sentencia for nos permite definir un ntimero 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- mentard en cada repeticién segin lo 120 que esté definido en valor step no se define, el salto en uno. El contador comieg valor indicado en valor. en algiin momento valor_final, cl ciclo deja de Es decir, cada vez que se contador, el contador a dicado por valor_salto y ha superado el valor_final, no vuelven a ejecutarse las del ciclo. Por ejemplo, endl te caso, el arreglo a toma ef en cada posicién del 0 al 7, pose ejecutan nunca, porque Bsn rerorna falso en la pri- uacién. Por ejemplo: acta- ejemplo, logramos feque fo que hicimos en el an- En general, cuando la condi- ide corte esta basada en alguna ble que aumenta en forma line- for i= 0 to 7 f a[i]=255 Jen 1, de N en N) se utiliza next i ntencia for. En otro caso, cuan- condicién es més compleja y el Bportamiento de las variables que nen juego en la condicién es ymplejo y menos lineal que un ento de N en N, es necesaria €structura while. Otra sentencia que pod para una repeticin es la ¢ while expresién sentencia: wend Retsitamos que el conjunto de Bncias que se van a repetir se eje- Cada ver que se esté por conjunto de sentencias, s€ expresién. Si su resultado dero, se ejecutan. Si es fals tintia la ejecucién con las § posteriores al wend. r neste. comportamient mos tener casos en los qi Porlo menos una vez, debemos Atenido en algén momento de la ejecuc el mismo resultado eternamente, tenemos algiin error conceptual en ciclo de repeticién. También puede ocurrir que utiticemos métodos des- Comunicacién con el robot evaluar la expresién luego de la eje- cucién de las sentencias. Para ello tenemos la sentencia do, con la sigui i i do sentencias ‘Joop until expresion En este caso, no sélo el momento de evaluacién varfa con respecto al while. ‘También la légica se invierte. Si al lle- gar a loop until la expresin es falsa, se vuelve a ejecutar el ciclo. De lo con- trario, se continia con las sentencias posteriores a loop until. Tomemos el mismo ejemplo anterior y traduzci- moslo a esta nueva estructura, como vemos a continuacién: i=0 do a[i]=255 4 Loop until i>7 DAR VUELTAS POR LA ETERNIDAD ental analizar si las expresiones que escribimos para ser evaluadas en turas de repeticién tienen alguna o algunas variables que puedan modifi- in del programa. Si la expresién mo el break, pero no es recomendable. 424. ‘5. HABLAR CON NUESTRO ROBOT oO INTELIGENCIA ARTIFICIAL El robot quedard con sus acn Si nos interesa conocer més sobre el tema, debemos saber que existen mi- es de libros de divulgacién vincutados alla inteligencia artificial y que to 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 det libro esta dada en que en Sus paginas, el autor hace un recorrido por dif 5, como la fisica, {a Logica, la matemética, ta biologia y otras, para presentar y sostener su postura. Como podemos ver, el conjunto de sentencias se ejecuta sf o sf una vez en este caso, Un uso muy habitual de esta sentencia es la espera de un estado de un sensor. Por ejemplo, si conectamos un se 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 Joop until PORTB.3=1 122 Comunicacién con el robot continiia con las sen- Otra sentencia de salto es exit, que | wend. nos permite salir de una funcién 0 de un procedimiento y volver al invocado a ai ciclo ¥ el estado en el que se enconer ses posseriores a de llegar al loop, y cuando se la activacién del sensor, contin racia de salto es el goto, punto en el que se hal re . . Tee aa has sentencias que le siguen, Sentence saltar incondicio- la rutina, También contamos 208 Peery etiqueta referida. Su gosub y continue, pero como enten ente demos que violan demasiado el flu- jo del programa y porque son féc mente reemplazables por alguna de las opciones que ya presentamos, no vamos a ver detalles sobre ellas. Lo Sentencias de salto de de programa Estas sentencias permite el flujo de ejecucién de um ma. Ninguna de ellas es aconsejable. Para ser riguro que tengamos que trabajar Goa mancra, sata ala senteneiatinico que nos interesa resaltar en es- fence donde ed ubicada la ei punto esque todas esas seten- Prasinass de a eiqueraesla_ cist desl hacen ms comple por las sentencias ya vistas, Wemos a concinuacién, y cabe depuraciny la lectara del eign es dificil realizar el segui arque debemosinclut los dos por lo que aconssjamos evita ra la depuracién de estos pro htos en la sintaxis. siempre que sea posible. Un salto a otro lado en a mento marea a cualquiera: Como adelantamos, la break permite salir de cualg tructura. Por ejemplo: while true if PORTA.1=1 tt 5 : tuto hemos realizado un primer acercamiento a los diferentes len end if podemes utilizar para la programacién de los micros de Microchip. De nos hemos quedado con el que consideramos més sencillo, y que pro- wend resulte familiar a todos los que alguna vez programaron en algdn MikroBasic, ademés d eindagnes in reels SG ey Se En este caso, el conjunto de cias posterior al if se ejecut nitamente. Pero, si en algil Son pequefios, dado que en el préximo capitulo, mento el segundo bit del pt bdremos comenzar a darle vida a nuestro robot. se enciende, el break obliga @ 7 123 ACTIVIDADES TEST DE AUTOEVALUACION 1 ZAqué llamamos lenguajes de bajo y al- to nivel? ¢Qué ventajas y limitaciones presenta cada uno? 2 (Qué caracteristicas presenta el Pic- Basic Pro? 3 {Cual es la IDE de PicBasic Pro? ,Qué caracteristicas presenta? 4 (Qué es el ICD? 5 (Para qué es util programar en CCS. C? 6 Recuerde tres razones por las cuales elegimos mikroBasic para programar nuestro robot. 7 (Qué caracteristicas presenta el edi- tor de mikroBasic? @ {Cémo es la organizacién de archivos de un proyecto en mikroBasic? 124 9 (Qué son los tokens y los blanco? 10 ,Qué médutos encontrar yecto mikroBasic? ‘11 Defina el alcance y la visibi variables. 12 :Cudles son los tipos de op podemos encontrar en mil 13Compare las sentencias | do. Para cada una de elle una estructura con el mism tamiento mediante la cada una de las otras dos plo, construya una estru while y otra con do. Ge las caracteristicas fundamental ds robots auténomos moviles es la filidad de transportarse por el biente en el que desempefian sus Bs, La navegacion de un robot vcilla si el tiempo que nos A llegar hasta un punto determinado Djetivo en esi te capitulo es tipo de motores BM0s utilizar en nuestro robot Como Program arlos. MPP hrencon a cro lectores@redusers.com El movimiento del robot Tipos de motores ‘Motores paso a paso (iotores PaP) Servos Resumen a etividades (6. REGORRER EL MUNDO EL MOVIMIENTO DEL ROBOT Nuestro robot crece. Después de va- rigs intentos le hemos podido brin- dar una inteligencia precaria. Puede encender 0 apagar un led, lo que nos emociona cada vez que ocurre. Pero nada nos conforma. Queremos que empiece a andar, a hacer su propio camino. Y es por eso que analizamos con cuidado cudles serdn sus futuros pasos. Légicamen- te, en los diferentes tipos de am- Figura 1. Determinaci6n de los polos por el pasaje de corriente en Ia bobina. ok Ze Ae Figura 2. Si invertimos la polaridad de la bobina, cambiamos los polos del nucleo, bientes donde puede moverse tro robot necesita de diversos, nismos de locomocién. ;Volagg otros planetas? ;Se sumergird ca de tesoros? -Reptard en p movedizos? ;O sélo se traslad bre un piso pulido, sin reb pelos que traben sus motores Como ya habra tiempo de h proezas, por ahora nos basta, correr con dos ruedas senci superficie que no presente mas. Cuando veamos que na el mundo de dos dime piso, estaremos en condicig proyectar otros horizontes. sores clésicos que podremos utili Omhora presentaremos en forma da cada uno de ellos, y desa- mos la electronica necesaria conectarlos Con nuestro contro- or, Ademds, Veremos un conjunto ejemplos de programacién para der manejarlos en forma efectiva. posible que al principio resulte un eco complejo, pero creemos que los nplos aclararan el panorama, es de corriente continua motores de corriente continua €) son los actuadores que podre- conseguir con mayor facilidad, y ¢seguramente estardn presentes en Tipos de motores hos de nuestros robots. En gene- Como hemos comentado estin formados por dos imanes los anteriores, la arquited os a la carcasa del motor y un nuestro robot con respecto a nto de bobinas de cobre en el canismos de locomocién § el motor. El funcionamiento se madamente sencilla. Usaret nla atraccién o la repulsién en- das laterales, que nos pert campo magnético que se gene- control mediante un sist las bobinas por el paso de la elec- gramacién al alcance de to desde el punto de vista i son ficiles de implements Capitulo 8, donde const cuerpo de nuestra criat remos todas las posibilid comocién que tenemos © robot, pero por ahora P nuestro esfuerzo en com motores, que no €s poco. - Aunque ya hicimos una if muy breve de cada uno de! RECICLADO El movimiento del robot tricidad y los imanes que se encuen- tran alrededor de ellas. Veamos c6mo. se produce esta interaccién. Cuando la corriente eléctrica pasa por la bobi- na, genera en el nticleo un campo magnético con una orientacién de- terminada, es decir, un polo Norte y uno Sur (Figura 1). Si cambiamos la polaridad de la bobina, se invierte la direccién de los polos (Figura 2). Los dos imanes que se encuentran en la carcasa tienen polos distintos. Si aprovechamos el efecto magnético de que los polos iguales se rechazan y los opuestos se atraen, cambiamos la polaridad de la bobina, y genera- mos rechazo 0 atraccién entre ellas y los imanes de la carcasa (Figura 3). De esta manera, y si consideramos que tenemos més de una bobina, genera- mos el movimiento del motor con su respectivo torque. Este ultimo con- cepto se refiere a la potencia o la fuerza que tiene el giro del motor, y ees (6. RECORRER EL MUNDO El movimiento del robot 4 Figura 3. Efecto de giro del motor gracias a la atracci6n/el de! nicleo de la bobina y los imanes de la carcasa. que depende de la cantidad de energia que pasa por las bobinas, la cantidad de vueltas del bobinado, el grosor del alambre, etcétera. Los motores de CC tienen dos pun- tos de conexién para la fuente de ali- mentacién, y segtin cémo lo conec- temos, el motor girard en un sentido 0 en otro. El problema es que noso- tros queremos lograr esto en el mo- mento en que el robot esté en fun- cionamiento. {Seria desprolijo correr detrés del robot para invertir la di- reccién de sus motores mediante NPN NPN - Figura 4. Esquema basico de un puente H. O EL L293D Y EL L293B algiin dispositivo fisico! Po necesitamos algin artilugi nico que nos permita deter enviar una sefial con nues En este momento podr en conectar directamente dl 16F88. ;Error! Los mo demasiada corriente. Si mos directamente al mic mardn (que es algo que con no queremos hacer). Es po entre el micro y los moto ramos una etapa interm da como etapa de potend imple, como es nuestro caso, se un puente H (H Bridge), cu- 1a electrénico bdsico es el os ver en la Figura 4, do C1 no tiene corriente (est ¥ C2 sf la tiene (esté en 1), el M gira en el sentido de las agu- teloj. En el caso contrario, el invierte el sentido de su giro. Clarar que el esquema es mds otra parte, el D tiene los diodos de proteccién en forma interna, utilizamos una fuente d que el que vimos. Por ue & el caso del B, debemos agre- Bynecesicamos un mecenismo ar evar que elinte- Pida que las dos sefiales se ac- | Mune ss duame ante cualquier even Porque estarian en riesgo los | ‘wariaed due tenga el motor, Fes y la fuente. Para estos y Moblemas, la solucién mds SS utilizar un integrado que 5° €Stos componentes en un Yasi se soluciona todo en dos. Este integrado es un reemplazo plug and play del L293D, asi que pode- mos comprarto sin problema. 129 6. RECORRER EL MUNDO necesitamos un mecanismo 16 [2 vss nico de control para poder fficar la velocidad del motor. de cllos es a modulacién por de pulso (Pulse With Modu- 1 {—0 Chip inhibit un solo componente. El integrado propuesto para esta funcién es el 1.293D, que cuenta con cuatro dri- vers de potencia y diodos de protec- cidn para los motores (Figura 5). De la misma manera, podrfamos utilizar otros integrados como el UCN5804, el BAG286, el L293B, etcétera. Con el L293D podremos controlar cuatro motores con un solo sentido de giro, es decir, que gire 0 esté de- tenido, o dos motores con inversién de giro. Este tiltimo caso es el que mds nos interesa a nosotros para construir un vehiculo mévil. Si co- nectamos el motor en los pines 3 y 6, segtin el estado de los pines 1, 2 130 Lr ¥ 4,5, 12,13 Figura 5. Disefio de conexiones para controlar un motor con inversiGn de giro mediante el uso del L293D. , PWM), que ya mencionamos el control de los servos. bién en los motores de CC uti- s PWM, pero en un sentido nto al que se usa con los servos. O que necesitamos generar los es necesario entender cémo ona esta modulacién. En la Fl podemos ver un ejemplo gré- esto. En PWM, la frecuencia Pulsos se mantiene constante. se modifica es el tiempo en la sefial esté alta dentro de $Pulsos. Cuanto més largo sea el Po en el que la sefial esté alta, y 7, lograremos el sent del motor, su freno o un punto muerto, como po servar en la Tabla 4. En este punto, ya controlar el sentido de y si estén frenados o libs davia no hemos resuelto Ia velocidad. Es importan que estos motores tienen za y mucha velocidad, necesario agregarles un reduccién para aumentat reducir la velocidad. veremos una solucién int tor y, en el Capitulo 8, op soluciones externas. De Velocidad Minima Tabla 1. Cémo lograr cada estado de! motor con los pines del L293D. H: high (alto); L: low (bajo). El movimiento del robot Gira como las agujas det relo) mayor seré la velocidad del motor. Para dar un ejemplo més sencillo, imaginemos que tenemos el motor conectado a un interruptor que con- trolamos con la mano, Con una fre- cuencia de dos segundos, encende- mos (sefial alta) y apagamos (sefial baja) el motor dentro de ese tiempo. Por ejemplo, podrfamos tenerlo un segundo prendido y un segundo apagado. O un segundo y medio prendido y medio segundo apagado. En el primer caso, se lograria mayor velocidad que en el segundo cjem- plo. La velocidad mayor se da cuan- do lo tenemos prendido préctica- mente los dos segundos completos. Con este control, la cantidad de co- rriente es constante, la tensién no varfa y, por lo tanto, el torque es el 34 (6. RECORRER EL MUNDO mismo. Como veremos mds adelan- tc, lograremos el control del motor con PWM mediante la programacién de nuestro micro. Gracias al L293D, no necesitaremos mas electrénica que la presente en nuestra controladora, dado que los diodos de proteccién del motor se encuentran incorpora- dos en el integrado. Otro mecanismo habitual para el control de la velocidad de los moto- res de CC es la modulacién por fre- cuencia de pulsos (Pulse Frequency Modulation, PEM). En este caso, la proporcién de la sefial alta y baja dentro del pulso se mantiene cons- tante. Lo que cambia es la frecuen- cia de los pulsos. Cuanta més alta es I} PROBLEMAS FISICOS la frecuencia, la pote No entraremos en det seré el mecanismo que en nuestro robot. Ejemplos de programe motor CC con nuestro ¢ Como podemos obse truccién del controlador, esté conectado a los pin del L293D (Output 3 y vamente) y el motor 2 a y 6 (Output I y 2). B nuestros ejemplos trabaj bre el motor 1, pero des que veamos sobre este mot cable al otro. El control d 11 y 14 esté dado por Losi 4, ubicados en los pines I 1293D. Si seguimos las « de nuestro controlador, ver que estas dos entradas troladas por RBI y RB2 (pines 7 y 8). De esta m demos reformular la antes para mostrar cém portara el motor 1 s de los pines 7 y 8 del 161 sultado de esta reform demos ver en la Tabla 2. nal, cabe aclarar que no lograr este ultimo estado ef controlador porque el 1293D esté en alto const y no esta controlado por Sin embargo, como detall on fen El movimiento del robot 12. Estados del motor de CC al utilizar la programacién de nuestro 16F88. «los ejemplos mas completos incluidos en los capitulos de haremos robots para cumplir nes especificas, ya podemos ar a tealizar algunos progra- mara empezar a testear a nuestro En el capitulo pasado en- 10s y apagdbamos todo el BB para cncender y apagar el led. ir de ahora comenzaremos a delicados, y slo encendere- os bits que sean necesarios pa- caso. Por ejemplo, en el « el programa que titila el led, s eberfamos encender el Rb3, co- emos a continuacién: Con la misma légica, podemos hacer que el motor I encienda un segundo en un sentido, otro segundo en el sentido contrario, y un segundo se encuentre detenido (jNo nos olvidemos de que debemos conectar el motor en 1!). 133 6. RECORRER EL MUNDO PORTB.1 = 1 * Enciende AB (Pin 7 del 16F68) PORTB.2 = 0 “ Apaga RB2 (Pin 8 del 16F88) delay_ns(1000) ‘ Espera 1 segundo “Conf iguranos el Pin 7 y el 8 para girar en el otro sentido PORTB.2 = 1 * Enoiende RB2 (Pin 8 del 16F88) PoRTB.1 = 0 * Apaga RBI (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) van algunas paginas web de proveedores: ‘tlgnis [fabricante]: www.ignis.com.ar. Lau DONDE CONSEGUIR MOTORREDUCTORES Los motorreductores son més dificiles de conseguir que los motores « vencionales. Sin embargo, una forma sencilla de hacerlo es convertir mo veremos al final de este capitulo. Si queremos comprar directamer + Robodacta (proveedor de elementos de robétical: www.robodacta.com. — Motorreductores CC Como ya comentamos, los i CC tienen mucha velocidad fuerza, por lo que se hace el uso de un sistema de para poder equilibrar estas y Una de las soluciones es una caja reductora externa Sin embargo, en los dileim han surgido motores de C@ proveen esta solucién a nivd no. A estos motores se los com mo motorreductores. Consi un micromotor de CC con ja reductora que usa el sistem po planetario en un compat to sellado, lo que libera al sis la suciedad que podria funcionamiento (Figura 7). 7. Vista interna de la caja de de un motorreductor pendular. “Como ejemplo de estos motorreduc- es, podemos presentar el modelo R-4 de Ignis, que tiene un torque ¢0,12 a 2 Kgf*cm, segtin el mode- con un consumo de 100 mA. Los delos existentes son el 4-15, 4-50, indica la cantidad de revolucio- El movimiento del robot nes por minuto (RPM: a mayor RPM, menor fuerza, como ya hemos visto). Funcionan desde los 6 hasta los 12 V, pero toda la informacién de su hoja de datos est4 basada en una ali- mentacién de 12 V (Figura 8). En algunos casos, es posible conse- guir un reductor para conectar en forma externa a un motor de CC, pero en términos de costos y de complejidad en la conexién de ma- tetiales, no es aconsejable. Motores paso a paso (Motores PaP) Como hemos visto, el control de un motor CC es relativamente sencillo Pero, si necesitaramos precisién en la cantidad de rotaciones de! motor, serfa casi imposible lograrlo con un Figura 8. Un motorreductor con sinfin es lento pero tiene muchisima fuerza. 135 6. RECORRER EL MUNDO precisién que tendremos en fro motor. LOS pasos mas comu- podemos encontrar son: 3,6% 7,5 15° y 90°, En er caS0, para dar un giro com- inecesitaremos 500 pasos. En bio, en el tiltimo, con 4 pasos ha- os dado la vuelta entera. En ge- en la carcasa del motor se in- cantidad de grados por paso. p no es asi, aparecerd la canti- “de pasos por revolucién. Para ular los grados por paso, div ;360° por la cantidad de pasos. tro de los motores de imén per- ente, nos encontramos con dos discincos, los unipolares y los , que exigen circuitos de trol discincos (Figura 10) Figura 9. En esta imagen podemos ver ejemplos de motores paso a, del rotor, friccién interna d motor de ese tipo. Los motores de temperatura, etcétera. CC tardan un tiempo en lograr la velocidad buscada y cuando se los deja de alimentar, poseen inercia y tardan en detenerse, Por lo tanto, es una cuestién de suerte lograr un ni- servo. Los motores PaP mero preciso de vueltas. $i necesita- mecanismo que les permite mos fracciones de vueltas, esto es Angulo determinado. Los atin més complejo. Si le agregamos nes estén formados por un tun sistema de reduccién al motor iman permanente) y un con podremos disminuir el problema, bobinados en el estator. No pero no desaparece por completo bremente por si mismos, st por la cantidad de variables que en-_avanzan al girar pequefios p tran en juego: friccidn de los engra- cada pulso que se aplica. El najes del sistema de reduccién, peso del paso, en grados, es lo Para lograr esta precisién mos un motor PaP (Figt ares son més complejos de olar que los unipolares, pero son (0s y tienen mejor torque. El ol ha dejado de ser un problema ias a integrados como el L293D. ez que consigamos un motor de tipo, debemos distinguir los ca- a 2 SQ 2a 2b Motor-PaP Bipolar Disquetera de 5 1/4: lo mismo que en tenes. Reproductor de DVD: distintas drivers para motores, motor de CC del giro det disco, motor CC de la carga del disco. Impresora: motor paso paso de avance del panel motor paso a pas drivers de los motores paso a paso. 136 El movimiento del robot 1 +Voc Gnd +Veo Gnd 3 Gnd__+VooGnd__+Veo Tabla 3. Secuencia de pasos para poder controlar un motor paso a paso bipolar. bles 1a, 1b, 2a y 2b. Esto es sencillo con un tester, dado que podemos de- tectar continuidad entre los cables que pertenecen a la misma bobina. Para lograr el giro del motor bipolar, debemos invertir las polaridades de las bobinas 1 y 2 en una determinada se- cuencia para girar a favor de las agujas del reloj, y en la secuencia invertida para girar en sentido contrario. La se- cuencia es la que vemos en la Tabla 3. Para realizar este control usaremos el 1293D. En este caso, podremos con- trolar s6lo 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. Deberia- mos conectar cada uno de los 4 ca- 137 6. RECORRER EL MUNDO bles en los conectores del motor 1 y el motor 2 de nuestro controlador (Figura 11). Luego, si programamos las salidas del 16F88 que se corres- ponden con los inputs del L293D para seguir la secuencia anterior, lo- graremos ¢l giro del motor. Cuanto mds rapida suceda esa secuencia, més r4pido seré el movimiento del motor. Los motores unipolares cuentan con 5 6 6 cables, segtin cémo sea el cone- xionado interno. Si es de 6 cables, ten- dremos que detectar cudles represen- tan a Com1 y Com2 (Figura 10). Al unir esos dos cables, tendremos la mis- ma configuraci6n que en los motores de 5 cables (Figura 12). Para detectar las parejas 1A y 1B, y 2A y 2B, medimos Ia resistencia. Cuando encontremos la resistencia mds alta, habremos deter- minado la pareja correspondiente. Los cables Com! y Com2 contra esos ca- Figura 14. Un ejemplo de motor bipolar, con 4 cables. El movimiento del robot di sentido de giro. El control es encender de a dos las , de la siguiente manera: quemas podemos duplicar la canti- dad de pasos de este motor, como podemos ver a continuacién: bles tienen una resistengj ademés, habitualmente, sor dos que tienen el mismo medicién no marca nada, nectado cables de bobina Por lo tanto, ya tenemos d parejas y el cable comin. Ahora, para determinar et alimentamos al motor po cable o por el cable coming sién correspondiente. Tot de los otros cuatro cables, le la etiqueta 1A y lo conectat sa. Luego tomamos otro y t conectamos a masa. Si git do de las agujas del reloj, lo mos IB, si gira al revés, 2B ra, 2A. De esta manera, quetar todos los cables. Tenemos tres formas distinté “4, Secuencia de pasos olar un motor unipolar. gender las bobinas de a dos, el p magnético es mas fuerte, y el tiene mayor torque y més fuer- Ise frenado, Otro control es en- las bobinas de a Tabla 6. Combinacién de los dos ‘mecanismos anteriores que nos permiten mayor precision en los giros. Deeesta forma, duplicamos la cantidad de pasos al girar el rotor en cada bobi- na y entre dos bobinas contiguas. A es- ta secuencia se la conoce como se- cuencia de medio paso. Hay que te- ner en cuenta que en los tres tipos de controles debemos ser cuidadosos con la velocidad en el cambio de los esta- dos, porque si es muy veloz podemos no alcanzar el tiempo necesario para que el rotor seaéomode en la nueva po- sicién. Si es asf, obtendremos un mo- vimiento extrafio, alearorio del motor. ellas, si invertimos la secuen un motor bipolar, mas ero con menos torque. sencillo que el esquema an- Peto el motor tiene menos * Si combinamos estos dos es- or, Figura 12. Ejemplo de motor unipolar con 5 cables, que tie los dos rojos comunes. 139 6. RECORRER EL MUNDO Servos Un servo es un motor de CC pero con dos caracteristicas fundamenta- les que lo diferencian: una caja de reduccién interna al motor que le brinda un gran torque y un sistema electrénico de control que le per- mite posicionar al motor en el 4n- gulo deseado. Se utilizan con mucha frecuencia en aparatos radiocontro- lados como aviones, barcos y autos a control remoto. También se usan mucho en robstica por su bajo peso y sus altas prestaciones (Figura 13). Los servos tienen 3 cables o terminales: © Terminal positivo: recibe la energia que alimenta al motor (usualmente, de 4 a 8 voltios). © Terminal negativo: dirigido a tierra 140 Figura 13. Servomotor Hitec, muy utilizado en robética. . mn © Terminal de control: es po ingresamos la sefial que pet terminar el angulo del Los colores de estos cable segiin cada fabricante, pero bla 7 presentamos un det: colores utilizados por los pi fabricantes de servos. ble de control. Esta sefial es una cuadrada de 1,5 ms que se re- gun ritmo de entre 10 a 22 ms, aun valor de pico entre 3 y 5 V. cuencia puede variar entre distintas, pero debe ser una estable para poder conseguir la in precisa. Aqui aplicaremos 0 lo aprendido en PWM. La jn del cje dependers del ancho 0 de la sefial de control. Por mplo, cuando el pulso se mantie- Habitualmente, la capacid ro de un servo es de 180 g1 ro mas adelante veremos 6 minar este limite. El circuit trol posiciona al ¢je y com sefial que recibe de un pot tro interno con la sefial de externa. Cuando gira el eje, gira el potenciémetro. Por & Angulo va a estar determi duracién de un pulso que El movimiento del robot Tr Los colores de los tres cables de los servos de las marcas més conocidas. ne en 1,5 ms, el eje se ubicard en el Angulo 0, y vamos hacia -90° cuan- do disminuimos el ancho del pulso y hacia 90 en el caso contrario. La descripcién que hemos hecho se refierea los servos analégicos (que son los mas comunes). Los servos digita- les tienen, en su placa de control, un micto que analiza la sefial, la procesa y controla el motor. Reaccionan mu- cho més rapido a los cambios y tienen Figura 14. Un servo visto por dentro. aan 6. RECORRER EL MUNDO ms fuerza. Como contrapartida, son mas caros y el consumo de energia es mayor que en los analégicos. Modificacién de los servos Como ya hemos comentado, los se vos tienen un radio de giro de apro- ximadamente 180 grados. Su sistema de control nos permite definir su én- gulo de rotacién en forma precisa y sencilla, pero muchas veces necesita- mos que el motor gire 360° en forma continua, como en el caso de las rue- das. Para ello vamos a tener que rea- lizar un conjunto de modificaciones en el servo. Estas modificaciones pue- den dafiar el servo (de por silo dafian porque cambian su funcionalidad), por lo que sdlo recomendamos reali- zarlas si no conseguimos motores de LM ir a Ay El sci servo posee un engranaje externo en el eje, desatomillelo ¢ do, sin forzar el giro del eje mas allé de su tope de rotaci6n. 142 CC con caja reductora integy mo los que hemos presenta mienzo de este capitulo, Una de las modificaciones es eliminar el circuito de ¢ cortar los topes mecénicos, forma, lo convertiremos en tor de CC con caja reductor ble de control desaparece nemos dos cables donde sea rriente. A mayor corriente mos mayor velocidad y, sim mos la polaridad, podemos el sentido del giro. A conti veremos los pasos necesarios| alizar la modificacién, aclarar que las imagenes s6l referencia, ya que debe los pasos correspondiente nuestro servo especifico. El movimiento del robot la tapa posterior de! servo desenroscando los cuatro tornillos y ntelo en forma completa. ue la tapa superior que encierra la caja reductora y preste mucha aten- a la disposici6n de los engranajes para volver a ubicarlos en su lugar. 143 El movimiento del robot os a epetir: slo es necesario [JJ MopiFicar servos esto si no conseguimos un pereductor. De todas maneras, [A continuacién presentamos las direc- ocedimiento era mds habitual | ejones de algunos sitios donde se pro- EO no se consegufan con facili- | poreionan tos pasos para modificar di- pero oy es mucho mds sencillo | ¥eisas modelos de servos: 7 directamente uno de ellos | «Futaba3003. = ; imodificar un servo, ‘www.kronosrobotics.com/an116/ GAN116_3003.htm. = z ‘Hitec HS 300: ‘ww. kronosrobotics.com/an116/ GAN116_hs300.shtmt. Futaba $148: www.seattlerobotics.org/ encoder/200304/Futaba%20S148%20 Servo%20mod%20for%20PWM.htm. Sub micro CS21: ; www.dprg.org/projects/1998-04b/ index.html, 6. RECORRER EL MUNDO > EE core o extraiga cuidadosamente el tope fisico que tiene @ salida del servo. Lije con una lija fina para no dejar rebordes que provoquen fricciones hostiles al movimiento de la caja Elimine el circuito de control. La forma de hacer esto va a de| modelo del servo en cuesti6n. En algunos casos, basta con’ uno de los engranajes del potenciémetro. En otros, habra q el modo de comunicaci6n de los engranajes con el sistema Para ello, es conveniente buscar en Internet los pasos necesal modificar el servo especifico que desee adaptar. RESUMEN Megado al hermoso momento en que nuestra criatura sale a recorrer el mun- > No todo es tan sencillo. En este capitulo hemos analizado los diferentes ti- lores que pueden usarse con nuestra alimentacién de corriente continua, 's de CC son senciltos de conseguir y faciles de controlar, pero tienen po- Por io tanto, dehemos agregarles una caja de reduccién para poder mo- *Fuedas a una velocidad razonable y con la fuerza necesaria, Por suerte con- Fon motorreductores, que ya nos ofrecen ese sistema en forma interna en ta ‘Motor, aunque con un costo mayor. También podemos utilizar motores pa- ©, que en generat estén presentes en disqueteras, impresoras, discos rigi- “tera. El control es un poco mas complejo, pero nos brindan precisién en sus Hntos. Si queremos mayor precisién y no necesitamas giros completes, los Sn la tercera opcién para los movimientos de nuestra robot. 145, 144 ACTIVIDADES TEST DE AUTOEVALUACION 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 {Cudles son los cuatro estados del motor de CC? ,Cémo lo logramos con et L293D? 6 (Qué es un motorreductor? ,Qué venta- jas y desventajas presenta con respec- toa un motor de CC convencional? 7 .Cémo funciona un motor paso @ paso? 8 {Qué caracteristicas 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; Cudl es el objetivo de modificar un ser- vo? {Por qué no se recomienda hacerlo? 146 EJERCICIOS 1 Mediante ta utilizacié cién por pulsos, hag que, segin el valor d encienda con mayor 0 el led de la controtado nsar el mundo do construimos robots auténomos, de los desafios mas importantes es bilidad de adaptarse al mundo que sentido {lo consideramo: go deben retroceder ott posteriormente girar p jar un motor para adel fodea. Si no incorporamos sentidos fuestro dispositivo, sdlo tendremos atrés, y por timo invert giro. Estes dttimas dam Bjuguete a control remoto, donde de 3 segundos cada uns ; . Binteligencia y la captacién del ambiente 3 Mediante la utilizacién di cién por pulses, haga un p segiin el valor de una que la velocidad del moto stras manos. En este Bpitulo conoceremos los tipos 4 Conecte un motor bipolar Sensores que podemos encontrar y tores de motor 1 y motor 2, rcs la ctecirs =the su funcionamiento con a electronica y la programacién en la seccién correspond s Usaremos en los préximos capitulos. ‘Adaptacién al entorno _Tipos de sensores Caracteristicas esenciales 7. SENSAR EL MUNDO ADAPTACION AL ENTORNO Ya piensa, ya camina... La obra con- timda creciendo. Y sin embargo, cada ver que lo ponemos a nuestro lado pa- ra que nos acompaiie, se lleva por de- lante una pared, se pierde por lugares insdlitos o se cae por una escalera. Al- g0 nos falta, algtin soplo de creacién nos hemos olvidado de brindarle a nuestro robot. Nos hemos olvidado de incorporarle sentidos! Sin ver, sin tocar y sin escuchar, ¢s imposible que se separe de nuestra mano y de nues- tros ojos. Y es por eso que empezamos a pensar cudles serian los sentidos esenciales que podemos brindarle. Le agregamos la vista? Es un desafio complejo, demasiada informacién para su pequefia inteligencia. ;El tac- to serd suficiente? Tendré una vida dura, golpedndose contra todo pata Figura 1. Kephera es un robot con ocho sensores infrarrojos y una camara de vision lineal. poder captar el mundo gy :El olfato serd de ut dudas nos preocupan, p sabores. Pero esto no termi- demos utilizar otros me- que superen al sistema humano. Contamos con iltrasSnicos para medir dis- sensores de metales, detec- diversos gases, etcétera. nos puede ayudar. Y encon en el mundo della ele tidos se multiplican i Tipos de sensores Los sensores tienen com captar alguna sefial brin ambiente que rodea al transformar esa sefial en so eléctrico que reciba ni trolador. Luego, desde el que usemos para darle miento, interpretaremos es so para actuar en coi Cuando hablamos de ambiente, nos referimos @ macién habitual que, com nos, podemos captar: im: suales, olores, informacién t ferta es muy grande, y cada ti- sensor nos obliga a incorporar ide electronica y de programa- en nuestro robot. En este capi- vyeremos los tipos de sensores podemos encontrar habitual- fe en el mercado, sus caracteris- y cémo podrfamos incorporar- nuestro robot. Luego nos de- fremos en los sensores que va- @ utilizar para los desafios que os planteado en este libro. risticas esenciales los sensores sensores determinan en forma tisa cl comportamiento de nuestro et. Es por eso que cuando elegi el tipo de sensor que incorpora debemos analizar un conjunto Garacteristicas que nos permitirén i si es © no el que necesitamos Nuestra tarea. Estas son: labilidad: esta caracteristica esta Muy vinculada al ambiente en el due se mueve nuestro robot. Por emplo, si utilizamos un sensor de BF 0 brillo en un lugar con luz es- Adaptacién al entorno oO NARICES ELECTRONICAS table, podremos utilizar sensores de menor calidad porque sabemos que los resultados, luego de cali- brar el sensor, se mantendran pa- rejos y podremos confiar en ellos. En cambio, en los ambientes don- de las condiciones se modifican en forma constante, los sensores que utilicemos deben poseer mecanis- mos electrénicos de balanceo que permitan superar estas dificulta- des. Si los valores devueltos por el sensor no son fiables, necesitare- mos compensar este problema con programacién, para lo que utiliza- mos varias muestras y_ distintos métodos estadisticos que ajusten al minimo el margen de error. Cabe aclarar que esto se paga con mayor tiempo de procesamiento. * Rango de valores: el rango de va-~ lores es el valor minimo y maximo que puede devolver el sensor. 7. SENSAR EL MUNDO * Precisién: aun si se tiene el mis- mo rango de valores, los sensores pueden devolver més 0 menos ¢s- tados intermedios dentro de ese rango. Llamamos precisién a la cantidad de valores distintos que nos puede devolver el sensor en su rango de valores. Por ejemplo, no es lo mismo un sensor de brillo con un rango de 0 a 100 con una precisién de 1, que uno con una precision de 0.1. En el segundo ca- so, podremos detectar variaciones minimas que en el primero se le- erian como valores idénticos. * Velocidad de muestreo: cuencia con la que el s ca su lectura del ambien yor velocidad, mejor ad los cambios del mundo en; mueve nuestro robot. Pero. lado, nos exige mayor miento de los valores de De todas formas, si el una alta velocidad y tiempo para procesar los da demos desechar valores del lograr la velocidad de mi necesitemos. En el caso @ no podemos solucionar e ma. Es decir, nos convien sor con la mayor velod muestreo posible, que lu remos al tomar todos los sdlo un conjunto de ello Costo: aunque en nuest ros proyectos tal vez no p elemento fundamental d cuando desarrollemos complejos nos encont limitaciones de este tipo. tablemente, veremos que relacién lineal entre el € demis caracteristicas: los § més caros son mejores. * Sencillez. de uso: en €st0 ros pasos, es fundamenta to la interfaz. clectrénica mos desarrollar entre el micro, como su pr ra la interpretacién de sea lo més sencilla posib oy forma: en el momento i que queramos insertar el sen- nuestro robot, con seguri- tuerremos realizarle la menor mad de modificaciones posi ia la arquitectura que ya tene- 4s definida. Por otra parte, es ne- sario que el sensor esté a la dis- mncia precisa para poder caprar lo asado. Por ejemplo, el sensor que fzaremos para el seguimiento Jinea cs sencillo, pero con un al- muy bajo. Por lo tanto, serd eesario ubicarlo lo mas cerca po- ble de la linea debajo del robot. tro ejemplo son los sensores de es habitual tener que ampli la mecdnica del sensor para rar con mayor facilidad los dbjetos. Para ello es fundamental egir el tamafio y la forma que se 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. Figura 3. Lego provee diferentes sensores, como los de tacto, luz y sonido, entre otros. Adaptacién al entorno adapten a nuestras necesidades en el conjunto de sensores que cum- plen la misma funcién. Calibracién: en este caso, tam- bign tenemos el problema de que cuanto ms sencillo sea el sensor, mis trabajo de calibracién tendre- mos que hacer con el software. En general, la calibracién no est brindada directamente por el sen- sor, sino que es en la electronica de la conexién donde podemos agre- gar elementos que nos permitan modificar, con una simple vuelta de potenciémetro, las sefiales de entrada o la sensibilidad de lectu- ra. Aunque le agreguemos mas tra- bajo al disefo inicial del robot, luego agradeceremos que con un destornillador podamos readaptar al robot a diversos ambientes. ‘7. SENSAR EL MUNDO Si tenemos en mente estos principios, todos los casos, necesitamos podremos salir en la biisqueda del na interfaz electronica ent sensor que solucione nuestros pro-y el micro. A veces, esta blemas. Vamos a dividir nuestro de- puede ser una simple resistet sarrollo en dos grandes grupos de otros casos puede ser un de mucho més complejo, dep sensores: los digitales y los analégi cos. También podemos clasificarlos del tipo de sensor. como internos y externos, actives y Hay una gran variedad de pasivos, etcétera, pero hemos elegido _digitales en el mercado, ¢ in la primera taxonomia porque nos de-_ demos convertir sensores termina diferencias sustanciales en la en digitales, como por ejen electrénica y la programacién. el uso del integrado 74HG chos se conectan de form Sensores digitales con la utilizacién de una Los sensores digitales son aquellos de pull-up conectada a que, como salida de su sensado del mantener la sefial en nivel mundo, nos devuelven hacia el con- GND para mantenerla en n trolador un valor discreto (Figura 4). jo. Cuando el sensor se El modelo més sencillo de este tipo sefial pasa al nivel con de sensores es aquel que directamen- Uno de los sensores digitales te nos devuelve un uno o un cero. En mitivos es el interruptor 0 Sefal discreta 01234567 8 9 101112 1314 Figura 4. Ejemplo grafico de los valores que entrega un sensor d Figura 5. Con Adaptacién al entorno nermite representar el sentido del de detectar colisiones contra objetos ste sentido parece ser uno de para permitir el cambio de sentido de simples de implementar, pero nuestro robot. Estos sensores se co- d para reproducirlo en toda _nocen en el mundo de la robética co- jpresion deberiamos sensar tem- mo bumpers. En nuestro controlador , contacto y fuerza (por ejem- ya tenemos el conexionado y la no es sencillo reproducir la pre- clectrnica necesarios para conectar ¢jercida por nuestra mano cuan- dos de estos sensores (Figura 5). omamos un objeto frégil, que se deformar por un excesivo nivel ). Por ahora nos ocuparemos nectan a +5 V con una resistencia Estos sensores son dos interruptores sencillos (abierto/cerrado) que se co- do de contacto, con la idea (Pull-Up) 0 a GND (Pull-Down). La iexién de los dos interruptores en nuestro controlador. 7. SENSAR EL MUNDO diferencia se producird si queremos de- tectar un 0 I6gico (entre 0 Vy +1,5 V aproximadamente) cuando se produz- ca.un cambio en el estado del switch si, por el contrario, queremos detectar un I légico (de +2 Va +5 V). Otra variante es usar contactos nor- malmente cerrados 0 normalmente abiertos, que se comportarén como una compuerta NOT o directa, si Figura 6. Un modelo de microswitch con palanca grande. Figura 7. Otro modelo con rueda en el extremo de Ia palanca, 154 consideramos el valor TRUE g logico, que representa +5 V del microcontrolador, prodi accién Chocar y el 0 como el caso contrario. Como observar en el controlador, entrada esta asociada en recta a RA3 en el caso del y a RA4 en el caso del ser demos agregarle un conden bajo valor (0.1uF a 1uB) con los contactos del inter ra reducir los efectos de Con respecto a los interrup podemos utilizar, la varied grande. Uno de los més robética es el microswitch, sor cuenta con 3 conector mmon, comiin), NC (Noi jente, consiste en un emisor infrarroja (un led) y un foto- i ambos apuntan hacia el Maobre una superficie, Esto es dil detectar colores muy distintos rejemplo, una linea negra sobre un i blanco) o sensar si el robot estd a de la mesa, pero al acercarse borde deja de recibir la sefial). ho de los problemas que podemos ¢s que el fototransistor pue- estimulado por las luces del ente. Para evitarlo, debemos en- alarlo de manera tal que sdlo el re- de su led lo estimule. El més co- Opened, normalmente Cuando el sensor est4 en cerrado el circuito de Ca Al presionar la extensién met sirve de amplificador mé sefal, cerramos el circuito € NO. Esta extensién metdlica ner una palanca suficientem de (Figura 6) como para pod sensor de tacto sin modifica tras, También puede contaré quefio rodillo en la punta ql mita realizar tacto sobre las sin provocar rozamiento en sor y lo sensado (Figura 7). Otro sensor que podemos forma digital es el int que también podemos utilizar @ sensor analdgico, dado que de- tun valor entre 0 V (reflejo abso- O) hasta 3.3 V (absorcién absoluta). izaremos més adelante cuando 0s los sensores anal6gicos. lo anteri RECICLAR SENSORES PARA NUESTRO ROBOT ya vimos cémo podiamos reciclar los motores de nuestros an- esitivos. Ahora vearnos qué ocurre con los sensores: 5 1/4: detector infrarrojo de ranura para detectar pista cero, fototransisto- misor de infrarrojo, detectores de efecto hall. 31/2: detector infrarrojo de ranura muy pequefio, microswitches. ®: ed emisor de infrarrojo, receptores de infrarrojo, receptor det IR del ‘Adaptacién al entorno Figura 8. Sensor infrarrojo de tamaiio reducido. Otra forma de utilizar el sensor infra- rojo es enfrentar el led con el foro- transistor, Por Jo tanto, lo que pode- mos detectar alli es el corte de visién entre ambos. A este tipo de arquitec- tura se la conoce como sensor de ra- nura. Podemos utilizarlo simplemente para la deteccién de objetos (como se uusa en ciertos estacionamientos para avisar la salida de un auto) o para con- tar los pasos de una rucda asociada al je de un motor y, de esta manera, ar- mar un sensor de rotacin. Depen- diendo de cémo esta acanalada la rue-

You might also like