Arduino/usiamo scons su gentoo

Da PNLUG.

<< Arduino

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 (dunque indipendente da piattaforma. Funziona anche su windows). 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!!!

<< Arduino