27 de outubro de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Transmissor de rádio FM com Raspberry

piFmAdv | Transmissor de rádio FM com Raspberry

Vamos começar o artigo com a parte mais empolgante: Você não precisa de nada para fazer esse transmissor de rádio FM com Raspberry; apenas, claro, o próprio Raspberry e uns 4 jumpers macho-fêmea. – e não precisa de Internet, é rádio MESMO. Interessou? Bora pro artigo então.

Como funciona o transmissor de rádio FM com Raspberry?

O projeto é bastante elaborado e usa o clock do sistema para gerar pulsos de frequência modulada, usando o GPIO4 da RPi como antena. Mas apesar da complexidade do desenvolvimento, para nós é bastante simples a instalação.

O transmissor usa frequência de 22.05KHz em 16 bits, com áudio mono. Pode transmitir voz, mas o alcance dependerá também da antena.

Instalação do transmissor de rádio FM

Essa configuração não deve levar mais do que 2 minutos em uma Raspberry Pi 3. Abra uma janela de terminal ou conecte-se ao Raspberry Pi por SSH (no meu caso, fiz a conexão remota por SSH). Para facilitar as coisas, digite primeiramente:

sudo su

Agora o usuário do sistema é o root, com todos os poderes administrativos. Assim não precisamos digitar sudo na frente de todo o comando que for digitado.

Atualize a lista de repositório de pacotes antes de tudo e então instale as dependências. É bom que seja exatamente como descrito abaixo, para que uma dependência não reclame de outra.

apt-get update
apt-get install make build-essential
apt-get install libraspberrypi-dev

Estou supondo que o sistema operacional sendo utilizado seja o Raspberry Pi OS, que é o sistema operacional oficial da fundação.

Se não tiver o programa git instalado, aproveite para fazê-lo:

apt-get install git

E então clone o repositório e compile o programa:

git clone https://github.com/markondej/fm_transmitter
cd fm_transmitter
make

Pronto para transmitir! Dentro do diretório clonado tem um arquivo wav de exemplo, que pode ser executado na frequência escolhida. No vídeo (acho que) escolhi 102.0, como no exemplo do projeto.

./fm_transmitter -f 102.0 acoustic_guitar_duet.wav

Podemos escolher outro canal DMA (-d), sendo 0 o padrão e 255 para desativar a transferência por DMA, encarregando a CPU dessa tarefa.

A largura de banda também pode ser modificada (-b), sendo o padrão inicial de 200KHz, diferente do que diz a documentação do projeto, que informa a largura de banda em 100KHz.

Se desejar colocar uma música em loop, use a flag -r.

Na Raspberry Pi 4 há alguma diferença no hardware que influencia na transmissão. A recomendação é trocar o make do comando de compilação mais acima por make GPIO21=1. Nesse caso, a antena ficará no pino 40, que é o último pino do lado oposto das USBs, do lado externo da placa.

Transmissor de rádio FM com Raspberry

Na Raspberry 3 e inferior, use o GPIO4 como antena. Como citei, interconectei 4 jumpers macho-fêmea. Conectei a entrada fêmea ao GPIO e a saída macho à protoboard que está na Raspberry. Se isso influencia positiva ou negativamente, não sei.

Para fazer a recepção, use um rádio qualquer e sintonize na frequência escolhida – ou, use um analisador de espectro, como o do artigo 10 do Laboratório Maker.

Vídeo do transmissor de rádio FM com Raspberry

O vídeo está disponível no canal DobitaobyteBrasil no Youtube. Enfim, inscreva-se no canal para dar um apoio e aproveite para deixar seu comentário sobre o tema que gostaria que fosse abordado em vídeo, ou até em artigo.