Storia e Futuro di Arduino ?

Come nasce Arduino: qui si fa la storia !

Hernando Barragán (Designer – Docente Università delle Ande) ha ideato Wiring nell’estate del 2003. Wiring si basa su Processing, il linguaggio di programmazione open source sviluppato presso il Massachusetts Institute of Technology Media Lab e l’Interaction Design Institute Ivrea da Ben Fry e Casey Reas. Un certo numero di persone ha dato ulteriori contributi a Processing e Wiring. Lo stato attuale del progetto non sarebbe stato possibile senza questo aiuto. Gli sviluppatori delle librerie sono: Michael Margolis, Brett Hagman, Bjoern Hartmann, Hans-Christoph Steiner, Maarten Lamers, Nameet Kumar, Christoph Wartmann, Etienne Ribeiro, Pierre Perret, Nicholas Zambetti, Thomas Ouellet Fredericks, Sibylle Hauert, Scott Klemmer, Mark Stanley, Alexander Brevig, Alan Duncan. Gli sviluppatori del bootloader sono: K. Worapoht (based on the work of Peter Fleury). Gli sviluppatori di Processing sono: Ben Fry e Casey Reas. Gli sviluppatori dei tutorial sono: Yaniv Steiner (Project Leader), Massimo Banzi, (Advisor), Giorgio Olivero (Interaction and Visual Designer), Paolo Sancis (Information Designer), Michal Rinott (Editor/Advisor), Riccardo Strobbia (Web).

Ma cos’è Wiring ?

E’ l’idea che sta alla base del progetto Arduino: una piattaforma Hardware e di Sviluppo del software utilizzato per far funzionare i microprocessori, open source e gratuita. L’idea è far diventare semplice l’utilizzo dell’elettronica e del microprocessore in modo che possa essere utilizzata anche da designer ed artisti, insieme agli studenti ed in generale a chiunque voglia utilizzare l’elettronica a microprocessore. La piattaforma diventerà compatibile con vari tipi di microprocessori di vari produttori. Il primo microprocessore utilizzato è della famiglia AVR della azienda Atmel (comprata da Microchip). All’epoca il microcontrollore Atmel era molto innovativo sia per prestazioni che per prezzo.

La scheda elettronica che forma la parte Hardware del progetto Wiring
Questa è la schermata della IDE di Wiring, il software che serve per scrivere i programmi che verranno caricati sul microprocessore della scheda elettronica

La piattaforma Wiring ha bisogno di varie parti per funzionare: Una scheda elettronica (Hardware) dotata di microcontrollore, sezione di alimentazione e vari connettori per i segnali di ingresso e uscita. Un bootloader caricato nel microcontrollore che permette al computer di caricare il programma sulla scheda con l’utilizzo della semplice comunicazione seriale/USB (viene così eliminato l’utilizzo dei programmatori dedicati). Un ambiente di sviluppo del programma da caricare sul microcontrollore (IDE creata con l’ambiente di programmazione Processing). Un compilatore (GCC) che trasforma il linguaggio di programmazione C e C++ in linguaggio macchina (file HEX).

Perché Arduino diventa famoso ?

Nel 2005 i fondatori di Arduino: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, e David Mellis, diciamo che “prendono in prestito” Wiring, l’idea open source (che significa copiabile anche a fini commerciali) del designer Hernando Barragàn, e rifanno la scheda elettronica Wiring che diventerà la scheda Arduino xxx, dove xxx è un suffisso che ne indica la versione. Secondo Wikipedia al Ottobre 2008 ne erano già state vendute più di 50’000 unità.

Alla data di questo post la piattaforma IDE di Arduino è stata scaricata più di 42 milioni di volte.

Io personalmente vengo a conoscenza di Arduino nei primi mesi del 2010, grazie ad un ragazzo che mi parla della rivista Make in cui si parla tra l’altro di questo Arduino che sta diventando famoso ed è di un Italiano. La curiosità mi spinge a scoprire la rivista ed Arduino, che mi prende a tal punto da scriverci un libro, credo uno dei primissimi in Italiano, che grazie a qualcuno che non conosco, ma che ringrazio, è citato anche in Wikipedia nella sezione dedicata ad Arduino.

