#5 – Installazione Software Arduino

Prima di proseguire, occorre installare il software per la programmazione di Arduino. Si chiama “Arduino IDE“, e si può scaricare a questo indirizzo.

Esiste una versione Web, e una versione da scaricare. Io consiglio di installare il tutto localmente sul vostro PC, così da avere sempre sotto mano i vostri progetti.

Il Setup contiene l’ambiente di sviluppo del codice, il compilatore, e il driver necessario per comunicare con la vostra scheda Arduino, di qualsiasi modello.

Utilizzeremo l’ambiente di sviluppo per scrivere il codice, mentre il compilatore si occuperà di trasformare il vostro codice nel vero eseguibile, che poi verrà letto ed eseguito dal microcontrollore della vostra scheda Arduino.

Infatti i microcontrollori, come i processori dei vostri computer, non funzionano certo leggendo il codice testuale che avete scritto! Prossimamente, introdurrò un articolo specifico al riguardo, per i più curiosi, dove andremo ad indagare cosa effettivamente si nasconde dietro a questa “magia”.

Una volta creato l’eseguibile, verrà trasferito e avviato sulla vostra scheda grazie al driver.

Tutti questi passaggi avverranno in automatico alla pressione di un pulsante, quindi non preoccupatevi.

Connessione Arduino al Computer

Per prima cosa, colleghiamo la nostra scheda Arduino al Computer. In questa guida facciamo riferimento al modello Arduino UNO, anche se in ogni caso le schede Nano, UNO, e Mega si assomigliano molto.

Oltre alla scheda, vi servirà un cavetto USB.

Scheda Arduino UNO
Cavetto USB

Inserire una estremità del cavetto nella scheda, mentre l’altra estremità in una porta USB del computer. Sulla scheda, la spia “ON” dovrebbe illuminarsi di verde.

Procedete quindi con l’installazione del programma Arduino IDE.

Primo avvio

Una volta installato il programma seguendo i semplici passaggi di routine, procedete ad avviarlo, tramite gli appositi collegamenti. Vi troverete davanti questa schermata:

Arduino IDE, schermata iniziale
Schermata Iniziale Arduino

Nel centro della schermata, scriveremo il nostro codice. Come potete notare, sono già presenti due funzioni. Queste funzioni hanno compiti particolari, che approfondiremo nei prossimi paragrafi.

Una volta scritto il codice, per verificare se è corretto clicchiamo sul pulsante Verifica:

Pulsante Verifica

In basso a destra, potete vedere il modello della scheda Arduino per cui poi compilerete il codice, e la porta seriale assegnata alla scheda dal sistema operativo che state utilizzando:

Impostazioni invio

Se questa configurazione è giusta, con il pulsante Invia potrete inviare il codice compilato alla vostra scheda, che inizierà ad eseguirlo:

Pulsante Invia

Configurazione

Ovviamente, se è la prima volta che aprite il programma, non sarà correttamente configurato. Per configurarlo, andare in “Strumenti“.

Schermata Strumenti

Selezionate il modello del vostro Arduino dalla lista.

Per alcuni modelli, possono essere disponibili più versioni del processore. Questo può capitare specialmente se non utilizzate una scheda originale, ma un clone.

Lasciate quello di default, e se non riuscirete a comunicare con la scheda, provate a cambiarlo (ovviamente il modo più scientifico sarebbe cercarlo nelle specifiche del vostro prodotto).

A questo punto, nel sotto-menu “Porta”, selezionate la porta seriale tra quelle dell’elenco. Tra quelle, soltanto una sarà quella di Arduino.

Se utilizzate una scheda di Arduino originale, dovreste notare di fianco ad una delle “COM” anche il nome del vostro modello. In questo caso, selezionate quella porta.

Altrimenti, tenere presente che:

  • Se il vostro computer ha una porta seriale fisica, probabilmente vedrete COM1. Se avete altre opzioni, questa porta scartatela.
  • Se avete un adattatore Bluetooth, probabilmente avrete anche una porta COM3/COM4. Se avete altre opzioni, questa porta scartatela.

