Transmissor AM com Arduino
Há dois anos (mais ou menos) eu comprei um Arduino Duemilanove, depois de ter feito uma disciplina optativa de laboratório de microcontroladores e me empolgado com o assunto… Segui então os tutoriais clássicos: pisquei LEDs, fiz comunicação usando a porta serial e toquei musiquinhas gerando ondas quadradas… Mas depois do período de “lua de mel”, a plaquinha foi parar na gaveta.
Só recentemente é que eu tive vontade de mexer de novo com o AVR, e encontrei um amigo empolgado pra projetarmos algo juntos - o Tarcísio Fischer. Nós decidimos tentar fazer um emissor de rádio AM usando SOMENTE o Arduino. A idéia é transmitir um sinal AM pra ser recebido em rádios comuns caseiros (tipo rádio-relógio ou à pilha), e o mais importante é que NENHUM componente analógico deveria ser utilizado. Tanto a geração da onda portadora (em aprox. 500 KHz), quando a modulação pelo sinal deveriam ser feitas pelo Arduino sozinho. Assim basta colocar um fio comprido no pino de saída (como na foto) e temos um transmissor AM (de baixa potência :P)
Passei alguns dias programando isso, mas no final o sucesso foi épico! Coloquei dois vídeos no Youtube detalhando a saga até agora, um gravado em 1º de Abril (juro que é tudo verdade!) e outro gravado ontem. Prometo pra vocês que no próximo post eu vou publicar o código. Só estou esperando um dia para revisar o código com o Tarcísio e então mandar pro GitHub…
Enquanto isso vejam os vídeos :) No primeiro episódio o código está cheio de números “hardcoded”, e o transmissor só funciona em 550 KHz AM, emitindo um tom cuja frequência eu nem sei…
Já no segundo vídeo o código do nosso transmissor evoluiu bastante. Agora eu separei tudo em bibliotecas estáticas (.a
). Uma biblioteca responsável só pela portadora AM (libavram.a
), e outra responsável pela modulação dessa portadora de maneira flexível (libavrtone.a
). Na verdade a libavrtone.a
funciona também com um outro “backend”. Eu fiz a libavrbuzzer.a
, que como o nome diz, pode emitir ondas sonoras quadradas num pino de saída digital.
Através do diagrama tosco abaixo vocês podem entender (ou não) como os backends (libavrbuzzer.a
e libavram.a
) colaboram com a libavrtone.a
para fazer tocar musiquinhas no buzzer e em AM:
E por hoje era só pessoal… Hora de dormir e voltar ao trabalho. Assim que tiver um tempinho coloco o código no GitHub e posto aqui com uns comentários. Logo vai estar pronto o super foda transmissor morse AM!