Ahora que tenemos todo configurado, y el firmware de MicroPython instalado, toca hacer nuestro primer programa de MicroPython. Un sencillo “Blink” que hará parpadear un LED.
En programación, es tradición que el primer programa que ejecutamos en un lenguaje sea un “Hola Mundo”. Nos permite familiarizarnos con el entorno de desarrollo y el lenguaje.
El equivalente en dispositivos embedidos es un “Blink”. Es decir, simplemente vamos a encender y apagar un LED cada un segundo.
Quizás no sea el mejor programa del mundo (no, no lo es). Pero es suficiente para verificar que
- El dispositivo es compatible y está correctamente conectada al ordenador
- El firmware de MicroPython está instalado y funcionando
- El entorno de desarrollo está correctamente configurado (como Arduino Lab for MicroPython o Thonny)
En defintiivamente, que podemos enviar y ejecutar código en la placa, y todo va a salir bien.
Si te falta alguna de estas cosas, comprueba los tutoriales anteriores.
Conectar la placa al ordenador
Vamos al lio. Lo primero es conectar la placa al PC mediante un cable USB (esa es fácil).
Ahora abrimos el entorno de desarrollo que hayas elegido, y hacemos que se conecte con nuestro dispositivo. Para ello,
Pulsamos en el icono de “conectar”
Abajo a la derecha tenéis un desplegable para elegir placa
En cualquiera de los dos casos, deberíais ver que se conecta correctamente.
Escribir el programa “Hola, Mundo”
Ahora vamos a crear nuestro script. En MicroPython, el programa “Hola, Mundo” es extremadamente simple.
Únicamente tenemos que crear un nuevo fichero en el IDE. Luego copias y pegas este gragmento de código.
from machine import Pin
led = Pin("LED", Pin.OUT) # Configura el LED como salida
while True:
led.on() # Encender el LED
time.sleep(1) # Esperar 1 segundo
led.off() # Apagar el LED
time.sleep(1) # Esperar 1 segundo
- La clase
Pin
es fundamental para interactuar con los pines GPIO en MicroPython. Permite configurar los pines como entradas o salidas, y leer o escribir valores en ellos. En nuestro caso, configuramos el pin como salida para controlar el LED. - La función
time.sleep
introduce un retardo en la ejecución del programa. En nuestro ejemplo, utilizamos un retardo de 1 segundo para que el LED permanezca encendido o apagado durante ese tiempo antes de cambiar de estado.
Veremos cada parte en profundidad en los proximos tutoriales. No os preocupeis, de momento esto es solo un “hola mundo”.
Ejecutar el código
Para ejecutar el código, simplemente le damos al botón Play en el IDE. Deberías ver el LED encenderse y apagarse cada segundo.
¿Que está pasando bajo el capó? Cuando ejecutamos el programa,
- El IDE manda el código a la placa a través del USB
- El interprete de MicroPython recibe el programa y lo ejecuta.
Lo que estás viendo es el REPL (Read-Eval-Print Loop) en funcionamiento. Una herramienta interactiva que nos permite ejecutar código en tiempo real en la placa (que veremos en la próxima entrada).
Pero si quitas el dispositivo, y lo vuelves a conectar, verás que el LED no parpadea. Es decir, no hemos guardado el programa el dispositivo. Es el IDE el que se lo manda.
Así que al desconectar el dispositivo, “pierde” el programa. Veremos como subir el script al dispositivo para que arrenque de forma autónoma.
Veremos ambas cosas (REPL y cómo transferir el fichero al dispositivo), en los dos siguientes tutoriales