mbed Workshop - Motion Rally

../images/rally_logo.png

Objetivo

El objetivo es familiarizarse, de una forma entretenida, con la programación de microcontroladores de 32 bits en lenguaje C/C++ para sistemas embebidos, aprovechando la facilidad de uso de los kits de prototipado rápido. Para ello se desarrollará un proyecto relacionado con la navegación de un robot en modalidad autónomo y/o radio-controlado.

Organización

Durante tres días los participantes trabajarán en forma intensiva con el kit mbed LPC1768.

  • Día 1: Introducción al mbed y a las herramientas de desarrollo, manejo de puertos y periféricos. Entrega de los vehículos y explicación de las bibliotecas de control.
  • Día 2: Programación del control del vehículo y primeras pruebas.
  • Día 3: Finalización de la programación de los robots y competencia entre todos los grupos participantes.

El workshop mbed estará organizado a partir del “mbed Motion Rally”, donde se propone a los participantes el desafío de competir en una carrera de robots “off Road”, en la que deben atravesar una serie de “waypoints” en el menor tiempo posible. Para esto los robots estarán equipados con sensores infrarrojos (que serán necesarios en puntos específicos del recorrido), pero además incluirán una conexión inalámbrica para ser controlados en forma remota por un integrante de cada equipo. Los controles remotos incluirán un acelerómetro mediante el cuál se registrarán los movimientos del piloto, que deberá manejar un “volante virtual” al estilo de las consolas de videojuegos más recientes.

El mbed es un kit basado en un microcontrolador LPC1768 con un core Cortex-M3 y cuenta con una gran cantidad de periféricos de diferentes tipos: CAN, I2C, SPI, USB, Ethernet, ADC-DAC, etc. Al estar pensado como un kit de prototipado rápido, su principal ventaja es que brinda la posibilidad de desarrollar proyectos en corto plazo. Para esto se vale de un compilador web y de un proceso de grabación de firmware vía USB, que funciona como si el mbed fuera un dispositivo “masive storage”.

Cada equipo estará formado por 2 o 3 integrantes que tendrán los siguientes objetivos: - Deberán desarrollar un algoritmo que, a partir de un acelerómetro triaxial, permita traducir los movimientos realizados por el “piloto” en comandos que luego serán transmitidos al robot.

  • Deberán desarrollar la “inteligencia” del robot para que, en ciertas partes del recorrido, pueda seguir en forma autónoma una línea, basándose en sensores infrarrojos.
  • Deberán desarrollar un protocolo de comunicación entre el control remoto y el robot, para establecer la comunicación inalámbrica utilizando módulos “ZigBit” de Atmel.
  • Deberán escribir una capa de abstracción que traduzca los comandos recibidos por el robot en técnicas de control de los motores.

A cargo del Club de Robótica de la Facultad de Ingeniería de la UBA, con la colaboración de la Rama Estudiantil IEEE de FIUBA.

Requisitos

Conocimientos de programación en lenguaje C; nociones de programación orientada a objetos, nociones de microcontroladores.

Aclaraciones importantes

  • El taller es altamente práctico, con muchos ejercicios, y se trabajará en grupos de 2 o 3 personas por lo cual, si bien el taller se dicta en dos turnos, no se puede alternar la asistencia entre uno y otro.
  • Por ser un workshop de trabajo grupal, se espera que los participantes se comprometan a asistir durante todo el taller, para no perjudicar a sus compañeros.
  • El curso planea ser introductorio a la programación de sistemas embebidos. Quienes ya tengan experiencia en dicha área y sólo les interese conocer el kit mbed, se recomienda cursar el workshop corto "Hands-on mbed crash-course" dictado por Joe Bungo.