Связь мк при помощи rf модулей

RF – модули своими руками (TX,RX модули) прием-передача

Источник: http://radiolubitel.moy.su/blog/rf_moduli_svoimi_rukami_tx_rx_moduli_priem_peredacha/2015-01-05-231

RF РАДИОМОДУЛИ НА 433 МГЦ

Источник: http://radioskot.ru/publ/spravochnik/rf_radiomoduli_na_433_mgc/2-1-0-1119

Радиоуправляемая модель с нуля

Всем доброго, три месяца тому назад – сидя «на ответах маил ру» наткнулся на вопрос: http://otvet.mail.ru/question/92397727 , после данного мной ответа автор вопроса начал писать мне в личку, из переписки стало известно что Тов.

«Ivan Ruzhitsky», он же «STAWR» строит р/у машинку по возможности без «дорогих» заводских железяк.Из покупного у него имелись RF модули на 433МГц и «ведро» радиодеталей.

Я не то чтобы «заболел» этой задумкой, но все же стал размышлять о возможности реализации данного проекта с технической стороны.На тот момент я в теории радиоуправления был уже довольно не плохо подкован (я так думаю), кроме того; некоторые наработки уже были на вооружении.

Для тех кому не интересно, или не хочет читать – видео «креплю» в шапку – поставил минус и свободен.

Ну а для людей которым интересно – Администрация придумала кнопку……

Итак:Все узлы делались «на коленке» соответственно «красоты» никакой, основная задача выяснить – на сколько данный проект осуществим и во сколько это «вылезит» в рублях и в трудонях.ПУЛЬТ:Самодельный передатчик делать не стал по двум причинам:1. У Ивана он уже есть.2.

Однажды пытался замутить 27МГц – ни чего хорошего из этого не вышло.Поскольку управление задумывалось пропорциональным, всякие пульты от китайского хлама отпали сами собой.

Схему кодера (шифратор каналов) взял с этого сайта: http://ivan.bmstu.

ru/avia_site/r_main/HWR/TX/CODERS/3/index.html

Спасибо огромное авторам, именно из за этого устройства мне пришлось еще научиться «прошивать» МК.

Передатчик и приемник купил тут-же на «Парке» правда на 315МГц, просто выбирал подешевле: Модуль супергетеродинного приемника 3310 и модуль передатчика 315RF для систем беспроводного управления

На сайте с кодером есть все необходимое – сама схема, печатная плата «под утюг» и целая куча прошивок с различными расходами.

Корпус пульта спаян из стеклотекстолита, стики взял от вертолетного пульта на ИК управлении, можно было и от комповского геймпада, но жена меня убила бы, она на нем играет в «DmC», Отсек для батареек от тог-же пульта.

Приемник есть, но чтобы тачка ехала нужен еще и декодер (дешифратор каналов), вот его-то искать пришлось очень долго – у меня даже «гугл» вспотел, ну как говорится «ищущий да обрящет» и вот он: http://homepages.paradise.net.nz/bhabbott/decoder.html

Там же и прошивки для МК.Регулятор: Изначально сделал тот что попроще:

Но ездить только передом не айс и был выбран вот этот: 

Ссылка на сайт: http://vrtp.ru/index.php?showtopic=18549&st=600Там же и прошивки.Перерыв гору материнок и видео карт нужных транзисторов не нашел, а именно для верхнего плеча (Р-канальные), поэтому Н-мост (это узел который питает мотор) был спаян на базе Тошибовской микросхемы из видеомагнитофона «TA7291P»,максимальный ток 1,2А – что меня вполне устраивало (не TRAXXAS – же делаю), плату рисовал маркером за 20р, травил хлорным железом, паял со стороны дорожек. Вот что получилось.В эфир излучается «чистый» РРМ, конечно не есть хорошо, на самолет я такое не поставлю, а для игрушки пойдет и так.Машинка взята заводская, от братьев китайцев, вся трибуха кроме ходового двигателя удалена и на её место всунут наш с Иваном проект, хоть мы и заняты им порознь, задумка-то его!

Потрачено:Комплект RF модулей – 200рДва МК PIC12F675 – по 40р за штуку.Серва – TG9e 75р

+3 вечера.

Если будут вопросы с радостью отвечу, (о многом не написал)
С уважением Василий.

Источник: http://www.parkflyer.ru/blogs/view_entry/2755/

RF модули HC-12 с UART интерфейсом

Источник: http://AVRproject.ru/publ/kak_podkljuchit/rf_moduli_hc_12_s_uart_interfejsom/2-1-0-174

Ардуино: радиомодуль на 433 МГц

На этом уроке мы решим задачу по передаче радиосигнала между двумя контроллерами Ардуино с помощью популярного приемопередатчика с частотой 433МГц.

На самом деле, устройство по передаче данных состоит из двух модулей: приемника и передатчика. Данные можно передавать только в одном направлении. Это важно понимать при использовании этих модулей.

Например, можно сделать дистанционное управление любым электронным устройством, будь то мобильный робот или, например, телевизор.

В этом случае данные будут передаваться от пульта управления к устройству. Другой вариант — передача сигналов с беспроводных датчиков на систему сбора данных.

 Здесь уже маршрут меняется, теперь передатчик стоит на стороне датчика, а приемник на стороне системы сбора.

Модули могут иметь разные названия: MX-05V, XD-RF-5V, XY-FST, XY-MK-5V, и т.п., но все они имеют примерно одинаковый внешний вид и нумерацию контактов. Также, распространены две частоты радиомодулей: 433 МГц и 315 МГц.

