2011-10-28 29 views
26

Ero appena inciampato in EE Stack e ho trovato questo post: What protocol does a headphone jack use. E ha suscitato una certa curiosità in me, e immagino, if the iPhone può farlo, voglio pure.Come leggere/inviare dati usando il jack per cuffie Android Devices da 3.5mm?

Qualcuno sa di progetti che stanno facendo questo ora o se è addirittura possibile?

+0

Sono confuso, non sono tali solo segnali analogici lungo i cavi? Puoi fare quello che vuoi con loro - solo la domanda è * cosa *? –

+0

Giusto, lo so. Mi chiedo come faccio a leggere (o produrre) i dati? Non ho trovato nulla nella documentazione sulla gestione dell'ingresso TRS (output). – AedonEtLIRA

+0

Non possiamo usare un 'MediaRecorder' ed eseguire l'elaborazione del segnale? –

risposta

37

Si sta essenzialmente chiedendo come trasformare l'ingresso del microfono in un ingresso modem. Una variante di questa tecnica intelligente è utilizzata commercialmente dal Square per i lettori di nastri magnetici su dispositivi iOS e Android.

Per fare ciò è necessario ottenere l'accesso al flusso PCM raw da Android e decodificare l'input. Fortunatamente per te, qualcuno l'ha già fatto e ha gettato la fonte là fuori. Vedi this Hack a Day linked project per esempio Arduino e codice Android per la sola trasmissione.

Non ho trovato codice Android di esempio a ricevere, ma ci sono note piuttosto estese su come eseguire FSK con iOS in this Arduino forum post.

(Anche se non era una tua domanda, un modo più semplice per ottenere dati dentro e fuori un dispositivo Android è il nuovo supporto USB Host and Accessory. Richiede un telefono e un sistema operativo nuovi, quindi non è flessibile come il percorso audio.)

+0

È interessante emettere dati baud 9600, ma non indirizza la ricezione dei dati. –

+0

Buon punto, ho aggiornato il commento. Lo stavo confondendo con un altro progetto (link aggiunto), che ha librerie iOS. – mik3y

+0

Esatto, credimi, ho considerato seriamente e seriamente l'USB, ma su cosa sto lavorando vorrei eseguire il 1.6 o più. Grazie per il tuo contributo, però, l'articolo è stato buono per il papero. – AedonEtLIRA

3

Ho scritto una libreria C in grado di inviare e ricevere dati tramite un cavo audio a 64 kbps. https://github.com/quiet/quiet

Per quanto riguarda le tecniche di modulazione, supporta un'ampia gamma, poiché utilizza una libreria SDR per eseguire la sua modulazione.

Se vuoi provarlo, ecco una demo live https://quiet.github.io/quiet-js/lab.html

+0

Fantastico, grazie: solo per notare la demo di "loop-test" su Windows, assicurati di disabilitare gli effetti sonori sul microfono altrimenti la cancellazione del feedback inibisce la ricezione di ciò che viene inviato attraverso gli altoparlanti.Pannello di controllo → Audio → Cambia impostazioni audio → Registrazione -> Proprietà -> Miglioramenti -> Controlla Disabilita tutti gli effetti sonori. –