Arduino/usiamo scons su gentoo: differenze tra le versioni

Da PNLUG.
(sistemazione codice)
m (windows (:)
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Per usare Arduino serve precompilare il software su un computer esterno, perché non è disponibile un compilatore integrato.
+
[[Arduino|<< Arduino]]
 +
<div style="text-align:justify">
 +
A dirla tutta, <b>arscons</b> è comodo anche se non usate gentoo.<br>
  
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.
+
Che cos'è arscons? è un ambiente di compilazione per Arduino.<br>
 +
Infatti, per usare Arduino serve precompilare il software su un computer esterno, perché non è disponibile un compilatore integrato.
  
Su gentoo, si può integrare questo overlay artigianale per installare [https://github.com/suapapa/arscons scons].
+
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 [https://github.com/suapapa/arscons arscons].<br>
 +
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.<br>
 
Copiare il seguente file sul percorso: /etc/layman/overlays/arduPn.xml<br/>
 
Copiare il seguente file sul percorso: /etc/layman/overlays/arduPn.xml<br/>
 
(serve app-portage/layman )
 
(serve app-portage/layman )
  
<div style="background-color:#f1f1f1">
+
<div style="background-color:#f1f1f Integrare, se neccessario, un regola di udev nella cartella /etc/udev/rules.d sull'esempio del file /lib/udev/rules.d/99-arduino.rules Aggiungere il proprio utente al gruppo uucp. 1">
 
   <?xml version="1.0" encoding="UTF-8"?>
 
   <?xml version="1.0" encoding="UTF-8"?>
 
    
 
    
Riga 28: Riga 52:
  
 
<div style="background-color:#f1f1f1">
 
<div style="background-color:#f1f1f1">
   $ layman -f -a arduPN
+
   $ layman -f -a arduPn
 
</div>
 
</div>
  
 
Compilare con:
 
Compilare con:
  
La compilazione dovrebbe integrare i seguenti pacchetti:
+
<div style="background-color:#f1f1f1">
 +
  $ emerge -av arscons
 +
</div>
 +
 
 +
La compilazione dovrebbe interessare i seguenti pacchetti:
  
 
<div style="background-color:#f1f1f1">
 
<div style="background-color:#f1f1f1">
Riga 42: Riga 70:
 
</div>
 
</div>
  
Scegliere opportunamente le use flag utili per le proprie necessità ( '''ftdi''', in particolare).
+
Ed ora, '''se necessario''':
  
Modificare opportunamente il file /etc/env.d/11arduino se non si utilizza arduino UNO.<br/>
+
* Scegliere le use flag utili per le proprie necessità ( '''ftdi''', in particolare).
Integrare, se neccessario, un regola di udev nella cartella '''/etc/udev/rules.d''' sull'esempio del file '''/lib/udev/rules.d'''/99-arduino.rules
+
* Modificare il file /etc/env.d/11arduino (se non si utilizza arduino UNO).
Aggiungere il proprio utente al gruppo uucp.
+
* 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.
+
Cominciamo ora a testare l'installazione, come semplici utenti.<br/>
 
+
Inseriamo l'utente locale al gruppo uucp.</br>
+
 
Nella cartella utente, aggiungiamo le righe seguenti righe:
 
Nella cartella utente, aggiungiamo le righe seguenti righe:
  
Riga 61: Riga 88:
 
Generiamo le cartelle di lavoro:
 
Generiamo le cartelle di lavoro:
  
<div style="background-color:#f1f1f1"><code>
+
<div style="background-color:#f1f1f1">
 
   $ mkdir -p ${HOME}/arduino/librerie
 
   $ mkdir -p ${HOME}/arduino/librerie
 
   $ mkdir ${HOME}/arduino/lucciola
 
   $ mkdir ${HOME}/arduino/lucciola
Riga 68: Riga 95:
 
</div>
 
</div>
  
Per creare un file di test, utilizziamo il comando seguente:
+
Generiamo un file di test con il comando seguente:
 
<div style="background-color:#f1f1f1">
 
<div style="background-color:#f1f1f1">
 
   $ cat >lucciola.ino <<EOF
 
   $ cat >lucciola.ino <<EOF
Riga 102: Riga 129:
  
 
E Allegria!!!
 
E Allegria!!!
 +
</div>
 +
[[Arduino|<< Arduino]]

Versione attuale delle 22:32, 9 mar 2014

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