Comparativa: Arduino v.s. MicroPython para el ESP32

MicroPython es uno de los lenguajes para sistemas embebidos que ha empezado a ganar popularidad desde hace unos años gracias a su versatilidad y gran potencia. En lo particular, es muy útil para programar tarjetas de desarrollo basadas en ESP32, ya que permite obtener toda la capacidad de la tarjeta.

Logo de MicroPython. Via: «Neon22» en GitHub

Debido a que el desarrollo de programas para ESP32 se hace comúnmente en la IDE de Arduino, consideramos que sería de gran relevancia comparar las ventajas que tiene empezar a adoptar la programación en MicroPython comparada con el lenguaje C++. Revisemos pues dichas ventajas:

MicroPythonArduino
Se instala una sola vez, y para acceder al código de y hacer modificaciones sólo se accesa a un sistema de archivos
El proceso de compilado y enlace del programa se hace cada que se cambia el código, así como el proceso de flasheado
Se pueden agregar tantas librerías o scripts como uno desee. El número sólo está limitado por la memoria flash del dispositivoLa compilación del programa puede demorar más entre más librerías se incluyan
La ejecución del archivo principal main.py va después del archivo boot.pyEl archivo de programa se compila a lenguaje máquina, lo que lo hace más eficiente, pero menos portable
Principales diferencias entre los dos lenguajes

Eficiencia y velocidad

  • Los programas hechos en MicroPython se ejecutan desde bytecode compilado, que es un código de abstracción intermedia del lenguaje máquina.
  • De ser necesario, para mejorar el rendimiento de un programa se puede agregar módulos de código en C o ensamblador.
  • Se puede utilizar un Modo de Interprete Interactivo (Interpreter Interactive Mode) para probar el código escrito y verificar que funcione como deseamos; también conocido como REPL (read-eval-print-loop).

Uso en la industria

MicroPython es empleado por empresas como Aqua Power technologies, encargada de desarrollar soluciones para generar energía eléctrica con las olas; Travis TravelStead Consulting, empresa de consultoría especializada en diseño mecánico, eléctrico y diseño de software; y Traffic Data Systems, encargados de monitoreo de desarrollar sistemas de monitoreo de tráfico de alta gama.

Conclusiones

Adoptar el uso de MicroPython puede vislumbrarse como el desarrollo de programas más portátiles y la homologación de los códigos, permitiendo a los desarrolladores aportar a la comunidad una cantidad más sustancial de código para nuevas librerías y módulos. Su uso en tarjetas basadas en ESP32 presenta una ventaja sustancial respecto a los programas desarrollados en la IDE de Arduino.

Referencias:

https://docs.micropython.org/en/latest/index.html

MicroPython #1 – Lets Get Started

MicroPython Used in Industrial Applications