Универсальные пульты от URC: управляй, контролируй, отдыхай

У цифровой революции в домашнем кинотеатре есть неожиданное последствие: источники аудио- и видеосигнала стали множиться как пресловутые австралийские кролики. Зрелищем дюжины электронных коробочек в гостиной сегодня никого не удивишь, а в многокомнатной инсталляции число AV-компонентов может приближаться к сотне. Возникает серьезная проблема — как рационально управлять столь обширным хозяйством. Специализированных пультов ДУ на столе у потребителя множество, попробуй найти среди них нужный! Словом, пора обращаться за помощью к специалистам, например, из американской компании URC. Недаром ее название расшифровывается как Universal Remote Control, т.е. «универсальное дистанционное управление».

Знаний о том, как управлять домашним кинотеатром, фирме URC не занимать. Этим вопросом она занимается четверть века — с первого дня своего существования (основана в 1991 г.). Мало того, сам термин «универсальный пульт дистанционного управления», т.е. УПДУ был, как утверждают представители URC, придуман именно ими. Только за последнее десятилетие под маркой URC было изготовлено и продано более 100 млн. пультов ДУ для домашнего кинотеатра, кабельного телевидения и других целей. Кроме того, фирма разрабатывает пульты и алгоритмы ДУ для таких известных брендов, как Denon, Harman Kardon, LG Electronics, McIntosh, Parasound, Rotel, Samsung, Sherwood и др. Ее штаб-квартира находится в г. Харрисон, штат Нью-Йорк, разработками занимаются высокопрофессиональные американские инженеры.


Примечательно, что если пульт URC попадет между подушками дивана, и какая-нибудь кнопка окажется нажатой, преждевременный разряд его батарейкам не грозит — через 30 с пульт отключится и не перейдет в рабочий режим, пока кнопка не будет отпущена

Весь каталог пультов URC можно разделить на две категории. К первой относятся пульты, соответствующие фирменной концепции Total Control, т.е. способные управлять не только системами домашних развлечений, но и освещения, а также климат-контроля. В их наименовании присутствует индекс TRC (Total Remote Control). Ко второй категории принадлежат универсальные пульты в привычном для нас понимании. Они имеют индекс TX.

Настройка пульта watson urc 22b 6n

I. Программирование устройства.
1) Нажать и удерживать кнопку SET. Затем нажать кнопку того устройства, которым хотите управлять (например TV1, TV2, CD/HIFI, VCR1, VCR2, CBL, SAT и т.д.) 2) Как только загорится индикатор (LED), следует отпустить нажатые кнопки. 3) Введите 3-х значный код устройства. 4) Если введенный код верен, индикатор (LED) погаснет. Если введенный код не верен, индикатор (LED) моргнет несколько раз и пульт вернется в режим программирования. Следует снова ввести ВЕРНЫЙ код устройства! (п.3)

Примечание: Если вы хотите выйти из режима программирования, следует нажать на кнопку устройства (например TV1, TV2, CD/HIFI, VCR1, VCR2, CBL, SAT и т.д.). Если в течении 10 секунд, не будет нажата ни одна клавиша, пульт автоматически выйдет из режима программирования.

II. Быстрый поиск.

1) Включите устройство, на которое настраивается пульт. 2) Нажать и удерживать кнопку SET. Затем нажать кнопку того устройства, которым хотите управлять (например TV1, TV2, CD/HIFI, VCR1, VCR2, CBL, SAT и т.д.) 3) Как только загорится индикатор (LED), следует отпустить нажатые кнопки. 4) Нажмите и отпустите кнопку SET. Теперь пульт перешел в режим быстрого поиска и индикатор (LED) начал быстро моргать. 5) Направьте пульт URC22 на то устройство которым вы хотите управлять и нажимайте на клавиши POWER или PLAY и т.д. Если устройство реагирует на нажатия следует перейти к п.6, если не реагирует перейти к п.5 6) Затем проверьте другие клавиши, такие как [CH+/-], [VOL+/-], что бы они работали. Если не работают вернитесь к п.5 7) Некоторые устройства могут долго реагировать на нажатие кнопки POWER. В процессе поиска вы может использовать кнопку SET, для выбора направления поиска Вперед/Назад, что бы найти нужный код быстро.