1. Подключение

Передатчик имеет всего три вывода: Gnd, Vcc и Data.

Подключаем их к первой плате Ардуино по схеме:

автор:    Сергей   г.Кременчуг

Иногда возникает ситуация , когда имеются в наличии ПАВ- резонаторы на те  частоты, на которые промышленность не выпускает приемные модули . Да и не секрет , что стоимость промышленных микросборок  не маленькая около 7у.е. ( RX 5000 ) способно отбить охоту экспериментировать у кого угодно.

Современная элементная база позволяет собрать и передатчик и приемник самостоятельно с характеристиками , как минимум ,  не худшими, чем у промышленных модулей.

Передатчик данных.

Стандартная схема , испытанная многими радиолюбителями.

Состоит из управляемого задающего генератора выполняющего одновременно роль смесителя и усилителя мощности собранных на транзисторах BFP67 его аналог  BFP183R .

Мощность около 10 мВт , потребляемый ток 15 мА. Ток задающего генератора около 2 мА. Потребляемый ток и мощность оконечного каскада  можно регулировать резисторами смещения. Следует помнить при этом, что ток оконечного каскада свыше 50 мА способен вывести из строя транзистор применяемый в данной конструкции.

Приемник данных.

Приемник – сверхрегенератор с чувствительностью около 1 мкв . Работоспособность сохраняется от 3 до 6 вольт никуда при этом не «уходя» по частоте.

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

Настройка приемника производится сдвиганием и раздвиганием витков катушки в цепи коллектора . Применение емкостей параллельно коллекторной катушке нежелательно так, как это ухудшает добротность контура.

На частоту 423,2 МГц контур имеет 9 витков.

В проведенных многочисленных испытаниях выяснилось , что применение дополнительного УВЧ совместно с правильно настроенным приемником подобного , типа ни чего не дает в плане улучшения чувствительности , а лишь ухудшая динамику сверхрегенератора допускает некоторую небрежность его настройки.

АМ сигнал , принятый  приемником , имеет очень малую амплитуду, поэтому он сначала усиливается, а затем подается на вход компаратора  ( порогового устройства ).

На выходе компаратора появляется лог 1, если  уровень напряжения на его входе превышает определенный уровень.

В процессе настройки приемника   сигнал, излучаемый передатчиком , удобно контролировать еще в аналоговой форме после первого усилителя ( вывод 1 LM 358 ), подсоединив туда вход обычного УНЧ.

Скачать печатные платы в формате lay.

К счастью сейчас цены постоянно падают и сейчас можно приобрести приемник + передатчик можно приобрести примерно за 1$, я закупаюсь ТУТ

Там же есть и готовые приемники с релейными модулями , но больше всего мне нравятся миниатюрные передатчики H34A-433  как ТУТ и цена нормальная 3$ за 5шт.

Как организовать цифровую связь, используя дешевые, по ценам eBay, RF модули 433/315 МГц, вы узнаете из этого небольшого обзора. Эти радиомодули обычно продают в паре – с одним передатчиком и одним приемником. Пару можно купить на eBay по $4, и даже $2 за пару, если вы покупаете 10 штук сразу.

Большая часть информации в интернете обрывочна и не очень понятна. Поэтому мы решили проверить эти модули и показать, как получить с их помощью надежную связь USART -> USART.

Распиновка радиомодулей

В общем, все эти радиомодули имеют подключение 3 основных контакта (плюс антенна);

Передатчик

  • Напряжение vcc (питание +) 3В до 12В (работает на 5В)
  • GND (заземление -)
  • Приём цифровых данных.

Приемник

  • Напряжение vcc (питание +) 5В (некоторые могут работать и на 3.3 В)
  • GND (заземление -)
  • Выход полученых цифровых данных.

Передача данных

Когда передатчик не получает на входе данных, генератор передатчика отключается, и потребляет в режиме ожидания около нескольких микроампер. На испытаниях вышло 0,2 мкА от 5 В питания в выключенном состоянии. Когда передатчик получает вход каких-то данных, он излучает на 433 или 315 МГц несущей, и с 5 В питания потребляет около 12 мА.

Передатчик можно питать и от более высокого напряжения (например 12 В), которое увеличивает мощность передатчика и соответственно дальность. Тесты показали с 5 В питанием до 20 м через несколько стен внутри дома.

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

Тестирование RF модулей

При испытаниях обоих модулей от +5В источника постоянного тока, а также с 173 мм вертикальной штыревой антенной.

(для частоты 433,92 МГц это “1/4 волны”), было получено реальных 20 метров через стены, и тип модулей не сильно влияет на эти тесты. Поэтому можно предположить, что эти результаты типичны для большинства блоков.

 Был использован цифровой источник сигнала с точной частотой и 50/50 скважностью, это было использовано для модуляции данных передатчика. 

Выше показан простой вариант блока для последовательной передачи информации микроконтроллеру, которая будет получена с компьютера. Единственное изменение – добавлен танталовый конденсатор 25 В 10 мкф на выводы питания (Vcc и GND) на оба модуля.

Вывод

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

   Форум

 Прикупил на пробу парочку новых беспроводных модулей HC-12. Эти модули работают на частоте 433 МГц и, если верить описанию, работают на дистанции до 1,8 км.

при максимальной мощности передатчика 100 мВт. Но самый смак в том, что они подключаются к устройству по стандартному протоколу UART, также присутствует поддержка AT-команд, для кое-каких настроек.

  И все это по 4$ за один модуль.

 Модуль построен на трансивере SI4463  и микроконтроллере STM8S003F3SI4463 это универсальная микросхема трансивер от Silicon Labs, способная работать на частотах 119-1050 МГц, и скоростью передачи данных до 1 Мбит/с.

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

Ниже кратенько приведу характеристики модуля:

  • Диапазон рабочих частот: 433,4 – 473,0 МГц
  • Выбор частоты с шагом 400 кГц
  • 8 уровней мощности передатчика, максимальная мощность 100 мВт
  • Дальность связи до 1,8 км
  • Напряжение питания в диапазоне 3,2 – 5,5 В
  • Размеры модуля 28х14 мм

Вид со стороны элементов

С обратной ничего нет, только маркировка

 Сложностей в работе с модулями никаких нет, подключай и передавай. По умолчанию они работают на частоте 433,4 МГц (канал 001), мощность передачи выставлена 100мВт,  скорость порта 9600 бод.

Все эти параметры можно изменить с помощью специальных АТ-команд. Для того чтобы модуль перевести в режим настроек необходимо ножку SET замкнуть на землю.

Список поддерживаемых команд ниже:

 АТ-команда  Описание команды
 АТ   Тестовый запрос. Модуль должен ответить “ОК”
 AT+Bxxxx   Установка скорости порта. Доступные значения 1200, 2400, 4800, 9600, 19200, 38400, 57600 и 115200 бод. По умолчанию стоит 9600 бод.
 AT+Cxxxx   Установка канала связи от 001 до 100. Изменение частоты работы происходит с шагом 400 кГц. По умолчанию модуль работает на канале 001, что соответствует частоте 433,4 МГц.
 AT+FUx  Установка режима работы (FU1, FU2, FU3, FU4). FU1 – режим сохранения энергии, потребляемый ток 3,6 мА. FU2 – экстремальный режим сохранения энергии, потребляемый ток 80 мкА. FU3 – режим полной скорости, потребляемый ток 16 мА. (режим стоит по умолчанию) FU4 – режим максимальной дальности, потребляемый ток 16 мА. скорость порта понижается до 1200 бод.
 AT+Px   Установка мощности передачи данных (от 1 до 8). По умолчанию стоит значение 8, что соответствует максимальному значению мощности (100 мВт)
 AT+RB   Запрос установленной скорости порта UART (baud rate)
 AT+RC   Запрос установленного канала связи (проще говоря, узнаем частоту работы трансивера)
 AT+RF   Запрос установленного режима работы
 AT+RP   Запрос установленной мощности передачи
 AT+RX   Эта команда объединяет 4 предыдущие и позволяет узнать все установленные параметры
 AT+V   Запрос версии прошивки
 AT+SLEEP   Перевод модуля в спящий режим, в котором потребление составляет около 22 мкА.  Вывод из спящего режима происходит автоматически при поступлении любых данных.
 AT+DEFAULT   Сброс всех настроек по умолчанию

Пример запросов установленных параметров

 Самым интересным для меня было проверить максимально возможное расстояние, на котором модуль сможет передавать/принимать данные. Поэтому настроил на обоих модулях режим максимальной дальности FU4, остальные настройки оставил по умолчанию (мощность 100 мВт, частота связи 433,4 МГц).

  Первый модуль использовал как репитер, замкнув ножки Tx и Rx, запитал от Li-Ion аккума и закрепил его на крыше. Второй модуль подсоединил к минитерминалу, взял с собой GPS трекер, сел на велосипед и поехал в сторону где меньше всего построек на пути сигнала.  По пути отправлял минитерминалом какое-нибудь сообщение, до тех пор пока сообщения не перестали возвращаться.

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

Получившееся расстояние уверенного приема (кликабельно)

 По итогу могу сказать что в режиме FU4 модуль уверенно бьет на пересечёнке 1,5 км (прямая видимость между модулями пропала через 500 метров), на скриншоте видно что сигнал шел через большой лесной массив. Все это время связь была стабильной.

И заглох он только тогда, когда я свернул на трассу вдоль которой идет лесополоса, которая и заглушила весь сигнал. Уверен, что в прямой видимости модуль отработает заявленные 1,8 км.

И это на антенну что шла в комплекте, думаю если использовать выносную направленную (для этого как раз есть специальный разъем на модуле) можно выжать из него гораздо большую дистанцию.

 Модуль мне понравился: заявленные характеристики держит, потребление не большое, миниатюрные размеры,  простота работы и самое главное невысокая цена.

Покупал у этого продавца

Документация на модуль HC-12

Передатчик MX-05V 433МГц GND VCC Data
Ардуино Уно №1 GND +5V 2

У приемника четыре вывода, но один не используется.

Схема подключения ко второй плате Ардуино идентична первой:

Приемник XD-RF-5V 433МГц GND VCC Data
Ардуино Уно №2 GND +5V 2

Собираем оба устройства на макетной плате и приступаем к написанию программ.

2. Программа для передатчика

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

#include RCSwitch mySwitch = RCSwitch(); void setup() { mySwitch.enableTransmit(2); } void loop() { mySwitch.send(B0100, 4); delay(1000); mySwitch.send(B1000, 4); delay(1000); }

Разберем программу. Первое что мы сделали — объявили объект для работы с передатчиком и назвали его mySwitch.

RCSwitch mySwitch = RCSwitch();

Затем, внутри стандартной функции setup включили передатчик и указали вывод, к которому он подключен:

mySwitch.enableTransmit(2);

Наконец, в основном цикле программы loop отправляем сначала одно сообщение, а затем и второе с помощью функции send:

mySwitch.send(B1000, 4);

Функция send имеет два аргумента. Первый — это отправляемое сообщение, которое будет отправляться в эфир в виде пачки импульсов. Второй аргумент — это размер отправляемой пачки.

В нашей программе мы указали сообщения в формате двоичного числа. На это указывает английская буква «B» в начале кода B1000. В десятеричном представлении это число превратится в восьмерку. Так что мы могли вызвать функцию send так:

mySwitch.send(8, 4);

Также send умеет принимать двоичные строки:

mySwitch.send(“1000”, 4);

3. Программа для приемника

Теперь напишем программу для приемника. Для демонстрации факта передачи мы будем зажигать светодиод, подключенный к выводу №3 на плате Ардуино. Если приемник поймал код B1000 — включим светодиод, а если B0100 — выключим.

#include RCSwitch mySwitch = RCSwitch(); void setup() { pinMode( 3, OUTPUT ); mySwitch.enableReceive(0); } void loop() { if( mySwitch.available() ){ int value = mySwitch.getReceivedValue(); if( value == B1000 ) digitalWrite( 3, HIGH ); else if( value == B0100 ) digitalWrite( 3, LOW ); mySwitch.resetAvailable(); } }

Функция available возвращает истину, если передатчик принял хоть какие-то данные:

mySwitch.available()

Функция getReceivedValue извлекает из потока данных одну пачку и декодирует её в число. В программе мы присваиваем полученное число переменной value:

int value = mySwitch.getReceivedValue();

Задания

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

  1. Пульт для светильника. На стороне приемника модуль реле, включенный в цепь питания светильника (осторожно, 220 Вольт!). На стороне передатчика: тактовая кнопка. Написать программы для приемника и передатчика, которые по нажатию кнопки будут включать удаленное реле. При повторном нажатии кнопки реле будет выключаться.
  2. Уличный термометр с радиоканалом. На стороне передатчика разместить датчик температуры. Предусмотреть автономное питание от батареек. На стороне приемника: символьный ЖК дисплей. Написать программы для приемника и передатчика, которые позволят выводить показания температуры с удаленного датчика на дисплее.

Заключение

Итак, теперь мы знаем простой и недорогой способ передавать данные на расстоянии. К сожалению, скорость передачи и дистанция в таких радиомодулях весьма ограничены, так что мы не сможем полноценно управлять, например квадрокоптером. Однако, сделать радиопульт для управления простым бытовым прибором: светильником, вентилятором или телевизором, нам под силу.

На основе приемопередатчиков с частотой 433 МГц и 315 МГц работает большинство радиоканальных пультов управления. Имея Ардуино и приемник, мы можем декодировать сигналы управления и повторить их. Подробнее о том, как это сделать мы напишем в одном из следующих уроков!

Изменено: 17 Сен, 2016 15:17

Источник: http://robotclass.ru/tutorials/arduino-radio-433mhz/

Радиомодули HOPE-RF

2009 №2

Одним из динамично развивающихся направлений электроники является разработка систем беспроводной передачи данных. Существует широкий круг функциональных радиомодулей, которые согласованно работают на расстоянии от одного до нескольких сотен метров друг от друга.

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

В России рынок радиомодулей представлен производителями, которые предлагают продукцию с разной функциональностью и в различных диапазонах частот, от сотен мегагерц до единиц гигагерц.

Надо отметить, что этот рынок очень чувствителен к цене.

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

Компания, удовлетворяющая этим критериям, — это Hope Microelectronics (Hope RF), которая была создана в 1998 г. и к настоящему времени имеет успешный десятилетний опыт промышленной разработки и производства радиомодулей.

Высокий технологический уровень, квалифицированный персонал и отлаженная система управления качеством позволяют компании сохранять низкие цены при высоком качестве продукции.

Hope Microelectronics обеспечивает малые сроки поставки и высокий уровень поддержки клиентов.

В линейку поставок Hope RF входят бескорпусные микросхемы приемников и передатчиков, трансиверов, COB (Chip-on-Board) радиомодули на основе этих ИС, дискретные радиочастотные компоненты, датчики абсолютного и относительного давления и влажности.

Но мы подробнее расскажем о беспроводных модулях компании Hope RF. Они показали высокую надежность и хорошо зарекомендовали себя среди разработчиков и у потребителей изделий на основе таких микросхем.

Традиционные сферы применения радиомодулей — автомобильные сигнализации, противоугонные системы и проекты «умный дом».

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

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

Радиомодули серии RFM

В основном компания Hope RF разрабатывает и производит радиомодули, действующие в диапазонах 315, 433, 868 и 915 МГц. Данные устройства используют ЧМ (частотную модуляцию) и соответствуют рекомендациям FCC и ETSI. Устройства имеют невысокую цену и малые размеры (не более 3 см2).

Радиоодули сохраняют работоспособность в диапазоне температур 40…+85 °C. Радиомодули RFM производятся по технологии COB, в виде печатной платы с установленными компонентами и разъемом для подключения к внешним цепям.

В таблице 1 представлена номенклатура и основные характеристики устройств RFM-серии.

Таблица 1. Основные характеристики радиомодулей RFM-серии

Маломощные радиомодули (RFM01, RFM02, RAM01, RFM12, RFM12B) имеют компактные габариты и выпускаются в трех модификациях, которые представлены на рис. 1:

  • 18,0×14,2×8,6 мм — D-формат;
  • 15,9×16,1×4,2 мм — S1-формат;
  • 15,9×16,1×2,2 мм — S2-формат.

RFM01 — модуль ЧМ-приемника

RFM01 — недорогой модуль ЧМ-приемника для работы в диапазонах 433, 868, 915 МГц.

Его основой является кристалл многофункциональной микросхемы приемника RF01, содержащий PLL-синтезатор с малым временем захвата и шагом 2,5 кГц, блок нулевой промежуточной частоты и внутренний демодулятор.

Из дополнительных опций имеется таймер пробуждения, детектор разряженной батареи, автоматическая настройка антенны, аналоговый и цифровой измерители уровня принимаемого сигнала, вход сигналов тактирования и сброса от внешнего микроконтроллера.

Простой в программировании SPI-интерфейс радиомодулей используется микроконтроллером для приема данных и управления внутренними настройками. Нет необходимости в дополнительной ручной калибровке цепей, что существенно сокращает время работы над конечным проектом.

Радиомодуль RFM01 рассчитан для работы в паре с радиомодулем RFM02 ЧМ-передатчика. В диапазоне 433 МГц для этой пары удается достичь устойчивой связи при прямой видимости на расстоянии 300 м.

Основные параметры радиомодуля RFM01:

  • чувствительность: –109 дБм;
  • скорость приема данных:
    • до 115,2 кбайт/с с внутренним демодулятором,
    • до 256 кбайт/с внешним RC-фильтром;
  • программируемая полоса пропускания: 67–400 кГц;
  • FIFO-буфер: 16 бит;
  • диапазон напряжения питания: 2,2–5,4 В;
  • ток потребления в рабочем режиме: не более 11 мА.

RFM02 — модуль ЧМ-передатчика

Для совместной работы с модулем приемника RFM01 производится модуль передатчика RFM02. Модуль работает в тех же частотных диапазонах. Многофункциональный кристалл передатчика RF02 содержит PLL-синтезатор с шагом 2,5 кГц. SPI-интерфейс аналогичен тому, что используется в чипе приемника. Дополнительные опции модуля передатчика RFM02 такие же, как у RFM01.

Основные параметры радиомодуля RFM02:

  • программируемая выходная мощность: до 7 дБм;
  • программируемая девиация частоты: 30–210 кГц, шаг 30 кГц;
  • скорость передачи данных: до 115,2 кбайт/с;
  • диапазон напряжения питания: 2,2–5,4 В;
  • ток потребления в рабочем режиме: 23 мА.

RAM01 — радиомодуль OOK-приемника

Дальнейшим развитием линейки беспроводных устройств стал компактный радиомодуль многоканального OOK-приемника для диапазонов 433 и 868 МГц.

Лежащая в основе модулей микросхема приемника RA01 содержит PLL-синтезатор частоты с малым временем установления для поддержки режима прыгающей частоты с высокой разрешающей способностью.

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

Радиомодуль RAM01 построен по схеме обработки сигнала с низкой промежуточной частотой. К необходимому минимуму сведено использование дополнительных внешних компонентов.

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

Кроме того, имеется возможность производить фильтрацию данных и восстановление частоты, а также распознавать шаблоны принимаемых данных и читать данные во всех регистрах. На рис. 2 представлена типовая схема включения RAM01.

В радиомодуле имеется последовательный SPI-совместимый интерфейс, таймер пробуждения, детектор напряжения батареи питания, вход сигналов тактирования и сброса для микроконтроллера, что характерно для всех упомянутых радиомодулей.

Основные параметры радиомодуля RAM01:

  • чувствительность: –110 дБм;
  • программируемая полоса пропускания: 85–340 кГц;
  • входное сопротивление приемника: 50 Ом;
  • программируемый битрейт: до 40 кбит/с;
  • FIFO-буфер: 64 бит;
  • напряжение питания: 2,2–3,8 В;
  • ток потребления в рабочем режиме: 9,6 мА.

На рис. 3 представлен внешний вид радиомодуля RAM01.

RFM12 — универсальный модуль ЧМ-трансивера

В дополнение к простым модулям приемника и передатчика (RFM01 и RFM02) выпускается RFM12 — универсальный радиомодуль трансивера для работы в диапазонах 433 и 868 МГц. Он построен на основе микросхемы трансивера RF12, имеющей PLL-синтезатор, блок нулевой промежуточной частоты, а также последовательный SPI-интерфейс для связи с внешним микроконтроллером.

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

Радиомодуль RFM12 рассчитан для работы в паре с таким же модулем ЧМ-трансивера. В диапазоне 433 МГц удается достичь устойчивой связи при прямой видимости на расстоянии до 150 м.

Основные параметры радиомодуля RFM12:

  • чувствительность: –102 дБм;
  • выходная мощность: 8 дБм;
  • волновое сопротивление входа/выхода: 50 Ом;
  • скорость приема данных:
    • до 115,2 кбайт/с с внутренним демодулятором,
    • до 256 кбайт/с с внешним RC-фильтром;
  • программируемая девиация частоты: 15–240 кГц;
  • программируемая полоса пропускания: 67–400 кГц;
  • диапазон RSSI: 46 дБ;
  • приемный FIFO-буфер на 16 бит;
  • два FIFO-буфера по 8 бит на передачу;
  • диапазон напряжения питания: 2,2–5,4 В;
  • ток потребления в режиме передачи: ≤21 мА;
  • ток потребления в режиме приема: ≤10 мА.

RFM12B — экономичный радиомодуль ЧМ-трансивера

RFM12B является экономичным решением модуля трансивера. Он имеет пониженное напряжение питания и несколько меньшую выходную мощность передающего тракта. Добавлены еще два частотных диапазона — 315 и 915 МГц. Другие параметры полностью повторяют значения, характерные для радиомодуля линии RFM12.

Отличающиеся параметры радиомодуля RFM12B:

  • диапазоны: 315, 433, 868, 915 МГц;
  • выходная мощность: 7 дБм;
  • диапазон напряжения питания: 2,2–3,8 В.

RFM12BP — 500-мВт модуль ЧМ-трансивера

Развитием линейки трансиверов является модуль RFM12BP с повышенной выходной мощностью в 500 мВт и с высокой чувствительностью приемного тракта 118 дБм.

Так же как и в предыдущих случаях, в нем используется чип RF12, с теми же техническими параметрами.

Модуль RFM12BP рассчитан для работы в паре с модулем ЧМ-трансивера RFM12. В диапазоне 433 МГц, при такой конфигурации, удается достичь устойчивой связи на расстоянии до 3000 м при прямой видимости.

Дополнительные параметры радиомодуля RFM12BP:

  • диапазоны: 433, 868, 915 МГц;
  • внутренняя фильтрация данных и восстановление тактовой частоты;
  • поддержка очень коротких пакетов данных до 3 байт;
  • напряжение питания:
    • 2,2–3,8 В — для ЧМ-трансивера,
    • 8–12 В — для выходного усилителя мощности;
  • ток потребления в режиме передачи: 260 мА;
  • ток потребления в режиме приема: 20 мА.

Типовая схема подключения цепей данных и питания представлена на рис. 4.

Модуль ЧМ-трансивера RFM12BP производятся в виде печатной платы с размерами 40,0 × 20,0 × 24,2 мм. Его внешний вид представлен на рис. 5.

Специализированные радиомодули серии HM

Модули HM-серии с успехом используются для создания систем беспроводной передачи данных, дистанционного управления и мониторинга процессов, передачи голоса, сигнализации и охраны, а также для замены морально устаревающих беспроводных систем передачи данных. Известно, что системы связи с ЧМ-модуляцией по многим параметрам превосходят системы с АМ-модуляцией.

Очевиден выбор решения в пользу ЧМ-систем не только на стадии проектирования, но и при модернизации уже существующего оборудования. Компания Hope RF предлагает разработчикам электронной аппаратуры HM-серию специализированных радиомодулей, построенных, так же как и RFM-серия, на RF-чипах.

Радиомодули работают при температурах от –35…+80 °C и в отличие от RFM-серии имеют интерфейс связи с внешними устройствами типа UART.

В таблице 2 представлена номенклатура и основные характеристики HM-серии.

Таблица 2. Основные характеристики радиомодулей HM-серии

HM-R — компактный модуль ЧМ-приемника

Компания Hope RF производит HM-R — линейку простых в применении и недорогих ЧМ-приемников для диапазонов 433, 868 и 915 МГц.

Поддерживая достаточно высокую скорость приема данных в диапазоне 600–9600 бит/с (300 бит/с – 100 кбит/с с внешним фильтром) и обладая хорошей чувствительностью, радиомодули способны обеспечить уверенную связь с передатчиками HM-T, HM-TR на расстояниях от 160 до 370 м.

https://www.youtube.com/watch?v=S4P-lAa4iFQ

Модули отличаются высокой экономичностью в широком диапазоне питающих напряжений 2,5–5 В, при этом потребляя ток порядка 9–11 мА. Устройства имеют малые размеры. Характерным отличием радиомодулей HM-R является возможность прямой замены ими аналогичных устаревающих АМ-модулей.

Параметры радиомодуля HM-R:

  • диапазон: 433, 868 и 915 МГц;
  • чувствительность: –98 дБм;
  • напряжение питания: 2,5–5 В;
  • ток потребления в рабочем режиме: 11 мА.

HM-T — компактный радиомодуль ЧМ-передатчика

Для совместной работы с приемниками HM-R разработана и производится линия HM-T — ЧМ-передатчиков для диапазонов 433, 868 и 915 МГц.

Модули передатчиков обеспечивают скорость передачи данных в диапазоне 600–9600 бит/с или 300 бит/с – 100 кбит/с с использованием внешнего фильтра, что соответствует тем же значениям по пропускной способности приемных радиомодулей HM-R.

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

Устройства HM-T эффективно работают в диапазоне питающих напряжений 2,5–5 В, при этом потребляя ток всего 25–31 мА. Ими тоже можно заменить устаревающие АМ-модули без модификации программного обеспечения последних.

Параметры радиомодулей HM-T:

  • диапазон: 433, 868 и 915 МГц;
  • выходная мощность: 7 дБм;
  • диапазон напряжения питания: 2,5–5 В;
  • ток потребления: 31 мА.

Радиомодули приемников HM-R и передатчиков HM-T выполнены в виде печатных плат с габаритными размерами 26,0×21,3×7,14 мм. Внешний вид радиомодулей HM-R и HM-T представлен на рис. 6.

HM-TR, HM-TRS — модули трансиверов с UART и RS232

Очень часто приходится решать задачу сбора данных с множества разнообразных датчиков, расположенных на расстоянии в несколько сотен метров, и накопления информации в компьютере или отдельном микропроцессорном устройстве. Наиболее просто сделать это с помощью беспроводных устройств.

Чтобы снизить стоимость и упростить создание такого решения, предлагается линейка HM-TR — ЧМ-радиомодулей трансиверов. Модули способны уверенно обеспечивать беспроводной обмен данными на расстоянии до 330 м при скоростях приема-передачи 9600 бит/с.

При этом проводится контроль протокола связи и сохраняется полная прозрачность со стороны пользовательского интерфейса UART или RS232, что значительно облегчает процесс проектирования устройств.

Радиомодули HM-TRS функционально не отличаются от HM-TR. Различия лишь в SMD-технологии сборки и размерах печатных плат. У HMTRS они составляют 24,0×29,0×4,0 мм, что существенно меньше чем у HM-TR. На плате отсутствует антенна, а штыревой разъем заменен на краевой.

Радиомодули HM-TR и HM-TRS имеют два режима работы: «режим связи» и «режим конфигурации». Установленные на радиомодуле два светодиода выполняют разные функции в различных режимах работы.

Для лучшего понимания логики работы приведем типовые схемы включения радиомодулей HM-TR(HM-TRS) для различных режимов работы (рис. 7, 8).

Судя по представленным схемам, в первом случае радиомодуль находится в рабочем режиме, а в «режиме конфигурации» производится настройка параметров связи и передачи данных. Потребителям радиомодули поставляются с заводскими настройками параметров. С помощью программного обеспечения HM-TR Setup utility (рис. 9) можно изменять настройки и сохранять их в памяти модулей.

Параметры радиомодулей HM-TR(HM-TRS):

  • диапазон: 433, 868 и 915 МГц;
  • чувствительность приемника: –105 дБм;
  • максимальная выходная мощность: 5 дБм;
  • девиация частоты: 15–240 кГц;
  • полоса пропускания: 67–400 кГц;
  • стандартный интерфейс: UART (TTL) или RS232;
  • скорость UART-интерфейса: 300–19 200 бит/с;
  • напряжение питания: 5 В;
  • ток потребления при передаче: 26 мА;
  • ток потребления при приеме: 15 мА;
  • габаритные размеры HM-TR: 24,0×43,0×15,0 мм;
  • габаритные размеры HM-TRS: 24,0×29,0×4,0 мм.

На рис. 10 представлен внешний вид радиомодуля HM-TR.

Таким образом, применение радиомодулей Hope RF, работающих в диапазонах 315, 433, 868, 915 МГц, позволяет разработчикам создавать оригинальные современные и недорогие системы с новыми потребительскими свойствами.

Скачать статью в формате PDF  

Другие статьи по данной теме:

Сообщить об ошибке

Если Вы заметили какие-либо неточности в статье (отсутствующие рисунки, таблицы, недостоверную информацию и т.п.), просьба сообщить нам об этом. Пожалуйста укажите ссылку на страницу и описание проблемы.

Источник: http://wireless-e.ru/articles/diapasons/2009_2_32.php

Связь МК при помощи RF модулей

На сегодняшний день все популярнее становятся примочки, работающие с микроконтроллером по радиочастотным схемам (модулям). В статье мы постараемся разобраться как же все-таки можно работать с двумя модулями – приемником XY-MK-5V и передатчиком XY-FST (FS1000A) (такова маркировка на платах модулей). Внешне же такие модули выглядят следующим образом:

Именно эти модули работают на частоте 433 МГц, но как видно из фото, возможны конфигурации таких же модулей, работающих на частотах 315 МГц и 330 МГц.

И насколько мне известно, количество конфигураций по частоте этими тремя не ограничивается.

Важно отметить, что оба модуля должны быть настроены на одну и ту же частоту, в противном случае они не будут работать друг с другом. Мало ли кому-нибудь взбредет в голову. 🙂

Данные модули представляют простое схемное решение суперрегенеративных приемников заданной частоты, предназначенные для приема (передачи) цифрового сигнала. Работает все предельно просто. Передатчик имеет три вывода – два по питанию и один для данных.

Приемник также имеет два вывода по питанию и два вывода для приема данных микроконтроллером, эти два вывода данных фактически являются одним выводом, просто впаяны параллельно друг другу.

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

Все просто и сердито, к тому же стоимость комплекта приемника и передатчика крайне не велика и составляет примерно 1 условную единицу в зависимости от жажды наживы продавца.

https://www.youtube.com/watch?v=EN0nUflF-FU

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

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

А не тут то было! В обоих случаях будем иметь просто хаос на выводе данных приемника, а самые наблюдательные могут заметить в начальный период подключения вывода данных передатчика к плюсу, что светодиод коротко ярко вспыхивает и снова начинает хаотически изменять яркость.

Все дело в том, что в радиоэфире очень много помех, особенно в городских условиях.

Теперь вы спросите и зачем же нам такое “шило”? Не стоит паниковать! Помните, в начальный момент то светодиод на долю секунда все же срабатывал как ожидалось в самом начале – горит, не горит? Так вот берем и просто увеличиваем частоту импульсов на выводе данных передатчика. Можно подключить генератор туда, а осциллографом наблюдать за состоянием вывода данных приемника. Генератор настраиваем на частоту прямоугольных импульсов от 10 Гц до 10 кГц. И на экране осциллографа происходит то чудо, которого мы ожидаем – прямоугольник, подобный тому, что на генераторе, может быть только слегка искаженный.

Забегая немного вперед, осциллограмма от приемника, передается значение в двоичном виде 1110-1110:

А если передатчик находится в состоянии покоя, данные не передаются, осциллограмма от приемника будет иметь просто хаотический набор импульсов:

Данные все же будут передаваться не постоянно, вывод данных передатчика не все время будет принимать сигналы от микроконтроллера, поэтому необходима будет защита от подобного хаотического сигнала (шума).

Итак, рассмотрим параметры модулей приемника и передатчика:

Приемник:

  • напряжение питания 5 В
  • потребляемый ток 4 мА
  • частота 433,92 МГц
  • чувствительность -105дБ
  • антенна – 32 см одножильного провода

Передатчик:

  • расстояние передачи от 20 до 200 метров в зависимости от напряжения питания и условий окружающей среды
  • напряжение питания от 3,5 до 12 В
  • скорость передачи до 4 kb/s
  • мощность передатчика 10 мВт
  • частота 433 МГц
  • длинна антенны 25 см 

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

Рисуем схему электрическую принципиальную:

Схема демонстрирует связь между двумя микроконтроллерами по радио каналу по средствам модулей XY-MK-5V и XY-FST (FS1000A). Прошивка и исходный код для обоих микроконтроллеров прилагаются ниже.

Логика работы следующая – микроконтроллер Attiny13 динамически изменяет переменную и постоянно передает ее значение по радиоканалу на микроконтроллер Atmega8. Во втором микроконтроллере данные принимаются и значение переменной выводится на LCD дисплей.

Ради справедливости стоит отметить, что все же иногда проскакивают помехи в полезные данные. Выше было указано, что шум как-то нужно фильтровать. Организована фильтрация так – чтобы принять полезные данные, первый байт передачи должен быть как бы адресным.

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

Для увеличения помехоустойчивости длину адресной информации можно увеличить до двух или трех байт.

Сигнал для передатчика формируется в зависимости от числа, которое нужно передать. Число в двоичном виде представляет собой последовательность нулей и единиц.

Таким образом в зависимости от состояния каждого бита в байте на передатчик подается ноль или единица – так формируется прямоугольный (цифровой) сигнал.

Приемник этот сигнал принимает и также в зависимости от состояния (ноль или единица) формируется 8 бит байта и получаем переданное число и далее делаем с ним (с принятой информацией) все что нам нужно.

Для индикации используется жидко кристаллический (ЖК или LCD) дисплей. Мною использовался дисплей 2004А – 4 строки по 20 символов, однако можно применять дисплей более привычный – 2 строки по 16 символов. ЖК дисплей подключается к микроконтроллеру по четырех битной системе.

Переменный резистор R2 необходим для регулировки контраста символов на дисплее. Вращением движка этого резистора добиваемся наиболее четких для нас показаний на экране. Подсветка ЖК дисплея организована через вывод “А” и “К” на плате дисплея. Подсветка включается через резистор, ограничивающий ток – R1.

Чем больше номинал, тем более тускло будет подсвечиваться дисплей. Однако пренебрегать этим резистором не стоит во избежание порчи подсветки. Кнопки S1 и S2 необходимы для сброса микроконтроллеров. К выводам reset обоих микроконтроллеров подключены резисторы, подтягивающие плюс питания к выводу.

Это необходимо для предотвращения самопроизвольного перезапуска микроконтроллеров в случае наличия помех или шума. 

Питается вся схема от простого модуля питания на силовом трансформаторе. Переменное напряжение выпрямляется четырьмя диодами VD1 – VD4 марки 1N4007, пульсации сглаживаются конденсаторами C1 и C2. Четыре выпрямительных диода можно заменить одним диодным мостом. Трансформатор применен марки BV EI 382 1189 – преобразует 220 вольт переменного тока в 9 вольт переменного тока.

Мощность трансформатора составляет 4,5 Вт, этого вполне достаточно и еще с запасом. Такой трансформатор можно заменить любым другим силовым трансформатором, подходящим для Вас.

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

Выпрямленное напряжение с трансформатора стабилизируется на микросхеме линейного стабилизатора L7805, ее можно заменить на отечественный аналог пяти вольтового линейного стабилизатора КР142ЕН5А, либо применить другу микросхему стабилизатора напряжения в соответствии с подключением ее в схеме (например LM317 или импульсные стабилизаторы LM2576, LM2596, MC34063 и так далее).

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

Вся схема была собрана и отлаживалась на макетных платах для микроконтроллеров Atmega8 и Attiny13:

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

Производитель указывает длину антенн 32 и 25 сантиметров для приемника и передатчика соответственно. Однако в примечании пишется, что важно использовать антенну длинной 17 см. Тут я немного и запутался какой же длинны должна быть все же антенна.

Также производитель отмечает, что расположение антенны также сказывается на качестве приема сигнала. Здесь наилучшее расположение можно подобрать методом научного тыка – в каком положении лучше сигнал, там и расположить антенну.

В китайских устройствах с применением подобных модулей ее делают в виде спирали и располагают просто вдоль приемника.

Несколько слов о применении – при помощи таких схем можно передавать и принимать информацию о температуре или еще о чем-нибудь в точках, отдаленных от основного микроконтроллера. Также при помощи принятого кода можно управлять какими-либо не сложными схемами дистанционно (по типу включить / выключить). Ну и вообще применять там, где только захочется.

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

и Attiny13:

К статье прилагаются прошивки для микроконтроллеров, исходники в AVR studio, а также видео демонстрирующее работу схемы и передачу информации от микроконтроллера к микроконтроллеру (tiny13 считает от 0 до 255 и передает постоянно значение другому микроконтроллеру, на котором это значение отображается на экране LCD дисплея, на видео значение будет передаваться до 111 и в этот момент разъединим линию данных от модуля передатчика, цифра останется в последнем переданном состоянии – 111).

Скачать список элементов (PDF)

Прикрепленные файлы:

  • mega8.hex (3 Кб)
  • tiny13.hex (1 Кб)
  • исходники.rar (31 Кб)

Источник: http://cxem.gq/mc/mc315.php

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}