- Walkie Talkie con módulo RF nRF24L01
- Componente requerido para Walkie Talkie basado en Arduino
- Diagrama de circuito de Arduino Walkie Talkie
- Walkie Talkie Código Arduino
Vivimos en la era de los dispositivos habilitados para 5G y 5G; sin embargo, las tecnologías antiguas como el sistema de walkie-talkie y el sistema de comunicación por RF siguen siendo fundamentales en escenarios donde se requiere una comunicación remota, de corta distancia, barata y de bajo costo. Por ejemplo, si tiene una empresa de construcción de edificios o de carga pesada, sus trabajadores deben comunicarse entre sí para un trabajo coordinado. Con la ayuda de un walkie-talkie, pueden comunicarse entre sí y difundir un breve masaje o instrucciones con solo presionar el botón "PTT" para transmitir la voz a otros trabajadores, para que escuchen y sigan las instrucciones. Otra aplicación podría estar en los cascos inteligentes.Para comunicarse entre un grupo de pasajeros durante un viaje largo, el modelo sugerido aquí puede comunicarse entre seis personas a la vez. Si desea ver otros tipos de proyectos de transmisión de audio inalámbrica de corto alcance, visite el proyecto Transmisor de audio inalámbrico basado en infrarrojos y Transmisor de audio Li-Fi utilizando los enlaces.
Walkie Talkie con módulo RF nRF24L01
El componente principal de este proyecto es el módulo RF NRF24L01 y Arduino Uno, que es el cerebro o procesador. Ya hemos aprendido cómo conectar Nrf24L01 con Arduino controlando un servomotor de forma remota. Para este proyecto, se elige el módulo RF NRF24L01 porque tiene varias ventajas sobre un medio de comunicación digital. Tiene una banda ISM de muy alta frecuencia de 2,4 GHz y la velocidad de datos puede ser de 250 kbps, 1 Mbps, 2 Mbps. Tiene 125 canales posibles con un espaciado de 1Mhz, por lo que el módulo puede usar 125 canales diferentes, lo que hace posible tener una red de 125 módems que funcionan de forma independiente en un solo lugar.
Lo más importante es que las señales NRF24L01 no se superponen ni se interconectan con otros sistemas de walkie-talkie como el walkie-talkie de la policía y el walkie-talkie de ferrocarril y no molestan a otros walkie-talkies. Un solo módulo nrf24l01 puede comunicarse con los otros 6 módulos nrf24l01 en un momento en que se encuentran en el estado de recepción. Además, es un módulo de bajo consumo de energía que es una ventaja adicional. Hay dos tipos de módulos NRF24L01 que están ampliamente disponibles y son de uso común, uno es NRF24L01 + y otro es NRF24L01 + PA + LNA (que se muestra a continuación) con antena incorporada.
El NRF24L01 + tiene una antena a bordo y un alcance de solo 100 metros. Es bueno solo para uso en interiores y no es adecuado para comunicaciones de larga distancia al aire libre. Además, si hay una pared entre el transmisor y el receptor, la transmisión de la señal es muy mala. El NRF24L01 + PA + LNA con antena externa tiene un PA que aumenta la potencia de la señal antes de la transmisión. LNA son las siglas de Low Noise Amplifier. Es claro, filtra el ruido y aumenta el nivel bajo extremadamente débil e incierto de la señal recibida de la antena. Ayuda a generar niveles útiles de señal y tiene una antena externa de 2dB a través de la cual puede transmitir 1000 metros de cobertura de alcance en el aire. por lo que es perfecto para nuestros proyectos de comunicación de walkie-talkie al aire libre.
Componente requerido para Walkie Talkie basado en Arduino
- NRF24L01 + PA + LNA con antena externa 2DB (2 piezas)
- Arduino UNO o cualquier versión de Arduino
- Amplificador de audio (2 piezas)
- Circuito de micrófono: puede hacerlo usted mismo (se explica más adelante) o comprar un módulo de sensor de sonido.
- Módulo de refuerzo elevador de CC a CC (2 piezas)
- Módulo regulador de voltaje AMS1117 de 3,3 V
- LED indicador de encendido (2 piezas)
- Resistencia de 470 ohmios (2 piezas)
- Un altavoz de 4 pulgadas (2 piezas)
- pulsador (para botón PTT)
- 104 PF para hacer botón PTT (2 piezas)
- Condensador de 100 NF para NRF24L01 (2 piezas)
- Resistencia de 1k para botón PTT (2 piezas)
- 2 juegos de batería de iones de litio
- Módulo de carga y protección de batería de iones de litio (2 piezas)
- Algún cable de puente, clavija de cabezal macho, tablero vero punteado
Diagrama de circuito de Arduino Walkie Talkie
El diagrama de circuito completo para el Arduino Walkie Talkie se muestra en la imagen a continuación. El diagrama del circuito muestra todas las conexiones, incluido el botón PTT, el circuito del micrófono y la salida de audio estéreo.
Importante: El rango de entrada de voltaje del módulo NRF24L01 es de 1.9v a un máximo de 3.6 voltios y para la estabilidad de voltaje y corriente, debe usar un capacitor de 100nf en + VCC y - GND, pero otros pines del módulo nrf24l01 pueden tolerar una señal de 5 voltios. niveles.
Paso 1: Empecé con la fabricación de una placa PCB personalizada casera y una placa Arduino Atmega328p. Puse el IC Atmega328p en el programador y lo flasheé y luego cargué el código. Luego, agregué cristal de 16 MHz en Atmega328p IC en (PB6, PB7) pin 9 y 10. A continuación se muestran las imágenes de mi PCB hecho a medida y la placa ensamblada con IC programado.
Paso 2: conecté los módulos NRF24L01 como se muestra en el diagrama de circuito en el siguiente orden. CE al pin digital número 7, CSN al pin número 8, SCK al pin digital 13, MOSI al pin digital 11, MISO al pin digital 12 e IRQ al pin digital 2.
Para la fuente de alimentación, primero debe bajar el voltaje de 5 voltios a 3.3v con buena estabilidad de corriente. Además, debe colocar un capacitor de 100nF en el VCC y la tierra del módulo nrf24l01. Entonces, utilicé AMS1117, que es un regulador de voltaje de 3.3 voltios, el módulo también reduce el tamaño de su proyecto y lo hace compacto.
Si desea hacer esta placa reguladora de voltaje usted mismo, puede comprar solo IC regulador de 3.3 voltios y puede hacerlo agregando algunas tapas, resistencia en entrada y salida, ya que es muy importante para su módulo de RF porque es un dispositivo sensible. O puede usar el regulador de voltaje variable LM317 para construir un circuito regulado de 3.3V como lo hicimos en el proyecto de suministro de energía del tablero.
Paso 3: puede comprar un sensor de sonido o hacer un circuito de micrófono simple como se muestra en el diagrama del circuito. Consiste en un solo transistor 2n3904 NPN transistor. La siguiente imagen muestra el circuito de micrófono casero construido en una placa Vero. También puede consultar este sencillo circuito preamplificador de audio para obtener más información.
Para una mejor comprensión, he hecho otra representación de toda la conexión con los valores de los componentes, como puede ver a continuación.
Paso 4: Para hacer una conexión desde el pin digital número 9 y 10 de su microcontrolador a su amplificador de audio, he usado el amplificador de audio estéreo PAM8403 porque, por defecto, la salida de audio de Arduino es muy baja (por lo general, solo puede escuchar el sonido con solo auriculares, no un altavoz, por lo que necesitamos una etapa de amplificación). El módulo puede accionar dos altavoces portátiles fácilmente y está disponible a un costo muy bajo. Además, viene con un amplificador de audio muy potente en un paquete SMD que requiere muy poco espacio. El módulo amplificador de audio PAM8403 se muestra a continuación.
La conexión es muy simple, se requiere una fuente de alimentación de 3.7V a 5V para alimentar el amplificador de audio. La entrada de audio del canal izquierdo y del canal derecho de los pines 9 y 10 de Arduino junto con el pin de tierra deben proporcionarse como entrada para este módulo amplificador como se muestra en el diagrama del circuito. En mi caso, he usado un solo altavoz de 4 pulgadas y 8 ohmios y solo usé la salida del canal derecho. Si lo desea, puede utilizar dos altavoces con este módulo.
Paso 5: A continuación, construí el conmutador PTT con un simple botón. Agregué un capacitor de 104PF o 0.1uf para evitar que el interruptor rebote o señales erráticas cuando se presiona el interruptor. El pin 4 ahora está conectado directamente con el pin D3 de Arduino Digital ya que se asigna un pin interrumpido a la codificación.
El NRF24L01 + PA + LNA cuando transmite una señal de audio o paquetes de DATOS consume más energía, por lo tanto, consume más corriente. Cuando presiona el botón PTT de repente, aumenta el consumo de energía. Para manejar esta carga repentinamente aumentada, debe usar un capacitor de 100nF en + vcc y tierra para la estabilidad de transmisión del módulo NRF24L01 + PA + LNA.
Cuando se presiona el interruptor, la placa Arduino recibe una interrupción de Arduino en su pin D3. En el programa, declararemos el pin digital 3 de Arduino comprobando constantemente su voltaje de entrada. Si el voltaje de entrada es bajo, mantiene el walkie-talkie en modo de recepción y si el pin digital número 3 es alto, cambia el walkie-talkie al modo de transmisión para enviar la señal de voz captada por el proceso del micrófono a través del microcontrolador y transmitir a través NRF24L01 + PA + LNA con antena externa.
Paso 6: Para la fuente de alimentación, he elegido esta batería de iones de litio. Para alimentar, todos los componentes como Arduino IC Atmega328p, NRF24L01 + PA + LNA, amplificador de audio, botón PTT y circuito de micrófono, utilicé 2 juegos de batería de iones de litio para este proyecto como se muestra a continuación.
Una buena celda tiene un nivel de voltaje de 3.8v a 4.2 voltios y el voltaje de carga es de 4v a 4.2 voltios solamente. Para saber más sobre las baterías de litio, puede consultar el artículo vinculado. Estas baterías se utilizan muy popularmente en dispositivos electrónicos portátiles y vehículos eléctricos. Pero las celdas de la batería de iones de litio no son tan robustas como otras baterías, necesitan protección para que no se sobrecarguen y se descarguen demasiado rápido, lo que significa que la corriente y el voltaje de carga / descarga deben mantenerse dentro de límites seguros. Por lo tanto, utilicé el módulo de carga de batería de iones de litio más propulsor: TP4056. Anteriormente hemos utilizado este módulo para construir un banco de energía portátil, puede consultarlo para obtener más detalles en esta placa.
Paso 7: He usado un módulo de refuerzo de 2 Amp dc a dc step up porque Arduino atmega328p, amplificador de audio, circuito de micrófono, botón PTT, todo necesita 5 voltios pero mi batería solo puede suministrar 3.7V a 4.2V, así que necesito un convertidor boost para alcanzar los 5 V con más de 1 amperio de salida de potencia estable.
Una vez que haya construido el circuito, puede montarlo en un pequeño recinto. Usé una caja de plástico y coloqué mis circuitos como se muestra en la imagen de abajo
Walkie Talkie Código Arduino
El programa completo para su walkie talkie Arduino se puede encontrar en la parte inferior de esta página. En esta sección, analicemos cómo funciona el programa. Antes de llegar, debe incluir algunas bibliotecas que se enumeran a continuación.
- Biblioteca nRF24
- Biblioteca de audio nRF24
- Biblioteca Maniaxbug RF24
Comience la programación incluyendo los encabezados de la biblioteca de radio y audio como se muestra a continuación
#incluir
Inicialice la radio RF en los pines 7 y 8 y configure el número de radio de audio en 0. Además, inicialice el botón ppt en el pin 3.
Radio RF24 (7,8); // Configure la radio usando los pines 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Configure el audio usando la radio y establezca el número de radio 0 int talkButton = 3;
Dentro de la función de configuración, comience el monitor en serie a una velocidad de 115200 baudios para la depuración. Luego inicialice el botón ppt conéctelo al pin 3 como pin de interrupción.
configuración vacía () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // establece la interrupción para comprobar si hay un botón de hablar abutton presione attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // establece el estado predeterminado para que cada módulo reciba rfAudio.receive (); }
A continuación, tenemos una función llamada talk () que se llama en respuesta a una interrupción. El programa comprueba el estado del botón si se mantiene pulsado el botón y entra en modo de transmisión para enviar el audio. Si se suelta el botón, entra en modo de recepción.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } bucle vacío () {}
El funcionamiento completo de este proyecto se puede encontrar en el video vinculado a continuación. El Walkie Talkie produce algo de ruido durante el funcionamiento, este es el ruido de la frecuencia portadora del módulo nRF24L01. Puede reducirse utilizando un buen sensor de sonido o un módulo de micrófono. Si tiene alguna pregunta sobre este proyecto, puede dejarla en la sección de comentarios a continuación. También puede utilizar nuestros foros para obtener respuestas rápidas a sus otras consultas técnicas.