A tentativi dovreste riuscire a trovare la vostra porta.

Come fate a capire se le vostre impostazioni sono corrette? Semplicemente inviando il codice vuoto ad Arduino, tramite il pulsante Invia. Se nella schermata nera in basso non compaiono errori in arancione/rosso, è tutto okay!

Funzione Setup

Come anticipato, si tratta di una delle speciali funzioni presenti in Arduino.

La funzione Setup viene eseguita una volta soltanto all’avvio della scheda. È qui che metteremo le configurazioni dei Pin di I/O (Ingressi/Uscite) della scheda.

I Pin di Arduino sono infatti sia ingressi che uscite a livello hardware. All’avvio, dobbiamo spiegare alla scheda che “direzione” deve avere un particolare Pin che vogliamo utilizzare (ovvero se ci limiteremo a leggerlo, o dovremo anche comandarlo).

Impostazione Pin

Su Arduino Uno, sono presenti 14 Pin I/O e 6 Analogici.

  • I pin di I/O, sono pin Digitali – ovvero possono assumere solo il valore logico 1 e 0, che poi convertono a livello hardware rispettivamente in una tensione sul pin di +5V e 0V, rispetto al pin GND della scheda (se non è chiaro lo vedremo nella prossima guida sulle basi dell’elettrotecnica).
  • I pin Analogici permettono di mappare la tensione in ingresso del pin (da 0V a +5V) su un intervallo numerico (una variabile int) tra 0 e +1024 (a seconda del modello). Altrimenti, possono essere usati come ingressi e uscite digitali.
Pinout Arduino UNO. www.pighixxx.com CC BY-SA 4.0, Link

Su Arduino sono permesse 3 diverse configurazioni per ogni Pin (vale sia per i digitali che per gli analogici):

  • INPUT: vogliamo leggere il valore della tensione su questo pin
  • OUTPUT: vogliamo regolare la tensione su questo pin
  • INPUT_PULLUP: come Input, ma tiene in stato “alto” (+5V) il pin, quando questo è scollegato (vedremo poi cosa significa e a cosa serve)

Per configurare un pin, utilizziamo la funzione

void pinMode(pin, mode);

Scrivendo al posto di “pin” il numero del pin (tra 0 e 13 per i pin digitali, da A0 ad A5 per quelli analogici), e come “mode“, una delle tre configurazioni indicate sopra.

Esempio:

pinMode(5, INPUT); //Imposta il Pin 5 come ingresso
pinMode(7, OUTPUT); //Imposta il Pin 7 come uscita
pinMode(A0, INPUT); //Imposta il Pin analogico 0 come ingresso

È importante specificare in Setup le configurazioni corrette di tutti i pin che andremo ad utilizzare. Saltare questo passaggio non permetterà al vostro codice di funzionare correttamente (e vi porterà a perdere molto tempo per capire cosa avete sbagliato).

Funzione Loop

Viene chiamata dopo la funzione Setup, e – come suggerisce il nome – viene continuamente eseguita finché la scheda è accesa. È la funzione in cui dovete agganciare tutte le vostre funzioni, affinché vengano effettivamente eseguite.

Esempio di Codice

/*
 *  Questo è un commento multiriga, utile per scrivere informazioni
 *  sulle funzioni che di volta in volta tratteremo.
 *  È importante commentare bene il codice, perché quando riprenderete
 *  tra le mani i vostri progetti, impiegherete la metà del tempo a
 *  capire cosa stavate facendo e dove mettere le mani
 */

//Mettiamo sempre le definizioni delle costanti in testa al codice
#define PIN_LED 10

void setup() {
  // Poiché vogliamo accendere e spegnere il led, il Pin PIN_LED
  // deve essere impostato come uscita
  pinMode(PIN_LED, OUTPUT);
}

void loop() {
   //Continuiamo a chiamare la funzione che ci interessa
   ControllaLed();
}

void ControllaLed(){
  //Codice
  //Come già anticipato, poiché il tiporestituito è void, non metto return;
}

Proseguiamo ora parlando del controllo di flusso.