- Talkie-walkie utilisant le module RF nRF24L01
- Composant requis pour le talkie-walkie basé sur Arduino
- Schéma du circuit du talkie-walkie Arduino
- Code Arduino Talkie Walkie
Nous vivons à l'ère des appareils compatibles 5G et 5G; Cependant, les anciennes technologies comme le système de talkie-walkie et le système de communication RF sont toujours primordiales dans les scénarios où une communication à distance, à courte distance, bon marché et à faible coût est requise. Par exemple, si vous avez une entreprise de construction de bâtiments ou de construction lourde, vos travailleurs doivent communiquer entre eux pour un travail coordonné. À l'aide d'un talkie-walkie, ils peuvent communiquer entre eux et diffuser de courts massages ou des instructions en appuyant simplement sur le bouton «PTT» pour transmettre la voix aux autres travailleurs, pour qu'ils écoutent et suivent les instructions. Une autre application pourrait être dans les casques intelligentspour communiquer entre un pack de coureurs lors d'un long trajet, le modèle proposé ici peut communiquer entre six personnes à la fois. Si vous souhaitez découvrir d'autres types de projets de transmission audio sans fil à courte portée, visitez le projet Transmetteur audio sans fil IR et émetteur audio Li-Fi en utilisant les liens.
Talkie-walkie utilisant le module RF nRF24L01
Le composant principal de ce projet est le module RF NRF24L01 et Arduino Uno qui est le cerveau ou le processeur. Nous avons déjà appris comment interfacer Nrf24L01 avec Arduino en contrôlant un servomoteur à distance. Pour ce projet, le module RF NRF24L01 est choisi car il présente plusieurs avantages par rapport à un support de communication numérique. Il a une bande ISM très haute fréquence de 2,4 GHz et le débit de données peut être de 250 kbps, 1 Mbps, 2 Mbps. Il dispose de 125 canaux possibles espacés de 1 Mhz, de sorte que le module peut utiliser 125 canaux différents, ce qui permet d'avoir un réseau de 125 modems fonctionnant indépendamment en un seul endroit.
Plus important encore, les signaux NRF24L01 ne se chevauchent pas ou n'interfèrent pas avec d'autres systèmes de talkie-walkie comme le talkie-walkie de police et le talkie-walkie de chemin de fer et ne dérangent pas les autres talkies-walkies. Un seul module nrf24l01 peut communiquer avec les 6 autres modules nrf24l01 à la fois lorsqu'ils sont dans l'état de réception. En outre, c'est un module à faible consommation d'énergie qui est un avantage supplémentaire. Il existe deux types de modules NRF24L01 qui sont largement disponibles et couramment utilisés, l'un est NRF24L01 + et l'autre est NRF24L01 + PA + LNA (illustré ci-dessous) avec antenne intégrée.
Le NRF24L01 + dispose d'une antenne embarquée et d'une portée de seulement 100 mètres. Il n'est bon que pour une utilisation en intérieur et ne convient pas aux communications longue distance extérieures. De plus, s'il y a un mur entre l'émetteur et le récepteur, la transmission du signal est très mauvaise. Le NRF24L01 + PA + LNA avec une antenne externe dispose d'un PA qui booste la puissance du signal avant la transmission. LNA signifie Low Noise Amplifier. Il est clair, filtre le bruit et amplifie le faible niveau extrêmement faible et incertain du signal reçu de l'antenne. Il aide à créer des niveaux de signal utiles et dispose d' une antenne externe de 2 dB à travers laquelle il peut transmettre 1000 mètres de couverture de portée en ondes, il est donc parfait pour nos projets de communication de talkie-walkie en plein air.
Composant requis pour le talkie-walkie basé sur Arduino
- NRF24L01 + PA + LNA avec antenne 2DB externe (2 pièces)
- Arduino UNO ou toute version d'Arduino
- Amplificateur audio (2 pièces)
- Circuit de microphone: vous pouvez le fabriquer vous-même (voir plus loin) ou acheter un module de capteur de son.
- Module amplificateur élévateur CC à CC (2 pièces)
- Module régulateur de tension 3.3V AMS1117
- Indicateur d'alimentation LED (2 pièces)
- Résistance 470 ohms (2 pièces)
- Un haut-parleur de 4 pouces (2 pièces)
- bouton poussoir (pour bouton PTT)
- 104 PF pour la fabrication du bouton PTT (2 pièces)
- Condensateur 100 NF pour NRF24L01 (2pcs)
- Résistance 1k pour bouton PTT (2 pièces)
- 2 ensembles de batterie li-ion
- Module de charge et de protection de batterie Li-ion (2 pièces)
- Certains fil de liaison, broche d'en-tête mâle, carte vero en pointillé
Schéma du circuit du talkie-walkie Arduino
Le schéma de circuit complet du talkie-walkie Arduino est présenté dans l'image ci-dessous. Le schéma de circuit montre toutes les connexions, y compris le bouton PTT, le circuit du microphone et la sortie audio stéréo.
Important: la plage d'entrée de tension du module NRF24L01 est de 1,9 v à un maximum de 3,6 volts et pour la stabilité de la tension et du courant, vous devez utiliser un condensateur 100nf dans le + VCC et - GND, mais d'autres broches du module nrf24l01 peuvent tolérer un signal de 5 volts les niveaux.
Étape 1: J'ai commencé par créer des PCB personnalisés et des cartes Arduino Atmega328p. J'avais mis l'IC Atmega328p sur le programmeur et l'avais flashé, puis téléchargé le code. Ensuite, j'ai ajouté un cristal 16 MHz sur Atmega328p IC sur (PB6, PB7) broches 9 et 10. Les images de mon PCB sur mesure et de la carte assemblée avec IC programmé sont montrées ci-dessous.
Étape 2: J'ai connecté les modules NRF24L01 comme indiqué sur le schéma de circuit dans l'ordre suivant. CE vers la broche numérique 7, CSN vers la broche 8, SCK vers la broche numérique 13, MOSI vers la broche numérique 11, MISO vers la broche numérique 12 et IRQ vers la broche numérique 2.
Pour l'alimentation, vous devez d'abord baisser la tension de 5 volts à 3,3 V avec une bonne stabilité du courant. De plus, vous devez mettre un condensateur de 100nF sur le VCC et la masse du module nrf24l01. J'ai donc utilisé l' AMS1117 qui est un régulateur de tension de 3,3 volts, le module réduit également la taille de votre projet et le rend compact.
Si vous souhaitez fabriquer vous-même cette carte de régulateur de tension, vous ne pouvez acheter que des circuits intégrés de régulateur de 3,3 volts et vous pouvez le fabriquer en ajoutant des bouchons, une résistance en entrée et en sortie car c'est très important pour votre module RF car c'est un appareil sensible. Ou vous pouvez utiliser le régulateur de tension variable LM317 pour construire un circuit régulé 3,3V comme nous l'avons fait dans le projet d'alimentation Breadboard.
Étape 3: Vous pouvez acheter un capteur de son ou faire un simple circuit de microphone comme indiqué dans le schéma de circuit. Il se compose d'un seul transistor - transistor NPN 2n3904. L'image ci-dessous montre le circuit de microphone fait maison construit sur une carte Vero. Vous pouvez également consulter ce circuit de préamplificateur audio simple pour plus d'informations.
Pour une meilleure compréhension, j'ai fait une autre représentation de l'ensemble de la connexion avec les valeurs des composants comme vous pouvez le voir ci-dessous
Étape 4: Pour, en établissant une connexion entre les broches numériques 9 et 10 de votre microcontrôleur à votre amplificateur audio, j'ai utilisé l' amplificateur audio stéréo PAM8403 car par défaut, la sortie audio Arduino est très faible (généralement, vous ne pouvez entendre le son qu'en utilisant uniquement un casque, pas un haut-parleur, nous avons donc besoin d'un étage d'amplification). Le module peut piloter facilement deux haut-parleurs d'ordinateur portable et est disponible à un coût très bas. En outre, il est livré avec un amplificateur audio très puissant dans un boîtier SMD qui nécessite très peu d'espace. Le module d'amplificateur audio PAM8403 est illustré ci-dessous.
La connexion est très simple, une alimentation de 3,7 V à 5 V est nécessaire pour alimenter l'amplificateur audio. L'entrée audio du canal gauche et du canal droit des broches 9 et 10 d'Arduino ainsi que la broche de masse doivent être données comme entrée pour ce module amplificateur, comme indiqué dans le schéma de circuit. Dans mon cas, j'ai utilisé un seul haut - parleur 4 pouces 8 ohms et utilisé uniquement la sortie du canal droit. Si vous le souhaitez, vous pouvez utiliser deux enceintes avec ce module.
Étape 5: Ensuite, j'ai construit le commutateur PTT à l'aide d'un simple bouton-poussoir. J'ai ajouté un condensateur 104PF ou 0,1 uf pour empêcher le rebond du commutateur ou les signaux erratiques lorsque le commutateur est enfoncé. La broche 4 est maintenant directement connectée à la broche D3 d'Arduino Digital car une broche interrompue est affectée au codage.
Le NRF24L01 + PA + LNA lors de la transmission d'un signal audio ou de paquets de données consomme plus d'énergie, par conséquent, il consomme plus de courant. Lorsque vous appuyez soudainement sur le bouton PTT, la consommation d'énergie augmente. Pour gérer cette charge soudainement augmentée, vous devez utiliser un condensateur 100nF sur + vcc et Terre pour la stabilité de transmission du module NRF24L01 + PA + LNA.
Lorsque l'interrupteur est enfoncé, la carte Arduino reçoit une interruption Arduino sur sa broche D3. Dans le programme, nous déclarerons la broche numérique 3 d'Arduino en vérifiant constamment sa tension d'entrée. Si la tension d'entrée est faible, il maintient le talkie-walkie en mode de réception et si la broche numérique 3 est élevée, il met le talkie-walkie en mode de transmission pour envoyer le signal vocal capté par le microphone via le microcontrôleur et transmettre via NRF24L01 + PA + LNA avec une antenne externe.
Étape 6: Pour l'alimentation, j'ai choisi cette batterie Li-ion. Pour alimenter tous les composants tels que Arduino IC Atmega328p, NRF24L01 + PA + LNA, amplificateur audio, bouton PTT et circuit de microphone, j'ai utilisé 2 ensembles de batterie Li-ion pour ce projet, comme indiqué ci-dessous.
Une bonne cellule a un niveau de tension de 3,8 à 4,2 volts et la tension de charge est de 4 à 4,2 volts uniquement. Pour en savoir plus sur les batteries au lithium, vous pouvez consulter l'article lié. Ces batteries sont très couramment utilisées dans les appareils électroniques portables et les véhicules électriques. Mais les cellules de batterie Li-ion ne sont pas aussi robustes que les autres batteries, elles doivent être protégées contre les surcharges et les décharges trop rapides, ce qui signifie que le courant et la tension de charge / décharge doivent être maintenus dans des limites de sécurité. Par conséquent, j'ai utilisé le module de charge de batterie Li-ion le plus à hélice - TP4056. Nous avons déjà utilisé ce module pour construire une banque d'alimentation portable, vous pouvez le vérifier pour plus de détails sur ce tableau.
Étape 7: J'ai utilisé un module amplificateur élévateur 2 A cc à cc car Arduino atmega328p, amplificateur audio, circuit de microphone, bouton PTT, tout a besoin de 5 volts mais ma batterie ne peut fournir que 3,7 V à 4,2 V, j'ai donc besoin d'un convertisseur de suralimentation pour atteindre 5V avec plus de 1 ampère de puissance de sortie stable.
Après avoir construit le circuit, vous pouvez l'assembler dans un petit boîtier. J'ai utilisé une boîte en plastique et placé mes circuits comme indiqué dans l'image ci-dessous
Code Arduino Talkie Walkie
Le programme complet de votre talkie-walkie Arduino se trouve au bas de cette page. Dans cette section, discutons du fonctionnement du programme. Avant d'y arriver, vous devez inclure certaines bibliothèques répertoriées ci-dessous.
- Bibliothèque nRF24
- Bibliothèque audio nRF24
- Bibliothèque Maniaxbug RF24
Commencez la programmation en incluant les en-têtes Radio et Audio Library comme indiqué ci-dessous
#comprendre
Initialisez la radio RF sur les broches 7 et 8 et configurez le numéro de radio audio sur 0. Également, initialisez le bouton ppt sur la broche 3.
Radio RF24 (7,8); // Configurez la radio en utilisant les broches 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Configurer l'audio à l'aide de la radio et régler le numéro de radio 0 int talkButton = 3;
Dans la fonction de configuration, commencez le moniteur série à 115 200 bauds pour le débogage. Puis initialisez le bouton ppt connecté à la broche 3 en tant que broche d'interruption.
void setup () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // définit l'interruption pour vérifier le bouton de conversation sur le bouton press attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // définit l'état par défaut de chaque module pour recevoir rfAudio.receive (); }
Ensuite, nous avons une fonction appelée talk () qui est appelée en réponse à une interruption. Le programme vérifie l'état du bouton si le bouton est enfoncé et maintenu, il entre en mode de transmission pour envoyer l'audio. Si le bouton est relâché, il passe en mode réception.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } boucle void () {}
Le fonctionnement complet de ce projet peut être trouvé dans la vidéo ci-dessous. Le talkie-walkie produit du bruit pendant le fonctionnement, il s'agit du bruit de la fréquence porteuse du module nRF24L01. Il peut être réduit en utilisant un bon capteur de son ou un module microphone. Si vous avez des questions sur ce projet, vous pouvez les laisser dans la section commentaires ci-dessous. Vous pouvez également utiliser nos forums pour obtenir des réponses rapides à vos autres questions techniques.