|
|
|
Управляемое реле на основе проекта IgorPlug2.
Рис. 1 Внешний вид универсального сэмпла.
Увеличить
План.
1) Вступление.
2) Трудности реализации.
3) Анализ принятых с ПДУ данных.
4) Переключатель 0/12В.
5) Схемотехника управляемого реле.
6) Расширение функционала до 128 и более каналов.
7) Дизайн печатных плат, прошивки и драйвера.
Внимание!!!
В связи с добавлением поддержки Win7 и переходом на HID версию с тремя реле
описание проекта обновляется, и новый вариант описания развивается
ОТДЕЛЬНО - с самостоятельным оформлением
(это этот же сайт, но убрано все лишнее кроме описания HID версии проекта), а не обновленные ссылки
временно свернуты в "пояснения":
»Щелкните по этому тексту, чтобы развернуть пояснения«
AA) Быстрый старт проекта IgorPlug2 -
тут.
A) Прошивки и драйвера -
тут.
Б) Библиотека для стыковки IgorPlug2 и SlyControl -
тут.
В) Программный
Осциллограф
для экспериментов -
тут.
Г) Стандартная реализация IgorPlug2 -
тут.
Д) Управляемое реле на основе IgorPlug2 - Эта страница.
Е) Технические характеристики ПТК -
тут.
Ж) Методика выбора пульта ДУ для IgorPlug -
тут.
З) Виды кодировок ПДУ -
тут.
И) Варианты дизайна печатных плат -
тут.
К) USB Key на основе IgorPlug2 -
тут.
Л) Список часто задаваемых вопросов FAQ -
тут
М) Драйвер для IgorPlug2
доработанный пользователями -
тут.
X) Обратная связь -
тут.
Если требуется пошаговая инструкция...
То прочтите раздел Быстрый старт проекта IgorPlug2.
Эта же страница, но без "воды", вступления и т.д. лежит -
тут.
Вступление.
Ко мне часто приходят письма с предложением организовать включение компьютера с пульта дистанционного
управления. Идея в принципе хорошая, но на практике имеет множество подводных камней.
Часть из них нам удалось исправить, часть удалось обойти и в результате получился набор блоков,
функционал которых зависит от их совместных подключений и залитой прошивки.
Далее я постараюсь вкратце описать сферы применения центрального блока, который может
работать и самостоятельно (т.е. без периферийных блоков) в качестве переключателя 0/12В,
(т.е. в качестве USB Реле на 4 выхода и IR приёмника в одном флаконе).
Некоторые пользователи используют его для включения компьютера с пульта дистанционного управления,
но такой подход имеет ряд трудностей при реализации.
Трудности реализации.
Первый и основной вопрос возникающий практически на первых шагах реализации включения компьютера
с пульта заключается в отсутствии у рядового пользователя легкодоступного и надёжного источника +5В.
»Щелкните по этому тексту, чтобы развернуть пояснения«
Многие пользователи переспросят: "А зачем он нам? Когда есть SB +5В в блоке питания."
Самым важным недостатком этого источника является необходимость держать компьютер постоянно включённым
в сеть 220В. Многие думают, что если компьютер "выключен" (имеется в виду из Windows, а не физически),
то ему не страшны помехи в сети 220В и при этом он не может стать причиной пожара. Это самое частое
заблуждение.
Но немного углубимся в теорию. Если АТХ блок питания компьютера физически не отключен от сети, то в нём
вырабатывается дежурное напряжение +5 SB для питания дежурной логики материнской платы и на некоторых
материнских платах возможно питание от этого источника некоторой периферии. Это сделано для того, чтобы
периферия могла включить компьютер при каком - либо внешнем событии. К таким событиям относятся:
приходящий звонок для модема, нажатие кнопки включения на клавиатуре (USB или PS/2), правда с пометкой
если этот режим поддерживается материнской платой, сетевая активность для сетевой платы, срабатывание
"будильника" в BIOS материнской платы и т.д.
Не знаю как у вас с электросетью, но у нас без Line Condition (стабилизатор напряжения для компьютера)
и приличного Line Interactive UPS в сеть компьютер лучше не включать, во избежание его выгорания
(иногда бывают скачки до 380В в сети 220В). Вы естественно скажите, что это не штатная ситуация и
таких ситуаций не должно быть, я с вами конечно же соглашусь, но к сожалению наше мнение не влияет
на существование этих ситуаций. Мы только можем попытаться от них защититься.
Вторым по важности недостатком SB +5В является то, что не на всех материнских платах есть штатно
реализованная возможность питания USB разъемов от дежурного напряжения +5 SB в выключенном состоянии
(напомню, девайс IgorPlug является USB устройством). Многие мне тут же скажут, что это не фатально и
можно самому подключиться к разъему WakeOnLan, или проковырять дырочку в изоляции провода +5 SB и
сделать отпайку, или включить многожильный кабель блока питания компьютера в материнскую плату через
переходник, или поставить внешний блок питания с 220В на 5В.
Можно, но: во-первых при этом придётся усложнить схему включения USB интерфейса (то есть, придётся
ставить реле коммутирующее цифровые линии). А во-вторых, что НАМНОГО важнее: в первых 2х случаях
нарушается штатная схема соединений.
Видели на корпусе блока питания надпись "не вскрывать и не изменять схему во избежание несчастных
случаев и пожара"? Она там не зря написана... А включение через переходник чревато плохим контактом
и как его следствие, увеличение пульсаций, что приведёт к вздутию конденсаторов на материнской плате
и в последствии станет причиной выхода её из строя.
Анализ принятых с ПДУ данных.
Теперь немного поговорим о кодировках пультов дистанционного управления. Отбрасывая сложные и
неоднородные кодировки выясняется, что даже с простыми кодировками основная проблема заключается в том,
что пульт отправляет данные с разбросом длины одного бита +/- 5 едениц (можно посмотреть в программе
приёма, забегая вперёд скажу - это основная проблема третьего метода).
Это обстоятельство мешает без предварительной математической обработки получить одно и тоже
значение при нажатии одной и той же кнопки пульта. На данный момент мне известно 4 пути решения
математической обработки данных, позволяющих работать в той или иной степени с подмножеством кодировок
(а не одной единственной).
»Щелкните по этому тексту, чтобы развернуть пояснения«
Первый из них заключается в анализе принятых данных, выборе оптимального алгоритма из нескольких
(около 10) встроенных алгоритмов декодирования, после чего происходит обработка данных выбранным
алгоритмом. В результате вычисляется некий код (в дальнейшем будем называть его ХЭШ), который
однозначно фиксирует данную кнопку.
Второй путь связан с построением графа на основе принятых данных. После анализа графа вычисляются
промежуточные константы, по которым происходит декодирование, в результате чего вычисляется ХЭШ,
входящий в подмножество ХЭШей (бывает от 1 до 4х - это связано с изменчивостью кодировки), фиксирующий
данную кнопку.
Третий путь - записать характеристики одной единственной клавиши в EPROM микропроцессора. При этом весь
EPROM будет занят и подключить вторую кнопку уже не удастся. Я уже не вспоминаю про то, что некоторые
кодировки имеют по два уникальных кода на кнопку. А при некоторых исполнениях желательно иметь до 4х
коммутируемых устройств. То есть, не получится совместить в одном устройстве функции "включения компьютера
с пульта дистанционного управления", "переключателя 0/12В" и ещё нескольких интересных функций.
И четвёртый путь: на основе универсального
алгоритма, смысл которого в двух
словах заключается в выделении общих черт графа на основе базы данных кнопок данной кодировки, анализа
полученных данных, вычисления зон истинности промежуточных констант и записи этих констант в МК. Далее в
МК происходит декодирование, в результате чего вычисляется ХЭШ, входящий в подмножество ХЭШей (бывает от 1
до 4х - это связано с изменчивостью кодировки), фиксирующий данную кнопку.
На микропроцессоре поднять первый и второй алгоритм распознавания на данном этапе не
представляется возможным (перейти на более мощное железо и сидеть месяца 3 с занятостью в полный
рабочий день - в первом случае и нехваткой ОЗУ и производительности для построения графа - во
втором случае).
Третий реализуется, но даёт мизерную функциональность. Сравнение третьего и четвёртого методов
тут.
Но четвёртый алгоритм относительно
свободно реализуется на МК. Т.к. большая часть вычислений происходит первоначально на компьютере, а
микропроцессор просто проверяет истинность пришедших данных.
Внедрение алгоритма номер 4
позволяет пользователю оперативно задавать количество и функциональность цепей управления, позволяет реализовать
переключение нескольких раскладок кнопок, переключаться в режим HID устройства. И не только эмулировать
функции HID пульта, но любого HID совместимого устройства. Из минусов - получается привязка только к
одному конкретному пульту (или к группе пультов со схожей кодировкой), но этот минус компенсируется тем,
что пульт может быть любой (или любая группа со схожими кодировками).
Просто перед началом использования надо "обучить" систему распознавать сигнал от этого пульта, с помощью
прилагаемой программы. Подробнее об этом читайте в
Краткой инструкции - От Пользователей.
По алгоритму четвёртого метода я собрал
небольшую базу уже "обученных" прошивок. Но, если поддержки вашего пульта среди них не оказалось - не пугайтесь,
процесс обучения не сложен, не требует знаний высшей математики, имеет подробный пошаговый хэлп (заснятый на видео)
и занимает по времени максимум 30 минут. Если вы "обучили" систему под пульт, прошивка под который не выложена
у меня на сайте - просьба прислать мне архив с результатом на электронный адрес внизу страницы.
Переключатель 0/12В.
Как известно выход 0/12В используется для управления коммутатором, который позволяет коммутировать два
коаксиальных кабеля от 2х Diseqc переключателей к одному входу Sat тюнера. Большинство Sat тюнеров имеют
выход 0/12В, но на компьютерных платах подобный выход практически всегда отсутствует.
Обдумывая данную реализацию можно придти к выводу, что трудности реализации включения компьютера с пульта
дистанционного управления не относятся к переключателю 0/12В. Это связано с тем, что переключатель 0/12В работает
только во время работы компьютера (во время просмотра Sat каналов). Все USB порты штатно запитываются от
основного источника питания, а не ограниченного по току дежурного источника +5 SB. Переключатель 0/12
нужен для работы с DVB платой, отсюда и вывод: пульт от DVB у пользователя уже есть.
У меня выложена "обученная" прошивка под пульт от DVB платы
SkyStar2.
Пользователи других плат спутникового телевидения могут "обучить" систему под пульт от их платы
также, как "обучить" под любой другой пульт от бытовой техники, потратив на обновление прошивки 30 мин.
»Щелкните по этому тексту, чтобы развернуть пояснения«
Внимательный читатель спросит: "А зачем это надо? Ведь из программы контроля можно управлять выходами
устройства напрямик?" Одно НО, программа контроля пульта полностью занимает устройство, то есть, управлять
устройством может только 1 программа. Обычно этой программой является разновидность сервера WinLirc'а. Но
тут всплывает ещё один подводный камень: сервер WinLirc'а может управлять другими программами, но обратной
связи - от управляемой программы к серверу штатно не предусмотрено.
В принципе, если состыковать производителя программного обеспечения для просмотра (вьювера) и производителя
сервера WinLirc'а, то можно организовать обратную связь, но в этом случае получится не универсальный интерфейс,
а только стыковка двух конкретных программ. А предлагаемая конструкция позволяет решить данную проблему уже
сейчас и универсально, вне зависимости от используемого программного обеспечения.
Если использовать в качестве сервера WinLirc программу SlyControl, то
настроив скрипт на определённые действия можно управлять портом, подробнее об этом можно прочесть
тут. В крайнем случае написать плагин для
SlyControl, благо
SlyControl
имеет полностью открытый апи, и организовать через него общение с внешним миром.
Продумывая эргономику создаваемого устройства, я натолкнулся на проблему "корпуса". Если раньше я использовал
внешние пластиковые коробки (в основном
корпуса
от отработанных картриджей HP), то теперь необходимо както
встраивать данное устройство в корпус компьютера. Погуляв немного по радиоразвалу, где продаётся радиотехнический
хлам, за символическую цену удалось найти трупик CD-Rom'а Creative Infra. Чем хорош труп данного "девайса"?
У него штатно имеется IR приёмник, что избавляет от необходимости вырезать под него окошко на лицевой панеле
устройства и заклеивать его потом куском оргстекла. Шесть кнопок, которые можно задействовать в будущем.
Стандартный 3х миллиметровый джек (в девичестве аудио выход), который можно использовать для подключения внешнего
фотоприёмника. А также есть 2х цветный светодиод для индикации статуса устройства. Т.е, все органы управления
и разъемы штатно установлены и выведены на переднюю панель. Идеальная коробка...
Схемотехника управляемого реле.
Рис. 2 Управляемое реле - в корпусе от CD-ROM'а.
Устройство для включения компьютера с пульта дистанционного управления и переключатель 0/12В имеют
одинаковую схемотехнику. Основной частью этих устройств является разработанная мной плата для IgorPlug2, с
подключённым к ней реле. Разница в алгоритмах использования настраивается с помощью прилагаемой программы.
Применение данного устройства не ограничивается применением "включение компьютера с пульта дистанционного
управления" и "переключатель 0/12В", благодаря индивидуальной настройки пользователь может программировать
любые действия на нажатие кнопок от "обученного" пульта. В принципе таким методом можно управлять любыми
конструкциями, которые требуют оперативный контроль как со стороны компьютера, так и с пульта дистанционного
управления. Зависит только от вашей фантазии. Подробнее об этом читайте в основных программно - технических
характеристиках набора, которые мы разместили -
тут.
Переработанная схема под ATMega8.
Версия для просмотра.
Версия для печати.
Универсальный вариант - перевёртыш.
Версия для просмотра.
Версия для печати.
Схемы возможных внешних подключений.
Версия для просмотра.
Версия для печати.
Опционально схема блока расширения (1-16)х8.
Версия для просмотра/печати.
(т.е. кол-во каналов можно увеличить с 4х до 128 штук).
Для отладки и проверки работоспособности данной конструкции я рядом с реле разместил Bizer (более подробно на
Рис.3 и
Рис.4
). На первом этапе он
включается вместо реле (но это только для разработки и поэтому на схеме он не указан). Для предотвращения
возможных помех в моей конструкции я запитал переключатель 0/12В от внешнего стабилизированного источника
питания 12В, выход которого коммутирует реле К1.
На данный момент контактом реле, используемым в качестве переключателя 0/12В, можно управлять, настроив
скрипт программы SlyControl, подробнее об этом можно прочесть
тут.
Расширение функционала до 128 и более каналов.
Рис. 5 дополнительный светодиодный модуль.
Увеличить
Ну вот мы и подошли к самому интересному вопросу, касающегося автоматизации управления
многоканальной нагрузкой с пульта.
Данное направление очень многогранно и требует индивидуального подхода к каждому конкретному
случаю применения. Такое положение связано с тем, что на практике пользователю требуется не
простейшее включение/отключение одного реле, находящегося третьим слева в верхнем ряду на
двенадцатой плате, с помощью левой нижней кнопки от восьмого пульта, а интегрированная логика
срабатывания реле или силовых ключей в зависимости от изменения внешних условий. Желательно
с добавлением какого - либо простого алгоритма автоматизации управления многоканальной
нагрузкой с пульта или авторизации доступа к их изменениям по средствам пароля и т.д. и
т.п.
А для упрощения разработки таких систем я собрал плату, на которой заменил реле на светодиодные
индикаторы (отображена на рисунке Рис. 5), что в результате привело к созданию светодиодного
дисплея, на котором видно состояние включённости реле.
На рисунке так же показан преобразователь, на +5В, позволяющий работать с системой автономно от двух
пальчиковых батареек (например, для подбора пульта в полевых условиях).
Так что, если вам интересна эта тема, то пишите мне на адрес электронной почты, указанный внизу
страницы и мы постараемся совместно что - либо придумать...
Дизайн печатных плат, прошивки и драйвера.
Варианты дизайна печатных плат вынесены на отдельную страницу.
Прошивки HID версии и драйвера (в современных Windows системах ставить не надо - встроен, в Linux отдельный) к ним вынесены в
САМОСТОЯТЕЛЬНЫЙ вариант - с самостоятельным оформлением
который находится тут.
Описание старой версии использующей драйвер в Win, как и раньше лежит -
тут.
Ограничения.
Устройство разработано по принципу КАК ЕСТЬ и автор не несёт ответственности за явный (или не явный) ущерб,
причинённый в результате повторения.
То есть все эксперименты вы делаете на свой страх и риск.
Список часто задаваемых вопросов читайте в FAQ.
Если у вас возникли вопросы и предложения - пишите мне по адресу внизу страницы
Если вы нашли на моём сайте что-либо интересное или полезное для себя и хотите видеть
на этом сайте новые интересные проекты, а также поддержку, доработки существующих проектов,
то все желающие могут поддержать данный проект, частично покрыть оплату хостинга,
затраты на разработку и переделку проектов.
Кошелёк для оплаты накладных расходов на сайт
Z158779319858 в системе WebMoney.
Принимаю только
безвозмездную помощь :)
Все статьи, опубликованные на этом сайте защищены
Частью 4 Гражданского Кодекса Российской Федерации.
Запрещено полное или частичное копирование материалов без согласия их авторов.
Незаконное использование материалов сайта влечет за собой административную ответственность в виде
компенсации в размере от 10.000 рублей до 5.000.000 рублей [Ст.
1301,
1250,
1252,
1253 ГК РФ].
При согласованном использовании материалов сайта обязательна активная ссылка на
www.mindrunway.ru и указание авторства.

|
Copyright© 2007-2011 QuickWitted
|
Почта
grani
СОБАКА
mindrunway
РУ
|
|
|
|
|
|