Arduino/accelerometro adxl345

Da PNLUG.

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.

<video controls> <source type="video/mpeg" src="http://www.cloc3.net/pnlug/adxl345.mp4"></video>
<object data="http://www.cloc3.net/pnlug/adxl345.mp4" type="video/mpeg" width="164" height="140"> </object>

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.

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

Altre pagine correlate