Arduino IDE: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
sposto da Arduino (software) |
|||
Riga 1:
{{Software
|
|Logo =
|Screenshot = Arduino IDE - v0011 Alpha.png
|
|Sviluppatore = Sviluppatori di [[Arduino (hardware)|Arduino]]
|UltimaVersione = 1.8.5<ref name="Release Notes">{{Cita web|url=https://www.arduino.cc/en/Main/ReleaseNotes |titolo=Arduino Software Release Notes |autore=|editore=[[Progetto Arduino]]|accesso= 28 aprile 2018|lingua=en}}</ref>
|DataUltimaVersione = 29 settembre [[2017]]<ref name="Release Notes"/>
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = Multipiattaforma
|Linguaggio =Java
|Genere = Ambiente di sviluppo integrato
|Licenza = [[LGPL]] o [[GNU General Public License|GPL]]
|SoftwareLibero = sì
|SitoWeb =
}}
L'[[Integrated development environment|ambiente di sviluppo integrato]] (IDE) di '''[[Arduino (hardware)|Arduino]]''' è un'applicazione [[multipiattaforma]] in [[Java (linguaggio di programmazione)|Java]], ed è derivata dall'IDE creato per il [[linguaggio di programmazione]] [[Processing]] e per il progetto [[Wiring]]. È stata creata da [[Massimo Banzi]], David Cuartielles, Tom Igoe, Gianluca Martino, e David Mellis, per iniziare alla [[programmazione (informatica)|programmazione]] i neofiti, che siano a digiuno di pratica nello sviluppo di [[software]].
==
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 [[Compilatore|compilare]] e caricare sulla scheda Arduino 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'[[Integrated development environment|ambiente di sviluppo integrato]] di Arduino è fornito di una [[libreria software]] [[C (linguaggio di programmazione)|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 linguaggio derivato dal C/C++, ma all'utilizzatore, per poter creare un file eseguibile, si richiede solo di definire due [[Funzioni (informatica)|funzioni]]:
* <source lang="c">void setup ()</source> – funzione invocata una sola volta all'inizio di un programma, da utilizzare per i settaggi iniziali che rimarranno invariati durante l'esecuzioni;
* <source lang="c">void loop ()</source> – funzione [[Loop (informatica)|invocata ripetutamente]], la cui esecuzione si interrompe solo quando si toglie l'alimentazione alla scheda.{{Software
|Nome = Arduino Studio
|Sviluppatore = Sviluppatori di Arduino srl
|UltimaVersione = 0.0.5
|DataUltimaVersione = 23 novembre [[2015]]
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = Multipiattaforma
|Linguaggio = [[C]] e [[C++]] e AVR-Assembler (IDE: JavaScript)
|Genere = Ambiente di sviluppo integrato
|Licenza = [[LGPL]] o [[GNU General Public License|GPL]]
|SoftwareLibero = sì
|Lingua =
|SitoWeb = http://www.arduino.org
}}
==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 [[light-emitting diode|LED]]. Nell'ambiente di sviluppo di Arduino, l'utilizzatore potrebbe farlo con un programma come il seguente<ref>{{Cita web |url=https://arduino.cc/en/Tutorial/Blink|titolo=Blink Tutorial|editore=Arduino.cc|lingua=en|accesso=10 maggio 2011}}</ref>:
<source lang="c" line="1">
#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
}
</source>
Scritto in questo modo, il codice non verrebbe riconosciuto come programma valido da un [[compilatore]] C++; per questo motivo, quando l'utilizzatore seleziona il [[Command button|bottone di comando]] "Upload to I/O board" (presente nell'[[Integrated development environment|IDE]]) per caricare il programma sulla scheda, una copia del codice viene automaticamente trascritta in un [[file temporaneo]] con l'aggiunta di un extra [[Header file|include header]] all'inizio del codice e l'implementazione di una semplicissima [[Funzione main|funzione <code>main()</code>]] in basso:
<source lang="c" line="1">
#include "WProgram.h" // include la libreria WProgram
#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;
}
</source>
"WProgram.h" è lo [[header file]] principale per la [[libreria software|libreria]] Wiring. La funzione <code>main()</code>effettua solo tre chiamate, <code>init()</code>, <code>setup()</code> e <code>loop()</code>; le ultime due sono definite dall'utente, mentre la prima è scritta nella libreria stessa. La funzione <code>loop()</code>, come richiesto, è automaticamente nidificata in un [[Loop (informatica)|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==
{{Vedi anche|Minibloq}}
[[File:IR Serial.jpg|thumb|Esempio di codice generato con Minibloq: i dati provenienti da un [[telecomando]] a [[infrarossi]] [[RC5]] sono inviati alla [[porta seriale]]]]
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 [[GNU Compiler Collection|GCC]], si presta a essere utilizzata anche su computer a più basse prestazioni, come [[netbook]]s, [[OLPC]] [[XO-1]], [[Intel]]-[[Classmate PC|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.<ref>{{Cita web |url=https://developer.android.com/tools/adk/adk2.html#adk-conn |titolo=Accessory Development Kit 2012 Guide|lingua=en |accesso=14 dicembre 2012}}</ref>
L'ADK, per ora, si basa sulla scheda Arduino Mega2560.<ref>{{Cita web |url=https://www.engadget.com/2011/05/10/google-announces-android-open-accessory-standard-arduino-based/ |titolo=Google announces Android Open Accessory standard, Arduino-based ADK |autore=Donald Melanson |editore=[[Engadget]] |lingua=en |accesso=11 maggio 2011}}</ref>
== Open hardware e open source ==
{{vedi anche|Hardware libero}}
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<ref name="Hardware Arduino">{{Cita web|url=https://arduino.cc/en/Main/Hardware|titolo=Hardware|editore=Arduino.cc|lingua=en|accesso=10 maggio 2011}}</ref>, 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'[[Integrated Development Environment|ambiente di sviluppo integrato]] e la [[libreria software|libreria]] residente sono invece disponibili, e concessi in uso, secondo i termini legali contenuti nella licenza [[GNU General Public License|GPLv2]].
== Accessori hardware ==
[[File:Protoshield2.jpg|thumb|Uno "shield" di [[prototipizzazione]] montato su una scheda Arduino.]]
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 ==
<references />
== Collegamenti esterni ==
* {{cita web|http://www.italiantechproject.it/arduino/|Video tutorial di Arduino in italiano}}
* {{en}} Arduino wiki, ''aka'' [https://www.arduino.cc/playground/ Playground]
* {{cita web|1=http://www.hacknmod.com/hack/arduino-tutorial-how-to-introduction-guide/|2=Tutorial completo su Arduino|lingua=en|accesso=2 maggio 2009|urlarchivio=https://web.archive.org/web/20090410011012/http://hacknmod.com/hack/arduino-tutorial-how-to-introduction-guide/|dataarchivio=10 aprile 2009|urlmorto=sì}}
* {{cita web|http://downloads.oreilly.com/make/arduinoMAKE07.pdf|Make: Articolo su Arduino|lingua=en}}
* {{en}} [http://www.ladyada.net/learn/arduino/ Arduino tutorial] – diviso in molte lezioni con fotografie e suggerimenti e per strumenti appropriati per principianti
* {{cita web|url=https://makezine.com/2007/09/21/intro-to-the-arduino-week-1/|titolo=Intro to the Arduino – Weekend Project Podcast|editore=[[Makezine]]|autore=Bre Pettis|data=21 settembre 2007|accesso=7 settembre 2017|lingua=en}}
{{portale|informatica|software libero}}
|