L’IDE è il software che chi realizza applicazioni con Arduino utilizza per programmare le proprie schede, caricandovi gli sketch. Il suo sviluppo è iniziato nel 2005 sulla base dell’interfaccia grafica del progetto Processing e da allora è stato costantemente sviluppato aggiungendo funzionalità, una release dopo l’altra, diventando lo standard de facto per la prototipazione elettronica.
Grazie a un framework estensibile basato su pacchetti di supporto per schede modulari, l’IDE supporta più di 1.000 schede ufficiali e non ufficiali (terze parti) ed è stato tradotto in 66 lingue; nell’ultimo anno è stato scaricato più di 39 milioni di volte. Mentre l’IDE di Arduino fornisce un’interfaccia semplice e chiara, ideale per gli utenti inesperti, gli utenti più avanzati spesso lamentano le capacità di modifica un po’ troppo “basilari” rispetto agli editor moderni; tra queste l’indentazione del codice, il block folding, le parentesi a chiusura automatica, la ricerca e la sostituzione di espressioni regolari, il comment toggling. Oltre a questo, molti utenti desideravano il debug live, ovvero la possibilità di eseguire il codice su una scheda allegata e fermarlo su una determinata riga per controllare il contenuto di variabili, memoria e registri.
Purtroppo le release 1.x dell’IDE sono state sviluppate in Java e la base di codice monolitica rende difficile implementare tali funzionalità. Java sta anche diventando una tecnologia obsoleta per le applicazioni desktop e viene gradualmente eliminata dai sistemi operativi e dagli app store più recenti, il che implica il dover risolvere problemi di compatibilità. Ecco perché il team di Arduino nel 2018 ha iniziato a effettuare il refactoring della toolchain arrivando al primo punto di svolta: arduino-cli, lo strumento da riga di comando di Arduino scritto in
Golang che espone tutte le funzionalità principali dell’IDE, fornendo agli utenti avanzati uno strumento flessibile che possono integrare nel loro IDE.

Nel 2019 è arrivata una nuova versione di IDE costruito su arduino-cli e basato su uno stack software moderno (Theia ed Electron) con il nome in codice di “Arduino Pro IDE” e nel 2020 è iniziato il lavoro per portare il nuovo IDE da un proof-of-concept a uno strumento completamente funzionale. Nasce così la versione 2.0, la cui principale innovazione è il debug live del codice. Porta con sé un editor moderno con interfaccia responsive e ridotti tempi di compilazione, pur rimanendo familiare e in continuità con le versioni precedenti. Il debugger live consente di eseguire il codice in modo interattivo su una scheda e ispezionarne l’esecuzione senza scrivere decine di istruzioni “Serial.
println ()” perché prima il debug si eseguiva in maniera grossolana così. Basta attivare il pannello di debug, impostare i punti di interruzione in cui si desidera sospendere l’esecuzione e ispezionare il contenuto delle variabili. È persino possibile cambiare il contenuto delle variabili al volo e riprendere l’esecuzione. Il debugger è uno strumento molto apprezzabile che ad oggi ha un unico limite: supporta tutte le schede Arduino basate sulle piattaforme SAMD e Mbed(famiglia MKR, Nano 33 IoT, Nano 33BLE, Portenta, Zero).
I manutentori di core Arduino per schede di terze parti possono aggiungere il supporto per il debug aggiungendo i relativi parametri di configurazione; una guida tecnica per questo sta arrivando. Basta collegare una sonda di debug come il J-link Segger ai pin JTAG della
board e si può debuggare. Il nuovo IDE si basa sul framework Eclipse Theia, che è un progetto open source basato sulla stessa architettura di VS Code (protocollo del server del linguaggio, estensioni, debugger). Il front-end è scritto in TypeScript, mentre la maggior parte del backend è scritta in Golang.
Altra innovazione dell’IDE 2.0 è che durante la digitazione, l’editor suggerisce il completamento automatico di variabili e funzioni in base alle librerie incluse. Quando si clicca su una variabile o funzione, appare un menu contestuale che fornirà scorciatoie da tastiera per navigare più rapidamente e saltare alla riga o file dove sono dichiarate.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu