Arduino (software)
Arduino software | |
---|---|
![]() | |
Genere | Integrated development environment |
Sviluppatore | Sviluppatori di Arduino |
Ultima versione | 1.0[1] (30 novembre 2011[1]) |
Sistema operativo | Multipiattaforma |
Linguaggio | Java |
Licenza | LGPL o GPL (licenza libera) |
Sito web | arduino.cc/en |
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 progetto Wiring. È concepita per iniziare alla programmazione artisti e altri neofiti, che siano a digiuno di pratica nello sviluppo di software.
Caratteristiche
Per permettere la stesura del codice sorgente, l'IDE include un editore di testo dotato inoltre di alcune particolarità, come il syntax highlighting, il controllo delle parentesi, e l'indentazione automatica. L'editor è inoltre in grado di compilare e lanciare il programma eseguibile in una sola passata e con un solo click. In genere non vi è bisogno di creare dei Makefile o far girare programmi dalla riga di comando.
L'ambiente di sviluppo integrato di Arduino è fornito di una libreria software C/C++ chiamata "Wiring" (dall'omonimo progetto Wiring): la disponibilità della libreria rende molto più semplice implementare via software le comuni operazioni di input/output. I programmi di Arduino sono scritti in C/C++, ma all'utilizzatore, per poter creare un file eseguibile, non è richiesto di scrivere un programma in C, ma solo di definire due funzioni:
- – funzione invocata una sola volta all'inizio di un programma che può essere utilizzata per i settaggi iniziali;
setup()
- – funzione invocata ripetutamente, la cui esecuzione si interrompe solo con lo spegnimento della scheda.
loop()
Esempi di codice
Un tipico esempio di programma per iniziare a far pratica con un microcontroller è quello, molto semplice, che permette l'accensione ripetuta di un LED. Nell'ambiente di sviluppo di Arduino, l'utilizzatore potrebbe farlo con un programma come il seguente[2]:
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT); // abilita il pin 13 per l'output digitale
}
void loop () {
digitalWrite (LED_PIN, HIGH); // accende il LED
delay (1000); // aspetta 1 secondo (1000 millisecondi)
digitalWrite (LED_PIN, LOW); // spegne il LED
delay (1000); // aspetta un secondo
}
Scritto in questo modo, il codice non verrebbe riconosciuto come programma valido da un compilatore C++; per questo motivo, quando l'utilizzatore seleziona il bottone di comando "Upload to I/O board" (presente nell'IDE), una copia del codice viene automaticamente trascritta in un file temporaneo con l'aggiunta di un extra include header all'inizio del codice e l'implementazione di una semplicissima funzione main()
in basso:
#include "WProgram.h"
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT); // abilita il pin 13 per l'output digitale
}
void loop () {
digitalWrite (LED_PIN, HIGH); // accende il LED
delay (1000); // aspetta 1 secondo (1000 millisecondi)
digitalWrite (LED_PIN, LOW); // spegne il LED
delay (1000); // aspetta 1 secondo
}
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}
"WProgram.h" è lo header file principale per la libreria Wiring. La funzione main()
effettua solo tre chiamate, init()
, setup()
e loop()
; le ultime due sono definite dall'utente, mentre la prima è scritta nella libreria stessa. La funzione loop()
, come richiesto, è automaticamente nidificata in un loop infinito.
Lo IDE di Arduino usa la GNU toolchain e la AVR Libc per compilare i programmi, mentre usa avrdude per caricarli sulla scheda.
Minibloq

