СПОСОБ ПРОГРАММИРОВАНИЯ УНИВЕРСАЛЬНОГО ПУЛЬТА ДИСТАНЦИОННОГО УПРАВЛЕНИЯ
METHOD OF PROGRAMMING UNIVERSAL REMOTE CONTROLLER

Область техники, к которой относится изобретение
Изобретение относится к способу и системе обучения пульта дистанционного управления командам для программирования универсального пульта дистанционного управления (URC).
Уровень техники изобретения
Как правило, URC программируются посредством получения доступа к базе данных кодовых наборов инфракрасных сигналов. Обычно эти кодовые наборы сгруппированы по марке и типу устройства (TV (телевизор), DVD (проигрыватель DVD) и т.д.). Однако, вследствие колоссального разнообразия устройств на рынке, управление которыми может выполняться при помощи пультов дистанционного управления, информация в этих базах данных, зачастую, является неполной. В этом случае настройка универсального пульта дистанционного управления и программирование всех кнопок, необходимых для работы, может стать проблемой. Даже в случае, если в базе данных доступен правильный кодовый набор, его обнаружение может быть связано с большими трудностями.
В патенте США № 5819294 раскрывается способ решения этой проблемы. В соответствии с этим способом, программируемый URC программируется посредством PC. Существует база данных для кодовых наборов, используемая посредством множества серийно выпускаемых устройств дистанционного управления, которые могут постоянно храниться либо на PC (персональном компьютере), либо в пульте дистанционного управления. База данных содержит наборы сжатых кодов. Для программирования URC для управления устройством пользователь позволяет PC обнаруживать соответствие между одиночным импульсным кодом (командой), передаваемым посредством конкретного известного пульта дистанционного управления для управления устройством, с одной стороны, и позицией в базе данных, с другой стороны. После обнаружения совпадения набор, содержащий совпадающую позицию, сохраняется в программируемом контроллере пульта дистанционного управления, соответствующем конкретному устройству, которое управляется при помощи конкретного пульта дистанционного управления.
Сущность изобретения
Цель изобретения состоит в обеспечении улучшенного способа и системы обучения командам пульта дистанционного управления для программирования универсального пульта дистанционного управления (URC). Изобретение определяется посредством независимых пунктов формулы изобретения. Зависимые пункты формулы изобретения определяют предпочтительные варианты осуществления.
Предпочтительно, изобретение делает шаг вперед в сфере захвата информации по сравнению с исходным пультом дистанционного управления, и не только выполняет сравнение кодов, но также получает информацию о том, как пульт дистанционного управления используется посредством пользователя для выполнения некоторых действий, например включения и выключения устройства, переключения входов устройства и т.д.
В соответствии с первым аспектом изобретения, предоставлен способ программирования универсального пульта дистанционного управления, способ, содержащий этапы, на которых:
запрашивают, в программе обучения пульта дистанционного управления, выполнение пользователем последовательности команд, содержащей более одной команды из исходного пульта дистанционного управления для управления устройством или из другого универсального пульта дистанционного управления, запрограммированного для управления устройством;
анализируют захваченные команды из вышеупомянутой последовательности;
сопоставляют вышеупомянутые проанализированные команды с кодовым набором или ветвями базы данных кодового дерева; и
используют последовательность команд для генерирования макрокоманды для выполнения действия, в котором принимает участие устройство.
Посредством запроса пользователя на выполнение последовательности команд, могут быть собраны поведенческие данные о том, как пользователь управляет устройствами. Например, может быть получена информация о том, какой код (команда) используется для выключения устройства, какой код используется для включения устройства, как пользователь переключается на многоразрядный канал (например, канал 25), как он переключается на конкретный вход в устройстве (например, HDMI-2) и т.д. Эти поведенческие данные используются для автоматического генерирования связанных с действием макрокоманд. В качестве примера, пользователь, в общем случае, может включить телевизор, который находится в режиме ожидания, посредством нажатия на кнопку включения питания, посредством нажатия кнопки включения канала (например «1») или посредством нажатия кнопки переключения канала. Однако в некоторых телевизорах прежнего типа кнопка включения питания может быть использована исключительно для выключения телевизора, а не для его включения. Так, в связи с этим, в случае подготовки макрокоманды, содержащей этап включения такого телевизора, следует избегать использования кода, соответствующего кнопке включения питания. Посредством сбора поведенческих данных можно заметить, что пользователь не использует кнопку включения питания для включения телевизора, и можно избежать использования соответствующего кода в макрокоманде.
Другим примером, где генерирование макрокоманды не является безусловным, является пульт дистанционного управления Apple, который используется для управления Apple TV, iPod, или Mac. Кодовый набор для этого пульта дистанционного управления не имеет кода включения/выключения питания. Следовательно, посредством проверки кодового набора, невозможно узнать, как управляемое устройство включается. Посредством запроса пользователя на нажатие кнопки для включения Apple TV (в этом случае кнопки меню) может быть считан код, используемый для этой цели, и позже эта информация может быть использована для генерирования макрокоманды.
Еще в одном дополнительном примере, имеет место система домашнего кинотеатра, имеющая усилитель/селектор и DVD-проигрыватель, причем, например, селектор присоединен к входу-1, а DVD-проигрыватель к входу-2 телевизора. Зачастую кодовые наборы не включают в себя конкретный код («селектор») для переключения на селектор. Посредством запроса пользователя на переключение на селектор и считывание информации, которую он использует, а именно код Вход-1 для этой цели, может быть сгенерирована макрокоманда для действия включения селектора, в которой и телевизор и селектор включаются, а телевизор переключается на вход-1.
Дополнительное преимущество состоит в том, что посредством захвата команды из исходного пульта дистанционного управления, URC может настраивать свою синхронизацию для лучшего соответствия синхронизации исходного пульта дистанционного управления. Например, пульты дистанционного управления некоторых марок передают некоторые команды, такие, как включение/выключение питания, в течение более длительного периода времени (например, 2 секунды), чем другие (0,5 секунды) в целях надежности. Посредством копирования такого поведения на URC, он также сможет управлять устройством, соответствующим исходному пульту дистанционного управления более надежным способом. Кроме того, универсальный пульт дистанционного управления может использовать захваченные команды вместо команд из базы данных для гарантии успеха.
В соответствии с вариантом осуществления, в программе обучения пульта дистанционного управления, приводится в действие виртуальное устройство, соответствующее устройству, управляемому посредством исходного пульта дистанционного управления, и состояние виртуального устройства варьируется в соответствии с захваченными и проанализированными командами. Таким образом, пользователю предоставляется интуитивная обратная связь, в которой виртуальное устройство реагирует на команды таким же образом, как и реальное устройство.
В соответствии с дополнительным вариантом осуществления, программа обучения пульта дистанционного управления является приложением на персональном компьютере, который захватывает команды прямо или через универсальный пульт дистанционного управления. В результате, программирование универсального пульта дистанционного управления может быть выполнено посредством устройства (PC), доступного в большинстве домов в настоящее время.
В соответствии с еще одним дополнительным вариантом осуществления, способ содержит дополнительный этап запроса пользователя на ввод типа устройства и названия марки устройства, управляемого посредством исходного пульта дистанционного управления. Эта информация может быть использована для отображения правильного виртуального устройства.
В соответствии еще с одним дополнительным вариантом осуществления, способ содержит дополнительный этап улучшения вышеупомянутого сопоставленного кодового набора или кодового дерева с использованием проанализированных команд. Иногда существующие кодовые наборы или кодовые деревья являются неполными или не совпадают в полном объеме с кодовым набором или кодовым деревом, используемыми для управления устройством (некоторые команды совпадают, а некоторые нет). В этом случае, целесообразно заменить ошибочные команды и/или дополнить недостающие команды командами, принятыми из исходного устройства дистанционного управления.
В соответствии с еще одним дополнительным вариантом осуществления, способ содержит дополнительный этап, в случае, если не доступен ни кодовый набор, ни ветви базы данных кодового дерева, с которыми могут быть сопоставлены проанализированные команды, обучения кодам из исходного пульта дистанционного управления. В результате новые коды (то есть ранее недоступные кодовые наборы в базе данных) также могут быть изучены и использованы для действия генерирования макрокоманд.
В соответствии с еще одним дополнительным вариантом осуществления, способ содержит этап сбора статистических данных об устройствах и соответствующих им кодовых наборах, для которых используется способ. Таким образом, кодовые наборы могут быть расположены по приоритетам и может быть определено, какие из них более популярны, чем другие. Кроме того, устаревшие (редко используемые) кодовые наборы могут быть определены и удалены из серверов или баз данных для сохранения места в запоминающем устройстве.
В соответствии с еще одним дополнительным вариантом осуществления, выполняется запрос пользователя на выбор устройства, принимающего участие в действии, и макрокоманда записывается посредством выполнения последовательности команд, включающей в себя команды для всех выбранных устройств. Следовательно, может быть удобно получена макрокоманда для множества устройств.
Предпочтительно, способ в соответствии с изобретением реализуется посредством компьютерной программы, которая может выполняться на любых программируемых аппаратных средствах, например компьютере, цифровом сигнальном процессоре, программируемой пользователем вентильной матрице, специализированной интегральной микросхеме, микропроцессоре или микроконтроллере.
Компьютерная программа может быть реализована в машиночитаемом носителе, или компьютерная программа может переноситься через физический канал передачи данных.
В соответствии со вторым аспектом изобретения, предоставлена система, содержащая контроллер, сконфигурированный для:
запроса пользователя, в программе обучения пульта дистанционного управления, на выполнение последовательности команд, содержащей более одной команды из исходного пульта дистанционного управления для управления устройством, или из другого универсального пульта дистанционного управления, запрограммированного для управления устройством;
анализа захваченных команд из вышеупомянутой последовательности;
сопоставления вышеупомянутых проанализированных команд с кодовым набором или с ветвями базы данных кодового дерева; и
использования последовательности команд для генерирования макрокоманды для выполнения действия, в котором принимает участие устройство.
В варианте осуществления система может являться URC.
Эти и другие аспекты изобретения будут очевидны из объяснены со ссылкой на описанные далее варианты осуществления.
Краткое описание чертежей
Эти и другие аспекты изобретения будут очевидны и дополнительно объяснены со ссылкой на варианты осуществления, описанные посредством примера в последующем описании и со ссылкой на сопроводительные чертежи, на которых:
Фиг.1 является блок-схемой системы в соответствии с вариантом осуществления изобретения;
Фиг.2 изображает представление виртуальных устройств на устройстве отображения в соответствии с вариантом осуществления изобретения;
Фиг.3 является схемой последовательности операций, объясняющей этапы программирования универсального устройства дистанционного управления; и
Фиг.4 является блок-схемой системы в соответствии с дополнительным вариантом осуществления изобретения.
На всех чертежах подобные ссылочные номера относятся к подобным элементам.
Подробное описание вариантов осуществления
Фиг.1 является блок-схемой системы 100 в соответствии с первым примером. Система 100 является домашней системой мультимедийных развлечений. Система 100 содержит первое устройство 102, в данном случае телевизор. Устройство 102 имеет несколько функциональных возможностей, которые могут управляться пользователем, например «включение/выключение телевизора», «переключение каналов вверх/вниз», «блокировка звука», «увеличение яркости» и т.д. Телевизор 102 имеет соответствующий пульт 103 дистанционного управления. В системе 100 также имеется второе устройство 104, в данном случае DVD-проигрыватель, также с множеством управляемых пользователем функциональными возможностями: «включить», «воспроизвести», «перемотать вперед», «извлечь диск» и т.д. DVD-проигрыватель 104 также имеет соответствующий пульт 105 дистанционного управления. Система 100 дополнительно содержит программируемый универсальный пульт 110 дистанционного управления (URC). URC содержит приемник 112 IR, передатчик 114 IR, контроллер 116 (реализованный в виде процессора со связанным запоминающим устройством), запоминающее устройство 118 и пользовательский интерфейс 120 (UI) с множеством средств ввода пользователя (например, кнопками, или функциональными клавишами на GUI, не показаны). Множество средств ввода пользователя обеспечивают выборочное управление конкретными функциональными возможностями устройства 102 и 104 посредством отправки одного конкретного из нескольких управляющих сигналов (команд), как только URC 110 запрограммирован. Система 100 дополнительно содержит персональный компьютер 130 (PC) для программирования URC 110. PC содержит контроллер 132, (реализованный в виде процессора со связанным запоминающим устройством) и запоминающее устройство 134, хранящее базу данных со множеством данных. Каждый соответствующий элемент данных является характерным для соответствующего набора управляющих команд (сигналов) в сжатом цифровом формате. Каждый соответствующий набор содержит управляющие команды для управления одним соответствующим из множества устройств. Устройство может отличаться по типу, например, телевизионный приемник в сравнении с DVD-проигрывателем; и/или устройство может отличаться по марке, например Philips, Marantz и т.д. Кроме того, PC содержит, в обычном случае, устройство 136 отображения и пользовательский интерфейс 138, например клавиатуру и мышь. URC 110 соединен с PC 130 через коммуникационный порт, как хорошо известно, и работает в качестве приемника IR для PC. Альтернативно, PC может содержать отдельный приемник IR для приема команд IR, а URC может быть соединен с другим портом PC 130.
Приемник 112 IR из URC 110 принимает управляющие команды, предоставленные посредством одного из исходных пультов 103, 105 дистанционного управления, которые поставляются вместе с телевизором 102 и DVD-проигрывателем 104, соответственно. Управляющие команды (или коды, коды условий и команды используются в качестве синонимов в этом описании) являются, например, управляющим сигналом IR, который управляет функциональными возможностями X (включением) устройства типа Y (телевизора 102), произведенного посредством компании Z (Philips). Приемник 112 IR выполняет дискретизацию конкретного захваченного сигнала и преобразует дискретизированный сигнал в цифровое слово в сжатом формате данных, которое передается на PC известным способом. Контроллер 132 из PC анализирует цифровое слово и запрашивает запоминающее устройство 134 на предмет проверки того, хранится ли в запоминающем устройстве 134 элемент данных, характерный для этого цифрового слова. Если контроллер 132 считывает соответствующий элемент данных, в соответствии с первой возможностью, данные, соответствующие полному набору управляющих сигналов, который содержит этот конкретный управляющий сигнал, идентифицируются как соответствующие. Таким образом, идентификация завершается на основе конкретного управляющего сигнала, принятого посредством приемника 112. Как только набор был идентифицирован, PC 130 выполняет конфигурацию программируемого контроллера 116 для ассоциации управляющих команд идентифицированного набора с множеством вводов пользователя. Вследствие этого конфигурация URC 110 для DVD-проигрывателя 104 достигается аналогичным способом, с использованием пульта 105 дистанционного управления, поставляемого вместе с DVD-проигрывателем 104. Разумеется, база данных с кодовыми наборами также может быть предоставлена посредством внешнего сервера, доступного через сеть Интернет, вместо запоминающего устройства 134 из PC.
В соответствии со второй возможностью, используются деревья инфракрасных (IR) кодов вместо кодовых наборов. Эта технология для сопоставления кодовых наборов более подробно обсуждается в патенте WO 2009/107029 A1. В этом подходе, кодовые наборы, которые имеют одинаковый код включения питания, группируются в одно дерево IR-кодов. Главное отличие первого подхода, обсуждаемого выше в настоящем документе, заключается в том, что в дереве IR-кодов, каждый код может иметь несколько альтернатив (случаев употребления). Эти случаи употребления сортируются в порядке популярности. Выбирается наиболее популярный. На данном этапе существует еще несколько возможных IR-кодов в дереве для некоторых функций. Например: после выбора дерева IR-кодов на основе принятого кода включения питания существует еще несколько возможностей для клавиши регулировки громкости. Посредством запроса пользователя на увеличение громкости в виртуальном телевизоре, получается информация, которая устанавливает функции громкости, которые должны быть использованы. Чем больше информации собирается с пульта дистанционного управления, тем более точным будет набор IR-кодов.
Запись сигналов идентифицированного набора в запоминающее устройство 118 из URC 110 для выполнения конфигурации этого устройства в качестве контроллера, в этом примере, для телевизора 102, может быть достигнуто множеством способов, известных как таковые и подробно описанных в патенте США 5819294.
Фиг.3 является схемой последовательности операций, иллюстрирующей программу обучения пульта дистанционного управления, выполняемую посредством контроллера 132. Кроме того, в его (связанная память) процессор загружается подходящее программное приложение. Предположим, что пользователь хочет управлять своим телевизором при помощи своего универсального пульта дистанционного управления. После выбора того, что он хочет добавить телевизор к набору устройств, для которых запрограммирован URC, и ввода марки телевизора (этап 302) на устройстве отображения 136 компьютера появляется смоделированный «виртуальный» телевизор 202 (этап 304), как показано на Фиг.2. Выполняется воспроизведение телевизора 202. Выполняется запрос пользователя на использование своего исходного пульта 103 дистанционного управления для выполнения определенного действия (этап 306), в этом случае выключения этого виртуального телевизора 202. Инфракрасный код захватывается и анализируется (этап 308). Поскольку захваченный код не является достаточно точным для простого сравнения его с информацией в базе данных, он должен быть проанализирован. Существуют допуски в контексте синхронизации сигнала IR, пользователь может размахивать пультом дистанционного управления и т.д. Сигнал должен быть проанализирован, то есть обработан, очищен и упрощен для его сравнения с данными в базе данных. Затем код сопоставляется с наиболее вероятным набором кодов IR для этого устройства и марки (этап 310), и виртуальный телевизор 202 выключается (этап 312). Этапы 310 и 312 необязательно выполняются в этом порядке. Альтернативно, сопоставление может выполняться в фоновом режиме, благодаря чему пользовательский интерфейс остается активным. После проверки того, все ли команды из последовательности команд, которая должна быть введена посредством пользователя, были захвачены (этап 314), способ возвращается к началу цикла на этап 306, на котором выполняется запрос пользователя на включение виртуального телевизора 202. Пользователь нажимает кнопку, которую он обычно использует для включения своего телевизора. Инфракрасный код захватывается (этап 308), этап 310 сопоставления выполняется снова для обнаружения того, возможна ли какая-либо точная настройка кодового набора для телевизора, и виртуальный телевизор включается (этап 312).
Поскольку теперь приложение знает, как включать и выключать этот телевизор, оно может легко использовать эту информацию для генерирования макрокоманды, в которой множество устройств включаются и выключаются при помощи одного нажатия кнопки.
Этапы 306-312 могут повторяться для последующих команд, например будет выполнен запрос на выполнение пользователем увеличения громкости, переключения на канал, использование клавиш курсора и т.д. Все эти IR-коды (команды) захватываются и позволяют приложению выполнять дополнительную точную настройку набора IR-кодов, используемых для этого телевизора и для лучшего генерирования макрокоманд действий (этап 316).
Развитие этого примера может быть использовано для записи макрокоманд действий посредством взаимодействия с набором виртуальных устройств. Например, после добавления телевизора и DVD-проигрывателя вышеупомянутым способом, описанным со ссылкой на Фиг.3, пользователь хочет добавить действие «Смотреть DVD». Его просят выбрать устройства, которые примут участие в этом действии, и он выбирает эти два устройства. Эти два устройства, то есть телевизор 202 и DVD-проигрыватель 204, показываются на устройстве отображения 136 компьютера, и пользователь может записать макрокоманду посредством взаимодействия с этими устройствами. Пользователь может взаимодействовать с устройствами посредством использования своих исходных пультов 103 и 105 дистанционного управления или посредством использования универсального пульта дистанционного управления, уже запрограммированного для взаимодействия с этими двумя устройствами. Так, в этом варианте осуществления, одна последовательность команд используется для управления двумя устройствами.
Фиг.4 изображает альтернативный пример системы 100. В данном случае, в контроллер 116 URC 400 непосредственно загружается программное приложение для программирования URC. Контроллер 116 объединяется со схемой 402 запоминающего устройства, содержащей базу данных с кодовыми наборами. URC дополнительно содержит устройство 404 отображения для предоставления обратной связи и команд для пользователя, а также отображения виртуальных устройств 202, 204.
В другом примере, программное приложение выполняется на мобильном вычислительном устройстве, таком как смартфон, соединенном с IR-приемником (проводным или беспроводным способом).
Неполные кодовые наборы или кодовые деревья в запоминающем устройстве PC/URC могут быть улучшены с использованием захваченных и проанализированных команд, принятых из одного из исходных пультов 103 и 105 дистанционного управления.
Кроме того, в случае, если не доступен ни кодовый набор, ни ветви базы данных кодового дерева, с которыми могут быть сопоставлены проанализированные команды, может быть выполнено последовательное обучение кодам из исходного пульта дистанционного управления.
Могут быть собраны статистические данные об устройствах, для которых используется способ. Поскольку кодовое дерево является структурой данных, которая комбинирует несколько кодовых наборов на основе их расстановки по популярности посредством сбора статистических данных, может быть гарантировано, что корень дерева всегда является самым популярным кодовым набором, вместо простой зависимости от информации, предоставляемой посредством поставщика базы данных. Кроме того, таким образом может быть определено, какие из кодовых наборов в базе данных используются часто, а какие являются устаревшими. Устаревшие могут быть удалены из базы данных для сохранения места в запоминающем устройстве.
Следует отметить, что вышеупомянутые варианты осуществления иллюстрируют, а не ограничивают изобретение и что специалисты в данной области техники будут способны разработать множество альтернативных вариантов осуществления без отступления от объема приложенной формулы изобретения. Сам по себе тот факт, что определенные критерии перечислены во взаимно различных зависимых пунктах формулы изобретения, не указывает, что комбинация этих критериев не может быть использована для получения положительного эффекта. Слово «содержащий» не исключает наличия других элементов или этапов, отличных от перечисленных, а признак единственного числа, предшествующий элементу, не исключает наличия множества таких элементов. Никакие ссылочные обозначения не ограничивают объем формулы изобретения. Изобретение может быть реализовано как посредством аппаратных средств, так и посредством программных средств, и несколько элементов могут быть представлены посредством одной и той же составляющей аппаратных средств или программных средств, а процессор может выполнять функцию одного или нескольких элементов, возможно совместно с элементами аппаратных средств.