[go: up one dir, main page]

HK1192352B - Key strike determination for pressure sensitive keyboard - Google Patents

Key strike determination for pressure sensitive keyboard Download PDF

Info

Publication number
HK1192352B
HK1192352B HK14105663.9A HK14105663A HK1192352B HK 1192352 B HK1192352 B HK 1192352B HK 14105663 A HK14105663 A HK 14105663A HK 1192352 B HK1192352 B HK 1192352B
Authority
HK
Hong Kong
Prior art keywords
key
pressure
threshold amount
keys
time
Prior art date
Application number
HK14105663.9A
Other languages
Chinese (zh)
Other versions
HK1192352A (en
Inventor
Drasnin Sharon
Mitchel Mail Scott
Tom Belesiu Jim
C. Shaw Timothy
R. Lutz Moshe
Henry Dietz Paul
Original Assignee
Microsoft Technology Licensing, Llc
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
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of HK1192352A publication Critical patent/HK1192352A/en
Publication of HK1192352B publication Critical patent/HK1192352B/en

Links

Description

Keystroke determination for pressure sensitive keyboards
RELATED APPLICATIONS
This application claims priority from the following U.S. provisional patent applications in accordance with 35U.S. C. ยง 119(e), the entire contents of each of these applications being incorporated herein by reference in their entirety:
attorney docket number 336082.01, entitled "Screen Edge," filed on 3/2/2012, U.S. provisional patent application No. 61/606,321;
attorney docket number 336083.01, entitled "Input device functionality", filed on 3/2/2012, U.S. provisional patent application No. 61/606,301;
U.S. provisional patent application attorney docket No. 336084.01, entitled "Functional Hinge," and application No. 61/606,313, filed 3/2/2012;
U.S. provisional patent application attorney docket No. 336086.01, entitled "use and administration," and application No. 61/606,333, filed 3, 2, 2012;
U.S. provisional patent application attorney docket No. 336086.02 entitled "use and dauthention," filed on 21/3/2012, and having application number 61/613,745;
U.S. provisional patent application attorney docket No. 336087.01, entitled "Kickstand and Camera," filed 3/2/2012, and application No. 61/606,336; and
attorney docket number 336143.01, entitled "spanway Provisional," U.S. Provisional patent application No. 61/607,451, filed 3/6/2012,
further, the present application also incorporates by reference the following applications in their entirety:
attorney docket number 336554.01, entitled "Flexible Hinge and removable Attachment", filed on day 14, month 5, 2012, U.S. patent application No. _______;
attorney docket number 336563.01, entitled "Input Device Layersand nestling," filed on day 14, 5/2012, U.S. patent application No. ______.
Background
Mobile computing devices have evolved to increase the functionality available to users in mobile scenarios. For example, a user may interact with a mobile phone, tablet computer, or other mobile computing device to check email, surf the web, compose text, interact with an application, and so forth. However, conventional mobile computing devices often employ a virtual keyboard that is accessed using the touch screen functionality of the device. This is typically employed to maximize the amount of display area of the computing device.
However, the use of a virtual keyboard may frustrate users who desire to provide a large amount of input (e.g., enter a large amount of text to compose a long email, document, etc.). Thus, conventional mobile computing devices are often considered to be of limited use for such tasks, especially compared to the ease with which a user may enter text using, for example, a conventional keyboard of a conventional desktop computer. However, for mobile computing devices, the use of conventional keyboards may weaken the mobility of the mobile computing device, thereby possibly making the mobile computing device less suitable for its intended use in a mobile scenario.
Disclosure of Invention
Techniques for keystroke determination for pressure sensitive keyboards are described herein. In one or more implementations, an indication of pressure applied to keys of a pressure-sensitive keyboard configured to be physically and communicatively removable from a computing device is obtained. Determining that the pressure applied to the key is a keystroke if the pressure applied to the key rises to a key press threshold amount.
In one or more implementations, an indication of pressure applied to a key of a keyboard is obtained. Determining that the pressure applied to the key is a keystroke if the pressure applied to the key rises to a key press threshold amount and within a particular amount of time that the pressure applied to the key rises to the key press threshold amount, the pressure applied to the key also rises to a selection threshold amount or the pressure applied to the key rises to a threshold rate.
In one or more implementations, an indication of pressure applied to a key of a pressure sensitive keyboard is obtained. Determining that the pressure applied to the key is a keystroke if: the pressure applied to the key rises to a key press threshold amount; no more than a threshold number of keys are pressed simultaneously; a first threshold amount of time has elapsed since the key was previously struck and released; and a second threshold amount of time has elapsed since a different key of the keyboard was previously struck.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Drawings
The detailed description will be described with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items. The entities illustrated in the figures may represent one or more entities, and thus, reference may be made interchangeably to the singular or plural forms of an entity in discussion.
FIG. 1 is an illustration of an environment in an example implementation that is operable to employ techniques described herein.
FIG. 2 depicts an example implementation of the input device of FIG. 1 showing the flexible hinge in more detail.
Fig. 3 depicts an example implementation showing a perspective view of the connection portion of fig. 2 including a mechanical coupling protrusion and a plurality of communication contacts.
FIG. 4 depicts an example of a cross-sectional view of a pressure sensitive key of a keypad of the input device of FIG. 2.
FIG. 5 depicts an example of the pressure sensitive key of FIG. 4 when pressure is applied at a first location of the flexible contact layer so as to contact a corresponding first location of the sensor substrate.
FIG. 6 depicts an example of the pressure sensitive key of FIG. 4 when pressure is applied at a second location of the flexible contact layer so as to contact a corresponding second location of the sensor substrate.
FIG. 7 depicts an example of the pressure sensitive key of FIG. 4 when a force concentrator layer is employed.
FIG. 8 depicts an example of the pressure sensitive key of FIG. 7 when pressure is applied at a plurality of different locations of the force concentrating layer to cause the flexible contact layer to contact the sensor substrate.
Fig. 9A shows an example of a view of a cross-section of a keyboard including a plurality of pressure sensitive keys employing a force concentrator layer.
Fig. 9B shows an example of a top view of a force concentrator when one or more cuts (cuts) are included to increase the flexibility of the layers adjacent the cuts.
FIG. 10 depicts an example of a graph of pressure on a key as a function of time showing keystrokes.
FIG. 11 depicts an example of a plot of pressure on one key as a function of time showing an invalid key press due to the same amount of key rejection time not having elapsed.
FIG. 12 depicts an example of a graph of pressure on a key as a function of time showing multiple keystrokes of the same key.
FIG. 13 depicts an example of a graph of pressure on multiple keys as a function of time showing invalid key presses due to different key repulsion time amounts not having elapsed.
FIG. 14 depicts an example of a graph of pressure on multiple keys as a function of time showing multiple keystrokes for different keys.
FIG. 15 depicts an example of a graph of pressure over time for multiple keys showing multiple keys being pressed at approximately the same time.
FIG. 16 depicts an example of a graph of pressure on multiple keys concurrently as a function of time showing multiple keystrokes resulting from the concurrent pressing of a key.
FIG. 17 depicts an example of a graph of pressure on multiple keys concurrently as a function of time showing multiple keystrokes resulting from the concurrent pressing of a key.
FIG. 18 depicts an example of a graph of pressure on multiple keys concurrently as a function of time, showing invalid key presses resulting from concurrently pressing keys.
FIG. 19 depicts an example of a graph of pressure on a key as a function of time showing keystrokes.
FIG. 20 depicts an example of a graph of pressure on one key as a function of time showing an invalid key press.
FIG. 21 depicts an example of a plot of pressure on one key as a function of time showing an invalid key press due to the same amount of key rejection time not having elapsed.
FIG. 22 depicts an example of a graph of pressure on one key over time showing multiple keystrokes on the same key.
FIG. 23 depicts an example of a graph of pressure on multiple keys as a function of time showing invalid key presses due to different key repulsion time amounts not having elapsed.
FIG. 24 depicts an example of a graph of pressure on multiple keys as a function of time showing multiple keystrokes for different keys.
FIG. 25 depicts an example of a graph of pressure on multiple keys as a function of time showing multiple keys being pressed at approximately the same time.
FIG. 26 depicts an example of a graph of pressure on multiple keys concurrently as a function of time showing multiple keystrokes resulting from the concurrent pressing of a key.
FIG. 27 depicts an example of a graph of pressure on multiple keys concurrently as a function of time showing multiple keystrokes resulting from the concurrent pressing of a key.
FIG. 28 depicts an example of a graph of pressure on multiple keys concurrently as a function of time showing invalid key presses resulting from concurrently pressing keys.
FIG. 29 depicts an example of a graph of pressure on a key as a function of time showing keystrokes.
Fig. 30 depicts an example of a graph of pressure on a key as a function of time, showing a resting position.
FIG. 31 is an illustration of a system that is operable, in an example implementation, to employ techniques described herein.
Fig. 32 is a flow diagram illustrating an example process for implementing the techniques described herein in accordance with one or more embodiments.
FIG. 33 is a flow diagram illustrating an example process for determining whether a keystroke has occurred in accordance with one or more embodiments.
Fig. 34 illustrates an example system including various components of an example device, which may be implemented as any type of computing device as described with reference to fig. 1-33 to implement embodiments of the techniques described herein.
Detailed Description
Overview
Techniques for keystroke determination for pressure sensitive keyboards are described herein. The pressure sensitive keypad includes a plurality of pressure sensors associated with the keys of the keypad. In response to pressure applied to one or more keys of the keyboard, a determination is made as to whether the applied pressure is a keystroke (a user selection of a key). A variety of different factors may be used to determine whether the applied pressure is a keystroke, such as the amount of pressure applied, the rate at which pressure is applied, the number of keys to which pressure is applied, the time at which pressure is applied relative to a previous keystroke, and so forth.
In the following discussion, an example environment is first described in which the techniques described herein may be employed. Example processes are then described that may be performed in the example environment and in other environments. Thus, execution of the example processes is not limited to the example environment, and the example environment is not limited to execution of the example processes.
Example Environment and example Process
FIG. 1 is an illustration of an environment 100 in an example implementation that is operable to employ techniques described herein. The illustrated environment 100 includes an example of a computing device 102 physically and communicatively coupled to an input device 104 via a flexible hinge 106. The computing device 102 may be configured in a variety of ways. For example, the computing device 102 may be configured for mobile use, such as a mobile phone, a tablet computer as shown, and so on. Thus, the computing device 102 may range from a full resource device with abundant memory and processor resources to a low resource device with limited memory and/or processing resources. Computing device 102 may also involve software that causes computing device 102 to perform one or more operations.
Computing device 102 is illustrated, for example, as including input/output module 108. Input/output module 108 represents functionality related to input processing and output presentation of computing device 102. The input/output module 108 may process a variety of different inputs, such as inputs related to functions corresponding to keys of the input device 104 or keys of a virtual keyboard displayed by the display device 110, to recognize gestures that may be recognized via touchscreen functions or the like of the input device 104 and/or the display device 110 and cause operations corresponding to the gestures to be performed. Thus, the input/output module 108 may support a variety of different input technologies by recognizing and utilizing differences (division) between input types including key presses, gestures, and the like.
In the illustrated example, the input device 104 is configured as a keyboard with a QWERTY key layout, although other key layouts are also contemplated. In addition, other non-conventional configurations are also contemplated, such as game controllers, configurations that mimic musical instruments, and the like. Thus, the input device 104 and the keys included with the input device 104 may take on a variety of different configurations to support a variety of different functions.
As previously described, in this example, the input device 104 is physically and communicatively coupled to the computing device 102 through the use of the flexible hinge 106. The flexibility of the flexible hinge 106 is such that the rotational movement supported by the hinge is accomplished by flexing (e.g., bending) of the material making up the hinge, as opposed to mechanical rotation supported by a pin (pin), although embodiments of mechanical rotation are also contemplated. Further, such flexible rotation may be configured to support movement in one direction (e.g., vertically in the figure), while limiting movement in other directions, such as lateral movement of the input device 104 relative to the computing device 102. This may be used to support consistent alignment of the input device 104 with respect to the computing device 102, such as aligning sensors for changing power states, application states, and so forth.
The flexible hinge 106 may be formed, for example, by using one or more layers of fabric and include conductors formed as flexible traces (flex traces) to communicatively couple the input device 104 to the computing device 102 and vice versa. This communication may be used, for example, to transmit the results of a key press to the computing device 102, receive power from the computing device, perform authentication, provide supplemental power to the computing device 102, and so forth. The flexible hinge 106 can be configured in a variety of ways, further discussion of which may be found in relation to the following figures.
FIG. 2 depicts an example implementation 200 of the input device 104 of FIG. 1, showing the flexible hinge 106 in more detail. In this example, a connection 202 of the input device is shown, the connection 202 configured to provide communication and physical connection between the input device 104 and the computing device 102. In this example, the connection 202 has a height and cross-section configured to be received in a channel in a housing of the computing device 102, although this arrangement may be reversed without departing from the spirit and scope thereof.
The connection portion 202 is flexibly connected to a portion of the input device 104 including the key using the flexible hinge 106. Thus, when the connection 202 is physically connected to the computing device, the combination of the connection 202 and the flexible hinge 106 supports movement of the input device 104 relative to the computing device 102, similar to a hinge of a book.
For example, the flexible hinge 106 may support rotational movement such that the input device 104 may be placed against the display device 110 of the computing device 102, thereby acting as a shroud. The input device 104 may also be rotated to be positioned against the back of the computing device 102, such as against a rear housing of the computing device 102 (which is disposed on the computing device 102 on a side opposite the display device 110).
Naturally, a variety of other orientations are also supported. For example, the computing device 102 and the input device 104 may be in an arrangement such that both are laid flat against a surface as shown in FIG. 1. In another example, a typing arrangement may be supported in which the input device 104 is placed flat against a surface and the computing device 102 is placed at an angle to allow viewing of the display device 110, for example, by using a stand disposed on the back of the computing device 102. In another example, an arrangement may be supported in which: where the input device 104 is placed flat against the back of the display device 110 with the keys facing outward (in a direction approximately opposite the display of the display device 110), this allows the user to grasp the display device 110 while viewing the output displayed by the display device 110 and touch the keys of the input device 104 on the back of the display device 110 with their fingers. Other examples are also contemplated, such as a tripod arrangement, a conference arrangement, a presentation arrangement, and the like.
In this example, the connection portion 202 is illustrated as including magnetic coupling devices 204, 206, mechanical coupling protrusions 208, 210, and a plurality of communication contacts 212. The magnetic coupling devices 204, 206 are configured to magnetically couple to complementary magnetic coupling devices of the computing device 102 through the use of one or more magnets. In this manner, the input device 104 may be physically secured to the computing device 102 through the use of magnetic attraction.
The connection portion 202 also includes mechanical coupling protrusions 208, 210 to form a mechanical physical connection between the input device 104 and the computing device 102. The mechanical coupling protrusions 208, 210 will be shown in more detail in the following figures.
Fig. 3 depicts an example implementation 300 showing a perspective view of the connection portion 202 of fig. 2 including the mechanical coupling protrusions 208, 210 and the plurality of communication contacts 212. As shown, the mechanical coupling protrusions 208, 210 are configured to extend away from the surface of the connection 202, in which case they are perpendicular, although other angles are also contemplated.
The mechanical coupling protrusions 208, 210 are configured to be received within complementary cavities within the channel of the computing device 102. When so received, the mechanical coupling protrusions 208, 210 facilitate mechanical binding between the devices when a force is applied that is not in-line with the axis (defined as coinciding with the height of the protrusions and the depth of the cavities).
For example, when a force is applied that is consistent with the aforementioned longitudinal axis along the height of the protrusion and the depth of the cavity, the user will separate the input device 104 from the computing device 102 against the force applied by the magnet only. However, at other angles, the mechanical coupling protrusions 208, 210 are configured to mechanically bind within the cavity, thereby creating a force and adding the magnetic force of the magnetic coupling devices 204, 206 to prevent the input device 104 from being removed from the computing device 102. In this manner, the mechanical coupling tabs 208, 210 may bias the removal of the input device 104 from the computing device 102 (mimicking tearing a page from a book) and limit other attempts to separate the devices.
The connection portion 202 is also illustrated as including a plurality of communication contacts 212. The plurality of communication contacts 212 are configured to contact corresponding communication contacts of the computing device 102 to form a communicative coupling between the devices. The communication contacts 212 may be configured in a variety of ways, such as by being formed using a plurality of spring loaded pins configured to provide consistent communication contacts between the input device 104 and the computing device 102. Thus, the communication contacts may be configured to remain unchanged during small movements of the impact of the device. A variety of other examples are also contemplated, including placement of pins on the computing device 102 and contacts on the input device 104.
Fig. 4 depicts an example of a cross-sectional view of a pressure sensitive key 400 of a keypad of the input device 104 of fig. 2. In this example, the pressure sensitive key 400 is illustrated as being formed using a flexible contact layer 402 (e.g., Mylar) or the like, the flexible contact layer 402 and the sensor substrate 404 being separated using separation layers 406, 408 formed on the sensor substrate 404, the separation layers 406, 408 may be formed as another layer of Mylar or other bendable material. In this example, the flexible contact layer 402 does not contact the sensor substrate 404 without applying pressure to the flexible contact layer 402.
In this example, the flexible contact layer 402 includes a force sensitive ink (forcesensitive ink)410 disposed on a surface of the flexible contact layer 402, which is configured to contact the sensor substrate 404. The force sensitive ink 410 is configured such that the amount of resistance of the ink varies directly with the amount of pressure applied. For example, the force-sensitive ink 410 may be configured with a relatively rough surface, and upon application of pressure to the flexible contact layer 402, the force-sensitive ink 410 is compressed against the sensor substrate 404. The greater the amount of pressure, the more the force-sensitive ink 410 is compressed, thereby increasing the conductivity of the force-sensitive ink 410 and decreasing the impedance of the force-sensitive ink 410. Other conductors, including other types of pressure-sensitive conductors and non-pressure-sensitive conductors, may also be disposed on the flexible contact layer 402 without departing from such spirit and scope.
The sensor substrate 404 includes one or more conductors 412 disposed thereon that are configured to contact the force-sensitive ink 410 of the flexible contact layer 402. Upon contact, an analog signal may be generated for processing by the input device 104 and/or the computing device 102 to, for example, identify whether the signal is that a user may want to use to provide input to the computing device 102. A variety of different types of conductors 412 may be disposed on the sensor substrate 404, such as conductors formed from a variety of conductive materials (e.g., silver, copper), conductors disposed in a variety of different configurations, such as inter-digital trace finger, and so forth.
FIG. 5 depicts an example 500 of the pressure sensitive key 400 of FIG. 4 when pressure is applied at a first location of the flexible contact layer 402 such that the force sensitive ink 410 contacts a corresponding first location of the sensor substrate 404. The pressure is illustrated by using the arrows in fig. 5, and may be applied in a variety of ways, such as by a finger of a human hand, a stylus, pen, or the like. In this example, the first location at which pressure is applied, as indicated by the arrow, is generally near a central region of the flexible contact layer 402, which is disposed between the separation layers 406, 408. Because of this location, the flexible contact layer 402 can be generally considered to be flexible and thus responsive to pressure.
This flexibility allows a relatively large area of the flexible contact layer 402 to contact the conductors 412 of the sensor substrate 404, thus also allowing the force sensitive ink 410 to contact the conductors 412 of the sensor substrate 404. Thus, a relatively strong signal can be generated. Furthermore, because the flexibility of the flexible contact layer 402 is relatively high at this location, a relatively large amount of force may be transmitted through the flexible contact layer 402, thereby applying this pressure to the force-sensitive ink 410. As previously described, this increase in pressure may result in a corresponding increase in the conductivity of the force-sensitive ink and a decrease in the resistance of the ink. Thus, the relatively high flexibility of the flexible contact layer at the first location may result in a relatively stronger signal than other locations of the flexible contact layer 402 closer to the edge of the key, examples of which will be described with reference to the following figures.
FIG. 6 depicts an example 600 of the pressure sensitive key 400 of FIG. 4 when pressure is applied at a second location of the flexible contact layer 402 so as to contact a corresponding second location of the sensor substrate 404. In this example, the second position of FIG. 6, in which pressure is applied, is closer to the edge of the pressure sensitive key (e.g., closer to the edge of the separation layer 406) than the first position of FIG. 5. Due to this position, the flexible contact layer 402 is less flexible and thus less responsive to pressure when compared to the first position.
This reduced flexibility may result in a reduced area of the flexible contact layer 402 contacting the conductors 412 of the sensor substrate 404, and thus a reduced amount of force sensitive ink 410 contacting the conductors 412 of the sensor substrate 404. Therefore, the signal generated at the second position may be weaker than the signal generated at the first position of fig. 5.
Furthermore, because the flexibility of the flexible contact layer 402 is relatively low at this location, a relatively small amount of force may be transferred through the flexible contact layer 402, thereby reducing the amount of pressure transferred to the force-sensitive ink 410. As previously described, this reduction in pressure may result in a corresponding reduction in the conductivity of the force-sensitive ink and an increase in the resistance of the ink as compared to the first position of fig. 5. Thus, the reduced flexibility of the flexible contact layer 402 at the second location may result in a relatively weaker signal being generated than at the first location. Furthermore, this situation may be exacerbated by partial taps where a smaller portion of the user's finger is able to apply pressure at the second position of fig. 6 than at the first position of fig. 5.
Force concentrator layer technology may be employed to improve consistency of the flexible contact layer 402 in contact with the sensor substrate 404, as well as other features, further discussion of which will be made with respect to the following figures.
FIG. 7 depicts an example 700 of the pressure sensitive key of FIG. 4 when a force concentrator layer 702 is employed. The force concentrator layer 702 can be configured with a variety of materials, such as a flexible material (e.g., Mylar) that can flex against the flexible contact layer 402.
In this example, the force concentrator layer 702 includes a pad 704 disposed thereon, the pad 704 rising from a surface of the force concentrator layer 702. Thus, the pad 704 is configured as a protrusion to contact the flexible contact layer 402. The pad 704 may be formed in a variety of ways, such as being formed as a layer (e.g., printed, deposited, formed, etc.) on a substrate (e.g., Mylar) of the force concentrator layer 702, as a component of the substrate itself, and so forth.
Fig. 8 depicts an example 800 of the pressure sensitive key 700 of fig. 7 when pressure is applied at a plurality of different locations of the force concentrating layer 702 such that the flexible contact layer 402 contacts the sensor substrate 404. Again, the pressure is shown using arrows, which in this example include a first location 802, a second location 804, and a third location 806, which are closer to the edges of the keys (e.g., the edges defined by the separation layers 406, 408).
As shown, the pad 704 is sized to allow the flexible contact layer 402 to flex between the separation layers 406, 408. The pad 704 is configured to provide enhanced mechanical stiffness, and thus increased resistance to bending and flexing, as compared to, for example, the substrate (e.g., Myla r) of the force concentrator layer 702. Thus, when the pad 704 is pressed against the flexible contact layer 402, by comparing fig. 8 with fig. 5 and 6, the bend radius of the flexible contact layer 402 is reduced as shown.
Thus, the bending of the flexible contact layer 402 around the gasket 704 may facilitate a relatively consistent contact area between the force sensitive ink 410 and the conductors 412 of the sensor substrate 404. This may facilitate standardization of the signals generated by the keys.
The gasket 704 may also be used to expand the contact area of the pressure source. A user may press against the pressure concentrator layer 702 using, for example, a fingernail, a stylus, a pen, or other object having a relatively small contact area. As previously described, this may result in a correspondingly smaller contact area of the flexible contact layer 402 contacting the sensor substrate 404, and thus a correspondingly reduced signal strength.
However, due to the mechanical stiffness of the pad 704, this pressure may spread over the area of the pad 704 that contacts the flexible contact layer 402, which may then spread over the area of the flexible contact layer 402 that correspondingly bends around the pad 704 to contact the sensor substrate 404. In this manner, the pad 704 may be used to normalize the contact area between the flexible contact layer 402 and the sensor substrate 404 that is used by the pressure sensitive keys to generate signals.
The pad 704 may also be used to direct pressure even if this pressure is applied "off-center". As previously described with reference to fig. 5 and 6, the flexibility of the flexible contact layer 402 may depend, at least in part, on the distance from the edges of the pressure sensitive keys (e.g., the edges defined by the separation layers 406, 408 in this example).
However, the gasket 704 may be used to direct pressure to the flexible contact layer 402 to promote relatively consistent contact. For example, pressure applied at a first location 802 located at a generally central region of the force concentrator layer 702 may cause contact similar to that which is accomplished when pressure is applied at a second location 804 located at an edge of the pad 704. The pad 704 may also be used to direct pressure applied outside the area of the force concentrator layer 702 defined by the pad 704, such as a third location 806 located outside the area defined by the pad 704 but within the edge of the key. The location outside the area of the force concentrator layer 702 defined by the separation layers 406, 408 may also be directed such that the flexible contact layer 402 contacts the sensor substrate 404, examples of which will be described in detail with reference to the following figures.
Fig. 9A shows an example of a cross-sectional view of a keyboard 900 that includes a plurality of pressure sensitive keys that employ a force concentrator layer. In this example, keyboard 900 includes first pressure-sensitive keys 902 and second pressure-sensitive keys 904. The pressure sensitive keys 902, 904 share the force concentrator layer 702, the flexible contact layer 402, the sensor substrate 404, and the separation layer 408 as before. In this example, each of the pressure sensitive keys 902, 904 has a respective pad 906, 908 configured to direct pressure to cause contact between the flexible contact layer 402 and a corresponding portion of the sensor substrate 404.
As previously described, the limited flexibility at the edges of conventional pressure sensitive keys may result in the keys not being able to recognize the pressure applied at the edges of the keys. This may result in a "dead zone" in which the input device 104 cannot recognize the applied pressure. However, by using the force concentrator layer 702 and directing the pressure supported by the pads 906, 908, the presence of dead space may be reduced or even eliminated.
For example, a location 910 is shown by using an arrow, which is disposed between the first pressure sensitive key 902 and the second pressure sensitive key 904. In this example, the location 910 is disposed above the separation layer 408 and is closer to the first pressure sensitive key 902 than the second pressure sensitive key 904.
Thus, the pad 906 of the first pressure sensitive key 902 may direct a greater amount of pressure than the pad 908 of the second pressure sensitive key 904. This may result in the first pressure-sensitive key 902 generating a stronger signal than the first pressure-sensitive key 904, only generating a signal at the first pressure-sensitive key 902 and not at the second pressure-sensitive key 904, and so on. Regardless, the input device 104 and/or a module of the computing device 102 may then determine the user's intent with respect to which key to employ by processing the signals generated by the keys. In this manner, the force concentrator layer 702 may prevent dead zones located between keys by increasing the area available for activation of keys with a guide.
The force concentrator layer 702 may also be used to perform mechanical filtering of the pressure applied to the keys. For example, when typing a document, the user may choose to rest one or more fingers of the hand on the surface of a key without wanting to activate the key. Thus, without the force concentrator layer 702, processing of input from pressure sensitive keys may be complicated by determining whether the amount and/or duration of pressure applied to the key is likely to be intended to activate the key.
However, in this example, the force concentrator layer 702 may be configured for use with a flexible contact layer to mechanically filter inputs for which a user may not expect to activate a key. For example, the force concentrator layer 702 may be configured to employ a threshold value that, in combination with the flexible contact layer 402, defines the amount of pressure to be used to activate a key. This may include an amount of pressure sufficient to cause the flexible contact layer 402 and the force sensitive ink 410 disposed thereon to contact the conductors 412 of the sensor substrate to generate a signal (which may be recognized as an input by the input device 104 and/or the computing device 102).
In one implementation, this threshold is set such that a pressure of approximately fifty grams or less will be insufficient to cause the force concentrator layer 702 and the flexible contact layer 402 to initiate the signal, and pressures above this threshold may be identified as inputs. A variety of other implementations and thresholds are also contemplated, which may be configured to distinguish between resting pressure and keystrokes.
The force concentrator layer 702 may also be configured to provide a variety of other functions. For example, the input device 104 may include an outer layer 912 (e.g., woven, micro-fiber, etc.) on which the operation of the corresponding key, e.g., letter, number, and other operations such as "shift", "return", navigation, etc., are indicated. A force concentrator layer 702 may be disposed below this layer. Further, the side of the force concentrator layer 702 facing the exterior layer 912 may be configured to be sufficiently smooth to reduce or even eliminate witness lines (witness lines) that may be caused by underlying components of the input device 104.
In this manner, the surface of outer skin 912 may be made more uniform, providing a better typing experience and greater accuracy, for example, by promoting a smooth tactile feel, without interference from underlying components. The force concentrator layer 702 may also be configured to protect underlying components of the input device 104 from electrostatic discharge (ESD). For example, the input device 104 may include a track pad (track pad) as shown in fig. 1 and 2, such that movement from one side of the track pad to the other may generate static electricity. However, the force concentrator layer 702 may protect the components of the input device 104 that are below the layer from this potential ESD. Numerous other examples of such protection are contemplated without departing from the spirit and scope thereof.
Fig. 9B illustrates an example of a top view 950 of a force concentrator when one or more cuts are included to increase the flexibility of the layers adjacent to the cuts. In this example, the force concentrator layer 702 includes a plurality of pads 952, 954, 956, 958, 960, 962 as previously described. However, in this example, the force concentrator layer includes a plurality of cuts for improving the ability of the layer to move adjacent to the cuts.
In a first example, a set of cuts 964 are made at least partially in the force concentrator layer 702 or through the force concentrator layer 702 to the corners of a plurality of respective liners 952, 954, 958, 960. Thus, the movement of the force concentrator layer 702 adjacent to these cuts at the corners of the pad may become to include cantilever movement and deflection. Thus, by "letting out" a portion of the force concentrator layer 702, the sensitivity may be increased as desired, for example, at the edges of the respective keys.
Naturally, a number of different configurations of the incision are contemplated. For example, the different keys of the keyboard as previously described may be configured to address how the user will press the key. For example, pads 962 can correspond to keys on a bottom row, a trackpad, etc. Accordingly, notches 966 may be provided along multiple sides to free the force concentrator layer 702 for cantilever movement. A variety of other examples are also contemplated.
Whether or not force concentrator layer technology is used, an indication of the pressure applied to the key is generated (e.g., by sensor substrate 404). This pressure may be applied with the user's finger, stylus, etc., as described above. This indication of pressure is typically measured in grams, although other units of measurement are contemplated.
The pressure applied to the keys and the duration of the pressure applied to the keys are used to determine which key of the keyboard of the input device 104 of fig. 2 is the keystroke of the user. A keystroke refers to a user selection of a key (e.g., if the user wants to enter the value "s" into the device, the key of the letter "s" is struck). The keys are pressure sensitive and, therefore, the keyboard is also referred to as a pressure sensitive keyboard. Such a determination may be made in the input device 104 and/or the computing device 102 of fig. 1. For example, the input/output module 108 of fig. 1 and/or a key identification module included in the input device 104 may make such a determination.
The pressure applied to the keys of the keyboard is sensed at a particular time, referred to as a frame. Pressure may be sensed at a particular frequency, also referred to as a sampling frequency. The sampling frequency may be 800 times per second or 1000 times per second, although other sampling frequencies are contemplated.
Whether the user has hit a key at a particular frame may be determined based on a threshold amount of key presses. A key press threshold amount refers to a threshold amount of pressure to be applied to a key in order for the press of the key to be determined as a keystroke. The threshold amount of key presses may be 200 grams, although other threshold amounts are also contemplated. If the pressure applied to the key does not rise (e.g., is not equal to and/or greater than) the key press by a threshold amount, then the press of the key is determined not to be a keystroke. However, if the pressure applied to a key does rise (e.g., is equal to and/or greater than) a key press threshold amount, then the press of the key may be determined to be a keystroke based on various other factors, as discussed below.
The determination of whether a key is struck may be performed in different ways. In some cases (e.g., where the force concentrator layer techniques discussed above are used for keys), whether a key is struck is determined based on whether the pressure applied to the key rises to (e.g., is equal to and/or greater than) a key press threshold amount and optionally various other factors. These various other factors will be discussed below with reference to fig. 10-18.
In other cases (e.g., where the force concentrator layer techniques discussed above are not used for keys), a determination is made as to whether a key was struck based on the pressure applied to the key for a monitored amount of time after the pressure applied to the key rises to (e.g., is equal to and/or greater than) a key press threshold amount. Whether a key is struck is also determined based on various other factors. The amount of monitoring time and these various other factors are discussed below (e.g., with reference to fig. 19-30).
Whether the pressure applied to the key rises to (e.g., is equal to and/or greater than) the key press threshold amount may be based on the pressure applied in a single frame. Alternatively, a hysteresis value may be used that indicates a number of frames over which the pressure applied to the key will be evaluated to determine whether the pressure applied to the key rises to the key press threshold amount. The plurality of frames may be a plurality of consecutive frames (e.g., two frames, although other numbers of frames are also contemplated), a certain ratio of frames (e.g., two of five frames, although other ratios are also contemplated), and so forth.
After determining that a key has been struck, the key remains pressed or struck until the pressure applied to the key drops to (e.g., is less than and/or equal to) a key release threshold amount. The key release threshold amount may be 100 grams, although other threshold amounts are also contemplated. The amount of time a key is pressed is also referred to as the key press duration.
Alternatively, an amount of debounce time may be implemented in which no key release is determined even if the pressure on the key drops to a key release threshold amount. The amount of debounce time for a key begins when the key is determined to have been struck and lasts for a particular duration. Alternatively, the amount of debounce time for a key may begin at other times, such as when the pressure applied to the key rises to (e.g., is greater than and/or equal to) another threshold, such as 100 grams. The duration may be 40 milliseconds, although other durations are also contemplated. By implementing the amount of debounce time, false determinations of keyboard release due to jitter or vibration in the keyboard (e.g., in the flexible contact layer 402 discussed above) may be avoided.
10-30 show various exemplary graphs of pressure applied to one or more keys as a function of time. The vertical axis of each of these figures is pressure (e.g., in grams) and the horizontal axis of each of these figures is time (e.g., in milliseconds (ms)). Further, in the figure, a down arrow is shown above a certain point to indicate that a keystroke is determined to have occurred at this point, and in the figure, an up arrow is shown above a certain point to indicate that a key release is determined to have occurred at this point. For example, in FIG. 10, a down arrow is shown above point 1004 to indicate that the key is determined to be struck at point 1004, and an up arrow is shown above point 1006 to indicate that the key is determined to be released at point 1006.
FIG. 10 depicts an example 1000 of a graph of pressure on a key as a function of time showing keystrokes. Line 1002 represents pressure on the key as a function of time. In response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 1004, the key is determined to be struck at point 1004. The key remains pressed or struck until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 1006. Also shown is an amount of debounce time 1012 (e.g., 40 milliseconds), which begins at point 1004, determining the time at which the key was struck.
One factor that may be used to determine whether a key was struck is how close the key was determined to be released. The same key exclusion time threshold is used to indicate the amount of time a key will be released before it is subsequently determined that the key was struck. The same key press rejection time threshold may be 60 milliseconds, although other thresholds are contemplated. The amount of time that a key is identically key-rejected starts when the key is determined to have been released and lasts for the identical key-rejection time threshold. Alternatively, the same amount of key repulsion time for a key may begin at other times, such as when the pressure applied to the key drops to (e.g., is less than and/or equal to) another threshold such as 0 grams. During the same amount of key repulsion time for a key, no keystroke is determined for that key even if the pressure applied to the key rises again to the key press threshold amount.
FIG. 11 depicts an example 1100 of a plot of pressure on one key as a function of time showing an invalid key press due to the same amount of key repulsion time not having elapsed. Line 1102 represents pressure on the key during a first time period and line 1104 represents pressure on the key during a second time period. Lines 1102 and 1104 together indicate that pressure is applied to the key and released, which in turn subsequently applies pressure to the key. In response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 1106, the key is determined to be struck at point 1106. The key remains pressed or struck until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 1110. Also shown is an amount of debounce time 1114 (e.g., 40 milliseconds) that begins at point 1106 when a key is determined to be struck.
The same key exclusion time amount 1116 (e.g., 60 milliseconds) is also shown, beginning at point 1110, which determines the time at which the key is released. Even if the pressure on a key rises to a key press threshold amount at point 1118 when the key is subsequently pressed, the key will not be determined to be struck again because the same key repulsion amount of time has not yet elapsed at point 1118. The pressure applied to a key is also referred to as an invalid key press. An invalid key press refers to a key being pressed with pressure applied to the key (e.g., the pressure applied to the key rises to a key press threshold amount), but the key is not determined to be struck. Even if a key is not determined to be struck at point 1118, it will not be determined to be struck at a later time until after the pressure on the key has dropped to the key release threshold amount (and optionally until the same key rejection amount of time has elapsed after the pressure on the key has dropped to the key release threshold amount).
FIG. 12 depicts an example 1200 of a graph of pressure on a key as a function of time showing multiple keystrokes on the same key. Line 1202 represents pressure on the key during a first time period and line 1204 represents pressure on the key during a second time period. Lines 1202 and 1204 together indicate that pressure is applied to the key and released, which in turn applies pressure to the key. In response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 1206, the key is determined to be struck at point 1206. The key remains pressed or struck until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 1210. Also shown is a debounce time amount 1214 (e.g., 40 milliseconds) that begins at point 1206, the moment a key is determined to be pressed.
The same key exclusion amount of time 1216 (e.g., 60 milliseconds) is also shown, beginning at point 1210, the time at which the key is determined to be released. When a key is subsequently pressed, the key is determined to be struck at point 1218 in response to the pressure on the key rising to a key press threshold amount at point 1218 because point 1218 has elapsed after the same key repulsion amount of time 1216. The key remains pressed or struck until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 1222. Also shown is an amount of debounce time 1226 (e.g., 40 milliseconds) that begins at point 1218, when the key is determined to be struck.
Another factor that may be used to determine whether a key has been struck is how recently a different key has been determined to be pressed. The different key exclusion time thresholds are used to indicate an amount of time that has elapsed after a key is pressed in order to subsequently determine that another key was struck. The different key press rejection time threshold may be 40 milliseconds, although other thresholds are contemplated. The different key repulsion time amounts for the keys begin when a key is determined to have been struck and last for different key repulsion time thresholds. Alternatively, different amounts of key repulsion time for the keys may begin at other times, such as when the pressure applied to the keys rises to (e.g., is greater than and/or equal to) another threshold, such as 100 grams, 0 grams, etc. During different amounts of key repulsion time for a key, no keystroke is determined for another key even if the pressure applied to the key rises again to a key press threshold amount.
Alternatively, this different amount of key exclusion time may not be applicable to certain types of keys, such as a modifier key. A modifier key refers to a key that is expected to be struck with one or more other keys. Examples of the correction key include an "alt" key, a "shift" key, a "control" key, a GUI (graphical user interface) or operating system key, and the like. Optionally, a different key exclusion time amount is not used to modify a key, and thus, optionally, another key may be determined to be struck within a different key exclusion time threshold.
FIG. 13 depicts an example 1300 of a graph of pressure on multiple keys as a function of time showing invalid key presses due to different key repulsion time amounts not having elapsed. Line 1302 represents pressure on a first key during a first time period and line 1304 represents pressure on a second (different) key during a second time period. In response to the pressure on the first key rising to a key press threshold amount (e.g., 200 grams) at point 1306, the first key is determined to be struck at point 1306. The first key is held pressed or tapped until the pressure on the first key drops to a key release threshold amount (e.g., 100 grams) at point 1310. Also shown is an amount of debounce time 1314 (e.g., 40 milliseconds) that begins at point 1306 when the first key is determined to be struck.
Also shown is a different key repulsion time amount 1316 (e.g., 40 milliseconds) that begins at point 1306 when the first key is determined to be struck. Even if the pressure on the second key rises to the key press threshold amount at point 1318 when the second key is subsequently pressed, the second key will not be determined to be struck again because a different key repulsion amount of time has not elapsed at point 1318. Even if the second key is not determined to be struck at point 1318, the second key is not determined to be struck at a later time until after the pressure on the second key has dropped to the key release threshold amount (and optionally until after the same amount of key repulsion time has elapsed after the pressure on the second key has dropped to the key release threshold amount, as discussed above).
FIG. 14 depicts an example 1400 of a graph of pressure on multiple keys as a function of time showing multiple keystrokes on different keys. Line 1402 represents pressure on a first key during a first time period, and line 1404 represents pressure on a second (different) key during a second time period. In response to the pressure on the first key rising to a key press threshold amount (e.g., 200 grams) at point 1406, the first key is determined to be struck at point 1406. The first key remains pressed or tapped until the pressure on the first key drops to a key release threshold amount (e.g., 100 grams) at point 1410. Also shown is an amount of debounce time 1414 (e.g., 40 milliseconds) that begins at point 1406 when the first key is determined to be struck.
Also shown is a different key repulsion time amount 1416 (e.g., 40 milliseconds) that begins at point 1406 at the time the first key is determined to be struck. When the second key is subsequently pressed, the second key is determined to be struck at point 1418 in response to the pressure on the second key rising to the key press threshold amount at point 1418 because point 1418 is after a different amount of key rejection time 1416 has elapsed. The second key remains pressed or tapped before the pressure on the second key drops to a key release threshold amount (e.g., 100 grams) at point 1422. Also shown is an amount of debounce time 1426 (e.g., 40 milliseconds) that begins at point 1418 when the second key is determined to be struck.
Another factor that may be used to determine whether a key is struck is whether another key is pressed at approximately the same time. In the event that two or more keys are pressed within the same frame or alternatively within some frame of each other (e.g., within a threshold number of frames, such as a frame, although other threshold numbers are also contemplated), the key to which the greater pressure is applied is determined to be the key that was struck. If the pressure applied to each of the two or more keys rises to (e.g., is equal to and/or greater than) a key press threshold amount in the same frame, the two or more keys are pressed in that frame (or alternatively, in a threshold number of frames). The determination of such a greater pressure may be made based on the pressure applied in the frame (where two or more keys rise to a key press threshold amount). Alternatively, such determination may be based on different time durations, such as pressure during the lifetime of the keystroke (the lifetime of the keystroke beginning at the time when the pressure applied to the key rises to the key depression threshold amount and ending at the time when the pressure applied to the key falls to the key release threshold amount), some threshold amount of time after the pressure applied to the key rises to the key depression threshold amount (e.g., 30 milliseconds or 40 milliseconds, although other threshold amounts of time are also contemplated), and so forth.
FIG. 15 depicts an example 1500 of a graph of pressure over time on a plurality of keys showing the plurality of keys pressed at approximately the same time. Line 1502 represents pressure on a first key during a first time period and line 1504 represents pressure on a second (different) key during a second time period. In the same frame (or in some frames of each other), the pressure applied to each of the two keys rises to a key press threshold amount (e.g., 200 grams) at point 1506. The key determined to be the key that was struck is the key to which the greater pressure was applied, in example 1500, the first key (shown by line 1502). The first key is held pressed or tapped until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 1510. Also shown is an amount of debounce time 1514 (e.g., 40 milliseconds) that begins at point 1506, the time at which the key was determined to be struck.
The second key (shown by line 1504) is not determined to be struck. Even if the pressure on the second key rises to the key press threshold amount at point 1506, the key will not be determined to be struck because the pressure applied to the first key is greater. Even if the second key is not determined to be struck at point 1506, the key is not determined to be struck at a later time until after the pressure on the second key has dropped to the key release threshold amount (and optionally until after the same amount of key rejection time has elapsed after the pressure on the second key has dropped to the key release threshold amount, as described above).
Another factor that may be used to determine whether a key has been struck is how many other keys have been pressed (keystrokes or invalid key presses) and remain pressed. The key press count threshold is used to indicate how many keys can be pressed in parallel. The key press count threshold may be 3 or 4, although other thresholds are contemplated. The key press count threshold may vary based on whether one of the keys is a modifier key (e.g., an "alt" key, a "shift" key, a "control" key, a GUI (graphical user interface) or operating system key, etc.). For example, the key depression count threshold may be 3 if none of the keys are modifier keys, or 4 if one of the keys (either key, or alternatively, only the first key) is a modifier key. As another example, in some cases (e.g., for a game keyboard), the key press count may be greater (e.g., 10 or 12). In some cases (e.g., for a game pad), the key press count may also not be used as a factor in determining whether a key is struck.
If the number of keys pressed in parallel reaches (e.g., is equal to and/or greater than) the key press count threshold, no more keys are determined to be struck until the pressure applied to the keys drops to (e.g., is less than and/or equal to) the key release threshold amount. No more keys may be determined to be struck until the pressure applied to all keys on the keyboard drops below a key release threshold amount, or alternatively, until the pressure applied to a group of keys on the keyboard (e.g., keys that are pressed such that the number of keys pressed in parallel reaches a key press count threshold) drops below a key release threshold amount.
FIG. 16 depicts an example 1600 of a graph of pressure on multiple keys concurrently as a function of time showing multiple keystrokes resulting from the concurrent pressing of a key. In response to the pressure applied to the first key (illustrated as the key corresponding to the letter "f") rising to a key press threshold amount (e.g., 200 grams) at point 1602, the first key is determined to be struck at point 1602. Line 1604 represents the pressure exerted on the first key during the first time period. The first key is held pressed or tapped until the pressure on the first key drops to a key release threshold amount (e.g., 100 grams) at point 1606.
In parallel with applying pressure to the first key, pressure is applied to a second key (illustrated as the key corresponding to the letter "d"). After a different amount of key repulsion time has elapsed due to the first key being struck, in response to the pressure applied to the second key rising to a key press threshold amount (e.g., 200 grams) at point 1612, the second key is determined to be struck at point 1612. Line 1614 represents the pressure exerted on the second key during the second time period. The second key is held pressed or tapped before the pressure on the second key drops to a key release threshold amount (e.g., 100 grams) at point 1616.
In parallel with applying pressure to the first key and the second key, pressure is also applied to a third key (illustrated as the key corresponding to the letter "j"). The pressure applied to the third key rises to a key press threshold amount (e.g., 200 grams) at point 1622 after a different amount of key rejection time has elapsed due to the second key being struck, and the third key is determined to be struck at point 1622. Line 1624 represents the pressure exerted on the third key during the third time period. The third key is held pressed or tapped until the pressure on the third key drops to a key release threshold amount (e.g., 100 grams) at point 1626.
In parallel with applying pressure to the first key, the second key, and the third key, pressure is also applied to the fourth key. Line 1630 represents the pressure exerted on the fourth key during the fourth time period. Even if the pressure on the fourth key rises to the key press threshold amount, the fourth key is not determined to be struck because the number of keys pressed in parallel has reached the key press count when the fourth key is pressed. Thus, no key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. The keystrokes of the keys corresponding to the letters "f", "d", and "j" may still be held as keystrokes, but no more key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. Alternatively, in response to the number of keys pressed in parallel reaching a key press count threshold, previously determined keystrokes for the keys corresponding to the letters "f," "d," and "j" may be deleted or ignored such that these keystrokes are no longer determined to be keystrokes.
FIG. 17 depicts an example 1700 of a graph of pressure on multiple keys concurrently as a function of time showing multiple keystrokes resulting from the concurrent pressing of a key. Example 1700 is similar to example 1600 of fig. 16, but also includes a modifier key. Line 1702 represents the pressure applied to the first key (illustrated as the key corresponding to the "shift" modifier key), line 1704 represents the pressure applied to the second key (illustrated as the key corresponding to the letter "F"), line 1706 represents the pressure applied to the third key (illustrated as the key corresponding to the letter "J"), line 1708 represents the pressure applied to the fourth key (illustrated as the key corresponding to the letter "D"), and line 1710 represents the pressure applied to the fifth key.
The fifth key is not determined to be struck even if the pressure on the fifth key rises to the key press threshold amount because the number of keys pressed in parallel has reached the key press count threshold when the fifth key is pressed. The key press count threshold in example 1700 is one greater than the example 1600 of fig. 16 because, in example 1700, one of the keys is a modifier key. No more key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. The keystrokes of the keys corresponding to the letters "F", "D", and "J" may still be held as keystrokes, but no more key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. Alternatively, in response to the number of keys pressed in parallel reaching a key press count threshold, previously determined keystrokes for the keys corresponding to the letters "F", "D", and "J" may be deleted or ignored such that these keystrokes are no longer determined to be keystrokes.
FIG. 18 depicts an example 1800 of a graph of pressure on multiple keys concurrently as a function of time showing invalid key presses resulting from concurrently pressing keys. In response to the pressure applied to the first key (illustrated as the key corresponding to the letter "f") rising to a key press threshold amount (e.g., 200 grams) at point 1802, the first key is determined to be struck at point 1802. Line 1804 represents the pressure exerted on the first key during the first time period. The first key is held pressed or tapped until the pressure on the first key drops to a key release threshold amount (e.g., 100 grams).
In parallel with applying pressure to the first key, pressure is also applied to the second key. Line 1806 represents the pressure exerted on the second key during the second time period. In parallel with applying pressure to the first key and the second key, pressure is also applied to the third key. Line 1808 represents the pressure exerted on the third key during the third time period. A different key repulsion amount of time 1810 (e.g., 40 milliseconds) is also shown, beginning at point 1802, the time at which the first key is determined to be struck. The second and third keys may not be determined to be struck even if the pressure applied to the second and third keys rises to the key press threshold amount because a different amount of key repulsion time has not elapsed when the pressure applied to the second and third keys rises to the key press threshold amount.
In addition, pressure is also applied to the fourth key in parallel with the first, second, and third keys. Line 1812 represents the pressure exerted on the fourth key during the fourth time period. Even if the applied pressure is not determined to be a keystroke, such a record is maintained: the pressure applied to the second key and the third key has risen to a key press threshold amount. Therefore, the second key and the third key are included in the key press count. Thus, even if the pressure on the fourth key rises to the key press threshold amount after the different key repulsion amount of time 1810 has elapsed, the fourth key will not be determined to be struck because the number of keys that were pressed in parallel has reached the key press count when the fourth key is pressed. Thus, no key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. The keystroke of the key corresponding to the letter "f" may still be maintained as a keystroke, but no more key is determined to be struck until the pressure applied to the key drops to the key release threshold amount. Alternatively, in response to the number of keys pressed in parallel reaching a key press count threshold, a previously determined keystroke for a key corresponding to the letter "f" can be deleted or ignored such that the keystroke is no longer determined to be a keystroke.
10-18 discuss the case where the determination of whether a key is struck is based on whether the pressure applied to the key rises to a key depression threshold amount. In other cases (e.g., as will be discussed with reference to fig. 19-28), whether a key is struck is determined based on the pressure applied to the key during a monitored amount of time after the pressure applied to the key rises to a key press threshold amount.
The monitored amount of time is a time duration or period, also referred to as an indefinite range, in which it has not been determined whether a key was struck (e.g., pressure may be the result of a light keystroke or an inadvertent touch of a key). During the monitoring amount of time, the pressure applied to the key is analyzed and it is determined whether the pressure applied to the key is a keystroke. The monitored amount of time for a key may begin when the pressure applied to the key rises to (e.g., is equal to and/or greater than) a key press threshold amount (e.g., 200 grams, as discussed above). The monitoring amount of time may be 30 milliseconds, although other amounts of time are also contemplated.
A key may be determined to be struck in response to the pressure applied to the key rising to (e.g., being equal to and/or greater than) a selection threshold amount within a monitoring period. If the pressure applied to a key does not rise by the selection threshold amount within the monitoring period, the key is not determined to have been struck. The selection threshold amount may be 800 grams, although other selection threshold amounts are also contemplated. Alternatively, a key may be determined to be struck in response to the slope of a line depicting pressure applied to the key as a function of time rising to (e.g., being equal to and/or greater than) a threshold slope over a monitoring period. This threshold slope is also referred to as a threshold rate of pressure applied to the key. If the slope of the line depicting pressure as a function of time does not rise to the threshold slope within the monitoring period, the key is not determined to have been struck. The threshold slope may be 20 grams/millisecond, although other threshold slopes are also contemplated. After a key is determined to have been struck, as discussed above, the key remains pressed or struck until the pressure applied to the key drops to (e.g., is less than and/or equal to) a key release threshold amount.
It should be noted that situations may occur in which the pressure applied to a key rises to a selection threshold amount in the same frame in which the pressure applied to the key rises to a key press threshold amount. For example, the pressure on the keys may rise from 0 grams to 900 grams within a single frame. In this case, the monitoring period need not be used, since the pressure has risen to a selected threshold amount. Alternatively, in this case, the monitoring period may still be used.
Whether the pressure applied to the key rises to (e.g., is equal to and/or greater than) a key press threshold amount and/or a selection threshold amount may be based on the pressure applied in a single frame. Alternatively, hysteresis values may be used that indicate a number of frames during which the pressure applied to the key is to be evaluated to determine whether the pressure applied to the key rises to a key press threshold amount and/or to select a threshold amount. As discussed above, the plurality of frames may be a plurality of consecutive frames, a certain ratio of frames, and so on.
Alternatively, an amount of debounce time may be implemented within which no key release is determined even if the pressure on the key drops to the key release threshold amount, as discussed above. As discussed above, the amount of debounce time for a key begins when the key is determined to have been struck and lasts for a particular duration.
FIG. 19 depicts an example 1900 of a graph of pressure on a key as a function of time showing a keystroke. Line 1902 represents pressure on the key as a function of time. A monitoring period 1904 (e.g., 30 milliseconds) is shown that begins in response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 1906. In response to the pressure on the key rising to a selection threshold amount (e.g., 800 grams) and/or the slope of line 1902 rising to a threshold slope (e.g., 20 grams/millisecond) at point 1908 within the monitoring period, the key is determined to be struck at point 1908.
The key remains pressed or struck until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 1910. Also shown is an amount of debounce time 1912 (e.g., 40 milliseconds) that begins at point 1908, the time at which the key is determined to be pressed.
Diagram 1900 is similar to diagram 1000 of fig. 10, although a different technique is used to determine whether a key has been struck. In diagram 1000, a key is determined to be struck in response to the pressure applied to the key rising to a key press threshold amount, but in diagram 1900, a key is determined to be struck in response to the pressure on the key rising to a selection threshold amount and/or the slope of the line rising to a threshold slope over a monitoring period of time.
FIG. 20 depicts an example 2000 of a plot of pressure on one key as a function of time showing an invalid key press. Line 2002 represents pressure on the key as a function of time. A monitoring period 2004 (e.g., 30 milliseconds) is shown on the graph that begins in response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 2006. However, because the slope of line 2002 does not rise to the threshold slope during monitoring period 2004, and the pressure on the key does not rise to the selection threshold amount (e.g., 800 grams) during monitoring period 2004, the key is not determined to be struck. Thus, even if the pressure on the key rises to the selection threshold amount, the key is not determined to be struck because the pressure on the key does not rise to the selection threshold amount within the monitoring period 2004.
A key is determined to not be released (although not necessarily struck, as discussed above) in response to the pressure on the key rising to a key depression threshold amount (e.g., 200 grams). Subsequently, a key is determined to be released in response to the pressure on the key falling to (e.g., equal to and/or less than) a release threshold amount. Thus, even though in the example of FIG. 20, a key is not determined to be struck, it is not determined to be struck at a later time until after the pressure on the key has dropped to a key release threshold amount (and optionally until after the same key repulsion amount of time has elapsed after the pressure on the key has dropped to the key release threshold amount).
As discussed above, one factor that may be used to determine whether a key has been struck is how recently the key was determined to be released. The amount of time that a key is identically key-rejected starts when the key is determined to have been released and lasts for the identical key-rejection time threshold. Alternatively, the same amount of key repulsion time for a key may begin at other times, such as when the pressure applied to the key drops to (e.g., is less than and/or equal to) another threshold such as 0 grams. Within the same key exclusion time amount for a key, no keystroke for that key is determined and no monitoring period for that key is to begin again. Alternatively, the monitoring period for the key may begin again within a different amount of key rejection time, but no keystrokes may be determined unless the pressure applied to the key rises to a selection threshold amount after the same amount of key rejection time has elapsed.
FIG. 21 depicts an example 2100 of a plot of pressure on one key as a function of time showing an invalid key press due to the same amount of key repulsion time not having elapsed. Line 2102 represents pressure on the key during a first time period and line 2104 represents pressure on the key during a second time period. Together, lines 2102 and 2104 indicate that pressure is applied to the keys and released, which in turn applies pressure to the keys. A monitoring period 2106 (e.g., 30 milliseconds) is shown that begins in response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 2108. In response to the pressure on the key rising to a selected threshold amount (e.g., 800 grams) and/or the slope of line 2102 rising to a threshold slope (e.g., 20 grams/millisecond) at point 2110 within the monitoring period, the key is determined to be struck at point 2110. The key remains pressed or struck until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 2112. Also shown is an amount of debounce time 2114 (e.g., 40 milliseconds) that begins at point 2110 when the key is determined to be struck.
The same key exclusion time amount 2116 (e.g., 60 milliseconds) is also shown, beginning at point 2112, the time at which the key is determined to be released. Even if the pressure on a key rises to a key press threshold amount at point 2118 when the key is subsequently pressed, the key is not again determined to be struck because the same key repulsion amount of time has not yet elapsed at point 2118. In response to the pressure on the key rising to the key press threshold amount at point 2118, the monitoring period need not be used because the same key repulsion amount of time has not yet elapsed. Further, even if a key is not determined to be struck at point 2118, the key will not be determined to be struck at a later time until after the pressure on the key has dropped to the key release threshold amount (and optionally until after the same key rejection amount of time has elapsed after the pressure on the key has dropped to the key release threshold amount).
FIG. 22 depicts an example 2200 of a graph of pressure on a key as a function of time showing multiple keystrokes of the same key. Line 2202 represents pressure on the key during a first time period and line 2204 represents pressure on the key during a second time period. Lines 2202 and 2204 together indicate that pressure is applied to the keys and released, which in turn applies pressure to the keys. A monitoring period 2206 (e.g., 30 milliseconds) is shown that begins in response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 2208. In response to the pressure on the key rising to a selection threshold amount (e.g., 800 grams) and/or the slope of the line 2202 rising to a threshold slope (e.g., 20 grams/millisecond) at point 2210 over the monitoring period, the key is determined to be struck at point 2210. The key remains pressed or struck until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 2212. Also shown is an amount of debounce time 2214 (e.g., 40 milliseconds), which begins at point 2210 with the time at which the key is determined to be pressed.
The same key exclusion time amount 2216 (e.g., 60 milliseconds) is also shown, beginning at point 2212, the time at which the key is determined to be released. When the key is subsequently pressed, a monitoring period (e.g., 30 milliseconds) 2220 begins in response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 2218. In response to the pressure on the key rising to a selection threshold amount (e.g., 800 grams) and/or the slope of line 2204 rising to a threshold slope (e.g., 20 grams/millisecond) within the monitoring period at point 2220, the key is determined to be struck at point 2222 because point 2218 was after the same key rejection time amount 2216 had elapsed. The key remains pressed or struck until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 2224. Also shown is an amount of debounce time 2226 (e.g., 40 milliseconds) that begins at point 2222, the time at which the key is determined to be struck.
As discussed above, one factor that may be used to determine whether a key has been struck is how close the time that a different key is determined to have been pressed. The different key repulsion time amounts for the keys begin when the pressure applied to the keys rises to a key press threshold amount (e.g., 200 grams). Alternatively, the different key repulsion amounts of time may begin at other times, such as when a key is determined to be struck, or at some other time between the time the pressure on the key rises to a key depression threshold amount and the time the key is determined to be struck, when the pressure applied to the key rises to (e.g., is greater than and/or equal to) another threshold such as 100 grams, 0 grams, etc., and so forth. During different key repulsion time amounts for a key, no keystroke for another key is determined and no monitoring period for another key is to begin. Alternatively, the monitoring period for another key may begin during a different amount of key repulsion time, but no keystrokes may be determined unless the pressure applied to the key rises to a selection threshold amount after the different amount of key repulsion time has elapsed.
FIG. 23 depicts an example 2300 of a graph of pressure on multiple keys as a function of time showing invalid key presses due to different key repulsion time amounts not having elapsed. Line 2302 represents pressure on a first key during a first time period and line 2304 represents pressure on a second (different) key during a second time period. In response to the pressure on the first key rising to a selected threshold amount (e.g., 800 grams) and/or the slope of line 2302 rising to a threshold slope (e.g., 20 grams/millisecond) at point 2306 for a monitoring period (not shown), the key is determined to be struck at point 2306. The first key is held pressed or tapped until the pressure on the first key drops to a key release threshold amount (e.g., 100 grams) at point 2308. Also shown is a debounce time amount 2310 (e.g., 40 milliseconds) beginning at point 2306, the time at which the first key is determined to be struck.
Also shown is a different key repulsion time amount 2312 (e.g., 40 milliseconds) that begins at point 2314 when the pressure on the key rises to a key press threshold amount (e.g., 200 grams). Even if the pressure on the second key rises to the key press threshold amount at point 2316 when the second key is subsequently pressed, the second key is not determined to be struck because the different key repulsion amount of time has not elapsed at point 2316. In response to the pressure on the second key rising to the key press threshold amount at point 2316, the monitoring period need not be used because a different key repulsion amount of time has not yet elapsed. Further, even if the second key is not determined to be struck at point 2316, the second key is not determined to be struck at a subsequent time until after the pressure on the second key has dropped to the key release threshold amount (and optionally until after the same key rejection amount of time has elapsed after the pressure on the second key has dropped to the key release threshold amount, as discussed above).
FIG. 24 depicts an example 2400 of a graph of pressure over time for a plurality of keys showing multiple keystrokes for different keys. Line 2402 represents the pressure on a first key during a first time period and line 2404 represents the pressure on a second (different) key during a second time period. In response to the pressure on the first key rising to a selected threshold amount (e.g., 800 grams) and/or the slope of line 2402 rising to a threshold slope (e.g., 20 grams/millisecond) at point 2406 for a monitoring period (not shown), the key is determined to be struck at point 2406. The first key is held pressed or tapped before the pressure on the first key drops to a key release threshold amount (e.g., 100 grams) at point 2408. Also shown is a debounce amount of time 2410 (e.g., 40 milliseconds) beginning at point 2406, the time the first key was determined to be struck.
Also shown is a different key repulsion time amount 2412 (e.g., 40 milliseconds) that begins at point 2414, the time when the pressure on the key rises to a key press threshold amount (e.g., 200 grams). When a second key is subsequently pressed, a monitoring period (e.g., 30 milliseconds) 2418 begins in response to the pressure on the key rising to a key press threshold amount (e.g., 200 grams) at point 2416. In response to the pressure on the key rising to a selection threshold amount (e.g., 800 grams) and/or the slope of line 2404 rising to a threshold slope (e.g., 20 grams/millisecond) at point 2420 during the monitoring period, the key is determined to be struck at point 2420 because point 2416 was after a different key rejection amount of time 2412 elapsed. The second key is held pressed or tapped before the pressure on the second key drops to a key release threshold amount (e.g., 100 grams) at point 2422. Also shown is a debounce time amount 2424 (e.g., 40 milliseconds) that begins at point 2420, the time at which the second key is determined to be struck.
Another factor that may be used to determine whether a key is struck is whether another key is pressed at approximately the same time, as discussed above. In the case where two or more keys are pressed in the same frame (or within some frames of each other), the key to which a larger pressure is applied is determined as the key that was struck. If the pressure applied to each of the two or more keys rises to (e.g., is equal to and/or greater than) a key press threshold amount in the same frame, and the pressure on each key rises to a selection threshold amount (e.g., 800 grams) and/or the slope of the line depicting the pressure of the key rises to a threshold slope (e.g., 20 grams/millisecond) within the monitoring period, then the two or more keys are pressed in the same frame (or alternatively, within a threshold number of frames). The determination of such a greater pressure may be made based on the pressure applied in the frame (where two or more keys rise to a key press threshold amount). Alternatively, the determination of such greater pressure may be based on different time durations, such as pressure during the lifetime of the keystroke, pressure applied during a monitoring period, some threshold amount of time after the pressure applied to the key rises to a key press threshold amount (e.g., 30 milliseconds or 40 milliseconds, although other threshold amounts of time are also contemplated), and so forth.
FIG. 25 depicts an example 2500 of a graph of pressure over time for a plurality of keys showing the plurality of keys pressed at approximately the same time. Line 2502 represents pressure on a first key during a first time period, and line 2504 represents pressure on a second (different) key during a second time period. A monitoring period 2506 is shown for both keys, which begins in response to the pressure on each key rising to a key press threshold amount (e.g., 200 grams) at point 2506 in the same frame (or within some frame of each other). Although a single monitoring period is shown as the monitoring periods for two keys begin in the same frame (or within some frames of each other), typically a different monitoring period is maintained and analyzed for each key. During the monitoring period, the pressure on each key rises to a selection threshold amount (e.g., 800 grams) and/or the slope of lines 2502 and/or 2504 rises to a threshold slope (e.g., 20 grams/millisecond), illustrated as occurring at point 2508. The key determined to be the key that was struck is the key to which the greater pressure was applied, which in example 2500 is the first key (shown by line 2502). The first key remains pressed or tapped until the pressure on the key drops to a key release threshold amount (e.g., 100 grams) at point 2510. Also shown is an amount of debounce time 2512 (e.g., 40 milliseconds) that begins at point 2508 when a key is determined to be struck.
The second key (shown by line 2504) is not determined to be struck. Even if the pressure on the second key rises to the selection threshold amount at point 2508, that key is not determined to be struck because the pressure applied to the first key is greater. Even if the second key is not determined to be struck at point 2508, the key is not determined to be struck at a later time until before the pressure on the second key has dropped to the key release threshold amount (and optionally until after the same amount of key repulsion time has elapsed after the pressure on the second key has dropped to the key release threshold amount, as discussed above).
As discussed above, another factor that may be used to determine whether a key has been struck is how many other keys have been pressed and remain pressed. As discussed above, the key press count threshold is used to indicate how many keys may be pressed in parallel (e.g., 3 or 4, 10 or 12, etc., although other thresholds are also contemplated). As described above, in some cases, the key press count may also be used as a factor in determining whether a key has been struck.
FIG. 26 depicts an example 2600 of a graph of pressure on multiple keys concurrently as a function of time showing multiple keystrokes resulting from the concurrent pressing of a key. Example 2600 is similar to example 1600 of fig. 16, except that each key is determined to be struck in response to pressure on the key rising to a selected threshold amount (e.g., 800 grams) and/or a slope of a line depicting pressure of the key as a function of time rising to a threshold slope (e.g., 20 grams/millisecond) within a monitoring period (not shown), rather than simply rising to a key depression threshold amount in response to pressure applied to the key.
Line 2602 represents the pressure applied to a first key (illustrated as the key corresponding to the letter "f"), line 2604 represents the pressure applied to a second key (illustrated as the key corresponding to the letter "d"), line 2606 represents the pressure applied to a third key (illustrated as the key corresponding to the letter "j"), and line 2608 represents the pressure applied to a fourth key. Even if the pressure on the fourth key rises to a selection threshold amount (e.g., 800 grams) and/or the slope of line 2608 rises to a threshold slope (e.g., 20 grams/millisecond) within the monitoring period, the fourth key will not be determined to be struck because the number of keys pressed in parallel has reached the key press count when the fourth key is pressed. Thus, no key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. The keystrokes of the keys corresponding to the letters "f", "d", and "j" may still be held as keystrokes, but no more key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. Alternatively, in response to the number of keys pressed in parallel reaching a key press count threshold, previously determined keystrokes for the keys corresponding to the letters "f," "d," and "j" may be deleted or ignored such that these keystrokes are no longer determined to be keystrokes.
FIG. 27 depicts an example 2700 of a graph of pressure on multiple keys concurrently as a function of time showing multiple keystrokes resulting from depressing keys in parallel. Example 2600 is similar to example 1700 of fig. 17, except that each key is determined to be struck in response to pressure on the key rising to a selection threshold amount (e.g., 800 grams) and/or a slope of a line depicting pressure of the key as a function of time rising to a threshold slope (e.g., 20 grams/millisecond) within a monitoring period (not shown), rather than simply rising to a key depression threshold amount in response to pressure applied to the key. Example 2700 also includes a modifier key.
Line 2702 represents the pressure applied to the first key (illustrated as the key corresponding to the "shift" correction key), line 2704 represents the pressure applied to the second key (illustrated as the key corresponding to the letter "F"), line 2706 represents the pressure applied to the third key (illustrated as the key corresponding to the letter "J"), line 2708 represents the pressure applied to the fourth key (illustrated as the key corresponding to the letter "D"), and line 2710 represents the pressure applied to the fifth key. Even if the pressure on the fifth key rises to a selection threshold amount (e.g., 800 grams) and/or the slope of line 2710 rises to a threshold slope (e.g., 20 grams/millisecond) within the monitoring period, the fifth key will not be determined to be struck because the number of keys pressed in parallel has reached the key press count threshold when the fifth key is pressed. The key press count threshold in example 2700 is one greater than example 2600 of fig. 26 because, in example 2700, one of the keys is a modifier key. No more key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. The keystrokes of the keys corresponding to the letters "F", "D", and "J" may still be held as keystrokes, but no more key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. Alternatively, in response to the number of keys pressed in parallel reaching a key press count threshold, previously determined keystrokes for the keys corresponding to the letters "F", "D", and "J" may be deleted or ignored such that these keystrokes are no longer determined to be keystrokes.
FIG. 28 depicts an example 2800 of a graph of pressure on multiple keys concurrently as a function of time showing invalid key presses resulting from the keys being pressed in parallel. Example 2800 is similar to example 1800 of fig. 16, except that each key is determined to be struck in response to pressure on the key rising to a selection threshold amount (e.g., 800 grams) and/or a slope of a line depicting pressure of the key over time rising to a threshold slope (e.g., 20 grams/millisecond) within a monitoring period (not shown), rather than simply rising to a key depression threshold amount in response to pressure applied to the key.
In response to the pressure applied to the first key (illustrated as the key corresponding to the letter "f") rising to a selected threshold amount (e.g., 800 grams) and/or the slope of the line depicting the pressure of the key over time rising to a threshold slope (e.g., 20 grams/millisecond) at point 2802 over a monitoring period (not shown), the first key is determined to be struck at point 2802. Line 2804 represents the pressure exerted on the first key during the first time period. The first key is held pressed or tapped until the pressure on the first key drops to a key release threshold amount (e.g., 100 grams).
In parallel with applying pressure to the first key, pressure is also applied to the second key. Line 2806 represents the pressure exerted on the second key during the second time period. In parallel with applying pressure to the first key and the second key, pressure is also applied to the third key. Line 2808 represents the pressure exerted on the third key during a third time period. A different key repulsion time amount 2810 (e.g., 40 milliseconds) is also shown, beginning at the time when the pressure applied to the first key rises to a key press threshold amount. Even if the pressure applied to the second and third keys rises to a selection threshold amount (e.g., 800 grams) and/or the slope of lines 2806 and 2808 rises to a threshold slope (e.g., 20 grams/millisecond) during the monitoring period for each key, the second and third keys may not be determined to be struck because a different amount of key rejection time has not elapsed when the pressure applied to the second and third keys rises to the selection threshold amount (e.g., 800 grams) and/or the slope of lines 2806 and 2808 rises to the threshold slope.
In addition, pressure is also applied to the fourth key in parallel with the first, second, and third keys. Line 2812 represents the pressure exerted on the fourth key during the fourth time period. Even if the applied pressure is not determined to be a keystroke, such a record is maintained: the pressure applied to the second key and the third key has risen to a key press threshold amount. Therefore, the second key and the third key are included in the key press count. Thus, even if the pressure on the fourth key rises to the key press threshold amount after the different key repulsion time amount 2810 has elapsed, the fourth key is not determined to be struck because the number of keys that were pressed in parallel has reached the key press count when the fourth key is pressed. Thus, no key is determined to be struck until the pressure applied to the key drops to a key release threshold amount. The keystroke of the key corresponding to the letter "f" may still be maintained as a keystroke, but no more key is determined to be struck until the pressure applied to the key drops to the key release threshold amount. Alternatively, in response to the number of keys pressed in parallel reaching a key press count threshold, a previously determined keystroke for a key corresponding to the letter "f" can be deleted or ignored such that the keystroke is no longer determined to be a keystroke.
In many of the above examples, keystrokes are discussed as being determined in response to the pressure applied to a key rising to a particular amount (e.g., a key press threshold amount or a selection threshold amount). Alternatively, keystrokes may be determined in response to other pressures applied. For example, a keystroke may be determined in response to the pressure on a key rising to a particular amount (e.g., a key press threshold amount or a selection threshold amount) and then falling to another amount (optionally for a particular time duration). As another example, various characteristics of a key press may be analyzed over time and compared to characteristics of a keystroke, which is determined to be a keystroke if the analysis determines that the characteristics of the key press match those of the keystroke.
Although keystrokes may be determined in response to other pressures applied, various other factors described above may alternatively be applied. For example, the same amount of key repulsion time and different amounts of key repulsion time described above may apply, even when the keystroke is changed by the determined timing.
FIG. 29 depicts an example 2900 of a graph of pressure on a key as a function of time, showing keystrokes. Line 2902 represents pressure on the key as a function of time. In response to the pressure on the key rising to (e.g., equal to and/or greater than) a key press threshold amount at point 2904, and then falling to (e.g., equal to and/or less than) a key release threshold amount at point 2906, the key is determined to be struck at point 2906. At point 2906, the key is also determined to be released immediately after being struck. Also shown is a debounce time amount 2908 (e.g., 40 milliseconds) that begins at point 2904 when a key is determined to be pressed.
A threshold time duration may also be imposed such that a pressure on a key is determined to be a keystroke only in response to the time between points 2904 and 2906 being less than the threshold time duration. The threshold time duration may be 130 milliseconds, although other time durations are also contemplated. The threshold time duration may be used, for example, to facilitate distinguishing between "light typist" users (e.g., users that apply light pressure to a keyboard when typing) and "heavy rester" users (e.g., users that apply heavy pressure to a keyboard when resting fingers and/or hands on the keyboard). Such "light typists" and "heavy resters" may apply similar amounts of pressure, but may be distinguished based on the threshold time duration (e.g., a user resting their finger or hand on a keyboard will typically not release pressure for the threshold time duration).
In addition to determining keystrokes, the pressure applied to one or more keys of the keyboard may be used to protect the input device from inadvertent input. For example, a light pressure on one or more keys may be determined as the user resting their hand or fingers on the keyboard. The light pressure may be, for example, an amount of pressure greater than a rest threshold amount (50 grams, although other amounts are contemplated) but less than a key press threshold amount.
In response to detecting such light pressure, other input components of the input device (e.g., a touchpad, an orientation sensing system, etc.) may be disabled so that inadvertent user touches or movements are not mistakenly recognized as inputs to these other components. Disabling the input component refers to powering down the input component or placing the input component in a low power mode such that the input component does not sense user input. Disabling these other input components may also provide a power saving function in that these input components do not use too much power when disabled.
Fig. 30 depicts an example 3000 of a graph of pressure on a key as a function of time showing a rest position. Line 3002 represents pressure on the key as a function of time. In response to the pressure on the key rising to (e.g., equal to and/or greater than) the rest threshold amount at point 3004, it is determined that the user is resting their finger or hand on the keyboard. This determination may continue until one or more events occur indicating that the user no longer rests their hand on the keyboard. These events may include, for example, a keystroke being determined as described above, a pressure on a key falling to (e.g., equal to and/or less than) a threshold amount (e.g., 0 grams, although other amounts are also contemplated), and so forth.
Similarly, the operation of the pressure sensitive keyboard and other input components may be coordinated to allow the action of certain components to cause other components to be disabled. For example, the touchpad or orientation sensing system may be disabled when a user detects a keystroke. As another example, a pressure sensitive keyboard may be disabled when user input is being received via a touchpad.
Further, home-back behavior (timing behavior) is detected when the light pressure shown in example 3000 is detected on a particular key that is typically appealing to the user, such as the "f" and/or "j" keys on a QWERTY keyboard or other "home" key. The home-back behavior is referred to as the user attempting to locate these home keys. In response to detecting the retro-home behavior, other components or modules of the input device may optionally be enabled or activated. For example, in response to detecting such a light pressure on a particular (e.g., "start") key, a keystroke can be activated or enabled, in response to which a feedback component that provides feedback (e.g., tactile, audible, visible, etc.) to the user.
It should be noted that the input device 104 discussed above (e.g., with reference to fig. 1-2) may include a touchpad or a trackpad. Buttons (often referred to as mouse buttons) may be associated with the touchpad or trackpad, which may be pressure sensitive keys as discussed above. Thus, a determination is made as to whether the user input is a selection of such a key based on whether the user input is a keystroke as discussed above.
Fig. 31 is an illustration of a system 3100 operable in an example implementation to employ techniques described herein. The system 3100 includes a pressure information collection module 3102 and a keystroke determination module 3104. For example, the system 3100 may be implemented in the input device 104 and/or the computing device 102 of fig. 1, or the input device 104 of fig. 2. Thus, for example, module 3102 may be implemented in input device 104, module 3104 may be implemented in computing device 102, both modules 3102 and 3104 may be implemented in input device 104, and so on.
The pressure information collection module 3102 obtains an indication of the amount of pressure applied to the keys of the pressure sensitive keyboard. Module 3102 obtains (e.g., receives and/or generates) pressure information 3106 related to user input to a keyboard of the input device and provides the pressure information 3106 to keystroke determination module 3104. The keystroke determination module 3104 determines the key or keys that were struck based on the pressure information 3106 and outputs an indication of the determination 3108. This determination is made based on the pressure applied to the key, and optionally, various other factors as discussed above.
In one or more embodiments, the keystroke determination module 3104 uses pressure and optionally various other factors discussed above as follows. At each frame, the keys of the keyboard are analyzed. The one or more keys are referred to as being newly pressed, which means that the one or more keys have risen in the analyzed frame to a key press threshold amount.
If a key is newly pressed, the initial key pressure is in an indeterminate range (e.g., between the key press threshold amount and the selection threshold amount), and the key is not currently being monitored to determine whether it is a keystroke or an inadvertent actuation, the initial pressure and current time (e.g., number of ticks) are recorded, and the key state or record is changed to indicate that the key is being further monitored to determine whether the applied pressure is a keystroke.
Otherwise, if the key is newly pressed, the key is currently being monitored, and the current pressure has risen to a selection threshold amount, the applied pressure is determined to be a keystroke if any additional factors are satisfied. As discussed above, various additional factors may be used, such as a hysteresis factor, an amount of time since a key was released, an amount of time since a different key was determined to be struck, a key press count, and so forth.
Otherwise, if the key has been monitored for more than the monitoring period of time without determining that the applied pressure is a keystroke, the various state tracking information is cleared. Alternatively, the key may be recorded as debounced such that the key is not recorded as released until the amount of debounce time has elapsed.
Otherwise, if the button is still pressed or debounced, it is checked whether the button is a mouse button. If the button is a mouse button, a variable or other record is updated to indicate the mouse button status (optionally, left and right mouse button status). If the button is not a mouse button, then the current time (e.g., number of clicks) is recorded. Based on the assumption that a key press is an unintentional press by the user, the recorded time may be used to suspend trackpad activity for a particular amount of time (e.g., a particular number of milliseconds).
Otherwise, if the key has just been released (e.g., the key is currently tracked as being pressed, such as by having a key state of "waiting for the key to be released" and the current pressure value has dropped to a key release threshold amount), the key may be considered "newly released". The key state is set to no longer be pressed and the current time (e.g., number of clicks) is recorded, which may be used to prevent the key from being reported as pressed too early after being released. If the newly released key is not a modifier key, a variable or other record that tracks the number of currently pressed non-modifier keys is decremented. This count is used to determine whether the key press count threshold has been reached, as discussed above.
Otherwise, the key is not pressed or monitored. If the hysteresis count is maintained to support the hysteresis factors discussed above, the hysteresis count may be cleared.
Fig. 32 is a flow diagram illustrating an example process 3200 for implementing techniques described herein in accordance with one or more embodiments. Process 3200 can be implemented by a keystroke determination module, such as keystroke determination module 3104 of fig. 31, where process 3200 can be implemented in software, firmware, hardware, or a combination thereof. Process 3200 is shown as a set of acts and is not limited to the order shown for performing the operations of the various acts. Process 3200 is an example process for implementing the techniques described herein. Additional discussion of implementing the techniques described herein will be included herein with reference to different figures.
In process 3200, in a frame, an indication of pressure applied to a key of a keyboard is obtained (act 3202). These indications may be received from a sensor substrate of a pressure sensitive keyboard as discussed above, or alternatively from other components or modules. The process 3200 is repeated for each frame.
Debounce any keys for which the amount of debounce time has expired (act 3204). Debounce a key refers to recording that an amount of debounce time for the key has elapsed, such that the key may be determined to be released when the pressure applied to the key drops, as discussed above. The recording may be performed in a number of ways, for example, the key may be transitioned from a "debounce" state to a "wait for release" state.
The analysis of whether a keystroke was made is limited to one new key press per frame (act 3206). A new key press refers to a pressure applied to the key last recorded as released rising to a key press threshold amount. Alternatively, the key may remain in a "released" state or a "pressed" state, in which case a new key press refers to an increase in the pressure applied to the key in the "released" state up to a key press threshold amount. If, within the frame, the plurality of keys last recorded as released all rise to a key press threshold amount, then in act 3206, one of the plurality of keys is selected. The selected key may be the key with the greatest pressure applied within the frame. If the same pressure is applied to multiple keys, one of the keys is selected (e.g., the first key encountered when analyzing the keys in act 3206, randomly, according to some ranking or priority level of the keys, etc.), and the recorded pressure applied to the unselected key or keys may be reduced (e.g., by 1 gram). Alternatively, the keys may be selected in other ways than based on pressure, e.g., randomly, according to a rank or priority level of the key, etc.
Alternatively, process 3200 may not include act 3206. In these cases, the analysis of the keystroke is not limited to one new key press per frame, but may include multiple new key presses per frame.
Based on whether all keys have been processed within the frame, process 3200 continues (act 3208). The processing of the frame refers to analyzing the keystroke as discussed below in acts 3210-3220. Typically, each key is processed, as some keys may be released. Alternatively, only keys that are currently in the "pressed" state and keys that were identified in act 3206 as a new key press may be processed.
If processing of the key is not complete, the unprocessed key is selected and a determination is made as to whether the selected key has been released (act 3210). If a key is recorded as pressed (e.g., in a "pressed" state) and the pressure applied to the key drops to a selected key release threshold amount, the selected key is released.
If the selected key is not released, a check is made as to whether the selected key is debounced (act 3212). As discussed above, the selected key is debounced during the debounce amount of time. A counter or other tracking mechanism may be used for the key to determine when the key is debounced.
If the selected key is debounced, process 3200 returns to act 3208 to check if all keys have been processed within the frame. However, if the selected key is not debounced, a check is made to see if the selected key is determined to have been struck (act 3214). Whether a selected key is determined in the frame to have been struck is based on the pressure applied to the key and one or more of various other factors as discussed above. The determination of whether a key was struck may be performed for a single key per frame (e.g., the key selected in act 3206, discussed above), or alternatively, for multiple keys per frame. Whether the selected key was struck may be based on determining whether the pressure applied to the key rises to a key press threshold amount (and optionally, additional factors discussed above). Alternatively, whether the selected key was struck may be based on determining whether the pressure applied to the key rises to a selection threshold amount and/or whether the slope of a line depicting the pressure applied to the key as a function of time rises to a threshold slope (and, optionally, the additional factors discussed above).
If the selected key is not determined to have been struck, process 3200 returns to act 3208 to check if all keys have been processed within the frame. However, if the selected key has been determined to have been struck, then a check is made as to whether the keyboard report is suppressed (act 3216). Keyboard reporting may be suppressed for various reasons, such as system performance, power savings, and the like.
If keyboard reporting is suppressed, process 3200 returns to act 3208 to check if all keys have been processed within the frame. However, if the keyboard report is not suppressed, an indication that the selected key was determined to have been struck is added to the keyboard report. The keyboard report may include various information about the keystroke, such as an indication of the key that was struck, the time the key was struck, and the like. Process 3200 then returns to act 3208 to check if all keys have been processed within the frame.
Returning to act 3210, if the selected key is released, a check is made as to whether the keyboard report is suppressed (act 3216). If keyboard reporting is suppressed, process 3200 returns to act 3208 to check if all keys have been processed within the frame. However, if the keyboard report is not suppressed, an indication that the selected key was released is added to the keyboard report. The keyboard report may include various information about the key that was released, such as an identification of the key that was released, the time at which the key was released, and the like. Process 3200 then returns to act 3208 to check if all keys have been processed within the frame.
Returning to act 3208, if all keys have been processed within the frame, a keyboard report is sent (if one is available) (act 3220). The keyboard report may be sent to various components or modules, such as the input/output module 108 of fig. 1, another module or component of the input device 104 of fig. 1 and 2, and so forth.
FIG. 33 is a flow diagram illustrating an example process 3300 for determining whether a keystroke has occurred in accordance with one or more embodiments. The process 3300 may be implemented by a keystroke determination module, such as the keystroke determination module 3104 of FIG. 31, and the process 3300 may be implemented in software, firmware, hardware, or a combination thereof. Process 3300 may implement, for example, act 3214 of fig. 32. Process 3300 is shown as a set of acts and is not limited to the order shown for performing the operations of the various acts. Process 3300 is an example process for implementing the techniques described herein. Additional discussion of implementing the techniques described herein will be included herein with reference to different figures.
In process 3300, a check is made as to whether the pressure applied to the key is in an indeterminate range (act 3302). The indefinite range refers to a range between a key depression threshold amount (e.g., 200 grams) and a selection threshold amount (e.g., 800 grams). If the pressure applied to the key is not in the indeterminate range, then a check is made as to whether the pressure applied to the key has risen to a selection threshold amount (act 3304). If the pressure applied to the key does not rise to the selection threshold amount, then the key is determined to have not been struck (act 3306). Optionally, an indication that the key was determined to be untapped may be returned (e.g., included in a keyboard report as discussed above).
However, if the pressure applied to the key does rise to the selection threshold amount, then the key is determined to be struck (act 3308) with all other factors also being satisfied. As discussed above, various different factors may be employed, such as a hysteresis factor, an amount of time since a key was released, an amount of time since a different key was determined to be struck, a key press count, and so forth. Alternatively, an indication that a key was determined to have been struck may be returned (e.g., included in a keyboard report as discussed above).
Returning to act 3302, if the pressure applied to the key is in the indeterminate range, a check is made as to whether the slope of the key has been monitored (act 3310). The pressure applied to the key may have risen to the key press threshold amount in the previous frame, and as discussed above, the key may be currently in the monitoring period, and thus the slope of the key may have been monitored.
If the slope of the key has not been monitored, then monitoring of the key is initiated (act 3312). A record of key monitoring is maintained and can be used when processing subsequent frames. This recording may be, for example, causing a key to transition to a "monitor pressure change" state.
However, if the slope of the key has been monitored, then a check is made as to whether the key is still within the monitoring period (act 3314). If the key is still within the monitoring period, a check is made as to whether the slope of the graph of pressure applied to the key (the rate of key pressure applied to the key) rises to a threshold slope as a function of time (act 3304). If the slope of the graph does not rise to the threshold slope, then the key is determined to have not been hit (act 3306). Optionally, an indication that the key was determined to be untapped may be returned (e.g., included in a keyboard report as discussed above).
However, if the slope of the graph does rise to the threshold slope, then the key is determined to be struck (act 3308) if all other factors are also met. As discussed above, a variety of different factors may be employed.
Returning to act 3314, if the key is not still in the monitoring period, monitoring of the slope of the key is stopped (act 3314). A record is maintained that the key is no longer being monitored and the record that the key is no longer being monitored can be used when processing subsequent frames. This recording may be, for example, causing a key to transition to an "initial" state.
It should also be noted that the input device 104 may provide a variety of feedback to the user in response to keystrokes. This feedback may take a variety of forms, such as audible (e.g., producing a musical tone or pop each time a key is determined to be struck), tactile (e.g., an input device vibrating each time a key is determined to be struck), visible (e.g., a struck key is illuminated or a Light Emitting Diode (LED) illuminates each time a key is determined to be struck), and so forth.
It should also be noted that although in the above discussion, each individual key is a pressure sensor, alternatively, a plurality of pressure sensors may be associated with a key. For example, each key may incorporate any number of pressure sensors similar to the pressure sensors discussed above. As another example, the input device may include a dense array of pressure sensors (e.g., 1500 or more sensors), where different sets of sensors are associated with different keys of the keyboard. In these cases, the pressure applied to a key is based on a combination (e.g., a sum or other function) of the pressures applied to the pressure sensors associated with the key.
In the discussion above, various quantities, thresholds, durations, etc. are discussed. These include, for example, a threshold amount of key presses, hysteresis values, threshold amounts of key releases, key press durations, same key rejection time thresholds, different key rejection time thresholds, key press count thresholds, monitoring amounts of time, and so forth. Example values of these various amounts, thresholds, durations, etc. are discussed, although these are examples and other values are contemplated. Further, the particular values for these various amounts, thresholds, durations, etc. may vary based on different system configurations, settings, etc.
For example, different values may be used for these various quantities, thresholds, durations, etc., based on the size or characteristics of the pressure sensor or key. For example, a small key or small sensor with a lower sensitivity may have a smaller key press threshold and a smaller key release threshold amount than a larger key or larger sensor with a higher sensitivity. Furthermore, different values may be used for different pressure sensors or keys on the same input device. For example, a smaller key (e.g., having a surface area less than a threshold size) may have a smaller key press threshold and a smaller key release threshold amount than a larger key.
In another example, values for these various amounts, thresholds, durations, etc. may be set as part of a user customization process. The user customization process may be a training process in which a user is presented with a number of sentences or other character strings to be typed. The user presses the appropriate keys to enter a sentence or other string, and various parameters of the user's key presses (e.g., applied pressure, timing between characters, etc.) are evaluated and used to customize these values. Because the sentence or other string is known, it is known what key is intended to be struck by the user, and a user press of a key can be identified as a selection of a key, even if the applied pressure would not otherwise be determined to be a keystroke. For example, the amount of pressure a user typically applies when entering a key may be identified, and the key press threshold amount and/or the selection threshold amount may be modified based on the pressure (e.g., the key press threshold amount may be reduced to 150 grams if the user is a light typist and typically applies 500 grams of pressure when hitting a key, or the selection threshold amount may be increased to 1000 grams if the user is a heavy typist, typically applying 1200 grams of pressure when hitting a key).
The user customization process may also be such that the user input specifies a particular value for the user. For example, a user may be presented with a user interface through which the user may identify particular values of these various amounts, thresholds, durations, etc. The particular value may be specified in different ways, such as by a user entering a numerical value (e.g., "180" is entered into the data entry field to indicate that the threshold amount of key depression will be 180 grams), by selecting a setting along a sliding scale or dial, and so forth. The user can also select from a plurality of settings, each setting having a different associated value of these various amounts, thresholds, durations, etc. For example, the user may be able to select among settings "light," "medium," and "high" that indicate the amount of pressure typically applied when a key is struck, which different settings may have different key presses and/or select threshold amounts (e.g., a threshold amount for a lighter typist is smaller than a threshold amount for a heavier typist). As another example, the user can select among settings "slow", "medium", and "fast" indicating how fast the typing is, which different settings may have different amounts of the same key and/or different amounts of key rejection time (e.g., faster typists have a longer amount of time than slower typists).
Where different values may be set for these various amounts, thresholds, durations, etc. as part of a user customization process, the values may be maintained for the user over time. For example, the value may be associated with a user account such that each time a user logs into a computing device, their previously customized value is retrieved and used when they log into the device.
Different configurations of computing devices, orientations of computing devices, applications running on computing devices, and the like may also have different values for these various amounts, thresholds, durations, and the like. The values may be default values for a particular configuration, orientation, application, etc. and/or may be set as part of a user customization process. For example, a particular game may have a smaller distinct key press rejection time threshold and/or a larger key press count threshold than a word processing application. As another example, the amount of monitoring time and/or the amount of debounce time may be longer where the input device is placed flat against the back of the display device than where both the input device and the display device are placed flat against a surface.
Further, although specific amounts, thresholds, durations, etc. are discussed, additional amounts, thresholds, and/or durations may be used. For example, after determining a keystroke, one or more additional threshold amounts of pressure may be used to determine the particular manner in which the character corresponding to the selected key is to be presented. The manners may be different font sizes, font types, font weights, font styles (e.g., bold, underline, etc.), and so forth. For example, if the pressure applied to the key is raised to 2000 grams before the key is released, the character may be displayed in bold, but if the pressure is not raised to 2000 grams, the character is displayed in a normal state (not bold).
In another example, after determining a keystroke, an additional threshold amount of pressure may be used to determine the particular manner in which feedback is provided to the user in response to the keystroke. For example, after determining a keystroke, one or more additional threshold amounts of pressure may be used to determine a volume level of audible feedback. For example, if the pressure applied to a key rises to 1500 grams before the key is released, the feedback may be louder than if the pressure did not rise to 1500 grams. Alternatively, both audible and tactile feedback may be provided if the pressure applied to the key rises to 1500 grams before the key is released, but only tactile feedback if the pressure does not rise to 1500 grams.
The techniques for keystroke determination for pressure sensitive keyboards discussed herein support a variety of usage scenarios. The techniques allow keystrokes to a pressure-sensitive keyboard to be easily identified, allowing a user to easily and quickly provide input via the keyboard. In addition, these techniques allow for easy differentiation between keystrokes and other inputs that the user does not want to be a keystroke, such as the user resting their hand or finger on a keyboard, the user moving the finger over the keyboard to find a starting position, an inadvertent touch, etc.
Example systems and devices
Fig. 34 illustrates an example system generally at 3400 that includes an example computing device 3402, the example computing device 3402 representing one or more computing systems and/or devices that may implement various techniques described herein. Computing device 3402 may be configured, for example, to assume a mobile configuration using a housing shaped and sized for grasping and carrying by one or more hands of a user, although other examples are also contemplated, illustrative examples of mobile configurations include mobile phones, mobile gaming and music devices, and tablet computers.
The example computing device 3402 as shown includes a processing system 3404, one or more computer-readable media 3406, and one or more I/O interfaces 3408 communicatively coupled to each other. Although not shown, computing device 3402 may also include a system bus or other data and command transfer system that couples the various components to one another. The system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. Various other examples are also contemplated, such as control lines and data lines.
The processing system 3404 represents functionality to perform one or more operations using hardware. Accordingly, the processing system 3404 is illustrated as including hardware elements 3410, which may be configured as processors, functional blocks, and so forth. This may include hardware implementations, such as application specific integrated circuits or other logic devices fabricated using one or more semiconductors. Hardware element 3410 is not limited by the materials from which it is constructed or the processing mechanisms employed therein. For example, a processor may include semiconductors and/or transistors (e.g., electronic Integrated Circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.
Computer-readable storage medium 3406 is illustrated as including memory/storage 3412. Memory/storage 3412 represents the capacity of memory/storage associated with one or more computer-readable media. The memory/storage component 3412 may include volatile media (such as Random Access Memory (RAM)) and/or nonvolatile media (such as Read Only Memory (ROM), flash memory, optical disks, magnetic disks, and so forth). The memory/storage component 3412 may include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., flash memory, a removable hard drive, an optical disk, and so forth). The computer-readable medium 3406 may be configured in a variety of other ways as discussed further below.
Input/output interface 3408 represents functionality that allows a user to enter commands and information to computing device 3402, and also allows information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, a touch-enabled device (e.g., a capacitive sensor or other sensor configured to detect physical touch), a camera (e.g., which may employ visible wavelengths or invisible wavelengths such as infrared frequencies to recognize movement as gestures that do not involve touch), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, a haptic response device, and so forth. Thus, the computing device 3402 may be configured in a variety of ways to support user interaction.
Computing device 3402 is also illustrated as being communicatively physically coupled to input device 3414, with input device 3414 being physically and communicatively removable from computing device 3402. In this manner, a variety of different input devices can be coupled to computing device 3402 having a wide variety of configurations to support a wide variety of functions. In this example, the input device 3414 includes one or more keys 3416, which may be configured as pressure sensitive keys, keys of a mechanical switch, or the like.
Input device 3414 is also illustrated as including one or more modules 3418, which may be configured to support various functions. The one or more modules 3418, for example, can be configured to process analog and/or digital signals received from the keys 3416 to determine whether a keystroke is intended, to determine whether pressure applied to a key is a keystroke, to determine whether an input indicates resting pressure, to support authentication of the input device 3414 to work with the computing device 3402, and so forth. Module 3418 may include, for example, modules 3102 and/or 3104 of fig. 31.
Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, these modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The terms "module," "functionality," and "component" as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
An implementation of the described modules and techniques may be stored on or transmitted from one end to another end of some form of computer readable media. Computer-readable media can include a variety of media that can be accessed by computing device 3402. By way of example, and not limitation, computer-readable media may comprise "computer-readable storage media" and "computer-readable signal media".
"computer-readable storage medium" may refer to media and/or devices that enable persistent and/or non-transitory storage of information as opposed to mere signal transmission, carrier waves, or signals per se. Accordingly, a computer-readable storage medium refers to a non-signal bearing medium. Computer-readable storage media include hardware, such as volatile and nonvolatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information, such as computer-readable instructions, data structures, program modules, logic elements/circuits, or other data. Examples of computer readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage devices, tangible media, or articles of manufacture suitable for storing the desired information and accessible by a computer.
"computer-readable signal medium" may refer to a signal-bearing medium configured to transmit instructions to hardware of computing device 3402, e.g., via a network. Signal media may typically comprise computer readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave, data signal, or other transport medium. Signal media also include any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
As previously mentioned, hardware elements 3410 and computer-readable media 3406 represent modules, programmable logic devices, and/or fixed device logic implemented in hardware that, in some embodiments, may be employed to implement at least some aspects of the techniques described herein, such as executing one or more instructions. The hardware may include components of integrated circuits or systems on a chip, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), Complex Programmable Logic Devices (CPLDs), and other silicon implementations or other hardware. In this context, hardware may function as a processing device that performs program tasks defined by instructions and/or logic embodied by hardware, as well as hardware (e.g., a computer-readable storage medium as described previously) for storing the executed instructions.
Combinations of the above may also be used to implement the various techniques described herein. Thus, software, hardware, or executable modules may be implemented as one or more instructions and/or logic contained on some form of computer-readable storage medium and/or by one or more hardware elements 3410. The computing device 3402 may be configured to implement particular instructions and/or functions corresponding to software and/or hardware modules. Thus, implementation of modules executable by the computing device 3402 as software may be accomplished, at least in part, in hardware, for example, using computer-readable storage media and/or hardware elements 3410 of the processing system 3404. The instructions and/or functions may be executed/performed by one or more articles of manufacture (e.g., one or more computing devices 3402 and/or processing systems 3404) to implement the techniques, modules, and examples described herein.
Conclusion
Although example implementations have been described in language specific to structural features and/or methodological acts, it is to be understood that implementations defined in the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.