Что бы покинуть режим быстрого поиска, следует нажать на кнопку устройства (например TV1, TV2, CD/HIFI, VCR1, VCR2, CBL, SAT и т.д.), и индикатор (LED) погаснет.

Примечание: В режиме поиска помимо кнопки [POWER] ([POWER] и [PLAY] в блоке управления VCR), могут быть проверены все другие кнопки. Это значит что вы можете проверить все другие кнопки не покидая режима быстрого поиска. Если в течении 30 секунд, не будет нажата ни одна клавиша, пульт автоматически выйдет из режима программирования.

III. Автоматический поиск.

1) Включите устройство, на которое настраивается пульт. 2) Нажать кнопку того устройства, которым хотите управлять (например TV1, TV2, CD/HIFI, VCR1, VCR2, CBL, SAT и т.д.) 3) Нажать и удерживать кнопку SET. Затем нажать и удерживать кнопку POWER в течении 3-х секунд. 4) Как только индикатор (LED) начнет моргать, следует отпустить нажатые кнопки. 5) Как только управляемое устройство, выключится следует немедленно нажать кнопку SET. 6) Частота сохранена. Следует проверить реагирует ли устройство на пульт URC2. Если нет, следует перейти к п.3

настрока пульта urc22b

Шаг первый: Выбор модели устройства

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

Шаг второй: Настройка пульта для выбранного устройства

Найдя код для устройства, вводим его на пульте, затем одновременно нажимаем клавиши SET и TV(или DVB в зависимости от класса устройства). Загорится индикатор на клавише POWER (если он не загорелся, то операцию необходимо повторить), после этого еще раз вводим код, индикатор должен потухнуть и устройство будет готово к управлению. Если устройство не заработало, стоит попробовать повторить данные операции с другим кодом, подходящим для этого устройства.

Шаг третий: Если устройства нет в списке

Автоматический поиск. Сначала нужно включить управляемое устройство, чтобы например, работала одна из телевизионных программ, затем нужно одновременно нажать клавиши SET и TV(или DVB в зависимости от класса устройства) и держать в течение нескольких секунд, пока индикатор клавиши POWER не начнет мигать. Далее необходимо направить пульт на устройство и ждать реакции. Если ваше устройство среагировало, нужно нажать любую клавишу кроме SET. Если вы не успели среагировать на выключение вашего устройства, то можно заново запустить автоматический поиск или перейти к ручному поиску. Ручной поиск. Необходимо включить управляемое устройство, чтобы работала одна из программ, далее одновременно нажать (короткое нажатие) клавиши SET и TV (или DVB в зависимости от класса устройства), загорится индикатор клавиши POWER, после этого коротко нажимать на эту кнопку (POWER) примерно каждую секунду до того момента пока ваше устройство не начнет реагировать. Для завершения поиска нужно нажать клавишу SET или TV.

источник

Описание

. Руководство по эксплуатации. I. Программирование (вариант 1) Найдите в таблице кодов код. соответствующий вашему аппарату. 1. Нажать кнопку SЕТ и одновременно одну из кнопок TVTXT. ТVTXT2. VCR1. VCR2. SAT/CBL. CBL/CAT или HIFI/CD/LD до тех пор. пока не загорится светодиод. Затем отпустите обе кнопки. 2. Наберите код (3 цифры). 3. Нажмите кнопку POWER. Если код правильный. аппарат выключится. и пультом будут управляться все функции аппарата. Если кодировка не удалась. повторите п.1-3. набрав другой код. указанный в таблице. УКАЗАНИЕ: Все функции необходимо выполнять в течение 10 секунд. II. Быстрый поиск (вариант 2). После того . как вы несколько раз выбрали код устройства. которым вы хотите управлять. и оно до сих пор не работает (например. аппарат не может управляться URC22). или вы не можете подобрать правильный код в списке кодов. то вы можете использовать функции быстрого поиска. Примечание. Когда пульт перешёл в режим поиска. вы можете использовать кнопку SЕТ. для переключения между «поиском вперед» и «поиском назад». 1. Включите аппарат. Если это VCR. то там должна быть кассета. 2. Нажать кнопку SЕТ и одновременно одну из кнопок Т/ТХТ1. ТVТХТ2. VСР1. VCR2. SАТ/СВL. СВL/SАТ или НIFI/CD/LD до тех пор пока не загорится светодиод. 3. Кратковременно нажмите SET. Автоматический поиск включён и светодиод мигает. 4. Кратковременно нажмите POWER. В это время с пульта испускается импульс выключения аппарата. 5. В случае отключения аппарата. включите его повторно с помощью его клавиатуры и проверьте правильность исполнения основных функций пульта 6. В случае. если отдаваемые приказы исполняются частично или неправильно. следует повторить п.4. 7. Для выхода из режима поиска нажмите кнопку аппарата. Светодиод погаснет. III. АВТОПОИСК. 1. Включите аппарат. который нужно. Если это VCR. то там должна быть кассета. 2. Нажмите и держите SЕТ. В это же время нажмите POWER более чем на 3 сек. Поиск работает. 3. Нажмите любую кнопку для выхода. 4. Правила читки кодов:

