- Уоки токи с помощта на RF модул nRF24L01
- Необходим компонент за базираната на Arduino Walkie Talkie
- Диаграма на уоки токи Arduino
- Код на уоки токи Arduino
Живеем в ерата на 5G и 5G устройства; стари технологии като системата за уоки-токи и RF комуникационната система все още са от първостепенно значение при сценарии, при които се изисква отдалечена, къса, евтина и евтина комуникация. Например, ако имате сграда или строителна фирма с тежки конструкции, работниците ви трябва да общуват помежду си за координирана работа. С помощта на уоки-токи, те могат да комуникират помежду си и да разпространяват кратък масаж или инструкции, като просто натискат бутона „РТТ“, за да предават глас на други работници, за да ги слушат и да следват инструкциите. Друго приложение може да бъде в интелигентните каскиза да комуникирате между глутница ездачи по време на дълго шофиране, предложеният модел тук може да комуникира между шест души наведнъж. Ако искате да проверите други видове проекти за безжично предаване на аудио с малък обхват, посетете IR базиран безжичен аудио предавател и Li-Fi аудио предавател, като използвате връзките.
Уоки токи с помощта на RF модул nRF24L01
Основният компонент на този проект е RF модулът NRF24L01 и Arduino Uno, който е мозъкът или процесорът. Вече научихме как да свързваме Nrf24L01 с Arduino чрез дистанционно управление на сервомотор. За този проект е избран RF модулът NRF24L01, тъй като той има няколко предимства пред дигиталната комуникационна среда. Той има 2,4 GHz много високочестотна лента ISM и скоростта на предаване на данни може да бъде 250kbps, 1Mbps, 2 Mbps. Той има 125 възможни канала между 1Mhz интервал, така че модулът може да използва 125 различни канала, което прави възможно да има мрежа от 125 независимо работещи модема на едно място.
Най-важното е, че сигналите NRF24L01 не се припокриват или не се свързват с други уоки-токи системи като полицейски уоки-токи и железопътни уоки-токи и това не пречи на други уоки-токи. Един модул nrf24l01 може да комуникира с останалите 6 модула nrf24l01 в момент, когато те са в приемащо състояние. Също така, това е модул с ниска консумация на енергия, което е допълнително предимство. Има два типа модули NRF24L01, които са широко достъпни и често използвани, един е NRF24L01 +, а друг е NRF24L01 + PA + LNA (показан по-долу) с вградена антена.
В NRF24L01 + има бордовата антена и само на 100 метра разстояние. Той е добър само за вътрешна употреба и не е подходящ за външни комуникации на дълги разстояния. Освен това, ако между предавателя и приемника има стена, предаването на сигнала е много лошо. В NRF24L01 + БКП + LNA с външна антена има PA, че увеличава силата на сигнала, преди предаването. LNA означава усилвател с нисък шум. Ясно е, филтрира шума и усилва изключително слабото и несигурно ниско ниво на сигнала, получен от антената. Той помага за създаването на полезни нива на сигнала и има 2 dB външна антена, чрез която може да предава 1000 метра покритие в ефир, така че е идеален за нашите проекти за комуникация с уоки-токи на открито.
Необходим компонент за базираната на Arduino Walkie Talkie
- NRF24L01 + PA + LNA с външна 2DB антена (2 бр.)
- Arduino UNO или която и да е версия на Arduino
- Аудио усилвател (2бр)
- Схема на микрофона: Можете да го направите сами (обсъдено по-късно) или да закупите модул за звуков сензор.
- Модул за усилване на DC към DC (2бр)
- 3.3V модул на регулатора на напрежение AMS1117
- Индикатор за захранване (2бр)
- 470 ома съпротивление (2бр)
- 4-инчов високоговорител (2бр)
- бутон (за PTT бутон)
- 104 PF за изработка на PTT бутон (2бр)
- 100 NF кондензатор за NRF24L01 (2бр)
- 1k съпротивление за PTT бутон (2бр)
- 2 комплекта литиево-йонна батерия
- Модул за зареждане на литиево-йонна батерия и защита на батерията (2бр)
- Някакъв джъмпер, мъжки щифт за заглавна част, пунктирана веро табла
Диаграма на уоки токи Arduino
Пълната схема на веригата за уоки токи Arduino е показана на изображението по-долу. Схемата на схемата показва всички връзки, включително PTT бутона, микрофонна верига и стерео аудио изход.
Важно: Диапазонът на входно напрежение на модула NRF24L01 е 1,9v до максимум 3,6 волта и за стабилност на напрежение и ток трябва да използвате кондензатор 100nf в + VCC и - GND, но други щифтове на модула nrf24l01 могат да понасят 5-волтов сигнал нива.
Стъпка 1: Започнах с изработката на домашно изработени PCB и Arduino Atmega328p платка. Бях сложил IC Atmega328p на програмиста и го флаширах и след това качих кода. След това добавих 16 MHz кристал на Atmega328p IC на (PB6, PB7) щифтове 9 и 10. Снимките на моята PCB и сглобената платка с програмирана IC са показани по-долу.
Стъпка 2: Свързах модули NRF24L01, както е показано на електрическата схема в следния ред. CE към цифров пин номер 7, CSN към пин номер 8, SCK към цифров пин 13, MOSI към цифров пин 11, MISO към цифров пин 12 и IRQ към цифров пин 2.
За захранването трябва първо да намалите напрежението от 5 волта на 3.3v с добра стабилност на тока. Освен това трябва да поставите кондензатор 100nF на VCC и земята на модула nrf24l01. И така, използвах AMS1117, който е 3.3-волтов регулатор на напрежение, модулът също намалява размера на вашия проект и го прави компактен.
Ако искате сами да направите тази платка с регулатор на напрежение, можете да си купите само 3,3-волтова интегрална схема на регулатора и можете да я направите, като добавите някои капачки, съпротивление във входа и изхода, тъй като е много важно за вашия RF модул, защото е чувствително устройство. Или можете да използвате регулатора на променливо напрежение LM317, за да изградите 3.3V регулирана верига, както направихме в проекта за захранване на Breadboard.
Стъпка 3: Можете да закупите звуков сензор или да направите проста схема на микрофона, както е показано на схемата. Състои се само от един транзистор - 2n3904 NPN транзистор. Изображението по-долу показва самоделната микрофонна схема, изградена върху платка Vero. Можете също да проверите тази проста аудио схема за предварително усилване за повече информация.
За по-добро разбиране направих друго представяне на цялата връзка със стойностите на компонентите, както можете да видите по-долу
Стъпка 4: За осъществяването на връзка от цифровия щифт 9 и 10 на вашия микроконтролер към вашия аудио усилвател използвах стерео аудио усилвателя PAM8403, тъй като по подразбиране аудио изходът на Arduino е много нисък (обикновено можете да чувате звук само с помощта на слушалки, а не високоговорител, така че се нуждаем от етап на усилване). Модулът може да управлява лесно два високоговорителя за лаптоп и се предлага на много ниска цена. Освен това се предлага с много мощен аудио усилвател в SMD пакет, който изисква много малко място. Модулът за усилвател на аудио PAM8403 е показан по-долу.
Връзката е много проста, за захранване на аудио усилвателя е необходимо захранване от 3.7V до 5V. Аудио входът от левия и десния канал от пинове 9 и 10 на Arduino заедно със заземяващия щифт трябва да бъдат дадени като вход за този усилващ модул, както е показано на схемата. В моя случай съм използвал един 4-инчов високоговорител с 8 ома и съм използвал само десен канал. Ако искате, можете да използвате два високоговорителя с този модул.
Стъпка 5: След това изградих PTT превключвателя с помощта на обикновен бутон. Добавих кондензатор 104PF или 0.1uf, за да предотвратя подскачащи или нестабилни сигнали при натискане на превключвателя. Пин 4 вече е директно свързан с Arduino Digital пин D3, тъй като прекъснатият пин се присвоява на кодирането.
NRF24L01 + PA + LNA при предаване на аудио сигнал или DATA пакети консумира повече енергия, следователно консумира повече ток. Когато изведнъж натиснете бутона РТТ, консумацията на енергия се увеличава. За да се справите с този внезапно увеличен товар, трябва да използвате кондензатор 100nF на + vcc и Ground за стабилност на предаване на модула NRF24L01 + PA + LNA.
При натискане на превключвателя платката Arduino получава Arduino Interrupt на своя пин D3. В програмата ще декларираме цифровия щифт 3 на Arduino непрекъснато да проверява входното му напрежение. Ако входното напрежение е ниско, той поддържа уоки-токито в режим на приемане и ако цифровият щифт номер 3 е висок, той превключва уоки-токито в режим на предаване за изпращане на гласов сигнал, прихващан от процеса на микрофона през микроконтролера и предава чрез NRF24L01 + PA + LNA с външна антена.
Стъпка 6: За захранване избрах тази литиево-йонна батерия. За захранване на всички компоненти като Arduino IC Atmega328p, NRF24L01 + PA + LNA, аудио усилвател, PTT бутон и микрофонна схема използвах 2 комплекта литиево-йонна батерия за този проект, както е показано по-долу.
Една добра клетка има ниво на напрежение 3.8v до 4.2 волта, а напрежението на зареждане е само 4v до 4.2 волта. За да научите повече за литиевите батерии, можете да проверите свързаната статия. Тези батерии се използват много популярно в преносими електронни устройства и електрически превозни средства. Но клетките на литиево-йонните батерии не са толкова здрави, колкото другите батерии, те се нуждаят от защита от презареждане и разреждане твърде бързо, което означава, че токът на зареждане / разреждане и напрежението трябва да се поддържат в безопасни граници. Затова използвах най-пропелерния модул за зареждане на литиево-йонна батерия - TP4056. Преди това използвахме този модул за изграждане на преносима Power Bank, можете да проверите това за повече подробности на тази дъска
Стъпка 7: Използвах 2 Amp dc to dc усилващ бустер модул, защото Arduino atmega328p, аудио усилвател, микрофонна верига, PTT бутон всичко се нуждае от 5 волта, но батерията ми може да достави само 3,7 V до 4,2 V, така че имам нужда от усилващ преобразувател да достигне 5V с повече от 1 Amp стабилна изходна мощност.
След като изградите веригата, можете да я сглобите в малко заграждение. Използвах пластмасова кутия и поставих схемите си, както е показано на изображението по-долу
Код на уоки токи Arduino
Пълната програма за вашето уоки токи Arduino можете да намерите в долната част на тази страница. В този раздел нека обсъдим как работи програмата. Преди да стигнете до там, трябва да включите някои библиотеки, които са изброени по-долу.
- nRF24 библиотека
- Аудио библиотека nRF24
- Библиотека Maniaxbug RF24
Започнете програмирането, като включите заглавията на радио и аудио библиотека, както е показано по-долу
#include
Инициализирайте RF радиото на щифтове 7 и 8 и настройте номера на аудио радиото на 0. Също така инициализирайте бутона ppt на щифт 3.
Радио RF24 (7,8); // Настройте радиото с помощта на щифтове 7 (CE) 8 (CS) RF24Audio rfAudio (радио, 0); // Настройте аудиото с помощта на радиото и задайте на радио номер 0 int talkButton = 3;
Вътре в функцията за настройка започнете сериен монитор на скорост 115200 бод за отстраняване на грешки. След това инициализирайте ppt бутона, свържете се към щифт 3 като прекъсващ щифт.
void setup () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // задава прекъсване, за да се провери за бутон за разговор abutton натиснете attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // задава състоянието по подразбиране за всеки модул да получава rfAudio.receive (); }
След това имаме функция, наречена talk (), която се извиква в отговор на прекъсване. Програмата проверява състоянието на бутона, ако бутонът е натиснат и задържан, той влиза в режим на предаване, за да изпрати звука. Ако бутонът бъде освободен, той влиза в режим на получаване.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); иначе rfAudio.receive (); } void loop () {}
Цялостната работа на този проект може да бъде намерена във видеото, свързано по-долу. Уоки токито произвежда известен шум по време на работа, това е шумът от носещата честота на модула nRF24L01. Тя може да бъде намалена с помощта на добър звуков сензор или микрофонен модул. Ако имате някакви въпроси относно този проект, можете да ги оставите в раздела за коментари по-долу. Можете също да използвате нашите форуми за получаване на бързи отговори на другите ви технически въпроси.