Cosa mi aveva preso del sistema Arduino ? La cosa più eclatante è stato il sistema di programmazione della scheda, la IDE per intenderci, per quei tempi semplice e veloce. In seconda battuta il prezzo della scheda, relativamente poco costoso rispetto ai sistemi di sviluppo del periodo. Anche il meno costoso dei sistemi di sviluppo della linea di microprocessori Microchip era almeno 5 volte più costosa di Arduino. Poi poter scambiare dati attraverso la porta seriale compreso nel “pacchetto Arduino”. Quello che mi aveva impressionato di meno erano il corredo di librerie, visto che era tutto già noto ed utilizzato nell’ambiente professionale. Con il senno di poi la cosa più eclatante delle librerie era il sistema di comunicazione Ethernet/WiFi che io personalmente ho apprezzato poco perché prediligo il lato “low level” della programmazione a microcontrollore.

Francamente ho riconosciuto le grandi potenzialità di questo sistema (con una sola scheda elettronica avevo il sistema di programmazione e la scheda Target da utilizzare per il mio progetto), ma non pensavo che diventasse così famoso, e possiamo dire, uno strumento fondamentale nello studio, ma anche nella realizzazione di nuove apparecchiature elettroniche.

Dopo anni vediamo come si sta evolvendo questa idea di programmazione e prototipazione elettronica a basso costo, a curva di apprendimento semplificata.

Esplosione di piattaforme Hardware

All’inizio c’era solo una scheda Arduino, dopo 15 anni solo sul sito ufficiale Arduino ne posso contare 31 nella sezione Boards & Modules. La grande potenza della prima scheda Arduino, che ad oggi resiste nella versione Arduino Uno Rev3, è stata quella di rendere facilissimo utilizzare il computer per interfacciare periferiche a basso livello. Per intenderci “muovere” i pin del microprocessore per attivare motori o sensori di tutti i tipi, cosa che con il normale pc era difficile fare, e si faceva utilizzando la vecchia porta parallela (usata principalmente per fornire i dati alla stampante).

Porta Parallela. Connettore e segnali elettrici (Credit: Fabio Garufi)

Per i più semplici progetti bastano ancora le risorse della Arduino Uno, ma quando si vogliono utilizzare display che superano i 128×128 pixels monocromatici oppure utilizzare tutte le potenzialità offerte dal Bluetooth/WiFi allora bisogna avere schede “più potenti”. E’ per questo che abbiamo visto crescere l’offerta di schede Arduino, dalla Mega fino alla Due. Oggi Arduino sta cercando di entrare nel settore della scheda RaspBerry Pi, con la nuova scheda Portenta H7.

RaspBerry Pi Zero. Costo 5,6€. Microprocessore BroadCom BCM2835. Clock 1GHz. RAM 512 MB. Uscita video HDMI.
Arduino Portenta H7. Costo 110€. Microprocessore doppio in parallelo Arm Cortex M7 + M4. Clock max. 480 MHz. RAM 8 MB. WiFi + Bluetooth inclusi.

A questo punto dello sviluppo di “Arduino Hardware” non saprei dire se la direzione presa è innovativa. Sul piano dei costi solo recentemente, dopo che il mondo dei cloni è diventato onnipresente, Arduino ha rilasciato la Nano Every, che ha un costo di circa 12€, ma offre un miglioramento nelle risorse del microprocessore. Ma il costo della nuova “super scheda” Portenta H7 non so se porterà fortuna (il sito di Arduino mette in pre-vendita, credo per la prima volta, una scheda).

E il software IDE come procede ?

Il software IDE è stato “ereditato” dal progetto Wiring. Per anni gli sforzi maggiori sono stati fatti sulle librerie. A mio parere poco è stato fatto per migliorare le prestazioni della piattaforma di sviluppo IDE. Si poteva migliorare l’interfaccia utente in modo più sostanzioso. Qualche miglioria è stata aggiunta, come il monitor grafico dei dati spediti tramite Seriale/USB e una migliore gestione delle varie schede hardware che incorporavano microprocessori e sistemi diversi da quello iniziale.

