Índice:

Rádio FM com RDS (texto de rádio), controle BT e base de carregamento: 5 etapas
Rádio FM com RDS (texto de rádio), controle BT e base de carregamento: 5 etapas

Vídeo: Rádio FM com RDS (texto de rádio), controle BT e base de carregamento: 5 etapas

Vídeo: Rádio FM com RDS (texto de rádio), controle BT e base de carregamento: 5 etapas
Vídeo: MUITO CUIDADOS POIS ELES IMITAM TUDO 2024, Julho
Anonim
Rádio FM com RDS (texto de rádio), controle BT e base de carregamento
Rádio FM com RDS (texto de rádio), controle BT e base de carregamento
Rádio FM com RDS (texto de rádio), controle BT e base de carregamento
Rádio FM com RDS (texto de rádio), controle BT e base de carregamento

Bom dia, Este é o meu segundo "Instructables". Como gosto de fazer coisas não muito úteis, aqui está o meu último projeto:

Este é um rádio FM com Rádio Texto com base de carregamento e que pode ser monitorado via Bluetooth e um APP Android

Portanto, vou apresentar a vocês a parte do Arduino, a parte do Radio Text e a parte do inventor do aplicativo MIT (esta é a única maneira que sou habilidoso o suficiente para construir um aplicativo Android)

Com uma tensão de alimentação de 10; 8 volts com alimentação CA e 9,6 com bateria, a potência máxima é 2x 1,5 / 1,25 watt RMS, que é amplamente suficiente

A potência RMS (root mean square) é a potência real, não como os outros grandes números que são vendidos como música watt ou potência de pico ou qualquer outra coisa)

Acho que 1,5 Watt RMS pode ser vendido como 8 Watts em algumas lojas !!!!!!

Primeiro, os componentes necessários:

Placa Principal:

1x Arduino Nano

1 módulo de rádio FM SI4703 da Sparkfun ou equivalente (5 V alimentado e 3,3 V I2C com um conector de 3 pólos que pode ser usado como uma antena)

