Ambiente de aprendizaje basado en un robot móvil controlado con Kinect y Scratch
Camilo Ruales Tobóna y Oscar Ramírez Canob
a
b
Docente Secretaría de Educación Distrital de Bogotá Bogotá, Colombia.
[email protected]
Docente de la licenciatura en educación básica con énfasis en Tecnología e Informática de la Corporación Universitaria Minuto de Dios – UNIMINUTO. Bogotá , Colombia.
[email protected],
[email protected]
Resumen. En la educación en tecnología se aborda la robótica como una forma de desarrollar ambientes de aprendizaje, debido a que es una disciplina que involucra diferentes campos de conocimiento, y se adapta de manera fácil a la metodología de solución de problemas desarrollando en los estudiantes habilidades cognitivas, actitudinales y procedimentales. Esto conlleva a que se desarrollen propuestas significativas que involucren diversos objetos que permitan una interacción lúdica con los estudiantes, en donde ellos aprendan a partir del juego, entornos que los lleve a proyectar su cuerpo en actividades que involucran diferentes áreas del conocimiento. La propuesta planteada aquí se desarrolla a partir de un robot móvil controlado por Kinect, programado con Scratch y en la plataforma de programación Arduino. Palabras Clave. Ambiente de aprendizaje, Scratch for Arduino y lúdica. Área Temática. Soluciones TIC para la enseñanza.
1 INTRODUCCIÓN La Robótica como disciplina transversal involucra distintos campos de conocimiento, fortaleza que puede ser aprovechada en la educación en Tecnología. La solución de problemas utilizando este tipo de objetos, permite que los estudiantes hagan prácticos sus conocimientos. Trabajar con estos elementos desarrolla habilidades cognitivas, actitudinales y procedimentales. Usar objetos que posibiliten el juego como acto interactivo, hace ver que el aprendizaje no es una actividad ajena a la cotidianidad de la vida, se proyecta al estudiante a aprender en entornos lúdicos y bajo experiencias significativas. Por otra parte el interés que los robots representan en las comunidades y sobre todo en las nuevas generaciones, hacen que sea una excusa perfecta para acercarse a sus intereses, también se fortalece su capacidad investigativa y distintos tipos de pensamiento, en palabras de Ruíz-Velazco [1]: la robótica obliga a mantener la
1
atención en el control de múltiples variables, que funcionan simultáneamente, favoreciendo el desarrollo de pensamiento sistémico. Con base en esto, se desarrolla un robot móvil, éste se convierte en un ambiente de aprendizaje que potencia las experiencias de los estudiantes, y se acerca a diferentes temas de tecnología que pueden considerarse muy complejos, pero que en la práctica y gracias al uso de recursos didácticos, se pueden acceder de formas más amables. El robot se concibió haciendo uso de distintos tipos de recursos libres, hardware y software, como son el Scratch, el Arduino y el Kinect. Éstos se usaron debido al volumen de información generado por comunidades que se dedican a promover este tipo de conocimiento en el campo educativo, y a la vez, por la compatibilidad que existe entre los mismos. El entorno de programación de Scratch es tan versátil, que cuenta con diferentes versiones para la programación de dispositivos robóticos, como es el de Lego y el mismo Arduino. Estos adaptaciones se dieron por su aplicación didáctica y su fácil aprendizaje, encontrando fortalezas en el desarrollo de habilidades de información y comunicación, de pensamiento y solución de problemas e interpersonales y de autodirección [2]. La compatibilidad está presente en la integración de la placa de Arduino con el entorno Scratch y con elementos electrónicos genéricos de bajo costo. A parte de esto, el Arduino reconoce otros lenguajes de programación, lo que permite hacia futuro es que los estudiantes puedan solucionar problemas. El Kinect brinda una experiencia interactiva entre el robot y el usuario, liberandolo del uso de dispositivos tangibles, para proyectar su cuerpo en un mundo virtual, maximizando su expresión corporal. El sistema Kinect es usado de una manera variedad en la escuela, en áreas como: matemáticas, artes, ciencias sociales y educación especial [3].
2 DESARROLLO Y DISEÑO El proyecto desarrollado necesitó la construcción de un robot móvil que fuera controlado a partir del dispositivo kinect. La programación se realizó a través del software Scratch for Arduino, la cual es una versión de Scratch adaptada para trabajar con la placa de programación de Arduino. Los recursos utilizados en el desarrollo y diseño del robot están enmarcados en políticas de libre distribución de software y hardware libre. El producto de esta investigación pretende aportar a la construcción de conocimiento alrededor de la robótica educativa. En ese sentido es necesario profundizar en las características que acompañan cada una de estas tecnologías.
2
1.1 KINECT Kinect fue diseñado inicialmente para la consola de videojuegos Xbox desarrollada por Microsoft, facilita al usuario la interacción sin depender de mandos físicos, haciendo que la experiencia sea real y se extienda no solamente a las manos, sino que involucra todo el cuerpo, acercándose a una experiencia kinestésica. Posteriormente se extendió su compatibilidad con el sistema operativo windows 7, esto permitió el desarrollo de diferentes aplicaciones y amplió el uso de este dispositivo. Los desarrollos no fueran solamente aplicaciones para el entretenimiento, sino con proyecciones académicas. Las especificaciones técnicas del Kinect es que posee dos cámaras, las cuales envían datos con una frecuencia de actualización de 30 fps. Lo que significa que algunos movimientos tendrán unos instantes de retraso. Cuenta con una cámara RGB, un sensor de profundidad y un procesador que permite el reconocimiento de movimiento de todo el cuerpo en 3D, reconocimiento facial y reconocimiento de voz. Para el desarrollo de este proyecto se hizo uso del Kinect Xbox 360 modelo 1414, el cual requiere un adaptador de corriente y un convertidor para puerto USB. El kit de desarrollo de software (SDK) es proporcionado por Microsoft, permitiendo el uso de este dispositivo en sistemas operativos windows 7 o superior. 1.2 SCRATCH FOR ARDUINO - S4A Scratch es ambiente de programación didáctico, desarrollado por Lifelong Kindergarden Group en el laboratorio de medios del MIT. Es un software libre, que se apoya en la programación intuitiva, a partir de bloques lógicos. Esta aplicación ha sido probada en diferentes ámbitos para la enseñanza de la programación, para el desarrollo de historias interactivas, juegos y animaciones. Scratch for Arduino (de aquí en adelante S4A), es una modificación del software Scratch, que está pensado para integrar la placa de Arduino, con el fin de manipular los puertos de entrada y salida de dicha plataforma. Facilita la construcción de instrucciones de programación, evitando la escritura de código fuente, dado que disminuye la complejidad de la sintaxis de los lenguajes de programación, esto se debe a la implementación de bloques que se acoplan de manera lógica. Este software también ha tenido una amplia difusión a nivel didáctico tal como se deja ver en el documento de ponencia: “A4C: Arduino For Children, una alternativa que hace uso de la robótica para el desarrollo de competencias descriptivas” [4] y el documento: “Design and Evaluation of Computer Programming Education Strategy using Arduino” [5]. Adicional al anterior software, fue necesario utilizar la aplicación Kinect to Scratch for Kinect SDK 1.5 desarrollada por Stephen Howell. Este software establece la comunicación con el dispositivo Kinect y la aplicación S4A, visualizando en su interfaz la imagen en tiempo real de los jugadores.
3
Fig.1. Interfaz de conexión Kinect to Scratch (S2K). A partir de este aplicativo se conecta el Kinect con el entorno de programación de Scratch.
1.3 ARDUINO Arduino es una plataforma de hardware libre, que administra entradas y salidas analógicas y digitales, a través de un software de programación basado en el lenguaje processing. Desarrollado en el año 2005 por David Cuartielles y Massimo Banzi. Esta plataforma tiene una amplia difusión a nivel educativo por su versatilidad y bajo costo, además es compatible con varios productos electrónicos genéricos. La versión utilizada en este proyecto fue Arduino Uno R3, debido a que se encuentra con mayor facilidad en el mercado, y para la cual se hacen mayores desarrollos a nivel mundial. 1.4 TECNOLOGÍA INALÁMBRICA La tecnología inalámbrica permite suprimir el uso de cables, para la transmisión de datos, desapareciendo las limitaciones de espacio y tiempo. Con el ánimo de controlar el robot mediante tecnología inalámbrica, se utilizó tecnología Bluetooth. Una Bluetooth transmite datos por radiofrecuencia, facilitando la comunicación entre dispositivos móviles. Para el proyecto se usó la Bluetooth genérica de referencia RN41, la cual tiene un alcance aproximado de un radio de 10 m.
4
2 DETALLES DEL PROTOTIPO A continuación se detalla la manera cómo se construyó el robot móvil, con fines didácticos se presenta este numeral organizado en sus elementos constitutivos: Chasis y Fuente de Alimentación, Control de Motores y Comunicación. 2.1 CHASIS Y BATERÍA El robot móvil fue construido sobre un chasis genérico de acrílico de fabricación China, que mide 18 cm de largo, 13 cm de ancho y 11 cm de profundidad. Cuenta con dos motoreductores de 12 voltios y de 120 rpm, los cuales se conectan a una rueda, a la vez se instaló una rueda loca que funciona como el tercer punto de apoyo. La alimentación eléctrica se realiza con una batería de litio y polímero de 7,4 voltios a 1000 miliamperios. Ésta se conecta directamente a la placa de Arduino y brinda la energía necesaria para el funcionamiento de los motores, la Bluetooth y de los demás componentes. 2.2 CONTROL DE MOTORES Un problema habitual en el funcionamiento de los robots, es controlar su desplazamiento en distintas direcciones, el cual ha sido solucionado implementando un circuito puente H, éste utiliza un un amplificador operacional L293D, que conmuta las conexiones a los motores invirtiendo su polaridad. Esto permite la movilidad del robot en las coordenadas X y Y. La conexión al Arduino se realiza haciendo uso de cuatro salidas PWM (modulación por ancho de pulzo), esto se debe a la necesidad de controlar el suministro de potencia a los motores. Los detalles se hablarán en el numeral de programación del robot. 2.3 COMUNICACIÓN La Bluetooth seleccionada para el proyecto, tal como se menciono anteriormente fue la RN-41, ésta necesita ser configurada para generar transmisión de datos a mayor velocidad. La velocidad de transmisión por defecto es a 9600 baud, y algunas fuentes bibliográficas recomendaban aumentar la velocidad a los 57600 baud, para mejorar el performance con S4A. Asimismo debe permanecer en modo esclavo. Dichas modificaciones se efectuaron con comandos AT.
5
3 PROGRAMACIÓN DEL ROBOT La programación del robot móvil se realizó en la versión de S4A, dada su facilidad para integrar las estructuras de programación y la existencia de una interfaz de conexión con el dispositivo Kinect. S4A cuenta con bloques lógicos, lo cual permite como se mencionó anteriormente, no reparar en la sintaxis sino centrar la atención en la lógica de funcionamiento y en la eficiencia de la solución. El trabajar con S4A permite que el código no sea entendido exclusivamente por personas con experticia en lenguajes de programación, sino que por el contrario al ser una aplicación pensada para usos didácticos a cualquier edad, los usuarios podrán manipular y modificar la programación existente para ajustarla a sus necesidades. En ese sentido, la interfaz es tan flexible que podría permitirle al estudiante originar propuestas creativas que involucren formas distintas de solucionar el problema de control del robot móvil. En la construcción del código el usuario pone de manifiesto la apropiación de conceptos relacionados con el pensamiento computacional. “El pensamiento computacional implica resolver problemas, diseñar sistemas y comprender el comportamiento humano, haciendo uso de los conceptos fundamentales de la informática” [6], como son el uso de condicionales, estructuras de iteración y manejo de variables entre otras. Las situaciones modeladas en este ambiente también puede servir como punto de partida para extrapolarse a contextos donde se presentan otro tipo de problemas. Para propiciar que todo el sistema funcione de la manera más simple posible fue necesario modificar la configuración que por defecto trae el software S4A, habilitando cuatro salidas PWM. Esto es posible ingresando en el entorno Squeak Smalltalk del aplicativo y navegando en las categorías hasta encontrar la configuración de puertos de entrada y salida de Arduino. Para asegurar la comunicación fluida entre el Arduino y el entorno de programación, se requiere precargar en la placa el firmware1 que proporciona el portal Citilab, luego de haber sido ajustado a las condiciones de funcionamiento del aplicativo S4A. Otro punto importante consiste en la habilitación en la plataforma de programación de los sensores remotos que capturan la información proveniente del sensor Kinect en su interacción con el software S2K. A continuación se muestran las ilustraciones del código de programación para el control del robot móvil.
1
El firmware es un bloque de instrucciones de máquina para propósitos específicos grabado en un chip de lectura y escritura, que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo.
6
Fig. 2. Entorno de programación de Scratch. Programa realizado para la manipulación del robot móvil con Kinect.
4 INTERACCIÓN DIDÁCTICA Los objetivos más ambiciosos de este proyecto, que en su fase inicial contemplaron elementos técnicos, se orientan a la consolidación de un ambiente de aprendizaje que aproveche la presencia de dispositivos del contexto de los robótica y los videojuegos, contribuyendo a “... la coordinación óculo-manual traducido en mayor agudeza visual, rapidez de reacción, capacidad de reacción múltiple, actitud relacional, alta motivación al logro, mayor tolerancia a la frustración y capacidad para tomar riesgos, resolver problemas y tomar decisiones” [7]. La intencionalidad pedagógica se sustenta en la construcción de conocimiento basado en solución de problemas susceptibles de abordarse desde la tecnología. Se consideran varios elementos que pueden resultar propicios para la construcción de conocimiento, uno de ellos, el componente motivacional, garante de la activación de conceptos previos, se da bajo la experiencia con los videojuegos de la consola y la mediación del dispositivo kinect, fácilmente puede ser asociada con un momento de diversión en el aula de clase. El enfoque permanente de los videojuegos hace que su interacción se produzca en ambientes netamente virtuales, ahora bien, se pretende que el jugador-estudiante sea protagonista de las acciones que plantea el videojuego pero a través de una interfaz real como es el mismo robot. Su papel se proyecta más allá de un simple usuario jugador para convertirse en un protagonista activo en la construcción de su conocimiento. Esto motivará que el alumno se interese por la elaboración de dispositivos robóticos y todo lo que esto implica en términos educativos. “La robótica anima a los estudiantes a pensar creativamente, analizar situaciones y aplicar el
7
pensamiento crítico junto con habilidades para resolver problemas presentes en el mundo real. El trabajo en equipo y la colaboración son la piedra angular de cualquier proyecto de robótica. los estudiantes aprenden que es aceptable cometer errores, especialmente si esto los lleva a encontrar nuevas soluciones” [8]. La estrategia de implementación del ambiente de aprendizaje considera varios elementos que no necesariamente se presentan en orden jerárquico, sino que por el contrario aparecen integrados durante el proceso, cabe decir que la motivación intrínseca permanente es el aspecto que garantiza una adecuada disposición al aprendizaje. “la robótica educativa es la generación de entornos de aprendizaje basados fundamentalmente en la actividad de los estudiantes. Es decir, ellos podrán concebir, desarrollar y poner en práctica diferentes robots educativos que les permitirán resolver algunos problemas, y les facilitarán al mismo tiempo algunos aprendizajes” [1]. Una categoría relevante es el juego, éste se posiciona al mismo nivel del aprendizaje, ya que se convierte en una experiencia interesante para que los estudiantes formulen interrogantes sobre el funcionamiento del robot móvil controlado por kinect, así allanan un camino para la construcción de conceptos. Las dudas planteadas marcarán el camino que se debe seguir para diseñar una ruta de aprendizaje. La robótica aborda tres disciplinas fundamentales: Mecánica, Programación de Computadores y Electrónica. La ruta propuesta a seguir, será sugerida por los estudiantes, según la manera que planteen sus dudas. En el caso de la mecánica los acercamientos se pueden hacer a partir del análisis biónico, por ejemplo el desplazamiento de una araña. De allí se pueden integrar conceptos como máquinas simples, mecanismos, estructuras, dispositivos de sujeción, centro de gravedad y comportamiento de materiales. La electrónica debe ser abordada con temas básicos como energía, voltaje, corriente, resistencia, tipos de circuitos, componentes, sensores, Arduino, tipos de señales y comunicaciones. La enseñanza de la programación se hace aprovechando el ambiente didáctico de Scratch y bajo los parámetros de éste se involucran conceptos como estructuras secuenciales, iteraciones, condicionales, variables, funciones y procesos paralelos. Luego de apropiarse de los conceptos de robótica, los estudiantes estarán en la capacidad de enfrentarse a la construcción de un robot móvil controlado por Kinect, y a otros de menor complejidad. Asimismo, el estudiante tendrá la facultad de proponer nuevos diseños para solucionar diversos problemas de su cotidianidad, donde se pueda involucrar un dispositivo como éste.
8
Fig. 3. Niños interactuando con el robot móvil.
5 CONCLUSIONES El desarrollo del ambiente de aprendizaje mediado por un robot móvil controlado con kinect permite evidenciar una alta compatibilidad con distintos elementos inscritos en políticas de libre distribución. La facilidad de comunicación demostrado entre los elementos electrónicos, de software y de interfaz plantea un escenario enriquecido propicio para el trabajo pedagógico, superando dificultades técnicas. A su vez los costos de adquisición de los componentes electrónicos y la gratuidad del software posibilitan que las personas puedan acceder a este tipo de recursos y adaptarlos a diferentes necesidades, en el caso presente con una finalidad educativa. Por otra parte la apuesta pedagógica del ambiente de aprendizaje pretende la potencialidad en el componente motivacional intrínseco de los educandos, ya que los extrae de un ambiente educativo tradicional yuxtaponiendo lo lúdico sobre lo académico y favoreciendo un aprendizaje tácito. Un elemento no contemplado en esta investigación, pero susceptible de ser analizado es el desarrollo de la motricidad. El confort que representa para los estudiantes la interacción con un dispositivo móvil a través de la proyección de su cuerpo, es también un insumo motivacional para propiciar el aprendizaje vivenciado con todo su ser en un aquí y un ahora. La extrapolación de las soluciones construidas bajo el uso del ambiente puede contemplar desarrollos para poblaciones con diferentes discapacidades, evidentemente las relacionadas con las extremidades y discapacidades de orden motriz.
9
6 TRABAJOS FUTUROS En fases siguientes este proyecto abordará la observación del fenómeno educativo desde el desarrollo de habilidades cognitivas por parte de los estudiantes, que los puede llevar a solucionar problemas de distinta índole, aprovechando el uso de herramientas didácticas para el aprendizaje de la programación y su relación con la robótica. En el mismo sentido se pretende indagar desde la teoría de Integración Conceptual, sobre las proyecciones corporales en dispositivos robóticos, conduciendo esto al diseño de dispositivos robóticos, que redunden en la construcción de mejores ambientes de aprendizaje.
7 REFERENCIAS BIBLIOGRÁFICAS 1. 2.
3.
4.
5.
6. 7.
8.
RUÍZ-VELASCO, Enrique. (2007). Educatrónica. Innovación en el aprendizaje de las ciencias y la tecnología. Ediciones Díaz de Santos. Madrid. RESNICK, M., MALONEY, J., MONROY-HERNÁNDEZ, A., RUSK, N., EASTMOND, E., BRENNAN, K., MILLNER, A., ROSENBAUM, E., SILVER, J., SILVERMAN, B., & KAFAI, Y. (2009). "Scratch: Programming for All". Communications of the ACM, 52 (11), 60-67. CENTER FOR DIGITAL EDUCATION. "Learning through Motion". [En línea]. Microsoft (2012). [Fecha de consulta: 1 de marzo]. Disponible en: http://download.microsoft.com/download/4/1/8/4182DF40-7EA3-4C1391D0-E3B75D639590/CDE12BRIEFMicrosoft_Kinect.pdf URIBE SICHACA, Lina & VEGA, Jamilton. A4C “Arduino For Children”: Una alternativa que hace uso de la robótica para el desarrollo de competencias descriptivas. En: VirtualEduca. (2013). Memorias ponencias 2013. [Fecha de consulta: 1 de Marzo de 2015]. Disponible en: http://www.virtualeduca.info/ponencias2013/80/ponencia2.docx WON-SUNG, Sohn. (2014). "Design and Evaluation of Computer Programming Education Strategy using Arduino". En: Advanced Science and Technology Letters, 66 (1). 73-77. Recuperado desde: http://dx.doi.org/10.14257/astl.2014.66.18 WING, J.M. (2006). "Computational Thinking". En: Communications of ACM, 49 (3). Recuperado desde: https://www.cs.cmu.edu/~15110s13/Wing06-ct.pdf. GREEN, S. RENJIE, L. & BAVELIER, D. (2010). Perceptual Learning During Action Video Game Playing. Topics in Cognitive Science, 2 (2). 202–216. Recuperado desde: http://onlinelibrary.wiley.com/doi/10.1111/j.1756-8765.2009.01054.x/full PITTI PATIÑO, Kathia. (2011). La robótica educativa como un entorno tecnológico que promueve el aprendizaje colaborativo. En: HERNÁNDEZ, A. y OLMOS, S. Metodologías de aprendizaje colaborativo a través de las tecnologías. Ediciones Universidad de Salamanca. Salamanca.
10
8 OTRAS REFERENCIAS BIBLIOGRÁFICAS 1. 2. 3. 4.
HOWELL, S. (2012). Kinect2Scratch (versión 2.5) [Computer Software]. http://scratch.saorog.com MIGLINO, O., LUND, H.H. & CARDACI, M. (1999). "Robotics as an Educational Tool". En: Journal of Interactive Learning Research, 10 (1), 2547. PRENSKY, M. (2001). "Digital Game-Based Learning". Editorial McGrawHill. New York. ROMERO, Margarida & TURPO GEBERA, Osbaldo. (2012). Serious Games para el desarrollo de las competencias del siglo XXI. RED. Revista de Educación a Distancia, 9 (34). 1-22.
11