Arduino/usiamo scons su gentoo: differenze tra le versioni

Da PNLUG.
(integrazione pagina)
(sistemazione codice)
Riga 9: Riga 9:
  
 
<div style="background-color:#f1f1f1">
 
<div style="background-color:#f1f1f1">
 
+
  <?xml version="1.0" encoding="UTF-8"?>
<code>
+
 
<?xml version="1.0" encoding="UTF-8"?>
+
  <repositories version="1.0">
 
+
    <repo priority="50" quality="experimental" status="unofficial">
<repositories version="1.0">
+
      <name>arduPn</name>
  <repo priority="50" quality="experimental" status="unofficial">
+
      <description>piccoli ebuild personali</description>
    <name>arduPn</name>
+
      <homepage>http://cloc3.dyndns.org/arduPn</homepage>
    <description>piccoli ebuild personali</description>
+
      <owner>
    <homepage>http://cloc3.dyndns.org/arduPn</homepage>
+
        <email></email>
    <owner>
+
        <name></name>
      <email></email>
+
      </owner>
      <name></name>
+
      <source type="tar">http://www.cloc3.net/arduPn/arduPn.tar.bz2</source>
    </owner>
+
    </repo>
    <source type="tar">http://www.cloc3.net/arduPn/arduPn.tar.bz2</source>
+
  </repositories>
  </repo>
+
</repositories>
+
</code>
+
 
</div>
 
</div>
  
Riga 31: Riga 28:
  
 
<div style="background-color:#f1f1f1">
 
<div style="background-color:#f1f1f1">
<code>
+
  $ layman -f -a arduPN
$ layman -f -a arduPN
+
</code>
+
 
</div>
 
</div>
  
Riga 41: Riga 36:
  
 
<div style="background-color:#f1f1f1">
 
<div style="background-color:#f1f1f1">
<code>
+
  dev-python/pyserial
dev-python/pyserial
+
  dev-embedded/avrdude
dev-embedded/avrdude
+
  dev-embedded/arduino
dev-embedded/arduino
+
  app-vim/arduino-syntax
app-vim/arduino-syntax
+
</code>
+
 
</div>
 
</div>
  
Riga 61: Riga 54:
 
Nella cartella utente, aggiungiamo le righe seguenti righe:
 
Nella cartella utente, aggiungiamo le righe seguenti righe:
  
<div style="background-color:#f1f1f1"><code>
+
<div style="background-color:#f1f1f1">
export EXTRA_LIB="${HOME}/arduino/librerie"
+
  export EXTRA_LIB="${HOME}/arduino/librerie"
export SKETCHBOOK_HOME="${HOME}/arduino"
+
  export SKETCHBOOK_HOME="${HOME}/arduino"
</code></div>
+
</div>
  
 
Generiamo le cartelle di lavoro:
 
Generiamo le cartelle di lavoro:
  
 
<div style="background-color:#f1f1f1"><code>
 
<div style="background-color:#f1f1f1"><code>
mkdir -p ${HOME}/arduino/librerie
+
  $ mkdir -p ${HOME}/arduino/librerie
mkdir ${HOME}/arduino/lucciola
+
  $ mkdir ${HOME}/arduino/lucciola
cd ${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
+
  $ ln -s /usr/share/arduino/arscons/SConscruct ./ # vedi il readme in /usr/share/arduino/arscons/README.md.bz2
</code></div>
+
</div>
  
 
Per creare un file di test, utilizziamo il comando seguente:
 
Per creare un file di test, utilizziamo il comando seguente:
<div style="background-color:#f1f1f1"><code>
+
<div style="background-color:#f1f1f1">
 
+
  $ cat >lucciola.ino <<EOF
$ cat >lucciola.ino <<EOF
+
  // This is just a mockup sketch for test scons works
// This is just a mockup sketch for test scons works
+
 
 
+
  #define PIN_LED 13
#define PIN_LED 13
+
 
 
+
  void setup(void)
void setup(void)
+
  {
{
+
    pinMode(PIN_LED, OUTPUT);
  pinMode(PIN_LED, OUTPUT);
+
  }
}
+
 
 
+
  void loop(void)
void loop(void)
+
  {
{
+
    digitalWrite(PIN_LED, HIGH);
  digitalWrite(PIN_LED, HIGH);
+
    Serial.println("Acceso");
  Serial.println("Acceso");
+
    delay(1000);
  delay(1000);
+
    digitalWrite(PIN_LED, LOW);
  digitalWrite(PIN_LED, LOW);
+
    Serial.println("Spento");
  Serial.println("Spento");
+
    delay(1000);
  delay(1000);
+
  }
}
+
  EOF
EOF
+
</div>
</code></div>
+
  
 
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.
 
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.
Riga 104: Riga 96:
 
digitiamo i comandi:
 
digitiamo i comandi:
  
<div style="background-color:#f1f1f1"><code>
+
<div style="background-color:#f1f1f1">
$ scons upload
+
  $ scons upload
$ miniterm.py -b 115200 /dev/arduino
+
  $ miniterm.py -b 115200 /dev/arduino
</code></div>
+
</div>
  
 
E Allegria!!!
 
E Allegria!!!

Versione delle 16:41, 18 nov 2013

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.

Su gentoo, si può integrare questo overlay artigianale per installare scons.

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:

La compilazione dovrebbe integrare i seguenti pacchetti:

 dev-python/pyserial
 dev-embedded/avrdude
 dev-embedded/arduino
 app-vim/arduino-syntax

Scegliere opportunamente le use flag utili per le proprie necessità ( ftdi, in particolare).

Modificare opportunamente il file /etc/env.d/11arduino se non si utilizza arduino UNO.
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.


Cominciamo ora a testare l'installazione, come semplici utenti.

Inseriamo l'utente locale al gruppo uucp.</br> 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

</div>

Per creare un file di test, utilizziamo 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!!!