Подключение радиочастотного модуля XY - WA 2,4 ГГц к Arduino для связи на большие расстояния

Несомненно, беспроводная связь является одной из ключевых технологий будущего. А в настоящее время широкое применение находят различные радиочастотные модули (RF modules), работающие на частотах диапазона 2,4 ГГц, в так называемом ISM диапазоне (ISM band) – диапазоне частот, выделенного для безлицензионного использования в науке, промышленности и медицине. В данной статье мы рассмотрим подключение к плате Arduino радиочастотного модуля с интерфейсом XY – WA, работающего на частотах диапазона 2,4 ГГц. Подобные модули обладают излучаемой мощностью до 100 мВт и могут обеспечивать передачу данных на расстояние до 250 м со скоростью до 1 Мбит/с. Подобные модули отлично подходят для беспроводной связи между микроконтроллерами, платами Arduino и Raspberry Pi. Также их можно использовать для создания радиостанций - в опубликованном на нашем сайте проекте радиостанций на основе платы Arduino использованы модули nRF24L01, однако вместо них можно приспособить и модули XY – WA (дальность, конечно, будет поменьше).

Внешний вид проекта организации связи между платами Arduino с помощью модулей XY – WA

Также на нашем сайте вы можете посмотреть все проекты с применением радиочастотных модулей. Кроме того, беспроводную связь на большие расстояния можно обеспечить с помощью модулей lora.

Необходимые компоненты

  1. Плата Arduino Uno – 2 шт. (купить на AliExpress).
  2. Приемопередающий модуль XY – WA 2,4 ГГц (XY - WA 2.4Ghz Transceiver module) – 2 шт. (купить на AliExpress).
  3. Соединительные провода.

Принципы работы радиочастотного модуля XY-WA 2,4 ГГц

Технические характеристики модуля

Модуль XY-WA имеет следующие технические характеристики:

  • рабочее напряжение: 2.2-3.6V;
  • диапазон рабочих температур: от -40 до +85 градусов Цельсия;
  • ток эмиссии: 15-24 mA;
  • ток приема: 18 mA;
  • ток покоя: 6 мкА.

Распиновка модуля

На следующем рисунке показано назначение контактов (распиновка) радиочастотного модуля с интерфейсом XY-WA, который мы использовали в нашем проекте. Это модуль типа A (Type A) и он содержит 8 контактов. Он имеет небольшой размер и может быть смонтирован поверх плат, применяемых в электронике.

Назначение контактов (распиновка) радиочастотного модуля с интерфейсом XY-WA

Распиновка модуля в другом исполнении показана на следующем рисунке.

Распиновка модуля XY-WA в исполнении Type B

Назначение контактов модуля приведено в следующей таблице.

Назначение контактов модуля XY-WA

Как работает модуль

Радиочастотные модули XY-WA 2,4 ГГц используются для передачи данных между двумя периферийными устройствами. Чтобы установить соединение между двумя радиочастотными модулями, необходимо чтобы они работали на одинаковой частоте. Для радиочастотных модулей с интерфейсом XY-WA рабочая частота может быть выбрана в диапазоне от 2,4 ГГц до 2,525 ГГц.

В нашем проекте мы соединили с помощью пайки и соединительных проводов контакты радиочастотного модуля XY-WA с колодками (джамперами типа male) на точечной плате (Zero board) чтобы в дальнейшем их было удобно подключать к плате Arduino.

Подключение соединительных проводов к модулю XY-WA

Каждый канал, на котором могут работать радиочастотные модули XY-WA, занимает полосу частот меньшую 1 МГц. Это значит что внутри диапазона от 2,4 ГГц до 2,525 ГГц мы можем разместить 125 не перекрывающихся по частоте каналов.

Для определения частоты выбранного канала можно использовать следующую формулу:

Frequency = 2400 + Channel selected (выбранный канал)

В качестве номера выбранного канала можно использовать число от 0 до 125.

Кратко рассмотрим достоинства, недостатки и особенности применения радиочастотных модулей.

Способы увеличения дальности работы радиочастотных модулей XY-WA:

  1. Увеличение выходной (излучаемой) мощности модулей. В большинстве модулей с интерфейсом XY-WA можно регулировать уровень излучаемой мощности.
  2. Уменьшение скорости передачи данных. Оно приводит к уменьшению занимаемой полосы частот, что, в свою очередь, улучшает реальную чувствительность приемника модуля, что в конечном итоге приводит к увеличению дальности связи.
  3. Изменение частотного канала может также повлиять на дальность связи – если использовать для связи более высокие номера каналов, которые не перекрываются по частоте с частотными каналами Wi-Fi диапазона 2400-2483,5 МГц и частотами других устройств, работающих в ISM диапазоне, то потенциально это может привести к уменьшению уровня вешних помех и, следовательно, увеличению дальности связи.

Проблемы, с которыми можно столкнуться при применении радиочастотных модулей XY-WA:

  1. Плохое электропитание может не только привести к уменьшению дальности связи, но также к появлению дополнительных шумов при работе модулей и некорректному их функционированию.
  2. Низкое напряжение питания может стать проблемой при приеме и передаче сигналов, поэтому необходимо выбрать хороший адаптер для питания данных модулей, обеспечивающий стабильное напряжение питания.
  3. Антенны низкого качества. Модули XY-WA поставляются со встроенными силиконовыми антеннами, которые выдерживают излучаемую мощность до 100 мВт. К сожалению, данные антенны не раскрывают весь потенциал данных модулей по обеспечению связи на большие расстояния.

