PlatformIO e VSCodium: da Arduino all’ESP32 con l’AI

Una domanda, un tocco sul display e una risposta casuale: ecco l’Oracolo, il nostro piccolo progetto ESP32. Al Linux Day 2026 lo abbiamo portato da Arduino IDE a PlatformIO e VSCodium, mantenendo il framework Arduino. Poi, con l’aiuto dell’AI, abbiamo trasformato due cerchi in una sfera animata. Vediamo cosa cambia e come riprovare con il codice disponibile su GitHub.

Guarda la presentazione: da Arduino IDE a PlatformIO. Nelle slide trovi la migrazione guidata, gli esempi e il confronto dei tempi di compilazione. Il repository GitHub del Linux Day 2026 contiene codice e istruzioni per riprovare.

L’Oracolo: una sfera di cristallo con ESP32

L’esempio è ispirato alla Sfera di cristallo del Libro dei Progetti Arduino. Usa una Cheap Yellow Display (CYD): una scheda ESP32 con schermo e touch. Facciamo una domanda, tocchiamo il display e attendiamo una risposta casuale. Lo stesso comportamento ci accompagna prima e dopo la migrazione: possiamo così concentrarci su ciò che cambia nel progetto.

Oracolo su ESP32 CYD: due cerchi sul display e risposta alla domanda
Il punto di partenza: l’Oracolo con la sfera disegnata da due cerchi.

PlatformIO e VSCodium: quando lo sketch diventa un progetto

Arduino IDE è comodo per iniziare, seguire un tutorial e concentrarsi sull’esperimento. PlatformIO permette di dichiarare nel progetto scheda, framework e dipendenze, così da ritrovare la configurazione anche su un altro computer. Nel nostro percorso lo affianchiamo a VSCodium, un editor libero basato sul codice sorgente di VS Code: l’editor organizza il lavoro, PlatformIO gestisce compilazione e dipendenze.

  • Primi sketch e prove rapide: Arduino IDE offre un flusso integrato per compilare e caricare il programma.
  • Progetti con più librerie: PlatformIO raccoglie dipendenze e versioni nel file platformio.ini.
  • Varianti hardware e lavoro condiviso: PlatformIO consente di definire più ambienti e automatizzare le compilazioni.

Arduino IDE 2 offre già assistenza al codice e debugging. La scelta dipende quindi da come vogliamo organizzare il lavoro e far crescere il progetto.

Un esempio delle possibilità offerte dalle estensioni è Wokwi for VS Code: permette di simulare schede e firmware direttamente nell’editor. Con PlatformIO compiliamo il codice; Wokwi esegue il firmware nella simulazione. Nella variante animata dell’Oracolo trovi anche i file diagram.json e wokwi.toml, che descrivono il circuito virtuale e il firmware da caricare. Le istruzioni ufficiali per PlatformIO spiegano come collegare i due strumenti.

Da Arduino IDE a PlatformIO: sorgenti e dipendenze

Loghi di VS Code, PlatformIO e Arduino su un editor con codice ESP32

La migrazione conserva setup(), loop() e il comportamento del programma. Lo sketch passa in src/main.cpp, con #include <Arduino.h> e le dichiarazioni delle funzioni necessarie. Nel file platformio.ini indichiamo scheda e framework; con lib_deps dichiariamo le librerie. Le due versioni del progetto, per Arduino IDE e PlatformIO, permettono di confrontare i sorgenti.

Aggiornare una libreria per l’Oracolo non deve cambiare quella usata da un altro progetto. Con lib_deps, ogni progetto dichiara le proprie dipendenze. Fissando versioni o commit, possiamo ritrovare la stessa configurazione su un altro computer, senza ricostruire a memoria cosa avevamo installato.

Nell’esempio delle slide, le librerie del display arrivano dal registro PlatformIO con versioni precise. Quella del touch arriva invece dal repository ufficiale, a un commit specifico. Sorgenti e platformio.ini viaggiano insieme in Git: chi riprende il progetto trova anche le indicazioni per ricompilarlo.

Quanto aspettiamo per compilare? Linux e Windows

Abbiamo misurato l’attesa dopo una piccola modifica al codice dell’Oracolo. Nelle due sessioni, PlatformIO riduce il tempo di ricompilazione; sul PC Windows misurato l’attesa è maggiore rispetto alla macchina Linux con entrambi i motori.

Dopo una piccola modificaArduino IDE 1.8.19 — motore di compilazionePlatformIO Core 6.2.0
Linux11,29 s8,88 s
Windows14,89 s9,77 s
Tempo di attesa in secondi: mediana di tre prove per sessione. Meno è meglio.

Dopo la modifica, il risparmio misurato è di 2,41 secondi su Linux e 5,12 secondi sul PC Windows. Le prove usano lo stesso Arduino-ESP32 2.0.14 e le stesse librerie, con dipendenze già installate. Misurano la compilazione senza interfaccia grafica; download e upload sono esclusi. Arduino IDE 2 non è stato misurato.

Le due sessioni usano macchine e filesystem diversi: questi numeri descrivono le prove svolte e non isolano l’effetto del sistema operativo. Nel repository trovi metodo, versioni e dati completi dei benchmark.

Con l’AI, dai due cerchi a una sfera animata

Con Codex integrato in VSCodium possiamo lavorare direttamente sui file del progetto: chiedere una modifica, controllare le differenze e compilare con PlatformIO. L’assistente può usare sorgenti, configurazione e messaggi del compilatore per proporre correzioni coerenti, riducendo il copia e incolla tra chat ed editor.

Nella presentazione l’obiettivo è concreto: trasformare i due cerchi dell’Oracolo in una sfera animata e luccicante. Partiamo da una copia dell’esempio PlatformIO; la variante animata preparata per la dimostrazione AI è disponibile su GitHub per confrontare il risultato o riprovare.

Oracolo ESP32: sfera animata e risposta sul display nella simulazione Wokwi
Dopo la modifica: la sfera animata dell’Oracolo nella simulazione Wokwi.

Con gli strumenti e i permessi necessari, l’assistente può eseguire compilazione e caricamento sulla scheda. A noi resta verificare le modifiche e provare animazione, display, touch e risposta dell’Oracolo sulla CYD.

Altri progetti con PlatformIO

Fab-O-Matic usa ESP32 e lettori RFID per gestire l’accesso alle macchine del laboratorio. Nell’articolo Fab-O-Matic: sviluppo embedded con C++ moderno e PlatformIO raccontiamo la scelta dell’ambiente, le librerie e le configurazioni per ESP32 ed ESP32-S3. Per approfondire i test, trovi anche i collaudi del codice embedded di Fab-O-Matic.

Un altro esempio è il visualizzatore di orbitali elettronici con ESP32: il firmware C++ usa PlatformIO con ESP-IDF. Mostra come lo stesso strumento possa accompagnare progetti con framework diversi, dall’automazione alla divulgazione scientifica.

Prova l’Oracolo: nel repository GitHub del Linux Day 2026 trovi le versioni Arduino IDE e PlatformIO, la variante animata e le istruzioni per la CYD. Puoi seguire il percorso nelle slide della presentazione.

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. Per maggiori informazioni.

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo. Privacy Policy di FABLAB BERGAMO

Chiudi