Arduino/accelerometro adxl345: differenze tra le versioni

Da PNLUG.
m (riordinamento pagina)
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 3: Riga 3:
  
 
Ammette ''due modalità diverse'' di utilizzo, attraverso i protocolli '''I2C''' (più lento, ma molto più semplice, perché scambia dati attraverso due fili soltanto) e il protocollo '''SPI'''. Può anche essere pilotato attraverso due canali di interrupt per realizzare effetti particolari, come il doppio click.
 
Ammette ''due modalità diverse'' di utilizzo, attraverso i protocolli '''I2C''' (più lento, ma molto più semplice, perché scambia dati attraverso due fili soltanto) e il protocollo '''SPI'''. Può anche essere pilotato attraverso due canali di interrupt per realizzare effetti particolari, come il doppio click.
 
+
<div style="text-align:center">
<html5media height="600" width="800">http://www.cloc3.net/pnlug/adxl345.mp4</html5media>
+
<html5media height="450" width="800" autoplay loop>http://www.cloc3.net/pnlug/adxl345.mp4</html5media>
 
+
</div>
 
+
 
=L'uso didattico=
 
=L'uso didattico=
  
Riga 17: Riga 16:
 
* Imparare a gestire la comunicazione tra arduino e il terminale di un computer esterno, attraverso la porta seriale.
 
* Imparare a gestire la comunicazione tra arduino e il terminale di un computer esterno, attraverso la porta seriale.
 
* Imparare a redirigere i dati su web e a raccoglierli con una applicazione per il browser.
 
* Imparare a redirigere i dati su web e a raccoglierli con una applicazione per il browser.
 +
 +
=Altre pagine correlate=
 +
* [[Arduino| Torna alla pagina principale]].
 +
* [[Arduino/input_seriale| Input ouput seriale]].
 +
* [[Arduino/leggere_una_stringa_numerica]]
 +
* [[Arduino/bash_e_porta_seriale]]
 +
* [[Arduino/monitor_in_linea]]
  
 
=Alcune informazioni spicciole=
 
=Alcune informazioni spicciole=
Riga 47: Riga 53:
  
 
   while true; do authbind nc -l -p80 -q1</dev/arduino ;done
 
   while true; do authbind nc -l -p80 -q1</dev/arduino ;done
 
=Altre pagine correlate=
 
* [[Arduino| Torna alla pagina principale]].
 
* [[Arduino/input_seriale| Input ouput seriale]].
 
* [[Arduino/leggere_una_stringa_numerica]]
 
* [[Arduino/bash_e_porta_seriale]]
 
* [[Arduino/monitor_in_linea]]
 
 
</div>
 
</div>

Versione attuale delle 13:31, 16 gen 2014

L'accelerometro a tre assi adxl345 è un oggetto di basso costo (circa 6€ su ebay), perfettamente compatibile con arduino.

Ammette due modalità diverse di utilizzo, attraverso i protocolli I2C (più lento, ma molto più semplice, perché scambia dati attraverso due fili soltanto) e il protocollo SPI. Può anche essere pilotato attraverso due canali di interrupt per realizzare effetti particolari, come il doppio click.

L'uso didattico

Trasformare un accelerometro in uno strumento di rilevazione dei movimenti tellurici è un'applicazione didattica elementare, perché si esaurisce nella gestione dell'input output con il sensore.

Sono molte però le cose che si possono imparare anche con un obiettivo tanto limitato. Per esempio:

  • Imparare a consultare la documentazione esistente su internet.
  • Imparare a scrivere alcuni programmi semplici per gestire la comunicazione tra il sensore e arduino.
  • Imparare a gestire la comunicazione tra arduino e il terminale di un computer esterno, attraverso la porta seriale.
  • Imparare a redirigere i dati su web e a raccoglierli con una applicazione per il browser.

Altre pagine correlate

Alcune informazioni spicciole

È infinita su internet la documentazione che ne descrive l'uso.
Notevole, ad esempio, questo tutorial che insegna a programmare autonomamente le librerie dalla lettura diretta delle specifiche.

Su github, il codice della adafruit consente un utilizzo pressochè immediato del dispositivo.

 cd ~/arduino/librerie
 git clone git://github.com/adafruit/Adafruit_ADXL345

Il file Adafruit_ADXL345/examples/sensortest/sensortest.pde contiene uno script pronto per l'uso.

Una volta generato un flusso attraverso la porta seriale di arduino, possiamo porci il problema di trasferirlo via web.
netcat è uno strumento prezioso per realizzare la cosa in un fiato.

 sudo while true; do nc -l -p80 -q1</dev/arduino ;done &
 wget localhost -O - 2>/dev/null

Se si desidera, è possibile di evitare il sudo liberando l'accesso in scrittura alla porta 80 ad un utente non privilegiato con l'uso di authbind.
Riportiamo le istruzioni acquisite da questo howto:

 cd /etc/authbind/byport
 touch 80
 chmod 500 80
 chown utente_nc 80

L'utente dovrà creare il flusso in questo modo:

 while true; do authbind nc -l -p80 -q1</dev/arduino ;done