Home » Notizie » How To » Raspberry + Arduino CLI
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
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
Maintainer: Balazs Kelemen
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