Радиоуправление своими руками. Простейшая однокомандная схема радиоуправления моделями (3 транзистора) 4 командная схема управления моделями



Данное устройство предназначено для управления 4 различными нагрузками (например управление гаражными воротами, эл. освещением и прочее). Допускается одновременное нажатие кнопок в любой комбинации (для режима без фиксации команды). Приемник имеет 2 режима работы: – 1 режим без фиксации команды (перемычка на приемнике убрана) – команды выполняются только в момент удержания соответствующей кнопки (кнопок). – 2 режим с фиксацией команды (установлена перемычка на приемник) – команда выполняется после нажатия кнопки, повторное нажатие кнопки отключает команду.

Передатчик состоит из кодера на микроконтроллере, и радиомодуля для передачи данных по радиоканалу. Модуляция – ШИМ. В передатчик заложен алгоритм помехоустойчивой передачи данных, для защиты от ложных срабатываний. Потребление тока в режиме покоя составляет 0,1мкА в режиме сна, и 11мА во время передачи (от источника напряжения 3В). 0,3мкА в режиме сна, и 15мА во время передачи (от источника напряжения 6В). Для управления на небольшой дистанции достаточно одной литиевой батареи. Для более дальней связи используются 2 литиевых батареи. Плата передатчика – 2-х сторонняя. Обратная сторона используется в качестве экрана. Фольга только удалена под катушкой L2.

Особенности передатчика:

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

– если при подключении батареи удерживать кнопку SB1, то передатчик перейдет в режим передачи сигнала 100 % амплитудной модуляцией частотой 1кГц. Это сделано для тех кто самостоятельно будет собирать и настраивать сверхрегенеративный приемник на нужную частоту (по сигналу передатчика удобно производить данную настройку).

– если при подключении батареи удерживать кнопку SB2, то передатчик перейдет в режим постоянной передачи кодовой посылки 0101 (2 светодиода горят, 2 потушены). Этот режим удобен для тех, кто будет тестировать дальность работы устройств.

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

А теперь о дальности работы. При питании передатчика от источника напряжением 6В и нахождении передатчика на 7 этаже мне удавалось передавать команды на расстояние до 1км. Причем внутри дома сигнал передатчика пробивал насквозь 7 этажей (до 1 этажа), прием даже велся в металлическом лифте на пути следования с 7 до 1 этажа. При нахождении передатчика на уровне 1,5 метра от земли сигнал передавался до 300 метров при прямой видимости. В качестве антенн были использованы куски провода по 17см.

Прошивки бесплатны, и не имеют никаких ограничений. Кодер и декодер имеют индивидуальный код (могут быть перестроены на сотни миллиардов различных комбинаций). При программировании контроллеров не забываем о калибровочных константах http://pro-radio.ru/controllers/3131-2/ (у кого PICkit – могут о этом не беспокоиться, программатор сам все сделает).

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

Уважаемый 4uvak. Собрал на днях сие чудо на 4 канала. Использовал радио модуль FS1000A, Пашет конечно же все как и написано, за исключением дальности, но думаю это радио модуль просто не фонтан, от того и стоит он 1,5$.
Но собрал я его для того что бы привязать его к broadlink rm2 pro и тут у меня нифига не получилось. Broadlink rm2 pro его увидел, считал его команду и сохранил в себе, но когда он отсылает команду на декодер, последний ни как не реагирует. Broadlink rm2 pro рассчитан по заявленным характеристикам на работу в диапазоне 315/433 МГц, но сие чудо он не принял в свои ряды. Далее последовали танцы с бубном..... В broadlink rm2 pro есть функция как таймер на несколько команд и я решил поставить broadlink rm2 pro задачу на отправку одной и той же команды несколько раз с интервалом 0 секунд, НО!!! Записав одну команду дальше записывать он отказался мотивируя тем, что нет больше места в памяти для сохранения команд. Следом я попробовал сделать ту же операцию с командами от телевизора и он записал 5 команд без проблем. Отсюда я сделал вывод, что в написанной вами программе очень информативные и большие по объему команды отсылаемые кодером на декодер.

Я в программировании МК абсолютный ноль и ваш проект это первый в моей жизни собранный и работающий пульт. С радио техникой никогда не дружил и профессия у меня далека от электроники.