Adesso bollono in pentola alcune novità anche su questa area del progetto. “Arduino Create” serve a programmare la scheda attraverso un portale internet, cioè un IDE online. La cosa più interessante è la possibilità di acquistare e gestire uno spazio cloud per i progetti IoT che necessitano di interagire via internet con alcuni servizi, tra cui la visualizzazione della posizione dell’oggetto. Questo progetto ha un piano gratuito e un piano a pagamento con abbonamento mensile.

Un nuovo IDE versione PRO è in fase Beta e si può scaricare al seguente link: Download Arduino IDE Pro versione Beta. La funzione più utile aggiunta è la possibilità di visualizzare le variabili interne al microprocessore, così da riuscire a fare un debug in tempo reale del programma. Questa è una funzione che c’è sempre stata nei sistemi di sviluppo firmware professionali. Al momento è utilizzabile solo sui microprocessori ARM M0.

Alternative alla IDE di Arduino ?

Una alternativa alla IDE di Arduino effettivamente esiste, ma non l’ho mai provata. Si chiama UECIDE e la trovate al link: UECIDE Download. E’ gratuita e promette di essere molto veloce nella compilazione del programma. Ha una gestione normale delle cartelle dei files. Può gestire molte schede Arduino compatibili, ma con microprocessori diversi da quelli utilizzati sulle schede Arduino. E’ nata per supportare tutte le tipologie di microprocessori, con particolare attenzione ai PIC32 della Microchip. Gestisce diversi core: Arduino, Arm, ESP32 e Microchip PIC32 ChipKIT. Ha la possibilità di cambiare “skin”. La versione con sfondo nero sarà apprezzata da chi predilige lavorare con poca luce ambiente (sto pensando al mio amico Marc Cutex).

UECIDE alternativa alla IDE di Arduino. Tema/Skin standard.
UECIDE alternativa alla IDE di Arduino. Tema/Skin DARK.

Linduino Analog Devices

Espruino

Cosa è successo dopo Arduino ?

Il sistema Arduino ha scatenato tutto il mondo dell’elettronica nella corsa per sviluppare schede a microprocessore per lo sviluppo e la prototipazione rapida. Devo ammettere che molto di ciò che era professionale (sia prodotti che conoscenze tecniche) è diventato quasi banale, ed alla portata di tante persone. Questo significa che nel tempo il “valore” di un professionista verrà sempre più sottovalutato.

I cloni abbassano il prezzo di Arduino

La cosa più semplice da fare è prendere tutti i file di produzione della scheda Arduino, che è open source, e copiarli. I cinesi hanno abbassato il prezzo, all’inizio. Puoi trovare una scheda Arduino Nano anche a 2€. Ora producono novità basate sul principio della prototipazione rapida, ma spesso il loro progetto è proprietario. Un esempio: la nuova scheda della SEEED dotata di un microprocessore di nuovissima generazione, con set di istruzioni RISC-V, con capacità di dual core a 64 bit e clock di 400 MHz. Nella scheda è già integrato un sistema AI (Intelligenza Artificiale) a soli 13€.

Un sistema completo per lo sviluppo di soluzioni di Intelligenza Artificiale
Microcontrollore Cinese Kendryte 210 con tecnologia Risc-V

In Inghilterra UK, patria del microcontrollore ARM, sta andando a gonfie vele il progetto RaspBerry Pi con oltre 5 milioni di schede vendute in tutto il mondo (la società è registrata come charity company). Il prezzo delle loro schede varia dai 6 ai 40€. Il modello Pi 4 è utilizzabile come computer e puoi installare sistemi operativi linux like, Windows like o il loro Raspbian operating system (compreso nel prezzo della scheda).

Gamma di prodotti RaspBerry Pi
RaspBerry Pi 4 – caratteristiche tecniche e prezzo