1x Módulo Bluetooth HC-06 (avisando que a nova versão 3.0 do software tem um conjunto de comandos totalmente diferente (coloquei alguns comentários no código).

1x comutador de nível de 4 canais 3,3 5 V

1x MC7805 conversor 5v DC

1x 2200 µF capacitor 25V

2x 1N5404 3 amp diods

2 transistores 2N2222

1 resistor de 1Kohm

1 resistor de 47 Ohm

2 resistores KOhm de 3,3 (para pull-up de barramento I2C)

3 resistores de 330 Ohm (para os leds)

2x 6,8 resistores KOhm

1x resistor KOhm de 3,9

Painel frontal

1x barramento 20X4 LCD I2C

10x resistores de 680 ohms

1 LED vermelho (não tive mais verde !!) para a fonte de alimentação

1x LED amarelo para o modo de bateria

1 LED azul para a conexão BT

4x (LIGADO) -DESLIGADO- (LIGADO) interruptores (como para uma janela de carro elétrico)

2x botões de pressão

1x interruptor ON / OFF

Outros componentes do Rádio:

2x 100W 10CM 8 Ohm HP

1 antena extensível de 1 m (cerca de 75 cm é o bom comprimento para FM na Europa e nos EUA)

1 plugue de telefone que usei para fazer os contatos da base de carregamento

1x 1N5404 3 Amp diod (no contato da bateria para evitar a fumaça em caso de bagunçar com o solo ou contato 12V)

1x 2X20 watts Power Amp (qualquer amplificador estéreo caberá, desde que seja de 12V) com base no TDA2020 comprado por 4 euros

1x acoplador de bateria 8XAA (para ter um mínimo de 9,6 V)

Alguns compensados de 10 mm e 4 mm para a caixa

Base de carregamento:

Fonte de alimentação 1x 12V 3Amp

1x pequeno voltímetro de 3 dígitos / 3 fios

3 contatos (feitos com o plugue do telefone)

1x 1N5404 3 Amp diod (no contato de 12V)

2 interruptores de alavanca (para ligar a alimentação CA quando o rádio está na base de carregamento)

1x interruptor ON / OFF (para desligar a base de carregamento, se necessário)

Alguns compensados de 10 mm e 4 mm para a base

No total, incluindo o contraplacado, não é superior a 70 €

Etapa 1: a parte do rádio 4703

Primeiro, uma modificação:

O módulo deve usar o cabo do fone de ouvido como antena, no meu projeto não é útil, então teremos primeiro que fazer uma pequena modificação para conectar uma antena externa

Neste módulo, o jack de aterramento de 3 pólos não é conectado diretamente ao solo, mas por meio de uma indutância (para interromper as frequências FM) e um capacitor para conectar as frequências FM à entrada da antena do SI4703.

Portanto, a melhor maneira é conectar diretamente a antena ao pino de aterramento do conector e soldar dois cabos para a saída de áudio

Imagem
Imagem

Para evitar ruídos no áudio (principalmente de Bluetooth), coloquei o módulo FM em uma pequena caixa de plástico blindada com fita de cobre conectada ao solo

Imagem
Imagem

O protocolo RDS / Radio Text:

Em primeiro lugar, quero agradecer a Nathan Seidle porque fui totalmente inspirado por seu programa "TEST_FM" de junho de 2011

E, conforme combinado, ficarei muito feliz em pagar-lhe uma cerveja, se, um dia desses, ele se perder na minha pequena aldeia no fundo da Bretanha !!

Usei muito o programa dele porque não queria usar as bibliotecas existentes que são um pouco grandes demais para o espaço de memória Nano pobre e também porque é sempre melhor ir fundo nas possibilidades de um componente mergulhando diretamente os registros

A principal modificação que fiz é para a votação RDS

Aproveitei a possibilidade de acionar uma interrupção no pino GPI02, definindo o bit RDSIEN e o valor GPIO2 para 01

Isso irá desencadear uma interrupção no pino 3 do nano

Isso evita o polling do registro RDS, pois acionará o programa de texto de rádio somente quando o grupo de texto de rádio de 4 caracteres estiver disponível sem erros (modo não verboso)

Para ter um rádio texto completo, devemos reunir no máximo 16 blocos de 4 char's (registros RDSC / RDSB do grupo 2A ou 2B). Coloquei muita informação no programa para explicar o que fiz.

Aqui está uma descrição dos registros de dados para texto de rádio (RDSSA / RDSC)

Imagem
Imagem

no registro RDSSB (bloco 2)

Valor 4 em A3 / 0 indica (grupo de texto)

B0 indica texto A (64 caracteres) ou B (32 caracteres) (nunca vi o texto B em uso ………..)

PT0 a PT4 é o índice do grupo de 4 caracteres (0 a 15)

PT5 deve ser usado como indicador de texto A / B (significando "este é um texto novo") mas nem sempre é usado assim dependendo da estação de rádio, portanto não é utilizável para o programa de texto de rádio.

4 caracteres do texto de rádio estão em RDSSC e RDSSD (blocos 3 e 4)

Aconselho você a ler o documento muito interessante sobre o protocolo RDS em SI4703 => AN243 da Silicon labs

Eu também redefino o bit SKMODE no registro POWERCFG (consulte a ficha técnica SI4703) para permanecer na faixa de frequência enquanto procuro canais

Ler o datashhet ajudará muito a entender o código e todos os manuseios de registros

Etapa 2: a base de carregamento

A Base de Carregamento
A Base de Carregamento
A Base de Carregamento
A Base de Carregamento
A base de carregamento
A base de carregamento

Não há muitas coisas para adicionar

As fotos podem falar melhor.

Acabei de adicionar um diodo 1N5404 no contato de 12 volts

1) evitar problemas caso o contato da bateria toque o contato de 12 volts ao colocar o rádio na base (mas isso nunca aconteceu)

2) abaixar o nível de tensão para 10,8 volts (há também um diodo na placa-mãe) já que o MC7805 pode ficar um pouco quente ao passar de 12V a 5 volts com corrente de 1 Amp (eu aparafusei um pedaço de ferro como dissipador de calor o 7805)

Eu adicionei um pequeno voltímetro de 3 x 7 segmentos para indicar a carga da bateria

Este dispositivo é com 3 fios para diminuir o consumo (mais de 1 Mega Ohm no fio de medição) o que permite manter o rádio na base desligada por muito tempo sem descarregar a bateria

Imagem
Imagem

2 interruptores de alavanca são usados para desligar a fonte de CA quando o rádio está fora da base (para evitar ter 12 V nos contatos)

Imagem
Imagem

A caixa é feita de compensado (antes de pintar na foto) Eu deixo vocês imaginarem como fazer uma caixa linda como a minha não é muito sexy !!!!!

Fiquei muito surpreso, mas a base de carga está funcionando bem e eu nunca tive fumaça ao pousar o rádio nela ………….

Etapa 3: a caixa

A Caixa
A Caixa
A Caixa
A Caixa
A Caixa
A Caixa
A Caixa
A Caixa

