- Walkie Talkie usando módulo RF nRF24L01
- Componente necessário para Walkie Talkie baseado em Arduino
- Diagrama de circuito do Arduino Walkie Talkie
- Código Walkie Talkie Arduino
Estamos vivendo na era dos dispositivos habilitados para 5G e 5G; no entanto, tecnologias antigas como o sistema de walkie-talkie e o sistema de comunicação RF ainda são fundamentais em cenários onde uma comunicação remota, de curta distância, barata e de baixo custo é necessária. Por exemplo, se você tem uma empresa de construção civil ou de construção de rolamentos pesados, seus trabalhadores precisam se comunicar uns com os outros para um trabalho coordenado. Com a ajuda de um walkie-talkie, eles podem se comunicar entre si e espalhar massagens curtas ou instruções, bastando para isso pressionar o botão “PTT” para transmitir voz a outros trabalhadores, para que eles possam ouvir e seguir as instruções. Outra aplicação pode ser nos capacetes inteligentespara se comunicar entre um grupo de passageiros durante uma longa viagem, o modelo sugerido aqui pode se comunicar entre seis pessoas por vez. Se você quiser verificar outros tipos de projetos de transmissão de áudio sem fio de curto alcance, visite o projeto Transmissor de áudio sem fio baseado em IR e Transmissor de áudio Li-Fi usando os links.
Walkie Talkie usando módulo RF nRF24L01
O principal componente deste projeto é o módulo RF NRF24L01 e o Arduino Uno que é o cérebro ou processador. Já aprendemos como fazer a interface do Nrf24L01 com o Arduino controlando um servo motor remotamente. Para este projeto, o módulo RF NRF24L01 é escolhido por apresentar diversas vantagens em relação a um meio de comunicação digital. Possui banda ISM de frequência muito alta de 2,4 GHz e a taxa de dados pode ser 250kbps, 1Mbps, 2 Mbps. Ele tem 125 canais possíveis com espaçamento entre 1Mhz, de forma que o módulo pode usar 125 canais diferentes, o que torna possível ter uma rede de 125 modems funcionando independentemente em um só lugar.
Mais importante ainda, os sinais NRF24L01 não se sobrepõem ou cruzam interface com outros sistemas de walkie-talkie, como walkie-talkie policial e walkie-talkie ferroviário, e não perturba outros walkie-talkies. Um único módulo nrf24l01 pode se comunicar com os outros 6 módulos nrf24l01 ao mesmo tempo em que estão no estado de recebimento. Além disso, é um módulo de baixo consumo de energia, o que é uma vantagem adicional. Existem dois tipos de módulos NRF24L01 que estão amplamente disponíveis e são comumente usados, um é NRF24L01 + e outro é NRF24L01 + PA + LNA (mostrado abaixo) com antena embutida.
O NRF24L01 + possui uma antena interna e um alcance de apenas 100 metros. É bom apenas para uso interno e não é adequado para comunicações externas de longa distância. Além disso, se houver uma parede entre o transmissor e o receptor, a transmissão do sinal é muito ruim. O NRF24L01 + PA + LNA com antena externa possui um PA que potencializa a potência do sinal antes da transmissão. LNA significa amplificador de baixo ruído. É claro, filtra o ruído e aumenta o nível baixo extremamente fraco e incerto do sinal recebido da antena. Ajuda a fazer níveis úteis de sinal e tem antena externa de 2dB através da qual pode transmitir 1000 metros de cobertura de alcance no ar, por isso é perfeito para nossos projetos de comunicação de walkie-talkie ao ar livre.
Componente necessário para Walkie Talkie baseado em Arduino
- NRF24L01 + PA + LNA com antena 2DB externa (2 pcs)
- Arduino UNO ou qualquer versão do Arduino
- Amplificador de áudio (2 unidades)
- Circuito de microfone: você pode fazer isso sozinho (discutido posteriormente) ou comprar um módulo de sensor de som.
- Módulo de intensificação DC para DC (2 unidades)
- Módulo regulador de tensão de 3,3 V AMS1117
- LED indicador de energia (2 unidades)
- Resistência de 470 ohms (2pcs)
- Um alto-falante de 4 polegadas (2pcs)
- botão de pressão (para botão PTT)
- 104 PF para fazer o botão PTT (2pcs)
- Capacitor 100 NF para NRF24L01 (2 unidades)
- Resistência de 1k para botão PTT (2pcs)
- 2 conjuntos de bateria de íon-lítio
- Carregamento de bateria de íon-lítio e módulo de proteção de bateria (2 unidades)
- Algum fio de jumper, pino do conector macho, placa vero pontilhada
Diagrama de circuito do Arduino Walkie Talkie
O diagrama de circuito completo do Arduino Walkie Talkie é mostrado na imagem abaixo. O diagrama de circuito mostra todas as conexões, incluindo o botão PTT, circuito do microfone e saída de áudio estéreo.
Importante: A faixa de entrada de tensão do módulo NRF24L01 é de 1,9v a um máximo de 3,6 volts e para estabilidade de tensão e corrente você deve usar um capacitor 100nf no + VCC e - GND, mas outros pinos do módulo nrf24l01 podem tolerar o sinal de 5 volts níveis.
Etapa 1: comecei fazendo uma placa PCB personalizada e uma placa Arduino Atmega328p. Coloquei o IC Atmega328p no programador, fiz o flash e carreguei o código. Em seguida, adicionei cristal de 16 MHz no Atmega328p IC no (PB6, PB7) pinos 9 e 10. As fotos do meu PCB personalizado e da placa montada com IC programado são mostradas abaixo.
Passo 2: Conectei os módulos NRF24L01 conforme mostrado no diagrama de circuito na seguinte ordem. CE para pino digital número 7, CSN para pino número 8, SCK para pino digital 13, MOSI para pino digital 11, MISO para pino digital 12 e IRQ para pino digital 2.
Para a fonte de alimentação, você precisa diminuir a tensão primeiro de 5 volts para 3,3 V com boa estabilidade de corrente. Além disso, você deve colocar um capacitor 100nF no VCC e aterramento do módulo nrf24l01. Então, usei o AMS1117 que é um regulador de tensão de 3,3 volts, o módulo também reduz o tamanho do seu projeto e o torna compacto.
Se você quiser fazer essa placa reguladora de tensão sozinho, pode comprar apenas CI regulador de 3,3 volts e pode fazê-lo adicionando alguns capacitores, resistência na entrada e na saída, pois é muito importante para o seu módulo RF porque é um dispositivo sensível. Ou você pode usar o regulador de tensão variável LM317 para construir um circuito regulado de 3,3 V como fizemos no projeto de fonte de alimentação Breadboard.
Etapa 3: Você pode comprar um sensor de som ou fazer um circuito de microfone simples, conforme mostrado no diagrama de circuito. Ele consiste em apenas um transistor - transistor 2n3904 NPN. A imagem abaixo mostra o circuito de microfone caseiro construído em uma placa Vero. Você também pode verificar este circuito simples de pré-amplificador de áudio para obter mais informações.
Para melhor compreensão, fiz outra representação de toda a conexão com os valores dos componentes, como você pode ver abaixo
Etapa 4: para fazer uma conexão do microcontrolador com os pinos digitais 9 e 10 ao seu amplificador de áudio, usei o amplificador de áudio estéreo PAM8403 porque, por padrão, a saída de áudio do Arduino é muito baixa (geralmente você só pode ouvir som usando apenas fones de ouvido, não é um alto-falante, então precisamos de um estágio de amplificação). O módulo pode acionar dois alto-falantes de laptop facilmente e está disponível a um custo muito baixo. Além disso, vem com um amplificador de áudio muito poderoso em um pacote SMD que requer muito pouco espaço. O módulo amplificador de áudio PAM8403 é mostrado abaixo.
A conexão é muito simples, uma fonte de alimentação de 3,7 V a 5 V é necessária para alimentar o Amplificador de Áudio. A entrada de áudio do canal esquerdo e do canal direito do Arduino pinos 9 e 10, juntamente com o pino de aterramento, deve ser fornecida como entrada para este módulo amplificador, conforme mostrado no diagrama de circuito. No meu caso, usei um único alto - falante de 8 ohms de 4 polegadas e usei apenas a saída do canal direito. Se quiser, você pode usar dois alto-falantes com este módulo.
Etapa 5: Em seguida, construí a chave PTT usando um simples botão. Eu adicionei um capacitor 104PF ou 0.1uf para evitar que o interruptor salte ou sinais erráticos quando o interruptor for pressionado. O pino 4 agora está diretamente conectado ao pino D3 do Arduino Digital, pois um pino interrompido é atribuído à codificação.
O NRF24L01 + PA + LNA ao transmitir um sinal de áudio ou pacotes de dados consome mais energia, portanto, consome mais corrente. Quando você pressiona o botão PTT repentinamente, o consumo de energia aumenta. Para lidar com este aumento repentino de carga, você deve usar um capacitor 100nF em + vcc e aterramento para a estabilidade de transmissão do Módulo NRF24L01 + PA + LNA.
Quando a chave é pressionada, a placa Arduino recebe uma interrupção do Arduino em seu pino D3. No programa, declararemos o pino digital 3 do Arduino verificando constantemente sua tensão de entrada. Se a tensão de entrada for baixa, ele mantém o walkie-talkie no modo de recepção e se o pino digital número 3 estiver alto, ele muda o walkie-talkie para o modo de transmissão para enviar o sinal de voz captado pelo processo do microfone através do microcontrolador e transmitir através NRF24L01 + PA + LNA com antena externa.
Etapa 6: para a fonte de alimentação, escolhi esta bateria de íons de lítio. Para alimentar todos os componentes como Arduino IC Atmega328p, NRF24L01 + PA + LNA, amplificador de áudio, botão PTT e circuito de microfone, usei 2 conjuntos de bateria de íon-lítio para este projeto, conforme mostrado abaixo.
Uma boa célula tem um nível de tensão de 3,8 V a 4,2 V e a tensão de carregamento é de 4 V a 4,2 V apenas. Para saber mais sobre baterias de lítio, você pode verificar o artigo vinculado. Essas baterias são muito popularmente usadas em dispositivos eletrônicos portáteis e veículos elétricos. Mas as células da bateria de íon-lítio não são tão robustas quanto outras baterias, elas precisam de proteção contra sobrecarga e descarga muito rápido, o que significa que a corrente e a tensão de carga / descarga devem ser mantidas dentro de limites seguros. Portanto, usei o módulo de carregamento de bateria de íon de lítio mais propulsor - TP4056. Anteriormente, usamos este módulo para construir um banco de energia portátil, você pode verificar isso para obter mais detalhes nesta placa.
Etapa 7: usei um módulo intensificador de reforço de 2 Amp CC para CC porque Arduino atmega328p, amplificador de áudio, circuito de microfone, botão PTT, tudo precisa de 5 volts, mas minha bateria só pode fornecer 3,7 V a 4,2 V, então preciso de um conversor de reforço para atingir 5 V com mais de 1 Amp de saída de potência estável.
Depois de construir o circuito, você pode montá-lo em um pequeno gabinete. Usei uma caixa de plástico e coloquei meus circuitos conforme mostrado na imagem abaixo
Código Walkie Talkie Arduino
O programa completo para seu walkie talkie Arduino pode ser encontrado na parte inferior desta página. Nesta seção, vamos discutir como o programa funciona. Antes de chegar lá, você precisa incluir algumas bibliotecas que estão listadas abaixo.
- Biblioteca nRF24
- Biblioteca de áudio nRF24
- Biblioteca Maniaxbug RF24
Comece a programação incluindo os cabeçalhos de Rádio e Biblioteca de Áudio conforme mostrado abaixo
#incluir
Inicialize o rádio RF nos pinos 7 e 8 e configure o número do rádio de áudio para 0. Além disso, inicialize o botão ppt no pino 3.
Rádio RF24 (7,8); // Configure o rádio usando os pinos 7 (CE) 8 (CS) RF24Audio rfAudio (rádio, 0); // Configure o áudio usando o rádio e defina para o número de rádio 0 int talkButton = 3;
Dentro da função de configuração, comece o monitor serial a 115200 baudrate para depuração. Em seguida, inicialize o botão ppt e conecte-o ao pino 3 como um pino de interrupção.
configuração vazia () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // define a interrupção para verificar o botão talk abutton press attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // define o estado padrão para cada módulo para receber rfAudio.receive (); }
Em seguida, temos uma função chamada talk (), que é chamada em resposta à interrupção. O programa verifica o estado do botão, se ele for pressionado e mantido pressionado, ele entra no modo de transmissão para enviar o áudio. Se o botão for liberado, ele entrará no modo de recepção.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } void loop () {}
O funcionamento completo deste projeto pode ser encontrado no vídeo no link abaixo. O Walkie Talkie produz algum ruído durante a operação, este é o ruído da frequência portadora do Módulo nRF24L01. Ele pode ser reduzido usando um bom sensor de som ou módulo de microfone. Se você tiver alguma dúvida sobre este projeto, pode deixá-la na seção de comentários abaixo. Você também pode usar nossos fóruns para obter respostas rápidas para suas outras dúvidas técnicas.