Transmissão de Dados Usando Som: Uma Experiência com 'Telefone de Copos'

Quando comecei a brincar com computadores, a única forma de carregar um programa na máquina era digitando-o do zero. Meu computador antigo não tinha armazenamento; não havia HD, disquete ou qualquer outro meio de armazenar dados. Ao iniciar, a máquina carregava o BASIC diretamente da ROM e pronto. Com o tempo, consegui um gravador de fita, mas ele era terrível. Sem dinheiro para um gravador específico para computadores, usei um gravador doméstico. Demorou bastante ajustando o volume e outros parâmetros até conseguir carregar algo. O equipamento era tão delicado que prendi os controles com fita adesiva para evitar alterações porque qualquer coisa impedia o carregamento.

Apesar das dificuldades, era interessante ouvir os dados sendo transferidos para a fita e de volta. Meu gravador não desligava a caixa de som, então eu sempre tinha que ouvir o som estridente dos dados transmitidos. E eu era muito novo para desmontar o gravador e colocar uma chave para cortar o auto-falante.

Com computadores modernos, essa realidade está distante. Os computadores são muito mais inteligentes, mas ainda podemos usar o som para armazenar e transmitir dados. Isso me levou a um experimento que queria realizar há algum tempo: utilizar dois copos plásticos conectados por um cordão para transmitir dados entre computadores, em vez de apenas conversar com um telefone de copos.

Hoje, Vitória e eu aproveitamos a manhã de sábado para colocar o experimento em prática. Construímos o telefone com dois copos e 13 metros de cordão, pois essa é a maior distância em linha reta que temos em casa.

Nos primeiros testes, colocamos as máquinas lado a lado, sem usar os copos e o cordão. O teste foi bem-sucedido porque a sala estava silenciosa. Conseguimos 300 bps sem problemas e acredito que poderíamos alcançar velocidades maiores.

Na prática, configuramos o software da seguinte forma. Como estou no macOS, iniciei o servidor do pulseaudio para interagir com o microfone e os alto-falantes.

pulseaudio --exit-idle-time=-1 --verbose

Depois, posicionamos tudo e garantimos que o cordão estava bem esticado e sem obstáculos. Então, configuramos minha máquina para receber a mensagem.

Usamos o minimodem, um programa criado por Kamal Mostafa, presente em muitas distribuições Linux e pode ser instalado via Brew.

A essa distância e sem correção de erro, reduzimos a velocidade para 16 bps. A baixa velocidade se deve a diversas fontes de ruído, como o vento no cordão e carros passando na rua. Além disso, usamos apenas o microfone e os alto-falantes internos das máquinas, sem periféricos externos. Este é o comando para receber a transmissão.

minimodem 16 --rx

Na máquina da Vitória, configuramos o minimodem para transmitir. Usamos o comando echo para enviar a mensagem para a entrada padrão do minimodem, que modulou os dados para áudio e os transmitiu pelos alto-falantes.

echo só a verdade liberta | minimodem 16 --tx

Após várias tentativas e ajustes, conseguimos receber os dados. Foi um experimento divertido.

Pontos de melhoria

  • Manter a tensão do cordão constante faz diferença.
  • Devíamos ter usado microfones e alto-falantes montados próximos à boca dos copos, mas não quis complicar a brincadeira.
  • O tamanho do copo, material e diâmetro do cordão influenciam no resultado mas tudo precisava ser feito com o que tínhamos em casa.
  • Realizar o experimento em um ambiente mais silencioso e com menos vento teria ajudado.

A próxima ideia interessante seria carregar um programa diretamente de um gravador de fita, como fazia nos tempos do TK85 (clone brasileiro do ZX Spectrum), o problema esta em conseguir um gravador de fita que não custe caro.

Vídeo com demonstração do experimento:

Até a próxima!

Cesar Gimenes

Última modificação