Arduino (software): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Fix wikilink
gay
Etichette: Rimozione di avvisi di servizio Inserimento di parole incomprensibili Sequenze di caratteri ripetuti da parte di un nuovo utente o IP Probabile click accidentale sulla toolbar
Riga 1:
{{Software
|Nome = Arduino
|Logo =
|Screenshot = Arduino IDE - v0011 Alpha.png
|Didascalia = Screenshot dell'[[Integrated development environment|IDE]] di Arduino, che mostra un semplice codice di esempio
|Sviluppatore = Sviluppatori di [[Arduino (hardware)|Arduino]]
|UltimaVersione = 1.8.4<ref name="Release Notes">{{Cita web|url=https://www.arduino.cc/en/Main/Software |titolo=Arduino Software Release Notes |autore=|editore=[[Progetto Arduino]]|accesso= 15 settembre 2017|lingua=en}}</ref>
|DataUltimaVersione = 23 agosto [[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 = http://www.arduino.cc
}}
 
scemoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo'''''Testo in grassetto''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto'''''''''Testo in grassetto''''''''Testo in grassetto''''''Testo in corsivo''''''Testo in corsivo''''''Testo in corsivo''''
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]].
[[File:Si|miniatura|no]]
 
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''<br>
== Caratteristiche ==
<nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><nowiki>Inserisci il testo da non formattare</nowiki><nowiki><br>
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]].
Inserisci il testo da non formattare<br>
 
<br>
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]]:
<br>
 
<big><big>Testo grande</big><big><big>Testo grande</big><big><big>Testo grande</big><big><big>Testo grande</big>
* <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
# Elemento dell'elenco numerato
|Nome = Arduino Studio
#
|Sviluppatore = Sviluppatori di Arduino srl
* Elemento dell'elenco numerato
|UltimaVersione = 0.0.5
*
|DataUltimaVersione = 23 novembre [[2015]]
* Elemento dell'elenco puntato
|UltimaVersioneBeta =
*
|DataUltimaVersioneBeta =
* Elemento dell'elenco puntato
|SistemaOperativo = Multipiattaforma
#
|Linguaggio = [[C]] e [[C++]] e AVR-Assembler (IDE: JavaScript)
* Elemento dell'elenco numerato
|Genere = Ambiente di sviluppo integrato
*
|Licenza = [[LGPL]] o [[GNU General Public License|GPL]]
* Elemento dell'elenco puntato
|SoftwareLibero = sì
#
|Lingua =
# Elemento dell'elenco numerato
|SitoWeb = http://www.arduino.org
#
}}
# Elemento dell'elenco numerato
 
* Elemento dell'elenco puntato
==Esempi di codice==
</big></big></big></big></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki></nowiki>''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
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=http://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=http://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=http://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=http://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 ==
* {{Sito ufficiale|lingua=en}}
* {{cita web|http://www.italiantechproject.it/arduino/|Video tutorial di Arduino in italiano}}
* {{en}} Arduino wiki, ''aka'' [http://www.arduino.cc/playground/ Playground]
* {{cita web|http://www.hacknmod.com/hack/arduino-tutorial-how-to-introduction-guide/|Tutorial completo su Arduino|lingua=en}}
* {{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}}