- Walkie Talkie mit dem RF-Modul nRF24L01
- Erforderliche Komponente für Walkie Talkie auf Arduino-Basis
- Arduino Walkie Talkie Schaltplan
- Walkie Talkie Arduino Code
Wir leben in der Ära der 5G- und 5G-fähigen Geräte. Alte Technologien wie das Walkie-Talkie-System und das HF-Kommunikationssystem sind jedoch immer noch von größter Bedeutung in Szenarien, in denen eine Remote-, Kurzstrecken-, billige und kostengünstige Kommunikation erforderlich ist. Wenn Sie beispielsweise ein Bauunternehmen oder eine schwergewichtige Baufirma haben, müssen Ihre Mitarbeiter für ein koordiniertes Arbeiten miteinander kommunizieren. Mithilfe eines Walkie-Talkies können sie miteinander kommunizieren und kurze Massagen oder Anweisungen verbreiten, indem sie einfach die Taste „PTT“ drücken, um Stimme für andere Mitarbeiter zu übertragen, damit diese zuhören und den Anweisungen folgen können. Eine andere Anwendung könnten die Smart Helme seinUm hier während einer langen Fahrt zwischen einer Gruppe von Fahrern zu kommunizieren, kann das hier vorgeschlagene Modell zwischen sechs Personen gleichzeitig kommunizieren. Wenn Sie andere Arten von drahtlosen Audioübertragungsprojekten mit kurzer Reichweite ausprobieren möchten, besuchen Sie das IR-basierte drahtlose Audioübertragungs- und Li-Fi-Audioübertragungsprojekt über die Links.
Walkie Talkie mit dem RF-Modul nRF24L01
Die Hauptkomponente dieses Projekts ist das HF-Modul NRF24L01 und Arduino Uno, das Gehirn oder Prozessor. Wir haben bereits gelernt, wie man Nrf24L01 mit Arduino verbindet, indem man einen Servomotor fernsteuert. Für dieses Projekt wird das HF-Modul NRF24L01 ausgewählt, da es gegenüber einem digitalen Kommunikationsmedium mehrere Vorteile bietet. Es hat ein 2,4 GHz sehr hochfrequentes ISM-Band und die Datenrate kann 250 kbps, 1 Mbit / s, 2 Mbit / s betragen. Es verfügt über 125 mögliche Kanäle mit einem Abstand von 1 MHz, sodass das Modul 125 verschiedene Kanäle verwenden kann, wodurch ein Netzwerk von 125 unabhängig arbeitenden Modems an einem Ort möglich ist.
Am wichtigsten ist, dass sich NRF24L01-Signale nicht mit anderen Walkie-Talkie-Systemen wie Polizei-Walkie-Talkie und Eisenbahn-Walkie-Talkie überlappen oder die Schnittstelle kreuzen und andere Walkie-Talkies nicht stören. Ein einzelnes nrf24l01-Modul kann zu einem Zeitpunkt mit den anderen 6 nrf24l01-Modulen kommunizieren, wenn sie sich im Empfangszustand befinden. Es ist auch ein Modul mit geringem Stromverbrauch, was ein zusätzlicher Vorteil ist. Es gibt zwei Arten von NRF24L01-Modulen, die weit verbreitet sind und häufig verwendet werden: eines ist NRF24L01 + und eines ist NRF24L01 + PA + LNA (siehe unten) mit eingebauter Antenne.
Der NRF24L01 + verfügt über eine Bordantenne und eine Reichweite von nur 100 Metern. Es ist nur für den Innenbereich geeignet und nicht für die Fernkommunikation im Freien geeignet. Wenn zwischen Sender und Empfänger eine Wand vorhanden ist, ist die Signalübertragung außerdem sehr schlecht. Der NRF24L01 + PA + LNA mit einer externen Antenne verfügt über einen PA, der die Leistung des Signals vor der Übertragung erhöht. LNA steht für Low Noise Amplifier. Es ist klar, filtert das Rauschen heraus und verstärkt den extrem schwachen und unsicheren niedrigen Pegel des von der Antenne empfangenen Signals. Es hilft bei der Erzeugung nützlicher Signalpegel und verfügt über eine externe 2-dB-Antenne, über die 1000 Meter Reichweite in der Luft übertragen werden können. Daher ist es perfekt für unsere Outdoor-Walkie-Talkie-Kommunikationsprojekte.
Erforderliche Komponente für Walkie Talkie auf Arduino-Basis
- NRF24L01 + PA + LNA mit externer 2DB-Antenne (2 Stück)
- Arduino UNO oder eine beliebige Version von Arduino
- Audioverstärker (2 Stück)
- Mikrofonschaltung: Sie können es selbst herstellen (später besprochen) oder ein Schallsensormodul erwerben.
- DC-DC-Aufwärtsverstärkermodul (2 Stück)
- Spannungsreglermodul 3,3 V AMS1117
- Betriebsanzeige-LED (2 Stück)
- 470 Ohm Widerstand (2 Stück)
- Ein 4-Zoll-Lautsprecher (2 Stück)
- Druckknopf (für PTT-Knopf)
- 104 PF zur Herstellung der PTT-Taste (2 Stück)
- 100 NF Kondensator für NRF24L01 (2 Stück)
- 1k Widerstand für PTT-Taste (2 Stück)
- 2 Sätze Li-Ionen-Akku
- Li-Ionen-Batterielade- und Batterieschutzmodul (2 Stück)
- Etwas Überbrückungskabel, männlicher Kopfstift, gepunktete Vero-Platine
Arduino Walkie Talkie Schaltplan
Das vollständige Schaltbild für das Arduino Walkie Talkie ist in der Abbildung unten dargestellt. Das Schaltbild zeigt alle Anschlüsse einschließlich der PTT-Taste, der Mikrofonschaltung und des Stereo-Audioausgangs.
Wichtig: Der Spannungseingangsbereich des NRF24L01-Moduls beträgt 1,9 V bis maximal 3,6 Volt. Für die Spannungs- und Stromstabilität müssen Sie einen 100-nf-Kondensator in + VCC und - GND verwenden. Andere Pins des Moduls nrf24l01 können jedoch 5-Volt-Signale tolerieren Ebenen.
Schritt 1: Ich begann mit der Herstellung von hausgemachten kundenspezifischen Leiterplatten und Arduino Atmega328p-Karten. Ich hatte den IC Atmega328p auf den Programmierer gestellt und ihn geflasht und dann den Code hochgeladen. Dann habe ich 16-MHz-Quarz auf Atmega328p-IC an (PB6, PB7) Pin 9 und 10 hinzugefügt. Die Bilder meiner maßgeschneiderten Leiterplatte und der zusammengebauten Platine mit programmiertem IC sind unten dargestellt.
Schritt 2: Ich habe NRF24L01-Module wie im Schaltplan gezeigt in der folgenden Reihenfolge angeschlossen. CE zu digitalem Pin Nummer 7, CSN zu Pin Nummer 8, SCK zu digitalem Pin 13, MOSI zu digitalem Pin 11, MISO zu digitalem Pin 12 und IRQ zu digitalem Pin 2.
Für die Stromversorgung müssen Sie zuerst die Spannung von 5 Volt auf 3,3 V bei guter Stromstabilität senken. Außerdem müssen Sie einen 100nF-Kondensator an den VCC und die Masse des nrf24l01-Moduls anschließen. Also habe ich AMS1117 verwendet, einen 3,3-Volt-Spannungsregler. Das Modul reduziert auch Ihre Projektgröße und macht es kompakt.
Wenn Sie diese Spannungsreglerplatine selbst herstellen möchten, können Sie nur einen 3,3-Volt-Regler-IC kaufen und durch Hinzufügen einiger Kappen, Widerstand in Ein- und Ausgang, da dies für Ihr HF-Modul sehr wichtig ist, da es ein empfindliches Gerät ist. Oder Sie können den variablen Spannungsregler LM317 verwenden, um einen geregelten 3,3-V-Stromkreis aufzubauen, wie wir es im Breadboard-Stromversorgungsprojekt getan haben.
Schritt 3: Sie können einen Schallsensor kaufen oder eine einfache Mikrofonschaltung herstellen, wie im Schaltplan gezeigt. Es besteht nur aus einem Transistor - 2n3904 NPN-Transistor. Das folgende Bild zeigt die hausgemachte Mikrofonschaltung auf einer Vero-Platine. Sie können diese einfache Audio-Vorverstärkerschaltung auch auf weitere Informationen überprüfen.
Zum besseren Verständnis habe ich eine weitere Darstellung der gesamten Verbindung mit Komponentenwerten erstellt, wie Sie unten sehen können
Schritt 4: Um eine Verbindung zwischen dem digitalen Pin 9 und 10 Ihres Mikrocontrollers und Ihrem Audioverstärker herzustellen, habe ich den Stereo-Audioverstärker PAM8403 verwendet, da der Arduino-Audioausgang standardmäßig sehr niedrig ist (normalerweise können Sie den Ton nur mit einem Kopfhörer hören, kein Lautsprecher, also brauchen wir eine Verstärkungsstufe). Das Modul kann problemlos zwei Laptop-Lautsprecher ansteuern und ist zu sehr geringen Kosten erhältlich. Außerdem wird ein sehr leistungsstarker Audioverstärker in einem SMD-Gehäuse mitgeliefert, der nur sehr wenig Platz benötigt. Das Audioverstärkermodul PAM8403 ist unten dargestellt.
.Die Verbindung ist sehr einfach. Für die Stromversorgung des Audioverstärkers ist eine Stromversorgung von 3,7 V bis 5 V erforderlich. Der Audioeingang für den linken und rechten Kanal von Arduino Pin 9 und 10 sollte zusammen mit dem Erdungsstift als Eingang für dieses Verstärkermodul angegeben werden, wie im Schaltplan gezeigt. In meinem Fall habe ich einen einzelnen 4-Zoll-8-Ohm-Lautsprecher verwendet und nur den rechten Kanalausgang verwendet. Wenn Sie möchten, können Sie mit diesem Modul zwei Lautsprecher verwenden.
Schritt 5: Als nächstes baute ich den PTT-Schalter mit einem einfachen Druckknopf. Ich habe einen 104PF- oder 0.1uf-Kondensator hinzugefügt, um ein Abprallen des Schalters oder fehlerhafte Signale zu verhindern, wenn der Schalter gedrückt wird. Pin 4 ist jetzt direkt mit Arduino Digital Pin D3 verbunden, da der Codierung ein unterbrochener Pin zugewiesen ist.
Der NRF24L01 + PA + LNA verbraucht beim Senden eines Audiosignals oder von DATA-Paketen mehr Strom, daher verbraucht er mehr Strom. Wenn Sie die PTT-Taste plötzlich drücken, steigt der Stromverbrauch. Um diese plötzlich erhöhte Last zu bewältigen, müssen Sie einen 100nF-Kondensator an + vcc und Masse für die Übertragungsstabilität des NRF24L01 + PA + LNA-Moduls verwenden.
Wenn der Schalter gedrückt wird, empfängt die Arduino-Karte einen Arduino-Interrupt an ihrem Pin D3. Im Programm erklären wir, dass der digitale Pin 3 von Arduino ständig seine Eingangsspannung überprüft. Wenn die Eingangsspannung niedrig ist, bleibt das Walkie-Talkie im Empfangsmodus, und wenn der digitale Pin 3 hoch ist, schaltet es das Walkie-Talkie in den Sendemodus, um das vom Mikrofonprozess aufgenommene Sprachsignal über den Mikrocontroller zu senden und durch zu senden NRF24L01 + PA + LNA mit externer Antenne.
Schritt 6: Für die Stromversorgung habe ich diesen Li-Ionen-Akku gewählt. Für die Stromversorgung aller Komponenten wie Arduino IC Atmega328p, NRF24L01 + PA + LNA, Audioverstärker, PTT-Taste und Mikrofonschaltung habe ich für dieses Projekt zwei Sätze Li-Ionen-Akkus verwendet, wie unten gezeigt.
Eine gute Zelle hat einen Spannungspegel von 3,8 V bis 4,2 Volt und die Ladespannung beträgt nur 4 V bis 4,2 Volt. Weitere Informationen zu Lithiumbatterien finden Sie im verlinkten Artikel. Diese Batterien werden sehr häufig in tragbaren elektronischen Geräten und Elektrofahrzeugen verwendet. Li-Ionen-Batteriezellen sind jedoch nicht so robust wie andere Batterien. Sie müssen vor zu schnellem Überladen und Entladen geschützt werden. Daher sollten Strom und Spannung beim Laden / Entladen in sicheren Grenzen gehalten werden. Daher habe ich das am meisten Propeller-Li-Ionen-Batterielademodul verwendet - TP4056. Wir haben dieses Modul bereits zum Aufbau einer tragbaren Power Bank verwendet. Weitere Informationen zu dieser Karte finden Sie hier.
Schritt 7: Ich habe ein 2-Ampere- Gleichstrom-Gleichstrom-Booster- Modul verwendet, da Arduino atmega328p, Audioverstärker, Mikrofonschaltung, PTT-Taste alles 5 Volt benötigt, aber meine Batterie kann nur 3,7 V bis 4,2 V liefern, also brauche ich einen Aufwärtswandler 5V mit mehr als 1 Ampere stabiler Ausgangsleistung zu erreichen.
Nachdem Sie die Schaltung aufgebaut haben, können Sie sie in einem kleinen Gehäuse zusammenbauen. Ich benutzte eine Plastikbox und platzierte meine Schaltkreise wie im Bild unten gezeigt
Walkie Talkie Arduino Code
Das vollständige Programm für Ihr Arduino-Walkie-Talkie finden Sie unten auf dieser Seite. In diesem Abschnitt diskutieren wir, wie das Programm funktioniert. Bevor Sie dorthin gelangen, müssen Sie einige Bibliotheken einschließen, die unten aufgeführt sind.
- nRF24-Bibliothek
- nRF24-Audiobibliothek
- Maniaxbug RF24 Bibliothek
Beginnen Sie die Programmierung, indem Sie die Header der Radio- und Audiobibliothek wie unten gezeigt einfügen
#einschließen
Initialisieren Sie das RF-Radio an den Pins 7 und 8 und stellen Sie die Audio-Radio-Nummer auf 0 ein. Initialisieren Sie auch die ppt-Taste an Pin 3.
RF24-Radio (7,8); // Radio mit den Pins 7 (CE) 8 (CS) einrichten RF24Audio rfAudio (Radio, 0); // Richten Sie das Audio über das Radio ein und setzen Sie es auf die Funknummer 0 int talkButton = 3;
Beginnen Sie innerhalb der Setup-Funktion mit dem seriellen Monitor bei 115200 Baudrate zum Debuggen. Initialisieren Sie dann die ppt-Taste, die als Interrupt-Pin mit Pin 3 verbunden ist.
void setup () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // setzt den Interrupt, um nach Tasten zu suchen. // legt den Standardstatus für jedes Modul fest, um rfAudio.receive () zu empfangen; }}
Als nächstes haben wir eine Funktion namens talk (), die als Reaktion auf eine Unterbrechung aufgerufen wird. Das Programm überprüft den Status der Taste, wenn die Taste gedrückt gehalten wird, und wechselt in den Sendemodus, um das Audio zu senden. Wenn die Taste losgelassen wird, wechselt sie in den Empfangsmodus.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); sonst rfAudio.receive (); } void loop () {}
Die vollständige Arbeitsweise dieses Projekts finden Sie im unten verlinkten Video. Das Walkie Talkie erzeugt während des Betriebs einige Geräusche. Dies ist das Geräusch der Trägerfrequenz des nRF24L01-Moduls. Sie kann durch Verwendung eines guten Schallsensors oder Mikrofonmoduls reduziert werden. Wenn Sie Fragen zu diesem Projekt haben, können Sie diese im Kommentarbereich unten hinterlassen. Sie können auch unsere Foren verwenden, um schnelle Antworten auf Ihre anderen technischen Fragen zu erhalten.