Arduino è una piattaforma hardware composta da una serie di schede elettroniche dotate di un microcontrollore. È stata ideata e sviluppata da alcuni membri dell’Interaction Design Institute di Ivrea, fondato da Olivetti e Telecom Italia, come strumento per la prototipazione rapida e per scopi hobbistici, didattici e professionali. Il team creativo dietro il progetto Arduino è composto da Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis.
Il nome della scheda deriva da quello del bar di Ivrea frequentato dai fondatori del progetto, nome che richiama a sua volta quello di Arduino d’Ivrea, Re d’Italia nel 1002.

Arduino Hardware
Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori di luci, di velocità per motori, sensori di luce, temperatura, umidità e molti altri progetti che utilizzano sensori, attuatori e sistemi di comunicazione con altri dispositivi, ad esempio il Raspberry Pi di cui ci siamo occupati in un’altra serie di post.
La piattaforma fisica si basa su un circuito stampato che integra un microcontrollore con dei pin connessi alle porte I/O, un regolatore di tensione e un’interfaccia USB per permettere la comunicazione con il computer utilizzato per programmare.
Una scheda Arduino tipica consiste in un microcontrollore a 8-bit AVR prodotto dalla Atmel, con l’aggiunta di componenti complementari per facilitarne l’incorporazione in altri circuiti. Nelle schede vengono usati i chip della serie megaAVR, più specificatamente i modelli ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560.
Molte schede Arduino includono un regolatore lineare di tensione a 5 volt e un oscillatore a cristallo a 16 MHz. Tuttavia alcune implementazioni, come ad esempio la piccola LilyPad, hanno un clock di 8 MHz e non sono dotate del regolatore di tensione.
Su tutte le schede i programmi vengono caricati attraverso una porta seriale RS-232, ma il modo in cui questa funzionalità è implementata nell’hardware varia da versione a versione. Le schede seriali Arduino contengono un semplice circuito inverter che permette la conversione tra il livello della RS-232 e il livello dei segnali TTL. Le versioni attuali di Arduino sono gestite via USB: la versione Uno utilizza un microcontrollore Atmega8U2 programmato come convertitore USB-seriale, mentre le precedenti versioni Diecimila e Duemilanove utilizzano chip adattatori USB-seriale, come gli FT232 di FTDI. Alcune varianti, come la Arduino Mini e la versione non ufficiale Boarduino, usano una scheda o un cavo adattatore USB-seriale staccabile.
Per implementare il comportamento interattivo, Arduino è fornita di funzionalità di input/output (I/O). Tramite le funzionalità di input, la scheda riceve segnali raccolti da sensori esterni. Il comportamento della scheda è gestito dal microcontroller in base ai valori provenienti dai sensori e alle operazioni determinate dal programma in esecuzione in quel momento sulla scheda. L’interazione con l’esterno avviene attraverso attuatori pilotati dal programma, che fornisce le istruzioni per mezzo dei canali di output in dotazione.
La scheda Arduino è dotata di molti dei connettori di input/output per microcontroller in uso su altri circuiti. Tutti i pin di I/O sono collocati sulla parte superiore della scheda mediante connettori femmina da 0,1″. Sono inoltre disponibili commercialmente molte schede applicative plug-in, note come “shields”.
Arduino è utilizzato di solito per lo sviluppo di oggetti interattivi stand-alone, ma può anche interagire, tramite un collegamento e un opportuno codice, con software residenti su computer, come Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider.
L’hardware originale Arduino è interamente realizzato in Italia dalla Smart Projects, mentre cloni
della scheda possono essere realizzati da chiunque in qualsiasi parte del mondo.
Fino a oggi, sono state commercializzate ben 16 versioni dell’hardware Arduino.

Arduino Software
A questo hardware viene affiancato anche un ambiente di sviluppo integrato (IDE) multipiattaforma (o come si direbbe oggi, crossplatform, ovvero disponibile sia per i sistemi Linux, che per quelli Apple e Windows).
L’ambiente di sviluppo integrato (IDE) di Arduino è un’applicazione multipiattaforma scritta in Java, ed è derivata dall’IDE creato per il linguaggio di programmazione Processing e per il software progetto Wiring. È concepita per iniziare alla programmazione neofiti a digiuno dello sviluppo di software.
Per permettere la stesura del codice sorgente, l’IDE include un editore di testo dotato di alcune particolarità, come il syntax highlighting, il controllo delle parentesi e l’indentazione automatica. L’editor è inoltre in grado di compilare e caricare il programma funzionante ed eseguibile sulla scheda con un solo click. I programmi in Arduino vengono chiamati sketch.
Insieme all’IDE sono scaricati vari sketch di esempio, per introdurre l’utente alla programmazione della macchina; i temi sono molto basici: come gestire gli ingressi analogici e digitali, far accendere un LED in modo pulsante e variabile; si possono però anche affrontare problemi più complessi, come la gestione di un display LCD o di una scheda telefonica GSM. Oltre alle librerie già incorporate (più di una decina), l’utente può aggiungerne di nuove con uno strumento di importazione compreso nell’IDE. Per vedere i risultati di uno sketch è attivabile dall’IDE una finestra seriale di monitoring, sulla quale far comparire l’output delle istruzioni Serial.print(parametro) incorporate nello sketch stesso.
Tutto il software a corredo è libero e anche gli schemi circuitali sono distribuiti sotto forma di hardware libero.
Grazie alla base software comune ideata dai creatori del progetto, per la comunità Arduino è stato possibile sviluppare programmi per connettere, a questo hardware, più o meno qualsiasi oggetto elettronico, dal più classico computer, a tutti i tipi di sensori in circolazione, come anche a display ed attuatori.
Bibliografia
Banzi M., 2009, Getting Started with Arduino, Make Books, 1ª ed., 2009
Banzi M., 2011, BetaBook, il manuale di Arduino: Cap. 3 – Un po’ di storia di Arduino, Apogeo
Banzi M., 2012, Arduino La guida ufficiale, Tecniche Nuove
Majocchi S., 2012, Arduino UNO Programmazione avanzata e Librerie di sistema, Vispa Edizioni
Majocchi S., 2016, Primi Passi in Arduino con la scheda Genuino UNO, Edizione gratuita in CC-BY-ND-NC scaricabile da bit.ly/PPcGUbSM, 26 gennaio 2016
Margolis M., 2011, Arduino progetti e soluzioni, Tecniche Nuove.
Schmidt M., 2011, Il manuale di Arduino, Apogeo
Sciamanna L., 2010, Arduino il microprocessore per tutti, Sandit
E per oggi è tutto.
Nella prossima puntata daremo un’occhiata al lato software e alle procedure di installazione del software di programmazione.
Alla prossima