Impariamo ad accendere e spegnere un LED in MicroPython

Uno dei primi esercizi che si apprendono con la programmazione dei microcontrollori è gestire l’accensione e lo spegnimento di un LED. In questo articolo vedremo come gestire un LED connesso alla nostra dev-board, programmandolo tramite il linguaggio MicroPython. Non collegheremo fisicamente nessun LED, ma adopereremo quello integrato nella Lolin32 Lite.

IDE

Abbiamo visto nel precedente ARTICOLO come installare l’apposito firmware su ESP32, mentre oggi andremo a vedere quale IDE adoperare. Non esiste una singola IDE che consigliamo, ma per iniziare suggeriamo di adoperare la IDE Thonny [LINK]. Essa è una IDE multipiattaforma open source, facile da utilizzare e molto consigliata per i beginner.

thonny

Una volta eseguita l’installazione, collegate la dev-board al PC e avviate la IDE di Thonny e muovetevi sulla barra dei menu Esegui->Seleziona l’interprete e selezionate la voce MicroPython (ESP32) e la porta a cui è collegata (Port or WebREPL) come da immagine.

LED

Se sulla vostra dev-board è già stato caricato un programma, stoppatene l’esecuzione premendo il pulsante STOP nella barra degli strumenti di Thonny. Nel caso in cui volessimo avviarlo, premete sul pulsante verde Esegui lo script corrente o premete F5 da tastiera.

LED

Codice

Iniziamo a scrivere il nostro primo programma in MicroPython includendo due librerie; la prima è la machine, la seconda è la time, da cui importiamo il modulo Pin (per gestire i pin della scheda) e il modulo sleep (per i timer bloccanti).


from machine import Pin
from time import sleep

Passiamo ora a creare un oggetto, che chiamiamo led, per indicare a quale pin è collegato e definire la sua direzione. Essendo un pin a cui è connesso un led, la sua direzione sarà di Output. Usiamo il pin 22 poiché ad esso è connesso il led integrato della Lolin32 Lite.


led = Pin(22, Pin.OUT)

Poiché nel MicroPython non esiste una funzione di loop come nella programmazione in C, per creare un ciclo infinito usiamo il While True, ossia il ciclo si ripete finché è posto in true.


while True:

Passiamo ora alla funzione per accendere e spegnere il led ed al timer bloccante. Per accendere il LED basterà usare led.on(), mentre per spegnerlo led.off(). Impostiamo una pausa di 2 secondi tra l’esecuzione delle due righe.


led.on()
sleep(2)
led.off()
sleep(2)

Una volta scritto il codice, che potete scaricare a questo LINK, andiamo sulla barra dei menu di Thonny e clicchiamo su File->Salva con nome… 

LED

La IDE ci chiede se salvarlo sul computer o sulla dev-board; scegliamo quest’ultima opzione e salviamo il programma nella scheda. Lo abbiamo chiamato blink per semplicità.

Se tutto è stato eseguito alla lettera, vedrete il LED integrato accendersi e spegnersi ogni 2 secondi.

Esiste un altro modo per far accendere e spegnere un LED in MicroPython, quasi identico al primo. Invece di adoperare il comando on() o off() basterà inviare valore di 0 o 1 al pin 22. Il valore 0 corrisponde al valore 0V, quindi segnale assente, pertanto il LED resterà spento. Il valore 1 invece corrisponde al 3,3V, quindi permettiamo al led di essere raggiunto da una tensione elettrica che lo accenderà. Per il resto il codice, che potete scaricare da questo LINK, rimane il medesimo del precedente.


from machine import Pin
from time import sleep

led = Pin(22,Pin.OUT)

while True:
led.value(0)
sleep(2)
led.value(1)
sleep(2)