ROBÓTICA EDUCATIVA BASADA EN LA CIAA
Proyecto FinalCarrera de Especialización en Sistemas EmbebidosFacultad de Ingeniería - Universidad de Buenos Aires
Autor: Ing. Leandro Lanzieri Rodríguez (UTN FRA)Director: Ing. Eric Pernía (UNQ)Jurados: Dr. Ing. Pablo Gómez (FIUBA)
Esp. Ing. Ernesto Gigliotti (UTN FRA) Esp. Ing. Patricio Bos (FIUBA)
Contenido1. Introducción2. Diseño y Desarrollo3. Ensayos y Pruebas4. Conclusiones
INTRODUCCIÓN1
Motivación
◦ Creciente uso de la robótica como herramienta de enseñanza.
◦ Identificación de la sintaxis de un lenguaje de programación como una dificultad para iniciarse en los sistemas embebidos.
◦ Necesidad de una alternativa abierta y desarrollada localmente.
La idea
◦ CIAABOT es una plataforma abierta orientada a la robótica educativa.
◦ Permite programar, mediante un lenguaje gráfico, distintos modelos de robots basados en la la CIAA.
VIDEO DE PRESENTACIÓN
Lineamientos Principales
Software y Hardware Libre
Orientado a la enseñanza
Amplia documentación Escalable
Partes componentes
Requerimientos
◦ Soporte multiplataforma (mínimamente sistemas Linux y Windows).
◦ Manejo de proyectos en forma de archivos.
◦ Generación del código en C, compilación y programación desde el IDE por USB.
DISEÑO Y DESARROLLO2
Hardware
EDU-CIAA-NXP◦ Versión de bajo costo de la
CIAA-NXP.◦ Microcontrolador LPC4337 de
NXP, doble núcleo ARM Cortex-M4F y Cortex M0.
◦ 4 leds (uno RGB), 4 pulsadores.◦ USB para debug, USB OTG y
puerto RS-485.
Ponchos◦ Placas conectables sobre la
plataforma que agregan periféricos externos conectados a los pines del microcontrolador de la EDU-CIAA.
◦ CIAABOT G1▫ Fuente▫ Drivers motores paso a paso▫ Entradas analógicas▫ Salidas de servos
Hardware
CIAABOT IDE
sAPI - Simple Application Programming Interface
Es una capa de abstracción de hardware que permite un manejo simple de varios periféricos del microcontrolador:
◦ I2C◦ SPI◦ RTC◦ SCT◦ Timers
◦ Interrupciones◦ SysTick◦ GPIO◦ UART◦ ADC◦ DAC
Tecnologías
Arquitectura de la aplicación
ENSAYOS Y RESULTADOS3
Ejemplo de código generado I #include "sapi.h"
inline void setup(void) { gpioConfig(0, GPIO_ENABLE); gpioConfig(GPIO0, GPIO_OUTPUT); gpioConfig(GPIO2, GPIO_OUTPUT); gpioConfig(GPIO4, GPIO_OUTPUT);}
void main(void) {// Inicializar placaboardConfig();
// Habilita cuenta de tick cada 1mstickConfig(1, 0);
// Inicializaciones del usuario pruebasetup();while (TRUE) { ponerSemaforoEnVerde(); delay(1000 * 2); ponerSemaforoEnAmarillo(); delay(1000 * 1); ponerSemaforoEnRojo(); delay(1000 * 3);}
}
Ejemplo de código generado II
void ponerSemaforoEnVerde() { gpioWrite(GPIO0, OFF); gpioWrite(GPIO2, OFF); gpioWrite(GPIO4, ON);}
void ponerSemaforoEnAmarillo() { gpioWrite(GPIO0, OFF); gpioWrite(GPIO2, ON); gpioWrite(GPIO4, OFF);}
void ponerSemaforoEnRojo() { gpioWrite(GPIO0, ON); gpioWrite(GPIO2, OFF); gpioWrite(GPIO4, OFF);}
Dedo 3D: Servo - ADC
Prueba anemómetro: SysTick - GPIO - UART
Workshop en el SASE 2017
Uso en proyecto de prótesis robótica en UTN FRA - LABFRA
CONCLUSIONES4
Aportes del proyecto
◦ Alternativa abierta y local a las plataformas de robótica educativa.
◦ Interfaz simple para programar la EDU-CIAA-NXP, útil para enseñanza y prototipado rápido.
Logros
◦ Uso y puesta a prueba en cursos CAPSE
◦ Uso en los cursos para el INET del Ministerio de Educación, para profesores de escuelas técnicas.
◦ Gran aceptación por parte de los usuarios.
Trabajo futuro
◦ Mejorar la comunicación e interfaz Firmata con la placa para contar con una “depuración interactiva”.
◦ Extender el soporte a otras plataformas dentro del ecosistema CIAA.
◦ Desarrollar nuevos modelos de CIAABOTS.
◦ Generación de pseudo-código similar a C en español.
Créditos
◦ Plantilla de presentación e íconos de SlidesCarnival◦ Fotografías:
▫ Anemómetro y maqueta de Eric Pernía.▫ Brazo y dedo 3D de Deborah Fariñas.▫ EDU-CIAA-NXP de Proyecto CIAA.