Robots Móviles
Software y documentación para robots móviles

English

RAS - Mobile Robot Assembler

Mobile Robot Assembler (RAS) es un ensamblador para robots móviles y, en general, cualquier sistema basado en microcontroladores Motorola 68HC11, multiplataforma, ampliable y libre.

En la versión actual reconoce el conjunto de instrucciones completo de la familia de microcontroladores MC68HC11 y algunas directivas (básicamente, ORG, EQU y de reserva de memoria) que se comentan en la documentación.

Si no estás interesado en otras alternativas para la programación de estos micros ni las características y motivaciones del Mobile Robot Assembler (RAS) puedes ir directamente a la zona de Download.

Otras alterntivas

Motorola distribuye un ensamblador para su MC68HC11 sobre el que Randy Sargent efectuó unas pequeñas modificaciones. Se trata del ampliamente conocido y utilizado as11. Es un ensamblador relativamente limitado en cuanto a prestaciones se refiere, por ejemplo, no pueden crearse macros y todo el código del programa que estemos realizando debe ir en el mismo fichero fuente. Esto hace que sea relativamente incómodo trabajar con él. No obstante, ofrece buenos resultados incluso para programas de cierta complejidad.

Dentro del mundo de los ensambladores, otra posibilidad es usar el GNU Assembler. Se trata de un muy buen producto y con la garantía de GNU pero que para el no iniciado puede resultar relativamente complicado principalmente en el comienzo. Dispone de todo lo que puede pedirse a un ensamblador, una buena documentación y, sobre todo, su carácter abierto.

También es posible usar el C/C++ como lenguaje base, muy cercano al ensamblador por otra parte. En este ámbito, la herramienta más utilizada y portable es el compilador GNU C/C++. Al igual que el GNU Assembler, antes comentado, en inicio puede resultar un tanto complicado.

En las FAQ del 68HC11 se comentan y se aportan direcciones de otros lenguajes y sistemas de desarrollo en los que programar este microcontrolador.

Motivación

La idea principal a la hora de crear un nuevo ensamblador teniendo en cuenta los antecedentes que hemos mencionado es definir un entorno de desarrollo sobre el que puedan proporcionarse, de una forma más o menos sencilla, nuevas instrucciones a partir de otras ya existentes. Estas nuevas meta-instrucciones generarán el código correspondiente a operaciones habituales en el desarrollo de programas para robots móviles como por ejemplo encender conversores, lectura de puertos asociados a sensores, comandos de movimiento, etc.

El objetivo final es disponer de un lenguaje para robots móviles de alto nivel constituido por una biblioteca de meta-instrucciones incluidas en el propio lenguaje y construidas en el propio lenguaje.

En el nivel más básico tenemos un lenguaje con el que programar nuestro sistema de control. Sobre él se situarán algunas funciones habituales en este tipo de sistemas. En niveles superiores podrán definirse comportamientos básicos del robot como por ejemplo el conocido seguir-línea o incluso una arquitectura de control de robots móviles.

Utilizar el ensamblador como lenguaje base se debe a que podemos aprovechar al máximo los escasos recursos con los que contemos en nuestro sistema de control del robot. Generalmente se tratan de sistemas dotados con poca memoria y una velocidad de procesamiento baja. Cuanto más potente y depurada sea nuestra biblioteca de meta-instrucciones menos código en ensamblador tendremos que crear.

Características

Bugs conocidos

Pendiente

Download

Enlances adicionales

Agradecimientos

Gracias a Juan González por las pruebas, porting a DOS/Windows y preparación de la distribución RPM. Gracias también a Cecilio Ruiz por las pruebas y sugerencias.

Importante

Esto es software libre; vea el código fuente o las licencias cuyos enlaces están en el apartado de Download para las condiciones de copia. No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO.

La versión actual está en fase BETA. Durante la fase de pruebas interna se ha verificado que cada instrucción y direccionamiento generan el mismo código que el ensamblador as11. Los programas de prueba que, por otra parte, no tienen ningún sentido lógico y NO DEBEN SER CARGADOS en el micro, se distribuyen junto con los fuentes.


© Javier de Lope Asiaín 2000-2002
Última modificación
31-May-2001

FastCounter by bCentral