Programmare Arduino con “ino” da terminale

 
In questo articolo vi mostrerò come è possibile creare uno sketch per Arduino con un text editor e quindi compilare il programma sorgente e inviarlo ad Arduino usando un emulatore di terminale.


Requisiti

Per poter compilare i programmi correttamente avrete bisogno del programma arduino e di avr-gcc. Entrambi i pacchetti sono installabili mediante pacman nelle Arch-based.


Installazione

Prima di tutto avrete bisogno di installare “ino” che si trova in AUR, quindi da terminale:

yaourt -Sy ino


Scriviamo un semplice programma

Una volta installato il programma, possiamo passare alla scrittura del nostro codice.

Create una cartella che contenga tutti i vostri sketch, ad esempio in home:

mkdir ~/test

e quindi accedeteci:

cd ~/test

Il consiglio è quello di organizzare i vostri sketch in cartelle dando un nome riconoscibile a ogni cartella e magari raccogliere tutti i programmi in un’ unica cartella magari chiamandola sketchbook, ovviamente siete liberi di fare quello che volete e di organizzare i vostri sketch come meglio credete.

Siamo quindi pronti a inizializzare il nostro nuovo progetto:

ino init

Il comando crea due cartelle, una src e una cartella lib; dentro src dovremo inserire il nostro codice, ino provvede a creare un file con estensione .ino chiamato sketch vuoto, possiamo dunque usare direttamente quel file.

Possiamo procedere alla scrittura del programma, usate l’editor di testo che più vi piace, che sia testuale oppure da linea di comando.
Io ad esempio modifico il file con vi:

vi ~/test/src/sketch.ino

Vi troverete un file vuoto con soltanto le funzioni setup e loop come di seguito:

void setup()
{
}

void loop()
{
}

passiamo quindi alla scrittura del nostro codice, facciamo lampeggiare un led sul pin 4 del nostro Arduino:

int ledPin = 4;
void setup()
{
pinMode(ledPin, OUTPUT);
}

void loop()
{
digitalWrite(ledPin, HIGH);
delay (500);
digitalWrite(ledPin, LOW);
delay (500);
}

passiamo alla compilazione del programma, da terminale:

ino build

l’output dovrebbe essere simile al seguente:

ino build
Searching for Board description file (boards.txt) ... /usr/share/arduino/hardware/arduino/boards.txt
Searching for Arduino lib version file (version.txt) ... /usr/share/arduino/lib/version.txt
Detecting Arduino software version ... 1.0.5 (1.0.5)
Searching for Arduino core library ... /usr/share/arduino/hardware/arduino/cores/arduino
Searching for Arduino standard libraries ... /usr/share/arduino/libraries
Searching for Arduino variants directory ... /usr/share/arduino/hardware/arduino/variants
Searching for make ... /usr/bin/make
Searching for avr-gcc ... /usr/bin/avr-gcc
Searching for avr-g++ ... /usr/bin/avr-g++
Searching for avr-ar ... /usr/bin/avr-ar
Searching for avr-objcopy ... /usr/bin/avr-objcopy
src/sketch.ino
Searching for Arduino lib version file (version.txt) ... /usr/share/arduino/lib/version.txt
Detecting Arduino software version ... 1.0.5 (1.0.5)
Scanning dependencies of src
Scanning dependencies of arduino
src/sketch.cpp
arduino/wiring_analog.c
arduino/wiring_pulse.c
arduino/avr-libc/realloc.c
arduino/avr-libc/malloc.c
arduino/wiring_shift.c
arduino/wiring.c
arduino/wiring_digital.c
arduino/WInterrupts.c
arduino/WMath.cpp
arduino/USBCore.cpp
arduino/main.cpp
arduino/IPAddress.cpp
arduino/Tone.cpp
arduino/new.cpp
arduino/Stream.cpp
arduino/HID.cpp
arduino/Print.cpp
arduino/WString.cpp
arduino/CDC.cpp
arduino/HardwareSerial.cpp
Linking libarduino.a
Linking firmware.elf
Converting to firmware.hex

Durante la fase di compilazione verranno segnalati anche gli eventuali errori di compilazione e la linea che ha prodotto l’errore in questione.

Bene, possiamo dunque procedere all’upload del nostro programma su Arduino, colleghiamo quindi il nostro dispositivo al computer e digitiamo:

ino upload

E il nostro programma verrà caricato sul nostro Arduino.

Ecco fatto. Se avete necessità di stampare serialmente dei dati, basta digitare una volta caricato il programma sulla board:

ino serial

e nell’emulatore di terminale verrà visualizzato il monitor seriale. Nulla di più semplice. 🙂

Published by

Chaosphere

Appassionato di Linux dal 2010, scrivo quando ho del tempo libero a disposizione e lo faccio per passione e per diletto personale.

HTML Snippets Powered By : XYZScripts.com