Arduino/leggere via web

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.

È 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

Sono molte, però le cose che si possono imparare usando arduino. Giocare con l'accelerometro, ad esempio, costringe a perfezionarsi nella gestione dell'input/ouput seriale.