Arduino/accelerometro adxl345
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
- Torna alla pagina principale.
- Input ouput seriale.
- Arduino/leggere_una_stringa_numerica
- Arduino/bash_e_porta_seriale
- Arduino/monitor_in_linea
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