Abstract:
The primary purpose of this thesis is to explain a device which could be used as an alternative for a computer mouse. Instead of using a regular roller found in an ordinary mouse, the device uses a pressure sensitive sensor to control the computer cursor on the monitor. The device is developed mainly for a personal computer with Universal Serial Bus (USB) capability. The computer should have an operating system of Microsoft Windows 98 or newer. The device does not need any additional driver, and it has a USB hot-plug-and-play feature. It uses a Human Interface Device (HID) driver provided by Windows. The device mainly has two buttons (right and left) and is approximately 4″ by 3″ by 2″ in size. Users can press their fingers on to the device to control the cursor. The device will be small enough to be fit inside a person&#39;s palm. The area has four pressure sensors used to move the cursor to the left, right, upward and downward. The user can control some parameters, such as cursor movement rate, by just controlling the amount of force pressed on that area. The device will be made from a soft material with a hard box inside. All the necessary components will be placed inside the box. Only the sensors are outside the box, so that the user can control the sensors by squeezing the device. This would make it comfortable for users to operate the device.

Description:
TECHNICAL FIELD  
       [0001]     This invention relates to pointing devices usable in computing systems.  
       BACKGROUND  
       [0002]     Traditional pointing devices generally operate on flat surfaces. These devices are coupled directly to computing devices using wired or wireless connections. A user may use a traditional pointing device to move a pointer on a display screen coupled to the computing device. Generally, when the user moves the pointing device across the flat surface, the pointer will move in a corresponding direction on the screen. If the user moves the device more quickly, the pointer on the screen will generally move with a faster velocity. The user may also manipulate the device with one or more of their fingers to initiate right- or left-click operations. These operations may allow the user to drag objects on the screen or select items from a pull-down menu. Traditional pointing devices include both mechanical and optical mouse devices.  
         [0003]     Another type of pointing device is a joystick. A user may also use this type of hand-held pointing device to move a pointer on a display screen. Typically, the user moves a pointer on a display screen by manipulating a stick with a finger and/or thumb. A strain gauge may be used to determine the direction of movement of the stick.  
         [0004]     Still another type of pointing device is a force transducer located in the center of a computing keyboard used for determining the motion of a pointer on a display screen. The force transducer includes an elongated lever arm attached to a substrate. The substrate undergoes strain when a user applies force to the end of the lever arm. Strain gauges are used to measure the strain. The direction and speed of movement of the pointer on the display screen are thereby determined by the force applied by the user to the lever arm.  
       SUMMARY  
       [0005]     Various implementations of the present invention are described herein. One implementation provides a hand-held device to control motion of a pointer on a display screen. In this implementation, the device includes a shell, a pressure sensor, and an actuator. The shell is capable of being held by a hand. The pressure sensor contains pressure-sensitive zones that are each associated with a direction of motion of the pointer on the display screen. The actuator is positioned to be manipulated by a digit (e.g., finger or thumb) of the hand holding the shell. When the actuator is manipulated, it presses against at least one of the pressure-sensitive zones to cause the pointer to move on the display screen in a direction determined by the direction of motion associated with the at least one of the pressure-sensitive zones against which the actuator is pressed.  
         [0006]     Various implementations of the present invention may have many advantages. For example, continuous pointer steering may be achieved as a result of the pressure exerted by a finger or thumb on the actuator. As a result of the pressure exerted on the actuator, the pointer on the display screen may move in any direction, from 0 to 359 degrees. In addition, the speed of motion of the pointer may be determined by the intensity of the pressure exerted on the actuator, to allow a continuous range of speed. In certain implementations, the invention provides a hand-held device that does not require a work surface for its operation. In these implementations, the device fits in the palm of a hand, and may even be strapped across the back of the hand when typing. The device may even be interchanged for right and left hand operation without the need for any adjustments. In some implementations, the device includes a flexible shell covering.  
         [0007]     The details of one or more implementations of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims. 
     
    
     DESCRIPTION OF DRAWINGS  
       [0008]      FIG. 1  is a block diagram of a computing system having a hand-held pointing device, according to one implementation.  
         [0009]      FIG. 2A  is a three-dimensional view of an actuator, according to one implementation.  
         [0010]      FIG. 2B  is a three-dimensional view of a pressure-sensor assembly that contains a pressure sensor, according to one implementation.  
         [0011]      FIG. 3A  is a three-dimensional view of a pointing device internal assembly, according to one implementation.  
         [0012]      FIG. 3B  is a three-dimensional view showing certain internal components of the pointing device internal assembly shown in  FIG. 3A .  
         [0013]      FIG. 4  is another three-dimensional view showing certain internal components of the pointing device internal assembly shown in  FIG. 3A .  
         [0014]      FIG. 5  is a three-dimensional view of the click button shown in  FIGS. 3A and 3B .  
         [0015]      FIG. 6A  is a three-dimensional view of a pointing device, according to one implementation.  
         [0016]      FIG. 6B  is a three-dimensional view of the pointing device shown in  FIG. 6A .  
         [0017]      FIG. 7A  is a graphical diagram showing an example of two component signal vectors.  
         [0018]      FIG. 7B  is a graphical diagram showing a resultant vector calculated from the component vectors shown in  FIG. 7A . 
     
    
     DETAILED DESCRIPTION  
       [0019]      FIG. 1  is a block diagram of a computing system having a hand-held pointing device, according to one implementation. In this implementation, a user is capable of holding a pointing device  102  in a hand and manipulating the pointing device  102  to control motion of a pointer  120  on a display screen  118  in a computing system  100 . The hand-held pointing device  102  includes an exterior shell  103 , a click button  101 , an actuator  104 , and a pressure sensor  106 . The pressure sensor  106  contains multiple pressure-sensitive zones  105 A,  105 B,  105 C, and  105 D that are each associated with a direction of motion of the pointer  120 . The actuator  104  is positioned to be manipulated by the user, such that when the user exerts pressure through the use of digit (e.g., thumb or finger), the actuator  104  presses against at least one of the pressure-sensitive zones  105 A,  105 B,  105 C, or  105 D to cause the pointer  120  to move on the display screen  118  in a direction determined by the direction of motion associated with the pressure-sensitive zones  105 A,  105 B,  105 C, or  105 D against which the actuator  104  is pressed.  
         [0020]     In  FIG. 1 , the four pressure-sensitive zones  105 A,  105 B,  105 C, and  105 D are associated with the following directions of motion on the display screen  118 : north, east, south, and west. A formation of four pressure-sensitive zones is also shown and described later in  FIG. 2B . In another implementation, there are eight pressure-sensitive zones associated with the following directions of motion: north, northeast, east, southeast, south, southwest, west, and northwest.  
         [0021]     If the actuator  104  presses against only one of the pressure-sensitive zones  105 A,  105 B,  105 C, or  105 D, then the pointer  120  will move on the display screen  118  in a direction directly associated with that zone. For example, if the zone is associated with the direction of north, then the pointer  120  will move in the direction of north. If, however, the actuator  104  presses against more than one of the pressure-sensitive zones  105 A,  105 B,  105 C, or  105 D, then the amount of pressure exerted upon each of the zones by the actuator  104  will be used to determine the direction of movement of the pointer  120 . In one implementation, a vector calculation is used to determine the resultant direction of movement of the pointer  120  based on the individual component vectors that are determined from the amount of pressure exerted upon each of the pressure-sensitive zones  105 A,  105 B,  105 C, and  105 D. An example of such a vector calculation is shown and described later in  FIG. 7A  and  FIG. 7B .  
         [0022]     In one implementation, the amount of pressure exerted by the user upon the actuator  104  also determines the speed of movement of the pointer  120  on the display screen  118 . When the user exerts pressure upon the actuator  104 , the actuator  104  then exerts pressure upon one or more of the pressure-sensitive zones  105 A,  105 B,  105 C, or  105 D. The amount of this exerted pressure determines the speed of motion of the pointer  120 . If more pressure is exerted, then the pointer  120  moves faster.  
         [0023]     In one implementation, the pressure sensor  106  is a piezoresistive sensor whose resistance changes with pressure. Piezoresistive sensors do not require external power to operate, and they have low noise.  
         [0024]     The hand-held pointing device  102  also includes a click button  101  coupled to the exterior shell  103 . In one implementation, the click button  101  is a conventional rocker switch capable of providing both left- and right-click operations.  
         [0025]     As shown in  FIG. 1 , the display screen  118 , a keyboard  108 , and the hand-held pointing device  102  are each coupled to the computing device  110 . The hand-held pointing device  102  is coupled to the computing device  110  via a standard Universal Serial Bus (USB) connection. In other implementations, different interface types, such as a wireless interface, may be utilized. The computing device  110  includes a storage device  112 , a central processing unit (CPU)  114 , and a memory  116 . The computing device  110  may use its standard human interface device (HID) drivers to communicate with the pointing device  102 .  
         [0026]      FIG. 2A  is a three-dimensional view of an actuator, according to one implementation. In this implementation, the actuator  200  that is shown is one example of the actuator  104  shown in  FIG. 1 . In  FIG. 2A , the actuator  200  has a substantially flat top surface  201  upon which pressure may be exerted by a user. For example, a user may press his or her thumb against the top surface  201  and cause the actuator  200  to swivel about a pivot point  204  (shown in  FIG. 2B ). The actuator  200  also includes protrusions  202 A,  202 B,  202 C, and  202 D on its bottom surface  203 . As shown in the example in  FIG. 2A , these protrusions are substantially cubical in shape, and extend downwardly from the bottom surface  203 . The protrusions  202 A,  202 B,  202 C, and  202 D are equally spaced apart in a polygonal pattern, and each of these protrusions is capable of being coupled with a pressure-sensitive zone of a pressure sensor, such at those shown in  FIG. 2B .  
         [0027]      FIG. 2B  is a three-dimensional view of a pressure-sensor assembly that contains a pressure sensor, according to one implementation. In this implementation, the pressure-sensor assembly  230  contains a pressure sensor  240 . The pressure-sensor assembly  230  is secured by the fasteners  242 A,  242 B,  242 C, and  242 D to the cover plate  240 . The pressure sensor  240  is one example of the pressure sensor  106  shown in  FIG. 1 . The pressure sensor  240  contains pressure-sensitive zones  232 A,  232 B,  232 C, and  232 D, which are example of the pressure-sensitive zones  105 A,  105 B,  105 C, and  105 D shown in  FIG. 1 . In one implementation, these pressure-sensitive zones are located upon pressure-sensitive film used for detecting pressure. As shown in  FIG. 2B , these pressure-sensitive zones  232 A,  232 B,  232 C, and  232 D are equally spaced-apart indentations that are capable of being coupled with the protrusions  202 A,  202 B,  202 C, and  202 D of the actuator  200  shown in  FIG. 2A . As pressure is applied to the actuator  200 , the actuator  200  is capable of swiveling about the pivot point  204  and coupling one or more of its protrusions  202 A,  202 B,  202 C, or  202 D with one or more of the pressure-sensitive zones  232 A,  232 B,  232 C, or  232 D and cause motion of a pointer, such as the pointer  120  on the display screen  118  shown in  FIG. 1 . The protrusions  202 A,  202 B,  202 C, and  202 D are positioned above the pressure-sensitive zones  232 A,  232 B,  232 C, and  232 D such that, when force is applied to the actuator  200 , these protrusions may be pressed against the pressure-sensitive zones.  
         [0028]     The direction of motion will be determined from the amount of pressure applied to the actuator  200 , and from which of the pressure-sensitive zones  232 A,  232 B,  232 C, or  232 D are triggered. As an example, assume that zone  232 A is associated with a direction of west, zone  232 B is associated with a direction of south, zone  232 C is associated with a direction of east, and zone  232 D is associated with a direction of north. If pressure is applied to the actuator  200  such that only the protrusion  202 A is pressed down upon the pressure-sensitive zone  232 A, then the pointer on the display screen will move in a direction of due west. If, however, the protrusion  202 A is pressed upon the zone  232 A and the protrusion  202 B is also pressed upon the zone  232 B, then the pointer will move in a direction that is in between west and south. The precise direction of movement will be determined based upon the amount of pressure exerted upon the zone  232 A relative to the zone  232 B. In one implementation, a vector calculation is used to determine the precise direction of motion. In this implementation, when pressure is applied to the pressure sensor  240 , a signal is generated for each of the pressure-sensitive zones  232 A,  232 B,  232 C, and  232 D according to the amount of pressure that is applied to these zones. The four generated signals are used to create four component vectors. The component vectors associated with the signals from each of the opposing pressure-sensitive zones are added to create two intermediate vectors. Thus, the component vectors for the pressure-sensitive zones  232 A and  232 C are added to create a first intermediate vector, and the component vectors for the pressure-sensitive zones  232 B and  232 D are added to create a second intermediate vectors. These two intermediate vectors are then added to create a final resultant vector, which indicates the precise direction of motion of the pointer on the display screen.  
         [0029]      FIG. 3A  is a three-dimensional view of a pointing device internal assembly, according to one implementation.  FIG. 3B  is a three-dimensional view showing certain internal components of the pointing device internal assembly shown in  FIG. 3A . In the implementation shown in these figures, a pointing device internal assembly  300  includes a housing  302 , a click button  304 , a cover  306 , a pressure sensor  308 , an actuator  310 , and a retainer  312 . The pointing device internal assembly  300  shown in  FIGS. 3A and 3B  is an example of a type of assembly contained within the hand-held pointing device  102  shown in  FIG. 1  used for controlling the motion of a pointer on a display screen. The actuator  310  contains a number of protrusions  314  located on its lower surface. In one implementation, the cover  306 , the housing  302 , the actuator  310 , and the retainer  312  are made of an aluminum material. The housing  302  is hollow and elongate in shape. The cover  306  fits along the bottom of the housing  302 . A top surface  305  of the housing  302  is shown as a sloped surface. The click button  304  is attached to one side of the housing  302 . (This is shown more clearly in  FIG. 3B .) In one implementation, the click button  304  is a conventional rocker switch. With such a switch, a user can use only a single finger, such as an index finger, to initiate both left- and right-click operations. In one implementation, a user may use a thumb to manipulate the actuator  310  and an index finger to manipulate the click button  304 .  
         [0030]     The pressure sensor  308  shown in  FIG. 3A  is contained on a substantially planar surface and has a pressure-sensitive film. The pressure-sensitive film contains two regions: an active pressure-sensitive region, and an inactive region. The active pressure-sensitive region contains a number of pressure-sensitive zones that are interconnected. In one implementation, such as the one shown in  FIG. 2B , there are four such pressure-sensitive zones. In another implementation, there are eight pressure-sensitive zones. Each zone is associated with a distinct motion direction for the pointer on the display screen, such as north, west, south, and east.  
         [0031]     The actuator  310  pivots centrally on the sensor  308  when pressure is applied by a thumb or finger of a user. As a result, the protrusions  314  come in contact with the pressure-sensitive zones on the pressure sensor  308 . In one implementation, the protrusions  314  are spherical in shape, and are made of a plastic material. Because the actuator  310  swivels freely about its center on the housing  302 , a retainer  312  is placed around the actuator plate. In one implementation, the retainer  312  is spring loaded to allow the actuator  310  to continue to swivel about its center, while maintaining a limit on the range of motion to keep the actuator  310  in position on the top of the housing  302 .  
         [0032]     When the protrusions  314  come in contact with the pressure-sensitive zones on the pressure sensor  308 , each of the pressure-sensitive zones generate a voltage that is proportional to the pressure exerted by the protrusions  314  that come in contact with these zones. These voltages may be amplified through an amplifier circuit, such as may be provided by a printed circuit board located within the housing  302 . The amplified voltages are then routed to a microcontroller. In one implementation, the microcontroller is located within the housing  302 . In another implementation, the microcontroller is located separately from the pointing device internal assembly  300  shown in  FIGS. 3A and 3B  and is coupled to the assembly  300  by means of a wired or wireless connection.  
         [0033]     The microcontroller uses an algorithm provided by a program, such as a firmware program, to receive the signals coming from the pressure-sensitive zones on the pressure sensor  308  and determine a direction and a speed of motion of the pointer on the display screen. This determination is based on the comparison of the signals that are provided by the various pressure-sensitive zones. In one implementation, the microcontroller uses a vector calculation to make the determination of direction, such as the form of vector calculation describe earlier in the description of  FIG. 1 . The speed of the pointer is proportional to the intensity of the pressure exerted on the actuator  310 . In one implementation, the microcontroller also processes the input information from a click button, such as the click button  304  shown in  FIGS. 3A and 3B , to determine the click right- and left-click operations. The microcontroller routes motion information to a computing device, such as the computing device  110  shown in  FIG. 1 , which controls motion of a pointer on a display screen.  
         [0034]      FIG. 4  is another three-dimensional view showing certain internal components of the pointing device internal assembly shown in  FIG. 3A  contained in an external shell  602 .  FIG. 4  shows the click button  304  as a rocker switch. The rocker switch can be toggled to one side to initiate a left click, and can be toggled to the other side to initiate a right click. A user need only use a single finger to manipulate the click button  304  for both left- and right-click operations. The actuator  310  is shown as having a sloped surface. In addition, the actuator  310  shown in  FIG. 4  contains eight protrusions  314  located on its bottom surface. These protrusions  314  come into contact with one or more of the eight pressure-sensitive zones on pressure sensor  308  when the user exerts pressure upon the actuator  310 .  
         [0035]      FIG. 5  is a three-dimensional view of the click button shown in  FIGS. 3A and 3B . The click button  304  contains a toggle switch  500  and connectors  502 . The connectors  502  are used to couple the click button  304  with the housing  302  shown in  FIGS. 3A and 3B , so that the output signals from the click button  304  may be routed to the microcontroller. The toggle switch  500  is capable of being toggle-switched to either the right- or left-hand sides. A user may engage the toggle switch  500  by using only a single finger or thumb. When the toggle switch  500  is pressed to one side, a left-click operation may be initiated. When the toggle switch  500  is pressed to the other side, a right-click operation is initiated. In one implementation, the click button  304  is a conventional rocker switch.  
         [0036]      FIG. 6A  is a three-dimensional view of a pointing device, according to one implementation. In this implementation, the pointing device internal assembly  300  from  FIGS. 3A and 3B  is shown as being contained within an external shell  602 . The pointing device internal assembly  300  is contained within the external shell  602 , such that a user may manipulate both the actuator  310  and the click button  304  and also hold the external shell  602  in the palm of a hand. The user may manipulate the actuator  310  with one digit (e.g., finger or thumb), and manipulate the click button  304  with another digit. By manipulating the actuator  310 , the user is able to control the motion of a pointer on a display screen, and by manipulating the click button  304 , the user is able to control right- and left-click operations. In various implementations, the external shell  602  is made of a soft, flexible material, such as rubber.  
         [0037]      FIG. 6B  is a three-dimensional view of the pointing device shown in  FIG. 6A . In  FIG. 6B , the external shell  602  of a pointing device  600  is shown. The pointing device  600  is capable of being held in the user&#39;s hand during operation, and may also be strapped across the back of the user&#39;s hand when the user is typing. Because of the ambidextrous structure, a user may use the pointing device  600  in either the left or right hand.  
         [0038]      FIG. 7A  is a graphical diagram showing an example of two component signal vectors. In one implementation, these two component signal vectors are used by a microcontroller to determine a resultant vector for the direction of motion of a pointer and/or the speed of motion of the pointer. In this implementation, an algorithm similar to the one described in regards to  FIG. 2B  may be used. However, in the example shown in  FIG. 7A , the two component signal vectors correspond to signals received from a pressure sensor containing eight, rather than four, pressure-sensitive zones. The pointing device internal assembly  300  shown in  FIG. 3A ,  FIG. 3B , and  FIG. 4  contains eight such pressure-sensitive zones.  
         [0039]     When pressure is applied by the actuator  310  to the pressure sensor  308 , the ones of the pressure-sensitive zones that have been pressed upon by the protrusions  314  of the actuator  310  will generate an output voltage of a certain magnitude. These output voltages may be amplified, and are then sent to a microcontroller for processing. The microcontroller represents each of these output voltages as a component signal vector. In an assembly having eight pressure-sensitive zones, any such represented signal vectors could have directions of zero, forty five, ninety, one hundred thirty five, one hundred eighty, two hundred twenty five, two hundred seventy, or three hundred fifteen degrees, as measured from the x-axis. As shown in example in  FIG. 7A , there are two such component signal vectors  700  and  702 . Each of these component signal vectors corresponds to a signal received from one of the eight pressure-sensitive zones. The component signal vector  700  is a vector having x- and y-coordinates of (3, 0). The component signal vector  700  has a relative magnitude of three and a direction of zero degrees as measured from the x-axis. The magnitude corresponds to the relative amount of pressure that was applied to the pressure-sensitive zone associated with the component signal vector  700 . The component signal vector  702  is a vector having x- and y-coordinates of (2, 2). The component signal vector  702  has a relative magnitude of two multiplied by the square root of two and a direction of forty-five degrees as measured from the x-axis.  
         [0040]      FIG. 7B  is a graphical diagram showing a resultant vector calculated from the component vectors shown in  FIG. 7A . In one implementation, the microcontroller uses a vector calculation to add the component signal vectors  700  and  702  to determine a resultant vector. As shown in  FIG. 7B , the addition of the component signal vectors  700  and  702  results in the resultant vector  704 . The resultant vector  704  is a vector having x- and y-coordinates of (5, 2). The resultant vector  704  has a relative magnitude of the square root of twenty nine and a direction of tan −1 (2/5) in degrees, as measured from the x-axis. The resultant vector  704  determines the direction of motion. In one implementation, the microcontroller will send information about the resultant vector  704  to a computing device, such as the computing device  110  shown in  FIG. 1 . The computing device will then cause motion of a pointer on a display screen in the direction indicated by the direction of the resultant vector  704 . In one implementation, the computing device will also cause a speed of motion of the pointer as indicated by the magnitude of the resultant vector  704 . In general, the speed of motion of the pointer is determined by the amount of pressure applied to the actuator, such as the actuator  310  shown in  FIGS. 3A and 3B .  
         [0041]     A number of implementations of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.