Archivi tag: Sketch

Arduino per tutti parte quarta: si inizia a programmare (finalmente!)

Benritrovati nella rubrica Arduino per tutti che ritorna dopo una parentesi sul Raspberry. D’ora in poi, le due rubriche si alterneranno in modo abbastanza prevedibile al ritmo di un post a settimana (si spera…).
Finalmente, dopo la presentazione della scheda, l’installazione e la configurazione dell’IDE di Arduino, possiamo iniziare a programmare la nostra scheda di prototipazione.
Come inizia qualsiasi libri di programmazione che si rispetti? Ma con l’esempio base: l’”hello world” che tutti abbiamo imparato a conoscere (e temere).
In questo, Arduino e le schede consimili sono differenti, perché, ovviamente, non esiste “hello world”, nel senso che non è compito di una scheda di prototipazione produrre testi su un video. E allora?
L’equivalente nel mondo Arduino del programma hello world è Blink, ovvero l’accensione e lo spegnimento controllati del led della scheda stessa.

Prima di iniziare, diamo un’occhiata alla schermata dell’IDE che abbiamo già visto nella puntata precedente. Appena avviato, l’IDE apre in automatico un nuovo sketch. Appena aperto, lo sketch contiene sostanzialmente pochi elementi.

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:

}

Analizziamoli con calma.
Innanzitutto la dichiarazione “void” seguita da un identificativo (ad esempio setup()), è il nome con cui il linguaggio di programmazione “chiama” le variabili, cioè quegli elementi cui è possibile dare un valore di tipo statico (dato una volta e per sempre) o dinamico (il valore può essere assegnato durante l’esecuzione del codice). Qui ne troviamo due:
setup e loop.
La prima individua le operazioni che devono essere compiute una volta all’avvio del programma, l’altra quelle che devono essere compiute più volte in corso d’opera e più volte.
Il testo inserito dopo // invece è il commento del programmatore. Come si può vedere, ogni variabile ha un suo contenuto che deve essere appunto “contenuto” all’interno di due parentesi graffe {}.
Tutto qui. Come si vede, ci vuole poco.
E ora al nostro blink.
Molte schede Arduino contengono già preinstallato nel bootloader il blink. Tuttavia, sia nel caso non ci sia, sia nel cado ci sia, è bene osservare come sia possibile modificare la temporizzazione della scheda di prototipazione.
Innanzitutto, facciamo in modo che, all’avvio, la scheda si resetti e consenta di attivare il led (LED_BUILTIN, cioè il led preinstallato) e modificarne il comportamento (chiamando il comando OUTPUT). Inseriamo quindi nella void setup() il seguente codice:
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

Ora, inizializzato il led, occorre stabilire la variabile loop().
Attiviamo il temporizzazione digitale passandogli, fra parentesi tonda, l’indicatore a cui collegare la temporizzazione e il comando da eseguire, avendo cura di chiudere la parentesi tonda e l’intera stringa con il punto e virgola (;). Ecco il codice relativo:
digitalWrite(LED_BUILTIN, HIGH);
HIGH si riferisce al voltaggio, indica che la corrente viene trasmessa al led che si accende. Similmente, per spegnere il led basterà sostituire, nell’istruzione più sopra, HIGH con LOW e il led, come per magia, si spegnerà. Ora, però, a noi serve fare in modo che il led lampeggi (to blink in inglese) non che si accenda e si spenga immediatamente.
Occorre quindi inserire la stringa che controlla la temporizzazione. Il comando per temporizzare un’azione del componente è delay(). Nella parentesi inseriamo il ritardo dell’operazione, in millisecondi (cioè, se vogliamo ritardare l’operazione di 1 secondo, occorre inserire nella parentesi 1000 e così via).
Dunque il nostro codice per il lampeggiare del led è:
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}

Ora il nostro sketch è pronto per l’uso, dobbiamo caricarlo sulla scheda perché si attivi all’avvio.
Fra le scelte rapide, premiamo il primo pulsante e verifichiamo che il nostro sketch funzioni (non si sa mai).
Ora bisogna inviare lo sketch sulla Arduino. Premiamo il pulsante “Carica” (il secondo da sinistra) e l’IDE procederà ad installare lo sketch sulla scheda. Ecco fatto, abbiamo finito.
Alla prossima…

Arduino per tutti parte terza: IDE o non IDE

Una volta installato, l’IDE si presenta in modo molto spartano, con un’interfaccia semplice, composta da:
1) Menu a tendina,
2) Pulsanti rapidi,
3) l’area di scrittura del codice e
4) l’area dei messaggi, in basso (Fig. 1).

Fig. 1. Pagina iniziale dell'IDE
Fig. 1. Pagina iniziale dell’IDE

Esaminiamo attentamente ciascun settore.
I pulsanti rapidi sono destinati alle azioni più comuni e ripetitive. Da sx verso dx sono, rispettivamente:
verifica,
carica,
nuovo,
apri,
salva,
monitor seriale (controllo delle porte e debug collegamenti, all’estrema destra).
Il menu a tendina contiene le voci:
File,
Modifica,
Sketch,
Strumenti,
Aiuto.

Le voci più interessanti sono sicuramente Sketch e Aiuto.
In Sketch, oltre all’ovvia voce verifica/compila, duplicata nelle scelte rapide, sono interessanti le voci “include libreria”, che consente di includere librerie esterne e quindi ampliare le possibilità di collegamento ed utilizzo della scheda Arduino, e la voce “Esporta sketch compilato”, che consente di trasferire e condividere solo lo sketch, per eventuali correzioni o prove.

Il menu Aiuto è molto variegato. Vi compaiono gli Aiuti relativi al programma, ma anche alle schede di espansione Galileo ed Edison.
Un discorso a parte merita la voce “Strumenti”, che contiene alcune voci fondamentali per il corretto funzionamento dell’IDE. Occorre infatti, prima di lanciare per la prima volta uno sketch, controllare la connessione alla porta seriale (“Monitor seriale”) e indicare con quale delle numerose schede Arduino-like si intende lavorare (Scheda: “Arduino-Genuino”).
Ecco, ora siamo pronti per iniziare a lavorare con la nostra Arduino.
Ops, peccato, il tempo e lo spazio a nostra disposizione sono scaduti.
Beh, alla prossima, gente!