Como você pode transferir dados através de uma linha de áudio?


17

Eu gostaria de passar alguns dados através de um cabo de áudio (ou seja, da placa de áudio para o meu celular) com um cabo curto.

Estou procurando algumas idéias para algoritmos para conseguir isso. É claro que eles devem incluir a técnica de modulação adequada para transferir os dados pelo sinal de áudio, para que o celular possa interpretá-lo através do conector do microfone.

Ideias? ;)

(PS - minha idéia atual é usar código de marca bifásico. Isso é bom para isso?)

Obrigado.



3
Estou apenas começando a questão - isso me faz sentir tão velho. Quando eu era criança, os computadores vinham com unidades de fita para armazenar dados em formato de áudio. Então, sim, é possível transferir dados através de um cabo de áudio e de fato era uma das primeiras maneiras de fazer isso :)
AngryEE

Respostas:


12

Aqui está um exemplo de projeto usando o FSK: http://sree.cc/electronics/arduino-as-an-fsk-modem

Um modem FSK basicamente converte um sinal digital em sinal analógico ou sinal sonoro pela técnica de chaveamento de mudança de frequência. Aqui podemos criar o nosso Arduino como um modem FSK, carregando um código simples. Este projeto produz e reproduz um som correspondente a um sinal digital e desmodula um sinal sonoro no sinal digital correspondente.


2
Você pode nos dar mais algum contexto? Esses links por si só não devem ser uma resposta completa. Na verdade, o seu segundo link não funciona mais.
precisa saber é o seguinte

11

Considere usar Baudot (especificação EIA / TIA-825). É o protocolo usado para TDD, uma tecnologia de modem para usuários surdos. Ele transmite a 45,5 bits por segundo e lida bem com ambientes de acoplamento de áudio ruins.

Eu o vi implementado com alguns softwares simples de análise de frequência (amostragem / filtragem de janelas nas principais frequências). Eu sei que o projeto Astrix o implementa, então pode haver algum código para revisar se você não estiver preocupado com o licenciamento.


Obrigado pela ótima idéia. Você sabe algo ainda mais simples? Preciso transferir cerca de 4-8 bits de dados a cada vez, com uma possível pausa entre eles. (explosões de dados).
roman

2
@roman - Para essa quantidade de dados, basta escolher dois tons facilmente distinguíveis para tocar e, em seguida, aplicar um filtro de entalhe em cada frequência e testar o nível de energia. Você pode usar duas outras frequências que alternam e as usam como relógio. Uma pesquisa rápida deve fornecer um filtro de entalhe em praticamente qualquer idioma desejado.
Jim corrida

5

Algum motivo específico para não usar o modem que provavelmente já está contido no seu celular?

Caso contrário, eu sugeriria que você analisasse os padrões de modem de baixa velocidade usados ​​para linhas terrestres POTS (serviço / sistema de telefone antigo) nos anos 80 e 90. Eu suspeito que o Bell 103, 212 (300, 1200bps) a V.32 (9600bps) deve ser utilizável usando a parte de áudio que eu acredito aproximadamente o mesmo que o padrão de linha terrestre Bell (EUA) de 300 a ~ 3000 Hz ( corrigido ) resposta de frequência mais / menos problemas de codec de voz digital sem fio.

300 bps via AFSK, V.21 , é bastante fácil de implementar em software ou hardware, se você desejar criar o seu próprio. Caso contrário, um IC de modem, como Silicon Labs SI2401 ou CML Microcircuits FX / MX614 ou CMX869B . (Existem muitos outros)


Eu usei 300bps AFSK em um par de rádios FRS antes. Funciona bem!
Brad

2

Se você possui uma quantidade muito pequena de dados (<= 4 bits), pode simplesmente usar o DTMF. Fácil de codificar, mais fácil de decodificar. funciona muito bem em ambientes ruidosos.


Existe hardware para decodificar DTMF, mas em geral eu não diria que é "fácil" decodificar. A codificação não é muito difícil, mas não é a coisa mais fácil do mundo. A decodificação é comparativamente difícil sem hardware especializado.
supercat

1
Como o OP está procurando algoritmos para usar em seu telefone, não é necessário hardware especializado. O telefone já tem poder de computação suficiente para decodificar DTMF em valores.
Jerry Penner
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.