Your SlideShare is downloading. ×
Presentacion NXT
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Presentacion NXT

193
views

Published on

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
193
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ampliación de la capacidad de procesamiento del robot Lego Mindstorms NXT con una Raspberry Pi Víctor Manuel Rojas Nóbrega Juan Antonio Fernández Madrigal Ana María Cruz Martín Departamento de Ingeniería de Sistemas y Automática Universidad de Málaga 14 de febrero de 2014 1
  • 2. Índice 1. Conceptos 2. Elementos involucrados en el sistema 3. Objetivos 4. Trabajos relacionados 5. Sistema desarrollado 6. Características del sistema 7. Resultados 8. Futuros trabajos 2
  • 3. Conceptos Robótica educativa ¿Qué es la robótica educativa? Conjunto de actividades pedagógicas que apoyan y fortalecen áreas específicas del conocimiento y desarrollan competencias en el alumno, a través de la concepción, creación, ensamble y puesta en funcionamiento de robots. Sus principales objetivos son: La actividad de los estudiantes. La integración de distintas áreas del conocimiento. La observación y exploración de los problemas. 3
  • 4. Conceptos Single Board Computer ¿Qué es un Single Board Computer? Un ordenador de placa reducida (en inglés: Single Board Computer o SBC) es un ordenador completo en un sólo circuito. Sus principales características son: Tamaño reducido. Uso en entornos industriales o de desarrollo. Económico. 4
  • 5. Elementos del sistema Lego Mindstorms NXT El robot Lego Mindstorms NXT es uno de los kits de aprendizaje más usados en todo el mundo. Está compuesto por una serie de sensores (distancia, luz, sonido, etc.) que interactúan con el medio por el que circula movido por sus motores, todo ello conectado y controlado por un ladrillo central que contiene un microcontrolador. La forma de interactuar con el robot puede ser a través de un programa cargado previamente por USB en la memoria del ladrillo o mandándole órdenes vía Bluetooth mediante el protocolo Direct Commands. Robot Lego Mindstorms NXT 5
  • 6. Elementos del sistema Raspberry Pi La Raspberry Pi es un SBC de bajo coste diseñado para estimular la enseñanza de la computación en las escuelas de todo el mundo. Posee conectores USB, Ethernet, HDMI, GPIO, MIPI CSI, salida audio de 3.5 mm y de vídeo RCA. Se alimenta mediante micro USB. Usa el sistema operativo Raspbian. 6
  • 7. Objetivos Aumentar la capacidad de cómputo y añadir sensor de visión ¿Qué problema se quiere resolver? Las limitaciones que posee el robot Lego Mindstorms NXT con respecto a su capacidad de cómputo, memoria y sensores. Las limitaciones que tiene el robot en estos ámbitos son: Un microcontrolador ARM7 a 70Mhz. Una memoria de 64KBytes de capacidad. Sensor de colores predefinidos. 7
  • 8. Trabajos relacionados Aumentar la capacidad de cómputo y añadir sensor de visión ¿Como lo resuelven otros? Interactuando con el robot mediante dispositivos externos que cargan con todo el trabajo de cómputo, delegando en el NXT comandos que únicamente interactuen con el firmware. Unos ejemplos de soluciones propuestas por la comunidad de desarrolladores son: Mover el robot con un mando de la consola Wii. Controlarlo usando un smartphone y su cámara. Mandar órdenes con el NXT usando Python y una Raspberry Pi. 8
  • 9. Trabajos relacionados Controlar el NXT usando un Wiimote y un ordenador 9
  • 10. Trabajos relacionados Resolver un cubo de Rubik usando un smartphone y 4 ladrillos NXT 10
  • 11. Trabajos relacionados Enviar órdenes al robot con una Raspberry Pi conectada por USB usando Python 11
  • 12. Sistema desarrollado Descripción del sistema ¿Como lo resolvemos nosotros? Conectándo una webcam a la Raspberry Pi y dejándole todo el trabajo de cómputo, convirtiendo al robot en un mero intérprete de comandos que le llegan vía Bluetooth. El sistema se compone de: Una placa Raspberry Pi. Un robot Lego Mindstorms NXT. Una webcam USB. Un adaptador Bluetooth USB. 12
  • 13. Sistema desarrollado Descripción del sistema Para controlar todos los elementos que componen el sistema, se ha desarrollado una API (escrita en C) que abstrae al usuario de todas las operaciones y protocolos de comunicación entre los periféricos. Esta API se compone de 3 módulos que controlan todas las partes implicadas del sistema: NXTbt – Módulo de comunicación Bluetooth entre la Raspberry Pi y el robot. NXTdc – Módulo que recoge la funcionalidad completa del NXT. NXTwc – Módulo que interactúa con la webcam. El módulo de los Direct Commands mantiene la misma sintáxis de las funciones que las del lenguaje NXC. 13
  • 14. Sistema desarrollado Funcionamiento del sistema El carácter autónomo de los programas que se van a ejecutar sobre la Raspberry Pi hace que tengan que lanzarse cuando el sistema se está iniciando, de forma que el robot pueda moverse libremente por el escenario del experimento, sin necesidad de una conexión a un monitor y teclado, únicamente con el cable micro USB de alimentación de la placa. Al no existir un grupo de comandos firmware que controlen la pantalla LCD del robot, se ha optado por conectar un diodo LED a la Raspberry Pi, de forma que se pueda saber cuando empieza y termina la ejecución de los programas en el start-up del sistema. La transferencia de ficheros entre la Raspberry Pi y el ordenador donde se quieran llevar a cabo los análisis de resultados, se puede realizar mediante la conexión directa por cable de red y usando un programa como PuTTY. 14
  • 15. Sistema desarrollado Funcionamiento del sistema 15
  • 16. Sistema desarrollado Lego Mindstorms NXT Este Proyecto no cambia la configuración del robot que se usa en el Departamento de Ingeniería de Sistemas y Automática de la Universidad de Málaga. Debe tener conectados los siguientes sensores sensores: Sensor de distancia. Sensor de luz. Sensor de sonido. Configuración del robot Lego Mindstorms NXT 16
  • 17. Sistema desarrollado Raspberry Pi La Raspberry Pi usada en este Proyecto Fin de Carrera pertence al modelo B que posee únicamente dos puetos USB, por lo que es necesario conectar y desconectar el teclado cada vez que se quiera reprogramar la placa. Se conectan a la placa los siguientes elementos: Webcam USB. Adaptador Bluetooth USB. Diodo LED en el puerto 11 de GPIO. Elementos conectados a la Raspberry Pi 17
  • 18. Sistema desarrollado Montaje del sistema El primer paso es colocar la Raspberry Pi en el sitio donde menos pueda interferir con las lecturas del sensor de distancia debido a su tamaño: en la parte posterior del robot. Finalmente se coloca la webcam en la parte libre del robot que esté más cerca del suelo, para poder detectar objetos que estén muy cerca. Aspecto final del sistema completo 18
  • 19. Sistema desarrollado API-NXT La creación de los programas que usan la API-NXT del Proyecto se realiza usando el editor de texto Nano que incorpora el sistema operativo Raspbian de la Raspberry Pi. La compilación se produce a través del front-end para C del compilador gcc. Las funciones de comunicación Bluetooth usan la librería BlueZ, que se ocupa de la creación y cierre del socket de transmisión de mensajes. El encendido y apagado del LED se realiza usando la librería wiringPi, encargada del manejo de la matriz de puertos GPIO de la Raspberry Pi. El módulo que interactua con la webcam usa la librería OpenCV para la obtención y análisis de los fotogramas que se van capturando con la cámara. 19
  • 20. Sistema desarrollado API-NXT Módulo de comunicaciones Bluetooth Módulo de control de Direct Commands Módulo de control de la webcam 20
  • 21. Características del sistema Ventajas del sistema con respecto a otro tipo de soluciones El uso de smartphones para gobernar un robot Lego Mindstorms no es aconsejable dentro de ambientes académicos por su elevado coste si se compara con el de una Raspberry Pi. El sensor de colores que posee el NXT permite únicamente detectar objetos de ciertos colores definidos en el firmware del robot, mientras que con el uso de una webcam USB y se puede detectar cualquier color que queramos, así como obtener valores de posición y tamaño de los objetos. La matriz de conectores GPIO que posee la Raspberry Pi permite la posibilidad de conectar cualquier tipo de dispositivo digital, pudiendo ampliar el abanico de sensores usando, por ejemplo, los disponibles para placas como Arduino. 21
  • 22. Resultados Metas conseguidas con este Proyecto Se ha aumentado 10 veces la capacidad de cómputo que tenían los usuarios del NXT, pasando de un microcontrolador ARM7 de 70Mhz a un ARM11 a 700Mhz de la Raspberry Pi. La cantidad de memoria disponible se ha multiplicado 8192 veces, de 64Kbytes en el robot a 512Mbytes. Cualquier webcam USB que sea compatible con Raspbian se podrá utilizar en el montaje de este sistema, reutilizando de esta manera hardware y ahorrandose el coste que supone la adquisición de la cámara oficial que comercializa Lego (150$). 22
  • 23. Resultados Metas conseguidas con este Proyecto Se ha creado una librería compuesta de tres módulos capaces de manejar los tres tipos de periféricos presentes en este sistema: webcam, Bluetooth y el propio robot. Además del uso de la matriz GPIO con la API de wiringPi. Las comunicaciones Bluetooth entre el robot y la Raspberry Pi no penalizan la velocidad del sistema, ya que el cuello de botella se encuentra en el procesamiento de la imagen por parte de las funciones de OpenCV y de la velocidad de refresco de la webcam. Debido a que se quiere liberar a la Raspberry Pi de toda carga de trabajo ajena a la creación y ejecución de programas que interactuen con el robot, se recomienda que la fase de análisis de los datos recogidos por los sensores se haga de forma externa, transfiriendo hacia otro ordenador por red los ficheros generados. 23
  • 24. Resultados Conclusión final Incremento en el desarrollo y comercialización de SBCs por parte de diversas compañías tecnológicas. Expansión de los ordenadores de placa reducida entre usuarios del mundo de la enseñanza. Aumento del uso de robots en entornos académicos como forma de aprendizaje. Creciente interés en sistemas de visión por ordenador por parte de la comunidad de desarrolladores. 24
  • 25. Futuros trabajos Líneas de mejora del sistema Desarrollo de todas las funciones que componen la API de NXC. Creación de una interfaz LCD con botones conectada al puerto GPIO de la Raspberry Pi. Desarrollo de una aplicación que obtenga los valores de color de un objeto sobre fondo blanco. Mejora del rendimiento de las funciones de análisis de imagen que implementa el módulo de webcam de la API. Creación de una interfaz hardware que permita la conexión de sensores del robot NXT al GPIO de la placa. 25