Aspects, features, and advantages of the invention will become apparent and more readily appreciated from the following description of exemplary embodiments, taken in conjunction with the accompanying drawings of which:
Reference will now be made in detail to exemplary embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. Exemplary embodiments are described below to explain the present invention by referring to the figures.
Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings illustrating block diagrams and flowcharts for explaining a pointing device, a pointer movement method, and a display device for displaying the pointer according to an exemplary embodiments of the present invention. It will be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, implement the functions specified in the flowchart block or blocks.
These computer program instructions may also be stored in a computer usable or computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer usable or computer-readable memory produce an article of manufacture including instructions that implement the function specified in the flowchart block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
Also, each block of the flowchart illustrations may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
In an embodiment of the present invention, the term “display device” denotes a device displaying a pointer corresponding to movement of a pointing device.
Referring to
Also, a device coordinate system 130 (pointing device coordinate system 130) to represent movement and attitude of the pointing device 105 is shown in
Meanwhile, a coordinate system (referred to as “display coordinate system 140”) may be established on the basis of the display device 150, which corresponds to the device coordinate system 130. Herein, a suffix “n” indicates a coordinate system of the display device.
A pointer coordinate system 170 to represent pointer coordinates of the display device is shown in
When a user holds the pointing device 105 and turns it about a certain axis of the device coordinate system 130, the pointing device 105 detects its angular velocity and acceleration based on the movement of the pointing device. Then, the pointing device 105 computes position coordinates of the moved pointer 190 based on the detected angular velocity and acceleration, and transmits the results to the display device 150.
The display device 150 moves the position of the pointer 190 by using the position coordinates of the pointer 190 received from the pointing device 105.
Referring to
The angular velocity detection module 110 detects rotational information (e.g., rotational angular velocity) of the pointing device with respect to the respective X-axis, Y-axis, and Z-axis, each of which is an axis of rotation, in the device coordinate system shown in
The attitude computation module 114 computes the attitude of the pointing device by using acceleration information (data) detected by the acceleration detection module 112. A method of representing the attitude of the pointing device may employ a roll angle, a pitch angle, and a yaw angle, which are respectively represented by φ, θ, and ψ.
The signal conversion module 116 converts the angular velocity information (data) in the device coordinate system 130 detected by the angular velocity detection module 110 into the angular velocity information (data) in the display coordinate system 140 by using the attitude information (data) computed by the attitude computation module 114.
The pointer-coordinate computation module 118 computes the pointer coordinates of the display device in the display device by using the angular velocity information (data) converted by the signal conversion module 116, and the wireless signal transmission module 120 transmits the computed pointer coordinates to the display device.
The wireless signal reception module 152 receives a wireless signal from the wireless signal transmission module 120 to extract the pointer coordinates. The display module 156 displays the pointer, and the pointer control module 154 controls the movement of the pointer to be displayed by the display module 156 by using the extracted pointer coordinates.
The pointer movement method will now be described in detail with reference to the construction shown in
First, the angular velocity detection module 110 and the acceleration detection module 112 detect the angular velocity and acceleration of the moving pointing device S410.
To this end, the angular velocity detection module 110 detects the angular velocity of the pointing device turning about Xb-axis, Yb-axis, and Zb-axis of the device coordinate systems shown in
w
b
=[w
bx
w
by
w
bz]T [Equation 1]
While the angular velocity of the moving pointing device with respect to each axis is detected by the angular detection module 110, the acceleration detection module 112 detects the acceleration of the pointing device turning about the X-axis, Y-axis, and Z-axis in the device coordinate system, respectively. In this instance, the acceleration detected by the acceleration detection module 112 may be expressed in ab which will be expressed by Equation 2 below.
a
b
=[a
bx
a
by
a
bz]T [Equation 2]
If the accelerations are detected by the acceleration detection module 112, the attitude computation module 114 computes the attitude information representing the attitude of the pointing device by use of the detected acceleration information. In this instance, the attitude information may be expressed in a roll angle, a pitch angle, and a yaw angle which are respectively represented by φ, θ, and ψ.
The attitude computation module 114 can obtain the attitude information of the pointing device from the detected information by use of Equations 3 and 4 below.
φ=a tan 2(−aby−abz) [Equation 3]
θ=a tan 2(abx, √{square root over (aby2+αbz2)}) [Equation 4]
If the attitude information of the pointing device is obtained according to the above manner, the signal conversion module 116 converts the angular velocity wb in the device coordinate system 130 into the angular velocity wn in the display coordinate system 140 by use of the angular velocity information detected by the angular velocity detection module 110 and the attitude information S430, as Equation 5 below.
w
n
=C
b
n
w
b [Equation 5]
where wn denotes an angular velocity in the display coordinate system, and can be expressed as wn=[wnxwnywnz]T, and wb denotes an angular velocity of the pointing device, as described in Equation 1. Also, Cbn can be expressed by Equation 6.
As can be understood from Equations 5 and 6, the device coordinate system 130 can be converted into the display coordinate system 140, irrespective of the position of the pointing device held by the user.
In order to more easily compute Equation 6, it can let the value ψ corresponding to the yaw angle among the attitude information be zero. In this instance, Cbn can be adjusted as Equation 7.
Also, in order to precisely compute the angular velocity information in the display coordinate system, the pointing device 105 may include a geomagnetic sensor 115 searching flow of a magnetic field generated in the earth to detect its orientation as a compass. In this instance, the geomagnetic sensor 115 can detect variation of the orientation to output the value ψ corresponding to the yaw angle to the signal conversion module 116. The signal conversion module 116 can obtain the angular velocity information in the display coordinate system by applying the value ψ associated with the variation of orientation to Equation 6.
If the angular velocity in the display coordinate system is obtained through the above manner, the pointer-coordinate computation module 118 computes the pointer coordinates in the display device 150 by use of the angular velocity information converted by the signal conversion module 116 S440.
The pointer coordinates denotes the pointer coordinates in the pointer coordinates 170, and the pointer coordinates (xn, yn) can be derived from Equation 8.
x
n
=r
x
∫w
nz
dt
y
n
=r
y
∫w
ny
dt [Equation 8]
In this instance, rx and ry are scale coefficients which correspond to a value to adjust a movement degree of the pointer moving on the display screen in accordance with the movement of the pointing device 105. A scale coefficient adjusting unit (scale coefficient adjuster) may be built in the pointing device 105 to enable the user to directly adjust the scale coefficient, or the scale coefficient may be predetermined as a specified value.
For example, in the case in which the user lets values of rx and ry down by use of the scale coefficient adjusting unit built in the pointing device 105, the pointer is moved at more shorter distance on the display screen relative to the previous case, when the user moves the pointing device.
In this case, the pointer coordinates (xn, yn) may be coordinates for the origin of the display coordinate system, or be relative coordinates for the position of the pointer currently displayed, i.e., information about the moving distance of the pointer currently displaying.
The wireless signal transmission module 120 transmits the information about the pointer coordinates computed by the pointer-coordinate computation module 118 to the display device 150 S450.
The wireless signal reception module 152 of the display device 150 extracts the pointer coordinates (xn, yn) from the wireless signal received from the pointing device 105, and the pointer control module 154 moves the position of the pointer currently displayed on the display module 156 by use of the extracted pointer coordinates S460.
Referring to
The angular velocity detection module 510 detects the rotational angular velocity of the pointing device with respect to the respective X-axis, Y-axis, and Z-axis, each of which is an axis of rotation, in the device coordinate system shown in
The attitude computation module 514 computes the attitude of the pointing device by using acceleration information detected by the acceleration detection module 512. A method of representing the attitude of the pointing device may employ a roll angle, a pitch angle, and a yaw angle, which are respectively represented by φ, θ, and ψ.
The signal conversion module 516 converts the angular velocity information in the device coordinate system 130 detected by the angular velocity detection module 510 into the angular velocity information in the display coordinate system by using the attitude information computed by the attitude computation module 514.
The wireless signal transmission module 520 transmits the converted angular velocity to the display device.
The display device 600 includes a wireless signal reception module 610, a pointer-coordinate computation module 620, a pointer control module 610, and a display module 640.
The wireless signal reception module 610 receives a wireless signal from the wireless signal transmission module 520 of the pointing device 500 to extract the angular velocity information from the display coordinate system. The pointer-coordinate computation module 620 computes the pointer coordinates in the display device 600 by use of the extracted angular velocity.
The display module 640 displays the pointer, and the pointer control module 630 controls the movement of the pointer to be displayed by the display module 156 by using the computed pointer coordinates.
The pointer movement method according to another exemplary embodiment of the present invention will now be described in detail with reference to the construction shown in
The angular velocity detection module 510, the acceleration detection module 512, the attitude computation module 514, and the signal conversion module 516, which are shown in
Referring to
The wireless signal reception module 610 of the display device 600 receives the wireless signal from the pointing device 500, and extracts the angular velocity information wn from display coordinate system to output it to the pointer-coordinate computation module 620.
The pointer-coordinate computation module 620 computes the pointer coordinates in the pointer coordinate system by the same method as Equation 8 based on the angular velocity information S750. Then, the pointer control module 630 moves the position of the pointer currently displayed on the display module 640 by use of the extracted pointer coordinates S760.
As described above, according to the pointing device, the pointer movement method, and the display device displaying the pointer of the present invention, the pointing device can consistently move the pointer on the display screen positioned at a remote place, irrespective of the hand-held position of the pointing device.
In addition to the above-described exemplary embodiments, exemplary embodiments of the present invention can also be implemented by executing computer readable code/instructions in/on a medium/media, e.g., a computer readable medium/media. The medium/media can correspond to any medium/media permitting the storing and/or transmission of the computer readable code/instructions. The medium/media may also include, alone or in combination with the computer readable code/instructions, data files, data structures, and the like. Examples of code/instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by a computing device and the like using an interpreter. In addition, code/instructions may include functional programs and code segments.
The computer readable code/instructions can be recorded/transferred in/on a medium/media in a variety of ways, with examples of the medium/media including magnetic storage media (e.g., floppy disks, hard disks, magnetic tapes, etc.), optical media (e.g., CD-ROMs, DVDs, etc.), magneto-optical media (e.g., floptical disks), and hardware storage devices (e.g., read only memory media, random access memory media, flash memories, etc.). The computer readable code/instructions may be executed by one or more processors. The computer readable code/instructions may also be executed and/or embodied in at least one application specific integrated circuit (ASIC) or Field Programmable Gate Array (FPGA).
In addition, one or more software modules or one or more hardware modules may be configured in order to perform the operations of the above-described exemplary embodiments.
The term “module”, as used herein, denotes, but is not limited to, a software component, a hardware component, or a combination of a software component and a hardware component, which performs certain tasks. A module may advantageously be configured to reside on the addressable storage medium/media and configured to execute on one or more processors. Thus, a module may include, by way of example, components, such as software components, application specific software component, object-oriented software components, class components and task components, processes, functions, operations, execution threads, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functionality provided for in the components or modules may be combined into fewer components or modules or may be further separated into additional components or modules. Further, the components or modules can operate at least one processor (e.g. central processing unit (CPU)) provided in a device. In addition, examples of a hardware components include an application specific integrated circuit (ASIC) and Field Programmable Gate Array (FPGA). As indicated above, a module can also denote a combination of a software component(s) and a hardware component(s).
The computer readable code/instructions and computer readable medium/media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those skilled in the art of computer hardware and/or computer software.
Although a few exemplary embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these exemplary embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2006-0046218 | May 2006 | KR | national |