Bienvenido: Ingresar

Versión 5 con fecha 2010-06-08 12:55:47

Quitar mensaje
location: LabElectronica / FreeRTOSLpc2114Web

FreeRTOS - LPC2114: Aplicación a Robot RoMAA

Introducción

Actualmente, los Sistemas Operativos en Tiempo Real (RTOS) son cada vez mas utilizados en aplicaciones embebidas, en particular en robótica. Dentro de la gran cantidad existentes, FreeRTOS se destaca por ser un mini kernel de tiempo real específico para microcontroladores (uC) embebidos, totalmente en codigo abierto, libre de regalías, de libre descarga y libre para el desarrollo de aplicaciones comerciales.

Por el otro lado, los microcontroladores con arquitectura ARM de 32 bits, se han desarrollado enormemente en este ultimo tiempo, llevando a los fabricantes a ofrecer sus propios microcontroladores con esta arquitectura. Una de las empresas mas importantes en esta área es NXP Semiconductors, fundada por Philips, la cual puede conseguirse con facilidad en Argentina y a precios convenientes.

Poder unir ambas tecnologías de software y hardware en una aplicacióm embebida de robótica orientada al área de investigación y desarrollo a nivel académico, hace al proyecto sumamente interesante y con un alto grado de actualidad a nivel internacional.

Aplicación

El CIII ha diseñado y construido una plataforma robótica móvil RoMAA (Robot Móvil de Arquitectura Abierta), orientada a la investigación y el desarrollo. Las áreas de aplicación son robótica, visión, sensorística, control, entre otras, intentando dar como resultado una plataforma versátil para la investigación y el desarrollo a nivel académico, totalmente construida con tecnología disponible en el país.

Actualmente el control de dicha plataforma, esta a cargo de un micrcontrolador !ARM7TDMI-LPC2114 montado sobre una placa multiproposito de código abierto diseñada y construida tambien en el CIII. A través de esta placa se comanda todo el sistema de tracción y control, incluyendo llaves H, motores de corriente continua, encoders y baterías. El actual software de control es del tipo secuencial, en lenguaje ANSI-C, haciendo uso de los perifericos y características que ofrece el uC a través de la placa multiproposito, como timers, UARTs, PWMs, detección de flancos, entre otros. Sin embargo, la modificación del control de dicha plataforma, como así también del hardware vinculado, tiene una cierta complejidad debido a la estructuración secuencial de este código. Esta complejidad afecta a la versatilidad de la plataforma, oponiendose a la finalidad con la que fue concebida.

El proyecto busca migrar este sistema de control con software de tipo secuencial a un RTOS, permitiendo asi mejorar de gran manera la versatilidad del código. A través de simples tareas del sistema operativo, se pueden agregar o modificar actividades de forma totalmente independiente, sin necesidad de interactuar con tareas que no esten relacionadas. Asi, el agregado por ejemplo de una tarea para realizar pruebas con una cámara, implica solo agregar una tarea específica, dejando de lado todo lo demas, por mas de que sea indispensable para el funcionamiento conjunto.

La migración a un RTOS provee además, un sistema de control en tiempo real. A través de las diferentes prioridades establecidas, tiempos de espera y comunicación entre tareas, el scheduler del sistema operativo garantiza que las distintas tareas se ejecuten en lapzos muy precisos, tomando éste el total control del software que se esta ejecut ando en tiempo real.

Por otro lado, el actual sistema de control consta en su parte de hardware, de cuatro placas: dos placas con llave H para cada motor de corriente continua, una placa de alimentación y conexiónado de la multipropósito y la placa multipropósito en si. Estas cuatro placas estan apiladas e interconectadas entre si, con la posibilidad de mediante conectores hembra-macho, conectar y desconectar facilmente la placa multipropósito. Esto es una ventaja para la etapa de desarrollo de la plataforma, ya que se puede probar y testear el software de control en esta placa y luego, una vez testeado y definido, realizar la prueba real en la plataforma.

En la actualidad, dicho software ya fue testeado y correjido, por lo que no hay necesidad de mantener este diseño desmontable. Por otro lado, al ser una placa multiproposito, se tiene acceso a todos los pins del micrcontrolador, sin ser necesaria la utilización de todos ellos en la aplicación final, por lo que la complejidad de la placa ya no es necesaria. Es decir, que la placa de alimentación y conexionado de la multipropósito puede unificarse con la placa multipropósito misma, obteniendo menor complejidad de placa al usar solo los pines necesarios. Por otro lado, aparte de obtener una placa menos, se optimizará y mejorará su funcionamiento dotándola de una fuente conmutada para regular la tensión proveniente de las baterías de la plataforma y de un adaptador RS232-USB, pudiendo directamente acceder a la programación y/o comunicación con el uC a través de un bus USB.

Por último, la caracterización del RTOS en el hardware específico es también parte del proyecto, dándole a la plataforma características mas precisas de su funcionamiento, tanto de sus prestaciones como de sus limitaciones. De esta manera, antes de realizar cualquier aplicación en la plataforma, se podrá evaluar su correcto funcionamiento, ahorrando esfuerzos y permitiendo un trabajo mucho mas preciso y eficiente.

Esquema del proyecto

Método de aplicación

Lista de Componentes

Tareas

Documentos del Proyecto

....