Título: Programación de robots físicos mediante interfases visuales
Autor: Nicolás Alejandro Passadore
Directores: Mg. Gerardo Parra y Ing. Rodolfo Del Castillo
Carrera: Licenciatura en Ciencias de la Computación
Fecha de defensa: 9 de septiembre de 2008
Resumen
La programación de robots físicos puede realizarse tanto por medio de lenguajes tradicionales adaptados para tales nes, como mediante lenguajes creados especí camente para dicha tarea. Otra manera de programar robots físicos es mediante interfases visuales como la de Lego. La idea de este tipo de interfases, es manipular los diferentes elementos que ofrece, evitando de esta manera la introducción de código de programación, para lograr el software buscado. Los elementos con los que cuenta la interfase permiten programar el robot, prácticamente, sin conocimientos de programación. Esto se debe a que cada uno de los elementos representan una acción que el robot puede realizar y solo hay que ordenarlos de manera lógica para determinar la funcionalidad total del robot.
En esta tesis se realiza un estudio de la Interfase Visual de Lego y se describe una herramienta que nos permite traducir el programa obtenido desde la interfase a código que el robot puede manipular directamente. Por un lado, se describe la interfase visual de Lego. Se analizan sus componentes, el uso de los mismos y por último, se analiza un ejemplo de programa generado desde la interfase visual. Además, se analiza el código intermedio LASM. Por último, se describe en detalle la herramienta propuesta que consiste de un compilador y un pre-procesador de lenguaje. El compilador toma un programa generado desde el pre-procesador y genera un programa equivalente en código LASM. El pre-procesador reemplaza las macros y los archivos cabeceras (.h) por su código correspondiente. Finalmente, el compilador toma el programa modi cado y lo traduce a código LASM. De esta manera, es posible abstraerse del código de programación y se interactúa tan solo con la interfase y con los elementos que ella ofrece al usuario.