Теперь вопрос:

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

Я понимаю, что любой не оплачиваемый труд считается за рабство:))))) , а посему готов оплатить ваш труд. Я конечно же не знаю, сколько это будет стоить, но думаю цена будет адекватной проделанной работе. Я хотел вам перечислить деньги но там где было написано, там в рублях и непонятно куда отправлять. Я не резидент РФ и живу в Кыргызстане. У меня мастер кард $. Если есть вариант отправить вам деньги на вашу карту то будет хорошо. В рублях я даже не знаю как это делать. Возможно есть и другие легкие варианты.

Задумал я это потому, что после того как приобрел broadlink rm2 pro подключил тв и кондиционер за бесплатно, а вот остальные радио штучки у нас какие то не дешевые. В доме 19 выключателей на свет, по 3-4-5 штук на комнату и покупать на все выходит очень накладно. Да и розетки хотелось бы переделать на управлении, иначе какой же это умный дом получается.

В общем задача у меня сделать пульты своим руками, что бы они не путали друг друга и главное что бы их понимал broadlink rm2 pro . На данный момент он пульт по вашей схеме не понимает.

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

Жду вашего ответа.

Кто из начинающих радиолюбителей не хотел сделать какое-нибудь устройство с управлением по радиоканалу? Наверняка многие.

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

В качестве приёмо-передатчика я использовал готовый модуль. Купил его на AliExpress вот у этого продавца .

Комплект состоит из пульта-передатчика на 4 команды (брелок), а также платы приёмника. Плата приёмника выполнена в виде отдельной печатной платы и не имеет исполнительных цепей. Их необходимо собрать самому.

Вот внешний вид.

Брелок добротный, приятный на ощупь, поставляется с батарейкой 12V (23А).

В брелоке встроена плата, на которой собрана довольно примитивная схема пульта-передатчика на транзисторах и шифраторе SC2262 (полный аналог PT2262). Смутило то, что на микросхеме в качестве маркировки указано SC2264, хотя из даташита известно, что дешифратор для PT2262 - это PT2272. Тут же на корпусе микросхемы чуть ниже основной маркировки указано SCT2262. Вот и думай, что к чему . Что ж, для Китая это не удивительно.

Передатчик работает в режиме амплитудной модуляции (АМ) на частоте 315 МГц.

Приёмник собран на небольшой печатной плате. Радиоприёмный тракт выполнен на двух SMD-транзисторах с маркировкой R25 - биполярных N-P-N транзисторах 2SC3356. На операционном усилителе LM358 реализован компаратор, а к его выходу подключен дешифратор SC2272-M4 (она же PT2272-M4).

Как работает устройство?

Суть работы сего устройства такова. При нажатии на одну из кнопок пульта A, B, C, D передаётся сигнал. Приёмник усиливает сигнал, а на выходах D0, D1, D2, D3 платы приёмника появляется напряжение 5 вольт. Вся загвоздка в том, что 5 вольт на выходе будет только пока нажата соответствующая кнопка на брелоке. Стоит отпустить кнопку на пульте - напряжение на выходе приёмника пропадёт. Упс. В таком случае не получиться сделать радиоуправляемое реле, которое бы срабатывало при кратковременном нажатии кнопки на брелоке и отключалось при повторном.

Связано это с тем, что существуют разные модификации микросхемы PT2272 (китайский аналог - SC2272). А в такие модули почему то ставят именно PT2272-M4, у которых нет фиксации напряжения на выходе.

А какие же бывают разновидности микросхемы PT2272?

    PT2272-M4 - 4 канала без фиксации. На выходе соответствующего канала +5V появляется только тогда, пока нажата кнопка на брелоке. Именно такая микросхема используется в купленном мной модуле.

    PT2272-L4 - 4 зависимых канала с фиксацией. Если включается один выход, то другие отключаются. Не совсем удобно, если необходимо независимо управлять разными реле.

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

Что же сделать, чтобы реле срабатывало так, как нам нужно?

