Input device for scrolling a computer display

An input device such as a mouse, track ball or joystick that has a rotatable element for scrolling a graphical display presented on an apparatus. The rate of scrolling of the graphical display is constant and independent of the rate of rotation of the rotatable element. The input device further comprises a motion signal generator, a motion signal interpreter and a software driver. The motion signal generator detects motion of the rotatable element and generates motion signals. The motion signal interpreter checks for generation of motion signals within predetermined periods of time. If at least one motion signal is detected within the predetermined period of time the motion signal interpreter generates one output signal at the end of the predetermined period of time. When the software driver receives an output signal, the software driver generates a line scrolling command to scroll the graphical display.

BACKGROUND OF THE INVENTION

The present invention generally relates to computer input devices. In particular, the invention relates to computer mice having input apparatus, such as a scroll wheel or a track ball, for scrolling a computer display.

It is commonly known to computer users that Windows based operating systems, such as Windows by Microsoft Corporation, and the applications that run under them, may only display a portion of a document or computer program on a display screen if the viewable area of the document or program is larger than the viewing area of the display screen. In this situation, a user must scroll through the document or program to view the entire document or program. Depending on the size and orientation of the viewable area of a document or computer program, the user may need to scroll in a vertical and/or horizontal direction. While scrolling may be accomplished by using software scroll bars generated by the windows based application, computer mice having scroll wheels or track balls may also be used to input scrolling commands.

Computer mice having scroll wheels are well known in the art. Scroll wheels are generally finger operated rotatable discs that protrude from a surface of the computer mouse. Typically, the scroll wheel is located between the two buttons of a conventional two button mouse and can be operated by the index finger. Although capable of performing many functions, scroll wheels are particularly useful for providing a user with a convenient and efficient way for inputting scrolling commands. Finger operated track balls have also been used to input scrolling commands and provide the added benefit of generating simultaneous vertical and horizontal scrolling inputs.

Prior art computer mice with scroll wheels or track balls allow a user to scroll a display at a rate relative to the rate of rotation of the scroll wheel or track ball. If a user rotates the scroll wheel quickly, the display screen also scrolls quickly. A variable and rapid scroll rate, however, can result in somewhat unpredictable movement of the viewed section of the document. Due to rapid movement of words and images on the display screen a user may become confused as to where he or she is in a particular document. This can result in inefficient computing.

BRIEF SUMMARY OF THE INVENTION

The preferred embodiment of the present invention addresses these short comings of the prior art by providing a smooth, constant scroll rate, independent of the rate of rotation of the scroll wheel. Scrolling of a document is therefore constant and predictable.

In one aspect, the invention provides a graphical display scrolling system made up of an apparatus for displaying viewable elements of a graphical display and an input device with a rotatable element. Rotation of the rotatable element causes the viewable elements of a graphical display to scroll at a rate that is constant and independent of the rate of rotation of the rotatable element. The apparatus is generally a computer but may be any apparatus that processes and displays graphical information.

In another aspect, the invention provides an input device that has a rotatable element, a motion signal generator, a motion signal interpreter and a software driver. The motion signal generator detects motion of the rotatable element and generates motion signals. The motion signal interpreter checks for generation of motion signals within predetermined periods of time. If at least one motion signal is detected within the predetermined period of time, the motion signal interpreter generates one output signal at the end of the predetermined period of time. When the software driver receives an output signal, the software driver generates a line scrolling command to scroll the graphical display. The scrolling rate of the graphical display is constant when the rotatable element is rotated.

Advantages of the present invention will become more apparent to those skilled in the art from the following description of the preferred embodiments of the invention which have been shown and described by way of illustration. As will be realized, the invention is capable of other and different embodiments, and its details are capable of modification in various respects. Accordingly, the drawings and description are to be regarded as illustrative in nature and not as restrictive.

DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS OF THE INVENTION

