Abstract:
A pointing device for a computer system includes: a first movement sensor for detecting movements of the device along a first axis and a second axis; a second movement sensor, for detecting movements of the device along a third axis not coplanar with the first and second axes; and a processing unit associated to the movement sensors for producing a plurality of movement signals indicating the movement of the device along the first, second, and third axes. The processing unit includes a control stage, for controlling the production of the movement signals on the basis of a response of the second movement sensor.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a pointing device for a computer system with automatic detection of lifting and to a relative control method. 
     2. Description of the Related Art 
     As is known, by now all computer systems and other electronic apparatuses equipped with graphic interface are provided with pointing devices, which enable the user to interact in an extremely simple and intuitive way. The most widespread pointing device, namely, the mouse, is provided with a shell, within which a motion transducer is housed. The shell is gripped and translated by the user, generally along a horizontal sliding surface, and the motion transducer sends signals indicating the path followed by the mouse to the computer system. The signals are then processed by the computer system for updating the position of a cursor displayed by the graphic interface. Normally, the mouse is also equipped with one or more pushbuttons, which the user can use for issuing further commands to the computer system. 
     As regards the movement transducer, different solutions have been proposed. Amongst the most recent and most promising ones, is the use of inertial sensors, in particular two-axes accelerometers made using MEMS (micro-electro-mechanical systems) technology, which detect the accelerations impressed to the mouse by the user along a sliding surface (hereinafter, mice based upon inertial sensors will, for reasons of simplicity, be referred to as “inertial mice”, just as the term “optical mice” is commonly applied to mice that use optical motion transducers). The data regarding accelerations are supplied to a processing unit and integrated in time a first time and a second time, for calculating the instantaneous velocity and the instantaneous position of the mouse, respectively. 
     A drawback, which regards in particular, but not exclusively, inertial mice, occurs when the user needs to displace the mouse itself without the cursor displayed on the screen of the computer system being moved accordingly (for example, because the mouse has reached an edge of the purposely provided mouse-pad on which it is resting, or in any case the space available in one direction has been used up). Whereas, in the case of optical or electromechanical mice, the movement transducer must necessarily be in contact with or at least in the proximity of the surface of sliding and does not work when it is separated therefrom, inertial sensors continue to operate even when the mouse is lifted. It is therefore not possible, with simple operations, to recover space of maneuver for the user, without moving the cursor displayed by the computer system. In effect, also mice with optical or electromechanical movement transducers are not altogether immune from the problem described, even though they are less sensitive. In fact, an optical movement transducer not correctly coupled to the sliding surface of the mouse in any case receives light stimuli that could be wrongly interpreted. In an electromechanical movement transducer, sliding is possible between the mechanical parts (balls, rollers) even when the mouse is picked up from the sliding surface. 
     BRIEF SUMMARY OF THE INVENTION 
     One embodiment of the present invention is a pointing device for a computer system and a method for controlling said device that overcome the above described drawbacks. 
     According to one embodiment of the present invention, a pointing device for a computer system with automatic detection of the motion state and a method for controlling said device are provided, as defined in claims  1  and  11 , respectively. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S) 
       For a better understanding of the invention, there is now described an embodiment thereof, purely by way of non-limiting example and with reference to the attached drawings, wherein: 
         FIG. 1  is a partially sectioned schematic top plan view of a pointing device for a computer system that incorporates one embodiment of the present invention; 
         FIG. 2  is a partially sectioned side view of the device of  FIG. 1 ; 
         FIG. 3  is a simplified block diagram of the device of  FIG. 1 ; 
         FIG. 4  is a more detailed block diagram regarding a part of the device illustrated in  FIGS. 1-3 ; 
         FIG. 5  is a flowchart for a procedure implemented by the device according to one embodiment of the invention; 
         FIG. 6  is a block diagram of a part of the device of  FIG. 4 , which implements the procedure of  FIG. 5 ; and 
         FIG. 7  shows a table regarding a detail of  FIG. 6 . 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     With reference to  FIGS. 1-3 , a pointing device of a computer system, in particular a mouse  1 , comprises a shell  2 , a board  3  housed within the shell  2 , an inertial sensor  5 , and a microcontroller  6 , which are in turn located on the board  3  and form a displacement transducer of the mouse  1 . The mouse  1  is also equipped with an interface  7  for connection with a computer system  8  for communicating information and commands under the control of a user. In particular, the interface  7  is of any standard type suitable for supporting communication with the computer system  8 , for example, of a serial RS  232  or USB type. Alternatively, the interface  7  enables a wireless connection through an optical (IR) or radiofrequency coupling, for example using Bluetooth technology. The mouse  1  is moreover equipped with one or more pushbuttons and/or wheels  4  for issuing commands to the computer system  8  under the control of a user. 
     The inertial sensor  5  is connected to the board  3  so as to be fixed with respect to the shell  2  and comprises a first, two-axes, accelerometer  5   a  and a second, single-axis, accelerometer  5   b  for detecting accelerations along three independent directions. The first accelerometer  5   a  and the second accelerometer  5   b  are both of a micro-electro-mechanical type and are made with MEMS technology; for example, the first accelerometer  5   a  is of the type described in the European patent application No. EP-A-1365211, filed on May 21, 2002, and the second accelerometer  5   b  is of the type described in the European patent application No. EP-A-1253399, filed on Apr. 27, 2001 or in U.S. Pat. No. 5,955,668. Alternatively, the inertial sensor  5  can comprise three single-axis accelerometers oriented in mutually perpendicular directions, or a single tri-axial accelerometer. 
     In greater detail, the first accelerometer  5   a  has a first detection axis X and a second detection axis Y, which are mutually perpendicular and parallel to a sliding surface PS of the mouse  1  (generally a horizontal plane, as in  FIG. 2 ). The first detection axis X and the second detection axis Y are, moreover perpendicular and parallel, respectively, to a (vertical) longitudinal plane PL of symmetry of the shell  2 . The second accelerometer  5   b  has a third detection axis Z, which is not coplanar with and is preferably perpendicular to the plane defined by the first detection axis X and the second detection axis Y. The third axis Z is therefore substantially vertical when the mouse  1  is resting on the surface of sliding PS. 
     The inertial sensor  5  is connected to the microcontroller  6  to provide a first analog acceleration signal S X , a second analog acceleration signal S Y , and a third analog acceleration signal S Z  ( FIG. 3 ) in response to the accelerations to which the shell  2  and the inertial sensor  5  are subjected along the first, second, and third axes of detection X, Y, Z, respectively. 
     The microcontroller  6  is connected to the computer system  8  through the interface  7  ( FIG. 3 ) and supplies a first acceleration signal A X  and a second acceleration signal A Y , a first velocity signal V X  and a second velocity signal V Y , and a first displacement signal P X  and a second displacement signal P Y , all of which are of a numeric type and are calculated starting from the first and second analog acceleration signals S X , S Y . In a pre-determined operating mode, which will be described in greater detail hereinafter, the microcontroller  6  supplies also a third acceleration signal A Z , a third velocity signal V Z , and a third displacement signal P Z , which are of a numeric type and are calculated starting from the third analog acceleration signal S Z . In a way in itself known, the computer system  8  displays a cursor on a screen and determines its position on the basis of the signals received from the mouse  1 . 
     In greater detail, the microcontroller  6  comprises a reading unit  9  and a processing unit  10 . The reading unit  9  is connected to the inertial sensor  5  for receiving the first, second, and third analog acceleration signals S X , S Y , S Z . In a way in itself known, moreover, the reading unit  9  supplies the inertial sensor  5  with control signals V FB  and clock signals V CK  for reading; and the processing unit  10  with the first, second and third acceleration signals A X , A Y , A Z , obtained from the analog-to-digital conversion of the first, second and third analog acceleration signals S X , S Y , S Z , respectively. 
     As illustrated in the block diagram of  FIG. 4 , the processing unit  10  comprises a first calculation line  11 , a second calculation line  12 , a third calculation line  13 , and a control stage  15 . The first, second and third calculation lines  11 ,  12 ,  13  each comprise a respective integration stage  16  and a respective buffer  17 , which are cascade-connected. The integration stages  16  of the first, second and third calculation lines  11 ,  12 ,  13  receive, from the reading unit  9 , the first, second and third acceleration signals A X , A Y , A Z , respectively, and integrate them a first time and a second time. In this way, the integration stage  16  of the first calculation line  11  generates and supplies the respective buffer  17  with the first velocity signal V X  and the first displacement signal P X . The integration stage  16  of the second calculation line  12  generates and supplies the respective buffer  17  with the second velocity signal V Y  and the second displacement signal P Y . Finally, the integration stage  16  of the third calculation line  13  generates and supplies the respective buffer  17  with the third velocity signal V Z  and the third displacement signal P Z . When the buffers  17  are enabled by the control stage  15 , the values contained therein are made available to the interface  7  for transmission to the computer system  8 . 
     The control stage  15  is connected to the reading unit  9  for receiving the third acceleration signal A z , which is used for selecting one between a first operating mode, or 2D mode, and a second operating mode, or 3D mode, and, moreover, for disabling temporarily the first and second calculation lines  11 ,  12  when the mouse  1  is lifted off the sliding surface and the 2D mode is selected. For this purpose, the control stage  15  generates a first control signal MODE and a second control signal STBY. The first control signal MODE has a first value 2D, for the 2D mode, and a second value 3D, for the 3D mode, and is supplied to the third calculation line  13 , which is selectively enabled in the 3D mode and disabled in the 2D mode. The second control signal STBY has a first value T, when the mouse  1  is lifted off the sliding surface PS and the 2D mode is activated, and a second value F otherwise. The first and second calculation lines  11 ,  12  are selectively enabled and disabled in the presence, respectively, of the second value F and of the first value T of the second control signal STBY. 
     In the 2D mode the mouse  1  is configured to operate as a conventional mouse and sends only the first and second velocity signals V X , V Y  and the first and second displacement signals P X , P Y  to the computer system  8 . The second accelerometer  5   b , instead, is used for monitoring lifting of the mouse  1  from the sliding surface PS, but the third calculation line  13  is disabled and does not supply information to the computer system  8 . As soon as the mouse  1  is lifted, the control stage detects a non-zero acceleration along the third detection axis Z using the third acceleration signal A Z . In this case, the second control signal STBY is set at the first value T, and the first and second calculation lines  11 ,  12  are temporarily disabled, until the mouse  1  is again resting on the sliding surface PS. In this condition, which in effect represents a third operating mode, which can be selected transitorily, the control stage  15  completely inhibits issuing to the computer system  8  of signals indicative of the motion of the mouse  1  and hence prevents undesirable displacements of the cursor appearing on the display of the computer system  8  itself. 
     If the third acceleration signal A Z  indicates that the mouse  1  has remained lifted from the surface of sliding PS for longer than a pre-determined switching interval T COM , the control stage  15  selects the 3D mode, in which the first, second and third calculation lines  11 ,  12 ,  13  are all enabled. The 3D mode is maintained as long as the mouse  1  remains lifted from the surface of sliding PS. In this configuration, also the third acceleration signal A Z , coming from the second accelerometer  5   b , is processed by the third calculation line  13 , and hence information regarding the motion of the mouse  1  in three dimensions is sent to the computer system  8 . 
     In practice, the control stage  15  executes the procedure illustrated in the flowchart of  FIG. 5 . At start-up of the computer system  8 , the mouse  1  is initialized (block  100 ) and set in the 2D mode (block  110 ). Then, in order to establish whether the mouse  1  has been lifted, the absolute value of the third acceleration signal A Z  is compared with a threshold TH (block  120 ). The threshold TH can be pre-determined and is preferably programmable in a set-up step of the mouse  1 . Alternatively, the threshold TH is continuously recalculated when the mouse  1  is in 2D mode, to take into account the effect of the force of gravity on the second accelerometer  5   b , which can vary according to the inclination of the sliding surface PS. In this case, the fact that the contribution of the force of gravity is substantially constant if the mouse  1  moves along a plane, such as the sliding surface PS, is exploited, and such a contribution can be estimated by filtering the third acceleration signal A Z  with a low-pass filter, which extracts the low-frequency spectral components. In both cases, the threshold TH is determined so as to be exceeded even when the mouse  1  is subjected to minimal accelerations along the third axis Z, such as the accelerations caused by involuntary movements of the user when the mouse  1  is kept lifted up. It should be noted that the effects of involuntary movements can be suppressed to prevent undesirable displacements of the cursor when the mouse  1  is in the 3D mode. For this purpose, for example, it is possible to envisage appropriate algorithms of integration for the integrators  16 , which are selectively activatable when the first control signal MODE has the second value 3D. 
     If the absolute value of the third acceleration signal A Z  is lower than the threshold TH (output NO from block  120 ), the second control signal is set at the second value F (block  130 ), and the test of block  120  is carried out again. 
     If the absolute value of the third acceleration signal A Z  is not lower than the threshold TH (output YES from block  120 ), the control stage  15  checks (block  140 ) whether the mouse  1  has remained lifted up for a time longer than the switching interval T COM , i.e., whether, in said interval, the threshold TH has been exceeded substantially without any interruption. If the switching interval T COM  has not yet elapsed (output NO from block  140 ), the second control signal STBY is set at the first value T for temporary disabling of the first and second calculation lines  11 ,  12  (block  150 ). If the mouse  1  remains lifted until the end of the switching interval T COM  without resting on the surface of sliding PS or on a different surface, herein not illustrated (output YES from block  140 ), the control stage  15  selects the 3D mode, by setting the first control signal MODE at the second value 3D (block  160 ). 
     The 3D mode is maintained as long as the absolute value of the third acceleration signal A z  remains higher than the threshold TH (block  170  and output NO from block  170 ). Possibly, a further threshold can be used, different from the threshold TH. When the mouse  1  is put down, the third acceleration signal A z  drops below the threshold TH (output YES from block  170 ). In this case, the control stage  15  selects the 2D mode (block  180 ), and the test of the block  120  is carried out again. 
     An example of the control stage  15  is illustrated in  FIG. 6 . In particular, the control stage  15  comprises a threshold-discrimination module  20 , a gate  21 , a counter  22 , a logic module  23 , and a mode register  24 . 
     The threshold-discrimination module  20  receives the third acceleration signal A Z  from the reading unit  9  and uses it to establish whether the mouse  1  is resting on a surface or has been lifted (in the example described, it compares the third acceleration signal A Z  with the threshold TH). If the mouse  1  has been lifted, the threshold-discrimination module  20  requests deactivation of the first and second calculation lines  11 ,  12  through the gate  21  and activates the counter  22 . In particular, the threshold-discrimination module  20  assigns, to a third control signal LIFT, a pre-set value, which indicates that the mouse  1  has been lifted (in this case, following an overstepping of the threshold TH). The gate  21 , which supplies at output the second control signal STBY, is controlled by the first control signal MODE, the value of which is stored in the mode register  24 . In particular, the gate  21  enables the request for deactivation of the first and second calculation lines  11 ,  12  when the first value 2D of the first control signal MODE is contained in the mode register  24 . In this case, the first value T is assigned to the second control signal STBY. 
     The logic module  23  controls the mode register  24  so as to keep the value of the first control signal MODE updated and to select the 2D mode or the 3D mode in accordance with the procedure described above with reference to  FIG. 5 . For this purpose, the logic module  23  receives the current value of the first control signal MODE from the mode register  24 , the third control signal LIFT from the threshold-discrimination module  20 , and a counting value contained in the counter  22 . In the example described, the logic module  23  operates on the basis of the table of  FIG. 7 , where the new value to be assigned and the current value of the first control signal MODE are indicated in the columns “MODE K+1 ” and “MODE K ”, respectively. Furthermore, in the column “LIFT”, the values T′ and F′ indicate that the mouse  1  has been lifted and put down, respectively; and in the column “T COM ”, the values T″ and F″ indicate that, on the basis of the counting value contained in the counter  22 , the mouse  1  has remained continuously lifted for a time longer than or shorter than, respectively, the switching interval T COM . 
     Advantageously, one embodiment of the invention enables automatic detection of lifting of the pointing device and, consequently, selection of an appropriate operating mode. In particular, the device can be used both as a two-dimensional pointing peripheral and as a three-dimensional pointing peripheral. Furthermore, production of signals is inhibited during the brief steps of lifting that normally occur when the device operates in two-dimensional mode. Also the selection of the mode of operation is automatic, and the user is not required to perform any special maneuvers. 
     Finally, it is evident that modifications and variations can be made to the pointing device and to the method described herein, without departing from the scope of the present invention, as defined in the annexed claims. 
     In particular, the invention could be incorporated in a device other than a mouse, such as for example a pen or a cell phone. As regards detection of the motion along the first and second axes X, Y, the pointing device can be equipped with a transducer of the type conventionally used in a mouse (for example, a transducer with a ball combined with rollers provided with angular-position sensors or an optical transducer). In this case, just one single-axis MEMS sensor is used for detection of the motion along the third axis Z. 
     Also the procedure of selection of the operating mode could differ from the one described herein. In particular, different criteria could be used to decide whether the pointing device has been lifted or is resting on a surface. For example, differentiated thresholds can be used, instead of just one threshold. Furthermore, in addition to acceleration, it is also possible to consider the velocity along the third axis Z. Also the scheme of the control stage would be modified accordingly.