Тут есть несколько решений:

    Выдираем микросхему SC2272-M4 и вместо неё ставим такую же, но с индексом T4 (SC2272-T4). Теперь выходы будут работать независимо и с фиксацией. То есть можно будет включить/выключить любое из 4 реле. Реле будут включаться при нажатии кнопки, и выключаться при повторном нажатии на соответствующую кнопку.

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

    Используем микроконтроллер. Требует навыков программирования.

На радиорынке микросхему PT2272-T4 я не нашёл, а заказывать с Ali целую партию одинаковых микрух счёл нецелесообразным. Поэтому для сборки радиоуправляемого реле решил использовать второй вариант с триггером на К561ТМ2.

Схема достаточно проста (картинка кликабельна).

Вот реализация на макетной плате.

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

Наверняка заметили, что в макетку я воткнул готовый блок с реле. Его я вытащил из охранной сигнализации. Блок оказался очень удобным, так как на плате уже было распаяно само реле, штыревой разъём и защитный диод (это VD1-VD4 на схеме).

Пояснения к схеме.

Приёмный модуль.

Вывод VT - это вывод, на котором появляется напряжение 5 вольт, если был принят сигнал от передатчика. Я к нему подключил светодиод через сопротивление 300 Ом. Номинал резистора может быть от 270 до 560 Ом. Так указано в даташите на микросхему.

При нажатии на любую кнопку брелока светодиод, который мы подключили к выводу VT приёмника, будет кратковременно вспыхивать - это свидетельствует о приёме сигнала.

Выводы D0, D1, D2, D3; - это выходы микросхемы дешифратора PT2272-M4. С них мы будем снимать принятый сигнал. На этих выходах появляется напряжение +5V, если был принят сигнал от пульта управления (брелока). Именно к этим выводам подключаются исполнительные цепи. Кнопки A, B, C, D на пульте (брелоке) соответствуют выходам D0, D1, D2, D3.

На схеме приёмный модуль и триггеры запитываются напряжением +5V от интегрального стабилизатора 78L05. Цоколёвка стабилизатора 78L05 показана на рисунке.

Буферная цепь на D-триггере.

На микросхеме К561ТМ2 собран делитель частоты на два. На вход С приходят импульсы с приёмника, и D-триггер переключается в другое состояние до тех пор, пока на вход С не придёт второй импульс с приёмника. Получается очень удобно. Поскольку реле управляется с выхода триггера, то и оно будет включено или выключено до тех пор, пока не придёт следующий импульс.

Вместо микросхемы К561ТМ2 можно использовать К176ТМ2, К564ТМ2, 1КТМ2 (в металле с позолотой) или импортные аналоги CD4013, HEF4013, HСF4013. Каждая из этих микросхем состоит из двух D-триггеров. Их цоколёвка одинаковая, но вот корпуса могут быть разные, как, например, у 1КТМ2.

Исполнительная цепь.

В качестве силового ключа используется биполярный транзистор VT1. Я использовал КТ817, но подойдёт КТ815. Он управляет электромагнитным реле K1 на 12V. К контактам электромагнитного реле K1.1 можно подключать любую нагрузку. Это может быть лампа накаливания, светодиодная лента, электродвигатель, электромагнит замка и др.

Цоколёвка транзистора КТ817, КТ815.

Следует учесть, что мощность подключаемой к контактам реле нагрузки должна быть не меньше той мощности, на которую рассчитаны контакты самого реле.

Диоды VD1-VD4 служат защитой транзисторов VT1-VT4 от напряжения самоиндукции. В момент отключения реле в его обмотке возникает напряжение, которое противоположено по знаку тому, которое поступало на обмотку реле от транзистора. В результате транзистор может выйти из строя. А диоды по отношению к напряжению самоиндукции оказываются открытыми и "гасят" его. Тем самым они берегут наши транзисторы. Не забывайте про них!

Если хотите дополнить исполнительную цепь индикатором включения реле, то добавляем в схему светодиод и резистор на 1 кОм. Вот схема.

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

Вместо отдельных транзисторов в схеме можно использовать всего лишь одну микросхему с минимумом обвязки. Подойдёт микросхема ULN2003A . Отечественный аналог К1109КТ22 .

Это микросхема содержит 7 транзисторов Дарлингтона. Удобно то, что выводы входов и выходов расположены друг против друга, что облегчает разводку платы, да и обычное макетирование на беспаечной макетной плате.

Работает довольно просто. Подаём на вход IN1 напряжение +5V, составной транзистор открывается, и вывод OUT1 подключается к минусу питания. Тем самым на нагрузку подаётся напряжение питания. Нагрузкой может быть электромагнитное реле , электромотор, цепь из светодиодов, электромагнит и пр.

В даташите производитель микросхемы ULN2003A хвастается, что ток нагрузки каждого выхода может достигать 500 мА (0,5А), что собственно, не мало. Тут многие из нас умножат 0,5А на 7 выходов и получат суммарный ток в 3,5 ампера. Да, здорово! НО . Если микросхема и сможет прокачать через себя такой существенный ток, то на ней можно будет жарить шашлык...

На самом деле, если задействовать все выходы и пустить в нагрузку ток, то выжать без вреда для микросхемы можно будет около ~80 - 100мА на канал. Опс. Да, чудес не бывает.

Вот схема подключения ULN2003A к выходам триггера К561ТМ2.

Есть ещё одна широко распространённая микросхема, которую можно использовать - это ULN2803A.

У неё уже 8 входов/выходов. Я её выдрал с платы убитого промышленного контроллера и решил поэкспериментировать.

Схема подключения ULN2803A. Для индикации включения реле можно дополнить схему цепью из светодиода HL1 и резистора R1.

Вот так это выглядит на макетке.

Кстати, микросхемы ULN2003, ULN2803 допускают объединение выходов для увеличения максимально-допустимого выходного тока. Это может потребоваться, если нагрузка потребляет более 500 мА. Соответствующие входы также объединяются.

Вместо электромагнитного реле в схеме можно применить твёрдотельное реле (SSR - S olid S tate R elay). В таком случае, схему можно существенно упростить. Например, если применить твёрдотельное реле CPC1035N, то отпадает необходимость в питании устройства от 12 вольт. Достаточно будет 5-вольтового блока питания для питания всей схемы. Также отпадает необходимость в интегральном стабилизаторе напряжения DA1 (78L05) и конденсаторах С3, С4.

Вот так твёрдотельное реле CPC1035N подключается к триггеру на К561ТМ2.

Несмотря на свою миниатюрность, твёрдотельное реле CPC1035N может коммутировать переменное напряжение от 0 до 350 V, при токе нагрузки до 100 mA. Иногда этого достаточно, чтобы управлять маломощной нагрузкой.

Можно применить и отечественные твёрдотельные реле, я, например, экспериментировал с К293КП17Р.

Выдрал его с платы охранной сигнализации. В данной релюшке, кроме самого твёрдотельного реле, есть ещё и транзисторная оптопара. Её я не использовал - оставил выводы свободными. Вот схема подключения.

Возможности К293КП17Р весьма неплохие. Может коммутировать постоянное напряжение отрицательной и положительной полярности в пределах -230...230 V при токе нагрузки до 100 mA. А вот с переменным напряжением работать не может. То есть постоянное напряжение к выводам 8 - 9 можно подводить как угодно, не заботясь о полярности. Но вот переменное напряжение подводить не стоит.

Дальность работы.

Чтобы приёмный модуль надёжно принимал сигналы от пульта-передатчика, к контакту ANT на плате нужно припаять антенну. Желательно, чтобы длина антенны была равна четверть длины волны передатчика (то бишь λ/4). Так как передатчик брелока работает на частоте в 315 МГц, то по формуле длина антенны составит ~24 см. Вот расчёт.

Где f - частота (в Гц), следовательно 315 000 000 Гц (315 Мегагерц);

Скорость света С - 300 000 000 метров в секунду (м/c);

λ - длина волны в метрах (м).

Чтобы узнать, на какой частоте работает пульт-передатчик, вскрываем его и ищем на печатной плате фильтр на ПАВ (Поверхностно-акустических волнах). На нём обычно указана частота. В моём случае это 315 МГц.

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

В качестве антенны можно применить телескопическую антенну от какого-нибудь неисправного радиоприёмника, магнитолы. Будет очень даже круто .

Дальность, при которой приёмник устойчиво принимает сигнал от брелока небольшое. Опытным путём я определил расстояние в 15 - 20 метров. С преградами это расстояние уменьшается, а вот при прямой видимости дальность будет в пределах 30 метров. Ожидать чего-то большего от такого простого устройства глупо, схемотехника его весьма проста.

Шифрование или "привязка" пульта к приёмнику.

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

Если купить и использовать два комплекта радиомодулей, то приёмник будет срабатывать от разных брелоков. Аналогично будет и с приёмным модулем. Два приёмных модуля будут срабатывать от одного брелока. Чтобы этого не происходило, применяется фиксированная кодировка. Если приглядеться, то на плате брелока и на плате приёмника есть места, где можно напаять перемычки.

Выводы от 1 до 8 у пары микросхем кодеров/декодеров (PT2262/PT2272 ) служат для установки кода. Если приглядется, то на плате пульта управления рядом с выводами 1 - 8 микросхемы есть лужёные полоски, а рядом с ними буквы H и L . Буква H - означает High ("высокий"), то есть высокий уровень.

Если паяльником накинуть перемычку от вывода микросхемы к полоске с пометкой H , то мы тем самым подадим высокий уровень напряжения в 5V на микросхему.

Буква L соответственно означает Low ("низкий"), то есть, накидывая перемычку c вывода микросхемы на полоску с буквой L, мы устанавливаем низкий уровень в 0 вольт на выводе микросхемы.

На печатной плате не указан нейтральный уровень - N . Это когда вывод микросхемы как бы "висит" в воздухе и ни к чему не подключен.

Таким образом, фиксированный код задаётся 3 уровнями (H, L, N). При использовании 8 выводов для установки кода получается 3 8 = 6561 возможных комбинаций! Если учесть, что четыре кнопки у пульта также участвуют в формировании кода, то возможных комбинаций становится ещё больше. В результате случайное срабатывание приёмника от чужого пульта с иной кодировкой становится маловероятным.

На плате приёмника пометок в виде букв L и H нет, но тут нет ничего сложного, так как полоска L подключена к минусовому проводу на плате. Как правило, минусовой или общий (GND) провод выполняется в виде обширного полигона и занимает на печатной плате большую площадь.

Полоска H подключается к цепям с напряжением в 5 вольт. Думаю понятно.

Я установил перемычки следующим образом. Теперь мой приёмник от другого пульта уже не сработает, он узнает только "свой" брелок. Естественно, распайка должна быть одинаковой как у приёмника, так и у пульта-передатчика.

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

Стоит отметить, что фиксированный код не сложно взломать, поэтому не рекомендую использовать данные приёмо-передающие модули в устройствах доступа.

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

Как и чем управлять

Нормальные люди берут приемник, втыкают в него сервомашинки, регулятор скорости, двигают рычажки на пульте и радуются жизни не задаваясь принципами работы и не углубляясь в подробности. В нашем случае такое не пройдет. Первой задачей стало узнать каким макаром управляются сервомашинки. Все оказывается достаточно просто, у привода есть три провода: + питания, - питания и сигнальный. На сигнальном проводе прямоугольные импульсы изменяемой скважности. Чтобы понять что это такое смотрим картинку:

Итак, если мы хотим установить привод в крайнее левое положение нужно слать импульсы длительностью 0,9мс с интервалом 20мс, если в крайнее правое - длительность 2,1мс, интервал тот же, ну со средними положениями аналогично. Как оказалось, регуляторы скорости управляются аналогично. Те, кто в теме скажут что это обычный ШИМ , который реализовать на любом микроконтроллере - плевое дело. Вот и я так решил, купил в местном магазине сервомашинку и склепал на макетке для нее так называемый сервотестер на ATtiny13. И тут оказалось, что ШИМ не совсем простой, а с подводными камнями. Как видно из вышеприведенной диаграммы, скважность (отношение длительности импульса к длительности периода) от 5% до 10% (в дальнейшем я за крайние положения принимаю импульсы длительностью 1,0мс и 2,0мс) для 256-значного ШИМ счетчика ATtiny13 это соответствует значениям от 25 до 50. Но это при условии, что на заполнение счетчика уйдет 20мс, а на деле так не получится и для частоты 9,6МГц и предделителя 1024 нужно ограничить счетчик значением 187(ТОР), в таком случае у нас получится частота 50,134Гц. В большинстве (если не во всех) сервомашинок нету точного генератора опорной частоты и поэтому частота управляющего сигнала может немного плавать. Если оставить ТОР счетчика 255, то частота управляющего сигнала будет 36,76Гц - на некоторых приводах оно будет работать (возможно с глюками), но далеко не на всех. Итак, теперь у нас 187-значный счетчик, для него 5-10% соответствуют значениям от 10 до 20 - всего 10 значений, немного дискретно получится. Если думаете поиграть с тактовой частотой и предделителем ниже привожу сравнительную табличку для 8-битного ШИМа:

