In questo articolo iniziamo a trattare MicroPython
una implementazione di Python3
per dispositivi embedded.
Sul sito MicroPython sono disponibili varie immagini per diversi dispositivi, tra cui i moduli esp8266 ed esp32
Iniziamo i nostri test con una scheda nodemcu esp8266 DevKit
Si procede a caricare il firmware su tale scheda.
Sul sito MicroPython si fa riferimento anche al caricamento del firmware sulla scheda con le informazioni disponibili al link
Tutorial MicroPython per esp8266
Per il caricamento del firmware su utilizza sempre il tool esptool, disponibile anche sul repository Python.
Per poter procedere all’utilizzo occorre installare Python3 sulla piattaforma di sviluppo utilizzata. Di seguito i passi da seguire per Windows e Linux.
- Windows
Per Windows occorre innanzitutto installare l’ambiente Python3, disponibile al seguente link
Nel nostro caso è stata scaricata la versione 3.6.4 per sistemi a 64 bit. Si procede alla installazione del pacchetto con diritti di amministrazione
Dopo aver proceduto ad aggiungere Python nel Path si preme “Install Now”
Dopo aver concluso l’installazione si apre una shell dos e si controlla la versione di Python installata
Sempre dalla consolle dos si procede alla installazione di esptool con il comando
1 |
pip install esptool |
Si può procedere a questo punto all’installazione del firmware MicroPython sulla scheda Nodemcu esp8266 DevKit. Occorre, naturalmente, aver installato su Windows i drivers del chip seriale-ttl presente sul proprio modello di scheda. Ci si posiziona nella cartella in cui si è scaricato il firmware e si eseguono i comandi da shell dos
1 |
esptool.py --port COMPORT erase_flash |
Procedere al caricamento del firmware
1 |
esptool.py --port COMPORT --baud 460800 write_flash --flash_size=detect -fm=dio 0 firmware.bin |
Una volta installato il firmware connettiamoci sulla consolle Python utilizando, nel nostro caso con la scheda nodemcu DevKit, la stessa porta già sfruttata per il caricamento del firmware.
Su Windows si può utilizzare il programma putty
ed impostare la connessione seriale ad un baudrate di 115200
- Linux
Per Linux utilizziamo la distribuzione Debian 9, ma la procedura può essere estesa ad altre distribuzioni. Dopo l’installazione di Debian 9, analoga a quanto eseguito per la versione 8
si procede alla installazione in Python3 e del tool esptool
1 2 |
sudo apt-get install python3 sudo apt-get install python3-pip |
Aggiungere l’utenza utilizzata su Debian al gruppo dialout
1 |
sudo usermod -a -G dialout USER |
Nel nostro caso, utilizzando sviluppo come utente, il comando è il seguente
1 |
sudo usermod -a -G dialout sviluppo |
Passiamo alla installazione del pacchetto Python esptool
1 |
sudo pip3 install esptool |
Si può quindi procedere alla installazione del firmware in modo analogo a quanto fatto su Windows.
Si controlla su che porta seriale è disponibile la scheda (ttyUSBX)
Si procede quindi alle operazioni di cancellazione e caricamento del firmware
1 |
esptool.py --port /dev/ttyUSBX erase_flash |
1 |
esptool.py --port /dev/ttyUSBX --baud 460800 write_flash --flash_size=detect -fm=dio 0 firmware.bin |
Per collegarsi sulla scheda si usa screen
1 |
sudo apt-get install screen |
il cui manuale è presente al link
1 |
screen /dev/ttyUSB0 115200 |
Per eseguire il detach premere
1 |
Ctrl+a+d |
per eseguire il resume
1 |
screen -r |
Per chiudere screen
1 |
killall screen |
Una volta collegato si ottiene il medesimo risultato di Windows
Nel prossimo articolo incominceremo a vedere quali IDE si possono usare per creare e caricare il nostro codice Python