Claims (10)

1. A keystroke determination method comprising:
obtaining (3202) an indication of pressure applied to a key of a pressure-sensitive keyboard, wherein the pressure-sensitive keyboard is configured to be physically and communicatively removable from a computing device;
in response to the pressure applied to the key rising to a key press threshold amount and no more than a threshold number of keys being pressed simultaneously, determining (3214, 3308) that the pressure applied to the key is a keystroke; and
determining that the key is released only after the amount of debounce time has elapsed in response to the pressure applied to the key falling to a key release threshold amount.
2. The method of claim 1, wherein the determining comprises determining that the pressure applied to the key is a keystroke in response to the pressure applied to the key rising to a key-press threshold amount and no more than a threshold number of keys being pressed simultaneously and a threshold amount of time having elapsed since the key was previously struck and released.
3. The method of claim 1, the determining comprising determining that the pressure applied to the key is a keystroke in response to the pressure applied to the key rising to a key-press threshold amount and no more than a threshold number of keys being pressed simultaneously and a threshold amount of time having elapsed since a previous stroke of a different key of the keyboard.
4. The method of claim 1, the key press threshold amount being different for different keys of the keyboard.
5. The method of claim 1, further comprising, as part of a user customization process, identifying a particular value of the threshold amount of key presses for a user.
6. The method of claim 1, further comprising determining the threshold amount of key presses based at least in part on a configuration of the computing device, an orientation of the computing device, and/or an application running on the computing device.
7. The method of claim 1, further comprising, after determining that the pressure applied to the key is a keystroke, determining, based on the pressure applied to the key, a manner in which characters corresponding to the key are presented to a user and/or a manner in which feedback is provided to a user in response to a keystroke.
8. A keystroke determination method comprising:
obtaining (3202) an indication of pressure applied to keys of a keyboard: and
in response to (a) the pressure applied to the key rising to a key-press threshold amount for the key, and (b) the rate at which pressure is applied to the key rising to a threshold rate within a particular amount of time that the pressure is applied to the key rising to the key-press threshold amount for the key, determining (3214, 3308) that the pressure applied to the key is a keystroke, the key-press threshold amount being different for different keys of the keyboard.
9. The method of claim 8, further comprising:
determining that a finger or hand is resting on the keyboard in response to the pressure applied to the key exceeding a particular amount but not rising to the key press threshold amount; and
in response to determining that a finger or hand is resting on the keyboard, disabling one or more additional input components of an input device that includes the keyboard.
10. The method of claim 8, further comprising:
identifying a reversion behavior in response to a pressure applied to a particular one or more keys of the keyboard that exceeds a particular amount but does not rise to the key press threshold amount on the key; and
in response to identifying the home-back behavior, a feedback component is enabled to provide haptic feedback in response to determining that a subsequent pressure applied to at least one key of the keyboard is a keystroke.
HK14105663.9A 2012-03-02 2014-06-16 Key strike determination for pressure sensitive keyboard HK1192352B (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US61/606,301 2012-03-02
US61/606,321 2012-03-02
US61/606,336 2012-03-02
US61/606,333 2012-03-02
US61/606,313 2012-03-02
US61/607,451 2012-03-06
US61/613,745 2012-03-21
US13/471,393 2012-05-14

Publications (2)

Publication Number Publication Date
HK1192352A HK1192352A (en) 2014-08-15
HK1192352B true HK1192352B (en) 2018-03-09

Family

ID=

Similar Documents

Publication Publication Date Title
CN103455151B (en) Key strike determination for pressure sensitive keyboard
AU2018282404B2 (en) Touch-sensitive button
CN101228499A (en) Mouse with improved input mechanism
US10042545B2 (en) Touch input in a circuit board
HK1192352B (en) Key strike determination for pressure sensitive keyboard
HK1192352A (en) Key strike determination for pressure sensitive keyboard
Ikematsu Ochanomizu University Tokyo, Japan ikematsu. kaori@ is. ocha. ac. jp
HK1213059B (en) Touch pad with force sensors and actuator feedback
HK1192348A (en) Classifying the intent of user input
HK1192350B (en) A force concentrator
GB2495384A (en) Keyboard for an electronic device having a key with indicia to indicate the direction of the key function