L’IDE di Arduino e il primo programma

Arduino offre un ambiente di sviluppo integrato (IDE, Integrated Development Environment) per creare, modificare, verificare e caricare i nostri programmi sulla scheda elettronica di destinazione. A differenza di altri più blasonati ambienti come Eclipse o Visual Studio, non è dotato di debugger e autocompletamento del codice, tuttavia, pur nella sua semplicità, ha tutti gli strumenti che servono per supportare il programmatore nella creazione dei file di sorgenti del proprio progetto, come ad esempio l’evidenziazione della sintassi e la verifica degli errori.

Nota: la presente guida presuppone nel lettore alcune conoscenze di base del terminale a riga di comando.

Installazione dell’IDE su sistemi linux Debian based

In questa guida mostrerò come installare l’ambiente di sviluppo sulla distribuzione linux che sto usando attualmente, una Linux Mint 19.2 Cinnamon, ma i vari passaggi saranno validi per tutte le distro Debian based (e molto probabilmente su tutte le distro linux a 64 bit più recenti).

Scarichiamo l’archivio dalla pagina ufficiale e apriamolo con il software preinstallato, oppure da un terminale digitando i seguenti comandi (il testo che segue il carattere # è un commento esplicativo e non viene eseguito dalla shell):

cd /home/<nome_utente>/Scaricati #spostiamoci nella cartella di scaricamento
tar xvf arduino-1.8.12-linux64.tar.xz #scompattiamo l'archivio
cd Linux Mint 19.2 Cinnamon #entriamo nella cartella appena scompattata
./install.sh #eseguiamo lo script di installazione

Una volta installato l’IDE, possiamo aprirlo con un doppio click sull’icona presente sul desktop per dare un primo sguardo introduttivo.

Ci troveremo di fronte alla finestra dell’editor:

Ide e sketch Arduino

Notiamo subito alcuni dettagli, tra i quali:

  • L’intestazione della finestra, che mostra il nome del file sorgente da salvare (in gergo detto sketch), schetch_mar18a, e la versione dell’IDE, in questo caso la 1.8.12
  • Alcuni menu a tendina (File, Modifica, Sketch, Strumenti, Aiuto), contenenti a loro volta dei sotto menu
  • Una toolbar con dei tasti di comodità, nell’ordine Verifica, Carica, Nuovo, Apri, Salva e allineato a destra, il tasto Monitor Seriale
  • Un tab dell’editor con il file di sorgenti contentente le funzioni setup() e loop()

Prima di esplorare alcune di queste funzionalità con il nostro primo programma, dovremo impostare i permessi sulla porta seriale. Colleghiamo quindi la nostra scheda Arduino Uno al pc tramite un cavo usb, poi apriamo di nuovo una shell, digitando il comando:

ls -l /dev/ttyACM*

che dovrebbe restituirci il seguente output:

crw-rw---- 1 root dialout 166, 0 mar 18 16:42 /dev/ttyACM0

di cui ci interessa il gruppo dialout, a cui dobbiamo assegnare il nostro utente di sistema, digitando:

sudo usermod -a -G dialout $USER

oltre a ciò, per evitare errore di accesso negato alla porta seriale, dovremo dare i permessi di lettura/scrittura, in questo modo:

sudo chmod a+rw /dev/ttyACM0 

Adesso siamo pronti per scrivere il nostro sketch per Arduino.

Il primo programma Arduino

Abbiamo già visto che l’editor dell’ambiente di sviluppo si apre con due funzioni vuote, setup() e loop(), richieste da Arduino per eseguire il nostro codice, in particolare

  • setup(), viene eseguita una sola volta quando la scheda viene collegata all’alimentazione; al suo interno vengono di solito inserite istruzioni di setup di ingressi, uscite, porta seriale, parametri vari ecc.
  • loop(), viene eseguita in un ciclo infinito; al suo interno vengono poste le istruzioni dei compiti che il microcontroller dovrà espletare

Scriviamo quindi le seguenti istruzioni all’interno di setup(), in uno sketch che dovrebbe apparire nel modo seguente:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); //impostiamo il baudrate della porta seriale
  Serial.println("Hello world!"); //stampiamo sulla porta il testo 'ciao mondo'
}

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

Alla riga 3, come anticipato nel commento, impostiamo il baud rate della porta seriale, e cioè il parametro che determina la velocità della trasmissione dei dati, espresso in bit al secondo. Alla riga 4, stampiamo la stringa “Hello world”.

Compilazione e caricamento dello sketch Arduino

Adesso che il nostro file sorgente è pronto, premiamo il tasto Verifica, che, oltre a controllare la presenza di errori nel codice, lo compila convertendolo in codice macchina “comprensibile” al chip Atmega.

A compilazione completata, la finestra dell’IDE mostrerà in basso un messaggio simile a questo

Lo sketch usa 1486 byte (4%) dello spazio disponibile per i programmi. Il massimo è 32256 byte.
Le variabili globali usano 200 byte (9%) di memoria dinamica, lasciando altri 1848 byte liberi per le variabili locali. Il massimo è 2048 byte.

Non ci resta che caricare il tutto sulla scheda Arduino Uno. Premiamo il tasto Carica, che si occuperà appunto di caricare il codice compilato; l’ambiente dovrebbe essere in grado di scegliere automaticamente la scheda e la porta seriale; possiamo comunque verificarne le impostazioni andando sul menu Strumenti -> Scheda , selezionando la voce di nostro interesse, e Strumenti -> Porta.

A caricamento avvenuto, riceveremo il messaggio:

Lo sketch usa 1486 byte (4%) dello spazio disponibile per i programmi. Il massimo è 32256 byte.
Le variabili globali usano 200 byte (9%) di memoria dinamica, lasciando altri 1848 byte liberi per le variabili locali. Il massimo è 2048 byte.

Premendo il tasto Monitor Seriale a destra, vedremo il risultato del nostro primo programma:

Come esercizio per il lettore, propongo di spostare la riga 4 all’interno della funzione loop e di verificare con i propri occhi il risultato. Quante volte viene eseguita l’istruzione di stampa?.

Conclusioni

In questo articolo ci siamo addentrati alla scoperta dell’ambiente di sviluppo offerto da Arduino, installandolo su un sistema linux e scrivendo il nostro primo sketch. Ne abbiamo visualizzato l’output su monitor seriale. Prossimamente esploreremo i tipi di dato e l’acquisizione di input dalla porta seriale.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.