Programmare Arduino

2. L'IDE di Arduino

Come facciamo a scrivere i nostri programmi per far funzionare Arduino? e come facciamo poi ad inserirli nella nostra scheda per farli eseguire?

Per eseguire queste funzioni gli ideatori di Arduino hanno realizzato un ambiente di sviluppo che semplifica molto queste operazioni. Questo ambiente di sviluppo può funzionare su tutti i moderni sistemi operativi: windows, linux e mac.

Il file da scaricare è un’archivio zip e una volta scaricato dobbiamo scompattarlo, fatto questo non abbiamo nemmeno bisogno di installarlo per poterlo eseguire.

Adesso che abbiamo il nostro ambiente di sviluppo pronto possiamo lanciarlo per cominciare a conoscerlo.


Nell’immagine sopra possiamo vedere come nell’IDE di Arduino possiamo distinguere tre zone principali: la più evidente, al centro, di colore bianco è l’area che contiene il nostro codice ed anche quindi dove andremo a scriverlo essendo un vero e proprio editor di testo un po’ come quelli a cui siamo abituati (in questo caso preciso editor di codice).

Sopra abbiamo una barra di pulsanti, la barra dei pulsanti per le operazioni principali, che ci permette di effettuare le operazioni necessarie per eseguire il nostro codice nella scheda Arduino.

Infine sotto l’area del codice infine abbiamo una zona dove il software ci potrà comunicare eventuali errori nel nostro codice o altri messaggi necessari.

Se andiamo a guardare più in dettaglio la barra dei pulsanti principale possiamo distinguere le cinque funzioni che essa ci permette:


  • Verifica lo Sketch con questo pulsante possiamo avviare un controllo completo del nostro sketch (programma per Arduino) per vedere se ci sono errori da correggere prima di compilarlo per essere inviato alla scheda
  • Compila e carica lo Sketch questo pulsante serve per compilare (tradurre lo sketch in un codice comprensibile ad Arduino) e caricare sulla scheda il nostro programma per poterlo poi eseguire (naturalmente il nostro Arduino Uno deve essere collegato al pc :D)
  • Nuovo Sketch serve per creare un nuovo sketch da zero
  • Apri Sketch Apre un programma che avevamo precedentemente salvato sul disco
  • Salva Sketch Salva il nostro programma sul disco per futuri riutilizzi

Infine nella parte bassa dell’IDE vediamo la “consolle degli errori” ovvero quella parte dove potremo controllare tutti gli errori che vengono rilevati prima della compilazione.

Vicino la consolle degli errori possiamo trovare altre piccole ma col tempo preziose informazioni ad esempio il modello di scheda Arduino che abbiamo collegato al pc, il nome che il sistema operativo da alla porta USB dove abbiamo collegato Arduino ed il numero di riga corrente del cursore nell’editor del codice.

Per compilare, caricare e lanciare un programma si deve:
⦁    Collegare Arduino al pc mediante un cavo usb. Appena inserito il cavo alcune spie di Arduino si illumineranno, a conferma dell’avvenuto collegamento.
⦁    Copiare (o digitare) il programma nella zona di editing dell’IDE, parzialmente gia’ occupata da alcune istruzioni predefinite (che dovranno  essere cancellate e sostituite dal programma copiato).
⦁    Premere il pulsante di compilazione (la freccia rivolta a destra, piazzata nella riga dei comandi, in alto a sinistra)
⦁    Attendere il completamento della compilazione, rilevabile dalle scritte bianche che compaiono nella parte bassa dell’IDE e dal pulsare, per pochi attimi, dei led di Arduino.

Il programma, una volta compilato viene automaticamente caricato sulla scheda ed a questo punto Arduino inizia immediatamente a lavorare e a compiere le azioni per le quali e’ stato programmato.

Se durante la compilazione appaiono delle segnalazioni di colore rosso/arancione nella zona bassa dell’IDE, significa che qualcosa non è andata bene per cui bisogna interpretare le segnalazioni e provvedere alle necessarie azioni correttive.

Qualche volta, soprattutto al primo utilizzo della scheda, viene proposta una segnalazione di errore poichè la porta usb alla quale è collegato Arduino non è stata correttamente indirizzata dal pc.
Per rimediare è normalmente sufficiente sconnettere e riconnettere il cavo USB e poi rilanciare la compilazione.

​Un programma altro non è che un elenco di istruzioni elementari, che il computer esegue, uno dopo l’altra, in maniera acritica. Nello scrivere un programma si devono rispettare alcune regole ortografiche, grammaticali e sintattiche e si devono mettere in fila le istruzioni in maniera che il computer arrivi, passo dopo passo, esattamente al risultato voluto.

Questo significa che prima di scrivere un programma è indispensabile non solo avere un’idea ben chiara di quale sia l’obiettivo, ma anche di quale sia il percorso per raggiungerlo. Si deve quindi “progettare” un programma, magari dividendolo in parti come ad esempio:
⦁    Acquisizione dati dai sensori: quali sensori analizzare, in quale sequenza e con quali modalità
⦁    Decisioni da prendere, sulla base dei dati provenienti dai sensori
⦁    Attivazione o disattivazione degli attuatori: quali attuatori attivare/disattivare ed in quale sequenza

Struttura di un programma
​Un programma wiring e’ normalmente composto da tre parti separate da due dichiarazioni ( void setup() e void loop() ). La struttura standard di un programma e’ questa:

​/* prima parte, per la dichiarazione delle librerie, delle variabili, delle costanti e per la codifica delle routine e cioe’ parti di codice che vengono eseguite solo quando sono richiamate da una specifica istruzione*/
/* -----( note esplicative sulle finalita’ e sul funzionamento del programma ) -----*/
/*-----( dichiarazione delle eventuali librerie utilizzate dal programma )-----*/
/*-----( dichiarazione degli oggetti utilizzati, ad esempio display a cristalli liquidi o servomotori )---*/
/*-----( dichiarazione delle costanti )-----*/
/*-----( dichiarazione delle variabili )-----*/
/*-----( codifica di eventuali routine )-----*/

void setup()   /* seconda parte o parte di setup, eseguita solo all’avvio del programma*/
{  /* ----( inizio del setup )------*/
/*  ----( dichiarazione delle porte di input e di output )----*/
/*  ----( eventuali istruzioni da eseguire all’avvio del programma )----*/
}/*   ----( fine del setup )---*/

void loop() /*terza parte o parte di loop, parte principale del programma, che viene eseguita e ripetuta fino al termine dell’alimentazione o fino alla pressione del pulsante reset*/
{ /* ----( inizio del loop )----*/
/* ----( istruzioni di programma )-----*/
} / *----( fine del loop )----*/