Eu acho que qualquer um gostaria de fazer o que quiser seguindo suas capacidades artísticas !!!!!

De qualquer forma, explicarei em breve como poderia construir algo que terrivelmente se parece com uma caixa de ferramentas

Frente e traseira são cortadas em madeira compensada de 4 mm 15x45 cm

a parte superior e a inferior são de madeira compensada de 10 mm 15x45 cm

Os lados e as 2 partições internas (2 2 lugares para HP e os componentes no meio) são de madeira compensada de 10 mm 13x13 cm

No painel frontal fiz orifícios de 2 x10 cm para a HP e um orifício quadrado de 14x14 para inserir o vidro orgânico 15x15 2mm que pintei de preto (adicionando depois de pintar um adesivo impresso transparente, mas não é tão legível devido ao preto cor atrás)

Fiz 2 furos no topo:

um para o potenciômetro do Power Amp (para ajustar o nível se necessário) e também, como saída de calor

outro para a antena

no painel traseiro fiz 2 furos:

Um para o plugue USB (conecte diretamente no nano)

Um de 16 mm para resfriamento de ar (o orifício de 14 mm do potenciômetro do amplificador de potência sendo a saída superior de resfriamento de ar)

a alça é feita de um tubo de cobre de 12 mm pintado de preto

Todos os componentes da foto acima encontram lugar no compartimento central (posteriormente tive que colocar as baterias no compartimento esquerdo HP porque estava muito próximo do módulo HC06 BT no compartimento principal)

É isso

Claro que deve haver algo mais sexy !!!!!

Etapa 4: a parte do Arduino (esquemas e código)

Tentei colocar o máximo de informações possível nos comentários do programa.

Mais algumas informações

O procedimento Decode_TXT é usado tanto pelo procedimento Bluetooth quanto pelo procedimento de troca

algumas palavras-chave são usadas por ambos os procedimentos

v + => para aumentar o volume

v- => para diminuir

f + => para aumentar a frequência de uma etapa de 100 Khz

f- => para diminuir

su + => buscar

sd - => buscar para baixo

prefu => aumentar o número do canal pré-selecionado

prefd => diminuir

olá => enviado pelo aplicativo Android durante a conexão bluetooth, o código envia de volta o status do rádio

tchau => enviado pelo APP quando o BT desconecta

pow => enviado pelo rádio para o aplicativo no modo de fonte de alimentação (na base de carregamento)

bat => quando em modo de bateria

lb => enviado quando o nível da bateria está muito baixo (cerca de 8 volts)

A comunicação Bluetooth é protegida por um loop de controle:

Cada vez que o rádio FM envia uma informação, um cronômetro é acionado aguardando a resposta "ok" do APP android

em caso de 3 erros (temporizador expirado) o link BT é cortado pelo Rádio. (isso corta também o link no lado Android)

Por outro lado

Quando o App envia um comando, ele aguarda a resposta do rádio para enviar outro comando.

O procedimento get_RT é lançado quando o sinalizador RDS é definido (após uma interrupção no pino 3)

aqui está o código (link para GITHUB)

Os esquemas:

A placa principal do rádio FM (na verdade, o SI4703 está separado em uma caixa blindada):

Imagem
Imagem

O painel frontal:

Imagem
Imagem

A base de carregamento:

Imagem
Imagem

Os links para os arquivos do Fritzing:

Placa principal FR RADIO

Painel frontal

Base de carregamento

Etapa 5: o aplicativo Android

O aplicativo Android
O aplicativo Android
O aplicativo Android
O aplicativo Android

Feito com o inventor do APP

aqui estão os links para o GitHub

Radio FM aia

APK Android

O aplicativo usa 2 cronômetros de relógio:

1) para a comunicação bluetooth (100ms)

2) para piscar o led da bateria quando a carga está em torno de 8 v (1000ms)

Pela primeira vez, você terá que emparelhar o módulo HC06 com seu smartphone ou tablet.

Eu uso o TinyDB para salvar o endereço BT do módulo HC06, na primeira conexão o botão de endereço BT será habilitado e você terá que escolher o HC06 na lista (de minha parte, renomeei o módulo HC06 em FM_RADIO)

No App nem sempre usei a porcentagem para o tamanho do elemento, então pode haver problemas tão disply dependendo do smartphone

O meu é um Galaxy Note 3, então uma tela grande ……..

Então, passei um bom tempo descobrindo este SI4703 pequeno, mas muito eficiente.

E tive muito prazer em escrever estes instructables

Até o meu próximo projeto

Au revoir !!!

Recomendado: