• Descarga | Suscripciones en iVoox / Apple Podcasts / Spotify / Google Podcasts •
Juegos Robótica episodio 9. Programar robots por bloques tipo Scratch.
Bienvenidos a Juegos Robótica, el podcast en el que hablamos de robótica educativa, iniciación a la programación, aplicaciones para docentes, entornos de programación para niños y en general todo lo que tiene que ver con despertar la curiosidad de los más jóvenes por la programación y la tecnología para que se conviertan en creadores y no en meros consumidores.
Como ya sabes este podcast es un reflejo sonoro de los contenidos y cursos que puedes encontrar en juegosrobotica.es
Y recuerda que si quieres aprender a programar a través de la robótica o quieres formarte para enseñar a programar puedes darle un vistazo plataforma de cursos en juegosrobotica.es/cursos y acceder a la formación online más completa con robótica educativa por 10 euros al mes, aprendiendo desde la base y a tu ritmo.
En uno de los primeros episodios del podcast dimos un repaso a Scratch, el lenguaje de programación mediante bloques que hace accesible la programación a cualquier principiante y que es prácticamente un estándar en educación sobre todo en primaria.
Dale un repaso al episodio 3 si quieres recordar qué es Scratch y sobretodo cuál es la filosofía inicial de trabajo planteada por Mitchel Resnick para ser utilizado de manera creativa, buscando una nueva manera de poder expresarse para el niño por encima de la cualidad de enseñar a programar.
Esta semana he tenido la consulta de una alumna de la plataforma de juegos robótica que va a introducir la robótica con sus alumnos en el aula a través de unos kits de vehículos móviles que utilizan una placa de Arduino para el control.
Su consulta me ha dado pie al tema de hoy en el que vamos a ver alternativas para programar robots usando entornos de programación que utilizan programación por bloques.
Me pedía consejo sobre cuál sería la herramienta ideal para utilizar con sus alumnos a la hora de programar los kits que su colegio ha adquirido para los que realmente hay que programar una placa de Arduino y me comentaba que le habían aconsejado utilizar Scratch.
Pues si estáis en esta misma situación o buscáis alternativas de entornos de programación basados en bloques el episodio de hoy os puede aclarar algunas cosas. Como mínimo váis a tener varias alternativas que luego podéis probar por vuestra cuenta para acabar de decidir, pero también os comentaré mi experiencia personal y mi opinión por si os puede ser de ayuda.
Lo primero que tenemos que tener claro es que Scratch por sí sólo no nos va a servir para programar robots en general, aunque sí que podemos incluir extensiones que lo hagan más útil en este sentido. Por ejemplo sí que hay una extensión para poder programar el kit LEGO WeDo, pero lo tomaremos como excepción, ya que en general no podremos programar robots directamente con Scratch, al menos por el momento.
Lo que está claro es que todos los entornos que vamos a ver utilizan bloques para programar en vez de código, por lo que muchos están basados en Scratch o podemos denominarlos “tipo Scratch” para referirnos a que utilizan bloques para programar.
Es muy habitual que hoy en día el primer contacto con la programación se haga con Scratch por su facilidad. De hecho una de las razones de ser tan utilizado es que profesores sin un perfil técnico o de programación aprenden a programar rápidamente con este lenguaje por lo que pueden pasar a utilizarlo en sus clases, algo que sería prácticamente imposible con lenguajes que utilizan código y que requieren algo más de dedicación para dominar mínimamente sacando resultados.
Algunos profesores que son programadores por formación pueden ver una forma de intrusismo por el hecho de que profesores sin ese perfil técnico aprendan y enseñen a programar.
Sin embargo, desde mi punto de vista, es genial que profesores primaria, cuya formación y experiencia tiene que ver con saber enseñar y trabajar con niños en una de las edades más importantes para su educación, y esa es realmente su mayor virtud, se interesen por utilizar Scratch con sus alumnos como otra forma de expresión que libera la creatividad de los niños.
Es normal y muy bueno que en esa línea se quiera dar el salto a la computación física programando mandos de juego que interactúen con las aplicaciones o presentaciones que se han hecho con Scratch utilizando herramientas como pueda ser Makey-Makey pero también creando nuestros propios circuitos y finalmente pasando a programar automatismos y robots.
En un futuro episodio me centraré más en cómo interactuar con los juegos que creamos con Scratch a través de elementos externos al ordenador porque me parece muy interesante y sin embargo no se aprovecha tanto, y además creo que sería el paso lógico después de utilizar únicamente Scratch para programar juegos y presentaciones, pero hoy voy a plantear directamente las alternativas para programar robots.
Scratch por sí sólo no está preparado para interactuar con placas como pueda ser Arduino ni por conectividad ni por tipo de lenguaje, pero recordad que Scratch es abierto y por lo tanto otros desarrolladores lo pueden modificar y adaptar.
Gracias a una adaptación de Scratch nace una primera alternativa llamada ScratchX. Scratch, el original, tiene disponibles extensiones oficiales mediante las cuales se pueden ampliar sus funciones, como pueda ser la de LEGO WeDo, pero sigue estando bastante limitado.
ScratchX nació como una herramienta que permitiera a los desarrolladores crear extensiones para Scratch y poderlas probar en un entorno 100% compatible. Al final lo que ha ocurrido es que todas las extensiones que los desarrolladores prueban y perfeccionan en ScratchX no acaban incorporándose al Scratch original, pero como se pueden utilizar con ScratchX realmente todo el conjunto es completamente funcional. Tan sólo tenemos que utilizar ScratchX en vez de Scratch, pero la interfaz es idéntica al Scratch original.
Utilizando ScratchX tenemos extensiones que nos van a permitir programar placas como Arduino o micro:bit, y también kits de robótica bien conocidos como LEGO Mindstorms EV3, fischertechnik o littleBits.
Otro entorno que es evolución del propio Scratch es Scratch for Arduino, más fácil de encontrar por sus siglas S4A.
Se trata de una evolución de Scratch 1, por lo que puede parecer algo desactualizada, pero es plenamente funcional para programar Arduino.
Precisamente por ser de las primeras propuestas que hubo para programar Arduino por bloques podemos encontrar documentación generada por profesores desde hace tiempo, y sigue siendo la primera elección en muchos centros.
Personalmente me gusta más mBlock, que es también una evolución de Scratch pero en este caso de su versión 2.0 por lo que los alumnos encuentran exactamente la misma apariencia de la interfaz que utilizaron cuando programaban con Scratch, podría decirse que no se dan cuenta que están utilizando otra interfaz.
De hecho se puede empezar directamente con mBlock para realizar las actividades que haríamos con Scratch, ya que lógicamente podemos realizar todo lo que puede hacer Scratch a parte de programar robots.
mBlock es multiplataforma, lo cual quiere decir que lo podemos utilizar con Windows, Apple o Linux, y se puede trabajar online (a través de navegador web) o bien offline.
mBlock acepta todo tipo de extensiones, pero ya vienen instaladas todas las de placas Arduino y las de robots de Makeblock, puesto que está desarrollado por esta marca, por lo que debe ser nuestra elección si vamos a trabajar con robots Makeblock además de Arduino.
Otra opción si tenemos robots Makeblock sería usar la plataforma Bitbloq de Bq, aunque para usar concretamente robots Makeblock no es completamente gratuita.
Bitbloq, al igual que otras opciones, está basado en Blockly en vez de en Scratch que es un entorno que Google pone a disposición de desarrolladores para crear sus propios entornos de programación basados en bloques.
Para entendernos Blockly sería algo muy parecido a Scratch pero utiliza un código fuente completamente propio y diferente de Scratch.
Pues como te decía Bitbloq es el entorno de programación de BQ basado en Blockly y de la misma manera que mBlock era la opción ideal si vamos a utilizar robots de Makeblock, Bitbloq es la opción ideal para utilizar robots de BQ.
En este tema quiero aclarar que podemos programar robots BQ con mBlock o robots de Makeblock con Bitbloq, pero entenderás que parece más lógico utilizar sus propios entornos de programación si sólo vamos a programar sus propios robots y quizá alguna otra placa como Arduino.
Bitbloq adopta un aspecto más parecido a Blockly que a Scratch por lo que tiene esa pequeña desventaja de que algunos alumnos se despistan con el cambio de aspecto en el paso desde Scratch, pero tampoco es algo grave y en unas semanas se acostumbran perfectamente.
Visualino es otra opción que tenemos y que es más específica para Arduino que también tiene como base Blockly y bloques de robótica generados por Roboblocks.
El resumen, independientemente de en qué plataformas se base, lo importante es que nos sirve para programar Arduino por bloques y también hay mucha información publicada en torno a Visualino.
Ardublock es otro viejo conocido basado en blockly que sirve para programar Arduino por bloques y que se utiliza desde hace años, si bien no parece haber evolucionado y aunque se puede encontrar información de apoyo, no sería una de mis primeras elecciones hoy en día. Creo que entornos más actuales serían más recomendables.
Aprovechando las facilidades para desarrolladores que ofrece Blockly están surgiendo muchas propuestas de entornos de programación que no siempre llegan a conocerse.
Personalmente no había prestado demasiada atención a la plataforma ArduinoBlocks pero repasando todas las opciones me doy cuenta de que hay que tenerla muy en cuenta.
ArduinoBlocks nace de la mano de Juanjo López, profesor de informática y electrónica que buscaba poder ofrecer a sus alumnos la opción de programar por bloques Arduino pero personalizando el entorno basándose en su experiencia. El resultado de su trabajo es una plataforma abierta que los alumnos y cualquier persona puede utilizar online de manera que sus proyectos quedan guardados en la nube.
Además permite acceso personalizado a los profesores que pueden proponer ejercicios en forma de programas a sus alumnos y luego revisar cómo los han realizado.
Es una propuesta muy interesante, nacida desde la propia inquietud del profesor conociendo las necesidades de sus alumnos, y está al nivel que puedan tener plataformas como Bitbloq para profesorado pero levantado por el esfuerzo y dedicación de una única persona. Gran trabajo Juanjo!
De la misma manera que Blockly es la propuesta tipo Scratch de Google, Snap! es la propuesta de programación por bloques de la universidad de Berkeley, que es básicamente igual que Scratch pero algo más potente.
Aunque no es muy habitual podría darse el caso de que los chavales empiecen a programar aplicaciones con bloques a través de Snap! en vez de Scratch.
Entonces si queremos pasar a programar robots lo lógico sería utilizar Snap4Arduino que es el mismo entorno de Snap! con bloques añadidos para computación física.
El equipo que ha desarrollado Snap4Arduino es en parte el mismo que desarrolló Scratch for Arduino, y según ellos mismos aporta muchas ventajas, por lo que si estabas pensando en utilizar Scratch for Arduino quizá debas plantearte Snap4Arduino como mejor opción.
Como ves de nuevo nos encontramos con demasiadas opciones por lo que decidirse por una es difícil.
Tener varias opciones siempre debe ser una ventaja, aunque a veces hace que nos despistemos, y aún saldrán más opciones en un futuro, así que quizá la mejor opción sea no atarse a ninguno y probar varios para ver con cuál estamos más a gusto.
Personalmente el entorno que más me gusta es mBlock, pero sobretodo porque lo que más utilizo es Arduino o robots basados en Arduino como son los de Makeblock.
Es idéntico a Scratch 2.0 por lo que los chavales ni siquiera notan el cambio de interfaz, simplemente ven que hay más bloques añadidos que sirven para programar los robots.
Pero la mejor característica, que también tienen otros sistemas como Scratch for Arduino por ejemplo, es que mBlock, además de permitir la programación de robots, permite si lo deseamos interactuar con el ordenador.
Es decir, podemos reutilizar un juego desarrollado en Scratch por los alumnos anteriormente y crear un mando de control con una placa de Arduino y unos botones por ejemplo. O desarrollar aplicaciones en el ordenador pero que tengan en cuenta la lectura de un sensor de luz conectado exteriormente. O de manera análoga accionar unos pulsadores en nuestra aplicación y mover un robot externo.
Para que lo entiendas muy fácilmente imagina que tus alumnos han creado en Scratch un juego de marcianitos por ejemplo. Pues con mBlock podrías manejar ese juego a través de un mando de juegos que ellos mismos hagan, incluso con sensores de movimiento por ejemplo, y que los puntos en vez de verse en pantalla se vean en display también externo… o que se enciendan unos cubos de colores según pasas pantallas o cualquier cosa que pase por su imaginación.
Y luego mBlock por supuesto también permite programar un robot para que funcione completamente autónomo del ordenador, pero esa posibilidad de interactuar le da mucho juego.
Ya te digo que esta cualidad no es única de mBlock y te recomiendo que el entorno que elijas sea uno de los que sí que lo permiten.
Otra característica a tener en cuenta a la hora de elegir es saber la cantidad de recursos que hay disponible de uno u otro entorno de programación por bloques, y cuántos de esos recursos serán interesantes para complir tu objetivo.
En Juegos Robótica lo que yo he ido compartiendo ha sido utilizando mBlock aunque también encontraréis artículos sobre Bitbloq y sobre otros entornos.
Para terminar recordarte que tienes disponible la plataforma de cursos de juegos robótica si entre otras cosas quieres formarte utilizando este tipo de programación por bloques para programar robots además de ver otros caminos que se pueden tomar en educación más allá de Scratch. De hecho ese fue el argumento principal para crear el curso sobre la La ruta curricular idónea en tecnología, programación y robótica.
Nos escuchamos en un próximo episodio analizando otros entornos de programación, otros kits de robótica educativa o cualquier otra herramienta que nos ayude en el aprendizaje de la programación y la robótica.
Hasta entonces que tengas una feliz semana, nos vemos en siete días… adiós!
David says
Lo primero es daros mi enhorabuena por vuestro trabajo.
Yo uso mBlock para programar mis mBot en clase. Para mí es una evolución natural en el estudio de la programación con mis alumnos: ScratchJR, Scratch y finalmente mBlock.
Además, gracias a las extensiones ofrece la posibilidad de programar otros robots basados en Arduino.
Un saludo
Dani says
Gracias por tus palabras David.
Muy de acuerdo con tu comentario, ya sabes que para mí mBlock es la evolución natural después de Scratch para computación fisica o robótica y por eso es la que utilizo en la mayor parte de los retos y tutoriales.
Saludos,
Dani
Nancy carmen mendez says
ayuda como puedo generar ejemplos sencillos en scratch para la implementación de robótica con el kit solar robot
Dani says
No conozco este kit concreto, pero normalmente los fabricantes acompañan los kits con algunos ejemplos básicos. Puede que la programación se haga con Scratch o puede que ofrezcan un entorno de programación personalizado, pero es muy probable que la manera de programar por bloques sea muy similar a Scratch.