Анализ протоколов работы пультов ДУ

При создании HTPC одним из вопросов является способ управления оболочкой. Думаю, не стоит рассказывать о том, что традиционные устройства ввода — клавиатура и мышь не подходят для данной задачи. Гораздо удобнее управлять HTPC так же как и другой бытовой электроникой — с помощью ПДУ. Чаще всего используются ПДУ от DVD-плееров и аналогичной техники совместно с LIRC / WinLIRC, или Windows MCE-совместимые пульты с USB-приемниками, коих полно в китайских интернет-магазинах. Такие ПДУ эмулируют usb-hid клавиатуру (и иногда мышь). У этих пультов есть существенный недостаток — если материнская плата и BIOS не поддерживают включение питания и пробуждение от usb-устройств, то с помощью такого пульта можно будет управлять устройством, выключать его, но включить не выйдет. С этим недостатком я и решил бороться. Для своего HTPC я выбрал материнскую плату Intel D2700MUD. Как позже выяснилось — опрометчиво, поскольку встроенный видеоконтроллер GMA 3650, основанный на PowerVR, полностью поддерживается только в 32-битных Windows, а в Linux поддержка очень ограничена — не работает аппаратное декодирование видео. Но меня устраивает работа HTPC под управлением Windows 7 Home Basic. Также эта плата не умеет пробуждаться по сигналу от USB-клавиатуры. Также у меня уже был пульт (Philips 2422 549 01930), который мне показался подходящим. Но WinLIRC с ним работал крайне нестабильно. Видимо, использовался какой-то необычный протокол.

Первая мысль была такой — подключить к Arduino IR-приемник, питание взять от шины 5VSB блока питания HTPC, а включение питания (и выключение) осуществлять с помощью имитации замыкания пинов на материнской плате, к которым подключается кнопка включения питания, а остальные команды передавать через RS-232. Но Arduino слишком дорога и занимает много места в и без того небольшом корпусе. Поэтому я решил обойтись дешёвым микроконтроллером ATMega8, в который можно зашить бутлоадер Arduino и программировать его как Arduino NG.

Разбор протокола

Для Arduino существует неплохая библиотека для работы с инфракрасными ПДУ — IRRemote, но она не работает с Arduino NG — не хватает памяти. К тому же, мне не удалось заставить эту библиотеку понимать мой пульт даже на Arduino UNO. Как я писал выше, LIRC (и WinLIRC) не очень хорошо работали с этим пультом — часто пропускали нажатия кнопок, иногда неверно определяли нажатую клавишу. Сам пульт работал исправно — с «родным» DVD-плейером проблем не возникало. Поиски информации о протоколе для этого пульта ничего не дали, так что я решил разобраться с ним самостоятельно.

Для этого мне понадобился осциллограф, но его под руками не оказалось, да и взять было негде. Но в случае с сигналами ПДУ вполне подходит линейный вход звуковой карты. К нему я подключил инфракрасный приёмник TSOP 31236.

Далее с помощью любого аудиоредактора можно записать входной сигнал и проанализировать:

Сначала идет длинная посылка, необходимая для установки уровня автоматической регулировки усиления в приёмнике. Затем следуют импульсы различной длины. Я написав промежуточный скетч для Arduino, который определял время между фронтами импульсов в микросекундах и выводил их в терминал через RS232. Полученные данные я загрузил в Excel:

Когда я только начал изучать протокол, моей главной ошибкой было то, что я считал длительности самих импульсов, но игнорировал длительность интервалов между ними. После того, как я начал считать интервалы между фронтами все встало на свои места. Как видно, большинство импульсов интервалов между фронтами имеют длительности в пределах 350-550 мкс и 700-1000 мкс. Значит так обозначаются значения передаваемых битов — «0» и «1». В протоколе ПДУ используется toggle-бит. Это означает что при нескольких последовательных нажатиях одной и той же клавиши на пульте, в коде будет меняться один бит (иногда несколько). В моем случае toggle-бит имеет необычную длительность — 1200-1400 мкс. К тому же число фронтов в «четных» и «нечетных» посылках отличается. Позже я пришёл к выводу, что интервал 1200-1400 мкс это сумма их двух битов с одинаковым уровнем, но различной длительностью (400+800). В коде я такую посылку обозначил как последовательность из двух бит — «01». Тогда количество бит на выходе стало постоянным.

Скетч для Arduino

Затем я написал скетч, который считал время между изменениями уровня на входе и выводил полученное число в uart. С помощью несложной отладки я добился стабильности определения кодов, добавил сложение с маской для игнорирования toggle-бита (у меня не было функций, в которых он пригодился бы). Потом я жестко закодил функцию, чтобы при получении кода кнопки «Power» микроконтроллер прижимал к земле один из «цифровых» пинов Arduino (в моем случае — 12). // Заранее прошу прощения за индусский код. Я знаю что можно было сделать намного правильнее и лучше, // но для меня было важным решить задачу, а на изящность решения я не претендовал. byte a = 0; // Текущий уровень на входе byte b = 0; // Сохраненный уровень на входе byte bc = 0; // Счетчик битов const boolean dbg=false; // Режим отладки =) boolean start=false; // Запущен ли отсчет импульсов uned int usecs = 0; // Таймер 1 — определяет длительность фронтов uned int usecs2 = 0; // Таймер 2 — определяет паузы между посылками uned int plen = 0; // Длительность интервала между фронтами uned int plen2 = 0; // Длительность паузы между посылками String bits; // Представление буфера в виде единиц и нулей, для отладки uned int buffer; // Буфер. Собственно, сюда помещается код нажатой кнопки void setup() { // Initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards pinMode(13, OUTPUT); // Ок, пусть светодиод там и будет. pinMode(12, OUTPUT); // А пин 12 будет подключаться к разъему кнопки питания на мат.плате. digitalWrite(13,HIGH); // Включаем светодиод. digitalWrite(12,HIGH); // Настраиваем на выходе высокий уровень, чтобы плата считала что контакт разомкнут. pinMode(7, INPUT); // Сюда подаем сигнал от ИК-приемника TSOP. Serial.begin(115200); Serial.ln(«READY»); usecs = micros(); // Инициализируем индусский таймер usecs2 = micros(); } void loop() { a = digitalRead(7); // Считываем значение уровня на входе if(a != b) { // Уровень изменился! Фронт импульса. start=true; // Отсчет импульсов считаем начатым. b = a; // Сбрасываем детектор фронта plen = micros() — usecs; // Замеряем прошедшее время между предыдущим и текущим фронтом usecs = micros(); // Сбрасываем таймер usecs2 = micros(); if (plen<2000) { // фильтруем стартовый импульс и длительность между импульсами if (plen>200 && plen < 620) { // ноль bits += «0»; buffer = buffer << 1; buffer = buffer | 0; bc++; } if (plen>620 && plen < 1150) { // единица bits += «1»; buffer = buffer << 1; buffer = buffer | 1; bc++; } if (plen>1150 && plen < 1600) { // тоггл-бит bits += «01»; buffer = buffer << 2; // Тут сдвигаем на два бита! buffer = buffer | 1; bc++; bc++; } if(dbg==true){ Serial.(plen); // если включена отладка — выводим длительности импульсов Serial.(«;»); } } } else { // Если в этом цикле изменения уровня на входе не произошло plen2 = micros() — usecs2; // Определяем длительность паузы if(plen2 > 5000 ) { // ЕСЛИ ПАУЗА БОЛЬШЕ 5 МИЛЛИСЕКУНД, ЭТО ЗНАЧИТ ЧТО ПОСЫЛКА ЗАКОНЧИЛАСЬ ИЛИ ЕЩЕ НЕ НАЧИНАЛАСЬ usecs2 = micros(); // сбрасываем Таймер 2 if(start==true){ // Если до этого был запущен отсчет импульсов, значит у нас в буфере должен был скопиться код клавиши. usecs = micros(); // сбрасываем таймер 1 while(bc<40){ // выравниваем вывод. честно говоря, я уже не помню почему так сделал, но раз сделал — значит так надо. bits += «0»; buffer = buffer << 1; bc++; } buffer = buffer & 1048575; // Использование magic-numbers плохо влияет на карму. Это маска для toggle-бита. Serial.ln(buffer); // ВЫВОДИМ КОД! if (dbg){ // если включена отладка Serial.(«bits=»); // выводим код в виде единиц и нулей Serial.ln(bc); // выводим число битов } digitalWrite(13,LOW); // Мигаем светодиодом в знак того, delay(100); // что код от пульта был digitalWrite(13,HIGH); // принят и распознан. switch(buffer){ // Прочие действия при нажатии некоторых кнопок. case 8448: // Кнопка Power на моём пульте. Serial.ln(«POWER»); // Выводим сообщение POWER помимо кода кнопки. Удобно при разборе логов EventGhost. digitalWrite(12,LOW); // Прижимаем к земле пин кнопки питания на мат.плате delay(300); // На 300мс digitalWrite(12,HIGH); // И отпускаем default: break; } buffer=0; // Обнуляем буффер bits=»»; // Обнуляем отладочную строку с битами start=false; // Сбрасываем признак отсчета bc=0; // Сбрасываем количество бит } } } }

А что дальше?

А дальше приложение EventGhost считывает коды из порта RS-232 и «дёргает за ниточки» всем известной оболочки XBMC. Настройка того и другого индивидуальна и в то же время проста, поэтому не заслуживает внимания.

Универсальный контроль

Для тех, кто не имеет дома разветвленную систему управления освещением и климатом, фирма предлагает УПДУ линейки MX. В ней более десятка моделей, мы расскажем об основных.


Программируемый универсальный пульт URC MX-450

Пульт MX-450 принадлежит к недорогим устройствам, но посмотрите, как много он умеет. У него 2-дюймовый цветной экран, позволяющий выбирать один из 24 источников видео- или аудиосигнала, которые обозначаются красочными иконками. Задачу программирования столь большого числа устройств упрощает встроенный навигатор для занесения кодов в память пульта. Кроме того, совокупность таких кодов можно сохранить на компьютере при помощи специального софта и без проблем восстановить. Этот же софт позволяет обновлять ПО пульта и пополнять библиотеку кодами новых устройств. Пульт работает как с ИК-, так и с РЧ-командами.


Универсальный программируемый пульт дистанционного управления URC MX-890

Устройства более высокого класса олицетворяет пульт MX-890. Он дает возможность управлять 200 компонентами, причем на каждый может быть отведено до 10 страниц меню. Можно создавать макрокоманды; например, нажатием одной кнопки задернуть шторы, потушить освещение и включить проектор.


Базовые станции URC MRX-260 и URC MRX-350

Канули в Лету дни, когда для управления определенным устройством нужно было владеть навыками снайпера — наводить пульт непосредственно на него. Обзаведясь базовой станцией MRX-1, MRF-350 или MRF-260, вы получите полную власть над компонентами, установленными в закрытую стойку или находящимися в соседнем помещении. К пульту прилагается элегантная подставка, одновременно играющая роль зарядного устройства.


Универсальный пульт дистанционного управления URC MX-5000

Флагман линейки MX-5000 способен работать в двунаправленном режиме, т.е. получать информацию от управляемого компонента. В результате пользователь может, скажем, посмотреть обложку воспроизводимого с iPod альбома (при работе совместно с фирменной док-станцией PSX-2). По Wi-Fi-интерфейсу пульт можно вписать в домашнюю сеть и узнавать новости, результаты спортивных матчей или прогноз погоды. У модели не просто сенсорный дисплей — на нажатие виртуальной кнопки пульт откликается вибрированием. Модель MX-5000 способна управлять 255 компонентами, работает как с инфракрасными, так и с радиочастотными сигналами.

Рейтинг
( 1 оценка, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]