domenica 28 aprile 2013

Android - Arduino - PC. Un sistema di comunicazione su canale audio ? si può fare ...

L'idea mi è nata nel momento in cui ho avuto la necessita di far "parlare" il mio telefonino (da quattro soldi ) con SO Android e  Arduino (uno) e ho pensato ad un modo veloce ed economico per farlo... perchè non usare il canale audio ? Ho fatto una ricerca su Internet e ho trovato questo post : http://ultimoistante.wordpress.com/2012/10/22/android-e-arduino-simple-audio-communication-part1/

L'ho trovato molto interessante e l'ho usato come punto di partenza al fine di creare un protocollo di comunicazione su canale audio che fosse valido su tre dispositivi PC - Smart Phone e Scheda Arduino, naturalmente il linguaggio di programmazione più vicino a tutti è il Java... ma partiamo dal protocollo :
Il concetto è semplice: il dispositivo trasmittente invia impulsi intervallati da pause ben precise per trasferire treni di bits ( raccolti in gruppi da 8 ( 1 bytes) ). Due impulsi ravvicinati descrivono il livello logico 0 e un impulso il livello logico 1 :


Ogni bit è preceduto e seguito da una pausa di 90ms circa, mentre una pausa superiore ai 300ms indica la fine di un messaggio. Sul dispositivo ricevente i bits vengono raccolti in gruppi di 8 per formare un array di byte (short). Naturalmente la bassa capacità  trasmissiva è dovuta alle basse capacità di calcolo dell' Arduino... i tempi di trasmissione potrebbero essere abbassati di parecchio se dall'utilizzo fosse escluso Arduino, naturalmente rimanendo nell'ambito della banda delle frequenze audio.
Il video che segue mostra il protocollo in azione tra Android e PC (scusate la pessima qualità):


Spero di poter "rilasciare" una libreria, per ogni dispositivo, da poter essere utilizzata all'occasione da chiunque...
A presto.

Nessun commento:

Posta un commento