Но ведь у большинства микроконтроллеров есть 16-битный (и больше) таймер для генерации ШИМ. Здесь проблема с дискретностью сразу пропадет еще и частоту можно точно выставить. Долго расписывать не буду, сразу даю табличку:

Я не думаю, что для китайской сервомашинки есть существенная разница в 600 и 1200 значений, поэтому вопрос с точностью позиционирования можно считать закрытым.

Многоканальное управление

С одной сервомашинкой разобрались, но для самолета их нужно минимум три и еще регулятор скорости. Решение «в лоб» - взять микроконтроллер с четырьмя каналами 16-битного ШИМ, но такой контроллер будет стоять дорого и, скорее всего, займет много места на плате. Второй вариант - запилить программный ШИМ, но занимать процессорное время - это тоже не вариант. Если снова посмотреть на диаграммы сигнала, то 80% времени он не несет никакой информации, поэтому рациональнее было бы ШИМом задавать только сам импульс 1-2мс. Почему скважность изменяется в таких узких пределах, ведь проще было бы и формировать и считывать импульсы со скважностью хотя бы 10-90%? Зачем нужен тот неинформативный кусок сигнала занимающий 80% времени? Я заподозрил, что, возможно, эти 80% могут занимать импульсы для других исполнительных механизмов, а потом этот сигнал разделяется на несколько разных. То есть, в периоде длительностью 20мс могут уместится 10 импульсов длительностью 1-2мс, затем этот сигнал каким-то демультиплексором разделяется на 10 различных с длительностью периода как раз 20мс. Сказано - сделано, нарисовал в PROTEUS такую схемку:


В роли демультиплексора - 74HC238, на его вход E подаются импульсы с выхода микроконтроллера. Эти импульсы - ШИМ с периодом 2мс (500Гц) и скважностью 50-100%. У каждого импульса своя скважность, обозначающая состояние каждого канала. Вот так выглядит сигнал на входе Е:


Для того, чтобы 74HC238 знал на какой выход подать текущий сигнал используем PORTC микроконтроллера и входы A, B, C демультиплексора. В результате на выходах получаем такие сигналы:


Сигналы на выходе получаются правильной частоты (50Гц) и скважности (5-10%). Итак, нужно генерировать ШИМ частотой 500Гц и заполнением 50-100%, вот табличка для настройки предделителя и ТОР 16-битного счетчика:


Интересно, что возможное количество значений ШИМа ровно в 1000 раз меньше частоты таймера.
Программная реализация
Для ATmega8 с тактовой частотой 16МГц в AtmelStudio6 все реализуется следующим образом: вначале задефайним значения счетчика для крайних положений сервомашинок:
#define LOW 16000U #define HIGH 32000U
затем инициализируем генератор ШИМа на таймере/счетчике1:
OCR1A = HIGH; //Устанавливаем ТОР TCCR1A = 0< Остается реализовать прерывания:
ISR(TIMER1_COMPA_vect) //прерывание по достижению верхнего значения счетчика, непосредственно перед началом следующего импульса { //c_num- переменная, обозначающая номер текущего канала, channels - массив значений каналов if (c_num <= 7) { OCR1B = channels; } else { OCR1B = 0; //отключаем ШИМогенератор для несуществующих в демультиплексоре 8 и 9 канала } } ISR(TIMER1_COMPB_vect, ISR_NOBLOCK)// прерывание возникающее в конце импульса { if (c_num <= 7) { PORTC = c_num; //для каналов 0-7 выводим номер канала на PORTC } //и изменяем значение счетчика от 0 до 9 if (c_num >= 9) { c_num = 0; } else { c_num++; } }
Глобально разрешаем прерывания и готово, забивая в channels значения от LOW до HIGH изменяем значения на каналах.

