Neste sábado (14/fevereiro - Carnaval) tivemos mais um tradicional encontro "Automação no Parque", com a turminha remanescente do Sabugosa hackerspace. Como em todos os encontros, sempre tem várias coisas acontecendo ao mesmo tempo.

Uma das atividades foi essa brincadeira com Software Defined Radio. Esse projeto foi um bom exemplo do que costuma acontecer nesses encontros: Nada disso foi planejado. Durante o bate-papo, as idéias vão surgindo, alguém empresta um transmissor, outro pega um Arduino e um terceiro já traz um trecho de código pronto. E, em alguns minutos, está todo mundo com a câmera na mão, filmando mais uma montagem legal.

Esse é um destes vídeos:

 Mas o que foi isso?

Software Defined Radio (SDR) é um rádio que, ao invés de ser construído usando componentes físicos, é definido através de software. Obviamente este software será executado num dispositivo físico que contém componentes reais, responsáveis por transmitir e/ou receber o sinal de rádio. Mas, na prática, a interface deste sistema, para nós, é apenas o software.

Isso permite uma infinidade de coisas interessantes. Por exemplo, podemos usaá-lo para ouvir transmissões de rádio em qualquer frequência, ou decodificar os bits transmitidos por um equipamento wireless.

Uma maneira bastante barata de se começar a usar esta tecnologia é através de mini receptores de TV, como este abaixo, que é exatamente o modelo que usamos nessa brincadeira:

Este equipamento pode ser configurado para receber sinais em frequências de até 1.7 GHz!

Para monitorar o espectro de frequência, podemos usar diversos programas open-source. No nosso caso, o escolhido foi o HDSDR, que tem essa aparência cabulosa de interface de filme americano abaixo:

 

Mas, antes de usar o HDSDR, precisamos de um transmissor. Esse problema foi prontamente resolvido pelo Euclides, que nos emprestou um módulo semelhante a este aqui ao lado, que opera em 433 MHz. A grande vantagem  desse aparelhinho é exatamente sua simplicidade. Além da alimentação, ele possui apenas um único pino onde ligamos e desligamos o tramsissor através de um sinal 0-5V.

Mas não basta ter um transmissor. Também precisamos de uma mensagem para transmitir. Ou seja, precisamos transmitir um sinal que tenha algum conteúdo, para que o receptor SDR possa capturá-lo. Nisso entra nosso amigo Arduino.

Uma das brincadeiras mais simples e comuns com o Arduino é ligá-lo direto a um alto-falante, e programar uma de suas portas digitais para reproduzir músicas. Pensando nisso, simplesmente substituímos o alto-falante pelo transmissor e programamos o Arduino para reproduzir a "Marcha Imperial". Isso nos permitiu usar a saída de "áudio" do Arduino para modular o sinal do transmissor.

Assim, numa sequência de gambiarras encavaladas, juntamos tudo numa protoboard com alguns jumpers e, em poucos minutos, tínhamos funcionando nossa mini-emissora AM (Amplitude Modulada, a mesma tecnologia usada naquele radinho que você leva pro estádio em dia de jogo).

Depois disso não tinha mais segredo: Era só abrir o HDSDR no computador, sintonizá-lo na frequência do transmissor (433 MHz, modulação AM) e curtir o sonzinho.

 

Update: O Mauro também fez um post sobre o tema, no blog dele:

http://automatobr.blogspot.com.br/2015/02/automacao-no-parque-14022015.html