PyCharm: MicroPython Plugin

Ho deciso di comprare alcuni componenti di elettronica per il mio nuovo progetto di Gatto Robotico IoT (Internet of Things), e BigTronica è il mio negozio preferito all’interno del centro commerciale “La cascada”. Navigando sul loro sito, ho trovato facilmente il NodeMCU (v2).
Dopo aver acquistato il NodeMCU e gli altri componenti necessari, ho deciso di programmarlo utilizzando MicroPython con il popolare IDE PyCharm.

MicroPython: Python per micro-controllori

Nel 2013, il fisico australiano Damien P. George si rese conto che i micro-controllori stavano diventando sempre più potenti e intravide l’opportunità di eseguire un interprete Python su di essi. Decise quindi di dare vita a una campagna di crowdfunding su Kickstarter chiamata “Micro Python: Python for microcontrollers”, al fine di finanziare lo sviluppo di MicroPython (“Getting Started: MicroPython”, 2022).

Oggi MicroPython è diventato così popolare che possiamo comandare una vasta gamma di devices, come schede Arduino, schede Raspberry Pi Pico e ESP8266. Dopo il successo dell’ESP8266, Espressif Systems ha rilasciato l’ESP32 che dispone sia di WiFi integrato che di Bluetooth dual-mode, cioè è in grado di supportare sia la variante classica che quella BLE.

MicroPython: PyCharm plugin

Per iniziare a scrivere codice, utilizzeremo l’ambiente di sviluppo PyCharm che include un editor, un debugger e la possibilità di estendere le sue funzionalità attraverso l’installazione di plugin dal marketplace.
Andrey Vlasovskikh, che in passato ha guidato il team di sviluppo di JetBrains, ha creato un plugin ufficiale per MicroPython. Questo plugin ci permette di programmare il NodeMCU (v2), che utilizza il SoC ESP8266 sviluppato da Espressif Systems. Questo System-on-a-Chip è diventato molto popolare grazie alle sue capacità di connettività Wi-Fi integrate e alle sue dimensioni compatte.

È importante notare che il supporto per MicroPython in PyCharm potrebbe variare a seconda della versione dell’IDE e delle funzionalità specifiche del micro-controllore. Per installare il plugin non ci resta che cercarlo sul marketplace:

Abilitazione del supporto

Adesso da PyCharm dobbiamo abilitare il supporto per MicroPyhon andando su:

Spuntiamo “Enable MicroPython Support” e selezionamo ESP8266 dal dropdown menu per il tipo di device.

Premendo il pulsante “Detect”, potrebbe non essere in grado di rilevare automaticamente il dispositivo. In tal caso, è necessario aprire il Gestione dispositivi di Windows e individuare la porta seriale a cui è collegato il NodeMCU. Successivamente, inseriamo la porta seriale corrispondente nel campo “Device path”.

NodeMCU

Il micro-controllore NodeMCU (v2) è dotato di un totale di 16 pin GPIO (General Purpose Input/Output), identificati come D0-D8 e D9-D15. Questi pin possono essere utilizzati sia come ingressi che come uscite. Tuttavia, è importante notare che l’etichettatura dei pin GPIO sull’ESP8266 può essere diversa da quanto indicato sulla serigrafia della scheda stessa.
Nell’immagine viene mostrata la corrispondenza reale dei pin, inclusi i pin per l’alimentazione e la massa (ground). È fondamentale fare riferimento a questa immagine per utilizzare correttamente i pin GPIO sulla scheda.

Blink Led

Il blink di un LED è un progetto introduttivo semplice ed efficace per imparare i fondamenti della programmazione con MicroPython, offrendo un feedback visivo immediato. Per realizzare il progetto, sarà necessario identificare il pin GPIO corretto da utilizzare per collegare il LED al microcontrollore.
Utilizzando l’immagine come guida, sarà possibile individuare facilmente il pin corrispondente. Ad esempio, se desideriamo collegare il LED al pin GPIO5, corrispondente a D1 nella notazione del NodeMCU, possiamo fare riferimento all’immagine per assicurarci di collegare correttamente il LED al pin desiderato.

Console REPL: debug

MicroPython offre una console REPL (Read-Eval-Print Loop) che ci consente di eseguire comandi direttamente sul microcontrollore attraverso la porta seriale. Questo strumento semplifica il processo di sviluppo e il debug, sia per gli sviluppatori esperti che per i principianti che stanno imparando le basi della programmazione.

Il plugin ufficiale ci permette di accedere rapidamente a una console REPL:

Il REPL ci consente di eseguire lo script che abbiamo scritto nel main.py in modo da poterlo testare in real-time sulla board.

Possiamo eseguire così le istruzioni Python una alla volta, controllare i valori delle variabili, eseguire test e verificare l’output in tempo reale. Questo aiuta a individuare e risolvere rapidamente errori o bug nel tuo codice senza dover ricorrere a cicli di sviluppo del tipo compilazione/caricamento.

Sitografia

[0] Getting started with MicroPython on the ESP8266, Documentazione ufficiale
[1] Jetbrains, Announcing the MicroPython Plugin for PyCharm, The Pycharm Blog, 14/01/2018