MicroPython

Construye tu Estación Meteorológica

El lenguaje de programación MicroPython

Para la programación de nuestras estaciones meteorológica vamos a utilizar el lenguaje de programación MicroPython.

Como podrán suponer, MicroPython es una versión del lenguaje Python, desarrollada por Damien George en 2013, para ser utilizada en la programación de los microcontroladores con el lenguaje Python.

Python es un lenguaje de programación, desarollado por Guido Van Rossum a finales de los años 80. Su nombre viene de la serie de televisión del grupo Monty Python.

Python es ya uno de los lenguajes mas utilizados para los mas diversos propósitos y aplicaciones, por lo que no es de extrañar que esta versión para programar los microcontroladores se este ya convirtiendo también en uno de los lenguajes mas utilizados para éste propósito.

Python es un lenguaje de programación muy poderoso, de alto nivel, interpretado, interactivo, orientado a objetos, con una sintaxis muy limpia y simple, pensado para el desarrollo rápido de prototipos.
Muchas veces a las aplicaciones escritas en Python, se les llama scripts mas que programas.

Con todas estas características es al mismo tiempo un lenguaje muy fácil de leer y de usar y por lo mismo, es un lenguaje muy utilizado en la enseñanza de la programación, por las facilidades que ofrece para su rápido aprendizaje. Es un lenguaje ideal para principiantes.

Existen actualmente 2 versiones del mismo. Las versiones 2.x y las 3.x. La versión 2.x ya ha sido finalmente descontinuada y la versión de MicroPython está basada en las versiones 3.x.

Esta versión 3.x está mucho mas enfocada a la programación orientada a objetos, sin embargo, Python es un lenguaje multiparadigma y puede ser usado también como un lenguaje de programación procedural, funcional o estructurada.

Se dice que Python es un lenguaje con las baterías incluidas, ya que viene con una extensa biblioteca estándar, para una gran cantidad de aplicaciones de todo tipo.

Existen ademas muchas otras bibliotecas para el desarrollo de aplicaciones muy especificas, desarrolladas por muy distintos grupos, lo que lo ha convertido en un lenguaje muy utilizado para los mas diversos propósitos.

Permite también la programación y el uso de módulos, donde pueden definirse clases, funciones, constantes, etc. y que no son mas que un archivo .py normal en Python, que puede importarse y utilizarse en otros programas.

Utiliza muy distintos tipos de variables, con un tipado dinámico, con el cual no es necesario declararlas previamente antes de usarlas, estas se definen conforme se van utilizando. Variables de tipo números, cadenas, booleanas, listas, conjuntos, tuplas, diccionarios, son las que podremos usar en nuestros programas.

Es un lenguaje muy portable del que hay distintas versiones, la versión CPython es la mas común y la de referencia, y ésta corre en Windows, MacOs, Linux, Android y otros sistemas operativos.

La implementación de MicroPython esta basada la versión de CPython, incorporando gran parte de la biblioteca estándar y al mismo tiempo cuenta con las bibliotecas necesarias para el uso y control de los microcontroladores y el hardware que los acompañan.

Por las características y diferencias de cada uno de estos microcontroladores, existen versiones diferentes de MicroPython para cada uno de ellos. Hay que tener esto muy presente, ya que la forma de instalarlo en cada una de las tarjetas o microcontroladores puede ser diferente.

En el caso concreto de la programación de los microcontroladores con Python-Micropython hay que resaltar lo importantes que son la posibilidades que ofrece la programación interactiva de los microcontroladores con este lenguaje.

Hay que tener presente que en este caso, el interprete está corriendo en el microcontrolador y es este interprete “local” el que ira ejecutando cada linea de nuestro código.

Lo que hacemos normalmente con un lenguaje como el del Arduino, es que escribimos nuestro programa en su IDE, lo compilamos ahí, con lo que se crea en la computadora un ejecutable con el el código de máquina del microcontrolador y desde la computadora lo cargamos a la tarjeta del microcontrolador para que ya corra ahi.

Con el interprete de MicroPython, corriendo en el microcontrolador, el proceso es muy distinto. En este caso, cada linea de código se va interpretando y ejecutando en el microcontrolador. La computadora desde la que estaremos trabajando con el microcontrolador, solo nos sirve como una terminal, para comunicarnos con el interprete de Micropython ejecutándose en el microcontrolador.

Esto es muy importante y muy práctico, ya que nos permite ejecutar línea por línea de código, de manera interactiva y hacer todo tipo de pruebas con una o unas cuantas líneas de código. Algo así es imposible o muy difícil de hacer con un lenguaje en el que tenemos que cargar en el microcontrolador el código completo, como un ejecutable ya compilado.

Esto es posible hacerlo desde el prompt interactivo de MicroPython, al que se le conoce como el REPL.
R – Read, lee el comando introducido
E – Eval, lo evalua y de ser posible, lo ejecuta
P – Print, imprime la salida del comando, si la hay
L – Loop, vuelve al inicio del ciclo o loop

Este prompt nos aparecera en la pantalla, dependiendo de como estemos interactuando con el interprete de MicroPython que corre en nuestro microcontrolador.

Ademas de la programación interactiva, tenemos también la posibilidad de programarlo con scripts, que pueden tener diferentes tamaños en lineas de código.

Estos scripts los cargaremos en la memoria de los microcontroladores y podrán ser ejecutados. En particular hay dos scripts con nombres “estandar” para hacer esto.

Uno es el boot.py que se leerá y ejecutará al arrancar el microcontrolador.

Y el otro es el script main.py que de existir, se ejecutará automáticamente y es en éste en el que pondremos el código de nuestra aplicación. Con este script en el sistema de archivos del microcontrolador ya no será necesario que este esté conectado a una computadora para arrancar la aplicación.

Como haremos todo esto dependerá de como nos conectaremos con la tarjeta del microcontrolador y que aplicación utilizaremos para comunicarnos. Lo podremos hacer desde una “terminal” de nuestro sistema operativo o desde un IDE para programación en Python-MicroPython.

En este curso-taller trabajaremos fundamentalmente con un IDE para programar con MicroPython, el IDE Thonny.

Python es un software libre y gratuito, lo que ha permitido crear una gran comunidad de usuarios y de ella se ha creado una muy buena y amplia documentación en muy diversos formatos. Una revisada a la breve bibliografía que incluimos en estas páginas es una buena fuente de partida.

Deslizar arriba