Arduino/usiamo scons su gentoo
A dirla tutta, arscons è comodo anche se non usate gentoo.
Che cos'è arscons? è un ambiente di compilazione per Arduino.
Infatti, per usare Arduino serve precompilare il software su un computer esterno, perché non è disponibile un compilatore integrato.
Da https://code.google.com/p/arduino si può ricavare un insieme di tool che comprende sia alcune librerie fondamentali, sia un'ide dedicato scritto in java. Forse, per un principiante, è meglio evitare l'ide e attrezzarsi in riga di comando.
Un ottimo strumento per programmare Arduino in linea di comando, evitando le ide degli sviluppatori esperti, è senza dubbio arscons.
Si tratta di un semplice script in linguaggio python. Si usa così:
- Installare, con gli strumenti della propria distribuzione, il programma scons di cui a questa pagina web:
http://www.scons.org/
- Creare una cartella:
mkdir -p ~/arduino/mioSketch;cd ~/arduino/mioSketch
- Scaricare arscons:
wget https://raw.github.com/suapapa/arscons/master/SConstruct
- creare uno sketch con nome identico alla cartella attuale e con estensione .ino:
wget https://raw.github.com/suapapa/arscons/master/arscons.ino -O mioSketch.ino
- Aggiustare un paio di variabili d'ambiente, magari ospitando le righe seguenti nel file ~/.profile:
export EXTRA_LIB="${HOME}/arduino/librerie" export SKETCHBOOK_HOME="${HOME}/arduino" export ARDUINO_BOARD="uno"
- Collegare arduino ed eseguire il comando:
scons upload
Installazione su gentoo
Se usate Gentoo, potete utilizzare questo ebuild.
Copiare il seguente file sul percorso: /etc/layman/overlays/arduPn.xml
(serve app-portage/layman )
<?xml version="1.0" encoding="UTF-8"?> <repositories version="1.0"> <repo priority="50" quality="experimental" status="unofficial"> <name>arduPn</name> <description>piccoli ebuild personali</description> <homepage>http://cloc3.dyndns.org/arduPn</homepage> <owner> <email></email> <name></name> </owner> <source type="tar">http://www.cloc3.net/arduPn/arduPn.tar.bz2</source> </repo> </repositories>
Aggiungere il repository con il seguente comando:
$ layman -f -a arduPn
Compilare con:
$ emerge -av arscons
La compilazione dovrebbe interessare i seguenti pacchetti:
dev-python/pyserial dev-embedded/avrdude dev-embedded/arduino app-vim/arduino-syntax
Ed ora, se necessario:
- Scegliere le use flag utili per le proprie necessità ( ftdi, in particolare).
- Modificare il file /etc/env.d/11arduino (se non si utilizza arduino UNO).
- Integrare una regola di udev nella cartella /etc/udev/rules.d sul modello del file /lib/udev/rules.d/99-arduino.rules.
- Aggiungere il proprio utente al gruppo uucp.
Cominciamo ora a testare l'installazione, come semplici utenti.
Nella cartella utente, aggiungiamo le righe seguenti righe:
export EXTRA_LIB="${HOME}/arduino/librerie" export SKETCHBOOK_HOME="${HOME}/arduino"
Generiamo le cartelle di lavoro:
$ mkdir -p ${HOME}/arduino/librerie $ mkdir ${HOME}/arduino/lucciola $ cd ${HOME}/arduino/lucciola $ ln -s /usr/share/arduino/arscons/SConscruct ./ # vedi il readme in /usr/share/arduino/arscons/README.md.bz2
Generiamo un file di test con il comando seguente:
$ cat >lucciola.ino <<EOF // This is just a mockup sketch for test scons works #define PIN_LED 13 void setup(void) { pinMode(PIN_LED, OUTPUT); } void loop(void) { digitalWrite(PIN_LED, HIGH); Serial.println("Acceso"); delay(1000); digitalWrite(PIN_LED, LOW); Serial.println("Spento"); delay(1000); } EOF
colleghiamo ora il nostro arduino alla connesione usb e inseriamo un led con il polo positivo sul pin 13 e il polo negativo a terra.
digitiamo i comandi:
$ scons upload $ miniterm.py -b 115200 /dev/arduino
E Allegria!!!