Arduino/accelerometro adxl345

Da PNLUG.
Versione del 16 gen 2014 alle 13:31 di Cloc3 (Discussione | contributi) (riordinamento pagina)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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