- Walkie Talkie za pomocą modułu RF nRF24L01
- Komponent wymagany dla Walkie Talkie opartego na Arduino
- Schemat obwodu Arduino Walkie Talkie
- Kod Walkie Talkie Arduino
Żyjemy w erze urządzeń 5G i 5G; Jednak stare technologie, takie jak system krótkofalówki i system komunikacji radiowej, są nadal najważniejsze w scenariuszach, w których wymagana jest zdalna, krótka, tania i tania komunikacja. Na przykład, jeśli masz firmę zajmującą się konstrukcją budowlaną lub ciężką, pracownicy muszą komunikować się ze sobą w celu skoordynowanej pracy. Za pomocą krótkofalówki mogą komunikować się ze sobą i rozpowszechniać krótki masaż lub instrukcje, naciskając po prostu przycisk „PTT”, aby przekazać głos innym pracownikom, aby mogli słuchać i postępować zgodnie z instrukcjami. Inną aplikacją mogą być inteligentne kaskiaby komunikować się ze stadem jeźdźców podczas długiej jazdy, proponowany model może komunikować się jednocześnie z sześcioma osobami. Jeśli chcesz sprawdzić inne typy projektów bezprzewodowej transmisji audio krótkiego zasięgu, odwiedź projekt bezprzewodowego nadajnika audio na podczerwień i nadajnika audio Li-Fi, korzystając z łączy.
Walkie Talkie za pomocą modułu RF nRF24L01
Głównym elementem tego projektu jest moduł RF NRF24L01 oraz Arduino Uno, które jest mózgiem lub procesorem. Dowiedzieliśmy się już, jak połączyć Nrf24L01 z Arduino, zdalnie sterując serwomotorem. Do tego projektu wybrano moduł RF NRF24L01, ponieważ ma kilka zalet w porównaniu z cyfrowym medium komunikacyjnym. Ma pasmo ISM o bardzo wysokiej częstotliwości 2,4 GHz, a szybkość transmisji danych może wynosić 250 kb / s, 1 Mb / s, 2 Mb / s. Posiada 125 możliwych kanałów w odstępach 1Mhz, więc moduł może wykorzystywać 125 różnych kanałów, co pozwala na posiadanie sieci 125 niezależnie pracujących modemów w jednym miejscu.
Co najważniejsze, sygnały NRF24L01 nie nakładają się ani nie krzyżują się z innymi systemami walkie-talkie, takimi jak policyjne krótkofalówki i kolejowe krótkofalówki i nie przeszkadzają innym walkie-talkie. Pojedynczy moduł nrf24l01 może komunikować się z innymi 6 modułami nrf24l01 w czasie, gdy są w stanie odbierania. Ponadto jest to moduł o niskim zużyciu energii, co jest dodatkową zaletą. Istnieją dwa typy modułów NRF24L01, które są szeroko dostępne i powszechnie używane, jeden to NRF24L01 +, a drugi to NRF24L01 + PA + LNA (pokazany poniżej) z wbudowaną anteną.
NRF24L01 + ma zintegrowaną antenę i tylko 100 m zakres. Nadaje się tylko do użytku w pomieszczeniach i nie nadaje się do komunikacji na duże odległości na zewnątrz. Ponadto, jeśli między nadajnikiem a odbiornikiem znajduje się ściana, transmisja sygnału jest bardzo słaba. NRF24L01 + PA + LNA z anteną zewnętrzną ma PA, który zwiększa moc sygnału przed transmisją. LNA to skrót od Low Noise Amplifier. Jest wyraźny, filtruje szum i wzmacnia wyjątkowo słaby i niepewny niski poziom sygnału odbieranego z anteny. Pomaga w generowaniu użytecznych poziomów sygnału i posiada zewnętrzną antenę 2dB, przez którą może transmitować 1000 metrów zasięgu antenowego , jest więc idealny do naszych projektów komunikacji walkie-talkie na zewnątrz.
Komponent wymagany dla Walkie Talkie opartego na Arduino
- NRF24L01 + PA + LNA z zewnętrzną anteną 2DB (2 szt.)
- Arduino UNO lub dowolna wersja Arduino
- Wzmacniacz audio (2 szt.)
- Obwód mikrofonu: Możesz zrobić to sam (omówione później) lub kupić moduł czujnika dźwięku.
- Moduł podwyższający napięcie DC na DC (2 szt.)
- Moduł regulatora napięcia 3,3 V AMS1117
- Wskaźnik zasilania LED (2 szt.)
- Rezystancja 470 omów (2 szt.)
- 4-calowy głośnik (2 szt.)
- przycisk (dla przycisku PTT)
- 104 PF do wykonania przycisku PTT (2 szt.)
- Kondensator NF 100 do NRF24L01 (2szt)
- Rezystancja 1k dla przycisku PTT (2szt)
- 2 komplety baterii litowo-jonowych
- Moduł ładowania i ochrony akumulatora Li-ion (2 szt.)
- Niektóre przewody połączeniowe, męskie szpilki, kropkowane płytki Vero
Schemat obwodu Arduino Walkie Talkie
Pełny schemat obwodu dla Arduino Walkie Talkie pokazano na poniższym obrazku. Schemat obwodu pokazuje wszystkie połączenia, w tym przycisk PTT, obwód mikrofonu i wyjście audio stereo.
Ważne: zakres napięcia wejściowego modułu NRF24L01 wynosi od 1,9 V do maksymalnie 3,6 V, a dla stabilności napięcia i prądu należy użyć kondensatora 100nf do + VCC i - GND, ale inne piny modułu nrf24l01 mogą tolerować sygnał 5 V poziomy.
Krok 1: Zacząłem od wykonania własnej, niestandardowej płytki PCB i płytki Arduino Atmega328p. Umieściłem IC Atmega328p na programatorze i sflashowałem go, a następnie wgrałem kod. Następnie dodałem kryształ 16 MHz do układu Atmega328p na (PB6, PB7) pinach 9 i 10. Zdjęcia mojej niestandardowej płytki PCB i zmontowanej płytki z zaprogramowanym układem scalonym pokazano poniżej.
Krok 2: Podłączyłem moduły NRF24L01, jak pokazano na schemacie obwodu w następującej kolejności. CE do cyfrowego pinu nr 7, CSN do cyfrowego pinu 8, SCK do cyfrowego pinu 13, MOSI do cyfrowego pinu 11, MISO do cyfrowego pinu 12 i IRQ do cyfrowego pinu 2.
W przypadku zasilania należy najpierw obniżyć napięcie z 5 V do 3,3 V przy dobrej stabilności prądu. Musisz również umieścić kondensator 100nF na VCC i masie modułu nrf24l01. Więc użyłem AMS1117, który jest 3,3-woltowym regulatorem napięcia, moduł również zmniejsza rozmiar twojego projektu i sprawia, że jest kompaktowy.
Jeśli chcesz samodzielnie wykonać tę płytkę regulatora napięcia, możesz kupić tylko 3,3-woltowy układ scalony regulatora i możesz to zrobić, dodając kilka czapek, rezystancję na wejściu i wyjściu, ponieważ jest to bardzo ważne dla modułu RF, ponieważ jest to wrażliwe urządzenie. Lub możesz użyć regulatora zmiennego napięcia LM317 do zbudowania obwodu regulowanego 3,3 V, tak jak to zrobiliśmy w projekcie zasilania płyty Breadboard.
Krok 3: Możesz kupić czujnik dźwięku lub wykonać prosty obwód mikrofonu, jak pokazano na schemacie obwodu. Składa się tylko z jednego tranzystora - tranzystora 2n3904 NPN. Poniższy obraz przedstawia domowy obwód mikrofonu zbudowany na płycie Vero. Możesz również sprawdzić ten prosty obwód przedwzmacniacza audio, aby uzyskać więcej informacji.
Aby lepiej zrozumieć, zrobiłem inną reprezentację całego związku z wartościami komponentów, jak widać poniżej
Krok 4: Aby wykonać połączenie między cyfrowym pinem 9 i 10 mikrokontrolera a wzmacniaczem audio, użyłem stereofonicznego wzmacniacza audio PAM8403, ponieważ domyślnie wyjście audio Arduino jest bardzo niskie (zwykle dźwięk można usłyszeć tylko za pomocą słuchawek, a nie głośnik, więc potrzebujemy stopnia wzmocnienia). Moduł może łatwo obsługiwać dwa głośniki laptopa i jest dostępny w bardzo niskiej cenie. Jest również wyposażony w bardzo mocny wzmacniacz audio w obudowie SMD, który zajmuje bardzo mało miejsca. Moduł wzmacniacza dźwięku PAM8403 pokazano poniżej.
WcześniejszePodłączenie jest bardzo proste, do zasilania wzmacniacza audio wymagane jest zasilanie od 3,7 V do 5 V. Lewy kanał i prawy kanał wejściowy audio z pinów 9 i 10 Arduino wraz z pinem uziemienia powinny być podane jako wejście dla tego modułu wzmacniacza, jak pokazano na schemacie obwodu. W moim przypadku użyłem pojedynczego 4-calowego głośnika 8 omów i użyłem tylko wyjścia prawego kanału. Jeśli chcesz, możesz użyć dwóch głośników z tym modułem.
Krok 5: Następnie zbudowałem przełącznik PTT za pomocą prostego przycisku. Dodałem kondensator 104PF lub 0,1 uf, aby zapobiec podskakiwaniu przełącznika lub błędnym sygnałom po naciśnięciu przełącznika. Pin 4 jest teraz bezpośrednio połączony z pinem D3 Arduino Digital, ponieważ przerwany pin jest przypisany do kodowania.
NRF24L01 + PA + LNA podczas przesyłania sygnału audio lub pakietów DANYCH zużywa więcej energii, a tym samym zużywa więcej prądu. Nagłe naciśnięcie przycisku PTT zwiększa zużycie energii. Aby poradzić sobie z tym nagle zwiększonym obciążeniem, należy użyć kondensatora 100nF na + vcc i uziemieniu, aby zapewnić stabilność transmisji modułu NRF24L01 + PA + LNA.
Po naciśnięciu przełącznika płyta Arduino otrzymuje przerwanie Arduino na swoim pinie D3. W programie zadeklarujemy cyfrowy pin 3 Arduino stale sprawdzając jego napięcie wejściowe. Jeśli napięcie wejściowe jest niskie, utrzymuje krótkofalówkę w trybie odbioru, a jeśli cyfrowy pin numer 3 jest wysoki, przełącza krótkofalówkę w tryb nadawczy, aby wysłać sygnał głosowy odebrany przez proces mikrofonu przez mikrokontroler i transmitować NRF24L01 + PA + LNA z anteną zewnętrzną.
Krok 6: Jako źródło zasilania wybrałem ten akumulator litowo-jonowy. Aby zasilić wszystkie komponenty, takie jak Arduino IC Atmega328p, NRF24L01 + PA + LNA, wzmacniacz audio, przycisk PTT i obwód mikrofonu, użyłem 2 zestawów baterii litowo-jonowych do tego projektu, jak pokazano poniżej.
Dobre ogniwo ma poziom napięcia od 3,8 V do 4,2 V, a napięcie ładowania wynosi tylko od 4 V do 4,2 V. Aby dowiedzieć się więcej o bateriach litowych, sprawdź powiązany artykuł. Akumulatory te są bardzo popularne w przenośnych urządzeniach elektronicznych i pojazdach elektrycznych. Ale ogniwa akumulatorów litowo-jonowych nie są tak wytrzymałe jak inne akumulatory, wymagają ochrony przed przeładowaniem i zbyt szybkim rozładowaniem, co oznacza, że prąd i napięcie ładowania / rozładowania powinny być utrzymywane w bezpiecznych granicach. Dlatego zastosowałem najbardziej śmigłowy moduł ładowania akumulatorów Li-ion - TP4056. Wcześniej używaliśmy tego modułu do budowy przenośnego banku mocy, możesz to sprawdzić, aby uzyskać więcej informacji na temat tej płyty.
Krok 7: Użyłem 2- amperowego modułu wzmacniacza prądu stałego do prądu stałego , ponieważ Arduino atmega328p, wzmacniacz audio, obwód mikrofonu, przycisk PTT wszystko potrzebuje 5 V, ale moja bateria może dostarczać tylko 3,7 V do 4,2 V, więc potrzebuję konwertera boost Aby osiągnąć 5 V przy więcej niż 1 A stabilnej mocy wyjściowej.
Po zbudowaniu obwodu można go złożyć w małej obudowie. Użyłem plastikowego pudełka i umieściłem moje obwody, jak pokazano na poniższym obrazku
Kod Walkie Talkie Arduino
Kompletny program dla walkie-talkie Arduino można znaleźć na dole tej strony. W tej sekcji omówimy, jak działa program. Zanim się tam dostaniesz, musisz dołączyć kilka bibliotek, które są wymienione poniżej.
- Biblioteka nRF24
- Biblioteka audio nRF24
- Biblioteka Maniaxbug RF24
Rozpocznij programowanie, dołączając nagłówki Radia i Biblioteki audio, jak pokazano poniżej
#zawierać
Zainicjuj radio RF na pinach 7 i 8 i ustaw numer radia audio na 0. Zainicjuj także przycisk ppt na pinie 3.
Radio RF24 (7,8); // Ustaw radio za pomocą pinów 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Ustaw dźwięk za pomocą radia i ustaw na radio numer 0 int talkButton = 3;
W funkcji konfiguracji uruchom monitor szeregowy z prędkością transmisji 115200 w celu debugowania. Następnie zainicjalizuj przycisk ppt, podłącz do pinu 3 jako styk przerwania.
void setup () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // ustawia przerwanie, aby sprawdzić, czy przycisk jest rozmawiany, naciśnij przycisk attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // ustawia domyślny stan dla każdego modułu do odbioru rfAudio.receive (); }
Następnie mamy funkcję o nazwie talk (), która jest wywoływana w odpowiedzi na przerwanie. Program sprawdza stan przycisku, jeśli przycisk jest wciśnięty i przytrzymany, przechodzi w tryb nadawania w celu wysłania dźwięku. Jeśli przycisk zostanie zwolniony, przechodzi w tryb odbioru.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } void loop () {}
Pełne działanie tego projektu można znaleźć w poniższym filmie wideo. Walkie Talkie wydaje pewien hałas podczas pracy, jest to hałas z częstotliwości nośnej modułu nRF24L01. Można go zmniejszyć, stosując dobry czujnik dźwięku lub moduł mikrofonowy. Jeśli masz jakieś pytania dotyczące tego projektu, możesz je zostawić w sekcji komentarzy poniżej. Możesz również skorzystać z naszych forów, aby uzyskać szybkie odpowiedzi na inne pytania techniczne.