Sempre in UK la BBC ha organizzato una campagna per “digitalizzare” gli studenti a partire dai 7 anni di età. E’ nato nel 2016 il progetto “no profit” Micro:Bit formato da una scheda Hardware e più piattaforme IDE semplificate per lo sviluppo del firmware (il software che viene caricato nel microcontrollore), anche con la collaborazione di Microsoft. Ad oggi più di 20 milioni di ragazzi stanno utilizzando questa scheda elettronica per imparare a programmare. Si può acquistare la scheda a 26€ compreso il cavo USB ed il porta batterie+2 batterie AAA.

Scheda Micro:Bit per l’insegnamento del coding agli studenti dai 7 anni in sù.

In USA invece Adafruit sta portando avanti il progetto Feather e l’utilizzo del linguaggio di programmazione MicroPython/CircuitPython, in alternativa al C++ utilizzato in Arduino. Adafruit ha scritto molte librerie per Arduino, ma è chiaro che si sta attrezzando per diventare indipendente dall’ecosistema Arduino.

Adafruit Feather M0, equivalente alla scheda Arduino Zero. E’ dotata di Eeprom da 2 MB e un led RGB mini neopixel. Costo 25€.

Sempre Adafruit ha creato la scheda Circuit Playground Express che può essere programmata con la IDE Arduino, ma anche con MakeCode di Microsoft, CircuitPython e Code.org usato da 50 milioni di studenti Americani. E’ una scheda con microcontrollore SAMD21 M0, lo stesso usato sulla Arduino Zero, 10 led RGB mini Neopixels, 1 sensore accelerometro, 1 sensore di temperatura, 1 sensore di luce, 1 microfono MEMS, 1 mini altoparlante con amplificatore in classe D, 2 pulsanti, 1 trasmettitore/ricevitore di Infrarossi, 1 memoria Flash da 2 MB, al costo di 25€.

Scheda Circuit Playground Express. Costo 25€.

Il futuro Arduino ?

Leggiamo la sfera di cristallo ?

Mi vien da dire che il mondo della didattica sta usando sempre meno la limitata scheda Arduino, e si sta dirigendo verso schede a microcontrollore dotate di molti sensori e dispositivi che permettono di sviluppare un percorso formativo “tutto compreso” in una sola schedina elettronica.

Di occasioni di “crescita”, per il sistema Arduino, ce ne sono state. Sono state utilizzate per creare Robot didattici (a detta di alcuni troppo costosi con prestazioni basse), stampanti 3D (cloni senza grandi innovazioni ad un prezzo relativamente elevato) o schede elettroniche “troppo avanzate” per l’utente medio del sistema Arduino.

Dal lato PRO vedo concorrenti già acclamati (RaspBerry Pi e BeagleBone) o cinesi in rapida ascesa. Molto si giocherà sui prezzi di vendita, ma sarà importante il mix di funzionalità che avrà la prossima scheda “Arduino”.

Forse il progetto PRO dell’azienda Arduino darà soddisfazioni, con i suoi servizi sia di gestione semplificata del Cloud IOT, che dei servizi di progettazione. Invece la possibilità di “monetizzare” le nuove funzionalità della IDE la vedo poco praticabile, visto che il mondo sta già “regalando” questi software di sviluppo, anche ai professionisti.

Quanto tempo ho usato per scrivere questo post ?

2,5 giorni

Links & Credits

ChipKit Tutorial

ChipKit Boards

Pinguino Project

Pinguino Project Instructables

UTFT Display Library by Rinky-Dink Electronics

Sipeed Maix-1 W RISC-V Microcontroller

Risc-V.org microprocessore open source

Risc-V Kendryte 210 prototype board

Micro-Bit Project

https://www.arduinolibraries.info/authors/bhagman

http://alumni.media.mit.edu/~mellis/

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

http://www.lancos.com/index.html

http://homepage.hispeed.ch/peterfleury/avr-devtools.html

http://homepage.hispeed.ch/peterfleury/index.html

http://reas.com/information

https://fathom.info/projects/#research

https://benfry.com/

http://www.avride.com/article/wiring/

http://dbn.media.mit.edu/

http://www.wiring.org.co/about.html

http://www.wiring.org.co/faq.html

https://stackoverflow.com/questions/37958762/cortex-m0-

https://mil.ufl.edu/3744/

Rivista Makezine

Autore dell'articolo: Lucio Sciamanna