Un esempio alternativo di ambiente integrato dedicato ad Arduino (ma anche ad altre utilizzazioni) è Minibloq, distribuito con licenza libera, che mette a disposizione un particolare ambiente di sviluppo visuale per la programmazione di Arduino, robot, e altri simili dispositivi di physical computing.
Caratteristiche di Minibloq sono l'interfaccia intuitiva, e la capacità di generare il codice a partire da uno schema grafico a blocchi disegnato dall'utente. Per questa sua impostazione intuitiva, il software è indirizzato ad avvicinare principianti e neofiti alla programmazione di microcontroller, in contesti scolastici ed educativi che vanno dalla scuola primaria all'ambiente liceale.
L'applicazione, compilata con GCC, si presta a essere utilizzata anche su computer a più basse prestazioni, come netbooks, OLPC XO-1, Intel-Classmate.
Android Accessory Development Kit
In occasione della conferenza Google I/O di maggio 2011, Google ha presentato ADK (Android Open Accessory Development Kit), un kit di sviluppo basato su Arduino e ideato per aiutare sviluppatori e costruttori hardware a creare accessori per Android; gli accessori possono comunicare con Android via cavo USB o attraverso una connessione Bluetooth.[3]
L'ADK, per ora, si basa sulla scheda Arduino Mega2560.[4]
Open hardware e open source
Gli schemi hardware di Arduino sono distribuiti in modo da poter essere utilizzati nei termini legali di una licenza Creative Commons Attribution Share-Alike 2.5[5], e sono disponibili sul sito ufficiale Arduino. Per alcune versioni della scheda sono disponibili anche il layout e i file di produzione.
Il codice sorgente per l'ambiente di sviluppo integrato e la libreria residente sono invece disponibili, e concessi in uso, secondo i termini legali contenuti nella licenza GPLv2.
Accessori hardware

Sia la scheda originale, sia i cloni, fanno uso di shields, ovvero di espansioni alla Arduino base, realizzate con schede a circuito stampato che possono essere collocate al di sopra della Arduino, inserendosi nei connettori già normalmente presenti su Arduino. Esistono espansioni dedicate a varie funzioni, dal controllo motorio, al breadboarding (prototipizzazione).
Note
- ^ a b (EN) Arduino Software Release Notes, su arduino.cc, Progetto Arduino. URL consultato l'8 luglio 2011.
- ^ (EN) Blink Tutorial, su arduino.cc. URL consultato il 10 maggio 2011.
- ^ (EN) Accessory Development Kit 2012 Guide, su developer.android.com. URL consultato il 14 dicembre 2012.
- ^ (EN) Donald Melanson, Google announces Android Open Accessory standard, Arduino-based ADK, su engadget.com, Engadget. URL consultato l'11 maggio 2011.
- ^ (EN) Hardware, su arduino.cc. URL consultato il 10 maggio 2011.
Collegamenti esterni
- (EN) Sito ufficiale
- (EN) Arduino wiki, aka Playground
- gioblu.com - Tutorials e guide Arduino in italiano
- Tutorial e guide con codici da scaricare per programmare con Arduino
- (EN) Tutorial completo su Arduino
- (EN) Make: Articolo su Arduino
- (EN) "Wiring" software project
- di Arduino su Flickr
- (EN) Arduino tutorial – diviso in molte lezioni con fotografie e suggerimenti e per strumenti appropriati per principianti
- (EN) Introduction to the Arduino - Weekend Project Podcast
- (EN) Sheepdog Software's Introduction to Arduino: Pagine "per iniziare" e tutorial sulla programmazione con aiuto sull'hardware
- Arduino e Actionscript Tutorial – Video, immagini e sorgenti per realizzare progetti con Arduino alcuni dei quali con integrazione Flash e Flex
- (PT) Tutorial di Arduino – in portoghese, ma con video e codici sorgente
- (EN) Esempi estremamente documentati per l'implementazione di componenti elettronici – (Fritzing - sviluppato dai partecipanti all'"Interaction Design Lab" della Università di scienze applicate di Potsdam, Germania)
- (EN) Minibloq – ambiente di sviluppo integrato per Arduino
- Elettronica IN - Primi Passi con Arduino UNO (Libro in italiano)
- Mauro Alfieri, tutorial e progetti con codici spiegati passo passo - in Italiano