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. 🙂