Turning now to the drawings,FIG. 1depicts an input device10having a rotatable element20that protrudes through the top cover18of the device10. The rotatable element20is preferably a scroll wheel. As illustrated inFIG. 3, the rotatable element20may also be a finger operated track ball. The input device10also preferably comprises at least one finger operated button16located on the external housing of the device10.

FIG. 2is a perspective view showing the internal components forming the input device10according to one preferred embodiment of the invention. In this embodiment the input device10comprises a roller ball12for x,y cursor positioning on a computer display screen. One skilled in the art will recognize that although a roller ball12is shown in the preferred embodiment, x,y cursor positioning may also by achieved through other positioning apparatus such as an optical sensor located on the bottom of the input device10that measures changes in surface features or through other inputs devices such as a palm operated track ball or a joystick.

The preferred embodiment of the present invention further comprises at least one microswitch input14that corresponds to at least one finger operated button16so that depression of the button16activates the microswitch input14. The button16and microswitch input14provide additional functionality to allow a user to select and manipulate objects and text within a computer program. Preferably, the input device10has two finger operated buttons16, although it may also have three or more finger operated buttons.

The rotatable element20is used to translate rotational inputs from a user's finger into scrolling commands on the display. Preferably, the rotatable element20is located on the top surface of the input device and is designed to be easily accessible to the user. It is to be understood, however, that the rotatable element20can be located on the input device at any location that may be convenient for the user. For example, the rotatable element20may be located on the side or the bottom of the input device. In one embodiment of the present invention, the rotatable element is located between two input buttons16at the forward section of the input device10. As illustrated inFIGS. 1 and 2, the rotatable element20can be a scroll wheel. A finger operated track ball, as shown inFIG. 3however, may also be used for inputting scrolling commands.

In an additional embodiment of the present invention, the rotatable element20may also be the roller ball of the input device. In this embodiment, motion of the input device across a surface provides rotational input to the roller ball. The direction of this rotational input can be used to generate scrolling commands. Preferably, the input device described herein also has a finger operated track ball to provide x,y cursor positioning. In this embodiment, x,y cursor positioning is inputted through rotation of the track ball and scrolling is inputted through motion of the input device, which, consequently, results in rotational motion of the roller ball. One skilled in the art would understand that an optical sensor may also be used in place of the roller ball for inputting scrolling commands.

In a preferred embodiment, the scroll wheel provides one dimensional input of scrolling commands where backward and forward turning of the scroll wheel results in scrolling a computer display in either a vertical or horizontal direction. In this embodiment, the rotatable element20comprises an elastomer outer ring22for providing enhanced gripping features and a rigid inner hub24for supporting the outer ring22. The rotatable element20is connected with an axially mounted spindle26supported by one or more vertical support structures28that allow free rotation of the rotatable element20about the spindle26.

In another embodiment of the present invention, the rotatable element20is a finger operated track ball as best seen inFIG. 3. In this embodiment, rotation of the track ball results in two dimensional scrolling where left/right and forward/backward rotation of the trackball allows inputs for simultaneous vertical and horizontal scrolling of a computer display.

The device of the present invention further comprises a motion signal generator30and a motion interpreter40. A motion signal generator30is preferably located proximate to the rotatable element20and is responsive to motion of the rotatable element20. The motion signal generator30detects rotational motion of the rotatable element20and generates a motion signal in response. Preferably, the motion signal generator30is a rotary contactor located on a vertical support structure28. The rotary contactor is connected with the spindle26and is responsive to motion of the spindle26. When the rotatable element20is rotated, the spindle rotates26the rotary contactor, generating electrical motion signals. These motion signals are then transmitted to the motion interpreter40. Although the motion signal generator30is disclosed as a rotary contactor inFIG. 2, one skilled in the art would recognize that other apparatus, such as an optical encoder, may also be used for detecting rotary motion and generating responsive motion signals.

The motion signal interpreter40is in communication with the motion signal generator30for receiving motion signals. The motion signal interpreter40is capable of reading motion signals and is in the nature of an integrated circuit with a memory module. Referring toFIG. 4, the motion signal interpreter40preferably comprises a memory buffer42, a timer44, a comparator46, and an output signal generator48. Motion signals received by the motion signal interpreter40are stored temporarily in the memory buffer42. The timer44is a device that measures predetermined periods of time. In the preferred embodiment, the timer44measures a predetermined period of time between about 1 and about 300 milliseconds, preferably between about 10 and about 50 milliseconds, and more preferably between about 15 and about 25 milliseconds. The comparator46is in communication with both the memory buffer42and the timer44. At the end of a predetermined period of time, as measured by the timer44, the comparator46checks the memory buffer42to see if a motion signal has been sent to the memory buffer42within a previous predetermined period of time. If a motion signal has not been received, the comparator46waits until the next predetermined period of time passes before checking the memory buffer42again. If one or more motion signals have been received within the previous predetermined period of time, the comparator46instructs the output signal generator48to generate one output signal.

A software driver in communication with the input device10is capable of receiving output signals from the motion signal interpreter40and generating line scrolling commands in response to reception of the output signals. The software driver communicates with an apparatus that processes and displays graphical information such as a computer, a graphical interface to the Internet, or a graphical interface to another network. For convenience the apparatus will be described as a computer, however, one skilled in the art will understand that the any of the embodiments listed above may also be used. In one embodiment, the apparatus is a computer60operating a computer program62that generates a graphical display on the computer display screen64. The software driver is preferably resident on the computer60and communicates with the computer program62. The computer program62is responsive to the software driver such that line scrolling commands generated by the software driver cause the viewable portion of the graphical display to scroll on the computer display screen64.

In operation, a user who wishes to scroll a graphical display rotates the rotatable element20of the input device10. As shown inFIG. 5, the motion signal generator30monitors the rotatable element20for rotation. When the motion signal generator30detects rotation of the rotatable element20, the motion signal generator30generates motion signals and transmits the motion signals to the motion signal interpreter40. At the end of a predetermined period of time, the motion signal interpreter40checks if one or more motion signals has been sent within the previous predetermined period of time. In the preferred embodiment, the predetermined period of time is between about 15 milliseconds and about 25 milliseconds. If a motion signal is not received within the predetermined period of time the motion signal interpreter40waits for another predetermined period of time to pass until it checks again for reception of a motion signal. Alternatively, if one or more motion signals were received within the previous predetermined period of time, the motion signal interpreter40generates one output signal and transmits it to the software driver50.

In a preferred embodiment of the motion signal interpreter40, a memory buffer42temporarily stores the motion signals from the motion signal generator30. The comparator46monitors the timer44and waits for the predetermined period of time to pass. At the end of the period, the comparator46checks the memory buffer42to see if a motion signal has been sent within the previous predetermined period of time. If the memory buffer42has not received a motion signal within the previous predetermined period of time, the comparator46waits for the end of the next predetermined period of time to again check the memory buffer42for motion signals. If the comparator46sees that one or more motion signals have been received by the memory buffer42within the previous predetermined period of time, the comparator46instructs the output signal generator48to generate one output signal for transmission to the software driver. A maximum of one output signal is generated per predetermined period of time regardless of the number of motion signals received within the previous predetermined period of time. The memory buffer42is then cleared of motion signals.

The software driver50continuously monitors for the reception of an output signal. If an output signal is received, the software driver50generates a line scrolling command. The line scrolling command is transmitted to the computer program62, causing the viewable elements of the graphical display to line scroll on the display screen64.

The above operation results in a constant scroll rate, independent of the rate of rotation of the rotatable element. Only one output signal, and therefore only one line scrolling command, is generated at the end of the predetermined period of time, without regard to whether several motion signals were received within that previous predetermined period of time.