Operation device control apparatus, operation device control method, information storage medium, and operation device
Summary by NHIP
Gyro sensor control device
The control device estimates a zero-velocity reference signal from amplified voltage differences to adjust gyro sensor calibration. It divides output signals into time sections to calculate representative values for each evaluation section before updating the reference signal.
Claim Score by NHIP
Abstract
To provide an operating device control device for obtaining information about a rotational angle of an operating device, while reducing the influence due to an individual difference and/or variation of a reference sensor signal in accordance with a sensor signal output from the gyro sensor mounted in the operating device. A control device of an operating device having a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity, the control device obtains an output signal from signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal, then estimates a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, based on the output signal, and changes the predetermined reference signal according to the estimated reference sensor signal.

Term
1 yearleft in the term
Expires 10 September 2027, including 19 days of term adjustment.
- Priority
- Filed
- Granted
- Today
- Expires
10 claims: 4 independent, 6 dependent
- 1A control device of an operating device having a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity, comprising:reference sensor signal estimation means for estimating a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, based on an output signal output from signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal;wherein the reference sensor signal estimation means calculates, for each of a plurality of evaluation sections obtained by dividing the output signal output from the signal output means into predetermined time sections, a representative value of the output signal in the evaluation section, and estimates the reference sensor signal based on the representative value calculated;and control means for changing the predetermined reference signal according to the estimated reference sensor signal.
- 7A control method for controlling an operating device having a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity, comprising:a step of estimating a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, based on an output signal output from signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal;wherein the step of estimating a reference sensor signal further comprises calculating, for each of a plurality of evaluation sections obtained by dividing the output signal output from the signal output means into predetermined time sections, a representative value of the output signal in the evaluation section, and estimating the reference sensor signal based on the representative value calculated, and a step of changing the predetermined reference signal according to the estimated reference sensor signal.
- 8A non-transitory information storage medium storing a program for controlling an operating device having a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity, the program causing the computer to function as:reference sensor signal estimation means for estimating a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, based on an output signal output from signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal;wherein the reference sensor signal estimation means calculates, for each of a plurality of evaluation sections obtained by dividing the output signal output from the signal output means into predetermined time sections, a representative value of the output signal in the evaluation section, and estimates the reference sensor signal based on the representative value calculated, and control means for changing the predetermined reference signal according to the estimated reference sensor signal.
- 9Broadest claimClaim Score 46, average(NHIP)An operating device, comprising:a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity;signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal;and reference signal input means for inputting, as the predetermined reference signal, a signal in accordance with a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, which is estimated based on the output signal output by the signal output means, to the signal output means, wherein estimating the reference sensor signal comprises calculating, for each of a plurality of evaluation sections obtained by dividing the output signal output from the signal output means into predetermined time sections, a representative value of the output signal in the evaluation section, and estimating the reference sensor signal based on the representative value calculated.
Independent claims4
139 paragraphs in 5 sections, as filed
TECHNICAL FIELD
The present invention relates to an operating device having a gyro sensor, and an operating device control device, an operating device control method, and an information storage medium, all for controlling the operating device.
BACKGROUND ART
Some devices, such as digital still cameras and so forth, for example, may comprise a gyro sensor (a piezoelectric vibration type gyro sensor and so forth, for example) for the purpose of vibration correction and so forth. With such a device, use of the gyro sensor mounted thereon makes it possible to obtain information about the position and movement of the device. Specifically, the gyro sensor detects an angular velocity caused with the device and produces a sensor signal (a voltage signal and so forth) in accordance with the detected angular velocity. For example, when the gyro sensor rotates in a predetermined direction (clockwise direction, for example) relative to a reference axis, a sensor signal larger than a reference sensor signal (a sensor signal to be output with no angular velocity caused) is output, while when the gyro sensor rotates in an opposite direction (a counter-clockwise direction, for example) from the predetermined direction, a sensor signal smaller than the reference sensor signal is output.
DISCLOSURE OF THE INVENTION
Problems to be Solved by the Invention
A reference sensor signal with the above-described gyro sensor does not always present a constant value. That is, a reference sensor signal may be different for each gyro sensor, depending on an individual differences between the gyro sensors themselves. In addition, the reference sensor signal may be affected by a change in the environment, including temperature and so forth, in which the gyro sensor is used, and thus vary while the gyro sensor is used. In such a case, a different sensor signal may be output from the gyro sensor depending on the difference and/or variation of the reference sensor signal.
In view of the above, in a device such as the above-described digital still camera and so forth, an output from the gyro sensor may be filtered via a high-pass filter to thereby remove the low frequency component. This arrangement can remove the influence of a varying reference sensor signal from a sensor signal output from the gyro sensor, to thereby provide an output signal with a predetermined signal at the center thereof. Use of such an output signal can produce information about variation of an angular velocity for use in vibration correction and so forth.
However, filtering a sensor signal according to the above-described method may result in removing the information about the low frequency component of a sensor signal. Therefore, when the gyro sensor rotates at a constant angular velocity, for example, information about such rotating movement may possibly be lost. That is, integration of the filtered output signal cannot produce a correct rotation amount of the gyro sensor. In view of the above, in a usage in which the above-described gyro sensor is mounted in an operating device held and operated by a user, for example, to obtain information about a rotational angle of the operating device, the method using a high-pass filter is not readily applicable.
The present invention has been conceived in view of the above, and one of the objects thereof is to provide an operating device control device, an operating device control method, an information storage medium, and an operating device for obtaining information about a rotational angle of the operating device, while reducing influence due to an individual difference and/or variation of a reference sensor signal in accordance with a sensor signal output from the gyro sensor mounted in the operating device.
Means for Solving the Problem
In order to achieve the above-described object, according to one aspect of the present invention, there is provided a control device of an operating device having a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity, comprising reference sensor signal estimation means for estimating a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, based on an output signal output from signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal, and control means for changing the predetermined reference signal according to the estimated reference sensor signal.
According to another aspect of the present invention, there is provided a control method for controlling an operating device having a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity, comprising a step of estimating a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, based on an output signal output from signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal, and a step of changing the predetermined reference signal according to the estimated reference sensor signal.
According to still another aspect of the present invention, there is provided an information storage medium storing a program for controlling an operating device having a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity, the program causing the computer to function as reference sensor signal estimation means for estimating a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, based on an output signal output from signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal, and control means for changing the predetermined reference signal according to the estimated reference sensor signal.
According to yet another aspect of the present invention, there is provided an operating device, comprising a gyro sensor for detecting an angular velocity and outputting a sensor signal in accordance with the detected angular velocity, signal output means for outputting an output signal in accordance with a difference between the sensor signal output from the gyro sensor and a predetermined reference signal, and reference signal input means for inputting, as the predetermined reference signal, a signal in accordance with a reference sensor signal to be output by the gyro sensor when no angular velocity is detected, which is estimated based on the output signal output by the signal output means, to the signal output means.
BRIEF DESCRIPTION OF THE DRAWINGS
<figref idrefs="DRAWINGS">FIG. 1</figref> is diagram showing a hardware structure of an entertainment system according to an embodiment of the present invention;
<figref idrefs="DRAWINGS">FIG. 2</figref> is a diagram showing details of a structure of an MPU;
<figref idrefs="DRAWINGS">FIG. 3</figref> is a diagram showing an example of the external appearance of an operating device;
<figref idrefs="DRAWINGS">FIG. 4</figref> is a diagram showing an example of the internal structure of the operating device;
<figref idrefs="DRAWINGS">FIG. 5</figref> is a graph showing an example of a voltage signal output from an acceleration sensor;
<figref idrefs="DRAWINGS">FIG. 6</figref> is a functional block diagram showing an example of an entertainment system function according to the present invention;
<figref idrefs="DRAWINGS">FIG. 7</figref> is a functional block diagram showing an example function of a gyro sensor signal control unit;
<figref idrefs="DRAWINGS">FIG. 8</figref> is a flowchart showing an example of a process carried out by a gyro sensor signal control unit;
<figref idrefs="DRAWINGS">FIG. 9</figref> is a functional block diagram showing an example of a function of a calibration unit;
<figref idrefs="DRAWINGS">FIGS. 10A</figref>, <b>10</b>B and <b>10</b>C are diagrams explaining examples of predetermined holding states of the operating device;
<figref idrefs="DRAWINGS">FIG. 11</figref> is a diagram explaining an example of reference values stored in a storage unit of the operating device;
<figref idrefs="DRAWINGS">FIG. 12</figref> is a functional block diagram showing an example of a function of a filtering unit; and
<figref idrefs="DRAWINGS">FIG. 13</figref> is a diagram explaining one example of a plurality of parameter sets held by the entertainment system according to the embodiment.
BEST MODE FOR CARRYING OUT THE INVENTION
In the following, one embodiment of the present invention will be described with reference to the accompanying drawings.
<figref idrefs="DRAWINGS">FIG. 1</figref> is a diagram showing a hardware structure of an entertainment system (an information processing device) according to this embodiment. As shown, the entertainment system <b>10</b> is a computer system comprising an MPU (Micro Processing Unit) <b>11</b>, a main memory <b>20</b>, an image processing unit <b>24</b>, a monitor <b>26</b>, an input/output processing unit <b>28</b>, a sound processing unit <b>30</b>, a speaker <b>32</b>, an optical disc reading unit <b>34</b>, a hard disk <b>38</b>, interfaces (I/F) <b>40</b>, <b>44</b>, an operating device <b>42</b>, a camera unit <b>46</b>, and a network interface <b>48</b>.
<figref idrefs="DRAWINGS">FIG. 2</figref> is a diagram showing a structure of the MPU <b>11</b>. As shown, the MPU <b>11</b> comprises a main processor <b>12</b>, sub-processors <b>14</b><i>a</i>, <b>14</b><i>b</i>, <b>14</b><i>c</i>, <b>14</b><i>d</i>, <b>14</b><i>e</i>, <b>14</b><i>f</i>, <b>14</b><i>g</i>, <b>14</b><i>h</i>, a bus <b>16</b>, a memory controller <b>18</b>, and an interface (I/F) <b>22</b>.
The main processor <b>12</b> carries out various information processes, and controls the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h </i>based on an operating system stored in the ROM (Read Only Memory) (not shown), a program and data read from an optical disc <b>36</b>, such as a DVD (Digital Versatile Disk)-ROM or the like, for example, and/or a program, data, and so forth supplied via a communication network.
The sub-processors <b>14</b><i>a </i>to <b>14</b><i>h </i>each carry out various information processes according to an instruction from the main processor <b>12</b>, and control the respective units of the entertainment system <b>10</b> according to a program and data read from the optical disc <b>36</b>, such as a DVD-ROM or the like, or supplied via a communication network.
The bus <b>16</b> is used for exchanging an address and/or data among the respective units of the entertainment system <b>10</b>. The main processor <b>12</b>, the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h</i>, the memory controller <b>18</b>, and the interface <b>22</b> are mutually connected via the bus <b>16</b> for data exchange.
The memory controller <b>18</b> accesses the main memory <b>20</b> according to an instruction from the main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h</i>. A program and data read from the optical disc <b>36</b> and/or the hard disk <b>38</b>, or those supplied via a communication network, are written into the main memory <b>20</b>, when necessary. The main memory <b>20</b> also functions as a working memory of the main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h. </i>
The image processing unit <b>24</b> and the input/output processing unit <b>28</b> are connected to the interface <b>22</b>. Data exchange between the main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h </i>and the image processing unit <b>24</b> or the input/output processing unit <b>28</b> is carried out via the interface <b>22</b>.
The image processing unit <b>24</b> comprises a GPU (Graphical Processing Unit) and a frame buffer. The CPU renders various screen images in the frame buffer based on the image data supplied from the main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h</i>. The screen image rendered in the frame buffer is converted into a video signal at a predetermined timing, and output to the monitor <b>26</b>. It should be noted that the monitor <b>26</b> may be a home-use television receiver.
A sound processing unit <b>30</b>, an optical disc reading unit <b>34</b>, a hard disk <b>38</b>, interfaces <b>40</b>, <b>44</b>, and a network interface <b>48</b> are connected to the input/output processing unit <b>28</b>. The input/output processing unit <b>28</b> controls data exchange between the main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h </i>and the sound processing unit <b>30</b>, the optical disc reading unit <b>34</b>, the hard disk <b>38</b>, the interface <b>40</b>, <b>44</b>, and the network interface <b>48</b>.
The sound processing unit <b>30</b> comprises an SPU (Sound Processing Unit) and a sound buffer. Various sound data, including game music, game sound effects, messages, and so forth, which are read from the optical disc <b>36</b> and the hard disk <b>38</b>, are stored in the sound buffer. The SPU reproduces the various sound data, and outputs via the speaker <b>32</b>. It should be noted that the speaker <b>32</b> may be a built-in speaker of a home-use television receiver.
According to an instruction from the main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h</i>, the optical disc reading unit <b>34</b> reads a program and data from the optical disc <b>36</b>. The entertainment system <b>10</b> may be able to read a program and data stored in any computer readable information storage medium other than the optical disc <b>36</b>.
The optical disc <b>36</b> is a typical optical disc (a computer readable information storage medium), for example, such as a DVD-ROM or the like. The hard disk <b>38</b> is a typical hard disk device. The optical disc <b>36</b> and the hard disk <b>38</b> store various programs and data in a computer readable manner.
The interfaces (I/F) <b>40</b>, <b>44</b> establish connection to various peripheral devices, such as an operating device <b>42</b>, a camera unit <b>46</b>, and so forth. The interface may include a USB (Universal Serial Bus) interface, for example. A radio communication interface, such as a Bluetooth interface, for example, may also be used.
The operating device <b>42</b> is a general purpose operation input means and is used by the user to input various operations (for example, a game operation). The input/output processing unit <b>28</b> scans the states of the respective units of the operating device <b>42</b> every predetermined period of time (for example, 1/60 second), and supplies an operation signal about the scanning result to the main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h</i>. The main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h </i>determine the content of the operation by the user, based on the operation signal. It should be noted that the entertainment system <b>10</b> is adapted to be capable of connection to a plurality of operating devices <b>42</b>, so that the main processor <b>12</b> and the sub-processors <b>14</b><i>a </i>to <b>14</b><i>h </i>can carry out various processes based on the operation signals supplied from the respective operating devices <b>42</b>.
The camera unit <b>46</b> comprises a publicly known digital camera, for example, and supplies a captured black/white, grey scale, or color image every predetermined period of time (for example, 1/60 second). In this embodiment, the camera unit <b>46</b> inputs a captured image in the form of JPEG (Joint Photographic Experts Group) image data. The camera unit <b>46</b> is mounted to the monitor <b>26</b>, for example, with the lens thereof directed towards the player, and connected via a cable to the interface <b>44</b>. The network interface <b>48</b> is connected to the input/output processing unit <b>28</b> and the communication network, relaying data communication by the entertainment system <b>10</b> via the communication network to other entertainment system <b>10</b>.
In this embodiment, the operating device <b>42</b> has means (for example, a motion sensor or the like, for detecting the posture and movement of the operating device <b>42</b>) for outputting a signal indicative of the state in which the user holds the operating device <b>42</b>. Specifically, the operating device <b>42</b> has a direction key, an analogue device, an operation button, and other keys (represented by “A” to “D” in the drawing) formed on the front surface thereof, as shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, and incorporates an acceleration sensor <b>51</b> and a gyro sensor <b>52</b>. The acceleration sensor <b>51</b> and the gyro sensor <b>52</b> each output a signal (a sensor signal) indicative of the holding state of the operating device <b>42</b>, to be described later. In this embodiment, sensor signals output from the acceleration sensor <b>51</b> and the gyro sensor <b>52</b> are voltage signals.
<figref idrefs="DRAWINGS">FIG. 4</figref> is a diagram schematically showing an internal circuit structure of the operating device <b>42</b>. As shown, the operating device <b>42</b> comprises an acceleration sensor <b>51</b>, a gyro sensor <b>52</b>, a signal output unit <b>53</b>, analogue digital (A/D) converters <b>54</b><i>a </i>and <b>54</b><i>b</i>, a reference signal input section <b>55</b>, a storage unit <b>56</b>, and an interface (I/F) <b>57</b>.
The acceleration sensor <b>51</b> incorporates a weight supported by a beam, and detects the amount of deflection of the beam due to the displacement of the weight caused by the acceleration applied thereto, to thereby determine the acceleration applied to the weight. The acceleration sensor <b>51</b> may be a triaxial acceleration sensor for detecting accelerations in mutually substantially orthogonal triaxial directions. Specifically, as shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, the acceleration sensor <b>51</b> is fixedly disposed inside the enclosure of the operating device <b>42</b>, with three reference axes, namely the x, y, and z axes, set thereon mutually orthogonal to the acceleration sensor <b>51</b>. Here, for example, the x axis may correspond to the longitudinal direction (the right-left direction) of the operating device <b>42</b>; the y axis may correspond to the depth direction (the front-back direction) of the operating device <b>42</b>; and the z axis may correspond to the width direction (the direction perpendicular to the paper surface in <figref idrefs="DRAWINGS">FIG. 3</figref>) of the operating device <b>42</b>. The acceleration sensor <b>51</b> detects acceleration relative to each of the three reference axes, and outputs three voltage signals in accordance with the detected accelerations as sensor signals.
<figref idrefs="DRAWINGS">FIG. 5</figref> is a graph schematically showing the correspondence between the acceleration relative to any of the three axes, detected by the acceleration sensor <b>51</b>, and a voltage signal output according to the detected acceleration. As shown, the acceleration sensor <b>51</b> outputs a voltage signal substantially proportional to the acceleration, and outputs a reference voltage signal Var with no acceleration detected. Based on whether the output voltage signal is larger or smaller than the reference voltage signal Var, which of the positive and negative directions with respect to each axis the acceleration is caused in can be determined. In the drawing, 1 G represents an acceleration corresponding to the gravitational acceleration.
The gyro sensor <b>52</b> determines an angular velocity of the operating device <b>42</b> rotating about the z axis (the gyro reference axis), and outputs a sensor signal in accordance with the determined angular velocity. For example, the gyro sensor <b>52</b> is a piezoelectric vibration-type gyro sensor which vibrates a piezoelectric element and detects vibration caused in accordance with the Coriolis force caused by the rotating piezoelectric element. In the following, a voltage signal output with no angular velocity detected by the gyro sensor <b>52</b> (that is, the operating device <b>42</b> not rotating about the z axis) is referred to as a reference sensor signal Vgr.
The entertainment system <b>10</b> can determine in which direction with respect to the z axis the operating device <b>42</b> rotates, based on whether a sensor signal from the gyro sensor <b>52</b> is higher or lower than the reference sensor signal Vgr, similar to the case with the acceleration sensor <b>51</b>. Specifically, a voltage signal higher than the reference sensor signal Vgr is output when the operating device <b>42</b> rotates in the Ra direction (the clockwise direction on the paper surface) in <figref idrefs="DRAWINGS">FIG. 3</figref>, while a voltage signal lower than the reference sensor signal Vgr is output when the operating device <b>42</b> rotates in the Rb direction (the counter-clockwise direction on the paper surface) in <figref idrefs="DRAWINGS">FIG. 3</figref>. The entertainment system <b>10</b> samples an output from the gyro sensor <b>52</b> every fixed period of time, and integrates the sampled outputs, to thereby determine the amount of displacement (a rotational angle) in rotation of the operating device <b>42</b> relative to the z axis.
The signal output unit <b>53</b> outputs a signal (an output signal) in accordance with the difference between a sensor signal from the gyro sensor <b>52</b> and a predetermined reference signal. For example, the signal output unit <b>53</b> is an amplifying circuit having a circuit structure as shown in <figref idrefs="DRAWINGS">FIG. 4</figref>, and outputs a voltage signal as the output signal, the voltage signal obtained by amplifying the potential difference between a voltage signal from the gyro sensor <b>52</b> and a predetermined voltage signal (hereinafter referred to as an amplification reference signal Vr). A signal amplified by the signal output unit <b>53</b> is input to the A/D converter <b>54</b><i>a. </i>
The amplification by the amplification circuit is necessary when a sensor signal from the gyro sensor <b>52</b> has only low sensitivity relative to the angular velocity (that is, a voltage signal from the sensor varies less). Here, if the amplification reference signal Vr differs largely from the reference sensor signal Vgr, the sensor signal from the gyro sensor <b>52</b> is resultantly amplified asymmetrically relative to the reference sensor signal Vgr. Consequently, with a large difference, in particular, the sensor signal may possibly be amplified to an extent in excess of the expected voltage variation range of the circuit, so that the amplification is accordingly not properly carried out. To address the above, the amplification reference signal Vr input to the amplifying circuit needs to be controlled according to the reference sensor signal Vgr. The method for controlling the amplification reference signal Vr in this embodiment will be described later.
The A/D converters <b>54</b><i>a </i>and <b>54</b><i>b </i>convert an analogue signal, such as a voltage signal, or the like, into a digital output signal in a predetermined range. In this embodiment, the A/D converter <b>54</b><i>a </i>converts the amplified voltage signal from the signal output unit <b>53</b> into a digital output signal, and outputs to the interface <b>57</b>. The A/D converter <b>54</b><i>b </i>converts three voltage signals in accordance with the accelerations for the respective reference axes from the acceleration sensor <b>51</b> into digital output signals, and outputs to the interface <b>57</b>. It should be noted here that the digital output signals from the A/D converters <b>54</b><i>a </i>and <b>54</b><i>b </i>both have ten-bit resolution, and can take any value in the range between 0 and 1023.
The reference signal input section <b>55</b> obtains a predetermined reference digital signal Dr via the interface <b>57</b>, and inputs a voltage signal in accordance with the obtained reference digital signal Dr as an amplification reference signal Vr to the signal output unit <b>53</b>. The reference signal input section <b>55</b> comprises a PWM (Pulse Width Modulation) signal generator <b>55</b><i>a </i>and a smoothing circuit <b>55</b><i>b </i>in this embodiment.
The PWM signal generator <b>55</b><i>a </i>obtains a reference digital signal Dr from the reference signal control unit <b>62</b><i>b </i>to be described later via the interface <b>57</b>, then produces a voltage signal (PWM signal) subjected to pulse width modulation using a duty ratio in accordance with the obtained reference digital signal Dr, and outputs the PWM signal to the smoothing circuit <b>55</b><i>b</i>. It should be noted that the reference digital signal Dr input to the PWM signal generator <b>55</b><i>a </i>has eight-bit resolution, and can take any value in the range between 0 and 255.
The smoothing circuit <b>55</b><i>b </i>is a low pass filter having a circuit structure such as is shown in <figref idrefs="DRAWINGS">FIG. 4</figref>, for example, and smoothes a PWM signal produced by the PWM signal generator <b>55</b><i>a</i>. Consequently, a voltage signal in accordance with the reference digital signal Dr is produced, and input to the signal output unit <b>53</b> as an amplification reference signal Vr.
Here, it should be noted that the above described structure of the reference signal input section <b>55</b> is only an example, and the reference signal input section <b>55</b> may have an alternative structure for converting the reference digital signal Dr into an amplification reference signal Vr, using a means, such as a digital/analogue converter, or the like, different from the above-described structure, before outputting to the signal output unit <b>53</b>.
The storage unit <b>56</b> is an EEPROM (Electronically Erasable and Programmable Read Only Memory), or the like, and stores data having been written therein when manufacturing the operating device <b>42</b>. The data stored in the storage unit <b>56</b> is read via the interface <b>57</b>, and used in a process by the MPU <b>11</b> of the entertainment system <b>10</b>. The content of the data stored in the storage unit <b>56</b> in this embodiment will be described later.
The interface <b>57</b> may be a USB interface, a Bluetooth interface, or the like, and relays data transmission between the interface <b>40</b> and the operating device <b>42</b>.
In the following, a function realized by the entertainment system <b>10</b> having the above-described hardware structure by carrying out a process in accordance with the holding state of the operating device <b>42</b>, using sensor signals output from the acceleration sensor <b>51</b> and gyro sensor <b>52</b>, will be described.
<figref idrefs="DRAWINGS">FIG. 6</figref> is a functional block diagram showing example functions realized by the entertainment system <b>10</b> in this case. As shown, the entertainment system <b>10</b> comprises, in terms of functions, an output value acquiring unit <b>61</b>, a gyro sensor signal control unit <b>62</b>, a calibration unit <b>63</b>, a filtering unit <b>64</b>, and an application execution unit <b>65</b>. These functions are realized, for example, by the MPU <b>11</b> operating according to a program stored in the main memory <b>20</b>. This program may be provided via a communication network, such as the Internet, or the like, or in the form of being stored in various computer readable information storage media, such as an optical disc, a memory card, or the like.
The output value acquiring unit <b>61</b> obtains an output value from the operating device <b>42</b> in accordance with the holding state of the operating device <b>42</b>. Specifically, the output value acquiring unit <b>61</b> obtains a digital output signal from the A/D converter <b>54</b><i>a </i>as an output value Dg, the digital output signal indicating the angular velocity of the operating device <b>42</b>. Further, the output value acquiring unit <b>61</b> obtains three digital output signals from the A/D converter <b>54</b><i>b </i>as output values Da, the digital output signals indicating the accelerations of the reference axes relative to the operating device <b>42</b>. That is, the output value acquiring unit <b>61</b> obtains output values via the interface <b>57</b> of the operating device <b>42</b> and the interface <b>40</b> of the main body of the entertainment system <b>10</b>. In the above, the output value acquiring unit <b>61</b> obtains the output values successively every predetermined period of time (for example, every input of a vertical synchronizing signal).
The gyro sensor signal control unit <b>62</b> controls the amplification reference signal Vr to be input to the signal output unit <b>53</b>, using the output value Dg in accordance with an output from the gyro sensor <b>52</b> among those obtained by the output value acquiring unit <b>61</b>. The detailed function of the gyro sensor signal control unit <b>62</b> will be described later.
The calibration unit <b>63</b> calibrates the output value Da in accordance with an output from the acceleration sensor <b>51</b> among those obtained by the output value acquiring unit <b>61</b>, and outputs a resultant digital value as a state value Ds indicative of the holding state of the operating device <b>42</b>.
The filtering unit <b>64</b> obtains a state value Ds from the calibration unit <b>63</b>, and filters out the influence due to a noise signal in the state value Ds. The functions of the calibration unit <b>63</b> and the filtering unit <b>64</b> will be described later.
The application execution unit <b>65</b> executes an application program read from the optical disc <b>36</b> or the like and stored in the main memory <b>20</b>, to thereby carry out a game process or the like. Here, the application execution unit <b>65</b> carries out a process in accordance with the holding state of the operating device <b>42</b> based on the data from the gyro sensor signal control unit <b>62</b> and/or the filtering unit <b>64</b>.
In the following, an example function of the gyro sensor signal control unit <b>62</b> will be described with reference to the functional block diagram in <figref idrefs="DRAWINGS">FIG. 7</figref>. As shown, the gyro sensor signal control unit <b>62</b> comprises, in terms of functions, a reference sensor signal estimation unit <b>62</b><i>a</i>, a reference signal control unit <b>62</b><i>b</i>, an output value correction unit <b>62</b><i>c</i>, and an initial value setting unit <b>62</b><i>d</i>. These functions are realized, for example, by the MPU <b>11</b> executing system software stored in the entertainment system <b>10</b>.
The reference sensor signal estimation unit <b>62</b><i>a </i>estimates a reference sensor signal Vgr to be output with no angular velocity detected by the gyro sensor <b>52</b>, based on a signal from the signal output unit <b>53</b>. Specifically, the reference sensor signal estimation unit <b>62</b><i>a </i>calculates an estimation value (a reference sensor signal estimation value De) of an output value Dg that is output according to the reference sensor signal Vgr and the amplification reference signal Vr to be controlled by the reference signal control unit <b>62</b><i>b </i>to be described later, to thereby estimate a reference sensor signal Vgr. The calculation of the reference sensor signal estimation value De by the reference sensor signal estimation unit <b>62</b><i>a </i>is made based on an output value array obtained by the output value acquiring unit <b>61</b> by obtaining an output value Dg successively every predetermined period of time.
In the following, an example of the above-described calculation of the reference sensor signal estimation value De will be described. That is, the reference sensor signal estimation unit <b>62</b><i>a </i>initially selects output values Dg to be processed from among those forming an output value array, and calculates a representative value (for example, an average value) of the selected output values Dg for calculation of the reference sensor signal estimation value De.
More specifically, the reference sensor signal estimation unit <b>62</b><i>a </i>calculates a representative value of the output values Dg belonging to each of a plurality of evaluation sections Pn obtained by dividing the output value array into predetermined time sections, and then estimates a reference sensor signal Vgr based on the calculated representative values. In the above, a predetermined number of sampled output values Dg which are successive in the output value array belong to each evaluation section Pn (n=1, 2, 3 . . . ). The reference sensor signal estimation unit <b>62</b><i>a </i>calculates an evaluation index En indicative of the flatness (the degree of variation) of the output values Dg belonging to each evaluation section, and, based on the evaluation index En, selects an evaluation section with respect to which a reference sensor signal estimation value De is going to be calculated. Thereafter, a reference sensor signal estimation value De is calculated based on the representative value (the average value, or the like) of the output values Dg belonging to each of the selected evaluation sections.
In the following, the above-described process will be specifically described with reference to the flowchart in <figref idrefs="DRAWINGS">FIG. 8</figref>. This process is carried out every time the output value acquiring unit <b>61</b> obtains a predetermined number of output values Dg belonging to each evaluation section Pn.
Initially, for an evaluation section Pn to be processed, the reference sensor signal estimation unit <b>62</b><i>a </i>obtains the maximum value (the section maximum value) Dmaxn of the output values Dg belonging to the evaluation section Pn, the minimum value (the section minimum value) Dminn of the same, and the average value (a section average value) Davgn of the same (S<b>1</b>). Thereafter, the reference sensor signal estimation unit <b>62</b><i>a </i>calculates an evaluation index En, using the following expression, based on the section maximum value Dmaxn, the section minimum value Dminn, and the section average value Davgn (S<b>2</b>). <br /><i>En</i>=(<i>D</i>max<i>n−D</i>avg<i>n</i>)<sup>2</sup>+(<i>D</i>min<i>n−D</i>avg<i>n</i>)<sup>2 </sup>
In the expression, the evaluation index En is a sum of variance of the section maximum value Dmaxn and the section minimum value Dminn relative to the section average value Davgn. Therefore, the evaluation index En is smaller when the output value Dg for the evaluation section Pn varies less, being closer to constant. In general, the output value Dg is expected to vary more when the user operates the operating device <b>42</b>, and vary less when the user does not operate the operating device <b>42</b>. Therefore, the output value Dg which varies less with a smaller evaluation index En is expected to be close to the value which is output in accordance with the reference sensor signal Vgr of the gyro sensor <b>52</b>.
However, the output value Dg also becomes constant with a resultantly smaller evaluation index En when the angular velocity of the rotating operating device <b>42</b> exceeds the measurable range of the gyro sensor <b>52</b> and the sensor signal is accordingly saturated at the maximum or minimum value. In view of the above, the reference sensor signal estimation unit <b>62</b><i>a </i>determines whether or not the output values Dg belonging to the evaluation section Pn are included in the range between the predetermined upper limit value THmax and the lower limit value THmin (that is, THmin<Dg<THmax) (S<b>3</b>). Should the output value Dg be outside the predetermined range of the threshold, that is, the condition at S<b>3</b> is not satisfied, the process for the evaluation section Pn is terminated.
Meanwhile, when the condition at S<b>3</b> is satisfied, the reference sensor signal estimation unit <b>62</b><i>a </i>determines whether or not the evaluation index En is smaller than a predetermined threshold Eth (that is, En<Eth) (S<b>4</b>). When it is determined that the evaluation index En is equal to or larger than the threshold Eth, that is, the condition at S<b>4</b> is not satisfied, the information about that evaluation section Pn is not used in the estimation of a reference sensor signal estimation value De, and the process for the evaluation section Pn is terminated.
Meanwhile, when the determination condition is satisfied at S<b>4</b>, the reference sensor signal estimation unit <b>62</b><i>a </i>determines to use the information about that evaluation section Pn in the estimation of a reference sensor signal Vgr. In this case, the reference sensor signal estimation unit <b>62</b><i>a </i>stores the section average value Davgn, calculated at step S<b>1</b>, in the main memory <b>20</b> as the representative value of the output values Dg for the evaluation section Pn (S<b>5</b>). In the above, it should be noted that it is controlled such that information about the section average values of a predetermined number of evaluation sections are always held in the main memory <b>20</b>. Therefore, when the predetermined number of section average values are already held, the reference sensor signal estimation unit <b>62</b><i>a </i>writes a new section average value into the main memory <b>20</b> at step S<b>5</b>, while deleting the oldest one.
Thereafter, the reference sensor signal estimation unit <b>62</b><i>a </i>calculates a reference sensor signal estimation value De based on the information about the predetermined number of section average values having been stored in the main memory <b>20</b> at step S<b>5</b>. It should be noted here that although a predetermined number of section average values Davgn which satisfy the conditions at steps S<b>3</b> and S<b>4</b> are obtained in the above, it is possible that information not corresponding to the reference sensor signal Vgr be included therein. This is because the determination condition at steps S<b>3</b> and S<b>4</b> may possibly be satisfied even in a case under peculiar circumstances other than a case in which no angular velocity is detected by the gyro sensor <b>52</b>. That is, the conditions at steps S<b>3</b> and S<b>4</b> may be satisfied when the user slowly moves the operating device <b>42</b> at a constant angular velocity, or the like.
To address the above, the reference sensor signal estimation unit <b>62</b><i>a </i>determines whether or not the difference W between the maximum and minimum values of the plurality of section average values Davgn having been stored in the main memory <b>20</b> at step S<b>5</b> is smaller than a predetermined threshold Wth (that is, W<Wth) (S<b>6</b>) With the difference W determined to be equal to or larger than the predetermined threshold, the process is terminated. That is, with this arrangement, it is possible to terminate the calculation of a reference sensor signal estimation value De, should the plurality of section average values Davgn vary excessively among one another.
Meanwhile, when the determination condition at S<b>6</b> is satisfied, the reference digital signal estimation unit <b>62</b><i>a </i>calculates the average value of the predetermined number of section average values Davgn having been stored in the main memory <b>20</b> at S<b>5</b>, and determines the calculated average value as a reference sensor signal estimation value De (S<b>7</b>).
As described above, even if the reference sensor signal Vgr varies due to the influence of temperature, or the like, while the gyro sensor <b>52</b> is being used, the reference sensor signal estimation unit <b>62</b><i>a </i>can calculate a reference sensor signal estimation value De in accordance with the varying reference sensor signal Vgr.
It should be noted that the reference sensor signal estimation unit <b>62</b><i>a </i>may employ a method different from the one described above in calculation of a reference sensor signal estimation value De. For example, the reference sensor signal estimation unit <b>62</b><i>a </i>may calculate a representative value (an average value, or the like) of a plurality of kinds of evaluation section having different lengths of time, and estimate a reference sensor signal based thereon in cycles. In the above, where the reference sensor signal estimation unit <b>62</b><i>a </i>uses an evaluation section in a relatively short cycle in the calculation of a reference sensor signal estimation value De, the reference sensor signal estimation value De can be updated rather shortly, should the reference sensor signal Vgr vary when the operating device <b>42</b> is in use. However, when a sensor output is not stabilized, such as, when the user frequently operates the operating device <b>42</b>, the frequency of updating the reference sensor signal estimation value De drops. In view of the above, selection of either one of the estimation value obtained in an estimation value calculation process relying on a shorter cycle and that on a relatively longer cycle enables highly accurate calculation of a reference sensor signal estimation value De.
For example, beside the above-described estimation value calculation process, the reference sensor signal estimation unit <b>62</b><i>a </i>may use the section average values Davgn, calculated in the estimation value calculation process in a shorter cycle, instead of the output values Dg, and carry out a process similar to the estimation value calculation process in a shorter cycle. This constitutes an estimation value calculation process using an evaluation section in a longer cycle, corresponding to an estimation value calculation process applied relative to an output value array filtered by a low-pass filter. When the reference sensor signal estimation value De is updated in an estimation value calculation process relying on a shorter cycle, the result of the estimation value calculation process relying on a longer cycle is controlled to be reset (that is, the information about the average values of evaluation sections in a longer cycle accumulated thus far is deleted). Meanwhile, when update of a reference sensor signal estimation value De in an estimation value calculation process relying on a shorter cycle is not applied for a predetermined period of time, a reference sensor signal estimation value De obtained in an estimation value calculation process relying on a longer cycle is output to the reference signal control unit <b>62</b><i>b</i>. With the above, the reference sensor signal estimation value De is updated using a process relying on a shorter cycle, which closely follows the reference sensor signal Vgr, when possible, and a process relying on a longer cycle when not possible.
It should be noted that the application execution unit <b>65</b> may instruct the user at a predetermined time to hold the operating device <b>42</b> still so that the reference sensor signal estimation unit <b>62</b><i>a </i>can calculate a reference sensor signal estimation value De. With the user holding the operating device <b>42</b> still in response to the instruction, the reference sensor signal estimation unit <b>62</b><i>a </i>can quickly and accurately calculate a reference sensor signal estimation value De.
Also, in the above-described example, the reference sensor signal estimation unit <b>62</b><i>a </i>estimates a reference sensor signal Vgr based solely on the output values Dg, which is in accordance with an output from the gyro sensor <b>52</b> and obtained by the output value acquiring unit <b>61</b>, though any other information may be used in the estimation. For example, the reference sensor signal estimation unit <b>62</b><i>a </i>may obtain information about a user operation carried out relative to the operating device <b>42</b>, including an output from a sensor, such as the acceleration sensor <b>51</b>, or the like, other than the gyro sensor <b>52</b>, information showing the state of a button or the like on the operating device <b>42</b>, and estimate a reference sensor signal Vgr based on the information about the user operation relative to the operating device <b>42</b>.
Specifically, the reference sensor signal estimation unit <b>62</b><i>a </i>selects output values Dg for use in the calculation of a reference sensor signal estimation value De based on the information about the user operation carried out by the operating device <b>42</b> and the evaluation index En. This makes it possible to select output values of the gyro sensor <b>52</b> for use in the estimation of the reference sensor signal Vgr according to the state of the operating device <b>42</b>, so that the estimation accuracy can be improved. Further, the reference sensor signal estimation unit <b>62</b><i>a </i>may estimate the reference sensor signal Vgr based on a period of time in which the operating device <b>42</b> is used and information about the content of the process carried out by the application execution unit <b>65</b>.
The reference signal control unit <b>62</b><i>b </i>controls so as to change the amplification reference signal Vr to be input to the signal output unit <b>53</b>, according to a reference sensor signal Vgr estimated by the reference sensor signal estimation unit <b>62</b><i>a</i>. Specifically, the reference signal control unit <b>62</b><i>b </i>determines the value of a reference digital signal Dr in accordance with the reference sensor signal estimation value De, calculated by the reference sensor signal estimation unit <b>62</b><i>a</i>, and inputs the reference digital signal Dr to the reference signal input section <b>55</b> via the interface <b>57</b> of the operating device <b>42</b>, to thereby control the amplification reference signal Vr.
Specifically, the reference signal control unit <b>62</b><i>b </i>changes the reference digital signal Dr in accordance with the reference sensor signal estimation value De such that the output value Dg obtained in accordance with the reference sensor signal Vgr coincides with the predetermined target value Dc. That is, the reference signal control unit <b>62</b><i>b </i>changes the reference digital signal Dr being currently output, according to the difference between the reference sensor signal estimation value De and the predetermined target value Dc. With the above, the output value Dg to be output under control by the reference signal control unit <b>62</b><i>b </i>becomes substantially coincident with the predetermined target value Dc when a reference sensor signal Vgr is output from the gyro sensor <b>52</b>. Consequently, the output value Dg takes a value indicative of the variation of the angular velocity, with the target value Dc as the center of the amplitude.
In this case, the target value Dc is set, for example, at the median (here <b>512</b>) of the range of values which can be taken by the digital output signal from the A/D converter <b>54</b><i>a</i>. Alternatively, the target value Dc may be a value determined in response to an instruction from the application execution unit <b>65</b>.
Here, when the resolution of the reference digital signal Dr and the accuracy of the amplification reference signal Vr accordingly output by the reference signal input section <b>55</b> are sufficiently high, it is possible to make fine adjustment such that an output value Dg to be output in accordance with the reference sensor signal Vgr becomes accurately coincident with the target value Dc. However, there may be a case in which only roughly accurate control is possible with an amplification reference signal Vr due to circuit structural constrictions or the like, and in such a case combination of the adjustment of the reference digital signal Dr and correction of the output value Dg, using the method described below, makes possible fine adjustment of the output value Dg in accordance with the reference sensor signal estimation value De.
For example, in this embodiment, suppose that the signal output unit <b>53</b> is an amplifying circuit for amplifying the potential difference between two voltage signals input by a factor of −A. In this case, the following relational expression is held between a sensor signal Vg from the gyro sensor <b>52</b> and an output signal Vo from the signal output unit <b>53</b>. <br /><i>Vo−Vr=−A</i>(<i>Vg−Vr</i>)
This relational expression is modified as follows: <br /><i>Vo=−A·Vg</i>+(<i>A+</i>1)<i>Vr </i><br /> With the above relational expression, the change amount of the output signal Vo is (A+1) times the change amount of the amplification reference signal Vr.
Further, as described above, in this embodiment, the resolution of the digital output signal (that is, an output value Dg), output from the A/D converter <b>54</b><i>a </i>in accordance with the output signal Vo, is ten bits, while the resolution of the reference digital signal Dr, input to the reference signal input section <b>55</b>, is eight bits. The amplification reference signal Vr is controlled according to the reference digital signal Dr. The ratio between the resolution of the output value Dg and that of the reference digital signal Dr is 4:1 (two bits×2).
With the above, in this embodiment, the change amount of the output value Dg is 4(A+1) times the change amount of the reference digital signal Dr. That is, the following relational expression is held between the change amount ΔDr of the reference digital signal Dr and the change amount ΔDg of the output value Dg in accordance with the change amount ΔDr. <br />Δ<i>Dg=</i>4(<i>A+</i>1)Δ<i>Dr </i>
Here, the rate of the change amount of the output value Dg relative to that of the reference digital signal Dr is defined as a variation rate R in the following. As known from the relational expression, in this embodiment, every time the reference digital signal Dr is changed by one, the output value Dg is changed by R (=4 (A+1)). However, “A” is not always an integer value, and when “A” is not an integer value, the change amount ΔDg of the output value Dg takes a value obtained by converting the value obtained using the above expression into an integer value by counting fractions over ½ as one and disregarding the remainder, or the like, for example.
As described above, in this embodiment, it is impossible to control the output value Dg with sufficient accuracy by only changing the reference digital signal Dr. Therefore, for compensation of the adjustment by changing the reference digital signal Dr, the gyro sensor signal control unit <b>62</b> corrects the output value Dg. Specifically, the reference signal control unit <b>62</b><i>b </i>determines the change amount ΔDr relative to the current value of the reference digital signal Dr based on the variation rate R, and outputs a reference digital signal Dr having been modified according to the determined change amount to the reference signal input section <b>55</b>. In addition, the reference signal control unit <b>62</b><i>b </i>calculates a correction value ΔDg based on the variation rate R, for correcting the difference between an output value Dg assumed to be output relative to the reference sensor signal Vgr in accordance with a new reference digital signal Dr and an output value Dg (a target value Dc, here) to be output relative to the reference sensor signal Vgr estimated by the reference sensor signal estimation unit <b>62</b><i>a. </i>
For example, the reference signal control unit <b>62</b><i>b </i>calculates the change amount ΔDr of the reference digital signal Dr and the correction value ΔDg so as to satisfy the follow relational expression. <br /><i>Dc−De=R·ΔDr+ΔDg </i><br /> wherein ΔDr is an integer value which enables ΔDg having an absolute value smaller than R. For example, a quotient obtained by dividing Dc−De by R is ΔDr with the remainder being ΔDg. Then, the reference signal control unit <b>62</b><i>b </i>outputs, as a new reference digital signal Dr, a value obtained by adding ΔDr to the reference digital signal Dr being currently output, and updates the correction value ΔDg stored in the main memory <b>20</b> to the calculated value. In this case, the output value Dg assumed to be output relative to the reference sensor signal Vgr in accordance with the new reference digital signal Dr input is De+R·ΔDr. It should be noted that, when the absolute value of Dc−De is smaller than R, the reference signal control unit <b>62</b><i>b </i>updates the correction value ΔDg, without changing the reference digital signal Dr.
The output value correction unit <b>62</b><i>c </i>corrects the output value Dg obtained by the output value acquiring unit <b>61</b>, based on the correction value ΔDg, calculated by the reference signal control unit <b>62</b><i>b </i>and stored in the main memory <b>20</b>. That is, after the reference signal control unit <b>62</b><i>b </i>changes the reference digital signal Dr, the correction value ΔDg is added to an output value Dg which is output in accordance with the change, to thereby correct the output value Dg. This makes it possible to correct the output value Dg such that an output value Dg, obtained relative to the reference sensor signal Vgr, becomes substantially coincident with the target value Dc.
In this embodiment, the corrected output value is output to the application execution unit <b>65</b>. The application execution unit <b>65</b> integrates the difference between the corrected output value and the target value Dc, to thereby obtain information about a rotational angle of the operating device <b>42</b>.
The initial value setting unit <b>62</b><i>d </i>obtains the initial value of the reference digital signal Dr, and outputs the obtained initial value to the reference signal control unit <b>62</b><i>b</i>. In the above, the initial value setting unit <b>62</b><i>d </i>reads data from the storage unit <b>56</b> of the operating device <b>42</b> when the power of the entertainment system <b>10</b> is turned on, or when the operating device <b>42</b> is connected to the entertainment system <b>10</b>, to thereby obtain the initial value of the reference digital signal Dr. With the initial value obtained by the initial value setting unit <b>62</b><i>d</i>, the reference signal control unit <b>62</b><i>b </i>determines a reference digital signal Dr in accordance with the initial value, and outputs the determined reference digital signal Dr to the reference signal input section <b>55</b>.
Besides the initial value of the reference digital signal Dr, the initial value setting unit <b>62</b><i>d </i>obtains the initial value of the correction value ΔDg to be used by the output value correction unit <b>62</b><i>c </i>in correction of the output value Dg, and stores in the main memory <b>20</b>.
In this embodiment, the reference digital signal Dr is controlled in accordance with the changing output value Dg as time passes. Accordingly, it may take time, in the case of the initial value being a predetermined value, such as 0, or the like, before the reference digital signal Dr is adjusted to be the value in accordance with the reference sensor signal Vgr. To address the above, in this embodiment, the reference digital signal Dr is controlled in accordance with the initial value of the reference digital signal Dr, stored in advance in the storage unit <b>56</b> of the operating device <b>42</b>.
In this case, the initial value of the reference digital signal Dr, stored in the storage unit <b>56</b>, is determined such that a digital output signal from the A/D converter <b>42</b><i>a </i>becomes closest to the target value Dc when the operating device <b>42</b> remains still. This is achieved through measurement of a digital output signal from the A/D converter <b>42</b><i>a </i>while holding the operating device <b>42</b> still and changing the reference digital signal Dr, in the process of manufacturing the operating device <b>42</b> or the like. Also, the difference between the digital output signal to be output relative to the initial value of the reference digital signal Dr in this case and the target value Dc is determined as the initial value of the correction value ΔDg.
Through the process described above, the gyro sensor signal control unit <b>62</b> controls the reference signal to be input to the signal output unit <b>53</b>, according to the reference sensor signal Vgr estimated based on an output signal from the signal output unit <b>53</b>, whereby a sensor signal from the gyro sensor <b>52</b> can be converted into an output signal having the amplitude center fixed at a predetermined value (target value Dc, here) which is not subjected to the individual difference of a sensor. Consequently, the application execution unit <b>65</b> can obtain accurate information about a rotational angle of the operating device <b>42</b> relative to the gyro reference axis by means of integration of the obtained output signal.
In the following, an example function of the calibration unit <b>63</b> will be described based on the functional block diagram in <figref idrefs="DRAWINGS">FIG. 9</figref>. As shown, the calibration unit <b>63</b> comprises, in terms of functions, a reference value acquiring unit <b>63</b><i>a </i>and a state value calculation unit <b>63</b><i>b</i>. These functions are realized, for example, by the MPU <b>11</b> executing system software stored in the entertainment system <b>10</b>.
The reference value acquiring unit <b>63</b><i>a </i>obtains an output value in accordance with a predetermined holding state (a reference state) of the operating device <b>42</b> as a reference value. The reference value is obtained, for example, by measuring a sensor output while holding the operating device <b>42</b> in the reference state during manufacture thereof, and stored in the storage unit <b>56</b>. Specifically, the reference value acquiring unit <b>63</b><i>a </i>reads data from the storage unit <b>56</b>, for example, when the power of the entertainment system <b>10</b> is turned on, or when the operating device <b>42</b> is connected to the entertainment system <b>10</b>, to thereby obtain the reference value. The read reference value is stored in the main memory <b>20</b>.
Here, a specific example of a reference value to be stored in the storage unit <b>56</b> will be described. The reference value to be stored in the storage unit <b>56</b> contains an output value (a first reference value) in accordance with a predetermined first holding state (a first reference state) of the operating device <b>42</b> and an output value (a second reference value) in accordance with a second predetermined holding state (a second reference state) which is different from the first reference state. The first and second reference states are determined based on the range of holding states of the operating device <b>42</b> that particularly requires accuracy of an output value.
The storage unit <b>56</b> may additionally contain an output value (a third reference value) in accordance with a predetermined third holding state (a third reference state). In this case, for example, the third reference state is a holding state between the first and second reference states, and indicates a standard holding state of the operating device <b>42</b>, such as a state with no acceleration detected by the acceleration sensor <b>51</b>. It should be noted that, when the standard holding state of the operating device <b>42</b> coincides with either the first or second reference state, the storage unit <b>56</b> does not necessarily hold the third reference value corresponding to the third reference state.
These reference states are determined in advance with respect to each of the plurality of kinds of output value to be calibrated by the calibration unit <b>63</b>. In this embodiment, three kinds of output value in accordance with the accelerations of the three reference axes, to be measured by the acceleration sensor <b>51</b>, are to be calibrated. Therefore, a plurality of reference states are defined with respect to each of the three reference axes. An output value in accordance with the reference state of each reference axis is measured, and stored as a reference value in the storage unit <b>56</b>.
Specifically, in connection with an output value in accordance with the acceleration of each of the x and y axes, a state in which the positive direction of each axis coincides with the vertical direction (the gravity direction) is referred to as a first reference state, with a first reference value being an output value in accordance with the gravitational acceleration of +1 G. A state in which the negative direction of each axis coincides with the vertical direction is referred to as a second reference state, with a second reference value being an output value in accordance with the gravitational acceleration of −1 G. Further, a state in which each axis is perpendicular to the vertical direction is referred to as a third reference state, with a third reference value being an output value in accordance with the gravitational acceleration of 0 G. <figref idrefs="DRAWINGS">FIGS. 10A</figref>, <b>10</b>B, and <b>10</b>C explain examples of reference states for an output value in accordance with the acceleration of the x axis. <figref idrefs="DRAWINGS">FIG. 10A</figref> shows the first reference state, <figref idrefs="DRAWINGS">FIG. 10B</figref> shows the second reference state, and <figref idrefs="DRAWINGS">FIG. 10C</figref> shows the third reference state. All three drawings show the operating device <b>42</b> shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, viewed in the positive direction of the y axis. The state shown in <figref idrefs="DRAWINGS">FIG. 10C</figref> is the third reference state for the y axis.
As to an output value in accordance with the acceleration of the z axis, a state in which the z axis is perpendicular to the vertical direction is referred to as a first reference state, with the first reference value being an output value in accordance with the gravitational acceleration of 0 G. A state in which the negative direction of the z axis coincides with the vertical direction is referred to as a second reference state, with the second reference value being an output value in accordance with the gravitational acceleration of −1 G.
<figref idrefs="DRAWINGS">FIG. 11</figref> explains an example of reference values stored in the storage unit <b>56</b> of the operating device <b>42</b> in the above-described example. In this example, no third reference state is available for the z axis because it is considered that the user rarely inclines the operating device <b>42</b> upside down, and therefore, accurate measurement in the range between −1 G and +1 G for the x and y axes and the range between −1 G and 0 G for the z axis is required when the acceleration sensor <b>51</b> is used to detect the degree of inclination of the operating device <b>42</b>.
The state value calculation unit <b>63</b><i>b </i>calculates, and outputs, a state value Ds indicative of the holding state of the operating device <b>42</b> in accordance with an output value Da, based on the output value Da, acquired by the output value acquiring unit <b>61</b>, and the first and second reference values, acquired by the reference value acquiring unit <b>63</b><i>a </i>and stored in the main memory <b>20</b>. That is, the state value calculation unit <b>63</b><i>b </i>calculates a state value Ds every time the output value acquiring unit <b>61</b> obtains an output value Da, and outputs the state value Ds, or the output value Da subjected to correction. It should be noted that the state value calculation unit <b>63</b><i>b </i>may calculate a state value Ds, additionally using the third reference value.
Here, the calculation of a state value Ds by the state value calculation unit <b>63</b><i>b </i>(a state value calculation process) will be specifically described. Initially, calculation of a state value Ds by correcting an output value Da in accordance with the acceleration of the x axis will be described. In this case, the state value calculation unit <b>63</b><i>b </i>carries out linear interpolation using the calculation expression below and the first and second reference values, to thereby calculate a state value Ds.
<maths id="MATH-US-00001" num="00001"><math overflow="scroll"><mtable><mtr><mtd><mrow><mi>Ds</mi><mo>=</mo><mrow><mrow><mfrac><mrow><mi>C</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn><mo></mo><mi>x</mi></mrow><mrow><mrow><mi>R</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn><mo></mo><mi>x</mi></mrow><mo>-</mo><mrow><mi>R</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn><mo></mo><mi>x</mi></mrow></mrow></mfrac><mo></mo><mrow><mo>(</mo><mrow><mi>Da</mi><mo>-</mo><mrow><mi>R</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>3</mn><mo></mo><mi>x</mi></mrow></mrow><mo>)</mo></mrow></mrow><mo>+</mo><mrow><mi>C</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn><mo></mo><mi>x</mi></mrow></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><br /> wherein R<b>1</b><i>x</i>, R<b>2</b><i>x</i>, and R<b>3</b><i>x </i>respectively represent the first, second, and third reference values, and C<b>1</b><i>x </i>and C<b>2</b><i>x </i>respectively represent predetermined correction parameters.
With the operating device <b>42</b> in the third reference state (the state corresponding to the gravitational acceleration 0 G), the output value Da is assumed to take a third reference value R<b>3</b><i>x</i>. In this case, the state value Ds calculated in the state value calculation process takes a fixed value C<b>2</b><i>x</i>. Therefore, even when the third reference value R<b>3</b><i>x </i>varies due to the individual differences of the sensors or the like, the state value calculation unit <b>63</b><i>b </i>always outputs the value C<b>2</b><i>x </i>as a state value indicative of the third reference state of the operating device <b>42</b>. The value C<b>2</b><i>x </i>is set at the median (512, here) of the range of values which can be taken by a digital signal output from the A/D converter <b>54</b><i>b</i>, for example.
The state value Ds, calculated in the state value calculation process, takes a value proportional to the output value Da, with the coefficient C<b>1</b><i>x</i>/(R<b>1</b><i>x</i>−R<b>2</b><i>x</i>) as a proportional constant. As a result, the difference between the state value indicative of the first reference state and the state value indicative of the second reference state takes a predetermined value C<b>1</b><i>x</i>, irrespective of the individual difference of the sensor or the like. Therefore, even if the output values Da should vary differently between the first and second reference states, relative to the user operation by the same amount due to the individual differences of the sensors or the like, the state value Ds after correction varies constantly relative to the user operation by the same amount. That is, the change amount of the state value Ds relative to that of the gravitational acceleration remains constant. With the above, the state value Ds correctively indicates the holding state of the operating device <b>42</b> in the range (the focus range) between the first and second reference states, with the state value C<b>2</b><i>x </i>indicative of the third reference state, described above, as a reference. Consequently, the accuracy of the state value Ds can be improved.
It should be noted that correction of the output value Da in accordance with the acceleration of the y axis can be achieved using a calculation expression similar to that for the x axis, in which C<b>1</b><i>y </i>and C<b>2</b><i>y </i>may be values equivalent to C<b>1</b><i>x </i>and C<b>2</b><i>x</i>, respectively.
In the following, correction of an output value Da in accordance with the acceleration of the z axis will be described. In this case, the state value calculation unit <b>63</b><i>b </i>calculates the state value Ds, using the following calculation expression.
<maths id="MATH-US-00002" num="00002"><math overflow="scroll"><mtable><mtr><mtd><mrow><mi>Ds</mi><mo>=</mo><mrow><mrow><mfrac><mrow><mi>C</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn><mo></mo><mi>z</mi></mrow><mrow><mrow><mi>R</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn><mo></mo><mi>z</mi></mrow><mo>-</mo><mrow><mi>R</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn><mo></mo><mi>z</mi></mrow></mrow></mfrac><mo></mo><mrow><mo>(</mo><mrow><mi>Da</mi><mo>-</mo><mrow><mi>R</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn><mo></mo><mi>z</mi></mrow></mrow><mo>)</mo></mrow></mrow><mo>+</mo><mrow><mi>C</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn><mo></mo><mi>z</mi></mrow></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><br /> Similar to the expression (1), R<b>1</b><i>z </i>and R<b>2</b><i>z </i>indicate the first and second reference values, respectively, and C<b>1</b><i>z </i>and C<b>2</b><i>z </i>represent predetermined correction parameters, respectively. According to the expression (2), the first reference value R<b>1</b><i>z </i>and the second reference value R<b>2</b><i>z </i>are always corrected to be the fixed values C<b>2</b><i>z </i>and (C<b>2</b><i>z</i>-C<b>1</b><i>z</i>), respectively.
As for the z axis, as described above, the first reference state corresponds to the gravitational acceleration 0 G, while the second reference state corresponds to the gravitational acceleration −1 G. The range between the first and second reference states corresponds to a half of the focus range in the case of the x and y axes. Therefore, with
<maths id="MATH-US-00003" num="00003"><math overflow="scroll"><mrow><mrow><mi>C</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn><mo></mo><mi>z</mi></mrow><mo>=</mo><mrow><mrow><mfrac><mn>1</mn><mn>2</mn></mfrac><mo></mo><mi>C</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn><mo></mo><mi>x</mi></mrow><mo>=</mo><mrow><mfrac><mn>1</mn><mn>2</mn></mfrac><mo></mo><mi>C</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn><mo></mo><mi>y</mi></mrow></mrow></mrow></math></maths><br /> it is possible to control such that, for any reference axis, the change amount of the state value Ds becomes constant relative to the same change amount of the gravitational acceleration. Further, in the expression (2), a first reference value is used instead of the third reference value in the expression (1), and the first reference state in connection with the z axis corresponds to the gravitational acceleration 0 G, similar to the third reference states in connection with the x and y axes. Therefore, by defining C<b>2</b><i>z</i>=C<b>2</b><i>x</i>=C<b>2</b><i>y</i>, it is possible to control such that the state values Ds in connection with the respective reference axes take the same value with respect to the gravitational acceleration 0 G.
When the state value Ds, calculated using the above-described calculation expression, is not included in the range of the values which can be taken by the digital output signal output by the A/D converter <b>54</b><i>b</i>, the state value calculation unit <b>63</b><i>b </i>may perform correction such that the state value Ds is included in the range. That is, the state value calculation unit <b>63</b><i>b </i>corrects such that the calculated state value is included in the range defined by the predetermined upper and lower limits. Specifically, in this embodiment, 0 is output as a state value Ds when the value calculated using the calculation expression is smaller than the lower limit value 0, and 1023 is output when the value exceeds the upper limit value 1023. With the above, it is possible to correct the entire output value Da so as to be included in the range of values which can be taken by the original output value Da, and output as a state value Ds, while ensuring the accuracy of the state value Ds in the focus range. With the above, when an application program is designed based on the assumption, for example, that a digital value having ten-bit resolution is obtained as an output value in accordance with the acceleration, the application execution unit <b>65</b> executes the application program intact, to thereby realize a process in accordance with the state value Ds subjected to calibration by the calibration unit <b>63</b>.
With the above-described function, the calibration unit <b>63</b> can calculate a state value Ds, based on the output value Da, obtained by the output value acquiring unit <b>61</b>, and the first and second reference values, obtained in advance in accordance with the first and second reference states, respectively, to thereby perform correction to absorb individual differences between the operating device <b>42</b>, while ensuring accuracy of the state value Ds in the required range.
In the following, a functional example of the filtering unit <b>64</b> will be described based on the functional block diagram in <figref idrefs="DRAWINGS">FIG. 12</figref>. As shown, the filtering unit <b>64</b> comprises, in terms of functions, a parameter set holding unit <b>64</b><i>a</i>, a parameter set selection unit <b>64</b><i>b</i>, and a filtering execution unit <b>64</b><i>c</i>. The function of the parameter set holding unit <b>64</b><i>a </i>can be realized by the main memory <b>20</b>, or the like. The functions of the parameter set selection unit <b>64</b><i>b </i>and the filtering execution unit <b>64</b><i>c </i>are realized by the MPU <b>11</b> executing a library program, provided in the form of being stored in the optical disc <b>36</b> together with the application program, or the like.
The parameter set holding unit <b>64</b><i>a </i>holds a plurality of parameter sets, each containing at least one parameter for use in predetermined filtering. Specifically, the parameter set holding unit <b>64</b><i>a </i>holds a table showing, in association with each other, a parameter set number and a parameter set which includes a predetermined number of parameters. <figref idrefs="DRAWINGS">FIG. 13</figref> is a diagram explaining an example of parameter sets stored in the table.
According to an instruction from the application execution unit <b>65</b>, the parameter set selection unit <b>64</b><i>b </i>selects one parameter set from among those held in the parameter set holding unit <b>64</b><i>a</i>. For example, the parameter set selection unit <b>64</b><i>b </i>may select a parameter set associated with the parameter set number notified by the application execution unit <b>65</b>.
The filtering execution unit <b>64</b><i>c </i>filters the state value Ds, using the parameter set selected by the parameter set selection unit <b>64</b><i>b</i>. Specifically, the filtering execution unit <b>64</b><i>c </i>obtains state values Ds, output by the state value calculation unit <b>63</b><i>b </i>every predetermined period of time, as a state value array, and filters the state value array.
The filtering by the filtering execution unit <b>64</b><i>c </i>is a low-pass filtering process for filtering out a high frequency component in the state value array, for example. In the following, a specific example of low-pass filtering by the filtering execution unit <b>64</b><i>c </i>will be described below.
In this case, each parameter set held in the parameter set holding unit <b>64</b><i>a </i>contains a parameter which is a filtering coefficient. Suppose that one parameter set comprises parameters P<b>1</b>, P<b>2</b>, P<b>3</b>, P<b>4</b>, and P<b>5</b>. In this case, the low-pass filtering is realized using the following calculation expression.
<maths id="MATH-US-00004" num="00004"><math overflow="scroll"><mrow><mo> </mo><mtable><mtr><mtd><mrow><mo>{</mo><mtable><mtr><mtd><mrow><mi /><mo></mo><mrow><mrow><mi>u</mi><mo></mo><mrow><mo>[</mo><mi>n</mi><mo>]</mo></mrow></mrow><mo>=</mo><mrow><mrow><mi>P</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mn>1</mn><mo>·</mo><mrow><mi>u</mi><mo></mo><mrow><mo>[</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>]</mo></mrow></mrow></mrow></mrow><mo>+</mo><mrow><mi>P</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mn>2</mn><mo>·</mo><mrow><mi>u</mi><mo></mo><mrow><mo>[</mo><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow><mo>]</mo></mrow></mrow></mrow></mrow><mo>+</mo><mrow><mi>D</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mi>s</mi><mo></mo><mrow><mo>[</mo><mi>n</mi><mo>]</mo></mrow></mrow><mo></mo><mstyle><mspace width="12.8em" height="12.8ex" /></mstyle><mo></mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></mrow></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi /><mo></mo><mrow><mrow><mi>D</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><msup><mi>s</mi><mi>′</mi></msup><mo></mo><mrow><mo>[</mo><mi>n</mi><mo>]</mo></mrow></mrow></mrow><mo>=</mo><mrow><mrow><mi>P</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mn>3</mn><mo>·</mo><mrow><mi>u</mi><mo></mo><mrow><mo>[</mo><mi>n</mi><mo>]</mo></mrow></mrow></mrow></mrow><mo>+</mo><mrow><mi>P</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mn>4</mn><mo>·</mo><mrow><mi>u</mi><mo></mo><mrow><mo>[</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>]</mo></mrow></mrow></mrow></mrow><mo>+</mo><mrow><mi>P</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mn>5</mn><mo>·</mo><mrow><mi>u</mi><mo></mo><mrow><mo>[</mo><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow><mo>]</mo></mrow></mrow></mrow><mo></mo><mstyle><mspace width="10.em" height="10.ex" /></mstyle><mo></mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></mrow></mrow></mrow></mtd></mtr></mtable></mrow></mtd><mtd><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle></mtd></mtr></mtable></mrow></math></maths>
Here, Ds[n] represents a state value obtained in the n<sup>th </sup>sampling, and Ds′ [n] represents a state value after being filtered. U[n] is a value temporarily calculated using the expression (3) for every sampling, and u[n]'s for a predetermined number of past times are temporarily stored in the main memory <b>20</b> for use in calculation using the expressions (3) and (4). It should be noted that the expressions represent an example of low-pass filtering using a secondary IIR (Infinite Impulse Response) filter. The use of such a filter makes it possible to remove a noise signal without significantly sacrificing the speed at which to respond to the change of the state value Ds relative to the user operation.
In the above example, suppose that the plurality of parameter sets held in the parameter set holding unit <b>64</b><i>a </i>correspond to different cut-off frequencies. In this case, frequency components in different ranges are removed through low-pass filtering using the respective parameter sets. Specifically, when a sampling frequency 100 Hz is used to obtain a state value Ds, three sets of filter coefficients, respectively corresponding to the cut-off frequencies 25 Hz, 10 Hz, and 5 Hz, are held as parameter sets. Then, the state value array is filtered using a parameter set selected from among the three parameter sets in response to an instruction from the application execution unit <b>65</b>, to thereby filter out a frequency component equal to or larger than the cut-off frequency.
With the above, in the entertainment system <b>10</b>, when accurate sensitively relative to the operation applied to the operating device <b>42</b> is not required, such as when a menu screen is shown on the monitor <b>26</b> and the user is encouraged to select a menu item, application of filtering using a lower cut-off frequency enables efficient removal of a noise signal from the state value array. On the contrary, when the application execution unit <b>65</b> controls the motion of an object (such as a game character, a pointer, or the like) shown on the screen in response to a subtle operation carried out by the user with the operating device <b>42</b>, for example, filtering using a higher cut-off frequency is applied, so that responsiveness with respect to the user operation, and thus the user operability, can be enhanced.
It should be noted that the filtering unit <b>64</b> may filter the three state value arrays indicative of the accelerations for the reference axes, output from the acceleration sensor <b>51</b>, using either a common parameter set or different parameter sets.
For example, the parameter set holding unit <b>64</b><i>a </i>may hold parameter sets corresponding to each of a plurality of kinds of state value array so as to be associated with one parameter set number. In this case, the parameter set selection unit <b>64</b><i>b </i>selects one parameter set with respect to each of the plurality of kinds of state value array according to an instruction from the application execution unit <b>65</b>, and the filtering execution unit <b>64</b><i>c </i>filters each of the plurality of kinds of state value array, using the selected parameter set.
With the above, for example, each of the state value arrays indicative of the accelerations for the respective reference axes, output by the acceleration sensor <b>51</b>, can be subjected to low-pass filtering using different cut-off frequencies. Therefore, in a case where it is expected that a noise signal will be caused with respect to a particular reference axis in a specific direction according to the content of a process carried out by the application execution unit <b>65</b> (for example, when the button formed on the specific surface of the operating device <b>42</b> is used), the state value array relevant to that reference axis is subjected to low-pass filtering using a lower cut-off frequency, so that a noise signal can be removed under a desired condition. Also, in order to realize a process in accordance with the operating device <b>42</b> being inclined by the user in a particular direction, the reference axes other than the reference axis corresponding to that direction are subjected to low-pass filtering using a lower cut-off frequency, so that a noise signal can be removed without deteriorating the sensitivity to the user operation.
The application execution unit <b>65</b> carries out a process in accordance with the holding state of the operating device <b>42</b>, using the state value Ds′, obtained through filtering by the filtering unit <b>64</b>. As described above, by changing the condition of the filtering by the filtering unit <b>64</b> according to an instruction from the application execution unit <b>65</b>, the entertainment system <b>10</b> can realize filtering in accordance with the content of the process carried out by the application execution unit <b>65</b>. This can enhance the user operability.
It should be noted that the present invention is not limited to the above-described embodiment, and various modified embodiments are achievable.
For example, although an example is described in the above in which the main body of the entertainment system <b>10</b> functions as an operating device control device for controlling a predetermined reference signal input to the signal output unit <b>53</b>, the operating device control device may be incorporated into the operating device <b>42</b>.
When a voltage signal output by the gyro sensor <b>52</b> does not need to be amplified by the amplification circuit, or the like, the signal output unit <b>53</b> may be realized, for example, by the main body of the entertainment system <b>10</b> by carrying out a predetermined program. That is, the signal output unit <b>53</b> is realized as software having a function for outputting a digital signal, as an output signal, in accordance with the difference between a digital signal in accordance with the voltage signal output by the gyro sensor <b>42</b> and a predetermined reference signal (a digital signal).
Also, although it is described in the above that calibration and filtering are carried out based on an output value Da in accordance with an output of the acceleration sensor <b>51</b>, the entertainment system <b>10</b> may carry out calibration by the calibration unit <b>63</b> and filtering by the filtering unit <b>64</b> based on an output value Dg in accordance with an output from the gyro sensor <b>52</b>. In this case, the reference state may not be a state in which the operating device <b>42</b> remains still in a predetermined posture, as described above in connection with the acceleration sensor <b>51</b>, but may be a state in which the operating device <b>42</b> rotates at a predetermined angular velocity. Alternatively, the entertainment system <b>10</b> may obtain an output value in accordance with the holding state of the operating device <b>42</b>, using a motion sensor, or the like, for detecting any other posture and motion of the operating device <b>42</b>, and calibrate and/or filter the output value.
The filtering unit <b>64</b> may carry out a different kind of filtering process, and is not limited to filtering using a low-pass filter, relative to a state value array.
Contents5
16 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16
Every citation, both waysCites: the store holds 5 of 6
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2009195501A1 | Cited by | United States of America | Pre-grant |
| US2010007528A1 | Cited by | United States of America | Pre-grant |
| US8384565B2 | Cited by | United States of America | Search report |
| JP2004145378A | Cites | Japan | Applicant |
| US2005071118A1 | Cites | United States of America | Applicant |
| US5453758A | Cites | United States of America | Search report |
| US7225101B2 | Cites | United States of America | Applicant |
| JPH0744315A | Cites | Japan | Applicant |
| Japanese Patent Office, International Search Report, issued in corresponding International Application No. PCT/JP2007/066258, Dec. 4, 2007, 1 pages and 1-page English language translation. | Non-patent | – | Applicant |
| Japanese Patent Office, "Internationa Preliminary Report on Patentability", issued in corresponding International Application No. PCT/JP2007/066258, Apr. 2, 2009, 7 pages. | Non-patent | – | Applicant |
| Japanese Patent Office, "Notice of Rejection", issued in corresponding Japanese Application No. 2006-256325, Aug. 18, 2009, 3 pages and 1-page partial English language translation. | Non-patent | – | Applicant |
| Chinese Patent Office, "Notification of the Second Office Action", issued in corresponding Chinese Application No. 200780004427.7, Aug. 5, 2010, 14 pages. | Non-patent | – | Applicant |
9 members in 5 offices
Priority claims8
| Document | Office | Kind | Date |
|---|---|---|---|
| 2006256325 | Japan | A | |
| 2006256325 | Japan | A | |
| 2007066258 | Japan | W | |
| 2007066258 | Japan | W | |
| 2006256325 | – | – | – |
| JP20060256325 | – | – | – |
| PCTJP2007066258 | – | – | – |
| WO2007JP66258 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| WO2008035531A1 | World Intellectual Property Organization (WIPO) | A1 | |
| JP2008077426A | Japan | A | |
| CN101379457A | China | A | |
| EP2065789A1 | European Patent Office (EPO) | A1 | |
| US2009183567A1 | United States of America | A1 | |
| JP4509988B2 | Japan | B2 | |
| CN101379457B | China | B | |
| US7933729B2This record | United States of America | B2 | |
| EP2065789A4 | European Patent Office (EPO) | A4 |
48 transactions on the USPTO file
Allowed after 2 non-final rejections.
- Non-final rejections
- 2
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Response to Reasons for AllowanceREAS | REAS | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Transfer Inquiry to GAUTI1050 | TI1050 | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Notice of DO/EO Acceptance MailedM903 | M903 | |
| Sent to Classification ContractorPGPC | PGPC | |
| 371 Completion Date371COMP | 371COMP | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Request for Foreign Priority (Priority Papers May Be Included)RQPR | RQPR | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Initial Exam Team nnIEXX | IEXX |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 07933729
- Publication, DOCDB
- 7933729
- Publication, EPODOC
- US7933729
- Application
- 12374779
- Application, DOCDB
- 37477907
- Application, EPODOC
- US20070374779
Titles
- English
- Operation device control apparatus, operation device control method, information storage medium, and operation device
Patent term adjustment
- A delay
- +33 daysthe office missed an examination deadline
- Applicant delay
- −14 days
- Net adjustment
- 19 days
Classification
- CPC, 14
- G01C19/5776
- A63F13/22
- A63F2300/105
- G01C25/005
- G06F3/0346
- G06F3/038
- A63F2300/1025
- A63F13/533
- A63F2300/308
- A63F2300/1018
- A63F2300/1087
- A63F13/23
- A63F13/213
- A63F13/211
- IPC, 5
- G01P21 00
- A63F13 211
- A63F13 24
- G01C19 00
- G01P21 02
- USPC, 1
- 702092000