Реализация в железе

Ну с теорией разобрались, пришло время все это реализовать. Мозгом системы выбран микроконтроллер ATmega8A, тактируется от кварца на 16МГц (не потому, что я захотел 16000 позиций сервомашинки, а потому, что у меня такие валялись). Управляющий сигнал для МК будет поступать через UART. В результате получилась вот такая схемка:


Спустя некоторое время появилась вот такая платка:




Два трехштыревых разъема я не припаял потому, что они мне не нужны, а не подряд они впаяны поскольку у меня нету металлизации отверстий, а в нижнем разъеме дорожки с двух сторон, можно было бы заменить проволочкой, но программно нету проблемы выводить сигнал на любой разъем. Также отсутствует 78L05 ибо в моем регуляторе двигателя есть встроенный стабилизатор (ВЕС).
Для получения данных к плате подключается радиомодуль HM-R868:


Изначально думал втыкать его прямо в плату, но эта конструкция не помещалась в самолетик, пришлось сделать через шлейф. Если изменить прошивку, то контакты разъема для программирования можно использовать для включения/отключения каких-нибудь системам (бортовые огни и т.п.)
Плата обошлась примерно в 20грн = $2.50, приемник - 30грн = $3,75.

Передающая часть

Самолетная часть есть, осталось разобраться с наземной аппаратурой. Как уже писалось ранее, данные передаются по UART, на каждый канал по одному байту. Вначале подключал свою систему проводом через переходник к компьютеру и команды слал через терминал. Чтобы дешифратор определял начало посылки, а в будущем выделял посылки адресуемые именно ему, вначале шлется байт-идентификатор, затем 8 байт определяющих состояние каналов. Позже стал использовать радиомодули, при отключении передатчика все моторчики начинали дико дергаться. Дабы отфильтровать сигнал от шумов, десятым байтом шлю XOR всех 9 предыдущих байт. Помогло, но слабо, добавил еще проверку на таймаут между байтами, если он превышается - вся посылка игнорится и прием начинается заново, с ожидания байта-идентификатора. С добавлением контрольной суммы в виде XOR слать команды с терминала стало напряжным, поэтому я побыстрому наклепал вот такую программку с ползунками:


Число в нижнем левом углу - контрольная сумма. Передвигая ползунки на компе двигались рули на самолете! Вообщем отладил я все это и стал думать о пульте ДУ, купил для него вот такие джойстики:

Но потом меня посетила одна мысль. В свое время я тащился от всяких авиасимуляторов: «Ил-2 Штурмовик», «Lock On», «MSFSX», «Ка-50 Черная Акула» и др. Соответственно был у меня джойстик Genius F-23 и решил я прикрутить его к вышеописанной проге с ползунками. Погуглил как это реализовать, нашел этот пост и получилось! Управлять самолетиком с помощью полноценного джойстика, мне кажется, гораздо круче, чем маленькой палочкой на пульте. Вообщем все вместе изображено на первой фотке - это нетбук, джойстик, преобразователь на FT232, и подключенный к нему передатчик HM-T868. Преобразователь подключается 2м кабелем от принтера, что позволяет закрепить его на каком нибудь дереве или чем-то подобном.

Пуск!

Итак, есть самолетик, есть радиоуправление - Поехали!(с) Первый полет производился над асфальтом, результат - сломанный пополам фюзеляж и полувырванный двигатель. Второй полет производился над более мягкой поверхностью:

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


- проверить правдивость этой версии пока не представляется возможным. В пользу этой версии говорит и зафиксированная на видео попытка выровнять самолет - он летит накрененным, а потом резко заваливается в противоположную сторону (а должен плавно). Вот более наглядное видео:

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

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

Управление моделями по радио

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

Выбор модели и системы управления

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

Передатчик

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

Однокомандное приемное устройство

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

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

Более сложный вариант приемного устройства системы телеуправления моделями по радио. Название говорит само за себя: аппаратура позволяет игрушке выполнять четыре команды, обеспечивая весь спектр движения по плоскости.

Выбор модели дискретно-пропорционального управления

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

Передатчик для управления летающими моделями

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