Era verano, Suiza, un curso de robótica y programación para estudiantes adolescentes entre catorce y dieciocho años. Uno de los grupos me estaba mostrando su presentación para evaluación, la temática era que tipo de robot construirían con hardware libre que habían aprendido a usar en la clase, y una breve explicación de la parte técnica. Mis alumnos, con mucha emoción me mostraron un robot de batalla para la defensa civil, poco más que un Transformer "libre". En la cartulina me habían dibujado un prototipo, y habían marcado con flechas los servomotores, los sensores, el propio arduino en el pecho, todo. Como ese me mostraron varios proyectos, invención de los distintos grupos de la clase, nos reímos un montón, pero lo más importante es que muchos se interesaron en llevar a cabo sus propios proyectos en casa.
Un mes antes había estado de monitora en un curso similar pero sólo para chicas, de una edad similar, en un campus de la Universidad de Granada. Mi grupo debía construir un mando y un videojuego usando arduino (hardware libre) pasando por estudiar un diseño para la interfaz del juego, del mando físico y que tuviera un reto básico; como todo videojuego. Los resultados fueron muy divertidos, y salieron un montón de comentarios sobre videojuegos, mientras arreglábamos errores comunes de programación y de conexión con el arduino.
Tuve un alumno algo más pequeño que todos los anteriores, de la otra parte de España. A través de videollamadas trabajamos sobre arduino y aprendimos programación, ciberseguridad básica y navegación segura. Sin embargo su interés principal era hardware, así que machacamos su arduino a muerte. Aprendíamos con ejercicios pequeños poco a poco y celebrábamos cada vez que funcionaba, hasta conseguir proyectos un poco más grandes como una mano robótica con cartón y servos. Había errores que se repetían recurrentemente, pero aprendimos a "debuggear" tanto código como hardware y siempre nos hacíamos las mismas preguntas. "¿el cable éste está bien colocado?", "¿nos hemos saltado un punto y coma?", "Tenemos conectado el puerto adecuado?".
Hice una sustitución de emergencia en una clase de robótica con alumnos entre cinco y diez años. Arduino era nuestra herramienta principal, pero lo más importante era comprender que la electrónica no es magia. Dibujé de rodillas en una pizarra pequeña las conexiones básicas, con varios colores. Trabajamos sobre que cosas se pueden hacer en el mundo con la electrónica, la diferencia entre sensores y actuadores. Y conseguimos hacer un pequeño semáforo con scratch (un lenguaje de programación pensado para aprender la lógica de programación) y arduino, a veces hay que buscar tres o cuatro formas de explicar o preguntar lo mismo pero al final conseguimos comprendernos, y el resultado es celebrar que todos los grupos tienen un semáforo led funcionando.
La tecnología está presente en cada parte de nuestra vida, es la sociedad en la que vivimos. Tiene peso en el mundo, y comprender la tecnología nos ayuda a comprender como actuar en él. La informática ya no es sólo una cuestión de especialidad técnica, es una parte fundamental del mundo. Las nuevas generaciones han nacido rodeados de pantallas y tecnología, y es una necesidad vital comprender que eso funciona gracias a la lógica y la electrónica y no por arte de magia. Nos sorprendería descubrir todo lo que nos puede enseñar una generación nativa digital, pero para ello debemos mostrarles las bases. Afortunadamente ahora hay un montón de herramientas que facilitan este trabajo, que se han ido depurando hasta conseguir acercar la informática a la educación más básica. Cuando yo aprendí programación tuve que buscar online un curso, que tenía que releer una y otra vez porque no comprendía bien... algunos con más experiencia que yo lo han tenido más difícil, con un manual de BASIC y un spectrum, quizás. Afortunadamente unos años después en bachillerato mi profesor de informática aclaró mis dudas y asentó mi conocimiento, hizo un tremendo esfuerzo por enseñarnos C (uno de los lenguajes de programación menos amigables que existen) a través de su enorme paciencia y motivación.
Es fácil pensar que algo que a nosotros nos cuesta comprender de primeras sea algo factible explicárselo a un niño, pero lo que he aprendido dando clases es que la condescendencia a la hora de enseñar es mejor dejarla apartada. Es sorprendente la capacidad de aprender que tienen algunos niños, y con las herramientas adecuadas pueden comprender conceptos que a nosotros nos costarían más. Algunas de esas herramientas son las que quiero exponer en este artículo, enfocada a la robótica.
La electrónica y robótica no tienen sentido sin programación. Esto es todo un reto porque hay que plantearse dos partes separadas (aunque relacionadas) a la hora de enseñar robótica: programación y hardware. Programación, si nos quedamos en lo fundamental, es lógica. La misma lógica que nos hace construir un camino, cruzar la calle o jugar, solo que usando una definición reglada en lugar de un concepto abstracto. Sin embargo la intuición juega un papel importante, no sólo es teoría, es una forma de expresar lo que ya podemos deducir sólos. Cuando se intenta expresar esta lógica a través de lenguajes de programación formales como C, C++, python o similares, podemos encontrarnos con un muro de dificultad añadida, que es comprender la estructura de ese lenguaje. Es como cuando al estudiar un idioma, a los españoles nos cuesta más estudiar chino, que contiene una estructura completamente diferente, que francés, que nos resulta más o menos familiar. Por esto, hace unos pocos años surgió Scratch, un lenguaje de programación diseñado para aprender a programar de una forma intuitiva.
Scratch está conformado por bloques que se encajan como piezas de un puzle, y que están etiquetados con las acciones básicas de programación tales como "repetir mientras...", "hacer esto si...", "no hacer..." y similar. Las distintas funciones están separadas por colores, de modo que queda claro en un primer vistazo que tipo de programa se está construyendo, y es fácil identificar errores a través d ela abstracción. Pese a su simplicidad es muy flexible así que permite hacer desde programas básicos a estructuras más complejas. Cuando se alcanza soltura con scratch es muchísimo más fácil pasar a cualquiera de los lenguajes antes mencionados y saltar a la informática formal, porque al final todos se basan en los mismos preceptos en su estructura más básica. De vuelta al hardware, arduino y otros microcontroladores similares pueden programarse con scratch, facilitando enormemente el trabajo de un educador. Una vez los alumnos han comprendido la dinámica básica de la programación pasamos al siguiente reto, que comprendan como esa misma lógica puede afectar a algo tangible, como un arduino. La forma más sencilla de empezar es a través del movimiento, o de luces. Si tan sólo se cuenta con un kit básico de arduino el camino más simple es apagar y encender un led. Requiere las conexiones mínimas y es muy gráfico.
Sin embargo, entre las muchas herramientas que se han desarrollado a la hora de enseñar robótica, y dependiendo de la edad y conocimientos de los alumnos, hay un rango amplio de opciones. Una muy común por ejemplo es el escornabot. La primera vez que descubrí el escornabot fue en un curso de robótica educativo impartida por la Universidad de Granada en la Escuela técnica de Ingeniería informática. Allí nos mostraron un pequeño robot con ruedas y cinco botones. Los botones eran de derecha, izquierda, arriba, abajo y empezar. A continuación pusieron una cuadrícula grande en el suelo, con un cuadrado de comienzo, y podíamos elegir un cuadrado de final. La idea del robot es usar los botones para diseñar un camino que nos lleve desde la cuadrícula de inicio a la final. La escena era divertida porque acabamos alumnos que nos interesaba la docencia junto algunos profesores que nos habían estado dando clase unas horas antes sobre sistemas operativos, álgebra o programación, todos juntos sentados jugando con un robot de infantil. Pero la idea nos quedó clara, no se necesitaban conceptos altos de matemáticas para programar, una idea tan simple te obligaba a abstraer, pensar un plan, actuar, corregir y buscar diferentes opciones.
Cuando se le presenta este juguete a un profesor de infantil, se les sugiere inventarse una historia que acompañe al robot. Por ejemplo una astronauta con su robot que se ha perdido en un planeta nu y tiene que esquivar evolos cráteres de la cuadrícula hasta llegar a la base donde conseguir lanzar un mensaje; un coche que quiere llegar a su destino de viaje y parar a comprar agua en el camino; una mariquita que intenta cruzar el jardín. El límite está en la imaginación del educador, pero al final a través de un juego, los más peques consiguen aprender la metodología básica de programación.
Existen otros juguetes que nos permiten llegar a cosas parecidas, por ejemplo hace poco probé "Scottie Go!". "Scottie Go!" es un conjunto de fichas de cartón que imitan a bloques de Scratch. La idea es construir funciones y programas y después con una app se escanean y se ponen en marcha los programas construidos desde un tablero. La app es un juego, que se desarrolla en torno a un simpático personaje, un robot llamado Scottie que hace un forzoso aterrizaje en la tierra y necesita reparar su nave. Para ello tiene que pasar por varias pruebas que requieren conocimientos de progración en Scratch. Al principio te va guiando la propia aplicación, y poco a poco va dejando más trabajo a la imaginación. El juego está muy bien, porque aunque la lógica de programación es igual que en la versión digital de scratch, el hecho de que tengan piezas de cartón tangibles, que pueden tocar, esparcir por la mesa o mover ayuda a aprender más rápido y con más facilidad. A los niños de infantil y primaria, les resulta más fácil recordar conceptos cuando pueden interactuar con las manos y además tienen objetivos en forma de juegos.
Comenté hace poco en una entrevista que una de las cosas buenas de enseñar con arduino y otros jueguetes/microcontroladores flexibles como microbit estaba en que se puede personalizar la enseñanza. Si a nuestra hija pequeña le gustan los dinosaurios, podemos encontrar un enlace creando un robot sencillo con servos que abra y cierre la boca de un dinosaurio de cartón. Si a nuestro hijo le entusiasma la magia se puede buscar como hacer una varita que con movimiento active una luz. Todo esto es gracias a que el hardware libre nos permite buscar y aprender desde cero todo tipo de proyectos que otros han hecho antes y han compartido paso a paso. A lo mejor esto requiere que aprendamos con nuestros hijos si no sabemos programar o electrónica de antes, pero afortunadamente hay muchísimo material. En este repositorio guardé todo el material de mis clases online. En este blog están los mismos proyectos del libro oficial de arduino y también algunos consejos, y aquí también. Éstos son algunos en español, si sabéis inglés hay aún más.
En definitiva, tenemos la grandísima suerte de que hay herramientas diseñadas para que se pueda enseñar y aprender robótica e informática desde edades tempranas. Es una genial oportunidad para lanzarse a aprender algo nuevo con los más peques, o en cualquier caso para darles la oportunidad de aprender sobre cómo funciona su mundo a través del juego.