- Walkie Talkie с использованием RF-модуля nRF24L01
- Компонент, необходимый для рации на базе Arduino
- Схема Arduino Walkie Talkie
- Код для рации Arduino
Мы живем в эпоху устройств с поддержкой 5G и 5G; однако старые технологии, такие как рация и система радиосвязи, по-прежнему имеют первостепенное значение в сценариях, где требуется удаленная, короткая, дешевая и недорогая связь. Например, если у вас есть строительная компания или компания, занимающаяся строительством тяжелых грузов, вашим рабочим необходимо общаться друг с другом для согласованной работы. С помощью рации они могут общаться друг с другом и распространять короткие сообщения или инструкции, просто нажав кнопку «PTT», чтобы передать голос другим работникам, чтобы они могли слушать и выполнять инструкции. Другое приложение могло быть в умных шлемахЧтобы общаться между стаей гонщиков во время длительной поездки, предлагаемая здесь модель может общаться между шестью людьми одновременно. Если вы хотите ознакомиться с другими типами проектов беспроводной передачи звука на короткие расстояния, посетите проект IR-Based Wireless Audio Transmitter и Li-Fi Audio Transmitter по ссылкам.
Walkie Talkie с использованием RF-модуля nRF24L01
Основным компонентом этого проекта является RF-модуль NRF24L01 и Arduino Uno, который является мозгом или процессором. Мы уже узнали, как связать Nrf24L01 с Arduino, удаленно управляя серводвигателем. Для этого проекта выбран радиочастотный модуль 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.3V AMS1117
- Светодиодный индикатор питания (2шт)
- Сопротивление 470 Ом (2шт)
- Громкоговоритель 4 дюйма (2 шт.)
- кнопка (для кнопки PTT)
- 104 ПФ для изготовления кнопки РТТ (2шт)
- Конденсатор 100 НФ для NRF24L01 (2шт)
- Сопротивление 1к для кнопки РТТ (2шт)
- 2 комплекта литий-ионных батарей
- Модуль зарядки и защиты литий-ионного аккумулятора (2 шт.)
- Некоторая перемычка, штыревой штырь, пунктирная плата веро
Схема Arduino Walkie Talkie
Полная принципиальная схема Arduino Walkie Talkie показана на изображении ниже. На принципиальной схеме показаны все подключения, включая кнопку PTT, схему микрофона и стереофонический аудиовыход.
Важно: диапазон входного напряжения модуля NRF24L01 составляет от 1,9 В до максимум 3,6 вольт, а для стабильности напряжения и тока вы должны использовать конденсатор 100 нФ в + VCC и - GND, но другие контакты модуля nrf24l01 могут выдерживать сигнал 5 вольт. уровни.
Шаг 1: Я начал с изготовления самодельной печатной платы и платы Arduino Atmega328p. Я поместил микросхему Atmega328p в программатор, прошил ее, а затем загрузил код. Затем я добавил кристалл 16 МГц на микросхему Atmega328p на контакты 9 и 10 (PB6, PB7). Ниже показаны фотографии моей изготовленной на заказ печатной платы и собранной платы с запрограммированной IC.
Шаг 2: Я подключил модули NRF24L01, как показано на принципиальной схеме, в следующем порядке. CE к цифровому выводу 7, CSN к выводу 8, SCK к цифровому выводу 13, MOSI к цифровому выводу 11, MISO к цифровому выводу 12 и IRQ к цифровому выводу 2.
Для источника питания необходимо сначала снизить напряжение с 5 вольт до 3,3 В с хорошей стабильностью тока. Кроме того, вы должны поставить конденсатор 100 нФ на VCC и землю модуля nrf24l01. Итак, я использовал AMS1117, который представляет собой стабилизатор напряжения на 3,3 В, модуль также уменьшает размер вашего проекта и делает его компактным.
Если вы хотите сделать эту плату регулятора напряжения самостоятельно, вы можете купить только микросхему регулятора напряжения на 3,3 В и сделать это, добавив несколько крышек, сопротивление на входе и выходе, поскольку это очень важно для вашего ВЧ-модуля, потому что это чувствительное устройство. Или вы можете использовать регулятор переменного напряжения LM317 для создания регулируемой цепи 3,3 В, как мы это делали в проекте источника питания макетной платы.
Шаг 3: Вы можете приобрести звуковой датчик или сделать простую схему микрофона, как показано на принципиальной схеме. Он состоит всего из одного транзистора - 2n3904 NPN транзистора. На изображении ниже показана самодельная схема микрофона, построенная на плате Vero. Вы также можете проверить эту простую схему предварительного усилителя звука для получения дополнительной информации.
Для лучшего понимания я сделал другое представление всей связи со значениями компонентов, как вы можете видеть ниже.
Шаг 4: Для подключения цифрового вывода 9 и 10 вашего микроконтроллера к аудиоусилителю я использовал стерео аудиоусилитель PAM8403, потому что по умолчанию аудиовыход Arduino очень низкий (обычно вы можете слышать звук только с помощью наушников., а не громкоговоритель, поэтому нам нужен каскад усиления). Модуль может легко управлять двумя динамиками ноутбука и доступен по очень низкой цене. Кроме того, он поставляется с очень мощным звуковым усилителем в SMD-корпусе, который требует очень мало места. Модуль аудиоусилителя PAM8403 показан ниже.
Взаимодействие с другими людьмиПодключение очень простое, для питания усилителя звука требуется источник питания от 3,7 В до 5 В. Аудиовходы левого и правого каналов от выводов 9 и 10 Arduino вместе с выводом заземления должны быть заданы как вход для этого модуля усилителя, как показано на принципиальной схеме. В моем случае я использовал один 4-дюймовый динамик на 8 Ом и использовал только выход правого канала. При желании с этим модулем можно использовать два динамика.
Шаг 5: Затем я построил переключатель PTT с помощью простой кнопки. Я добавил конденсатор на 104 пФ или 0,1 мкФ, чтобы предотвратить дребезг переключателя или ошибочные сигналы при нажатии переключателя. Вывод 4 теперь напрямую связан с выводом D3 Arduino Digital, так как прерванный вывод назначается кодировке.
NRF24L01 + PA + LNA при передаче аудиосигнала или пакетов данных потребляет больше энергии, следовательно, он потребляет больше тока. Когда вы резко нажимаете кнопку PTT, потребление энергии увеличивается. Чтобы справиться с этой внезапно увеличившейся нагрузкой, вы должны использовать конденсатор 100 нФ на + vcc и заземлении для стабильности передачи модуля 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 вольт. Чтобы узнать больше о литиевых батареях, вы можете проверить связанную статью. Эти батареи очень широко используются в портативных электронных устройствах и электромобилях. Но литий-ионные аккумуляторные элементы не так надежны, как другие аккумуляторы, они нуждаются в защите от чрезмерного заряда и слишком быстрого разряда, а это означает, что ток и напряжение заряда / разряда должны поддерживаться в безопасных пределах. Поэтому я использовал самый пропеллерный модуль зарядки Li-ion аккумулятора - TP4056. Ранее мы использовали этот модуль для создания Portable Power Bank, вы можете проверить это для более подробной информации на этой плате.
Шаг 7: Я использовал 2 усилитель постоянного тока на этап постоянного тока до бустерного модуля, так как Arduino ATmega328P, аудио усилитель, схема микрофона, PTT кнопки все должны 5 вольт, но моя батарея может поставить только 3.7V до 4.2V, поэтому мне нужен повышающий преобразователь чтобы достичь 5 В при стабильной выходной мощности более 1 А.
После того, как вы построили схему, вы можете собрать ее в небольшом корпусе. Я использовал пластиковую коробку и разместил свои схемы, как показано на изображении ниже.
Код для рации Arduino
Полную программу для рации Arduino можно найти внизу этой страницы. В этом разделе давайте обсудим, как работает программа. Прежде чем попасть туда, вам необходимо включить некоторые библиотеки, перечисленные ниже.
- Библиотека nRF24
- Аудиотека nRF24
- Библиотека Maniaxbug RF24
Начните программирование, включив заголовки Radio и Audio Library, как показано ниже.
#включают
Инициализируйте RF Radio на контактах 7 и 8 и установите номер аудио-радио на 0. Также инициализируйте кнопку ppt на контакте 3.
Радио RF24 (7,8); // Устанавливаем радио с помощью контактов 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 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 () {если (digitalRead (talkButton)) rfAudio.transmit (); иначе rfAudio.receive (); } void loop () {}
Полную работу этого проекта можно найти в видео по ссылке ниже. Во время работы рация издает некоторый шум, это шум несущей частоты модуля nRF24L01. Его можно уменьшить, используя хороший звуковой датчик или микрофонный модуль. Если у вас есть какие-либо вопросы по этому проекту, вы можете оставить их в разделе комментариев ниже. Вы также можете использовать наши форумы для получения быстрых ответов на другие ваши технические вопросы.