Бывают ситуации, когда нужно управлять аппаратурой (телевизорами, видеомагнитофонами) по определенной программе без участия оператора. Это может понадобиться, например, в системах видеонаблюдения. Обычные универсальные запоминающие пульты для радиоаппаратуры здесь малопригодны, так как требуется определенная последовательность действий, которая зависит от внешнего управляющего сигнала. Предлагаемое устройство выполняет эту задачу.
В последнее время круг бытовой видеоаппаратуры (телевизор, видеомагнитофон) пополнился новыми приборами - дверными видеоглаэками, телекамерами наблюдения за территорией или объектом и пр. Отсюда вытекает необходимость в устройстве, способном управлять по заданной программе включением-выключением прибора, причем желательно без их переделки. Один из вариантов такого устройства представлен ниже.
Оно предназначено для дистанционного управления бытовой теле- и видеоаппаратурой в составе систем наблюдения. С помощью этого устройства можно автоматически включать телевизор и видеомагнитофон, это упростит использование видеоглазка и скрытых камер, а также избавит от необходимости приобретать монитор.
"ЦИКЛОП" представляет собой небольшой прибор с цифровым табло, тремя кнопками управления, имеющий сбоку окно ИК приемника и выносной ИК излучатель. Прибор можно разместить в любом удобном для пользователя месте, а ИК излучатель крепят к стене или мебели напротив телевизора и видеомагнитофона.
Схема" устройства изображена на рис. 1.
(нажмите для увеличения)
Начнем с краткого описания принципа передачи команд пультов дистанционного управления бытовой аппаратуры. Существует несколько способов кодирования информации для передачи по ИК каналу. Первый - высокочастотная модуляция. Сравнительно низкочастотной информационной посылкой модулируют несущую частоту, близкую к 43,5 кГц. Это позволяет отвязаться от постоянной составляющей инфракрасного фона помещения. Второй способ - команду представляют в виде кода "МАНЧЕСТЕР", который не имеет продолжительных нулевых или единичных состояний и поэтому хорошо защищен от помехи. Некоторые производители для более экономного расходования ресурса батареи питания пульта ДУ применяют способ однократной передачи кода. При нажатии на клавишу пульта сначала передается посылка с кодом команды, а затем следуют относительно короткие посылки с кодом удержания нажатой клавиши.
Задача устройства - принять и декодировать команды, записать их энергонезависимую память, а затем, получив сигнал извне, транслировать эти команды в определенной последовательности. Качество работы во многом зависит от точности приема команд.
Модуль BL1 - стандартный однокристальный фотоприемник от цветного телевизора - предназначен для ввода команд с пульта ДУ. С выхода модуля очищенная от постоянной составляющей инаертированная цифровая последовательность поступает на вход Р3.2 микроконтроллера DD1.
Фотоприемник лучше использовать готовый, поскольку в этом устройстве к нему предъявлены довольно высокие требования. Фотоприемники разных типов сейчас есть в продаже в магазинах.
Обработанная информация о принятых командах в специальной форме поступает на хранение в ПЗУ DS1. Сформированная кодовая последовательность с выхода Р1.0 контроллера DD1 поступает на вход элемента DD2.4, который в паре с DD2.3 образует генератор импульсов с периодом повторения 27,2 мкс. Этот параметр необходимо выдерживать как можно точнее, поскольку большинство однокристальных фотоприемников, бытовой аппаратуры для приема команд с пультов ДУ унифицированы и имеют одинаковые параметры несущей частоты.
С выхода элемента DD2.4 кодовая последовательность поступает на усилитель тока - транзистор VT2. Нагрузкой транзистора служат два ИК диода-излучателя BI1 и BI2. Они и управляют самой видеоаппаратурой. Диоды разного типа - АЛ156А и АЛ145А - выбраны не случайно. Дело в том, что длина волны излучения пультов СДУ разной теле- и видеоаппаратуры у разных производителей может различаться. Поэтому использованы два разных диода, чтобы получить более широкий спектр излучения. Если мощности не хватает (такое бывает, когда аппаратура расположена в разных местах), можно увеличить число светодиодов, подобрав резистор R15.
Устройство "ЦИКЛОП" имеет два универсальных входа. Вход 1 - с гальванической развязкой на оптроне U1 - рассчитан на входное постоянное напряжение 12 В, но если его подключить через гасящий конденсатор, то можно работать и от сети ~220 В (например, подключить квартирный звонок). Вход 2 - это вход триггера Шмитта, собранного на транзисторе VT1 и элементе DD2.2. На этот вход можно подавать и 12 В, и какой-либо аналоговый сигнал с микрофонного усилителя или аудиодомофона.
Сигналы с обоих входов проходят через цифровой фильтр, коэффициент передачи которого устанавливают программно. Оба входа способны срабатывать от любого фронта импульса, что позволяет использоаать устройство с различными датчиками.
Устройство собрано на печатной плате (рис. 2) из односторонне фольгированного стеклотекстолита толщиной 1,5 мм. Резисторы R17-R32 - Р1-12 или другие для поверхностного монтажа (их припаивают к печатной плате со стороны проводников). Если резисторов для поверхностного монтажа нет, можно просверлить отверстия и установить вертикально обычные МЛТ 0,125. Цифровой светодиодный индикатор HG1 (фирмы King Bright) припаивают к плате со стороны печати поверх резисторов R23, R24, R31, R32. Кроме того, он расположен точками вверх. Кнопки управления также расположены со стороны печати. Стабилизатор DA1 привинчен к плате, фольга под ним выполняет функцию теплоотвода.
(нажмите для увеличения)
Программа написана с учетом того, что частота задающего генератора - 24 МГц. Можно, кстати, использовать кварцеаый резонатор на другую частоту - от 10 МГц и более. ИК фотоприемник BL1 - от телевизоров и видеомагнитофонов Funai, Samsung, LG. Дроссель L1 - ДМ-0,1. Микроконтроллер DD1 (фирмы ATMEL) установлен в припаянную к плате панель.
При программировании устройства соединительные проводники должны быть возможно короче, чтобы уменьшить влияние наводок. Окно фотоприемника желательно закрыть светофильтром, пропускающим только ИК лучи. Пульт дистанционного управления следует разместить на расстоянии 10...60 см от устройства. В память устройства заносят команды с пульта управления телевизора или магнитофона. По команде с внешнего датчика кнопки звонка устройство выполнит заданную программу: включит или переключит телевизор и видеомагнитофон.
На панели управления расположены три кнопки и дисплей. Кнопками пользователь может выбирать разные варианты работы. Память устройства разбита на 16 разделов (программ), каждая из которых может состоять из 16-ти шагов (команд управления аппаратурой).
Для нормальной и эффективной работы устройства в системе видеонаблюдения необходимо правильно ввести программу в память. Чтобы лучше понять принцип программирования, рассмотрим пример. Допустим, по звонку в дверь требуется включить телевизор на 15 с, после чего выключить, а видеомагнитофон включить на запись в течение 30 с и затем тоже выключить. Поскольку некоторые телевизоры не сразу после включения способны воспринимать команды с пульта ДУ, надо выдержать паузу в 5 с перед включением видеовхода телевизора (AV), к которому подключен видеоглазок.
Представим себе, как можно выполнить эти операции с помощью пультов телевизора и видеомагнитофона.
А теперь попробуем перевести этот алгоритм управления в программу для устройства "ЦИКЛОП".
Следует очень внимательно отнестись к составлению программы. Рассмотренный пример не учитывает всех особенностей работы системы наблюдения, да и бытовая аппаратура часто работает по разным алгоритмам, с разным временем реакции.
В устройстве предусмотрено пять режимов работы.
РЕЖИМ "PROGRAM" - ПРОГРАММИРОВАНИЕ
Режим "PROGRAM" включают нажатием на кнопку SB1 "Mode". Дисплей высветит '00 (точка, стоящая впереди, указывает на включение программирования). Если программы уже были введены и какую-то из них надо откорректировать, ее выбирают кнопками SB2 "<<<" или SB3 ">>>".
Символ в первом знакоместе табло - номер набираемой программы в шестнадцатиричном коде (0 - первая, F - шестнадцатая), а во втором - порядковый номер шага (команды) в программе, также в шестнадцатиричном коде.
Обращаем внимание на тип используемого пульта управления. Дело в том, что в системах ДУ используют несколько видов команд. Отличий в работе с телевизором или видеомагнитофоном может быть совершенно не видно, однако в устройство "ЦИКЛОП" эти команды вводятся по-разному. Для простых команд (без энергосбережения) все просто: одно нажатие - одна команда. При вводе команд другого вида нужно будет сделать три нажатия на одну и ту же кнопку пульта, чтобы "ЦИКЛОП" понял переданную команду. Разницу будет видно сразу по работе устройства. Пока команда достоверно не определена, перехода на следующий шаг не будет!
Определив команду, устройство переходит на следующий шаг программирования - номер на дисплее увеличится на единицу. Сейчас можно ввести в программу время паузы между командами или следующую команду. Время паузы набирают кнопками "<<<" или ">>>", его можно изменять от 1 до 256 с. Каждое нажатие добавляет задержку на 1 с, общее время в секундах дисплей показывает в шестнадцатиричном коде. После каждого нажатия на эти кнопки дисплей в течение приблизительно одной секунды индицирует длительность задержки, которая будет выполнена ПОСЛЕ только что заданной команды. По умолчанию она имеет минимально возможное значение - 1с.
После задания всех шагов программы нажатием на кнопку SB1 "Mode" можно прервать программирование и кнопками SB2 и SB3 выбрать для ввода следующую программу. Повторное нажатие на кнопку "Mode" вызовет переход устройства в режим "WORK" (об этом будет сказано ниже).
Если при программировании вводится команда, уже введенная ранее, ей не отводится отдельное место в памяти, а в программу помещается лишь ее номер. Различить первичное и повторное введение какой-либо команды можно следующим образом: при первичном вводе, когда устройство не идентифицирует ее ни с одной из команд, уже имеющихся в памяти, на индикаторе появляется точка во втором знакоместе дисплея ('0'0) и остается до отпускания кнопки пульта; в том же случае, если вводимую команду устройство находит среди уже сохраненных в памяти, точка во втором знакоместе не появляется.
Эту особенность удобно использовать для определения достоверности захвата кода устройством. Если вы многократно вводите одну и ту же команду и все попытки или некоторые из них, кроме первой, сопровождаются появлением точки во втором знакоместе, значит, код определяется неуверенно. Следует подобрать расстояние между устройством и пультом либо избавиться от излишнего инфракрасного фона в квартире (скажем, задернуть шторы, если на дворе ярко светит солнце).
Здесь стоит заметить, что иногда встречаются пульты, которые при нажатии на одну и ту же кнопку дважды генерируют коды, слегка отличающиеся один от другого. Например, пульт одного из телевизоров фирмы SAMSUNG при каждом нечетном нажатии давал последний бит равным единице, тогда как при каждом четном этот бит был равен нулю. На работе устройства эта особенность не сказывается.
РЕЖИМ "TEST"
Режим "TEST" предназначен для отладки и проверки программы. Он состоит из двух разделов: проверки команд и программ. Войти в эти режимы можно из режима программирования.
При нажатии одновременно на кнопки SB2 и SB1 дисплей покажет L0. Символ L означает проверку команды, а цифра 0 указывает ее номер - первый. Выбрать проверяемую команду можно кнопками SB2 и SB3. При нажатии на кнопку SB1 устройство воспроизведет выбранную команду.
При нажатии одновременно на кнопки SB3 и SB1 дисплей покажет НО. В этом режиме можно проверить целую программу. Выбрать проверяемую программу можно кнопками SB2 и SB3. При нажатии на кнопку SB1 устройство воспроизведет выбранную программу. Таким образом можно проверить работу каждой отдельной команды и программы в целом. В случае неработоспособности хотя бы одной команды необходимо более внимательно перепрограммировать устройство.
При нахождении ошибки в выполнении программы можно будет вернуться в режим "PROGRAM" и перепрограммировать только ее.
Выйти из режима "TEST" можно, если снова нажать на те же кнопки, которые были нажаты при входе.
РЕЖИМ "WORK"
Режим "WORK" является основным. Пользователь может сам выбрать номер программы, записанной в память, по которой устройство будет работать.
Примеры показаний дисплея в режиме "WORK": мигающие символы 10 или 3- или 04. Это - режим ожидания импульса от любого входа. Первая цифра показывает номер программы, которая будет запускаться от входа 1, а вторая цифра - номер программы, которая будет запускаться от входа 2. Если вместо цифры дисплей высвечивает прочерк, это значит, что соответствующий вход отключен и устройство не будет реагировать на импульс. Когда на дисплее мигают два прочерка - отключены оба входа и "ЦИКЛОП" не будет выполнять ни одну программу. Выбрать программу для каждого входа можно кнопками SB2 и SB3.
Если в течение определенного времени импульс на вход не поступает, дисплей выключается, а устройство продолжает работать в режиме "WORK" без индикации. Эта функция нужна для того, чтобы дисплей не привлекал излишнего внимания. Включение дисплея можно вызвать нажатием на кнопку SB2 или SB3. Временной интервал до выключения дисплея устанавливается в параметрах устройства.
РЕЖИМ "ACTIVE"
Если устройство находится в режиме "WORK" и на любой из его входов, для которого определена программа, поступает импульс, оно переходит в режим "ACTIVE". Длительность импульса должна превышать некоторое значение (параметр Р0 или Р1 в разделе параметров). Это нужно для предотвращения ложных срабатываний устройства от коротких импульсов, которые могут появиться в результате проникновения помех. Сразу после перехода в режим "ACTIVE" ЦИКЛОП начинает выполнять программу, определенную для данного входа. Дисплей высвечивает специальный символ в виде трех горизонтальных линий и номер команды, которая передается. В это время устройство не способно воспринимать нажатия на кнопки или повторные импульсы на вход. Закончив выполнять программу, устройство вернется в режим "WORK".
РЕЖИМ "PARAMETER"
Этот режим необходим только в процессе программирования устройства. Войти в него можно из режима программирования, нажав одновременно на кнопки SB2 и SB3.
Перечислим параметры, которые можно устанавливать в этом режиме.
- Р0 - защитный интервал 1 -го канала (0 - FF) (1/100 с).
- Р1 - защитный интервал 2-го канала (0 -FF) (1/100 с).
- Р2 - число посылок в пачке (2-32).
- РЗ - интервал между посылками (40-95 %).
- Р4 - частота кварцевого резонатора, МГц.
- Р5 - <зарезервировано>.
- Р6 - номер программы 1 -го входа.
- Р7 - номер программы 2-го входа.
- Р8 - время до гашения индикаторов, с.
- 1_х - каждая команда.
- Нх - каждая программа.
Параметры РО и Р1 задаются в сотых долях секунды и, соответственно, могут принимать значения от 0,01 до 2,56 с. Задание параметров РО или Р1 равными нулю обеспечивает срабатывание устройства по первому изменению уровня сигнала. Активным уровнем для входов является уровень, противоположный тому, который имелся на входе в момент перехода устройства в режим "WORK". Если необходимо на вход 2 подать переменное напряжение частотой 50 Гц, тогда параметр Р1 необходимо выставить равным нулю, так как при этом на входе будет пульсирующее напряжение частотой 50 Гц и длительностью менее 0,01 с.
Параметр Р2 задает число посылок кода команды при выполнении устройством каждого шага программы. Этот параметр нужен в ситуациях, когда управляемый объект (телевизор или видеомагнитофон) неуверенно воспринимает посылаемые команды. Обычно бывает достаточно значения, равного 2-3.
Смысл параметра Р3 - интервал между посылками команд в пачке, выраженный в процентах от длины команды (ее продолжительности во времени). Введен он на всякий случай, так как "фирменный" интервал между командами с пульта не измеряется и не фиксируется в памяти. Практика показала почти полную некритичность этого параметра в указанных пределах регулировки.
Параметр Р4 изменяют а случае использования кварцевого резонатора с частотой, отличающейся от указанной на схеме. Используется этот параметр исключительно для корректной генерации временных интервалов между командами и защитных интервалов. Не нужно забывать, что чем ниже тактовая частота, тем хуже точность записи и воспроизведения команд. По умолчанию задана частота кварцевого резонатора 24 МГц.
Параметры Р6 и Р7 - справочные, они отражают номера программ, привязанных ко входам 1 и 2 соответственно. В режиме "PARAMETER" они не могут быть изменены.
Параметр Р8 определяет время в секундах между последним нажатием на кнопки и выключением дисплея.
В процессе программирования "ЦИКЛОП" может индицировать ошибки. Почти все ошибки сбрасываются автоматически.
Вот их описание:
- Е1 - ошибка приема кода.
- Е2 - слишком длинный код.
- ЕЗ - слишком короткий код.
- Е5 - переполнение памяти.
- Е6 - неисправность памяти.
В случае переполнения памяти устройства необходимо произвести операцию стирания. Для этого нужно войти в режим "PROGRAM" и нажать сразу все три кнопки. На дисплее появятся мигающие символы в виде трех горизонтальных линий. Не отпуская кнопок, нужно дождаться появления прочерков, при этом вся информация в памяти команд и программ будет стерта. Параметры устройства остаются бвз изменения.
Программное обеспечение к микроконтроллеру
Авторы: Д.Беспятых, А.Колесников, г. Первоуральск Свердловской обл.