Il dialogo con il terminale

Dopo aver capito come si costruisce un driver che consente ad arduino di accedere in lettura all'accelerometro, è possibile occuparsi del dialogo tra arduino e il computer.

Arduino, infatti, può essere collegato al computer usando una connessione usb, secondo un protocollo chiamato porta seriale.
Usando il comando di terminale:

  • cat /dev/arduino

Si ottiene un flusso di dati stampati da arduino secondo le istruzioni impartite attraverso lo sketch corrente.
Il flusso creato da cat, tuttavia, è infinito e si interrompe solamente se la connessione usb viene interrotta fisicamente, staccando il cavetto di collegamento.

Sarebbe molto più comodo, invece, generare un dialogo che permetta di acquisire da arduino una quantità finita di letture successive dall'accelerometro.
Per fare questo, tuttavia, è necessario introdurre un insieme di modifiche agli sketch che non abbiamo avuto il tempo di analizzare integralmente in classe.

Ci siamo, limitati, quindi, prelevare da questo indirizzo gli sketch pronti e imparare ad usarli. Una volta compilato, lo sketch1) permette di acquisire dati con questi due comandi:

  • exec 5<>/dev/arduino # comando indispensabile per sincronizzare l'accesso in lettura e scrittura verso arduino, evitando ritardi
  • head -n 100 </dev/arduino & echo 100 >/dev/arduino # doppio comando che contiene una operazione di lettura e una richiesta di un certo numero di dati.

Il numero 100 è arbitrario e può essere sostituito con qualunque altro numero intero. Rappresenta il numero delle letture richieste all'accelerometro.
Il comando head legge le prime n righe2) prelevate dall'input3).
Il comando echo stampa la stringa successiva4) nel dispositivo di output5).

In classe abbiamo imparato anche a redirigere i dati in un file con estensione cvs, a trasferirlo con netcat su un computer remoto e a leggerlo ed analizzarlo comondamente con libreoffice –calc

1) contenuto nella cartella dueAccelerometri
2) in questo particolare esempio 100 righe
3) , 5) in questo caso /dev/arduino
4) in questo caso il numero 100
adxl345_input_output.txt · Ultima modifica: 2014/03/23 16:39 da marco
 
Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è soggetto alla seguente licenza: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki sintassi italiana dokuwiki