The invention relates to a method and a system of learning Remote Control commands for programming a Universal Remote Control (URC).
URCs are typically programmed by accessing a database of infra-red code-sets. These code-sets are usually grouped per brand and device type (TV, DVD, etc.). However, because of the huge variety of devices in the market, which are controlled with remote controls, the information in these databases is often incomplete. In this case, it may be a problem to set up a universal remote control and program all the buttons needed for working. Even in case that the right code set is available in the database, finding it can be a real challenge.
U.S. Pat. No. 5,819,294 discloses a method dealing with this issue. According to this method, a programmable URC is programmed by a PC. There is a database for sets of codes used by a variety of commercially available remote controllers, which may either reside on the PC or in the remote control. The database contains sets of compressed codes. In order to program the URC for controlling an apparatus, the user lets the PC find a match between a single pulse-code (command) transmitted by a specific known remote control for controlling the apparatus on the one hand and an item in the database on the other hand. Upon finding the match, the set containing the matching item is stored in the programmable remote control controller as corresponding to the particular apparatus that is controllable via the specific remote control.
It is an object of the invention to provide an improved method and a system of learning Remote Control commands for programming a Universal Remote Control (URC). The invention is defined by the independent claims. The dependent claims define advantageous embodiments.
Advantageously, the invention goes a step further in the capturing of information from an original remote control and does not only match on codes, but also gets information on how a remote control is used by the user to carry out some actions, for example turn on and turn off a device, switch inputs of a device, etc.
According to a first aspect of the invention, a method is provided of programming a Universal Remote Control, the method comprising:
By requesting the user to execute a command sequence, behavioral data may be collected on how the user controls the devices. For example, information may be retrieved on which code (command) is used to switch the device off, which code is used to switch on the device on, how does the user switch to a multi-digit channel (e.g. channel 25), how does he switch to a certain input on a device (e.g. HDMI-2), etc. This behavioral data is used to automatically generate activity related macros. As an example, a user generally speaking may switch on a TV, which is in standby-mode, by pressing the power toggle button, by pressing a channel button (e.g. the “1”) or by pressing a channel up button. However, in some older types of TV-sets the power toggle button can only be used to switch the TV off and not for switching it on. So, in case of preparing a macro involving the step of switching on such a TV-set the use of the code corresponding to the power toggle button for this purpose should be avoided. By collecting behavioral data, it may be noticed that the user does not use the power toggle button to switch the TV-set on and the use of the corresponding code in a macro may be avoided.
Another example where the generation of a macro is not obvious is the Apple remote control, which is used for controlling Apple® TV, iPod®, or Mac®. The code-set of this remote control does not have a power code. Hence, by looking at the code-set, it is not possible to know how the controlled device is switched on. By asking the user to press the button to switch on the Apple® TV, the code used for this purpose (in this case the menu button) can be retrieved and that information can be used for the generation of macros later on.
A still further example is the case of a home theater system having an amplifier/tuner and DVD-player, wherein the tuner is connected to input-1 and the DVD-player to input-2 of a TV-set, for example. Often, code-sets do not comprise a specific code (“tuner”) for switching to the tuner. By requesting the user to switch to the tuner and retrieving the information that he uses the Input-1 code for this purpose, a macro can be generated for the activity switch on tuner, wherein the TV and the tuner are both switched on and the TV is switched to input-1.
A further advantage is that by capturing the commands from the original remote control, the URC can adjust its timings to better match the timings of the original remote control. For example, remote controls of some brands transmit some commands, such as power on/off for a longer time (e.g. 2 seconds) than others (0.5 seconds) for reliability reasons. By copying such behavior to the URC, it can also control the device corresponding to the original remote control in a more reliable way. Furthermore, the universal remote control can use the captured commands instead of the database commands for guaranteed success.
According to an embodiment, in the Remote Control learning program a virtual device is started corresponding to the device controlled by the original Remote Control and a status of the virtual device is varied according to the captured and analyzed commands. In this way, the user is provided with an intuitive feedback, wherein the virtual device reacts to the commands in the same way as the real device.
According to a further embodiment, the Remote Control learning program is an application on a Personal Computer, which captures the commands directly or via the Universal Remote Control. As a result, the Universal Remote Control programming may be performed by means of an apparatus (the PC) available in most households nowadays.
According to a still further embodiment, the method comprises the further step of requesting a user to enter a device type and brand name of the device controlled by the original remote control. This information may be used to display the correct virtual device.
According to a still further embodiment the method comprises the further step of improving said matched code-set or code-tree using the analyzed commands. Sometimes, the existing code-sets or code-trees are incomplete or do not match, entirely with the code set/code-tree used to control the device (some commands match and some others do not). In this case, it is useful to replace erroneous commands and/or add missing commands with the commands received from the original remote control.
According to a yet further embodiment the method comprises the further step of, in case that there is no code-set or there are no branches of a code-tree data base available to which the analyzed commands can be matched, learning the codes of the original remote control. As a result, also new (i.e. previously unavailable code-sets in the data base) can be learned and used for activity macro generation.
According to a still further embodiment the method comprises the step of collecting statistical data about devices and their corresponding code-sets for which the method is used. In this way, the codesets can be prioritized and it can be determined which ones are more popular than others. Furthermore, obsolete (hardly used) code-sets can be determined and deleted from servers or databases to save memory space.
According to a yet further embodiment, the user is requested to select the devices taking part in the activity and a macro is recorded by executing a command sequence including commands for all selected devices. Consequently, a macro for a plurality of devices may be conveniently obtained.
Preferably, the method according to the invention is implemented by means of a computer program that may run on any programmable hardware, e.g. a computer, a digital signal processor, a field-programmable gate array, an application-specific integrated circuit, a micro-processor, or a micro-controller.
The computer program may be embodied on a computer readable medium or a carrier medium may carry the computer program.
According to a second aspect of the invention a system is provided comprising a controller configured for:
In an embodiment, the system may be a URC.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
These and other aspects of the invention will be apparent from and elucidated further with reference to the embodiments described by way of example in the following description and with reference to the accompanying drawings, in which
Throughout the figures like reference numerals refer to like elements.
The IR receiver 112 of the URC 110 receives control commands provided by one of the original remote controls 103, 105 that come with TV set 102 and DVD player 104, respectively. The control commands (or codes, the terms codes and commands are used as synonyms in this description) are, for example, the IR control signal that controls a functionality X (power on) of an apparatus of type Y (TV set 102) manufactured by a company Z (Philips). IR receiver 112 samples the specific signal captured and converts the sampled signal into a digital word of a compressed data format, which is forwarded to the PC in a way, known as such. The controller 132 of the PC analyzes the digital word and queries memory 134 in order to verify if memory 134 stores a data item that is representative of this digital word. If controller 132 retrieves a matching data item, according to a first possibility the data corresponding with the complete set of control signals that contains this specific control signal is identified as matching. That is, identification is accomplished on the basis of the specific control signal received by receiver 112. Once a set has been identified, PC 130 configures programmable controller 116 to associate the control commands of the identified set with the multiple user-inputs. Configuration of URC 110 for DVD player 104 is hereupon achieved in a similar manner, using the remote control 105 coming with the DVD player 104. The database with the code-sets may of course also be provided by means of an external server accessible by means of the Internet instead of the memory 134 of the PC.
According to a second possibility, Infrared (IR) trees instead of code-sets are used. This technique for matching code sets is discussed in more detail in WO 2009/107029 A1. In this approach code-sets that have the same power toggle code are grouped into one IR tree. The main difference with the first approach, discussed herein above, is that in an IR tree, each code can have several alternatives (occurrences). These occurrences are sorted in order of popularity. The most popular one is selected. At this point, there are still several possible IR codes in the tree for some functions. For example: after selecting the IR tree based on the received Powert Toggle code, there are still several possibilities for the volume keys. By asking the user to turn up the volume on the virtual TV, the information is obtained which set of volume functions should be used. The more information is collected from the remote control, the more accurate the set of IR codes will become.
Writing of the signals of the identified set to memory 118 of URC 110 so as to configure this device as a controller for, in this example, TV set 102, may be achieved in a variety of manners known as such and described in detail in U.S. Pat. No. 5,819,294.
Since the application now knows how to switch on and off this TV set, it can easily use this information to generate activity macros wherein multiple devices get switched on and off with a single button press.
Steps 306-312 may be repeated for further commands, for example the user is asked to turn up the volume, to switch to a channel, to use the cursor keys, etc. All these IR codes (commands) are captured and allow the application to further fine-tune the set of IR codes used for this TV and to better generate activity macros (step 316).
An extension of this example can be used to record activity macros by interacting with a set of virtual devices. For example, after adding the TV set and the DVD player with the abovementioned method described with reference to
In another example, the software application runs on a mobile computing device such as a smartphone connected to an IR receiver (wired or wireless).
Incomplete code-sets or code trees in the memory of the PC/URC, may be improved using captured and analyzed commands received from one of the original remote controls 103, 105.
Furthermore, in case that there is no code-set or there are no branches of a code-tree data base available to which the analyzed commands can be matched, the codes of the original remote control can be learned one-by-one.
Statistical data about devices for which the method is used may be collected. As the code-tree is a data structure that combines several code sets based on their popularity ranking, by collecting statistical data, it can be assured that the root of the tree is always the most popular code set, instead of just relying on information provided by the database supplier. Furthermore, in this way, it may be determined which of the code sets in a data base are used frequently and which ones are obsolete. The obsolete ones may be deleted from the data base to save memory space.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. The word ‘comprising’ does not exclude the presence of other elements or steps than those listed, and the word ‘a’ or ‘an’ preceding an element does not exclude the presence of a plurality of such elements. Any reference signs do not limit the scope of the claims. The invention may be implemented by means of both hardware and software, and several elements may be represented by the same item of hardware or software, and a processor may fulfill the function of one or more elements, possibly in cooperation with hardware elements.
Number | Date | Country | Kind |
---|---|---|---|
10164965.5 | Jun 2010 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2011/052373 | 5/30/2011 | WO | 00 | 2/15/2013 |