Abstract:
Apparatus and methods for creating a virtual push button comprise a touch sensitive orthogonal data field input device useably connected within a computing system in which a touch action at the device generates a stream of data related to the location within the field of the touch action. The orthogonal data field input device includes circuitry for sensing the onset of a first touch action and for monitoring the continuity thereof; and the computing system including a second condition sensor for sensing the occurrence of a second predetermined condition; and, computing circuitry for generating the virtual push button upon the concurrence of touch action continuation and the occurrence of the second predetermined condition.

Description:
FIELD OF THE INVENTION 
     The present invention relates to methods and apparatus for data input to computing systems. More particularly, the present invention relates to methods and apparatus for creating a virtual button for a touch screen or touch pad orthogonal field data input device. 
     BACKGROUND OF THE INVENTION 
     Touch pads and touch screens responsive to localized depression pressure have been provided to create &#34;buttons&#34; for data input. A touch pad device is disclosed, for example, in U.S. Pat. No. 3,911,215; and, a transparent touch screen for overlayment and use with the display screen of a cathode ray tube is disclosed, for example, in U.S. Pat. No. 4,220,815, the disclosures of both of these patents being incorporated by reference herein. 
     These previously patented devices rely upon resistive sheets in which uniform orthogonal electric fields are generated in two-phase sequences, for example, as shown in FIG. 1 of the referenced &#39;215 patent. When a low resistance or ground connection is established at a particular location on the sheet, as by depressing an overlying, low resistance ground or signal return sheet into electrical contact with the resistive sheet, precise orthogonal field (x,y) pinpointing of the location of depression may be provided. Thus, these prior devices have been utilized in conjunction with a computer system to create &#34;push-buttons&#34;. When a particular push-button (i.e. location on the resistive sheet) is depressed (&#34;touch&#34;), or released (&#34;untouch&#34;), the computer has sensed this occurrence and has responded operationally thereto. 
     Other technologies have been applied to create touch screens and pads, including surface accoustic wave technology; and these screens and pads have also been used with computing systems to create push-buttons. The surface accoustic wave touch screen has the additional capability of reporting a z-coordinate indicative of the velocity or force with which the screen or pad is touched. 
     Traditionally, touch screens or pads have accomplished push-button sensing either through a touch, i.e. when the operator&#39;s finger or a stylus first touches the screen; or, an untouch, i.e. when the finger or stylus is released from the screen or pad. &#34;Touch&#34; is the most natural action for a novice user, because it represents activation on contact, just like the expected action of a conventional electromechanical push-button. For example, with a touch screen implementation, a user touches a labelled, delineated area on the screen, and a resulting action and acknowledgement are then given e.g. by an appropriate display on the screen. 
     For &#34;untouch&#34;, the touch step (which of course must come first) usually initiates some form of visual feedback, such as highlighting a screen area or option. The area or option is not actually selected to perform its action until the user &#34;untouches&#34; the screen. Thus, with &#34;untouch&#34; the slightly more experienced user can move finger or stylus on the screen to be sure the proper area is highlighted and then untouch or remove finger or stylus in order to complete the selection process. This approach enables a far greater precision in selection of desired areas on the screen. 
     The &#34;touch&#34; and &#34;untouch&#34; procedures are satisfactory for many applications, but they have significant shortcomings. Often it is very desirable or necessary to display the visual feedback following a user&#39;s finger around the screen while not forcing the user actually to make a selection upon the untouch action. To achieve this feedback using normal touch screen operations, it is necessary to completely divorce the untouch action from selection. An operation with visual feedback is first used to determine a position on the screen, but the untouch action does not cause a selection to be made. A second touch/untouch operation is then required on the screen (or via some other input device such as a keyboard) in order to perform the select operation. 
     This prior requirement for two disparate actions to perform a single selection is not satisfactory. In order to accomodate the occasional time when an untouch action will not lead to a selection, the user&#39;s attention must be diverted for each such action. This inconvenience becomes intolerable when dealing with a sequence of operations as typically encountered in computer aided design (CAD) or even in simple word processing applications. One way of further illustration of this inconvenience is by drawing an analogy to a hypothetical typewriter which would require the typist to strike a ribbon advance key after each symbol key was struck merely to advance the ribbon during typing, a function automatically performed by conventional typewriters. 
     This inconvenience in prior art touch screens and touch pads has not been experienced with other position-reporting devices, such as computer &#34;mice&#34;, &#34;tablets&#34;, and &#34;light pens&#34; which usually have actual push-buttons present on the mechanism manipulated by the user&#39;s hand during operations. Thus, the user is able to manipulate a computer mouse to a desired orthogonal (x,y) position typically followed by a visual cursor on the display screen and then to actuate one of a plurality of switches on the mouse to initiate or discontinue a particular function. 
     Thus, a hitherto unsolved need has arisen for the provision of a &#34;virtual&#34; push button for use with touch screens or touch pads which functionally extends the capability thereof to match the capability of other position reporting devices, such as computer &#34;mice&#34;, &#34;tablets&#34;, and &#34;light pens&#34; which usually have electromechanical push-buttons present on the mechanism for manipulation by the user&#39;s hand during positioning operations thereof. 
     SUMMARY OF THE INVENTION WITH OBJECTS 
     A general object of the present invention is to overcome functional and operational drawbacks hitherto associated with touch screen and touch pad devices by enabling generation of virtual push-buttons as a function of activation of at least one actual push button location on the screen or pad. 
     A specific object of the present invention is to extend the functionality of touch screen and touch pad orthogonal data input devices to match that achievable with computer mice, tablets, light pens and the like. 
     In accordance with the principles of the present invention, methods and apparatus are provided for creating a virtual push button at a touch sensitive orthogonal field data input device used in conjunction with a computing system in which a touch action at the device generates a stream of data related to the location within the field of the touch action. The methods and the apparatus embodying the methods carry out the steps of: 
     sensing the onset of a first touch action at the device and monitoring the continuity thereof, 
     sensing the occurrence of a second predetermined condition, 
     generating the virtual push button upon the concurrence of touch action continuation and the occurrence of the second predetermined condition. 
     In one specific aspect of the present invention, the step of sensing the occurrence of the second predetermined condition comprises the step of sensing the onset of a second touch action at the device. 
     In a second specific aspect of the present invention, the step of sensing the onset of a second touch action at the device includes the step of determining the direction of the second touch action relative to the location of the first touch action and wherein the virtual push-button is generated as a function of the determined direction. 
     In a third aspect of the present invention, the step of sensing the onset of a second touch action at the device includes the step of determining the distance of the second touch action from the location of the first touch action and wherein the virtual push-button is generated as a function of the determined distance. 
     In a fourth aspect of the present invention, the step of sensing the occurrence of a second predetermined condition comprises sensing an increase in applied pressure at the touch point. 
     In a fifth aspect of the present invention, the step of sensing the occurrence of the second predetermined condition comprises the step of detecting elapse of a predetermined time interval and detecting an untouch action at the first location after the predetermined time interval has elapsed. 
     In a sixth aspect of the present invention, the step of sensing the occurrence of the second predetermined condition comprises the steps of detecting elapse of predetermined time intervals and comprising the further step of generating and displaying to the user a sequence of virtual push-buttons with a virtual push-button being displayed during each time interval, the step of generating the virtual push button occurring upon detection of an untouch action at the first location during display of a preferred one of the virtual push-buttons. 
     In a seventh aspect of the present invention, the step of sensing the occurrence of the second predetermined condition comprises the step of sensing an input at another input device functionally connected to the computing system. 
     In an eighth aspect of the present invention, the step of sensing an input at another input device comprises the step of sensing actuation of a key of a keyboard device. 
    
    
     These and other objects, advantages and features of the present invention will be more fully understood and appreciated upon considering the following detailed description of preferred embodiments, presented in conjunction with the accompanying drawings. 
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the Drawings: 
     FIG. 1 is a somewhat diagrammatic block diagram of a computing system including a touch screen input/display device configured in accordance with the principles of the present invention. 
     FIG. 2 is a flowchart of one preferred embodiment of the method of the present invention when used in conjunction with the hardware depicted in FIG. 1. 
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     It has been discovered that when a resistive touch screen or pad of the type described in the referenced patents is touched in two places at the same time, the screen returns a single position which is located about half way between the two positions actually being touched. This untouched, single position is therefore available to serve as a virtual push-button. 
     Also, when the screen or pad is being touched at one point and is then touched at another point as well, there is a sudden large change or discontinuity in reported position which is more sudden and discontinuous than would be produced by a rapid motion of the finger or stylus across the screen or pad. Since there will have been no detected untouch action prior to this large, discontinuous change, its occurrence is distinct, and may therefore be distinguished as abnormal from other functional activities at the touch screen/touch pad. Therefore, the action of touching the screen/pad at a second touch point without first releasing a still active first touch point thereby creates one form of virtual push-button. 
     Although the present invention has been developed for use with a glass resistive touch screen, the present techniques may be effectively used with any touch screen or touch pad which, when touched at two different points, will return a position significantly different than for either point actually being touched. 
     The activation of a virtual push-button not only indicates that a sudden change in position has take place, but also reports the direction and amount of that change. Thus, it is easily possible to determine whether the second touch was above, below, to the right or to the left of the original touch. Finer distinctions of angular direction are also easily implemented In particular, the implementation of four distinct virtual buttons, one for each of the cardinal directions, is both easy to implement and easy for an operator to remember. It is also possible to differentiate different virtual push-buttons in the same direction on the basis of the distance between the two simultaneous touch actions giving rise to the virtual push-button. 
     In addition to enabling abortion of a normal touch-untouch operation, virtual push-buttons have other very useful properties. On a touch screen or touch pad, actual or assigned push buttons are usually defined by establishment of a function (push-button) at a particular location. Usually, visual information is provided to identify each actual button&#39;s position and function. Touch screens in particular are often implemented so that the visual information presented at the screen changes as required in order to match redefined button positions. However, within any given visual presentation, the location of each actual push button will be fixed. 
     A virtual push-button, on the other hand, is not fixed to any position on the screen, but is defined at a position related to the positions of two simultaneous touch actions giving rise to the virtual push-button. Thus, virtual push buttons may coexist with and even overlie actual push button locations without creating any interference with the functions normally assigned to those actual push button locations. This feature is particularly useful for buttons which are to retain common and useful functions regardless of the information presented on the screen; functions such as &#34;cancel&#34; and &#34;confirm&#34;. 
     Since the virtual push button is by definition an abnormal or discontinuous action which readily lends itself to &#34;abort&#34; or &#34;cancel&#34; operations, it is apparent that this principle may be extended to other characteristics and usages of the touch screen or touch pad. For example, timing may be considered as a control factor in the operation of touch screens and touch pads. Normally, once a selection has been accurately located by using visual feedback, the time interval until the accompanying untouch selection action occurs is quite short. It is therefore possible to define an abnormally long time interval as another variety of virtual push-button. 
     For example, if an abnormally long time interval elapses between the touch action and the untouch action, this inordinate delay may be used to cancel the selection function of the untouch action. If accompanied by visual feedback, this timeout feature may become a powerful tool in its own right. For example, the visual feedback may be made to cycle through a sequence of patterns representing different functional push-buttons whereby the user may select a particular function or activate a particular push-button by performing an untouch action while the desired visual pattern is currently being presented. In such an operation the patterns are not restricted to the touch point, but they may be visual signals displayed elsewhere on the screen, off the screen, or they may be other forms of signals such as aural or voice synthesized signals presented to the user via appropriate transducer devices. Any signal capable of being perceived by the user may be employed with touch-untouch action time intervals in order to provide a successive series of virtual push-buttons in accordance with the principles of the present invention. 
     Furthermore, with touch screens which sense the level of touch pressure at, as well as the orthogonal coordinates of, the touch location, the amount of sensed touch pressure may be used in a manner analogous to time in the immediately preceding example, with an increase in pressure being considered an abnormal condition producing a virtual push-button. Further increases in pressure, especially if accompanied by feedback to the user from the computing system, such as a visual display, can be sensed as other distinct virtual push-buttons. Untouch action then provides selection of the virtual button defined and determined by the greatest pressure sensed. 
     Virtual push-buttons give touch screens and touch pads the same range of capabilities as other position-reporting devices, such as computer &#34;mice&#34;, &#34;tablets&#34;, and &#34;light pens&#34; which usually have electromechanical push-buttons present on the mechanism which are available for manipulation by the user&#39;s hand during positioning operations. 
     With reference to FIG. 1, a computing system 10 includes a computer 12 such as an IBM Personal Computer (tm). In addition to conventional CPU, memory, mass storage and input/output interface elements connected by internal data and control buses, the computer 12 may include an internal timer established by software or hardwrre for marking predetermined time intervals. A display adaptor 14 is connected to the bus of the computer 12 and is also connected to drive a suitable display device such as a CRT monitor having a display screen 16. A transparent touch screen 18, for example of the type described in the referenced U.S. Pat. No. 4,220,815, overlies the display screen 16 and senses touch and untouch actions performed e.g. by the index finger and thumb of a user. The touch screen 18 is connected electrically to a touch screen controller 20, which is in turn connected to the bus of the computer 12. 
     The touch screen controller 20 provides the drive voltages for the x and y axes of the screen 18, converts the analog signals from the touch screen 18 into digital coordinates for x and y, and transmits these coordinates to the host processor 12. Since the touch screen 18 has analog outputs, the coordinate (x,y) resolution is determined by the resolution of the analog to digital converter within the controller 20. With a twelve bit analog to digital converter, the screen resolution may be up to 4000 by 4000 points across the active surface of the touch screen 18. The controller 20 may be polled or interrupt driven, and it generates coordinate pairs as long as the touch screen 18 is being touched. 
     Preferably, the touch screen 18 may be an Elographics ACCUTOUCH (tm) E274 or E270 Touch Screen, and the controller 20 may be an Elographics E271-141 controller which is configured as a half slot expansion card for insertion into a bus connector of the personal computer 12. In order to work with the software appearing at the end of this document, the E271-141 controller may be switch-configured for 12 bit resolution, with streaming output to the host 12. Other configurations are easily implemented with minor changes in the software. Other touch screens, such as the Elographics DURATOUCH (tm) resistive membrane touch screen or the Elographics SAW (surface accoustic wave) Touch Screen and other Elographics controllers, including the E271-140 and E271-60 work equally well with the present invention. 
     As illustrated in FIG. 1, the user&#39;s forefinger may touch the screen 18 at a location 22. When this happens, the touch screen controller derives orthogonal (x,y) coordinate information to fix the location 22 and sends an interrupt to the computer 12. The host processor within the computer 12 then enters a series of service routines. These routines sense the location 22 as an actual button and generate predetermined graphical information at the screen 16 in response to the touch action at the location 22. If the user&#39;s forefinger is removed from the location 22, then an untouch action is detected, and this action may be used to select the function or operation called to the screen when the location 22 was originally touched. 
     Now, if before the forefinger is removed from the location 22, the user&#39;s thumb is brought into contact with the screen 16 at a location 24, a virtual push button at location 26 is thereby established, and this virtual push-button may operate e.g. to cancel the function originally called up by depressing the location 22 of the touch screen 18, or it may have some other preestablished function or consequence. 
     Alternatively, the touch action of the forefinger at the location 22 may set a timer which, after a predetermined normal untouch period, causes a menu 28 to begin to cycle through program options or choices for example. When a particular option or choice of interest to the user becomes displayed in the menu area 28, an untouch action at the location 22 then causes that particular choice to be selected. In this way the virtual push button is established in the temporal, as opposed to the spatial, domain. 
     Alternatively, the screen 16 may be of the surface accoustic wave type, and increased pressure of the touch action of the forefinger at the location 22 may be sensed as a second predetermined condition, thereby establishing the presence of a virtual push-button. 
     The computing system 10 may conventionally be provided with a keyboard 30 for text entry. One or more of the keys of the keyboard may be used in conjunction with the touch screen 18 to provide a virtual push-button. For example, during continuation of the touch action at the location 22, a key of the keyboard 30 may be depressed, resulting in the generation of a virtual button which may produce a predetermined display upon the screen 16. 
     FIG. 2 sets forth a flow chart illustrative of a single virtual push-button in accordance with the principles of the present invention. The virtual push-button is established by detection of &#34;large&#34; distance changes in button location. The FIG. 2 flowchart also includes untouch detection. The flow sequence charted in FIG. 2 may be activated either by an interrupt from the touch screen controller 20 or by a timer established within the computer 12. If a timer is used, the time interval for activation is set according to the response time desired and other requirements of the system. 
     For example, typical touch controllers are capable of producing streaming data output of touch coordinates at a rate around 100 points per second. Individual designs may easily vary from less than one fourth to over four times the 100 points per second rate. The routine described by the FIG. 2 flowchart is typically activated by an interrupt each time a coordinate pair is generated. Thus, interrupts are continuous at the controller-determined rate during a touch operation, and cease completely when no touch is sensed. If the controller is not designed to detect and report the end of a touch operation (untouch action), it is helpful to activate the routine via a timer interrupt as well as the controller interrupt, in order to detect when the controller has ceased to generate interrupts. Timer interrupt frequency is selected to enable reliable untouch detection, which typically requires about 50 milliseconds and may easily vary from less than one fourth to four times that interval, depending upon the specific controller, screen and operating environment. 
     The FIG. 2 control program is entered at an entry point 40 and a logical node 42 determines whether a touch is in progress. Initially, the flag to &#34;deactivate untouch&#34; is false and the &#34;new sequence&#34; and &#34;buttons&#34; flags are true. If a touch is not in progress, as tested at the node 42, a logical node 44 determines if the present sequence is a &#34;new sequence&#34; in order to check to see whether the associated untouch can be reported yet. If a new sequence is detected at the node 44, the program is exited at an exit point 46. If not, a logical node 48 determines whether untouoh has been detected. If not, the program is exited at the exit point 46. If so, according to the &#34;deactivate untouch&#34; flag as established at a logical node 50, the untouch is either reported at an output block 52 or discarded. In either case, a process block 54 sets the &#34;deactivate untouch&#34; flag to false, and the &#34;buttons&#34; and &#34;new seuence&#34; flags to true. Setting the &#34;new sequence&#34; flag true prevents the same untouch from being reported more than once as well as insuring the proper initiation of the next sequence of touch reportings. The program is then exited at an exit point 56. 
     If a touch is in progress as tested at the node 42, the x, y coordinate values are obtained from the touch screen controller 20 at a process block 58. A check is made at a logical node 60 to see if a &#34;new sequence&#34; is starting. If so, there is no check made for virtual button operation, since there is no reference position from which to measure changes in distance; and the program execution proceeds directly to a process block 62 in which the x value is stored in an x previous value register and the y value is stored in a y-previous-value register. 
     If the present sequence is not a &#34;new sequence&#34; as determined at the logical node 60, then a &#34;buttons&#34; flag is checked at a logical node 64. If the &#34;buttons&#34; flag is not enabled, then program execution proceeds directly to the process block 62. If the &#34;buttons&#34; flag is set, then a process block 66 calculates a Delta x as equal to the present x value minus the previous x value, and a Delta y as equal to the present y value minus the previous y value. The process block 66 also calculates the sum of Delta x square and Delta y square. 
     While the FIG. 2 program calculates circular distance (Dx 2  +Dy 2 ), in some situations it may be preferable to use other values such as absolute distance |Dx| or |Dy| for the comparison made at the process block 66. 
     A logical node 68 determines whether the sum of Delta x square and Delta y square is larger than a predetermined virtual button threshold value. If not, the program execution proceeds directly to the process block 62. If so, then a virtual button is reported at a process block 70, and the &#34;deactivate untouch&#34; flag may be set true and the &#34;buttons&#34; flag (tested at node 64) is set false at a block 72. The &#34;buttons&#34; flag is set false at this block 72 to prevent multiple activations of the same button. The &#34;deactivate untouch&#34; flag is usually set true at the block 72 since it is usually desirable to ignore untouch action when a virtual button is first activated, but this decision is a matter of program convention and is not necessary. 
     In any case, when program execution leaves either the process block 62 or the process block 72, the &#34;new sequence&#34; flag (tested at node 60) is set false and the x and y coordinates are reported at a process block 74, and the program is then exited at an exit node 76; to be repeated at the next interrupt or time out from the internal timer. 
     Here follows a program listing in Microsoft Macro Assembler language for the Intel 8086/8088 series microprocessors. In addition to the program flow charted in FIG. 2, the following program also implements untouch detection and the distinction of virtual buttions in the four cardinal directions. One of the buttons is intentionally made more difficult to activate so that it cannot be pressed by accident. ##SPC1## 
     To those skilled in the art to which the present invention pertains, many widely differing embodiments and arrangements will be suggested upon consideration of the foregoing. The description of presently preferred embodiments herein is by way of illustration only, and should not be construed as limiting the present invention, the scope of which is more particularly set forth by the following claims.