Robotica - Guia Teorica y Practica

You might also like

Download as pdf
Download as pdf
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 HI THE NU ICII ses USERS Ra Lee y PN ett teeta} ana) PU aU ULC Uy a eee ihAgalo usted mismo! REPARACION de COMPONENTES TOS Ue Pret ee ei ec BODES us avez CT se ee en Léalo-antes fii En nuestro sitio pygde obteper, en forma tuita Un capitulo de cay uestros libros: usersho eelrs.c com ak a Nuestros libros incluyen guias visuales, explicaciones paso a paso, recuadras complementaros, eercicis, olosarios, atajos de teclado y todas los elementos necesarias para asegurar un aprendizaje exitoso y estar ‘onectado con el mundo de la tecnologia. 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 PRELIMINARES. Contenido Sobre el autor Agradecimientos Prétogo El libro de un vistazo Introduccién, 1 CONCEPTOS FUNDAMENTALES Introduccién a la robética 16 {Qué es un robot? 16 Tipos de robots 19 Unidades de un robot 2 Procesamiento 2% Sensores 33 Actuadores 39 Resumen 43 Actividades 4 Crier COMPONENTES DEL ROBOT Una mirada global a nuestro futuro robot 46 10 Objetivos de nuestro robot 47 Tipo de procesamiento seleccionado 4a {Cémo le damos movimiento a nuestro robot? 50 2Y cémo captamos el mundo que nos rodea? 53 Materiales para la mecénica 55 Resumen 59 Actividades 60 LA INTELIGENCIA DEL ROBOT Elcerebro 62 Componentes de nuestro robot 63 Objetivos del controlador 64 El microcontrolador, cerebro del cerebro 6 Conceptos fundamentales de un PIC. 65 Caracteristicas del PIC16F88 66 Compatibilidad con el 16F84 a Puente H para el control de los motores a Cae Listado de componentes del controlador 68 Descripcién del circuito 69 Placa experimental n El programador n Nuestro programador n Resumen 6 ‘Actividades % Cr COMIDA DE ROBOTS La fuente de energia 78 Caracteristicas de las celdas de las baterias ny Tipos de baterias 81 Calidad de las baterias 8 Cargadores 87 Ayudar a que no sélo las baterias duren mas 89 Resumen n Actividades 2 Cs HABLAR CON NUESTRO ROBOT Comunicacién con el robot % Lenguajes de programacién Para robots. 6 Contenido PicBasic Pro 5 Compitador CCS C ” MikroBasic 8 Editor de cédigo fuente de mikroBasic 100 Explorador de cédigo 103 Depurador 103 Manos a la obra 106 Elementos del léxico 108 Organizacién de los médulos 110 Atcance y visibilidad mt Variables, constantes y tipos 12 Estructuras 15 Operadores 116 Sentencias 17 Resumen 123 Actividades 126 riers RECORRER EL MUNDO Et movimiento del robot 126 Tipos de motores 126 Motores de corriente continua 127 Motores paso a paso (Motores PaP] 135 Servos 140 Resumen 145 Actividades 146 a 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 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

You might also like