[go: up one dir, main page]

WO2003038585A2 - Detecting a degree of manual interaction with a manually operable key - Google Patents

Detecting a degree of manual interaction with a manually operable key Download PDF

Info

Publication number
WO2003038585A2
WO2003038585A2 PCT/GB2002/004896 GB0204896W WO03038585A2 WO 2003038585 A2 WO2003038585 A2 WO 2003038585A2 GB 0204896 W GB0204896 W GB 0204896W WO 03038585 A2 WO03038585 A2 WO 03038585A2
Authority
WO
WIPO (PCT)
Prior art keywords
degree
key
interaction
input signal
keyboard
Prior art date
Application number
PCT/GB2002/004896
Other languages
French (fr)
Other versions
WO2003038585A3 (en
Inventor
David Lee Sandbach
Andrew Ronald Cattell
Christopher Chapman
Original Assignee
Eleksen Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB0125976A external-priority patent/GB2381632A/en
Priority claimed from GB0125978A external-priority patent/GB2381584A/en
Priority claimed from GB0125983A external-priority patent/GB2381499A/en
Application filed by Eleksen Limited filed Critical Eleksen Limited
Priority to AU2002341148A priority Critical patent/AU2002341148A1/en
Publication of WO2003038585A2 publication Critical patent/WO2003038585A2/en
Publication of WO2003038585A3 publication Critical patent/WO2003038585A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/045Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using resistive elements, e.g. a single continuous surface or two parallel surfaces put in contact
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0221Arrangements for reducing keyboard size for transport or storage, e.g. foldable keyboards, keyboards with collapsible keys

Definitions

  • the present invention relates to detecting the degree of manual interaction with a manually operable key.
  • the present invention relates to processing a variable extent input signal that has been produced in response to a mechanical interaction, in which the extent of the input signal is related to the degree of mechanical interaction.
  • the present invention is concerned with position detectors that produce a variable extent input signal in relation to a degree of mechanical interaction, including position detectors configured as keyboards having manually operable keys.
  • the present invention is concerned with manually operable keys that produce a variable extent input signal in relation to a degree of manual interaction.
  • the extent of an input signal produced in response to an interaction is indicative of the degree of interaction, and the extent of the input signal is utilised to derive additional data, or to modify the response of the data processing environment to the detection of an interaction.
  • a degree of interaction is used to control an operation of the processing device.
  • a position detector is described in British Patent No. 2 341 933 (B), assigned to the present applicant.
  • the response of a detector of this type may be considered in terms of its positional accuracy, the dynamic range of pressure related signals and the maximum rate at which positional data may be obtained. After a mechanical interaction has been made upon the detector, a finite time must elapse before valid information may be derived.
  • the electrical nature of the device introduces a degree of capacitance therefore a settling time must elapse before it is possible to obtain positional data.
  • a settling time is too long, the response of a device may appear sluggish to users and therefore unacceptable for many applications.
  • the settling time is too short, there is a risk that invalid positional data will be obtained.
  • the function of differentiating between degrees of a mechanical interaction is utilised to modify the length of the settling time.
  • a manually operable key may be considered as any device that is responsive to manual operation in order to convey information to a data processing environment.
  • this includes keys of the type that are combined into an array so as to form a keyboard, either a full keyboard, such as that used for a personal computer, or a keyboard of reduced size such as that used for a mobile telephone.
  • a known type of key is entirely digital in construction and can represent a first condition, to the effect that the key has not been pressed, or a second condition, to the effect that the key has been pressed. Such keys are not within the scope of the present invention.
  • variable extent input signal produced in relation to the degree of manual interaction may be responsive to the force, pressure, area or speed of the manual interaction with the key.
  • Each of these may vary, along with other mechanical characteristics or conditions, and all are to be considered as being examples of the manual interaction varying in degree.
  • a problem with devices that produce variable extent input signals in response to a manual or mechanical interaction is determining when an actionable interaction has occurred. For example, input signals representing non-actionable interactions, or background noise, can be produced due to the pressure of the cover of the device, or a finger or object resting on the device.
  • the present invention provides a data processing environment in which the extent of the variable extent input signal produced in relation to the degree of an interaction can be utilised to distinguish between a number of conditions, for example between an actionable interaction from a non- actionable interaction, or an interaction of a first degree, for example a soft press, from an interaction of a second degree, for example a hard press.
  • a known approach to identifying the degree of an interaction is to wait until a first threshold level has been exceeded and then continue to sample the input signal so as to determine whether a second threshold is exceeded.
  • a problem with this approach is that the sampling rate may be insufficiently high and therefore it is possible for a high level peak to be missed.
  • the sampling rate is increased, a greater burden is placed on available processing capabilities and eventually an upper constraint will exist, possibly enforced by electrical or mechanical limitations, such as capacitive effects or inertia related effects.
  • the extent of a variable extent input signal, produced in relation to the degree of a key press is compared against a first predetermined threshold, to determine whether the input signal is indicative of an actionable or a non-actionable key press, and, if the first threshold is exceeded, is compared against a second threshold to determine whether the extent of the input signal is below the threshold, and thus represents a soft press, or whether the input signal exceeds the threshold, and thus represents a hard press.
  • a preferred embodiment of the present invention is directed towards distinguishing between three conditions, that a key has not been pressed, that a key has been pressed softly or that a key has received a hard press.
  • the function of distinguishing between degrees of manual interaction with a key is utilised to confer to the user the ability to select an upper case or lower case character for that key, for example, a soft or slow press would select the lower case character and a hard or fast press would select the upper case character, this mode of operation being intuitive for the user.
  • the function of detecting degrees of manual interaction with a key is utilised to confer control to the user over the auto repeat rate for a character, the auto repeat rate being proportional to the degree of manual interaction with a key.
  • the function of differentiating between degrees of interaction with a device can be utilised to control other operations of a data processing device.
  • apparatus for measuring the position of a mechanical interaction in which voltages are measured after a settling time comprising variable extent input signal generating means configured to generate an variable extent input signal related to the degree of the mechanical interaction; and settling time modification means configured to modify said settling time in response to the extent of said input signal.
  • a method of detecting a degree of manual interaction with a manually operable key wherein a variable extent input signal is produced in relation to a degree of manual interaction; and a processing procedure is initiated if the extent of said input signal exceeds a first threshold level; said processing procedure comprising the steps of examining the extent of said input signal after an interval; and comparing said examined extent against a second threshold level to identify a first degree of manual interaction or to identify a second degree of manual interaction.
  • apparatus for detecting a degree of manual interaction with a manually operable key wherein a variable extent input signal is produced in relation to a degree of manual interaction
  • processing means configured to initiate a processing procedure if the extent of said input signal exceeds a first threshold, said processing procedure comprising the steps of examining the extent of said input signal after an interval; and comparing said examined extent against a second threshold level to identify a first degree of manual interaction or to identify a second degree of manual interaction.
  • the present invention does not continue to monitor the input signal to determine whether it exceeds a second threshold level.
  • the processing procedure waits for a period of time such that the value of the input signal is examined again after this interval.
  • this interval is not critical, provided that its duration remains substantially constant throughout the use of the device.
  • the procedure is not waiting for the input signal to pass some predetermined level.
  • the processing procedure determines to what extent the level has increased after a predetermined interval of time.
  • this effectively involves a determination of rate of change of the input signal as an alternative to observing many individual signal samples in an attempt to identify an appropriate instant at which the signal exceeds a predetermined level.
  • a fifth aspect of the present invention there is provided a method of controlling an auto repeat rate for a manually operable keyboard, wherein the auto repeat rate is increased in response to an increase in a degree of manual interaction with a key.
  • apparatus for controlling an auto repeat rate for a manually operable keyboard comprising processing means configured to increase said auto repeat rate in response to an increase in a degree of manual interaction with a key.
  • Figure 1 shows a hand held computer to which a manually operable keyboard embodying the present invention is connected;
  • Figure 2 shows a schematic representation of the arrangement shown in Figure 1;
  • Figure 3 plots time against voltage for a first example data set of information generated during a mechanical interaction with the manually operable keyboard shown in Figure 1;
  • Figure 4 plots time against Z value for the example data set of information shown in Figure 3;
  • Figure 5 plots time against Z value for a second example data set of information generated during a mechanical interaction with the manually operable keyboard shown in Figure 1;
  • Figure 6 shows three examples of a variable extent input signal produced in response to mechanical interactions with the keyboard shown in
  • Figure 7A shows an example of a result of a series of soft key presses and Figure 7B shows an example of a result of a series of hard key presses;
  • Figure 8 shows interface circuit program instructions to implement a first preferred embodiment of the present invention
  • FIG 9 shows the reset last data sent store step shown in Figure 8 in further detail
  • Figure 10 shows the is press detected question step shown in Figure 8 in further detail
  • Figure 11 shows the determine Z A step shown in Figure 10 in further detail
  • Figure 12 shows the is press detected for duration of ⁇ interval question step shown in Figure 8 in further detail
  • Figure 13 shows the determine X, Y and Z B values step shown in Figure 12 in further detail
  • Figure 14 shows a wait modified delay step shown in Figure 13 in further detail
  • Figure 15 shows the is press a valid key press question step shown in Figure 8 in further detail
  • Figure 16 shows the process Z B to determine key scan code, send and store as last data sent step shown in Figure 8 in further detail
  • Figure 17 shows the does valid key press exist for duration of auto repeat delay question step shown in Figure 8 in further detail
  • Figure 18 shows auto repeat function step shown in Figure 8 in further detail
  • Figure 19 shows the wait modified delay step shown in Figure 18 in further detail
  • Figure 20 shows interface circuit program instructions to implement a second preferred embodiment of the present invention
  • Figure 21 shows keyboard driver program instructions to implement a second preferred embodiment of the present invention
  • Figure 22 shows the determine character code, supply and store as last data supplied step shown in Figure 21 in further detail
  • Figure 23 shows the is the same key being determined for the duration of the auto repeat delay question step shown in Figure 21 in further detail
  • Figure 24 shows the auto repeat function step shown in Figure 21 in further detail
  • FIG. 1 shows a fabric keyboard 101 interfaced to a hand held computer 102.
  • Fabric keyboard 101 interfaced to a hand held computer 102.
  • fabric keyboard 101 utilises a layered construction, and is an example of a device that measures the position of mechanical interactions.
  • fabric keyboard 101 When fabric keyboard 101 is not in use, it may be wrapped around the hand held computer 102, so as to provide a degree of protection for hand held computer 102 in a way that does not distract from the portability of hand held computer 102.
  • fabric keyboard 101 When a user wishes to enter data into the hand held computer 102, fabric keyboard 101 is unwrapped from around hand held computer 102 and placed upon a flat support surface.
  • the hand held computer 102 may be supported by a stand or held by a user, as shown in Figure 1.
  • Either hand could be used for either application or if the hand held computer 102 is supported by a stand, both hands may be used for data entry.
  • Fabric keyboard 101 includes an array of manually operable keys, such as key 105.
  • the manual operation of key 105 causes a mechanical interaction with fabric keyboard 101.
  • a variable extent input signal is produced, in which the extent of the input signal is related to the degree of the mechanical interaction.
  • fabric keyboard 101 and is an example of a device that measures the position of mechanical interactions, and also produces a variable extent input signal in response to a manual interaction with a key 105.
  • Fabric keyboard 101 comprises two conducting planes 201, a first incorporated in a first fabric detector layer 202, from which an X positional value can be determined, and a second incorporated in a second fabric detector layer 203, from which a Y positional value can be determined.
  • the current flowing between detector layer 202 and detector layer 203 can be measured to indicate a Z reading, which is indicative of the degree of interaction between the layers 201.
  • Fabric keyboard 101 includes an interface circuit 204.
  • the hand held computer 102 executes programs read from its program memory. Users interact with application programs, such as application 205, taking the form of a note pad. Alternatively, application 205 could take the form of an address book, a diary or a more specific type application program written for the device.
  • keyboard driver 206 In conventionally, hand held computers and similar devices communicate with input devices via their operating system. To effect communication with alternative peripherals, the operating system is enhanced by means of appropriate drivers, such as keyboard driver 206.
  • the interface circuit 204 in combination with keyboard driver 206 provides a means of communication between the conducting planes 201 and the users application program 205.
  • the interface circuit 204 and the keyboard driver 206 each do a degree of the work and the actual share of the interface work may vary.
  • the interface circuit 204 may be made more simple if the keyboard driver 206 is given more work to do, although this then places an additional overhead on the internal processor of the hand held computer 102.
  • mechanisms are included for identifying a condition to the effect that the hand held device is in use. When not in use, it is preferable for all non-essential energy consuming components to be powered down thereby conserving battery life.
  • a mechanism may be included for powering up the device when arranged in an operating orientation or, alternatively, the device may respond to manual operation of a power button.
  • the interface circuit 204 of keyboard 101 applies electrical signals to the conducting planes 201 in order to determine the position and the degree of a mechanical interaction.
  • the manual operation of a key 105 causes the first detector layer 202 and the second detector layer 203 to be brought into contact thereby allowing electrical conductivity to occur between them through an appropriate inner separating layer (not shown).
  • a variable extent input signal is produced, in relation to the degree of the interaction.
  • Voltage gradients are created such that a measured voltage will be dependent upon the position of a mechanical interaction. From measurement of voltage gradient, X and Y values related to the position of a mechanical interaction are generated, from which the key that has been pressed can be identified. In addition, from measurement of current flow, a Z intensity value related to the degree of the key press is generated. The current flow is proportional to the degree of the press, thus, the harder the press effected by the user, the greater the current flow.
  • X, Y and Z analogue values are converted into digital 8-bit codes.
  • a set of X, Y and Z values is converted into a single 8-bit key scan code.
  • the key scan code is then sent to the keyboard driver 206, which identifies the character to be output to the application 205 by, for example, reference to a lookup table.
  • each X, Y and Z analogue value is converted into a digital 8-bit code, and a set of converted X, Y and Z values is sent to the keyboard driver 206 for further processing.
  • variable extent input signal is produced in response to manual interaction with a key 105.
  • the extent of the variable extent input signal is related to the degree of the interaction. From this input signal, data sets of information are generated, as described with reference to
  • Figure 3 which shows an example data set 301 , plots voltage (V) on each fabric detector layer 202, 203 against time ( ⁇ s), and shows the order of readings taken.
  • a data set comprises readings of current and voltage.
  • a measurement of the voltage appearing on fabric detector layer 203 is taken, from which an X positional value can be determined. After this measurement, the roles of the conducting planes 201 are reversed; a voltage is applied across fabric detector layer 203 only, such that a potential gradient is produced across fabric detector layer 203.
  • a measurement of the voltage appearing on fabric detector layer 202 is taken, from which a Y positional value can be determined. After this measurement, a voltage is applied to fabric detector layer 203 whilst fabric detector layer 202 is grounded, in a similar configuration as for the previous Z1 measurement.
  • example data set 301 comprises six measurements; two current measurements (in opposite directions through the manually operable keyboard 101) followed by two voltage measurements and then two further current measurements (in opposite directions through the manually operable keyboard 101).
  • the duration of this example data set 301 is 600 ⁇ s, with a settling time, SZ, of 60 ⁇ s for Z intensity measurements, a settling time, SX, of 180 ⁇ s for the X positional value measurement, and a settling time, SY, of 180 ⁇ s for the Y positional value measurement.
  • Figure 4 shows how the generation of the example data set 301 is initiated.
  • Figure 4 plots Z (counts) against time ( ⁇ s).
  • the interface circuit 204 produces Z values ranging from zero (0) to two hundred and fifty-five (255).
  • Figure 4 shows the variation in the Z intensity value of variable extent input signal 401 against time, and also shows when different measurements are taken.
  • a variable Z A can be produced from a pair of Z1 and Z2 measurements, as illustrated by relationship 402.
  • a variable Z B can be produced from a pair of Z3 and Z4 measurements, as illustrated by relationship 403.
  • Relationships 402 and 403 show that the Z1 and Z2 values, and the Z3 and Z4 values respectively, are added together and divided by 2. In this way, relationships 402 and 403 each produce an averaged Z value that is less position dependent than a single Z measurement.
  • example data set 301 produces a data set comprising a Z A value, an X positional value, a Y positional value and a Z B value, wherein the Z A and Z B values are both representative of the Z value of an input signal, but at the beginning and the end of the data set respectively.
  • Figure 4 shows a first Z threshold level, T1 , set equal to a value of twenty-five (25) counts, and a second threshold level, T2, set equal to a value of one hundred (100) counts.
  • Threshold T1 is utilised to indicate that an actionable mechanical interaction is detected.
  • Threshold T2 is utilised to determine the degree of the mechanical interaction. The degree of the interaction is used to select between at least two subsequent processing functions.
  • input signal 401 is considered to represent background noise only, and is not considered to be indicative of an actionable mechanical interaction.
  • measurements are taken to produce a third Z A value.
  • this third Z A value is determined to be above threshold T1 , and thus an actionable mechanical interaction is considered to be detected.
  • Z A values are produced until a Z A value is determined to be above threshold T1 , whereafter measurements are taken to determine X, Y and Z B values.
  • the comparison of the Z A value against threshold T1 is utilised to identify an actionable mechanical interaction, and is utilised to trigger the generation of X, Y and Z B values.
  • the actual value of the Z A value is utilised to modify the settling times before voltage measurements, from which X and Y positional values of a mechanical interaction can be determined, are taken.
  • a mechanical interaction upon the manually operable keyboard 101 causes the first detector layer 202 and the second detector layer 203 to be brought into contact, thereby allowing electrical conductivity to occur between them through an appropriate inner separating layer (not shown).
  • the contact resistance between the conducting planes 201 is related to the applied force of the mechanical interaction; an increase in the applied force of a mechanical interaction will result in a decrease in contact resistance between the conducting planes 201.
  • the settling time, SZ before which a Z measurement can be accurately taken, does not vary significantly.
  • the settling time, SZ is not affected significantly by the size of the manually operated keyboard 101 or the position of the mechanical interaction within the manually operated keyboard 101.
  • the settling time, SZ is a predetermined period.
  • the capacitance of the manually operable keyboard 101 is related to the applied force of the mechanical interaction.
  • An increase in the applied force of a mechanical interaction will result in a decrease in the settling times SX and SY, before which a voltage measurement can be accurately taken.
  • the actual value of a Z A value which has been determined to be above threshold T1 , can be used to modify the settling times SX and SY.
  • the settling times SX and SY are dynamically determined.
  • SX and SY are the same duration.
  • Figure 5 shows how the generation of a second example data set 501 is initiated.
  • Figure 5 plots Z (counts) against time ( ⁇ s), shows the variation in the Z intensity value of variable extent input signal 502 against time, and also shows when different readings occur.
  • a first Z A value of variable extent input signal 502 is determined to be below Z threshold T1.
  • input signal 502 is considered to represent background noise only, and is not considered to be indicative of an actionable mechanical interaction.
  • measurements are taken to produce a third Z A value.
  • this third Z A value is determined to be above threshold T1, and thus an actionable mechanical interaction is considered to be detected.
  • the duration of example data set 501 is 960 ⁇ s, which is 360 ⁇ s longer than that of data set 301.
  • ⁇ 1 is the time at which a Z A value of an input signal is determined to be above threshold T1 for the first time.
  • An interval of predetermined duration ⁇ is initiated when a Z A value is determined to be above threshold T1.
  • 1 is the start of an ⁇ interval, such as interval 601, which is shown in, and described with reference to, Figure 6.
  • Figure 6 shows three examples of a variable extent input signal 602, 603, 604.
  • Figure 6 plots Z (counts) against time (s), and shows the variation in the Z value of each input signal 602, 603, 604 against time.
  • the Z value of variable extent input signal 602 is shown to be above threshold T1 for the first time.
  • the duration of ⁇ interval 601 is 0.02 s
  • example data set 301 comprises a Z A value, an X positional value, a Y positional value and a Z B value, in that order, and after the Z B value is determined, the generation of a subsequent Z A value is initiated. If this Z A value is determined to be above threshold T1 , the rest of the data set is generated. Thus, oc, is the start of the generation of data sets, which continues whilst values of Z A are determined to be above threshold T1.
  • An input signal that has a Z value less than threshold T1 is not considered to represent a an actionable mechanical interaction. Due to the nature of the input signals produced by manually operable keyboard 101, which are variable in extent, a problem arises in detecting an actionable mechanical interaction, to which a response is to be generated, from background noise.
  • the ⁇ interval 601 is 0.02 s in duration. This processing time is unnoticeable to the user, but provides a means of ensuring that an actionable mechanical interaction is identified, before a response to the input signal is generated.
  • the ⁇ interval 601 is 0.02 s in duration.
  • the ⁇ interval can be any duration, but the duration should remain constant or substantially constant throughout the operation of the detector. The actual duration of the ⁇ interval should be determined empirically to optimise operational characteristics.
  • variable extent input signal 602 represents a no press condition, and no response to input signal 602 is generated.
  • threshold T1 This comparison is made to determine whether, at the end of the measurements for the X and Y positional values, an actionable mechanical interaction still exists.
  • the Z value of input signal 603 is above threshold T1.
  • a comparison of the same Z B value against threshold T2 is made.
  • the Z value of input signal 604 is above threshold T2.
  • input signal 604 is considered to represent a hard press condition.
  • the comparison of the Z value of an input signal against a threshold after a predetermined time from the identification of that input signal as being representative of an actionable mechanical interaction is utilised to distinguish between a soft press and a hard press of a key 105 of manually operable keyboard 101.
  • the above described method of distinguishing between degrees of mechanical interaction does not depend on the maximum Z value achieved by an input signal during the time the input signal exists, but instead depends on the Z value achieved after a predetermined time from the identification of that input signal as being representative of an actionable mechanical interaction.
  • the gradient of the Z value curve for an input signal between time cc, and time 2 can be considered as being representative of the rate of change of the Z value of the input signal during the interval duration.
  • the Z value is indicative of the extent of the input signal which is produced in response to a mechanical interaction, and is related to the degree of the mechanical interaction.
  • the input signal can be responsive to the force, pressure, area, speed or attack rate of interaction.
  • the rate of change of the Z value is indicative of the rate of change of the degree of mechanical interaction, thus, the rate of change of the degree of mechanical interaction is utilised to determine the operation to be performed orto determine whether an operation is to be performed.
  • the function of distinguishing between a soft key press and a hard key press confers to the user the ability the select one of two functions that can be generated in response to the manual interaction of a key 105.
  • the different types of key press can be used to supply different types of data to the application 205 running on hand held computer 102.
  • the application 205 is a note pad, and is recording alpha-numeric characters in response to manual operation of the keys of keyboard 101.
  • the word “elektex" has been supplied to the display by the user pressing the keys "E” "L” “E” "K” "T” "E” "X” on the keyboard 101.
  • the user has effected a soft key press upon on each of the keys, and as a result, the information sent to the keyboard driver 206 results in the lower case version of each character being supplied to the application 205.
  • the extent of the variable extent input signal produced in response to manual interaction with a key can be utilised to modify settling times within the operation of the manually operable keyboard 101, to select the upper or lower case version of a character, and to control the auto repeat rate of a character.
  • the present invention provides controllability over the response of the manually operable keyboard 101 to manual operation of a key 105.
  • interface circuit 204 preferably includes a micro-controller with appropriate program instructions.
  • Program instructions required to implement a first preferred embodiment of the present invention are illustrated in Figure 8.
  • the hand held computer 102 is switched on at step 801 and power is supplied to the interface circuit 204 of manually operable keyboard 101.
  • the hardware is initialised and an initial message is sent to the hand held computer 102 via the serial output port.
  • the last data sent store is reset. This process is described with reference to Figure 9.
  • step 804 a question is asked as to whether a press has been detected. This process is described with reference to Figure 10 and Figure 11. If the question asked at step 804 is answered in the negative, step 803 is re- entered. If the question asked at step 804 is answered in the affirmative, step
  • step 805 is entered, where a question is asked whether a press exists for the duration of the ⁇ interval. This process is described with reference to Figure 12. If the question asked at step 805 is answered in the negative, step 803 is re-entered. However, if the question asked at step 805 is answered in the affirmative, step 806 is entered, where a question is asked whether the press is determined to be a valid press. This process is described with reference to Figure 15. Again, if the question asked at step 806 is answered in the negative, step 803 is re-entered. However, if the question asked at step 806 is answered in the affirmative, step 807 is entered, where the X and Y positional values are processed to determine which key has been pressed.
  • step 808 a question is asked whether the key identified at step 807 is the same as the last identified key for which data was sent to the keyboard driver 206.
  • the first time step 807 is entered the question will be answered in the negative, and step 809 is entered.
  • the last generated Z B value is processed to determine which of two possible key scan codes for that key to send to the keyboard driver 206. This process is described with reference to Figure 16. After the key scan code to be sent is determined at step 809, that key scan code is sent to the keyboard driver 206 and is stored as the last data sent. After step 809 is terminated, step 804 is re-entered.
  • step 807 the latest X and Y values are processed.
  • step 810 the question whether the key identified at step 807 is the same as the last identified key for which data was sent to the keyboard driver 206 is answered in the affirmative, and step 810 is entered, where a question is asked as to whether a valid key press is determined to exist for the duration of the auto repeat delay. This process is described with reference to Figure 17.
  • the auto repeat delay is set during power up, and is adjustable by the user. If the question asked at step 810 is answered in the negative, step 803 is re-entered. However, if the question asked at step 810 is answered in the affirmative, step 811 is entered, where the auto repeat function is performed, as described with reference to Figure 18. Once the auto repeat function has been terminated step 803 is re-entered.
  • Step 803 of Figure 8 is shown in further detail in Figure 9.
  • the interface circuit 204 sends digital 8-bit codes to the keyboard driver 206 of hand held computer 102.
  • the function of resetting the last data sent store is performed in preparation for the question asked at step 808.
  • Step 804 is shown in further detail in Figure 10.
  • Step 1001 is a wait delay, which in the present embodiment, is set so as to produce a sampling rate of approximately one thousand samples per second.
  • a Z A value is determined. This process is described with reference to Figure 11.
  • step 1003 a question is asked whether the Z A value determined at step 1002 is above threshold T1. If the question asked at step 1003 is answered in the negative, this is interpreted as a press not having been determined, and step 803 is re-entered. If the question asked at step 1003 is answered in the affirmative, this is interpreted as a press having been detected and step 805 is entered.
  • Step 1002 is shown in further detail in Figure 11.
  • a voltage is applied to fabric layer 203 of manually operable keyboard 101 to energise it, and the electrical configuration for taking a Z1 measurement is set up, after which step 1102 is entered.
  • Step 1102 is a predetermined wait delay, which according to the present embodiment is 60 ⁇ s.
  • a Z1 value is determined and stored, whereafter step 1104 is entered.
  • a voltage is applied to layer 202 of manually operable keyboard 101 to energise it, and the electrical configuration for taking a Z2 measurement is set up, after which step 1105 is entered.
  • Step 1105 is a predetermined wait delay, which according to the present embodiment is 60 ⁇ s.
  • step 1106 a Z2 value is determined and stored, whereafter step 1107 is entered.
  • step 1107 a Z A value is generated from the Z1 and Z2 values and stored, whereafter step 1003 shown in Figure 10 is entered. As previously described, if the question asked at step 1003 is answered negatively, step 803 is re- entered, but if the question is answered in the affirmative, step 805 is entered.
  • Step 805 is shown in more detail in Figure 12.
  • the time at which an input signal is detected as having a Z value above threshold T1 for the first time is time cc, which is the start of the ⁇ interval.
  • an ⁇ interval timer is started.
  • a question is asked whether a press is detected. This process is performed in the same manner as described with reference to Figure 10. If the question asked at step 1202 is answered in the negative, step 803 shown in Figure 8 is re- entered. However, if the question asked at step 1202 is answered in the affirmative, step 1203 is entered, where X, Y and Z B values are determined. This process is described with reference to Figure 13.
  • step 1204 is entered, where a question is asked whether the ⁇ interval timer has reached the interval time. If this question is answered in the negative, step 1202 is re-entered. The program loops around steps 1202, 1203 and 1204 for as long as a press is detected at step 1202 and the ⁇ interval timer is determined at step 1204 to be still timing up to the interval time. If the question asked at step 1204 is answered in the affirmative, step 1205 is entered, where the interval timer is stopped and reset to zero.
  • step 806 is entered.
  • Step 1203 is shown in further detail in Figure 13.
  • the electrical configuration for taking an X measurement is set up, whereafter step 1302 is entered.
  • Step 1302 which is described in further detail with reference to Figure 14, is a wait delay, the duration of which is modified according to the latest Z A value.
  • the wait delay at step 1302 acts as the settling time before which it is possible to obtain positional data, therefore the settling time is modified according to the degree of the mechanical interaction.
  • an X value is determined and stored.
  • a voltage is applied to layer 203 to energise it and the electrical configuration for taking a Y measurement is set up, whereafter step 1305 is entered.
  • Step 1305, is a wait delay, the duration of which is modified according to the latest
  • the wait delay at step 1305 acts as the settling time before which it is possible to obtain positional data, therefore the settling time is modified according to the degree of the mechanical interaction.
  • Step 1305 is performed in a similar way to step 1302.
  • a Y value is determined and stored, whereafter step 1307 is entered.
  • the electrical configuration for taking a Z3 measurement is set up, whereafter step 1308 is entered.
  • Step 1308 is a wait delay of predetermined duration, which according to the present embodiment is 60 ⁇ s.
  • a Z3 value is determined and stored.
  • step 1310 a voltage is applied to layer 202 to energise it, and the electrical configuration for taking a Z4 measurement is set up, whereafter step 1311 is entered.
  • Step 1311 is a wait delay of predetermined duration, which according to the present embodiment is 60 ⁇ s.
  • step 1312 a Z4 value is determined and stored, whereafter step 1313 is entered.
  • step 1313 a Z B value is generated from the Z3 and Z4 values and stored, whereafter step 1204 shown in Figure 12 is entered.
  • Step 1302 is shown in further detail in Figure 14.
  • a question is asked whether the Z A value, generated at step 1402, is above a first threshold L.
  • L is equal to 60 counts. If this question is answered in the negative, step 1402 is entered.
  • Step 1402 is a wait delay of a predetermined period, whereafter step 1403 is entered.
  • step 1402 is a delay of 400 ⁇ s.
  • step 1403 a question is asked whether the same Z A value is above a second threshold M.
  • Threshold M is greater in magnitude than threshold L. According to the present embodiment, M is equal to 100 counts. If the question asked at step 1403 is answered in the negative, step 1404 is entered. Step 1404 is a wait delay of a predetermined period, whereafter step 1405 is entered. According to the present embodiment, step 1404 is a delay of 200 ⁇ s. However, if the question asked at step 1403 is answered in the affirmative, step 1404 is bypassed and step 1405 is entered. At step 1405, a question is asked whether the same Z A value is above a third threshold N. Threshold N is greater in magnitude than threshold M. According to the present embodiment, N is equal to 150 counts. If the question asked at step 1405 is answered in the negative, step 1406 is entered.
  • Step 1406 is a wait delay of a predetermined period, whereafter step 1303 shown in Figure 13 is entered.
  • step 1406 is a delay of 200 ⁇ s.
  • step 1406 is bypassed and step 1303 is entered.
  • the Z A value is greater than 150 counts, none of the wait delay steps 1402, 1404, 1406 are performed.
  • the degree of mechanical interaction is used to modify the settling time. The greater the degree of mechanical interaction, the shorter a settling time that is needed in order to obtain accurate positional data, therefore the settling time reduces as the degree of interaction increases.
  • This feature provides for an increase in the sampling rate in response to an increase in the degree of mechanical interaction.
  • a user would only wish to press a key for a finite period of time, similar to the length of key press effected when using a standard keyboard. If it takes too long for a character to be recognised, even when the degree of accuracy is high, this would not be considered acceptable to users.
  • Step 806 is shown in further detail in Figure 15.
  • a question is asked whether the Z B value, generated at step 1313, is greater than threshold T1. This step is performed to determine whether the press is maintained. If this question is answered in the negative, step 803 is re- entered. However, if this question is answered in the affirmative, step 1502 is entered, where a question is asked whether the position of the press is stable. Due to the construction of manually operable keyboard 101 , it is possible that a press can move position within the keyboard 101 without the press having been interrupted. Thus, at step 1502, a check is made to determine whether three consecutive X, Y positional values within a predetermined range have been detected.
  • step 803 shown in Figure 8 is re-entered.
  • step 807 shown in Figure 8 is entered, where the latest X and Y values are processed to determine which key is pressed.
  • step 808 a question is asked whether the key identified at step 807 is the same as the last identified key for which data was sent to the keyboard driver 206. If this question is answered in the negative, for example, when this step is entered for the first time after power up, step 809 is entered.
  • Step 809 is shown in further detail in Figure 16.
  • a question is asked whether the Z B value, generated at step 1313, is greater than threshold T2. This step is performed to determine whether the Z B value represents a soft key press or a hard key press. If the question is answered in the negative, to the effect that the Z B value is less than threshold T2, this is interpreted as a soft key press, and step 1602 is entered.
  • a first of the two key scan codes corresponding to the identified key is sent to the keyboard driver 206, and this data is stored as the last data sent. If the question is answered in the affirmative, to the effect that the Z B value is greater than threshold T2, this is interpreted as a hard key press, and step 1603 is entered.
  • the second of the two key scan codes corresponding to the identified key is sent to the keyboard driver 206, and this data is stored as the last data sent.
  • a key may have a first key scan code representing a lower case character and a second key scan code representing an upper case character.
  • entering step 1602 shown in Figure 16 will result in a lower case character being displayed on the screen of hand held computer 102.
  • entering step 1603 will result in an upper case character being displayed on the screen of hand held computer 102.
  • the degree of the manual interaction with the key can be used to select between two available outputs for that key.
  • step 810 is entered. This condition will occur if a key scan code is sent to keyboard driver 206 at step 809, and the key has continued to receive a press, such that steps 804 to 806 are re-entered and answered in the affirmative.
  • Step 810 is shown in further detail in Figure 17.
  • an auto repeat delay timer is started.
  • the auto repeat delay is a delay between a first character for a key being displayed on the screen of hand held computer 101 and subsequent automatically repeated characters resulting from a continued press of that key.
  • a question is asked whether a press is detected. This step is performed in a similar way to step 804 shown in Figure 10. If this question is answered negatively, step 803 is re-entered. However, if the question is answered in the affirmative, step 1703 is entered where X, Y and Z B values are determined.
  • This step is performed in a similar way to step 1203 shown in Figure
  • step 1704 a question is asked whether a valid press is detected. This step is performed in a similar way to step 806 shown in Figure 15. If this question is answered negatively, step 803 is re-entered. However, if the question is answered in the affirmative, step 1705 is entered where a question is asked whether the auto repeat delay timer has reached the auto repeat time. If this question is answered in the negative, step 1702 is re- entered. The program loops around steps 1702, 1703, 1704 and 1705 for as long as a press is detected at step 1702, a valid press is determined at step
  • step 1704 and the auto repeat delay timer is determined at step 1705 to be still timing up to the auto repeat delay time. If the question asked at step 1705 is answered in the affirmative, step 1706 is entered, where the auto repeat delay timer is stopped and reset to zero, whereafter step 811, shown in Figure 8 is entered.
  • Step 811 is shown in further detail in Figure 18.
  • the last data sent to keyboard driver 206 which is stored in the last data sent store, is re-sent to the keyboard driver 206.
  • a question is asked whether a press is detected. This step is performed in a similar way to step 804 shown in Figure 10. If this question is answered in the negative, to the effect that a press is not detected, step 803 shown in Figure 8 is re-entered. However, if this question is answered in the affirmative, to the effect that the key is still receiving a press, step 1803 is entered, where X, Y and Z B values are determined. This step is performed in a similar way to step 1203 shown in Figure 13.
  • step 1804 a question is asked whether a valid press is detected. This step is performed in a similar way to step 806 shown in Figure 15. If this question is answered negatively, step 803 is re-entered. However, if the question is answered in the affirmative, step 1805 is entered. Step
  • Step 1805 is shown in further detail in Figure 19.
  • a question is asked whether the Z B value, generated at step 1803, is above a first threshold P.
  • P is equal to 60 counts. If this question is answered in the negative, step 1902 is entered.
  • Step 1902 is a wait delay of a predetermined period, whereafter step 1903 is entered. According to the present embodiment, step 1902 is a delay of 400 ⁇ s. However, if the question asked at step 1901 is answered in the affirmative, step 1902 is bypassed and step 1903 is entered.
  • a question is asked whether the same Z B value is above a second threshold Q. Threshold Q is greater in magnitude than threshold P. According to the present embodiment, Q is equal to 100 counts.
  • step 1904 is entered.
  • Step 1904 is a wait delay of a predetermined period, whereafter step 1905 is entered.
  • step 1904 is a delay of 200 ⁇ s.
  • step 1905 is entered.
  • a question is asked whether the same Z B value is above a third threshold R.
  • Threshold R is greater in magnitude than threshold P. According to the present embodiment, R is equal to 150 counts. If the question asked at step 1905 is answered in the negative, step 1906 is entered. Step 1906 is a wait delay of a predetermined period, whereafter step 1801 shown in Figure 18 is re-entered. According to the present embodiment, step 1906 is a delay of 200 ⁇ s. However, if the question asked at step 1905 is answered in the affirmative, step 1906 is bypassed and step 1801 is re-entered. Thus, according to the present embodiment, if the Z B value is greater than 150 counts, none of the wait delay steps 1902, 1904, 1906 are performed.
  • a wait delay is bypassed.
  • the duration of the wait delay at step 1805 is dynamically modified.
  • the functions of the above described first preferred embodiment are performed, however, the interface circuit 204 and the keyboard driver 206 each do a different degree of the work.
  • the interface circuit 204 applies voltages to the conducting planes 201 in order to determine positional X, Y data and Z data, indicative of the extent of the input signal produced in response to a mechanical interaction.
  • data of this type becomes available, it is written to a buffer and the data contained in this buffer may then be read by the keyboard driver 206.
  • interface circuit 204 preferably includes a micro-controller with appropriate program instructions.
  • Program instructions required to implement a second preferred embodiment of the present invention are illustrated in Figure 20, which shows program instructions for interface circuit 204, and Figure 21, which shows program instructions for keyboard driver 206.
  • the hand held computer 102 is switched on at step 2001 and power is supplied to the interface circuit 204 of manually operable keyboard 101.
  • the hardware is initialised and an initial message is sent to the hand held computer 102 via the serial output port.
  • the last data sent store is reset. This step is performed in a similar way to step 803 shown in Figure 8.
  • a question is asked as to whether a press has been detected. This step is performed in a similar way to step 804 shown in Figure 10. If the question asked at step 2004 is answered in the negative, step 2003 is re-entered. If the question asked at step 2004 is answered in the affirmative, step 2005 is entered, where a question is asked whether a press exists for the duration of the interval.
  • step 2007 is entered.
  • step 2007, the latest X, Y and Z B values are sent to keyboard driver 206 for further processing, and are stored as the last data sent by interface circuit 204.
  • the program executed by the interface circuit 204 does not perform any additional processing such that the interface circuit 204 does not itself determine which key has been pressed and it does not determine the degree to which the key has been pressed.
  • this additional processing is performed by the keyboard driver 206.
  • the keyboard driver 206 is responsible for converting the latest X, Y and Z B values into an identification of a particular key press along with an indication of the degree of the press; that is to say, did the keyboard 101 encounter a soft key press or a hard key press. This information is then encoded into a form appropriate for supplying to the application program
  • the application program 205 is unaware of the soft key press/hard key press sensitivity of the keys of keyboard 101 and is merely responsive to character information being supplied as if this information had been supplied via conventional means.
  • Figure 21
  • the program for keyboard driver 206 is shown in Figure 21, and is executed within the more sophisticated processing environment of the hand held computer 102. Consequently, the keyboard driver 206 must compete for resources with other user applications and system programs.
  • the interface circuit 204 When connected to the hand held computer 102, the interface circuit 204 interrupts the operating system of the hand held computer 102 by means of its Hot Sync terminal.
  • This Hot Sync terminal is provided primarily to establish synchronisation with a host desk top computer. Within the hand held computer 102 itself, this results in the program counter jumping to a specified interrupt location. Normally, having jumped to this location, the hand held computer 102 would initiate its Hot Sync routines.
  • modifications have been made to the program instructions such that when an interrupt occurs, a question is asked as to whether the interrupt represents a true Hot Sync or, alternatively, whether the interrupt represents connectivity of a keyboard 101.
  • the program counter jumps to the location of the instructions for keyboard driver 206, representing the program for keyboard driver 206.
  • the serial port of the hand held computer 101 is configured to generate interrupts when character data is sent to it by keyboard 101.
  • the keyboard driver 206 responds to the serial port interrupt and at step 2102, the X data and the Y data are processed to determine which key of the keyboard 101 was actually pressed by, for example, reference to a look up table.
  • a question is asked whether the key identified at step 2102 is the same as the last identified key for which data was sent to the application 205. The first time step 2102 is entered, the question will be answered in the negative, and step 2104 is entered.
  • the Z B data received is processed to determine which of two possible character identifier codes for that key to supply to the application 205. This process is described with reference to Figure 22.
  • step 2104 After the character identifier code to be supplied is determined at step 2104, that character identifier code is supplied to the application 205 and is stored as the last data supplied. After step 2104 is completed, step 2105 is entered. At step 2105, a question is asked whether more X, Y and Z B values are available. Assuming that the user continues to press the same key without interruption of the press, step 2105 is answered in the affirmative, and step 2102 is re-entered. Still assuming that the user continues to press the same key without interruption of the press, step 2102 is performed, the question asked at step 2103 is answered in the affirmative, and step 2106 is re- entered.
  • step 2106 a question is asked whether the same key is being determined for the duration of the auto repeat delay. This process is described with reference to Figure 23. If this question is answered in the affirmative, step 2107 is entered, where the auto repeat function is performed, as described with reference to Figure 24. Once the auto repeat function has been terminated, step 2108 is entered. However, if the question asked at step 2105 is answered negatively, step 2108 is entered. At step 2108, the last data supplied store is reset, such that the data stored is not indicative of a valid character identifier code. The function of resetting the last data supplied store is performed in preparation for the question asked at step
  • step 2105 is re-entered, where a question is asked whether more X, Y and Z B values are available. If this question is answered in the negative, step 2109 is entered. At step 2109, the last data supplied store is reset, in a similar way to step 2108, whereafter step 2101 is re-entered.
  • Step 2104 is shown in further detail in Figure 22.
  • a question is asked whether the Z B value, is larger than threshold T2. This step is performed to determine whether the Z B value represents a soft key press or a hard key press. If the question is answered in the negative, to the effect that the Z B value is less than threshold T2, this is interpreted as a soft key press, and step 2202 is entered.
  • a first of the two character identifier codes corresponding to the identified key is supplied to the application 205, and this data is stored as the last data supplied. If the question is answered in the affirmative, to the effect that the Z B value is larger than threshold T2, this is interpreted as a hard key press, and step 2203 is entered.
  • a key may have a first character identifier code representing a lower case character and a second character identifier code representing an upper case character.
  • Step 2106 is shown in further detail in Figure 23.
  • an auto repeat delay timer is started.
  • a question is asked whether more X, Y and Z B values are available. If this question is answered in the negative, step 2108 is entered. However, if the question is answered in the affirmative, step 2303 is entered where the X and Y values are processed to determine which key has been pressed.
  • step 2304 a question is asked whether a the key determined at step 2303 is the same as the key for which the last data was supplied. If this question is answered negatively, step 2108 is entered. However, if the question is answered in the affirmative, step 2305 is entered where a question is asked whether the auto repeat delay timer has reached the auto repeat time.
  • step 2302 is re-entered.
  • the program loops around steps 2302, 2303, 2304 and 2305 for as long as X, Y and Z B values are available at step 2302, the same key is determined at step 2304 and the auto repeat delay timer is determined at step 2305 to be still timing up to the auto repeat delay time. If the question asked at step 2305 is answered in the affirmative, step 2306 is entered, where the auto repeat delay timer is stopped and reset to zero, whereafter step 2107, shown in Figure 21 is entered.
  • Step 2107 is shown in further detail in Figure 24.
  • step 2401 the last data supplied to application 205, which is stored in the last data supplied store, is supplied again to the application 205.
  • step 2402 a question is asked whether more X, Y and Z B values are available. If this question is answered in the negative, to the effect that the press has been interrupted, or broken, step 2108 shown in Figure 21 is entered. However, if this question is answered in the affirmative, to the effect that the key is still receiving a press, step 2403 is entered, where the X and Y values are processed to determine which key the data corresponds to.
  • step 2404 a question is asked whether a the key determined at step 2403 is the same as the previous determined key. If this question is answered negatively, step 2108 shown in Figure 21 is entered. However, if the question is answered in the affirmative, step 2405 is entered. Step 2405, is a wait delay, the duration of which is modified according to the latest Z B value, in a similar way to step 1805 shown in Figure 19.
  • step 2108 shown in Figure 21 is entered.
  • the auto repeat function is terminated.
  • the wait delays described with reference to the first and second described embodiments can be set in terms of a pre-determined number of clock cycles.
  • the ⁇ interval is set in terms of a pre-determined number of program loops.
  • step 2005 shown in Figure 20 is performed in a similar way to step 805, which is shown in further detail in Figure 12.
  • step 2005 is set in terms of a number of loops around steps 1202 to 1204, with a loop counter being started at step 1201 and a comparison of the latest count against the predetermined number of counts around the loop being performed at step 1205.
  • the real time duration of step 2005 will vary according to the degree of mechanical interaction with keyboard 101.
  • step 2007 the rate at which data is sent from keyboard 101 at step 2007 to hand held computer 102 can be varied by varying the degree of manual interaction with a key 105.
  • the Z B value is utilised to indicate whether an auto shift function for the keyboard 101 should be invoked.
  • step 2107 due to the relationship between the degree of mechanical interaction with keyboard 101 and the rate of data sent from keyboard 101 , step 2107, shown in further detail in Figure 24, can be modified through the omission of step 2405.
  • step 1302 of Figure 13 which is shown in further detail in Figure 14, incorporates a comparison of a Z A value against three thresholds, thresholds L, M and N. It should be appreciated, however, that in alternative embodiments of the present invention any number of thresholds may be incorporated in such a step.
  • step 809 which is shown in further detail in Figure 16 incorporates a comparison of a Z B value against a single threshold, threshold T2. Again, it should be appreciated, that in alternative embodiments of the present invention any number of thresholds may be incorporated in such a step.
  • a different processing procedure or operation may be initiated or controlled in response to a Z value exceeding each threshold, or the same processing procedure or operation may be initiated or controlled by a Z value exceeding a number of different thresholds.
  • the comparison of a Z value against a threshold can be used to select between different operations directly, or to select one of a plurality of data values which indicate different operations to be performed.
  • the Z A and Z B values are representative of an averaged pair of Z measurements.
  • the Z A and Z B values are each a single
  • the above described embodiments of the present invention use a fabric construction to provide an array of keys in a keyboard.
  • a variable extent input signal is produced that relates to the degree of manual interaction of a key.
  • the key mechanics can be configured to respond to the force of the key press or the velocity of the key press etc. and one of these attributes, or a combination of these attributes, is then used to produce the variable extent input signal.
  • the user will consider a key press to be either hard or soft, slow or fast, or one of two or more differentiable conditions, and a degree of interaction is used to control an operation of the keyboard.
  • the above described embodiments of the present embodiment show a keyboard communicating with a hand held computer such as that manufactured under the trademark "Palm".
  • a hand held computer such as that manufactured under the trademark "Palm”.
  • other processing devices such as a personal computer, a mobile telephone or other dedicated processing apparatus.
  • the present invention is also applicable to other position detector devices that are not configured as a keyboard.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Position Input By Displaying (AREA)

Abstract

A variable extent input signal (602, 603, 604) is related to the degree of a mechanical interaction, including manual interaction with a manually operable key (105). The position of a mechanical interaction is measured by measuring. voltages after a settling time has occurred. The settling time is modified in response to the extent of the input signal (602, 603, 604). A processing procedure is initiated if the extent of an input signal (602, 603, 604) exceeds a first threshold level (T1). The value of the input signal (602, 603, 604) is examined after an interval (α2-α1). The examined value is compared against a second threshold level (T2) to identify a first degree of interaction or to identify a second degree of interaction. An auto repeat rate for a manually operable keyboard (101) is controlled. The auto repeat rate is increased in response to an increase in a degree of manual interaction with a key (105).

Description

Detecting a Degree of Manual Interaction with a Manually
Operable Key
Background of the Invention 1. Field of the Invention
The present invention relates to detecting the degree of manual interaction with a manually operable key. In particular, the present invention relates to processing a variable extent input signal that has been produced in response to a mechanical interaction, in which the extent of the input signal is related to the degree of mechanical interaction.
2. Description of the Related Art
The present invention is concerned with position detectors that produce a variable extent input signal in relation to a degree of mechanical interaction, including position detectors configured as keyboards having manually operable keys. In addition, the present invention is concerned with manually operable keys that produce a variable extent input signal in relation to a degree of manual interaction. In accordance with the present invention, the extent of an input signal produced in response to an interaction is indicative of the degree of interaction, and the extent of the input signal is utilised to derive additional data, or to modify the response of the data processing environment to the detection of an interaction. According to the present invention, a degree of interaction is used to control an operation of the processing device. A position detector is described in British Patent No. 2 341 933 (B), assigned to the present applicant. The response of a detector of this type may be considered in terms of its positional accuracy, the dynamic range of pressure related signals and the maximum rate at which positional data may be obtained. After a mechanical interaction has been made upon the detector, a finite time must elapse before valid information may be derived.
The electrical nature of the device introduces a degree of capacitance therefore a settling time must elapse before it is possible to obtain positional data. Thus, if a settling time is too long, the response of a device may appear sluggish to users and therefore unacceptable for many applications. Alternatively, if the settling time is too short, there is a risk that invalid positional data will be obtained. According to a preferred embodiment of the present invention, the function of differentiating between degrees of a mechanical interaction is utilised to modify the length of the settling time.
A manually operable key may be considered as any device that is responsive to manual operation in order to convey information to a data processing environment. In particular, this includes keys of the type that are combined into an array so as to form a keyboard, either a full keyboard, such as that used for a personal computer, or a keyboard of reduced size such as that used for a mobile telephone. A known type of key is entirely digital in construction and can represent a first condition, to the effect that the key has not been pressed, or a second condition, to the effect that the key has been pressed. Such keys are not within the scope of the present invention. However, another known type of key, although producing a digital output, is analogue in nature and initially produces a varying input signal which is applied to a comparator to determine whether the input signal exceeds a predetermined threshold level, which represents the condition to the effect that the key has been pressed. Such keys do fall within the scope of the present invention.
Depending upon the nature of the key mechanics, the cause of the variable extent of an input signal may vary. For example, a variable extent input signal produced in relation to the degree of manual interaction may be responsive to the force, pressure, area or speed of the manual interaction with the key. Each of these may vary, along with other mechanical characteristics or conditions, and all are to be considered as being examples of the manual interaction varying in degree. A problem with devices that produce variable extent input signals in response to a manual or mechanical interaction is determining when an actionable interaction has occurred. For example, input signals representing non-actionable interactions, or background noise, can be produced due to the pressure of the cover of the device, or a finger or object resting on the device.
The present invention provides a data processing environment in which the extent of the variable extent input signal produced in relation to the degree of an interaction can be utilised to distinguish between a number of conditions, for example between an actionable interaction from a non- actionable interaction, or an interaction of a first degree, for example a soft press, from an interaction of a second degree, for example a hard press.
A known approach to identifying the degree of an interaction is to wait until a first threshold level has been exceeded and then continue to sample the input signal so as to determine whether a second threshold is exceeded. A problem with this approach is that the sampling rate may be insufficiently high and therefore it is possible for a high level peak to be missed. Alternatively, if the sampling rate is increased, a greater burden is placed on available processing capabilities and eventually an upper constraint will exist, possibly enforced by electrical or mechanical limitations, such as capacitive effects or inertia related effects. In a described embodiment of the present invention, the extent of a variable extent input signal, produced in relation to the degree of a key press, is compared against a first predetermined threshold, to determine whether the input signal is indicative of an actionable or a non-actionable key press, and, if the first threshold is exceeded, is compared against a second threshold to determine whether the extent of the input signal is below the threshold, and thus represents a soft press, or whether the input signal exceeds the threshold, and thus represents a hard press.
In an alternative embodiment, several thresholds are exploited, in order to identify a very soft press, a soft press, a moderate press, a hard press or a very hard press. However, the effectiveness of using a plurality of thresholds is restricted by the ability of a user to effect the different degrees of manual interaction with a key. Therefore, a preferred embodiment of the present invention is directed towards distinguishing between three conditions, that a key has not been pressed, that a key has been pressed softly or that a key has received a hard press.
According to a preferred embodiment of the present invention, the function of distinguishing between degrees of manual interaction with a key is utilised to confer to the user the ability to select an upper case or lower case character for that key, for example, a soft or slow press would select the lower case character and a hard or fast press would select the upper case character, this mode of operation being intuitive for the user. In a preferred embodiment, the function of detecting degrees of manual interaction with a key is utilised to confer control to the user over the auto repeat rate for a character, the auto repeat rate being proportional to the degree of manual interaction with a key. However, it must be appreciated that the function of differentiating between degrees of interaction with a device can be utilised to control other operations of a data processing device.
Brief Summary of the Invention
According to a first aspect of the present invention there is provided a method of measuring the position of a mechanical interaction in which voltages are measured after a settling time, wherein a variable extent input signal is produced in relation to the degree of the mechanical interaction; and said settling time is modified in response to the extent of said input signal. According to a second aspect of the present invention there is provided apparatus for measuring the position of a mechanical interaction in which voltages are measured after a settling time, comprising variable extent input signal generating means configured to generate an variable extent input signal related to the degree of the mechanical interaction; and settling time modification means configured to modify said settling time in response to the extent of said input signal.
According to a third aspect of the present invention there is provided a method of detecting a degree of manual interaction with a manually operable key, wherein a variable extent input signal is produced in relation to a degree of manual interaction; and a processing procedure is initiated if the extent of said input signal exceeds a first threshold level; said processing procedure comprising the steps of examining the extent of said input signal after an interval; and comparing said examined extent against a second threshold level to identify a first degree of manual interaction or to identify a second degree of manual interaction. According to a fourth aspect of the present invention there is provided apparatus for detecting a degree of manual interaction with a manually operable key, wherein a variable extent input signal is produced in relation to a degree of manual interaction, comprising processing means configured to initiate a processing procedure if the extent of said input signal exceeds a first threshold, said processing procedure comprising the steps of examining the extent of said input signal after an interval; and comparing said examined extent against a second threshold level to identify a first degree of manual interaction or to identify a second degree of manual interaction. Thus, the present invention does not continue to monitor the input signal to determine whether it exceeds a second threshold level. As an alternative, after exceeding a first threshold level the processing procedure waits for a period of time such that the value of the input signal is examined again after this interval. The exact duration of this interval is not critical, provided that its duration remains substantially constant throughout the use of the device. Thus, the procedure is not waiting for the input signal to pass some predetermined level. In accordance with the present invention, the processing procedure determines to what extent the level has increased after a predetermined interval of time. Thus, this effectively involves a determination of rate of change of the input signal as an alternative to observing many individual signal samples in an attempt to identify an appropriate instant at which the signal exceeds a predetermined level.
According to a fifth aspect of the present invention there is provided a method of controlling an auto repeat rate for a manually operable keyboard, wherein the auto repeat rate is increased in response to an increase in a degree of manual interaction with a key.
According to a sixth aspect of the present invention there is provided apparatus for controlling an auto repeat rate for a manually operable keyboard, comprising processing means configured to increase said auto repeat rate in response to an increase in a degree of manual interaction with a key.
Thus, it has been appreciated that in keyboards that produce a variable input signal level, it is possible to determine this level and as such use it to control an auto repeat rate.
Brief Description of the Several Views of the Drawings
The invention will now be described by way of example only, with reference to the accompanying drawings in which:
Figure 1 shows a hand held computer to which a manually operable keyboard embodying the present invention is connected; Figure 2 shows a schematic representation of the arrangement shown in Figure 1;
Figure 3 plots time against voltage for a first example data set of information generated during a mechanical interaction with the manually operable keyboard shown in Figure 1; Figure 4 plots time against Z value for the example data set of information shown in Figure 3; Figure 5 plots time against Z value for a second example data set of information generated during a mechanical interaction with the manually operable keyboard shown in Figure 1;
Figure 6 shows three examples of a variable extent input signal produced in response to mechanical interactions with the keyboard shown in
Figure 1;
Figure 7A shows an example of a result of a series of soft key presses and Figure 7B shows an example of a result of a series of hard key presses;
Figure 8 shows interface circuit program instructions to implement a first preferred embodiment of the present invention;
Figure 9 shows the reset last data sent store step shown in Figure 8 in further detail;
Figure 10 shows the is press detected question step shown in Figure 8 in further detail; Figure 11 shows the determine ZA step shown in Figure 10 in further detail;
Figure 12 shows the is press detected for duration of α interval question step shown in Figure 8 in further detail;
Figure 13 shows the determine X, Y and ZB values step shown in Figure 12 in further detail;
Figure 14 shows a wait modified delay step shown in Figure 13 in further detail;
Figure 15 shows the is press a valid key press question step shown in Figure 8 in further detail; Figure 16 shows the process ZBto determine key scan code, send and store as last data sent step shown in Figure 8 in further detail; Figure 17 shows the does valid key press exist for duration of auto repeat delay question step shown in Figure 8 in further detail;
Figure 18 shows auto repeat function step shown in Figure 8 in further detail; Figure 19 shows the wait modified delay step shown in Figure 18 in further detail;
Figure 20 shows interface circuit program instructions to implement a second preferred embodiment of the present invention;
Figure 21 shows keyboard driver program instructions to implement a second preferred embodiment of the present invention;
Figure 22 shows the determine character code, supply and store as last data supplied step shown in Figure 21 in further detail;
Figure 23 shows the is the same key being determined for the duration of the auto repeat delay question step shown in Figure 21 in further detail;
Figure 24 shows the auto repeat function step shown in Figure 21 in further detail;
Written Description of the Best Mode for Carrying Out the Invention
Figure 1
A multiple fabric layer detector is described in the present applicant's co-pending European Patent Publication No. 1 099 190. Figure 1 shows a fabric keyboard 101 interfaced to a hand held computer 102. Fabric keyboard
101 utilises a layered construction, and is an example of a device that measures the position of mechanical interactions. When fabric keyboard 101 is not in use, it may be wrapped around the hand held computer 102, so as to provide a degree of protection for hand held computer 102 in a way that does not distract from the portability of hand held computer 102. When a user wishes to enter data into the hand held computer 102, fabric keyboard 101 is unwrapped from around hand held computer 102 and placed upon a flat support surface. The hand held computer 102 may be supported by a stand or held by a user, as shown in Figure 1. Thus, after supporting the hand held computer 102 by right hand 103 it is possible for data to be entered by manual operation of the keyboard 101 by the left hand 104. Either hand could be used for either application or if the hand held computer 102 is supported by a stand, both hands may be used for data entry.
Fabric keyboard 101 includes an array of manually operable keys, such as key 105. The manual operation of key 105 causes a mechanical interaction with fabric keyboard 101. In response to a mechanical interaction, a variable extent input signal is produced, in which the extent of the input signal is related to the degree of the mechanical interaction. Thus, fabric keyboard 101 and is an example of a device that measures the position of mechanical interactions, and also produces a variable extent input signal in response to a manual interaction with a key 105.
Figure 2
The combination of fabric keyboard 101 and hand held computer 102 is shown schematically in Figure 2. Fabric keyboard 101 comprises two conducting planes 201, a first incorporated in a first fabric detector layer 202, from which an X positional value can be determined, and a second incorporated in a second fabric detector layer 203, from which a Y positional value can be determined. In addition, the current flowing between detector layer 202 and detector layer 203 can be measured to indicate a Z reading, which is indicative of the degree of interaction between the layers 201. Fabric keyboard 101 includes an interface circuit 204. The hand held computer 102 executes programs read from its program memory. Users interact with application programs, such as application 205, taking the form of a note pad. Alternatively, application 205 could take the form of an address book, a diary or a more specific type application program written for the device.
Conventionally, hand held computers and similar devices communicate with input devices via their operating system. To effect communication with alternative peripherals, the operating system is enhanced by means of appropriate drivers, such as keyboard driver 206. The interface circuit 204 in combination with keyboard driver 206 provides a means of communication between the conducting planes 201 and the users application program 205. The interface circuit 204 and the keyboard driver 206 each do a degree of the work and the actual share of the interface work may vary. The interface circuit 204 may be made more simple if the keyboard driver 206 is given more work to do, although this then places an additional overhead on the internal processor of the hand held computer 102.
Preferably, mechanisms are included for identifying a condition to the effect that the hand held device is in use. When not in use, it is preferable for all non-essential energy consuming components to be powered down thereby conserving battery life. Thus, a mechanism may be included for powering up the device when arranged in an operating orientation or, alternatively, the device may respond to manual operation of a power button. When in use, the interface circuit 204 of keyboard 101 applies electrical signals to the conducting planes 201 in order to determine the position and the degree of a mechanical interaction.
The manual operation of a key 105 causes the first detector layer 202 and the second detector layer 203 to be brought into contact thereby allowing electrical conductivity to occur between them through an appropriate inner separating layer (not shown). In response, a variable extent input signal is produced, in relation to the degree of the interaction.
Voltage gradients are created such that a measured voltage will be dependent upon the position of a mechanical interaction. From measurement of voltage gradient, X and Y values related to the position of a mechanical interaction are generated, from which the key that has been pressed can be identified. In addition, from measurement of current flow, a Z intensity value related to the degree of the key press is generated. The current flow is proportional to the degree of the press, thus, the harder the press effected by the user, the greater the current flow.
X, Y and Z analogue values are converted into digital 8-bit codes. According to a first preferred embodiment, a set of X, Y and Z values is converted into a single 8-bit key scan code. The key scan code is then sent to the keyboard driver 206, which identifies the character to be output to the application 205 by, for example, reference to a lookup table. According to a second preferred embodiment, each X, Y and Z analogue value is converted into a digital 8-bit code, and a set of converted X, Y and Z values is sent to the keyboard driver 206 for further processing. Figure 3
As previously described, a variable extent input signal is produced in response to manual interaction with a key 105. The extent of the variable extent input signal is related to the degree of the interaction. From this input signal, data sets of information are generated, as described with reference to
Figure 3.
Figure 3, which shows an example data set 301 , plots voltage (V) on each fabric detector layer 202, 203 against time (μs), and shows the order of readings taken. A data set comprises readings of current and voltage. Figure
3 plots when different readings occur for the example data set 301. At t=0 μs, a voltage is applied to fabric detector layer 203 whilst fabric detector layer 202 is grounded. At t=60 μs, a first measurement of current, Z1 , is taken, whereafter the roles of the conducting planes 201 are reversed; a voltage is applied to fabric detector layer 202 whilst fabric detector layer 203 is grounded. At t=120 μs, a second measurement of current, Z2, is taken, whereafter a voltage is applied across fabric detector layer 202 only, such that a potential gradient is produced across fabric detector layer 202. At t=300 μs, a measurement of the voltage appearing on fabric detector layer 203 is taken, from which an X positional value can be determined. After this measurement, the roles of the conducting planes 201 are reversed; a voltage is applied across fabric detector layer 203 only, such that a potential gradient is produced across fabric detector layer 203. At t=480 μs, a measurement of the voltage appearing on fabric detector layer 202 is taken, from which a Y positional value can be determined. After this measurement, a voltage is applied to fabric detector layer 203 whilst fabric detector layer 202 is grounded, in a similar configuration as for the previous Z1 measurement. At t=540 μs, a third measurement of current, Z3, is taken, whereafter the roles of the conducting planes 201 are reversed; a voltage is applied to fabric detector layer 202 whilst fabric detector layer 203 is grounded. At t=600 μs, a fourth measurement of current, Z4, is taken. Thus, example data set 301 comprises six measurements; two current measurements (in opposite directions through the manually operable keyboard 101) followed by two voltage measurements and then two further current measurements (in opposite directions through the manually operable keyboard 101). The duration of this example data set 301 is 600 μs, with a settling time, SZ, of 60 μs for Z intensity measurements, a settling time, SX, of 180 μs for the X positional value measurement, and a settling time, SY, of 180 μs for the Y positional value measurement.
Figure 4
Figure 4 shows how the generation of the example data set 301 is initiated. Figure 4 plots Z (counts) against time (μs). According to a preferred embodiment of the present invention, the interface circuit 204 produces Z values ranging from zero (0) to two hundred and fifty-five (255). Figure 4 shows the variation in the Z intensity value of variable extent input signal 401 against time, and also shows when different measurements are taken.
A variable ZA can be produced from a pair of Z1 and Z2 measurements, as illustrated by relationship 402. Similarly, a variable ZB can be produced from a pair of Z3 and Z4 measurements, as illustrated by relationship 403. Relationships 402 and 403 show that the Z1 and Z2 values, and the Z3 and Z4 values respectively, are added together and divided by 2. In this way, relationships 402 and 403 each produce an averaged Z value that is less position dependent than a single Z measurement. Incorporating these relationships into example data set 301 produces a data set comprising a ZA value, an X positional value, a Y positional value and a ZB value, wherein the ZA and ZB values are both representative of the Z value of an input signal, but at the beginning and the end of the data set respectively.
Figure 4 shows a first Z threshold level, T1 , set equal to a value of twenty-five (25) counts, and a second threshold level, T2, set equal to a value of one hundred (100) counts. Threshold T1 is utilised to indicate that an actionable mechanical interaction is detected. In response to the detection of an actionable interaction, further subsequent processing is initiated. Threshold T2 is utilised to determine the degree of the mechanical interaction. The degree of the interaction is used to select between at least two subsequent processing functions.
Figure 4 shows that at t=120 μs, a first ZA value of variable extent input signal 401 is determined to be below Z threshold T1. Thus, input signal 401 is considered to represent background noise only, and is not considered to be indicative of an actionable mechanical interaction. As a result, instead of measurements being taken to generate an X positional value, a Y positional value, and a ZB value, measurements are taken to produce a second ZA value, which is shown at t=240 μs to also be below threshold T1. Again, instead of X, Y and ZB values being determined, measurements are taken to produce a third ZA value. At t=360 μs, this third ZA value is determined to be above threshold T1 , and thus an actionable mechanical interaction is considered to be detected. In response, measurements are taken at t=540 μs and t=720 μs to determine an X positional value and a Y positional value respectively.
In addition, measurements are taken to produce a ZB value at t=840 μs, whereafter measurements are taken for a subsequent ZA value, which at t=960 μs is determined to be above threshold T1 , thus triggering the generation of further X, Y and ZB values, to complete a subsequent data set.
As shown in Figure 4, the example data set 301 is generated during the period between t=240 μs and t=840 μs. As described above, ZA values are produced until a ZA value is determined to be above threshold T1 , whereafter measurements are taken to determine X, Y and ZB values. Thus, the comparison of the ZA value against threshold T1 is utilised to identify an actionable mechanical interaction, and is utilised to trigger the generation of X, Y and ZB values.
However, in addition, the actual value of the ZA value is utilised to modify the settling times before voltage measurements, from which X and Y positional values of a mechanical interaction can be determined, are taken.
As previously described, a mechanical interaction upon the manually operable keyboard 101 causes the first detector layer 202 and the second detector layer 203 to be brought into contact, thereby allowing electrical conductivity to occur between them through an appropriate inner separating layer (not shown).
As described in United Kingdom Patent No. 2 341 933 (B), the contact resistance between the conducting planes 201 is related to the applied force of the mechanical interaction; an increase in the applied force of a mechanical interaction will result in a decrease in contact resistance between the conducting planes 201. However, irrespective of the applied force of a mechanical interaction, the settling time, SZ, before which a Z measurement can be accurately taken, does not vary significantly. In addition, the settling time, SZ, is not affected significantly by the size of the manually operated keyboard 101 or the position of the mechanical interaction within the manually operated keyboard 101. Thus, within example data set 301 , the settling time, SZ, is a predetermined period.
The capacitance of the manually operable keyboard 101 is related to the applied force of the mechanical interaction. An increase in the applied force of a mechanical interaction will result in a decrease in the settling times SX and SY, before which a voltage measurement can be accurately taken. Thus, the actual value of a ZA value, which has been determined to be above threshold T1 , can be used to modify the settling times SX and SY. Thus, within example data set 301, the settling times SX and SY are dynamically determined. According to a preferred embodiment of the present invention, SX and SY are the same duration.
Figure 4 shows that at t=360 μs, the ZA value of input signal 401 is above threshold T1. At this time, the actual value of ZA is 40 counts. According to example data set 301, both settling times SX and SY are 180 μs.
Figure 5
Figure 5 shows how the generation of a second example data set 501 is initiated. In a similar manner to Figure 4, Figure 5 plots Z (counts) against time (μs), shows the variation in the Z intensity value of variable extent input signal 502 against time, and also shows when different readings occur.
At t=120 μs, a first ZA value of variable extent input signal 502 is determined to be below Z threshold T1. Thus, input signal 502 is considered to represent background noise only, and is not considered to be indicative of an actionable mechanical interaction. As a result, instead of measurements being taken to generate an X positional value, a Y positional value, and a ZB value, measurements are taken to produce a second ZA value, which is shown at t=240 μs to also be below threshold T1. Again, instead of X, Y and ZB values being determined, measurements are taken to produce a third ZA value. At t=360 μs, this third ZA value is determined to be above threshold T1, and thus an actionable mechanical interaction is considered to be detected. In response measurements are taken at t=720 μs and t=1080 μs to determine an X positional value and a Y positional value respectively. In addition, measurements are taken to produce a ZB value at t=1200 μs. As shown in Figure 5, example data set 501 is generated during the period between t=240 μs and t=1200 μs. Thus, the duration of example data set 501 is 960 μs, which is 360 μs longer than that of data set 301.
Figure 5 shows that at t=360 μs, the ZA value of input signal 502 is above threshold T1. At this time, the actual value of ZA is 27 counts, which results in both settling times SX and SY having a duration of 360 μs. From comparison of Figures 4 and 5, it can be seen that the lower the actual value of ZA at the time ZA is determined to be above threshold T1 , which is indicated in Figure 5 at α.,, the longer the settling times SX and SY. Thus, the difference in duration of data sets 301 and 501 results from the difference in the SX and SY settling times, since the SZ settling time is the same predetermined value of 60 μs in both data sets 301, 501. As previously described, α1 is the time at which a ZA value of an input signal is determined to be above threshold T1 for the first time. An interval of predetermined duration α is initiated when a ZA value is determined to be above threshold T1. Thus, 1 is the start of an α interval, such as interval 601, which is shown in, and described with reference to, Figure 6.
Figure 6
Figure 6 shows three examples of a variable extent input signal 602, 603, 604. Figure 6 plots Z (counts) against time (s), and shows the variation in the Z value of each input signal 602, 603, 604 against time. As shown in Figure 6, at t=0.02 s, the Z value of variable extent input signal 602 is shown to be above threshold T1 for the first time. Thus, t=0.02 s is indicated to be α.,, which is the start of α interval 601. The duration of α interval 601 is 0.02 s, and the end of interval 601 is indicated as 2, at t=0.04 s. As previously described, example data set 301 comprises a ZA value, an X positional value, a Y positional value and a ZB value, in that order, and after the ZB value is determined, the generation of a subsequent ZA value is initiated. If this ZA value is determined to be above threshold T1 , the rest of the data set is generated. Thus, oc, is the start of the generation of data sets, which continues whilst values of ZA are determined to be above threshold T1.
An input signal that has a Z value less than threshold T1 is not considered to represent a an actionable mechanical interaction. Due to the nature of the input signals produced by manually operable keyboard 101, which are variable in extent, a problem arises in detecting an actionable mechanical interaction, to which a response is to be generated, from background noise.
The α interval 601 is 0.02 s in duration. This processing time is unnoticeable to the user, but provides a means of ensuring that an actionable mechanical interaction is identified, before a response to the input signal is generated. In these examples, the α interval 601 is 0.02 s in duration. However, the α interval can be any duration, but the duration should remain constant or substantially constant throughout the operation of the detector. The actual duration of the α interval should be determined empirically to optimise operational characteristics.
At time α2, in this first example at t=0.04 s, a comparison of the latest
ZB value generated for variable extent input signal 602 against threshold T1 is made. As can be seen from Figure 6, at time α2, theZ value of input signal
602 is below threshold T1. As previously described, an input signal having a Z value less than threshold T1 is considered to represent background noise only, and is not considered to be indicative of an actionable mechanical interaction. Thus, variable extent input signal 602 represents a no press condition, and no response to input signal 602 is generated.
Referring to input signal 603, α1 occurs at t=0.06 s and is the start of interval 601. At time α2, in this second example at t=0.08 s, a comparison of the ZB value of the latest initiated data set generated for variable extent input signal 603 against threshold T1 is made. As can be seen from Figure 6, at time α2, the ZB value of input signal
603 is above threshold T1. This comparison is made to determine whether, at the end of the measurements for the X and Y positional values, an actionable mechanical interaction still exists.
In response to identifying an actionable mechanical interaction at time α2, a comparison of the same ZB value against threshold T2 is made. As can be seen from Figure 6, at time α2, the Z value of input signal 603 is below threshold T2. Thus, input signal 603 is considered to represent a soft press condition.
Referring to input signal 604, α1 occurs at t=0.1 s and is the start of α interval 601. At time α2, in this third example at t=0.12 s, a comparison of the latest ZB value generated for variable extent input signal 604 against threshold T1 is made. As can be seen from Figure 6, at time 2, the Z value of input signal 603 is above threshold T1. In response to identifying an actionable mechanical interaction at time α2, a comparison of the same ZB value against threshold T2 is made. As can be seen from Figure 6, at time α2, the Z value of input signal 604 is above threshold T2. Thus, input signal 604 is considered to represent a hard press condition.
The comparison of the Z value of an input signal against a threshold after a predetermined time from the identification of that input signal as being representative of an actionable mechanical interaction, is utilised to distinguish between a soft press and a hard press of a key 105 of manually operable keyboard 101. The above described method of distinguishing between degrees of mechanical interaction does not depend on the maximum Z value achieved by an input signal during the time the input signal exists, but instead depends on the Z value achieved after a predetermined time from the identification of that input signal as being representative of an actionable mechanical interaction.
The gradient of the Z value curve for an input signal between time cc, and time 2 can be considered as being representative of the rate of change of the Z value of the input signal during the interval duration. The Z value is indicative of the extent of the input signal which is produced in response to a mechanical interaction, and is related to the degree of the mechanical interaction. As previously described, the input signal can be responsive to the force, pressure, area, speed or attack rate of interaction. The rate of change of the Z value is indicative of the rate of change of the degree of mechanical interaction, thus, the rate of change of the degree of mechanical interaction is utilised to determine the operation to be performed orto determine whether an operation is to be performed.
From comparison of input signals 603 and 604, it can be seen that between time oc, and time α2 for each input signal 603, 604, the gradient of input signal 604 is steeper than the gradient of input signal 603. As previously described, input signal 603 is determined to be representative of a soft press condition. Thus, the lesser rate of change of the Z value of input signal 603 is interpreted as the input signal 603 being representative of a lesser degree of mechanical interaction. This is advantageous since it is considered that it is easier and more intuitive for a user to effect a soft or a hard press by varying the attack rate of a key 105, rather than varying force or pressure applied to the key alone.
Figures 7 A and 7B
The function of distinguishing between a soft key press and a hard key press confers to the user the ability the select one of two functions that can be generated in response to the manual interaction of a key 105. The different types of key press can be used to supply different types of data to the application 205 running on hand held computer 102. In the examples shown in Figure 7A and Figure 7B, the application 205 is a note pad, and is recording alpha-numeric characters in response to manual operation of the keys of keyboard 101. In Figure 7A, the word "elektex" has been supplied to the display by the user pressing the keys "E" "L" "E" "K" "T" "E" "X" on the keyboard 101. However, the user has effected a soft key press upon on each of the keys, and as a result, the information sent to the keyboard driver 206 results in the lower case version of each character being supplied to the application 205.
This results in the word being displayed in lower case at 701.
However, in Figure 7B the same keys have been pressed but this time the user has effected a hard press on each key and as a result, the information sent to the keyboard driver 206 results in the upper case version of each character being supplied to the application 205. This results in the word being displayed in upper case at 702.
Thus, for example, by applying a different rate of application of force to each key, the user can select the upper or lower case version of a character. However, it should be appreciated that many other attributes could be controlled in response to detecting a soft key press or a hard key press.
Referring again to Figure 7 A, it can be seen that the "x" character of the word "elektex" has been repeated multiple times. The lower case version of the "X" character has been selected by the user, by effecting a soft press upon the "X" key, as previously described. With a continued press of the "X" key, after a predetermined period of time from the first output of the lower case "X" character, the output of the same character is repeated. However, the rate of the repeat of the character can be controlled by the user varying the degree of the press upon the "X" key. In Figure 7A, the user has continued to effect a press within the soft key press range, and the auto repeat rate of the lower case "X" character is between one and five repeats per second. Figure 7B also shows that the upper case "X" character of the word
"elektex" has been repeated multiple times. However, in Figure 7B, the upper case version of the "X" character has been repeated. The user can control the rate of the repeat of the character by continuing the press upon the key, but varying the degree of the press. By the user increasing the degree of the press upon the "X" key, the rate of the repeat of the "X" character increases.
In Figure 7B, the user has continued to effect a press within the hard key press range, and the auto repeat rate of the upper case "X" character is between five and forty repeats per second. Keyboard 101 is configured such that the auto repeat function can be invoked for all of the alpha-numeric character keys and navigation keys, for example, scroll and backspace keys.
As described above, the extent of the variable extent input signal produced in response to manual interaction with a key can be utilised to modify settling times within the operation of the manually operable keyboard 101, to select the upper or lower case version of a character, and to control the auto repeat rate of a character. The present invention provides controllability over the response of the manually operable keyboard 101 to manual operation of a key 105.
Figure 8
As described in European Patent Publication No. 1 099 190, interface circuit 204 preferably includes a micro-controller with appropriate program instructions. Program instructions required to implement a first preferred embodiment of the present invention are illustrated in Figure 8. The hand held computer 102 is switched on at step 801 and power is supplied to the interface circuit 204 of manually operable keyboard 101. At step 802 the hardware is initialised and an initial message is sent to the hand held computer 102 via the serial output port. At step 803, the last data sent store is reset. This process is described with reference to Figure 9. At step
804 a question is asked as to whether a press has been detected. This process is described with reference to Figure 10 and Figure 11. If the question asked at step 804 is answered in the negative, step 803 is re- entered. If the question asked at step 804 is answered in the affirmative, step
805 is entered, where a question is asked whether a press exists for the duration of the α interval. This process is described with reference to Figure 12. If the question asked at step 805 is answered in the negative, step 803 is re-entered. However, if the question asked at step 805 is answered in the affirmative, step 806 is entered, where a question is asked whether the press is determined to be a valid press. This process is described with reference to Figure 15. Again, if the question asked at step 806 is answered in the negative, step 803 is re-entered. However, if the question asked at step 806 is answered in the affirmative, step 807 is entered, where the X and Y positional values are processed to determine which key has been pressed. At step 808, a question is asked whether the key identified at step 807 is the same as the last identified key for which data was sent to the keyboard driver 206. The first time step 807 is entered, the question will be answered in the negative, and step 809 is entered. At step 809, the last generated ZB value is processed to determine which of two possible key scan codes for that key to send to the keyboard driver 206. This process is described with reference to Figure 16. After the key scan code to be sent is determined at step 809, that key scan code is sent to the keyboard driver 206 and is stored as the last data sent. After step 809 is terminated, step 804 is re-entered. Assuming that the user continues to press the same key without interruption of the press, steps 804, 805 and 806 are each answered in the affirmative. At step 807, the latest X and Y values are processed. At step 808, the question whether the key identified at step 807 is the same as the last identified key for which data was sent to the keyboard driver 206 is answered in the affirmative, and step 810 is entered, where a question is asked as to whether a valid key press is determined to exist for the duration of the auto repeat delay. This process is described with reference to Figure 17. The auto repeat delay is set during power up, and is adjustable by the user. If the question asked at step 810 is answered in the negative, step 803 is re-entered. However, if the question asked at step 810 is answered in the affirmative, step 811 is entered, where the auto repeat function is performed, as described with reference to Figure 18. Once the auto repeat function has been terminated step 803 is re-entered.
Figure 9
Step 803 of Figure 8 is shown in further detail in Figure 9. At step 901 , a question is asked whether the last data sent represents positional values of X=0 and Y=0. According to the present embodiment, during operation of the keyboard 101, the interface circuit 204 sends digital 8-bit codes to the keyboard driver 206 of hand held computer 102. The keyboard driver 206 processes received codes to determine which character to output to the application 205, for example, by referring to a look up table holding information for each key position on the keyboard 101. However, there are no key positions on the keyboard 101 corresponding to X=0, Y=0. The use of these zero values is reserved to indicate to the hand held computer 102 that a valid mechanical interaction with the keyboard 101 is not detected. In addition, the function of resetting the last data sent store is performed in preparation for the question asked at step 808.
If the question asked at step 901 is answered negatively, step 902 is entered, where a code representing X=0, Y=0 is sent to keyboard driver 206, and this code is stored as the last data sent. However, if the question asked at step 901 is answered in the affirmative, step 902 is bypassed and step 804 is entered, where a question is asked whether a press is detected.
Figure 10
Step 804 is shown in further detail in Figure 10. Step 1001 is a wait delay, which in the present embodiment, is set so as to produce a sampling rate of approximately one thousand samples per second. At step 1002 a ZA value is determined. This process is described with reference to Figure 11. At step 1003, a question is asked whether the ZA value determined at step 1002 is above threshold T1. If the question asked at step 1003 is answered in the negative, this is interpreted as a press not having been determined, and step 803 is re-entered. If the question asked at step 1003 is answered in the affirmative, this is interpreted as a press having been detected and step 805 is entered.
Figure 11
Step 1002 is shown in further detail in Figure 11. At step 1101 , a voltage is applied to fabric layer 203 of manually operable keyboard 101 to energise it, and the electrical configuration for taking a Z1 measurement is set up, after which step 1102 is entered. Step 1102 is a predetermined wait delay, which according to the present embodiment is 60 μs. At step 1103, a Z1 value is determined and stored, whereafter step 1104 is entered. At step 1104, a voltage is applied to layer 202 of manually operable keyboard 101 to energise it, and the electrical configuration for taking a Z2 measurement is set up, after which step 1105 is entered. Step 1105 is a predetermined wait delay, which according to the present embodiment is 60 μs. At step 1106, a Z2 value is determined and stored, whereafter step 1107 is entered. At step 1107, a ZA value is generated from the Z1 and Z2 values and stored, whereafter step 1003 shown in Figure 10 is entered. As previously described, if the question asked at step 1003 is answered negatively, step 803 is re- entered, but if the question is answered in the affirmative, step 805 is entered.
Figure 12 Step 805 is shown in more detail in Figure 12. As described above, the time at which an input signal is detected as having a Z value above threshold T1 for the first time is time cc,, which is the start of the α interval. Thus, at step 1201, an α interval timer is started. At step 1202, a question is asked whether a press is detected. This process is performed in the same manner as described with reference to Figure 10. If the question asked at step 1202 is answered in the negative, step 803 shown in Figure 8 is re- entered. However, if the question asked at step 1202 is answered in the affirmative, step 1203 is entered, where X, Y and ZB values are determined. This process is described with reference to Figure 13. When step 1203 is completed, step 1204 is entered, where a question is asked whether the α interval timer has reached the interval time. If this question is answered in the negative, step 1202 is re-entered. The program loops around steps 1202, 1203 and 1204 for as long as a press is detected at step 1202 and the α interval timer is determined at step 1204 to be still timing up to the interval time. If the question asked at step 1204 is answered in the affirmative, step 1205 is entered, where the interval timer is stopped and reset to zero.
When the interval timer has timed the α interval time, this time is time α2.On completion of step 1205, step 806 is entered.
Figure 13 Step 1203 is shown in further detail in Figure 13. At step 1301, the electrical configuration for taking an X measurement is set up, whereafter step 1302 is entered. Step 1302, which is described in further detail with reference to Figure 14, is a wait delay, the duration of which is modified according to the latest ZA value. The wait delay at step 1302 acts as the settling time before which it is possible to obtain positional data, therefore the settling time is modified according to the degree of the mechanical interaction. At step 1303, an X value is determined and stored. At step 1304, a voltage is applied to layer 203 to energise it and the electrical configuration for taking a Y measurement is set up, whereafter step 1305 is entered. Step 1305, is a wait delay, the duration of which is modified according to the latest
ZA value. The wait delay at step 1305 acts as the settling time before which it is possible to obtain positional data, therefore the settling time is modified according to the degree of the mechanical interaction. Step 1305 is performed in a similar way to step 1302. At step 1306, a Y value is determined and stored, whereafter step 1307 is entered. At step 1307, the electrical configuration for taking a Z3 measurement is set up, whereafter step 1308 is entered. Step 1308 is a wait delay of predetermined duration, which according to the present embodiment is 60 μs. At step 1309, a Z3 value is determined and stored. At step 1310, a voltage is applied to layer 202 to energise it, and the electrical configuration for taking a Z4 measurement is set up, whereafter step 1311 is entered. Step 1311 is a wait delay of predetermined duration, which according to the present embodiment is 60 μs. At step 1312, a Z4 value is determined and stored, whereafter step 1313 is entered. At step 1313, a ZB value is generated from the Z3 and Z4 values and stored, whereafter step 1204 shown in Figure 12 is entered.
Figure 14
Step 1302 is shown in further detail in Figure 14. At step 1401 , a question is asked whether the ZA value, generated at step 1402, is above a first threshold L. According to the present embodiment, L is equal to 60 counts. If this question is answered in the negative, step 1402 is entered.
Step 1402 is a wait delay of a predetermined period, whereafter step 1403 is entered. According to the present embodiment, step 1402 is a delay of 400 μs. However, if the question asked at step 1401 is answered in the affirmative, step 1402 is bypassed and step 1403 is entered. At step 1403, a question is asked whether the same ZA value is above a second threshold M.
Threshold M is greater in magnitude than threshold L. According to the present embodiment, M is equal to 100 counts. If the question asked at step 1403 is answered in the negative, step 1404 is entered. Step 1404 is a wait delay of a predetermined period, whereafter step 1405 is entered. According to the present embodiment, step 1404 is a delay of 200 μs. However, if the question asked at step 1403 is answered in the affirmative, step 1404 is bypassed and step 1405 is entered. At step 1405, a question is asked whether the same ZA value is above a third threshold N. Threshold N is greater in magnitude than threshold M. According to the present embodiment, N is equal to 150 counts. If the question asked at step 1405 is answered in the negative, step 1406 is entered. Step 1406 is a wait delay of a predetermined period, whereafter step 1303 shown in Figure 13 is entered. According to the present embodiment, step 1406 is a delay of 200 μs. However, if the question asked at step 1405 is answered in the affirmative, step 1406 is bypassed and step 1303 is entered. Thus, according to the present embodiment, if the ZA value is greater than 150 counts, none of the wait delay steps 1402, 1404, 1406 are performed. In this way, the degree of mechanical interaction is used to modify the settling time. The greater the degree of mechanical interaction, the shorter a settling time that is needed in order to obtain accurate positional data, therefore the settling time reduces as the degree of interaction increases. This feature provides for an increase in the sampling rate in response to an increase in the degree of mechanical interaction. In addition, a user would only wish to press a key for a finite period of time, similar to the length of key press effected when using a standard keyboard. If it takes too long for a character to be recognised, even when the degree of accuracy is high, this would not be considered acceptable to users.
As described, each time one of thresholds L, M, N is exceeded, a wait delay is bypassed, thereby improving the response of keyboard 101. Thus, the greater the ZA value, the shorter the duration of the wait delay at step 1302. In this way, the duration of the wait delay at step 1302 is dynamically modified. Thus, positional accuracy is always available but the speed of the operation is enhanced when this is possible. In particular, the speed of the operation is increased when increases occur to the degree of the mechanical interaction. In the keyboard environment, the keyboard responds more quickly if the keys are hit more firmly. Referring again to Figure 12, as previously described, on completion of step 1205, step 806 shown in Figure 8 is entered.
Figure 15
Step 806 is shown in further detail in Figure 15. At step 1501 , a question is asked whether the ZB value, generated at step 1313, is greater than threshold T1. This step is performed to determine whether the press is maintained. If this question is answered in the negative, step 803 is re- entered. However, if this question is answered in the affirmative, step 1502 is entered, where a question is asked whether the position of the press is stable. Due to the construction of manually operable keyboard 101 , it is possible that a press can move position within the keyboard 101 without the press having been interrupted. Thus, at step 1502, a check is made to determine whether three consecutive X, Y positional values within a predetermined range have been detected. According to the present embodiment, three consecutive X, Y values are stored, and if the second and third X, Y values are within a predetermined range of the first X, Y values stored, the position of the detected press is considered to be stable. If the question asked at step 1502 is answered negatively, step 803 shown in Figure 8 is re-entered. However, if the question is answered in the affirmative, and the position of the detected press is interpreted to be stable, step 807 shown in Figure 8 is entered, where the latest X and Y values are processed to determine which key is pressed.
As shown in Figure 8, at step 808, a question is asked whether the key identified at step 807 is the same as the last identified key for which data was sent to the keyboard driver 206. If this question is answered in the negative, for example, when this step is entered for the first time after power up, step 809 is entered.
Figure 16
Step 809 is shown in further detail in Figure 16. At step 1601 , a question is asked whether the ZB value, generated at step 1313, is greater than threshold T2. This step is performed to determine whether the ZB value represents a soft key press or a hard key press. If the question is answered in the negative, to the effect that the ZB value is less than threshold T2, this is interpreted as a soft key press, and step 1602 is entered. At step 1602 a first of the two key scan codes corresponding to the identified key is sent to the keyboard driver 206, and this data is stored as the last data sent. If the question is answered in the affirmative, to the effect that the ZB value is greater than threshold T2, this is interpreted as a hard key press, and step 1603 is entered. At step 1603 the second of the two key scan codes corresponding to the identified key is sent to the keyboard driver 206, and this data is stored as the last data sent. For example, as described with reference to Figures 7A and 7B, a key may have a first key scan code representing a lower case character and a second key scan code representing an upper case character. Thus, using this example, entering step 1602 shown in Figure 16 will result in a lower case character being displayed on the screen of hand held computer 102. Alternatively, entering step 1603 will result in an upper case character being displayed on the screen of hand held computer 102. Thus, the degree of the manual interaction with the key can be used to select between two available outputs for that key. Referring again to step 808 shown in Figure 8, if the question is answered in the affirmative, to the effect that the key identified at step 807 is the same as the last identified key for which data was sent to the keyboard driver 206, step 810 is entered. This condition will occur if a key scan code is sent to keyboard driver 206 at step 809, and the key has continued to receive a press, such that steps 804 to 806 are re-entered and answered in the affirmative.
Figure 17
Step 810 is shown in further detail in Figure 17. At step 1701, an auto repeat delay timer is started. The auto repeat delay is a delay between a first character for a key being displayed on the screen of hand held computer 101 and subsequent automatically repeated characters resulting from a continued press of that key. At step 1702 a question is asked whether a press is detected. This step is performed in a similar way to step 804 shown in Figure 10. If this question is answered negatively, step 803 is re-entered. However, if the question is answered in the affirmative, step 1703 is entered where X, Y and ZB values are determined.
This step is performed in a similar way to step 1203 shown in Figure
13. At step 1704 a question is asked whether a valid press is detected. This step is performed in a similar way to step 806 shown in Figure 15. If this question is answered negatively, step 803 is re-entered. However, if the question is answered in the affirmative, step 1705 is entered where a question is asked whether the auto repeat delay timer has reached the auto repeat time. If this question is answered in the negative, step 1702 is re- entered. The program loops around steps 1702, 1703, 1704 and 1705 for as long as a press is detected at step 1702, a valid press is determined at step
1704 and the auto repeat delay timer is determined at step 1705 to be still timing up to the auto repeat delay time. If the question asked at step 1705 is answered in the affirmative, step 1706 is entered, where the auto repeat delay timer is stopped and reset to zero, whereafter step 811, shown in Figure 8 is entered.
Figure 18
Step 811 is shown in further detail in Figure 18. At step 1801 , the last data sent to keyboard driver 206, which is stored in the last data sent store, is re-sent to the keyboard driver 206. At step 1802, a question is asked whether a press is detected. This step is performed in a similar way to step 804 shown in Figure 10. If this question is answered in the negative, to the effect that a press is not detected, step 803 shown in Figure 8 is re-entered. However, if this question is answered in the affirmative, to the effect that the key is still receiving a press, step 1803 is entered, where X, Y and ZB values are determined. This step is performed in a similar way to step 1203 shown in Figure 13. At step 1804 a question is asked whether a valid press is detected. This step is performed in a similar way to step 806 shown in Figure 15. If this question is answered negatively, step 803 is re-entered. However, if the question is answered in the affirmative, step 1805 is entered. Step
1805, is a wait delay, the duration of which is modified according to the latest ZB value. Thus, for example, if a key is held down in a hard press fashion, and it is released slightly, thereby representing a soft press condition, this change will be detected when more data is fetched at step 1803. Although initial Z values are used to determine the first character sent in response to a key press, subsequent Z values are used to determine the auto repeat rate of characters in response to a continued press of the key.
Figure 19
Step 1805 is shown in further detail in Figure 19. At step 1901, a question is asked whether the ZB value, generated at step 1803, is above a first threshold P. According to the present embodiment, P is equal to 60 counts. If this question is answered in the negative, step 1902 is entered. Step 1902 is a wait delay of a predetermined period, whereafter step 1903 is entered. According to the present embodiment, step 1902 is a delay of 400 μs. However, if the question asked at step 1901 is answered in the affirmative, step 1902 is bypassed and step 1903 is entered. At step 1903, a question is asked whether the same ZB value is above a second threshold Q. Threshold Q is greater in magnitude than threshold P. According to the present embodiment, Q is equal to 100 counts. If the question asked at step 1903 is answered in the negative, step 1904 is entered. Step 1904 is a wait delay of a predetermined period, whereafter step 1905 is entered. According to the present embodiment, step 1904 is a delay of 200 μs. However, if the question asked at step 1903 is answered in the affirmative, step 1904 is bypassed and step 1905 is entered. At step 1905, a question is asked whether the same ZB value is above a third threshold R.
Threshold R is greater in magnitude than threshold P. According to the present embodiment, R is equal to 150 counts. If the question asked at step 1905 is answered in the negative, step 1906 is entered. Step 1906 is a wait delay of a predetermined period, whereafter step 1801 shown in Figure 18 is re-entered. According to the present embodiment, step 1906 is a delay of 200 μs. However, if the question asked at step 1905 is answered in the affirmative, step 1906 is bypassed and step 1801 is re-entered. Thus, according to the present embodiment, if the ZB value is greater than 150 counts, none of the wait delay steps 1902, 1904, 1906 are performed.
Thus, each time one of thresholds P, Q, R is exceeded, a wait delay is bypassed. In this way, the duration of the wait delay at step 1805 is dynamically modified. The greater the ZB value, the shorter the duration of the wait delay at step 1805. Thus, an increase in the degree of manual interaction with a key will result in an increase in the rate at which characters are repeated, whilst the auto repeat function is being performed. As described above, if the question asked at step 1802, whether a press is detected, or the question asked at step 1804, whether a valid press is detected, is answered negatively, step 803 shown in Figure 8 is entered. Thus, in response to the detection of an interruption, or break, in the key press, or a change in position of the key press, the auto repeat function is terminated.
According to a second preferred embodiment of the present invention, the functions of the above described first preferred embodiment are performed, however, the interface circuit 204 and the keyboard driver 206 each do a different degree of the work. The interface circuit 204 applies voltages to the conducting planes 201 in order to determine positional X, Y data and Z data, indicative of the extent of the input signal produced in response to a mechanical interaction. When data of this type becomes available, it is written to a buffer and the data contained in this buffer may then be read by the keyboard driver 206.
As previously described, interface circuit 204 preferably includes a micro-controller with appropriate program instructions. Program instructions required to implement a second preferred embodiment of the present invention are illustrated in Figure 20, which shows program instructions for interface circuit 204, and Figure 21, which shows program instructions for keyboard driver 206.
Figure 20
Referring to Figure 20, the hand held computer 102 is switched on at step 2001 and power is supplied to the interface circuit 204 of manually operable keyboard 101. At step 2002 the hardware is initialised and an initial message is sent to the hand held computer 102 via the serial output port. At step 2003, the last data sent store is reset. This step is performed in a similar way to step 803 shown in Figure 8. At step 2004 a question is asked as to whether a press has been detected. This step is performed in a similar way to step 804 shown in Figure 10. If the question asked at step 2004 is answered in the negative, step 2003 is re-entered. If the question asked at step 2004 is answered in the affirmative, step 2005 is entered, where a question is asked whether a press exists for the duration of the interval. This step is performed in a similar way to step 805 shown in Figure 12. If the question asked at step 2005 is answered in the negative, step 2003 is re-entered. However, if the question asked at step 2005 is answered in the affirmative, step 2006 is entered, where a question is asked whether the press is determined to be a valid press. This step is performed in a similar way to step 806 shown in Figure 15. Again, if the question asked at step 2006 is answered in the negative, step 2003 is re-entered. However, if the question asked at step 2006 is answered in the affirmative, step 2007 is entered. At step 2007, the latest X, Y and ZB values are sent to keyboard driver 206 for further processing, and are stored as the last data sent by interface circuit 204.
According the present embodiment, the program executed by the interface circuit 204 does not perform any additional processing such that the interface circuit 204 does not itself determine which key has been pressed and it does not determine the degree to which the key has been pressed. However, it should be emphasised that in alternative embodiments more of the processing could be performed by the interface circuit. However in the present preferred embodiment, this additional processing is performed by the keyboard driver 206.
The keyboard driver 206 is responsible for converting the latest X, Y and ZB values into an identification of a particular key press along with an indication of the degree of the press; that is to say, did the keyboard 101 encounter a soft key press or a hard key press. This information is then encoded into a form appropriate for supplying to the application program
205. Thus, the application program 205 is unaware of the soft key press/hard key press sensitivity of the keys of keyboard 101 and is merely responsive to character information being supplied as if this information had been supplied via conventional means. Figure 21
The program for keyboard driver 206 is shown in Figure 21, and is executed within the more sophisticated processing environment of the hand held computer 102. Consequently, the keyboard driver 206 must compete for resources with other user applications and system programs.
When connected to the hand held computer 102, the interface circuit 204 interrupts the operating system of the hand held computer 102 by means of its Hot Sync terminal. This Hot Sync terminal is provided primarily to establish synchronisation with a host desk top computer. Within the hand held computer 102 itself, this results in the program counter jumping to a specified interrupt location. Normally, having jumped to this location, the hand held computer 102 would initiate its Hot Sync routines. However, in the present embodiment, modifications have been made to the program instructions such that when an interrupt occurs, a question is asked as to whether the interrupt represents a true Hot Sync or, alternatively, whether the interrupt represents connectivity of a keyboard 101. If the latter is identified, the program counter jumps to the location of the instructions for keyboard driver 206, representing the program for keyboard driver 206. Once connectivity of keyboard 101 is established, the serial port of the hand held computer 101 is configured to generate interrupts when character data is sent to it by keyboard 101.
At step 2101 the keyboard driver 206 responds to the serial port interrupt and at step 2102, the X data and the Y data are processed to determine which key of the keyboard 101 was actually pressed by, for example, reference to a look up table. At step 2103, a question is asked whether the key identified at step 2102 is the same as the last identified key for which data was sent to the application 205. The first time step 2102 is entered, the question will be answered in the negative, and step 2104 is entered. At step 2104, the ZB data received is processed to determine which of two possible character identifier codes for that key to supply to the application 205. This process is described with reference to Figure 22. After the character identifier code to be supplied is determined at step 2104, that character identifier code is supplied to the application 205 and is stored as the last data supplied. After step 2104 is completed, step 2105 is entered. At step 2105, a question is asked whether more X, Y and ZB values are available. Assuming that the user continues to press the same key without interruption of the press, step 2105 is answered in the affirmative, and step 2102 is re-entered. Still assuming that the user continues to press the same key without interruption of the press, step 2102 is performed, the question asked at step 2103 is answered in the affirmative, and step 2106 is re- entered.
At step 2106, a question is asked whether the same key is being determined for the duration of the auto repeat delay. This process is described with reference to Figure 23. If this question is answered in the affirmative, step 2107 is entered, where the auto repeat function is performed, as described with reference to Figure 24. Once the auto repeat function has been terminated, step 2108 is entered. However, if the question asked at step 2105 is answered negatively, step 2108 is entered. At step 2108, the last data supplied store is reset, such that the data stored is not indicative of a valid character identifier code. The function of resetting the last data supplied store is performed in preparation for the question asked at step
2106. After step 2108 is completed, step 2105 is re-entered, where a question is asked whether more X, Y and ZB values are available. If this question is answered in the negative, step 2109 is entered. At step 2109, the last data supplied store is reset, in a similar way to step 2108, whereafter step 2101 is re-entered.
Figure 22
Step 2104 is shown in further detail in Figure 22. At step 2201, a question is asked whether the ZB value, is larger than threshold T2. This step is performed to determine whether the ZB value represents a soft key press or a hard key press. If the question is answered in the negative, to the effect that the ZB value is less than threshold T2, this is interpreted as a soft key press, and step 2202 is entered. At step 2202 a first of the two character identifier codes corresponding to the identified key is supplied to the application 205, and this data is stored as the last data supplied. If the question is answered in the affirmative, to the effect that the ZB value is larger than threshold T2, this is interpreted as a hard key press, and step 2203 is entered. At step 2203 the second of the two character identifier codes corresponding to the identified key is sent to the application 205, and this data is stored as the last data supplied. For example, as described with reference to Figures 7 A and 7B, a key may have a first character identifier code representing a lower case character and a second character identifier code representing an upper case character. Thus, the extent of input signal produced in response to manual interaction with a key, and thus a mechanical interaction with keyboard 101 can be used to select between two available outputs for that key. Figure 23
Step 2106 is shown in further detail in Figure 23. At step 2301 , an auto repeat delay timer is started. At step 2302 a question is asked whether more X, Y and ZB values are available. If this question is answered in the negative, step 2108 is entered. However, if the question is answered in the affirmative, step 2303 is entered where the X and Y values are processed to determine which key has been pressed. At step 2304 a question is asked whether a the key determined at step 2303 is the same as the key for which the last data was supplied. If this question is answered negatively, step 2108 is entered. However, if the question is answered in the affirmative, step 2305 is entered where a question is asked whether the auto repeat delay timer has reached the auto repeat time. If this question is answered in the negative, step 2302 is re-entered. The program loops around steps 2302, 2303, 2304 and 2305 for as long as X, Y and ZB values are available at step 2302, the same key is determined at step 2304 and the auto repeat delay timer is determined at step 2305 to be still timing up to the auto repeat delay time. If the question asked at step 2305 is answered in the affirmative, step 2306 is entered, where the auto repeat delay timer is stopped and reset to zero, whereafter step 2107, shown in Figure 21 is entered.
Figure 24
Step 2107 is shown in further detail in Figure 24.
At step 2401 , the last data supplied to application 205, which is stored in the last data supplied store, is supplied again to the application 205. At step 2402, a question is asked whether more X, Y and ZB values are available. If this question is answered in the negative, to the effect that the press has been interrupted, or broken, step 2108 shown in Figure 21 is entered. However, if this question is answered in the affirmative, to the effect that the key is still receiving a press, step 2403 is entered, where the X and Y values are processed to determine which key the data corresponds to. At step 2404 a question is asked whether a the key determined at step 2403 is the same as the previous determined key. If this question is answered negatively, step 2108 shown in Figure 21 is entered. However, if the question is answered in the affirmative, step 2405 is entered. Step 2405, is a wait delay, the duration of which is modified according to the latest ZB value, in a similar way to step 1805 shown in Figure 19.
As described above, if the question asked at step 2402, whether more X, Y and ZB values are available, or the question asked at step 1804, whether the same key is determined, is answered negatively, step 2108 shown in Figure 21 is entered. Thus, in response to the detection of an interruption, or break, in the key press, or a change in position of the key press, the auto repeat function is terminated.
It should be appreciated that many different procedures could be used as an alternative to the above described embodiments in order to achieve the same feature(s) provided by the present invention.
For example, the wait delays described with reference to the first and second described embodiments can be set in terms of a pre-determined number of clock cycles. However, according to a third preferred embodiment the α interval is set in terms of a pre-determined number of program loops. To describe this third embodiment in more detail, reference is made initially to
Figures 20 and 21. As described, according to the second embodiment, step 2005 shown in Figure 20 is performed in a similar way to step 805, which is shown in further detail in Figure 12. According to this third embodiment, step 2005 is set in terms of a number of loops around steps 1202 to 1204, with a loop counter being started at step 1201 and a comparison of the latest count against the predetermined number of counts around the loop being performed at step 1205. As described with reference to the first and second embodiments, the greater the degree of mechanical interaction with keyboard 101, the more quickly step 1203 is performed. Thus, the real time duration of step 2005 will vary according to the degree of mechanical interaction with keyboard 101. In this way, the rate at which data is sent from keyboard 101 at step 2007 to hand held computer 102 can be varied by varying the degree of manual interaction with a key 105. According to this third embodiment, the ZB value is utilised to indicate whether an auto shift function for the keyboard 101 should be invoked. In addition, due to the relationship between the degree of mechanical interaction with keyboard 101 and the rate of data sent from keyboard 101 , step 2107, shown in further detail in Figure 24, can be modified through the omission of step 2405.
Referring to the first described embodiment, step 1302 of Figure 13, which is shown in further detail in Figure 14, incorporates a comparison of a ZA value against three thresholds, thresholds L, M and N. It should be appreciated, however, that in alternative embodiments of the present invention any number of thresholds may be incorporated in such a step. Similarly, step 809, which is shown in further detail in Figure 16 incorporates a comparison of a ZB value against a single threshold, threshold T2. Again, it should be appreciated, that in alternative embodiments of the present invention any number of thresholds may be incorporated in such a step. A different processing procedure or operation may be initiated or controlled in response to a Z value exceeding each threshold, or the same processing procedure or operation may be initiated or controlled by a Z value exceeding a number of different thresholds. In addition, the comparison of a Z value against a threshold can be used to select between different operations directly, or to select one of a plurality of data values which indicate different operations to be performed.
According to the above described embodiments, the ZA and ZB values are representative of an averaged pair of Z measurements. However, according to alternative embodiments, the ZA and ZB values are each a single
Z measurement.
The above described embodiments of the present invention use a fabric construction to provide an array of keys in a keyboard. However, it should be appreciated that other fabrications of keyboards or individual keys may be employed provided that a variable extent input signal is produced that relates to the degree of manual interaction of a key. The key mechanics can be configured to respond to the force of the key press or the velocity of the key press etc. and one of these attributes, or a combination of these attributes, is then used to produce the variable extent input signal. The user will consider a key press to be either hard or soft, slow or fast, or one of two or more differentiable conditions, and a degree of interaction is used to control an operation of the keyboard.
In addition, the above described embodiments of the present embodiment show a keyboard communicating with a hand held computer such as that manufactured under the trademark "Palm". However, in alternative configurations, other processing devices may be used, such as a personal computer, a mobile telephone or other dedicated processing apparatus. The present invention is also applicable to other position detector devices that are not configured as a keyboard.

Claims

Claims
1. A method of measuring the position of a mechanical interaction in which voltages are measured after a settling time, wherein a variable extent input signal is produced in relation to the degree of the mechanical interaction; and said settling time is modified in response to the extent of said input signal.
2. A method according to claim 1, wherein voltages are applied to a fabric position detector having two conducting planes separated by an insulating layer.
3. A method according to claim 1 or claim 2, wherein the degree of mechanical interaction is determined by measuring current.
4. A method according to claim 1 , wherein said settling time is modified by the introduction of a wait period.
5. A method according to claim 4, wherein said wait period is bypassed upon detection of a hard key press.
6. A method according to claim 1 , wherein position is measured to identify a key of a manually operable keyboard.
7. A method according to claim 6, wherein said keyboard is interfaced to a data processing device.
8. A method according to claim 7, wherein a degree of manual interaction is also used to control an operation of said processing device.
9. A method according to claim 8, wherein said operation is an auto-repeat function.
10. A method according to claim 7, wherein said data processing device is a hand held computer.
11. Apparatus for measuring the position of a mechanical interaction in which voltages are measured after a settling time, comprising variable extent input signal generating means configured to generate an variable extent input signal related to the degree of the mechanical interaction; and settling time modification means configured to modify said settling time in response to the extent of said input signal.
12. Apparatus for measuring the position of a mechanical interaction according to claim 11, comprising voltage application means configured to apply voltages to a fabric position detector having two conducting planes separated by an insulating layer.
13. Apparatus according to claim 11 or claim 12, including current measuring means wherein the extent of a mechanical interaction is determined by current measurement.
14. Apparatus according to claim 11, including means for generating a wait period, wherein said settling time is modified by the introduction of said wait period.
15. Apparatus according to claim 14, including bypassing means, wherein said wait period is bypassed by said bypassing means upon detection of a hard key press.
16. Apparatus according to claim 11 , including position measurement means, wherein position is measured to identify a key of a manually operable keyboard.
17. Apparatus according to claim 16, including a data processing device wherein said keyboard is interfaced to said data processing device.
18. Apparatus according to claim 17, wherein operations are performed by said data processing device and one of said operations is controlled by the degree of said manual interaction.
19. Apparatus according to claim 18, wherein said operation is an auto repeat function.
20. Apparatus according to claim 17, wherein said data processing device is a hand-held computer.
21. A method of detecting a degree of manual interaction with a manually operable key, wherein a variable extent input signal is produced in relation to a degree of manual interaction; and a processing procedure is initiated if the extent of said input signal exceeds a first threshold level; said processing procedure comprising the steps of examining the extent of said input signal after an interval; and comparing said examined extent against a second threshold level to identify a first degree of manual interaction or to identify a second degree of manual interaction.
22. A method according to claim 21, wherein a plurality of manually operable keys are arranged as a manually operable keyboard.
23. A method according to claim 22, wherein key is defined as a portion of a fabric position detector having conducting fabric planes separated by an insulating layer.
24. A method according to claim 23, wherein said degree of manual interaction is determined by measuring current.
25. A method according to claim 23, wherein the duration of said interval is such as to allow electrical properties to settle.
26. A method according to claim 21, wherein said key is interfaced to a processing device.
27. A method according to claim 26, wherein said processing device determines appropriate action for a detected degree of interaction.
28. A method according to claim 26, wherein said processing device determines appropriate action for a detected rate of change of degree of interaction.
29. A method according to claim 27 or claim 28, wherein said processing device is a hand held computer.
30. A method according to claim 29, wherein said key is interfaced to said hand held computer via a Hot Sync connection.
31. A method according to claim 30, wherein said hand held computer is arranged to differentiate between a true Hot Sync operation and the reception of a character identifier from a key.
32. Apparatus for detecting a degree of manual interaction with a manually operable key, wherein a variable extent input signal is produced in relation to a degree of manual interaction, comprising processing means configured to initiate a processing procedure if the extent of said input signal exceeds a first threshold, said processing procedure comprising the steps of examining the extent of said input signal after an interval; and comparing said examined extent against a second threshold level to identify a first degree of manual interaction or to identify a second degree of manual interaction.
33. Apparatus for detecting a degree of manual interaction according to claim 32, wherein a plurality of manually operable keys are arranged as a manually operable keyboard.
34 Apparatus according to claim 33, wherein a key is defined as a portion of a fabric position detector having conductive fabric planes separated by an insulating layer.
35. Apparatus according to claim 34, including current measuring means wherein said degree of manual interaction is determined by said current measuring means.
36. Apparatus according to claim 34, wherein the duration of said interval is such to allow electrical properties to settle.
37. Apparatus according to claim 32, wherein said key is interfaced to a processing device.
38. Apparatus according to claim 37, wherein said processing device determines appropriate action for a detected degree of interaction.
39. Apparatus according to claim 37, wherein said processing device determines appropriate action for a detected rate of change of degree of interaction.
40. Apparatus according to claim 38 or claim 39, wherein said processing device is a hand-held computer.
41. Apparatus according to claim 40, wherein said key is interfaced to said hand-held computer via a Hot Sync connection.
42. Apparatus according to claim 41, wherein said hand-held computer is arranged to differentiate between a true Hot Sync operation and the reception of a character identifier from a key.
43. A method of controlling an auto repeat rate for a manually operable keyboard, wherein the auto repeat rate is increased in response to an increase in a degree of manual interaction with a key.
44. A method according to claim 43, wherein keys are defined as portions of a fabric position detector having conducting fabric planes separated by an insulating layer.
45. A method according to claim 44, wherein the degree of manual interaction is determined by measuring current.
46. A method according to claim 43, wherein said keyboard is interfaced to a processing device.
47. A method according to claim 46, wherein said processing device is a hand-held computer.
48. A method according to claim 47, wherein said keyboard is configured to be wrapped around said hand-held computer when not in use.
49. Apparatus for controlling an auto repeat rate for a manually operable keyboard, comprising processing means configured to increase said auto repeat rate in response to an increase in a degree of manual interaction with a key.
50. Apparatus according to claim 49, wherein keys are defined as portions of a fabric position detector having conducting fabric planes separated by an insulating layer.
51. Apparatus according to claim 50, including current measuring means, wherein the degree of manual interaction is determined by said current measuring means.
52. Apparatus according to claim 53, including a processing device, wherein said keyboard is interfaced to said processing device.
53. Apparatus according to claim 52, wherein said processing device is a hand-held computer.
54. Apparatus according to claim 53, wherein said keyboard is configured to be wrapped around said hand-held computer when not in use.
PCT/GB2002/004896 2001-10-30 2002-10-30 Detecting a degree of manual interaction with a manually operable key WO2003038585A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002341148A AU2002341148A1 (en) 2001-10-30 2002-10-30 Detecting a degree of manual interaction with a manually operable key

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
GB0125976A GB2381632A (en) 2001-10-30 2001-10-30 Controlling an auto-repeat rate for a keyboard
GB0125978A GB2381584A (en) 2001-10-30 2001-10-30 Position measuring method for a flexible keyboard
GB0125978.7 2001-10-30
GB0125983A GB2381499A (en) 2001-10-30 2001-10-30 :Detecting a degree of manual interaction with a manually operable key
GB0125983.7 2001-10-30
GB0125976.1 2001-10-30

Publications (2)

Publication Number Publication Date
WO2003038585A2 true WO2003038585A2 (en) 2003-05-08
WO2003038585A3 WO2003038585A3 (en) 2003-12-18

Family

ID=27256306

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2002/004896 WO2003038585A2 (en) 2001-10-30 2002-10-30 Detecting a degree of manual interaction with a manually operable key

Country Status (2)

Country Link
AU (1) AU2002341148A1 (en)
WO (1) WO2003038585A2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5189403A (en) * 1989-09-26 1993-02-23 Home Row, Inc. Integrated keyboard and pointing device system with automatic mode change
US5880411A (en) * 1992-06-08 1999-03-09 Synaptics, Incorporated Object position detector with edge motion feature and gesture recognition
GB9820910D0 (en) * 1998-09-26 1998-11-18 Electrotextiles Comp Ltd Detector constructed from fabric
AU4419800A (en) * 1999-05-20 2000-12-12 Electrotextiles Company Limited Detector constructed from fabric

Also Published As

Publication number Publication date
AU2002341148A1 (en) 2003-05-12
WO2003038585A3 (en) 2003-12-18

Similar Documents

Publication Publication Date Title
US4914624A (en) Virtual button for touch screen
JP3436637B2 (en) Coordinate input device
JP3504404B2 (en) Graphics display pointer with integrated selection
KR100920252B1 (en) Mouse controlled by finger movement in the air
US6758615B2 (en) Pressure sensitive functionality for keyboard keys
US9013405B2 (en) Touch-scrolling pad for computer input devices
CA1170368A (en) Touch position locating system
EP2028583A2 (en) Method and apparatus for providing input feedback in a portable terminal
CN101727238B (en) Information display apparatus, mobile information unit, display control method and display control program
EP2171565A2 (en) Pressure sensor array apparatus and method for tactile sensing
JPS59216237A (en) Data input unit
WO1996001585A1 (en) Data input arrangement
CN103186261B (en) Touch control method and device
JP2010113445A (en) Touch panel and method of detecting operation
CN109188947A (en) A kind of intelligence waiting massage armchair
EP1483656A1 (en) Method, system and device for distinguishing pointing means
JP2000148376A (en) Data input device
US11762480B2 (en) Key determination method for metal key
WO2003038585A2 (en) Detecting a degree of manual interaction with a manually operable key
JPH04278627A (en) Touch panel device
GB2381499A (en) :Detecting a degree of manual interaction with a manually operable key
GB2381584A (en) Position measuring method for a flexible keyboard
EP2581811A1 (en) Rolling type input device, method and electronic equipment for setting sensitivity thereof
JP2006106844A (en) Touch panel data capture method and apparatus
GB2381632A (en) Controlling an auto-repeat rate for a keyboard

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP