Track pad cursor positioning device and method
TECHNICAL FIELD 
     The present invention relates generally to cursor positioning devices for computers and video display units and more particularly to a pad-shaped cursor positioning device and method which involves sensing the velocity of a digit or a pointer moving across a pad. 
     BACKGROUND OF THE INVENTION 
     Computers normally use a cursor which appears on the video screen and moves under the control of a cursor control device. Some cursor control devices are merely keys on the computer keyboard to move the cursor in a horizontal or vertical direction. Key control requires the use of a plurality of keys and is a time consuming method for achieving a desired cursor position. 
     Cursor positioning has been accomplished with a mechanical joy stick of the type commonly used for video games, and although more rapid control may be achieved in this manner than with key control, joysticks are subject to wear which ultimately results in cursor positioning inaccuracies. 
     A very popular form of cursor control is the small, hand held &#34;mouse&#34; which is moved by hand over a working surface to provide cursor control signals which cause a controlled movement of a cursor on a display screen. A mouse may be mechanical or optical, but both require a considerable extent of working surface for operation. The mechanical mouse counts the revolutions of a ball or orthogonal wheels which turn as the mouse moves over a surface, while the optical mouse senses a grid to produce cursor command signals. 
     Alternatively, a number of touch pad control units have been developed in the past. These are generally pressure sensitive or capacitive sensitive touch pads where either the pressure of an operator&#39;s finger on a membrane switch array or a change in capacitance resulting from contact by an operator&#39;s finger with an array or a single conductive plate provides output control signals for a cursor. These are primarily position sensing units which sense the actual position of a finger or pointer on a touch pad using some type of electronic array which provides a coordinate type of response indicative of position. The output signals from such an array, as illustrated by U.S. Pat. No. 4,550,221 to Mabusth, represent the x and y coordinates of a desired cursor position. A device which provides a velocity control signal by calculating the differences in sensed finger position versus time is disclosed in U.S. Pat. No. 4,988,982 to Rayner. 
     Pressure sensitive and capacitive or resistive touch pads are subject to wear, friction and the effects of stray electrostatic and electromagnetic fields, and are additionally subject to damage from moisture or liquid spilled on the pad and electronic array. Moreover, the manufacturer may be restricted in choosing a suitable material for the pad surface. In an attempt to circumvent these problems, optical touch entry systems have been developed using opto-matrix light arrays to create a switch matrix and to detect the presence and location of an element in an irradiated field. These systems, as illustrated by U.S. Pat. No. 5,164,714 to Wehner are not subject to wear in high use environments, but they generally require the use of a large surface area, such as a computer screen, bordered by an extensive array of light emitting and detecting elements. The number of light emitting and detecting elements corresponds directly to the number of positions at which the cursor can be positioned in each direction. As such, accurate positioning will not occur without the use of an unacceptably large number of detectors. These systems require large amounts of energy to drive the light emitters and detectors and are often subject to inaccuracy due to ambient light and glare unless complex light modulation systems or ambient light compensation systems are provided. 
     Of the known, small mechanical cursor positioning devices, the track-ball controller has proven superior as a cursor position controller for portable personal computers and video games. Like other mechanical controllers, however, the track-ball controller has several drawbacks. It can be uncomfortable on the hand, and difficult to use if the ball is small, while a large track-ball controller is difficult to implement on notebook sized personal computers. Finally, being mechanical, it requires maintenance, is subject to wear, and is less reliable than solid state devices. 
     DISCLOSURE OF THE INVENTION 
     It is a primary object of the present invention to provide a novel and improved track pad cursor positioning device and method wherein the velocity of movement of a pointer in an x and y direction is optically sensed and a velocity control signal is generated to cause cursor movement in a two dimensional vector. Movement of the pointer relative to a miniature track pad is facilitated so that the track pad may be part of a laptop computer, may be hidden within a laptop computer or positioned on pivot arms attached to a personal computer. 
     Another object of the present invention is to provide a novel and improved track pad cursor positioning device and method wherein the velocity of movement of a pointer in an x and y direction is optically sensed and a velocity control signal is generated, the velocity control signal is compared to a predetermined threshold value and when the velocity control signal exceeds the threshold value, the signal is used to cause cursor movement in a two dimensional vector at a speed which is a function of the magnitude of the sensed velocity of movement. When the velocity control signal is less than the threshold value in a sensed direction, only limited movement of the cursor in that direction is permitted. 
     A further object of the present invention is to provide a novel and improved track pad cursor positioning device and method which simulates the operation of a track-ball cursor controller. The velocity of a pointer across a track pad is sensed by an optical system which employs a pair of orthogonal, directionally oriented light curtains to generate a velocity control signal to control cursor movement, and the velocity control signal is terminated to halt cursor movement when the sensed pointer is present but pointer movement stops. 
     Yet another object of the present invention is to provide a novel and improved track pad cursor positioning device and method which simulates the movement of a track-ball cursor controller by causing cursor movement to continue but to decelerate after a sensed pointer is removed from a track pad sensing area. 
     A still further object of the present invention is to provide a novel and improved track pad cursor positioning device which employs directional light curtains to create a sharply defined shadow created by the leading and/or trailing edge of a pointer in two orthogonal directions of movement which is optically sensed to determine pointer velocity. Sensing is accomplished using the light curtain with densely packed light sensors. Alternatively, pointer velocity can be determined by sensing the infrared emission from a human finger. No contact between the pointer and an underlying track is necessary, thus facilitating the incorporation of the track pad as a personal computer while permitting flexibility in choosing the shape and texture of the surface material for the track pad. 
     Yet a further object of the present invention is to provide a novel and improved track pad cursor positioning device of small size which can be mounted directly on a laptop computer or a personal computer keyboard. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a diagram of the track pad structure for the track pad cursor positioning device of the present invention; 
     FIG. 2 is a diagram of a second embodiment of the track pad structure for the track pad cursor positioning device of the present invention; 
     FIG. 3 is a sectional view of the track pad of FIG. 2; 
     FIG. 4 is a diagram of a third embodiment of the track pad structure for the track pad cursor positioning device of the present invention; 
     FIG. 5 is a diagram of a fourth embodiment of the track pad structure for the track pad cursor positioning device of the present invention; 
     FIG. 6 is a block diagram of the track pad cursor positioning device of the present invention; 
     FIG. 7 is a flow diagram illustrating the operation of the microcontroller of FIGS. 4 and 6; 
     FIG. 8 is a perspective view showing the track pad cursor positioning device of the present invention mounted to slide under a computer keyboard; 
     FIG. 9 is a perspective view of the track pad cursor positioning device of the present invention formed as an integral part of a computer keyboard; 
     FIG. 10 is a perspective view of the track pad cursor positioning device of the present invention formed as an integral part of a computer keyboard space bar; and 
     FIG. 11 is a perspective view of the track pad cursor positioning device of the present invention mounted by an extendable arm on a computer keyboard. 
    
    
     PREFERRED EMBODIMENT OF THE INVENTION 
     The track pad cursor positioning device and method of the present invention electronically models the action of a track-ball by optically sensing the motion of a finger, thumb, or other pointer across a sensing area having a surface that can be shaped and textured for comfort and tactile feedback. In fact, there is actually no need for the pointer or finger to actually contact the surface of the sensing area if such should be desirable. In addition, only the velocity of the moving digit, instead of its absolute position, will be sensed. Given the velocity input in two orthogonal directions, e.g., Vx in the horizontal x, Vy in the vertical, y direction, simplified the expressions for the spin rates of the model track-ball can be written as 
     
         S.sub.x =V.sub.x /r-Hf∫S.sub.x dt                     (1) 
    
     and 
     
         S.sub.y =V.sub.y /r-Hf∫S.sub.y dt                     (2) 
    
     Here, Sx and Sy are the spin rates of the ball in the x and y directions, r is the modeled ball radius, and f is the friction coefficient that will model the slow down rate of the ball when it is not being spun manually. The coefficient H is set to 0 when physical contact between the manipulating digit and the pad is present and is set to 1 otherwise. Note that being a virtual ball, the ball radius r can be a function of velocity, i.e., as Vx and Vy increases, r may decrease. This allows for rapid, albeit less accurate positioning of the cursor. The values of r and f are software parameters that can be selected by the user. 
     Referring now to FIGS. 1-3, the track pad cursor positioning device of the present invention indicated generally at 10 employs a detection system 12 which is adapted to directly measure the motion of any optically opaque object. This detection system involves the use of a track pad 14 provided with a sensing area 16 which may be a curved or flat surface as desired. In FIG. 1, the detection system 12 is an optical system, so that highly directional light (preferably infrared) is sent across the sensing area in orthogonal x and y directions. Thus, a light source 18 is provided at the focal point of a two dimensional parabolic mirror 20 to operate through the parabolic mirror to send a highly directional curtain of light across the sensing area 16 in the x direction. Similarly, a second light source 24 combined with a two dimensional parabolic mirror 26 creates a curtain of highly directional light in the y direction across the sensing area 16. The light sources 18 and 24 may be single light emitting diodes (LEDs) while the light detectors are small semiconductor detection devices such as light detecting diodes. 
     Positioned opposite to the light sources 18-20 and 24-26 are densely packed light detector arrays 30 and 32 responsive to light in a limited frequency range (such as infrared) which, in combination with the highly directional light curtains, reduce or substantially eliminate the effects of ambient light and glare created thereby on the sensing area 16 of track pad cursor positioning device. The individual detectors within each array are spaced 0.05 inches or less apart. If the incoming light to the detector arrays 30 and 32 is not sufficiently directional to facilitate a sharp definition of the edges of a pointer, light conduits 34 and 36 may be placed in front of each detector of the arrays to narrow the detector field of view. These conduits can be simple, narrow long holes or optical fibers. 
     By employing curtains of light across the sensing area 16 combined with closely packed individual light detectors, it is possible to cause a finger or pointer in the sensing area to cast a sharply defined shadow on the light detectors 30 and 32 which then identify both the leading and the trailing edge of the shadow. By repeatedly sensing at a known rate the leading and/or trailing edge locations of a finger or pointer, it is possible to determine the velocity at which the finger or pointer is moving in the x and y directions. This calculation can be easily made since the scan repeat time for each of the group of detectors 30 and 32 and the distance between detectors is known. Additional lenses or mirrors may be added in certain configurations to facilitate sensors which may be packed less than 0.05 inches apart. 
     As illustrated in FIG. 2, a collimated directional light curtain can be directed across the sensing area 16 by replacing the two dimensional parabolic mirrors of FIG. 1 with frosted glass light diffusers 38 and 40 that receive light from LED&#39;s 42 and 44. Collimation of the light from the light diffusers is provided by narrow light conduits or optical fibers 46 and 48 which are opposite to but correspond with the conduits or fibers 34 and 36. 
     If the detection system 12 uses infrared detectors tuned to detect the 98° F. black-body radiation emitted by the human body, then the light sources 18 and 24 of FIGS. 1 and 2 can be eliminated as shown in FIG. 4. Here the human finger is used as a pointer, and the black-body radiation emitted by the finger is sensed to define the distance to each of the detectors. As with all types of radiation, the intensity of black-body radiation emitted by the human body falls off with distance. Thus, by using three infrared detection diodes 50, 52 and 54 with suitable lenses 56, 58 and 60 to create a field of view encompassing the sensing area 16, it is possible to measure the motion of living tissues in the field of view for the detector diodes. To simplify the evaluation of distance from detected radiation, it may be necessary to limit the field of view of the diodes in the vertical direction to cause the system to reduce to two dimensions the infrared light level detected at each diode, and thus this light level should be directly proportional to the distance to the emitter or finger. To achieve this, the conduits 42, 44, 46 and 48 in the track pad 14 are replaced by three arcuate slits 62, 64 and 66 which open around the periphery of the sensing area 16 and extend horizontally outward to a second opening opposite the lenses 56, 58 and 60 to provide a vertically limited field of view for the diodes 50, 52 and 54. This field of view and the extent of the slits is illustrated by broken lines for two of the diodes in FIG. 2. 
     Each diode 50, 52 and 54 will have a different proportionality constant depending on the initial position of the black-body radiation emitter on the sensing area 16. These can be set for each diode to the light level at the time of physical contact with the sensing area, and a simple pressure transducer beneath the sensing area can be used to signal such a contact. In addition, the pressure transducer output can be used to set the coefficient H of equations 1 and 2 which is set in the optical system of FIGS. 1 and 2 by the detection of any obstructed light path. The diodes 50, 52 and 54 provide an analog output to the multiplexer and circuit of FIG. 6 to be described. 
     FIG. 5 illustrates an embodiment of the track pad of FIGS. 1-4 where either a finger or a pointer may be used to move across the sensing area 16. The sensing area is circular in configuration and is substantially surrounded by arcuate shaped illumination strips 68 which are equally spaced from the perimeter of the sensing area. These illumination strips are substantially equal in length and between the ends thereof at approximately the 0, 120 and 240 degree positions on the circle formed by the illumination strips are light sensing detectors 70. In front of each detector are two superimposed vertically spaced flat plates, the top plate of which is shown at 72. These plates are opaque and limit the vertical angle of view for each detector, thereby providing a two dimensional viewing systems. Each detector has a viewing angle in a vertically limited plane such as the single detector viewing angle indicated at 74. 
     The illumination strips 68 may be back illuminated frosted glass, and the detectors 70 are tuned to the emitted light frequency of light emitted by the illumination strips. These detectors will detect the decrease in light intensity due to the presence of a pointer at various positions in the sensing area, and the light decrease sensed by any detector is a function of the distance of the pointer from the detector. Therefore, by using the three detectors to sense light intensity, the velocity of movement of the pointer in the x and y directions can be tracked. 
     Turning now to FIG. 6, the track pad cursor positioning device is controlled by a single chip microcontroller 69 which scans the outputs provided by x and y multiplexers 71 and 73 respectively. Each of the closely packed detectors in the detector arrays 30 and 32 has an output terminal which is connected to the multiplexer 71 for the array 30 and to the multiplexer 73 for array 32. The single chip microcontroller causes the multiplexers 71 and 73 to scan the outputs of their associated detector arrays once during each scan period, and a plurality of scan periods per second are initiated by the single chip microcontroller. The outputs from the multiplexers are provided to the single chip microcontroller, and since the period between scans is known, the microcontroller is enabled to compute the velocity of movement of a finger or pointer in the sensing area 16 in both the x and y directions. This computed velocity is then output as a cursor control signal to the cursor control section of a computer 75. 
     In FIG. 6, the multiplexers 71 and 73 are shown connected to the sensor arrays of FIGS. 1 or 2. In the systems of FIGS. 4 and 5, each of the light detectors 50, 52 and 54 or 70 are connected to a single multiplexer 71 and then through an analog to digital converter 77 to the single chip microcontroller 69 as shown in FIG. 4. 
     The manner in which the single chip microcontroller operates to compute velocity may best be understood with reference to the flow diagram of FIG. 7. The microcontroller is initialized at 79 when power is applied to the unit, and the microcontroller then enters a sleep mode 80. Cyclically at 81, the unit checks the light detectors which scan the scanning area 16 to sense the edges of a pointer, and if a pointer is not present at 82, a determination is made at 83 as to whether or not the cursor was previously moving. If the cursor was previously moving, a deceleration control operation is generated at 84 and a command is sent to the cursor control at 85 to decelerate the cursor. If no previous cursor movement is sensed at 83, the sleep mode continues. 
     On the other hand, once a pointer is sensed in the scanning area 16, the leading and/or trailing edges of the pointer are sensed at 81 and generally, the movement of both edges is subsequently determined to calculate velocity and direction of movement, although this calculation can be made if only the leading edge or the trailing edge of the pointer is sensed. As the pointer moves, different individual detectors in the arrays 30 and 32 will become blocked by the opaque pointer, or different intensities indicative of distance will be sensed from the detectors 50, 52, 54 and 70. 
     At 81, the sensing area 16 is scanned separately in both the x and y directions by scanning either the multiplexers 71 and 73 in FIG. 6 or the multiplexer 71 in FIG. 4, and since the time between scans is a known time, velocity can be calculated at 86 by determining the distance that at least one edge of the pointer travelled in both the x and y directions during the elapsed time between successive scans in the x and y directions. Each direction is separately scanned to arrive at a velocity calculation for that direction. The calculated velocity for each direction is compared with a threshold velocity at 88, and if the calculated velocity for any direction is less than the threshold value, then it is determined at 90 if this velocity is greater than 0. If this velocity is greater than 0, a signal is provided at 92 to the cursor movement control 85 to move the cursor pixel by pixel in the relevant direction. On the other hand, if the velocity calculated is 0, a stop command is generated at 94 and sent to the cursor control 85 to stop cursor movement. 
     When the velocity at 88 is greater than the threshold value, then the vector movement and velocity of cursor movement is computed at 96 and provided to the cursor movement control 85. 
     Since movement of the pointer in both the x and y directions is sensed, the velocity vector controlling the cursor is a two dimensional vector, and the scaling coefficient between the pointer and the cursor velocity depends on the magnitude of the pointer velocity. If a pointer velocity has previously been sensed and then the pointer is completely removed from the scanning area 16, velocity control signals which decelerate the cursor in the same manner as would be achieved with a rotating track ball are provided. On the other hand, when the pointer stops all movement but is still present in the sensing area 16, all movement of the cursor is stopped in the same manner that a track ball would be stopped if held in place by a finger. The rate of slow down of the cursor without a pointer input, the maximum velocity threshold, and the scaling coefficient are all software controlled and could in fact be configured by the central processor unit 75 or alternatively by software contained in the microcontroller 69. 
     Since velocity rather than position sensing is accomplished by the track pad cursor positioning device 10, it is possible to employ a track pad 14 of very limited size, for multiple passes of a pointer across the sensing area 16 can be accomplished to move the cursor across the extent of a CRT screen. Since movement of the cursor in the previously determined vector continues when a finger or pointer is removed from the sensing area 16 to initiate a subsequent pass across the sensing area, no time is lost in moving the cursor by requiring multiple passes of the pointer to cause the cursor to traverse the CRT screen. Of course, the cursor can be stopped at any desired position by stopping all motion of the pointer or finger relative to the sensing area while maintaining the pointer or finger in the sensing area. 
     With references to FIGS. 8 and 9, it will be appreciated that the small size of the sensing area 16 permits the use of a track pad 14 of limited size that may be easily incorporated in the structure of a personal computer 106. In FIG. 8, the track pad is in the form of a pull out drawer which may slide beneath the keyboard 108 of a personal computer. In FIG. 9, the track pad 14 is formed as an integral portion of the keyboard 108 adjacent to the computer operating keys. 
     Since a pointer or finger used with the track pad cursor positioning device 10 does not need to physically contact or apply pressure to the sensing area 16, it is possible to mount the detection system 12 on a personal computer 106 in a manner which would not be possible if it was necessary to apply pressure to the sensing area. For example, as shown in FIG. 10, the detection system 12 may be incorporated in the space bar 110 for a personal computer 106, while in FIG. 11, the detection system is mounted on a pivotal retractable and extendable arm 112 connected to the face of the computer keyboard. 
     Industrial Applicability 
     The track pad cursor positioning device 10 converts the sensed velocity of a pointer on the pad to a cursor velocity which is a function of the sensed pointer velocity. Velocity sensing can be accomplished with no contact or only minimal contact with the track pad surface, and the function of a track ball can be easily simulated for both fine positioning and full screen coverage capability. By sensing either or both of the leading or trailing edges of a pointer, minute movements can be detected, and a velocity which is a vector of two dimensions can be achieved. The unit can be made to consume very little power and can be constructed in a small, thin package suitable for incorporation in laptop computers. This package is liquid impervious with no moving parts, and gravity or a surrounding environment is not required for operation of the device. Since the unit can be operated with either the finger or a pointer, handicapped people who use typing sticks attached to the body may use the device effectively. The track pad cursor positioning device 10 is immune to electrostatic and electromagnetic effects present in the surrounding environment, for the sensing area does not include a large area incorporating an electronic structure which is receptive to such effects. Thus the device is ideal for military use or use in noisy factory environments.