Installare Arduino CLI su Raspberry Pi

Arduino CLI è un software che consente la creazione e l’upload di sketch Arduino direttamente da riga di comando, senza usare l’IDE. Questo consente di poter collegare un Raspberry Pi ad un Arduino, installare tutto il necessario e riprogrammarlo da remoto a proprio piacimento. In questo articolo vediamo come fare ad installare Arduino CLI su di un Raspberry Pi.

È bene sottolineare che per qualsiasi approfondimento o chiarimento è possibile consultare le guide ufficiali messe a disposizione da Arduino al seguente link.

Come installarlo

Apriamo una console su Raspberry Pi e scarichiamo lo script che si occuperà del download di Arduino CLI:

				
					curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
				
			

Arduino CLI consiste in un unico file chiamato arduino-cli. Spostiamolo in una cartella denominata Arduino e rendiamolo eseguibile:

				
					mv bin/ Arduino/
cd Arduino/
chmod a+x arduino-cli
				
			
La prima cosa da fare dopo l’installazione è aggiornare l’elenco delle board supportate con le relative toolchain di compilazione, nonchè delle librerie software disponibili:
				
					sudo ./arduino-cli core update-index
Updating index: package_index.json downloaded
				
			

Una volta terminato l’aggiornamento del core, aggiungiamo il supporto alle schede con microprocessore AVR, come ad esempio Arduino UNO, Arduino Nano, ecc.

				
					sudo ./arduino-cli core install arduino:avr
				
			

Qualora si volesse esaminare l’elenco delle board disponibili all’installazione, basta digitare il seguente comando:

				
					sudo ./arduino-cli core search
				
			

Se si è indecisi su che tipo di board si possiede, è sufficiente collegarla al Raspberry Pi via USB, digitare il seguente comando ed esaminarne l’output:

				
					sudo ./arduino-cli board list
Port         Type              Board Name              FQBN                 Core
/dev/ttyACM1 Serial Port (USB) Arduino/Genuino MKR1000 arduino:samd:mkr1000 arduino:samd

				
			

Compilare il primo sketch

Creiamo il nostro primo sketch, il classico blink, con il comando:

				
					sudo ./arduino-cli sketch new Blink
				
			

Verrà creata la cartella Blink con dentro il file Blink.ino. Editiamo il documento e mettiamoci il classico codice per il blink:

				
					nano Blink/Blink.ino

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}
				
			

Salviamo il file con Ctrl+O e chiudiamo con Ctrl+X. A questo punto compiliamo il tutto con:

				
					sudo ./arduino-cli compile --fqbn arduino:board_name Blink/
				
			

Supponendo che abbiate un Arduino Uno, il comando diventa:

				
					sudo ./arduino-cli compile --fqbn arduino:avr:uno Blink/
				
			

Upload dello sketch

Collegate la vostra board al Raspberry Pi via USB e siamo pronti per caricare lo sketch con il seguente comando:

				
					sudo ./arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:board_name Blink/
				
			

Supponendo di voler eseguire l’upload su di un Arduino Uno, il comando diventa:

				
					sudo ./arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:uno Blink/
				
			

Installare le librerie

Ovviamente per il vostro sketch avrete bisogno di aggiungere maggiori funzionalità, quindi occorre attingere alle librerie messe a disposizione da Arduino. Per cercare la libreria di cui avete bisogno, eseguite il comando:

				
					sudo ./arduino-cli lib search library_name
				
			

Per installare la libreria, useremo il seguente comando:

				
					sudo ./arduino-cli lib install library_name
				
			

Ad esempio, se volessimo verificare la disponibilità della libreria FTDebouncer, la cercheremmo con il comando:

				
					sudo ./arduino-cli lib search debouncer
Name: "Debouncer"
    Author: hideakitai
    Maintainer: hideakitai
    Sentence: Debounce library for Arduino
    Paragraph: Debounce library for Arduino
    Website: https://github.com/hideakitai
    Category: Timing
    Architecture: *
    Types: Contributed
    Versions: [0.1.0]
Name: "FTDebouncer"
    Author: Ubi de Feo
    Maintainer: Ubi de Feo, Sebastian Hunkeler
    Sentence: An efficient, low footprint, fast pin debouncing library for Arduino
    Paragraph: This pin state supervisor manages debouncing of buttons and handles transitions between LOW and HIGH state, calling a function and notifying your code of which pin has been activated or deactivated.
    Website: https://github.com/ubidefeo/FTDebouncer
    Category: Uncategorized
    Architecture: *
    Types: Contributed
    Versions: [1.3.0]
Name: "SoftTimer"
    Author: Balazs Kelemen <prampec+arduino@gmail.com>
    Maintainer: Balazs Kelemen <prampec+arduino@gmail.com>
    Sentence: SoftTimer is a lightweight pseudo multitasking solution for Arduino.
    Paragraph: SoftTimer enables higher level Arduino programing, yet easy to use, and lightweight. You are often faced with the problem that you need to do multiple tasks at the same time. In SoftTimer, the programmer creates Tasks that runs periodically. This library comes with a collection of handy tools like blinker, pwm, debouncer.
    Website: https://github.com/prampec/arduino-softtimer
    Category: Timing
    Architecture: *
    Types: Contributed
    Versions: [3.0.0, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.5, 3.2.0]
				
			

A questo punto, se volessimo installare la libreria “FTDebouncer” dovremmo scrivere:

				
					sudo ./arduino-cli lib install FTDebouncer
				
			
Crediti per le immagini: Craig Dennis