Arduino IDE

interfaccia di scrittura e caricamento codici per schede arduino.
Versione del 26 giu 2021 alle 13:51 di Valepert (discussione | contributi) (rimuovo didascalia inutilizzata riferita a File:Arduino IDE - v0011 Alpha.png)

L'ambiente di sviluppo integrato (IDE) di Arduino è un'applicazione multipiattaforma in 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 i neofiti, che siano a digiuno di pratica nello sviluppo di software.

Arduino
software
Schermata di esempio
Schermata di esempio
GenereIntegrated development environment
SviluppatoreSviluppatori di Arduino
Ultima versione
  • 1.8.19 (20 dicembre 2021)
  • 2.3.4 (3 dicembre 2024)
Sistema operativoMultipiattaforma
LinguaggioElectron
Java
LicenzaLGPL o GPL
(licenza libera)
Sito webwww.arduino.cc/en/Main/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 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'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 linguaggio derivato dal C/C++, ma all'utilizzatore, per poter creare un file eseguibile, si richiede solo di definire due funzioni:

  • void setup ()
    
    – funzione invocata una sola volta all'inizio di un programma, da utilizzare per i settaggi iniziali che rimarranno invariati durante l'esecuzioni;
  • void loop ()
    
    – funzione invocata ripetutamente, la cui esecuzione si interrompe solo quando si toglie l'alimentazione alla scheda.

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[1]:

#define LED_PIN 13 //definisce la costante LED_PIN, che indicherà il pin 13

void setup () {
  pinMode (LED_PIN, OUTPUT);   // abilita il pin 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) per caricare il programma sulla scheda, 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" // include la libreria WProgram
#define LED_PIN 13 //definisce la costante LED_PIN, che indicherà il pin 13

void setup () {
  pinMode (LED_PIN, OUTPUT);   // abilita il pin 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.

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.[2]

L'ADK, per ora, si basa sulla scheda Arduino Mega2560.[3]

Open hardware e open source

  Lo stesso argomento in dettaglio: 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[4], 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.

Note

  1. ^ (EN) Blink Tutorial, su arduino.cc. URL consultato il 10 maggio 2011.
  2. ^ (EN) Accessory Development Kit 2012 Guide, su developer.android.com. URL consultato il 14 dicembre 2012.
  3. ^ (EN) Donald Melanson, Google announces Android Open Accessory standard, Arduino-based ADK, su engadget.com, Engadget. URL consultato l'11 maggio 2011.
  4. ^ (EN) Hardware, su arduino.cc. URL consultato il 10 maggio 2011.

Altri progetti

Collegamenti esterni