↖️↖️↖️Escucha este episodio 🎧 Descarga 🎧 Suscripciones en iVoox / Apple Podcasts / Spotify / Google Podcasts 🎧
Si vamos a acabar queriendo ofrecer programación por código a nuestros alumnos lo ideal sería no pasar por bloques anteriormente para no encontrarnos con «problemas» cuando queramos cambiar de bloques a código. Si optas por esta opción tan poco popular te recomiendo el podcast Teaching Python en el dos docentes comparten esta experiencia empezando directamente con código.
Si empiezas por bloques con tus alumnos o vienen iniciados por otro docente o academia se suele encontrar resistencia por parte de los niños y adolescentes porque no entienden la utilidad del código en comparación con los bloques. Si lo mismo que les estamos enseñando en código lo pueden hacer en bloques… ¿para qué lo necesitan?
Mi recomendación es pasar a código cuando haya que plantear proyectos que no puedan solucionarse por bloques o que al menos sea claramente más fácil hacerlo por código, pero con la evolución de los entornos de programación basados en bloques es cada vez más difícil encontrar ideas para hacer cosas con código que no podamos hacer con bloques, ¿verdad?
Una solución que te propongo es que si tus alumnos han empezado la programación informática por bloques, por ejemplo con Scratch, aproveches la computación física para empezar directamente por código. Es una manera de que ellos no tengan excusa para no usar código, pero estamos aprovechando que ya conocen los fundamentos básicos de la programación una vez han utilizado bloques.
Si ya has empezado con robótica mediante bloques aún hay esperanza, porque será más fácil encontrar esos proyectos que se pueden hacer más fácilmente con código que con bloques en computación física, a pesar de que en programación informática no se nos ocurra cómo hacerlo.
Por eso antes de plantear Python es buena idea usar MicroPython con computación física o robótica.
Antes de hablar de MicroPython: ¿Qué es microcontrolador?
Resumiendo mucho, un microcontrolador es un ordenador completo integrado en un microchip:
- Es programable.
- Se le pueden conectar sensores y actuadores.
- Tiene un reloj de pulsos, una CPU, una memoria RAM y una memoria ROM.
Podemos encontrar microcontroladores en infinidad de aparatos como un teclado, un mando a distancia o un frigorífico sencillo y, de hecho, podemos encontrar decenas de microcontroladores en sistemas más complejos como un coche, porque cada microcontrolador se encarga de áreas concretas dentro de todo el sistema.
Arduino, Microbit o Raspberry Pi Pico no son microcontroladores, pero son placas que integran microcontroladores muy accesibles para nosotros que en este caso serían ATmega328P (en Arduino UNO), Nordic nRF52833 (en Microbit v2) y RP2040 (en Raspberry Pi Pico).
Las placas facilitan (física y electrónicamente) el acceso a los pines y funciones de los microcontroladores y a veces, como en el caso de Microbit, integran sensores y actuadores que ya están conectados al microcontrolador.
¿Por qué queremos utilizar microcontroladores en educación?
Aunque tenemos a nuestra disposición ordenadores con los que nuestros alumnos pueden programar de diferentes maneras, interactuar con el mundo físico es muy complicado si partimos únicamente de un equipo informático.
La programación de un microcontrolador ofrece la experiencia a nuestros alumnos de crear proyectos físicos más allá de una pantalla. A esta disciplina la denominamos computación física dentro de las ciencias de la computación, pero a veces se generaliza hablando de robótica o automática.
Este tipo de proyectos físicos tienen un mayor impacto en el aprendizaje basado en la propia experiencia que lo pueda ofrecer la programación informática y suele motivar más a los niños y adolescentes.
Evidentemente un kit de robótica integra un microcontrolador y normalmente permite ser programado por bloques, pero también por código. Utilizando placas genéricas como Microbit también podemos crear nuestros propios kits de robótica y tener muchas más opciones aunque a priori pueda parecer más complejo.
Para entender mejor qué es la computación física y cómo se interactúa con el medio veamos ejemplos de sensores:
- Sensor de luz o color
- Pulsadores
- Sensores de humedad o temperatura
- Sensores de ángulo, dirección, velocidad, aceleración
- Sensores de sonido
Y algunos ejemplos de actuadores:
- Pantallas
- Luces
- Motores
- Altavoces
- Servos
Ahora si. ¿Qué es MicroPython?
La definición técnica es que MicroPython es un lenguaje de programación creado por Danien George que es una implementación de Python, escrito en C, y que está optimizado para funcionar en un microcontrolador.
Sus características principales son:
- Capaz de manejar operaciones matemáticas sencillas a través de librerías de Python
- Maneja librerías adicionales que son específicas de MicroPython
- Fácil de ver resultados y depurar (por ser interpretado)
- Posibilidad de programar mediante navegador sin aplicaciones de escritorio
- Facilidad para manejar datos, visualizarlos o interactuar con otros sistemas
¿Qué librerías están disponibles para MicroPython?
Puedes consultar las librerías disponibles en la web de MicroPython, pero el resumen es que muchísimas librerías de Python pueden funcionar perfectamente en un microcontrolador y por lo tanto están disponibles para MicroPython, pero no son todas, así que cuidado.
Ojo si vienes de Python
Igual que las librerías están limitadas tienes que tener en cuenta que MicroPython no es exactamente igual que Python, pero sobre todo hay que tener cuidado con el uso de memoria y conocer cómo se utiliza para poder optimizar programas grandes o que requieran manejar muchos datos o una alta velocidad de respuesta.
Realmente esto no te afecta si vas a iniciar a tus estudiantes en MicroPython, pero siempre es bueno advertirlo.
Advertencia general
Esto puede sonar desconcertante, pero MicroPython no es igual para todos los microcontroladores. Por decirlo de alguna manera se trata de un lenguaje que tiene «dialectos».
Piensa que cada placa y microcontrolador es diferente en la manera de acceder a sus pines o por su capacidad de memoria o velocidad, por eso también existen librerías específicas.
Incluso para un mismo dispositivo no es exactamente igual y el «dialecto» de MicroPython que se usa en el entorno oficial de Microbit es ligeramente diferente del que se usa en MakeCode para la misma placa.
Diferencias con Arduino
Muchos docentes parten de Arduino y por eso creo que es importante señalar que aunque el lenguaje Arduino (compilado) va a ser más rápido de ejecutar que MicroPython (interpretado), esa es la única ventaja que ofrece y obviamente no es algo importante en educación.
MicroPython en comparación con Arduino es mucho más fácil de aprender, tiene unas posibilidades matemáticas muy superiores, permite manejar datos de manera más fácil, tiene un sistema de archivos y subida a placa más intuitiva.
Es cierto que Arduino tiene muchísimas librerías de sensores creadas a lo largo de todo este tiempo, pero hay que tener en cuenta la tendencia y ya se puede decir que el número de librerías específicas en MicroPython es similar y creciendo cada día.
Póntelo fácil, utiliza Microbit
Puedes utilizar MicroPython con Arduino, ESP8266, Raspberry Pi Pico, etcétera, pero mi consejo es que empieces con Microbit, es lo más fácil y lo vas a agradecer.
Para empezar ya contamos con sensores y actuadores en la placa, pero además vas a contar con librerías específicas y todo el soporte de la fundación Microbit en cuanto a documentación y ejemplos. Es tan fácil ponerse en marcha con el renovado entorno de programación online oficial de Microbit que ni siquiera hace falta irse a opciones como Mu o Thonny.
Es por eso que aunque ya tenemos cursos con Python y MicroPython en la plataforma de cursos de Juegos Robótica me voy a centrar más concretamente en esta combinación MicroPython + IDE oficial Microbit para los próximos cursos y retos de programación que empezamos este domingo lanzando el reto de crear el juego machaca al topo en la placa Microbit con MicroPython.
Dani S.