- Рація за допомогою RF-модуля nRF24L01
- Компонент, необхідний для рації на базі Arduino
- Схема рації Arduino Walkie Talkie
- Код рації Arduino
Ми живемо в епоху 5G та 5G пристроїв; однак, старі технології, такі як рація та система радіочастотного зв'язку, як і раніше мають першочергове значення у сценаріях, коли потрібен віддалений, короткий відстань, дешевий та недорогий зв'язок. Наприклад, якщо у вас є будівельна або вагомобудівна компанія, то ваші працівники повинні спілкуватися між собою для скоординованої роботи. За допомогою рації вони можуть спілкуватися між собою та розповсюджувати короткий масаж або інструкції, просто натискаючи кнопку “PTT”, щоб передавати голос іншим працівникам, щоб вони слухали та виконували інструкції. Ще одна програма може бути в розумних шоломахдля спілкування між зграєю вершників під час тривалої їзди, запропонована модель тут може спілкуватися між шістьма людьми одночасно. Якщо ви хочете ознайомитися з іншими типами проектів бездротової передачі звуку на короткий діапазон, відвідайте проект IR Wireless Wireless Transmitter and Li-Fi Audio Transmitter за допомогою посилань.
Рація за допомогою RF-модуля nRF24L01
Основним компонентом цього проекту є RF-модуль NRF24L01 та Arduino Uno, який є мозком або процесором. Ми вже навчилися взаємодіяти Nrf24L01 з Arduino, віддалено керуючи сервомотором. Для цього проекту обраний RF-модуль NRF24L01, оскільки він має ряд переваг перед цифровим носієм зв'язку. Він має дуже високочастотний діапазон ISM 2,4 ГГц, а швидкість передачі даних може становити 250 кбіт / с, 1 Мбіт / с, 2 Мбіт / с. Він має 125 можливих каналів між інтервалами в 1 МГц, тому модуль може використовувати 125 різних каналів, що дозволяє мати мережу з 125 незалежно працюючих модемів в одному місці.
Найголовніше, що сигнали NRF24L01 не перекриваються та не перетинаються з іншими системами рації, такими як рація міліції та залізничною рацією, і це не заважає іншим раціям. Один модуль nrf24l01 може взаємодіяти з іншими 6 модулями nrf24l01 в той час, коли вони перебувають у стані прийому. Крім того, це модуль з низьким енергоспоживанням, що є додатковою перевагою. Існує два типи модулів NRF24L01, які є широко доступними та широко використовуються, один - NRF24L01 +, а інший - NRF24L01 + PA + LNA (показано нижче) із вбудованою антеною.
NRF24L01 + має вбудовану антену і тільки 100 метрів в діапазон. Він хороший лише для внутрішнього використання і не підходить для зовнішніх міжміських комунікацій. Більше того, якщо між передавачем і приймачем присутня стінка, передача сигналу дуже погана. NRF24L01 + PA + МШУ із зовнішньою антеною має PA, що підвищує потужність сигналу перед передачею. LNA розшифровується як малошумний підсилювач. Це ясно, фільтрує шум і посилює надзвичайно слабкий і невизначений низький рівень сигналу, що надходить від антени. Це допомагає створювати корисні рівні сигналу, і у нього є зовнішня антена на 2 дБ, через яку вона може передавати 1000 метрів охоплення в ефірі, тому він ідеально підходить для наших зовнішніх проектів спілкування по рації.
Компонент, необхідний для рації на базі Arduino
- NRF24L01 + PA + LNA із зовнішньою антеною 2DB (2 шт)
- Arduino UNO або будь-яка версія Arduino
- Підсилювач звуку (2шт)
- Схема мікрофона: Ви можете зробити це самостійно (обговорюватиметься далі) або придбати модуль звукового датчика.
- Модуль посилення від постійного до постійного струму (2 шт.)
- 3,3 В модуль регулятора напруги AMS1117
- Світлодіодний індикатор живлення (2шт)
- Опір 470 Ом (2шт)
- 4-дюймовий гучномовець (2 шт.)
- кнопка (для кнопки PTT)
- 104 PF для виготовлення кнопки PTT (2шт)
- Конденсатор 100 NF для NRF24L01 (2шт)
- Опір 1k для кнопки PTT (2шт)
- 2 комплекти літій-іонної батареї
- Літій-іонний акумулятор і модуль захисту батареї (2 шт.)
- Деякі перемички, чоловічий штифт заголовка, пунктирна плата vero
Схема рації Arduino Walkie Talkie
Повна електрична схема рації Arduino показана на зображенні нижче. Принципова схема показує всі з'єднання, включаючи кнопку РТТ, мікрофонну схему та стереозвуковий вихід.
Важливо: Діапазон вхідної напруги модуля NRF24L01 становить 1,9 в до максимум 3,6 вольт, а для стабільності напруги та струму потрібно використовувати конденсатор 100 нф в + VCC і - GND, а інші висновки модуля nrf24l01 можуть переносити 5-вольтний сигнал рівнів.
Крок 1: Я розпочав з виготовлення саморобної друкованої плати та плати Arduino Atmega328p. Я поклав IC-програвач Atmega328p на програміст, прошив його, а потім завантажив код. Потім я додав кристал 16 МГц на мікросхему Atmega328p на штифтах 9 і 10. (PB6, PB7). Зображення моєї виготовленої на замовлення друкованої плати та зібраної плати із запрограмованою ІС наведено нижче.
Крок 2: Я підключив модулі NRF24L01, як показано на схемі в наступному порядку. CE на цифровий контакт 7, CSN - номер 8, SCK - на цифровий контакт 13, MOSI - на цифровий контакт 11, MISO - на цифровий контакт 12 і IRQ на цифровий контакт 2.
Для джерела живлення потрібно спочатку знизити напругу з 5 вольт до 3,3 в при хорошій стабільності струму. Крім того, на VCC і землю модуля nrf24l01 потрібно встановити конденсатор 100 нФ. Отже, я використовував AMS1117, який є 3,3-вольтовим регулятором напруги, модуль також зменшує розмір вашого проекту і робить його компактним.
Якщо ви хочете зробити цю плату регулятора напруги самостійно, ви можете придбати лише 3,3-вольтну ІС регулятора і можете зробити це, додавши деякі ковпачки, опір на вході та виході, оскільки це дуже важливо для вашого RF-модуля, оскільки це чутливий пристрій. Або ви можете використовувати регулятор напруги LM317 для змінної напруги, щоб побудувати схему регулювання 3,3 В, як це було зроблено в проекті електроживлення.
Крок 3: Ви можете придбати датчик звуку або зробити просту схему мікрофона, як показано на схемі. Він складається лише з одного транзистора - 2n3904 транзистора NPN. На зображенні нижче показано саморобну мікрофонну схему, побудовану на платі Vero. Ви також можете перевірити цю просту схему попереднього підсилювача звуку для отримання додаткової інформації.
Для кращого розуміння я зробив ще одне уявлення про весь зв’язок зі значеннями компонентів, як ви можете бачити нижче
Крок 4: Для встановлення з'єднання з цифрового вивідного номера мікроконтролера 9 та 10 до підсилювача звуку я використовував стереозвуковий підсилювач PAM8403, оскільки за замовчуванням звуковий вихід Arduino дуже низький (зазвичай звук можна почути лише за допомогою навушників, а не гучномовець, тому нам потрібен етап посилення). Модуль може легко керувати двома динаміками ноутбука і доступний за дуже низькою вартістю. Крім того, він постачається з дуже потужним підсилювачем звуку в пакеті SMD, який вимагає дуже мало місця. Модуль підсилювача звуку PAM8403 показано нижче.
UПідключення дуже просте, для живлення аудіопідсилювача потрібно джерело живлення від 3,7 до 5 В. Звуковий вхід лівого та правого каналів від висновків 9 та 10 Arduino разом із заземлюючим висновком слід подавати як вхід для цього підсилювального модуля, як показано на схемі. У моєму випадку я використовував один 4-дюймовий 8-омний динамік і використовував лише правий вихідний канал. Якщо ви хочете, ви можете використовувати два динаміки з цим модулем.
Крок 5: Далі я побудував перемикач РТТ за допомогою простої кнопки. Я додав конденсатор 104PF або 0,1 мкФ, щоб запобігти підскакуванню перемикача або нестійким сигналам при натисканні на перемикач. Зараз висновок 4 безпосередньо з'єднаний з виводом D3 Arduino Digital, оскільки перериваний висновок призначається кодуванню.
NRF24L01 + PA + LNA при передачі звукового сигналу або пакетів DATA споживає більше енергії, отже, споживає більше струму. При раптовому натисканні кнопки "НІГ" споживання енергії збільшується. Для роботи з цим раптово збільшеним навантаженням потрібно використовувати конденсатор 100 нФ на + vcc і Ground для стабільності передачі модуля NRF24L01 + PA + LNA.
При натисканні перемикача плата Arduino отримує переривання Arduino на свій штифт D3. У програмі ми оголосимо цифровий вивід 3 Arduino постійно перевіряючи його вхідну напругу. Якщо вхідна напруга низька, він підтримує рацію в режимі прийому, а якщо цифровий штифт номер 3 високий, він перемикає рацію в режим передачі для передачі голосового сигналу, сприйнятого процесом мікрофона, через мікроконтролер і передачі через NRF24L01 + PA + LNA із зовнішньою антеною.
Крок 6: Для джерела живлення я вибрав цю літій-іонну батарею. Для живлення всіх таких компонентів, як Arduino IC Atmega328p, NRF24L01 + PA + LNA, підсилювач звуку, кнопка PTT та мікрофонна схема, для цього проекту я використав 2 комплекти літій-іонних батарей, як показано нижче.
Хороший елемент має рівень напруги від 3,8 до 4,2 вольта, а зарядна напруга - від 4 до 4,2 вольта. Щоб дізнатись більше про літієві батареї, ви можете переглянути статтю, на яку посилається Ці батареї дуже широко використовуються в портативних електронних пристроях та електромобілях. Але елементи літій-іонних акумуляторів не такі міцні, як інші батареї, вони потребують захисту від перезарядки та розряду занадто швидко, тобто струм заряду / розрядки та напруга повинні підтримуватися в безпечних межах. Тому я використовував найбільш пропелерний модуль зарядки літій-іонних акумуляторів - TP4056. Раніше ми використовували цей модуль для створення портативного Power Bank, ви можете перевірити його, щоб отримати докладнішу інформацію на цій платі.
Крок 7: Я використовував 2 ампер постійного струму для постійного струму посилюючий підсилювальний модуль, оскільки Arduino atmega328p, підсилювач звуку, мікрофонна схема, кнопка PTT потребують всього 5 вольт, але мій акумулятор може подавати лише 3,7 В до 4,2 В, тому мені потрібен підсилювальний перетворювач для досягнення 5В при більш ніж 1 А постійної вихідної потужності.
Після того, як ви побудували схему, ви можете зібрати її в невеликому корпусі. Я використав пластикову коробку і розмістив свої схеми, як показано на малюнку нижче
Код рації Arduino
Повну програму для вашої рації Arduino можна знайти внизу цієї сторінки. У цьому розділі давайте обговоримо, як працює програма. Перш ніж потрапити туди, вам слід включити кілька бібліотек, перелічених нижче.
- Бібліотека nRF24
- Аудіобібліотека nRF24
- Бібліотека Maniaxbug RF24
Почніть програмування, включивши заголовки бібліотеки радіо та аудіо, як показано нижче
#включати
Ініціалізуйте радіочастотне радіо на контактах 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); // встановлює переривання, щоб перевірити наявність кнопки розмови, натисніть кнопку attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // встановлює стан за замовчуванням для кожного модуля для отримання rfAudio.receive (); }
Далі ми маємо функцію talk (), яка викликається у відповідь на переривання. Програма перевіряє стан кнопки, якщо її натиснути та утримувати, вона переходить у режим передачі для передачі звуку. Якщо кнопку відпустити, вона переходить у режим прийому.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); ще rfAudio.receive (); } недійсний цикл () {}
Повну роботу цього проекту можна знайти у відеозаписі нижче. Walkie Talkie видає деякий шум під час роботи, це шум від несучої частоти модуля nRF24L01. Це можна зменшити, використовуючи хороший звуковий датчик або мікрофонний модуль. Якщо у вас виникли запитання щодо цього проекту, ви можете залишити їх у розділі коментарів нижче. Ви також можете скористатися нашими форумами, щоб швидко отримати відповіді на інші технічні запитання.