El lenguaje MicroPython es una implementación del lenguaje de programación Python orientada a dispositivos con muy bajos recursos. Y con ello no nos referimos a ese Pentium IV que tienes guardado en el garaje, sino a dispositivos más modernos, pero que no cumplen los requisitos para ser considerados placas base…
… hablamos, por ejemplo, que los Arduino, los ESP8266, los ESP32 o los BBC Micro:bit, muy usados para proyectos IoT, o bien para iniciarse en la programación de robótica.
Python menos algunas cosas, más algunas otras
MicroPython implementa toda la sintaxis de Python 3.4 (incluidas las excepciones y elementos como los ‘with’ y ‘yield from’) junto a elementos de Python 3.5 como ‘async’ y ‘await’, pero ofrece sólo una oferta limitada en cuanto a los tipos de datos y los módulos incluidos en la versión estándar de Python 3.
Tiene su lógica: hay muchas funcionalidades de Python que jamás resultarán útiles en microcontroladores. Para compensar, MicroPython implementa módulos específicos para las funcionalidades de estos dispositivos y de los periféricos que suelen usarse con los mismos (una amplia gama de sensores, por ejemplo).
MicroPython puede, además, ejecutar scripts desde el código fuente (archivos .py) o desde código de bytes precompilado (archivos .mpy). Si te despierta la curiosidad, puedes probar a codificar y ejecutar código MicroPython desde este IDE online con simulador de microcontrolador incluido.
¿Arduino 💔 MicroPython?
Pero el soporte de MicroPython en Arduino (el tipo más popular de microcontrolador del mercado) ha sido, durante los últimos años, inexistente: sólo podía usarse (y con éxito parcial) gracias a proyectos extraoficiales. Mientras, los creadores de Arduino sólo proporcionaban un IDE con soporte para un subconjunto de la biblioteca estándar C/C++.
Ciertamente, resultaba inexplicable que uno de los mejores lenguajes de programación para microcontroladores (flexible, rápido y versátil) y uno de los mejores microcontroladores (dotado de un IDE amigable y un amplio y barato ecosistema de hardware) no pudieran trabajar juntos en condiciones óptimas.
Buenas noticias, programadores
Por fortuna, los desarrolladores de uno y otro se han dado cuenta del error. Según relatan desde Arduino,
«Recientemente, hemos estado experimentando con el lenguaje Python [teniendo en cuenta que se] ha convertido en el lenguaje número uno para muchos usuarios».
«Pudimos probar MicroPython en una clase de estudiantes y hemos aprendido mucho de esa experiencia: descubrimos que es difícil encontrar un IDE de MicroPython multiplataforma y sencillo que sea tan fácil de usar como el IDE original de Arduino».
De modo que decidieron unir esfuerzos con Damien George (creador de MicroPython) para portar la máquina virtual a Arduino, y, este fin de semana han anunciado la solución a ese problema…
… el lanzamiento de Arduino Lab for MicroPython (un IDE separado, en lugar de una extensión para el IDE tradicional) que ya está disponible para instalar en Linux, Mac y Windows, para permitirnos programar en nuestro escritorio, cargar las aplicaciones desde el mismo en Arduino y probarlas ahí:
«Arduino Lab for MicroPython es un editor ligero para aplicaciones MicroPython, que admite la conexión con una placa, carga de código, transferencia de archivos y shell REPL interactivo».
Desde Arduino califican aún de ‘experimental’ a la nueva herramienta, «pero queríamos que la gente jugara con ella, así que creamos un nuevo sitio en la web de Arduino Labs».