Partiamo con la programmazione in MicroPython, installando il firmware su ESP32

MicroPython è un linguaggio di programmazione basato su Python, ma adattato ai microcontrollori. MicroPython punta ad essere un linguaggio ricco di funzionalità, rimanendo compatto ed adatto a dev-board dotate anche di poca memoria flash e pochissima DRAM. Per poter programmare in MicroPython sarà necessario installare sulla nostra dev-board un firmware apposito, in grado di farci programmare correttamente la scheda.

Fase Preliminare

Prima di installare il firmare sulla nostra scheda, dobbiamo predisporre il PC. Andiamo sul sito di Python (https://www.python.org), clicchiamo su Download e scarichiamo la versione più recente di Python. Nel nostro caso sarà la versione 3.10.4. Rammentate che tale versione è compatibile per i sistemi operativi più recenti.

firmware

Avviate il setup e, prima di procedere all’installazione, selezionate la voce Add Python 3.10 to PATH.

firmware

Firmware

Per poter scaricare il nostro firmware dobbiamo collegarci al sito www.micropython.org, entrare nella pagina Download e cercare la nostra dev-board o il chip montato su di essa. Nel nostro caso, adopereremo una Lolin32 Lite con chip ESP32. Essendo una generica versione di ESP32, andiamo a ricercare semplicemente in MCU il nostro chip.

firmware

Appariranno i risultati della ricerca con filtro. Clicchiamo sulla prima che appare: ESP32 Espressif.

firmware

Nella pagina che si aprirà, andiamo a scaricare il nostro firmware. Tra quelli presenti potete scegliere se usare le versioni stabili (che consigliamo) o le versioni giornaliere (sicuramente più aggiornate ma potenzialmente instabili). Nel nostro caso scegliamo la più recente tra le versioni stabili: v1.18 (2022-01-17) .bin.

Salviamo il firmware in una cartella, poi apriamo il Prompt dei comandi per installare l’applicazione Esptool.py che ci servirà per installare il firmware sulla nostra ESP32. Per farlo, digitiamo il seguente comando:

pip install esptool

Attendiamo qualche secondo, il tempo necessario per scaricare e installare l’applicazione.

Installazione

Ora che tutto è pronto, colleghiamo la nostra dev-board al PC e cerchiamo di capire a quale porta è connessa. Su Windows è piuttosto semplice: possiamo aprire la IDE di Arduino e verificare da lì quale porta occupa.

Identificata la porta, con il Prompt dei comandi aperto digitiamo:


esptool.py --chip esp32 --port COM3 erase_flash

Con questo comando andiamo a cancellare il firmware già installato sulla dev-board, in modo da poterlo sostituire con quello specifico per MicroPython. Nel nostro esempio stiamo adoperando la porta COM3, ma potrebbe essere diversa per voi, quindi assicuratevi sempre quale sia la porta corretta.

Al termina della cancellazione del firmare, procediamo ad installare quello scaricato poco fa. Sempre da Prompt dei comandi muoviamoci sulla cartella dove avete scaricato il firmware. Nel nostro esempio lo abbiamo scaricato nella cartella Downloads, quindi da riga di comando, per entrare nella cartella, digito:


cd Downloads

Entrato nella cartella, digito il comando dir (directory) per controllare se il file sia presente nella cartella, ed infatti eccolo.

firmware

Rimanendo sul Prompt dei comandi, digitiamo il comando per installare il firmware. Ricordiamoci che la dev-board deve rimanere collegata per tutto il tempo e che il nome del firmware va inserito nella parte finale del seguente comando:


esptool.py --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 esp32-20220117-v1.18.bin

Durante questa fase non ci resta che aspettare e vedere le l’installazione viene completata.

Verifichiamo che la procedura sia andata a buon fine, scaricando l’applicazione PuTTy [LINK], che tempo fa abbiamo visto per un progetto su Orange Pi. Apriamolo e selezioniamo Serial in Connection Type, impostiamo la porta COM3 e lo speed a 115200. Clicchiamo su Open e si aprirà il terminale.

Ora possiamo premere il pulsante di reset per vedere se vengono lette le informazioni sulla scheda e digitare il comando per stampare il messaggio di Hello World.