Noticias

Qué es MicroPython, el lenguaje de programación que ya puedes usar en tu Arduino (y probar desde tu navegador)

Qué es MicroPython, el lenguaje de programación que ya puedes usar en tu Arduino (y probar desde tu navegador)

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?

Uno Connect

Representación de una placa Arduino UNO.

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”.


(function() {
window._JS_MODULES = window._JS_MODULES || {};
var headElement = document.getElementsByTagName(‘head’)[0];
if (_JS_MODULES.instagram) {
var instagramScript = document.createElement(‘script’);
instagramScript.src = ‘https://platform.instagram.com/en_US/embeds.js’;
instagramScript.async = true;
instagramScript.defer = true;
headElement.appendChild(instagramScript);
}
})();

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button