Подверженность помехам радиочастотных модулей

К сожалению, все устройства, использующие для передачи сигналов радиоволны, подвержены воздействию широкого спектра помех, истониками которых могут являться источники электропитания. Батареи постоянного тока не генерируют никаких помех в радиодиапазоне, чего нельзя, к сожалению, сказать о преобразователях из переменного тока в постоянный (AC-DC converter), которые могут генерировать помехи, мешающие работе радиочастотных модулей.

Для борьбы с помехами от источников электропитания можно использовать следующие меры:

  1. Подключать по питанию (параллельно контактам для подачи питающего напряжения) к модулю небольшой конденсатор.
  2. Подтягивать по отношению к земле контакты MOSI и MISO чтобы уменьшить влияние шумов.

Интерфейс SPI

Для подключения радиочастотных модулей XY-WA к микроконтроллерам (в нашем случае к плате Arduino) используется интерфейс SPI. Достаточно подробно про использование данного интерфейса в плате Arduino можно прочитать в следующей статье.

Интерфейс SPI в настоящее время находит широкое применение в различных периферийных устройствах для передачи информации на короткие расстояния. Он представляет собой синхронный протокол последовательной передачи данных и обеспечивает полнодуплексную связь (full-duplex) связь по 4-м проводам (4-wire communication).

В протоколе SPI осуществляется взаимодействие между один ведущим (master) и несколькими (одним) ведомыми (slave) через контакты данного протокола SS (SS0, SS1, SS2,.....). На следующем рисунке представлен принцип управления ведущим нескольких ведомых. На контакте SS ведомого для осуществления связи с ним устанавливается уровень логического 0.

Принцип управления ведущим нескольких ведомых в протоколе SPI

В протоколе SPI доступны 4 режима (modes) передачи: mode 0, mode1, mode 2 и mode 3. Они осуществляют передачу информации по восходящему (rising) или спадающему (falling) фронту импульса синхронизации (clock signal), который обозначают как Clock phase. Также эти режимы определяют когда на линии синхронизации будет высокий или низкий уровень (clock polarity). В следующей таблице показана взаимосвязь указанных режимов передачи с полярностью (polarity) и фазой (phase) синхросигнала.

Взаимосвязь режимов передачи протокола SPI с полярностью (polarity) и фазой (phase) синхросигнала

Контакты интерфейса SPI имеют следующее назначение:
MISO (Master In Slave Out) – по этой линии ведомый передает данные ведущему;
MOSI (Master Out Slave In) – по этой линии ведущий передает данные ведомому;
SS (Slave Select) – с помощью этого контакта осуществляется выбор ведомого, которому ведущий может передавать данные;
SCK (Serial Clock) – поскольку SPI является синхронным протоколом передачи, то в нем осуществляется формирование импульсов синхронизации, которые помогают ведущему синхронизировать канал связи.

Схема проекта

Схема подключения радиочастотного XY - WA 2,4 ГГц к плате Arduino представлена на следующем рисунке.

Схема подключения радиочастотного XY - WA 2,4 ГГц к плате Arduino

Как вы можете видеть из представленной схемы, модуль XY - WA подключается к плате Arduino по интерфейсу SPI. Аналогичным образом его можно подключить к любому другому микроконтроллеру, поддерживающему работу по интерфейсу SPI.

В нашей схеме использованы следующие соединения между модулем XY-WA и платой Arduino:
- контакт сброса (reset pin, PIN 1) модуля – к контакту 6 Arduino;
- контакт CS модуля (PIN 3) – к контакту 5 Arduino;
- контакт Packet/Pkt (PIN 6) модуля – к контакту 4 Arduino;
- контакт MISO модуля – к контакту 12 Arduino;
- контакт MOSI модуля – к контакту 11 Arduino;
- контакт clock/CLK модуля – к контакту 13 Arduino;
- контакт земли модуля – к контакту 7 Arduino;
- контакт питания 3.3V модуля (PIN 8) – к контакту 8 Arduino.

Примечание: модули XY-WA изготавливаются в двух вариантах: Type A – изготовлен на основе печатной платы, и Type B – без печатной платы. В нашем проекте мы использовали Type A.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Для проекта нам понадобятся следующие библиотеки:

  1. Библиотека LT8920.h – необходима для работы с дешевыми приемопередающими модулями 2,4 ГГц LT8910/ LT8920.
  2. Библиотека SPI.h – необходима для работы по интерфейсу SPI.

Представленный ниже код может быть использован для обоих модулей поскольку они оба являются приемопередающими, то есть один модуль может работать в качестве передатчика, а другой – в качестве приемника, и наоборот.

Первым делом в программе нам необходимо подключить заголовочные файлы используемых библиотек и инициализировать контакты RST, CS, PKT.

Большая часть кода для работы с радиочастотными модулями XY-WA была взята с YouTube канала пользователя с ником Olegmih, хочется ему сказать большое спасибо за проделанную работу. Для более подробной информации по работе с данными модулями вы можете непосредственно обратиться к его YouTube каналу. Код программы пользователя Olegmih для работы с модулем XY-WA можно скачать по ссылке: https://drive.google.com/file/d/1l9dug_XT4s2RBVhKsfcMAz7I4Z6gg242/view.

Тестирование работы проекта

Для тестирования работы проекта мы сначала подключили радиочастотные модули к платам Arduino, которые затем мы подключили к ноутбуку.

Подключение радиочастотных модулей к платам Arduino

Тестирование работы проекта

Результат работы проекта вы можете наблюдать в окне монитора последовательной связи.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
356 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *