Установка сигнализации собственными силами. Использование RF-модулей

17 марта 2012 в 18:30

Использование RF-модулей

  • Электроника для начинающих

Иногда, между устройствами требуется установить беспроводное соединение. В последнее время для этой цели все чаще стали применять Bluetooth и Wi-Fi модули. Но одно дело передавать видео и здоровенные файлы, а другое - управлять машинкой или роботом на 10 команд. С другой стороны радиолюбители часто строят, налаживают и переделывают заново приемники и передатчики для работы с готовыми шифраторами/дешифраторами команд. В обеих случаях можно использовать достаточно дешевые RF-модули. Особенности их работы и использования под катом.

Типы модулей

RF-модули для передачи данных работают в диапазоне УКВ и используют стандартные частоты 433МГц, 868МГц либо 2,4ГГц (реже 315МГц, 450МГц, 490МГц, 915МГц и др.) Чем выше несущая частота, тем с большей скоростью можно передавать информацию.
Как правило, выпускаемые RF-модули предназначены для работы с каким-либо протоколом передачи данных. Чаще всего это UART (RS-232) или SPI. Обычно UART модули стоят дешевле, а так же позволяют использовать нестандартные (пользовательские) протоколы передачи. Вначале я думал склепать что-то типа такого , но вспомнив свой горький опыт изготовления аппаратуры радиоуправления выбрал достаточно дешевые HM-T868 и HM-R868 (60грн. = менее $8 комплект). Существуют также модели HM-*315 и HM-*433 отличающиеся от нижеописанных лишь несущей частотой (315МГц и 433МГц соответственно). Кроме того есть множество других модулей аналогичных по способу работы, поэтому информация может быть полезной обладателям и других модулей.

Передатчик

Почти все RF-модули представляют собой небольшую печатную плату с контактами для подключения питания, передчи данных и управляющих сигналов. Рассмотрим передатчик(трансмиттер) HM-T868
На нем имеется трехконтактный разъем: GND(общий), DATA(данные), VCC(+питания), а также пятачок для припайки антенны(я использовал огрызок провода МГТФ на 8,5см - 1/4 длинны волны).

Приемник

Ресивер HM-R868, внешне, очень похож на соответствующий ему трансмиттер

но на его разъеме есть четвертый контакт - ENABLE, при подаче на него питания приемник начинает работать.

Работа

Судя по документации, рабочим напряжением является 2,5-5В, чем выше напряжение, тем большая дальность работы. По сути дела - это радиоудлинитель: при подаче напряжения на вход DATA передатчика, на выходе DATA приемника так же появится напряжение (при условии что на ENABLE также будет подано напряжение). НО, есть несколько нюансов. Во-первых: частота передачи данных (в нашем случае - это 600-4800 бит/с). Во-вторых: если на входе DATA нету сигнала более чем 70мс, то передатчик переходит в спящий режим(по-сути отключается). В-третьих: если в зоне приема ресивера нету работающего передатчика - на его выходе появляется всякий шум.

Проведем небольшой эксперимент: к контактам GND и VCC трансмиттера подключим питание. Вывод DATA соединим с VCC через кнопку или джампер. К контактам GND и VCC ресивера также подключаем питание, ENABLE и VCC замыкаем между собой. К выходу DATA подключаем светодиод (крайне желательно через резистор). В качестве антенн используем любой подходящий провод длинной в 1/4 длинны волны. Должна получиться такая схемка:


Сразу после включения приемника и/или подачи напряжения на ENABLE должен загореться светодиод и гореть непрерывно (ну или почти непрерывно). После нажатии кнопки на передатчике, со светодиодом также ничего не происходит - он продолжает гореть и дальше. При отпускании кнопки светодиод мигнет(погаснет и снова загорится) и продолжает гореть дальше. При повторном нажатии и отпускании кнопки все должно повторится. Что же там происходило? Во время включения приемника, передатчик находился в спящем состоянии, приемник не нашел нормального сигнала и стал принимать всякий шум, соответственно и на выходе появилась всякая бяка. На глаз отличить непрерывный сигнал от шума нереально, и кажется, что светодиод светит непрерывно. После нажатия кнопки трансмиттер выходит из спячки и начинает передачу, на выходе ресивера появляется логическая «1» и светодиод светит уже действительно непрерывно. После отпускания кнопки передатчик передает логический «0», который принимается приемником и на его выходе также возникает «0» - светодиод, наконец, гаснет. Но спустя 70мс передатчик видит что на его входе все тот же «0» и уходит в сон, генератор несущей частоты отключается и приемник начинает принимать всякие шумы, на выходе шум - светодиод опять загорается.

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

Формат пакета

RF-модули данного типа можно подключить напрямую к аппаратному UART или компьютеру через MAX232, но учитывая особенности их работы я бы посоветовал использовать особые протоколы, описанные программно. Для своих целей я использую пакеты следующего вида: старт-биты, байты с информацией, контрольный байт(или несколько) и стоп-бит. Первый старт-бит желательно сделать более длинным, это даст время чтобы передатчик проснулся, приемник настроился на него, а принимающий микроконтроллер(или что там у Вас) начал прием. Затем что-то типа «01010», если на выходе приемника такое, то это скорее всего не шум. Затем можно поставить байт идентификации - поможет понять какому из устройств адресован пакет и с еще большей вероятностью отбросит шумы. До этого момента информацию желательно считывать и проверять отдельными битами, если хоть один из них неправильный - завершаем прием и начинаем слушать эфир заново. Дальше передаваемую информацию можно считывать сразу по байтам, записывая в соответствующие регистры/переменные. По окончании приема выполняем контрольное выражение, если его результат равен контрольному байту - выполняем требуемые действия с полученной информацией, иначе - снова слушаем эфир. В качестве контрольного выражения можно считать какую-нибудь контрольную сумму, если передаваемой информации немного, либо Вы не сильны в программировании - можно просто посчитать какое-то арифметическое выражение, в котором переменными будут передаваемые байты. Но необходимо учитывать то, что в результате должно получится целое число и оно должно поместится в количество контрольных байт. Поэтому лучше вместо арифметических операций использовать побитовые логические: AND, OR, NOT и, особенно, XOR. Если есть возможность, делать контрольный байт нужно обязательно так как радиоэфир - вещь очень загаженная, особенно сейчас, в мире электронных девайсов. Порой, само устройство может создавать помехи. У меня, например, дорожка на плате с 46кГц ШИМ в 10см от приемника очень сильно мешала приему. И это не говоря о том, что RF-модули используют стандартные частоты, на которых в этот момент могут работать и другие устройства: рации, сигнализации, радиоуправление, телеметрия и пр.

Модули предназначены для беспроводной передачи данных на большие (до 1 км) расстояния в условиях прямой видимости. Максимальная скорость потока при модуляции данными задающего генератора около 3 кбит / сек.
Если требуются большие скорости передачи, модулировать данными следует буферный каскад перед усилителем мощности. Приемную же часть после детектора следует несколько изменить, как .
(резистор в ФНЧ 10 к - закоротить, убрать емкость на входе компаратора 1000пик и уменьшить "замедляющую"емкость 1 микрофарад до 0,01 микрофарад) . Тогда "пропускная способность" пары приемник / передатчик значительно вырастет (до 100 - 150 кбит/сек).Пьезокерамический фильтр (10,7 МГц) , в случае высокоскоростного обмена, следует применять с полосой пропускания не менее 300 кГц.
Ниже схема приемной части.

Приемник - супергетеродин с однократным преобразованием частоты (ПЧ - 10,7 МГц).
Промежуточная частота - разница между частотой передатчика и частотой гетеродина приемника. Передатчик излучает на частоте 418 МГц. Частота гетеродина приемника 407,3 МГц (ПАВ резонаторы в приемнике и передатчике можно менять местами).
ВЧ часть без особенностей - все ее узлы стандартные.
Она неоднократно испытана в различных устройствах и неплохо себя зарекомендовала.
ВЧ сигнал, прошедший необходимые ступени преобразования и усиления, детектируется и его огибающая, прошедшая через ФНЧ подается на вход компаратора, включенного по схеме с "плавающим порогом " срабатывания, что обеспечивает максимальную его чувствительность.
Приемник имеет чувствительность 1 - 2 мкв, что не уступает промышленным микросборкам. Схема оптимизирована для напряжения питания 2,5 - 3 вольта.
Потребляемый приемником ток около 15 мА.
На выходе компаратора данные выводятся в инверсном виде (осциллограмма ниже).

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

Передатчик - схема без особенностей. Он также оптимизирован для напряжения питания 2,5 - 3 вольта.
Мощность при напряжении питания 3 вольта, 50 - 70 милливатт. Потребляемый ток - около 60 мА. Мощность можно повысить включив передатчик от 5 вольт, она может достигнуть 120 - 150 милливатт. Ток при этом поднимется до 120 мА, что может быть опасным для оконечного каскада. Транзистор в оконечном каскаде, при повышенном напряжении питания, целесообразнее применить 2SC3357 без каких либо изменений в схеме.

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

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

Данные модули представляют простое схемное решение суперрегенеративных приемников заданной частоты, предназначенные для приема (передачи) цифрового сигнала. Работает все предельно просто. Передатчик имеет три вывода - два по питанию и один для данных. Приемник также имеет два вывода по питанию и два вывода для приема данных микроконтроллером, эти два вывода данных фактически являются одним выводом, просто впаяны параллельно друг другу. Таким образом, если на вывод данных передатчика подать логическую единицу, на выводе данных приемника также появится логическая единица. Грубо говоря такие модули являются радиочастотными удлинителями одного вывода микроконтроллера, заменяющими провод. Все просто и сердито, к тому же стоимость комплекта приемника и передатчика крайне не велика и составляет примерно 1 условную единицу в зависимости от жажды наживы продавца.

Хочется также отметить несколько фишек таких модулей относительно вышесказанного. Если мы берем два модуля, подключаем их к питанию, к выводу данных приемника подключаем светодиод, а к выводу данных передатчика подключаем или плюс питания или минус. Как ожидается светодиод будет или гореть, или не гореть в зависимости от того куда подключен вывод данных передатчика. А не тут то было! В обоих случаях будем иметь просто хаос на выводе данных приемника, а самые наблюдательные могут заметить в начальный период подключения вывода данных передатчика к плюсу, что светодиод коротко ярко вспыхивает и снова начинает хаотически изменять яркость. Все дело в том, что в радиоэфире очень много помех, особенно в городских условиях. Теперь вы спросите и зачем же нам такое "шило"? Не стоит паниковать! Помните, в начальный момент то светодиод на долю секунда все же срабатывал как ожидалось в самом начале - горит, не горит? Так вот берем и просто увеличиваем частоту импульсов на выводе данных передатчика. Можно подключить генератор туда, а осциллографом наблюдать за состоянием вывода данных приемника. Генератор настраиваем на частоту прямоугольных импульсов от 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:

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

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК AVR 8-бит

ATmega8

1 В блокнот
IC2 МК AVR 8-бит

ATtiny13A

1 В блокнот
VR1 Линейный регулятор

L7805AB

1 В блокнот
VD1-VD4 Выпрямительный диод

1N4007

4 В блокнот
RF1 RF приемник XY-MK-5V 1 В блокнот
RF2 RF передатчик FS1000A 1 XY-FST В блокнот
C1, C9 10 мкФ 2 В блокнот
C2, C4-C7, C10 Конденсатор 100 нФ 6 В блокнот
C3 Электролитический конденсатор 1000 мкФ 1 В блокнот
C8 Электролитический конденсатор 220 мкФ 1 В блокнот
R1 Резистор

RF – модули своими руками

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

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

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

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

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

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

В проведенных многочисленных испытаниях выяснилось, что применение УВЧ совместно с правильно настроенным приемником подобного, типа ничего не дает в плане улучшения чувствительности, а лишь ухудшая динамику сверхрегенератора допускает некоторую небрежность его настройки. АМ сигнал, принятый приемником, имеет очень малую амплитуду, поэтому он сначала усиливается а затем подается на вход компаратора (порогового устройства). На выходе компаратора появляется лог 1, если уровень напряжения на его входе превышает определенный уровень.

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