SlideShare a Scribd company logo
1 of 25
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
Í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
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
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
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
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
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
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
Trabajos relacionados
Controlar el NXT usando un Wiimote y un ordenador

9
Trabajos relacionados
Resolver un cubo de Rubik usando un smartphone y 4 ladrillos NXT

10
Trabajos relacionados
Enviar órdenes al robot con una Raspberry Pi conectada por USB usando Python

11
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
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
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
Sistema desarrollado
Funcionamiento del sistema

15
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
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
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
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
Sistema desarrollado
API-NXT

Módulo de comunicaciones Bluetooth

Módulo de control de Direct Commands

Módulo de control de la webcam

20
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
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
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
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
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

More Related Content

What's hot (19)

Lego mindstorms nxt
Lego mindstorms nxt Lego mindstorms nxt
Lego mindstorms nxt
 
Colegio nacional nicolas (reparado)
Colegio nacional nicolas (reparado)Colegio nacional nicolas (reparado)
Colegio nacional nicolas (reparado)
 
mi resumen
mi resumenmi resumen
mi resumen
 
presentacion taller 8
presentacion taller 8 presentacion taller 8
presentacion taller 8
 
Guia de Usuario Lego NXT
Guia de Usuario Lego NXTGuia de Usuario Lego NXT
Guia de Usuario Lego NXT
 
Programación robots nxt 2
Programación robots nxt 2Programación robots nxt 2
Programación robots nxt 2
 
hjdedjknqwc
hjdedjknqwchjdedjknqwc
hjdedjknqwc
 
ljmlkbn jklbn .jkbn l.
ljmlkbn jklbn .jkbn l.ljmlkbn jklbn .jkbn l.
ljmlkbn jklbn .jkbn l.
 
Nxt Y Robotic Studio
Nxt Y Robotic StudioNxt Y Robotic Studio
Nxt Y Robotic Studio
 
Colegio nicolás esguerra
Colegio nicolás esguerraColegio nicolás esguerra
Colegio nicolás esguerra
 
Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerra
 
presentacion lego mindstorms
presentacion lego mindstormspresentacion lego mindstorms
presentacion lego mindstorms
 
Trabajo
Trabajo Trabajo
Trabajo
 
TRABAJO DE INFORMATICA
TRABAJO DE INFORMATICATRABAJO DE INFORMATICA
TRABAJO DE INFORMATICA
 
Guia de infor 420
Guia de infor 420Guia de infor 420
Guia de infor 420
 
Lego nxt mindstors
Lego nxt mindstorsLego nxt mindstors
Lego nxt mindstors
 
colegio nacional nicolás esguerra
 colegio  nacional nicolás esguerra colegio  nacional nicolás esguerra
colegio nacional nicolás esguerra
 
Power point lego mindstorms
Power point lego mindstormsPower point lego mindstorms
Power point lego mindstorms
 
Nxt
NxtNxt
Nxt
 

Similar to Presentacion NXT

Copia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfCopia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfMissPotato2
 
Copia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfCopia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfSharonGalindez1
 
Microbit - Gabriela Samboni
Microbit - Gabriela SamboniMicrobit - Gabriela Samboni
Microbit - Gabriela SamboniGabrielaSamboni1
 
Empezando con las librerías gráficas de microchip
Empezando  con las librerías gráficas de  microchipEmpezando  con las librerías gráficas de  microchip
Empezando con las librerías gráficas de microchipBiblioman Aquihayapuntes
 
Corrección de la evaluación periódica
Corrección de la evaluación periódicaCorrección de la evaluación periódica
Corrección de la evaluación periódicasebastianmunoz666
 
Robot Programable Moway
Robot Programable MowayRobot Programable Moway
Robot Programable Mowayminirobots
 
Guia basica-microbit (1)
Guia basica-microbit (1)Guia basica-microbit (1)
Guia basica-microbit (1)anep
 
(2) Prieto Antón - Diseño de la app y el control de una cámara video con Ardu...
(2) Prieto Antón - Diseño de la app y el control de una cámara video con Ardu...(2) Prieto Antón - Diseño de la app y el control de una cámara video con Ardu...
(2) Prieto Antón - Diseño de la app y el control de una cámara video con Ardu...XiomaraCorralesQuint
 
Tecnología
Tecnología Tecnología
Tecnología v16959670
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDANNALORENAHURTADO
 

Similar to Presentacion NXT (20)

raspeberry para domotica.pdf
raspeberry para domotica.pdfraspeberry para domotica.pdf
raspeberry para domotica.pdf
 
funciones de la microbit .docx
funciones de la microbit .docxfunciones de la microbit .docx
funciones de la microbit .docx
 
Copia de microbit.pdf
Copia de microbit.pdfCopia de microbit.pdf
Copia de microbit.pdf
 
Copia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfCopia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdf
 
Copia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfCopia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdf
 
Microbit - Gabriela Samboni
Microbit - Gabriela SamboniMicrobit - Gabriela Samboni
Microbit - Gabriela Samboni
 
Empezando con las librerías gráficas de microchip
Empezando  con las librerías gráficas de  microchipEmpezando  con las librerías gráficas de  microchip
Empezando con las librerías gráficas de microchip
 
2-CapaPercepción.pdf
2-CapaPercepción.pdf2-CapaPercepción.pdf
2-CapaPercepción.pdf
 
Examen de arquitectura
Examen de arquitecturaExamen de arquitectura
Examen de arquitectura
 
Corrección de la evaluación periódica
Corrección de la evaluación periódicaCorrección de la evaluación periódica
Corrección de la evaluación periódica
 
Robot Programable Moway
Robot Programable MowayRobot Programable Moway
Robot Programable Moway
 
Robo Taller
Robo TallerRobo Taller
Robo Taller
 
Informe1
Informe1Informe1
Informe1
 
Anexo meteo pi (1)
Anexo meteo pi  (1)Anexo meteo pi  (1)
Anexo meteo pi (1)
 
Guia basica-microbit (1)
Guia basica-microbit (1)Guia basica-microbit (1)
Guia basica-microbit (1)
 
(2) Prieto Antón - Diseño de la app y el control de una cámara video con Ardu...
(2) Prieto Antón - Diseño de la app y el control de una cámara video con Ardu...(2) Prieto Antón - Diseño de la app y el control de una cámara video con Ardu...
(2) Prieto Antón - Diseño de la app y el control de una cámara video con Ardu...
 
Presentacion Máster
Presentacion MásterPresentacion Máster
Presentacion Máster
 
Tecnologia 2 (1).pdf
Tecnologia 2 (1).pdfTecnologia 2 (1).pdf
Tecnologia 2 (1).pdf
 
Tecnología
Tecnología Tecnología
Tecnología
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 

Recently uploaded

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Recently uploaded (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

Presentacion NXT

  • 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
  • 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