Force sensitive input device and method
By designing force-sensitive input devices, combined with buttons, analog sensors and circuits, the problems of the accuracy and response speed of existing input devices in analog and digital control are solved, and high-quality hybrid control and tactile feedback are achieved.
Patent Information
- Application Number
- CN202010011435.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-02
- Filing Date
- 2020-01-06
- Publication Date
- 2025-08-26
- Estimated Expiration
- 2040-01-06
AI Technical Summary
Existing input devices are difficult to achieve precise analog and digital hybrid control, and the sensor response time is poor, the tactile feedback is poor, and the form factor of the standard key is not suitable.
Design a force-sensitive input device, including buttons, analog sensors and circuits, the buttons move along the axis to output analog signals, the circuit generates analog and digital input data, supports analog, digital and combined modes, and has automatic calibration functions.
It realizes precise hybrid control of analog and digital inputs, improves response speed and tactile feedback quality, and adapts to different application needs.
Smart Images

Figure CN111414075B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 788,486, filed January 4, 2019, the entire disclosure of which is incorporated herein by reference. This application is also related to U.S. Patent Nos. 8,717,202 and 8,922,399, the entire disclosures of which are incorporated herein by reference. Technical Field
[0003] The present disclosure relates generally to input devices and methods, and more particularly to force-sensitive input devices and methods. Background Art
[0004] A common input device used in interfacing with computing devices is a digital switch or button. A digital switch typically includes physical electrical contacts designed to present a low resistance when the switch is activated and an open circuit when the switch is not activated. Such switches typically have a binary output (e.g., on or off, high or low). Many types of physical mechanisms with different behaviors can be used for digital switches. For example, rocker switches, two-state switches, tactile switches, and slide switches are all examples of switches that take a discrete on or off value. Some digital switches can represent more than two values (e.g., via multiple positions) by connecting a certain combination of three or more contacts. However, all of these switches have a significant limitation: they can only take a discrete number of positions and therefore can only represent a limited set of possible user intents.
[0005] Analog sensors can also be used in the process of interfacing with computing devices to achieve greater granularity along a continuous user intent. Because analog sensors generally measure physical behaviors or phenomena that can change continuously under the control of the user, they generally have a continuous range of output values. One example of an analog sensor is a potentiometer (i.e., a variable resistor) that is coupled to a slider or knob that is manipulated by the user. The user can adjust the slider or knob to set the resistance of the potentiometer along a continuous value, and this resistance can be measured by appropriate circuitry. Previous analog sensors, such as variable resistor-based analog sensors, have had poor response times due to the measurement methods used and / or the relaxation time required for the materials utilized. Previous analog sensors also provide poor tactile feel or tactile response, which does not provide feedback to the user about the performance of the sensor or guarantee that the input will be the input the user intended.
[0006] When used in an input device, the sensor must be adapted to the form factor required for the specific application. One common form factor for interfacing with a computing device is a key switch ("key"), which has been used in personal computer keyboards, game controllers, control panels of computer numerical control (CNC) industrial equipment (e.g., lathes, saws, milling machines, etc.), and other computing devices. Keys typically include a resilient component (e.g., a metal coil spring, a rubber key, etc.) that returns the keycap to a home state when the user is not interacting with the key. For many analog sensors, it is not feasible to incorporate additional circuitry for measuring a subject's physical behavior or phenomenon into the form factor of a standard key. For example, in an analog sensor that utilizes a potentiometer (as described above), the potentiometer cannot be adapted within the form factor of a standard key.
[0007] Game controllers used as input devices are often used to control the movement and / or actions of characters in electronic games (e.g., computer games). Game controllers typically include several digital switches or buttons. As described above, the digital buttons of such game controllers typically have binary outputs, which cause the character to move at a constant speed or not move at all. Although using four digital buttons (e.g., up, down, left, and right buttons) to control the character can produce a precise direction of movement, the magnitude or speed of movement is fixed. Some game controllers also include analog joysticks to allow for greater granularity control of the character's movement and / or actions. Typically, analog sensors in the game controller determine how far the joystick is displaced from the center position along both the x-axis and the y-axis (simultaneously). Therefore, compared to digital buttons, analog joysticks can control the movement of the character in any direction (i.e., 360 degrees) and at different magnitudes (based on how far the joystick is moved from the center position). However, unlike digital buttons, users cannot accurately control the direction of the character's movement (e.g., exactly at 90 degrees) with an analog joystick. Summary of the Invention
[0008] According to one aspect of the present disclosure, a force-sensitive input device may include a button, an analog sensor, and circuitry. The button may be movable along a first axis between first and second end positions and biased toward the first end position. The analog sensor may output an analog signal as a function of the displacement of the button along the first axis from the first end position. The circuitry may generate both analog input data and digital input data in response to the analog signal. The analog input data may include a range of values monotonically related to the displacement of the button, and the digital input data may include first and second binary values.
[0009] In some embodiments, the circuit can output both analog input data and digital input data, only analog input data, or only digital input data.
[0010] In at least one embodiment, the first binary value may indicate that the button displacement is less than a threshold displacement, and the threshold displacement may correspond to a threshold position positioned between the first and second end positions. The second binary value may indicate that the button displacement is equal to or greater than the threshold displacement.
[0011] In some embodiments, a minimum value of the analog input data may indicate that the button is in a first end position, and a maximum value of the analog input data may indicate that the button is in a second end position.
[0012] In some embodiments, a minimum value of the analog input data may indicate that the button is in the first end position, and a maximum value of the analog input data may indicate that the button is in the threshold position.
[0013] In at least one embodiment, the threshold shift is reconfigurable to any selected shift of the button.
[0014] In some embodiments, the threshold position may be closer to the second end position than to the first end position.
[0015] According to another aspect of the present disclosure, a method for using a force-sensitive input device may include using an analog sensor to output an analog signal as a function of displacement of a button along a first axis from a first end position. The method may further include generating both analog input data and digital input data in response to the analog signal. The analog input data may include a range of values monotonically related to the displacement of the button, and the digital input data may include first and second binary values. The force-sensitive input device may include a button movable along the first axis between first and second end positions and biased toward the first end position.
[0016] In some embodiments, the method may further include configuring the force-sensitive input device to output one of: (i) both analog input data and digital input data, (ii) only analog input data, or (iii) only digital input data.
[0017] In at least one embodiment, the first binary value may indicate that the button displacement is less than a threshold displacement, and the threshold displacement may correspond to a threshold position positioned between the first and second end positions. The second binary value may indicate that the button displacement is equal to or greater than the threshold displacement.
[0018] In some embodiments, a minimum value of the analog input data may indicate that the button is in a first end position, and a maximum value of the analog input data may indicate that the button is in a second end position.
[0019] In at least one embodiment, a minimum value of the analog input data may indicate that the button is in the first end position, and a maximum value of the analog input data may indicate that the button is in the threshold position.
[0020] In some embodiments, the threshold position may be closer to the second end position than to the first end position.
[0021] In at least one embodiment, the method may further include adjusting the threshold shift based on a user setting.
[0022] According to another aspect of the present disclosure, a force-sensitive input device may include a button, an analog sensor, and circuitry. The button is movable along a first axis between first and second end positions and is biased toward the first end position. The analog sensor may output an analog signal as a function of the displacement of the button along the first axis from the first end position. The circuitry may generate input data in response to the analog signal using stored calibration data that correlates a value of the analog signal with a position of the button along the first axis. The circuitry may also execute an automatic calibration procedure that includes updating the stored calibration data with at least one sampled value of the analog signal.
[0023] In some embodiments, the automatic calibration procedure may include, when the sampled value of the analog signal is greater than the stored value associated with the second end position in the stored calibration data, updating the stored calibration data by replacing the stored value associated with the second end position with the sampled value.
[0024] In at least one embodiment, the automatic calibration procedure may include, when the sampled value of the analog signal is less than the stored value associated with the first end position in the stored calibration data, updating the stored calibration data by replacing the stored value associated with the first end position with the sampled value.
[0025] In some embodiments, the automatic calibration procedure may include repeatedly sampling the analog signal during a first calibration time period, and updating the stored calibration data by replacing the stored value associated with the second end position in the stored calibration data with the highest value of the analog signal sampled during the first calibration time period.
[0026] In at least one embodiment, the first calibration time period may be a time period during which a mechanical switch of the button is activated.
[0027] In some embodiments, the automatic calibration procedure may include repeatedly sampling the analog signal during a second calibration time period, and updating the stored calibration data by replacing the stored value associated with the first end position in the stored calibration data with the lowest value of the analog signal sampled during the second calibration time period.
[0028] In at least one embodiment, the second calibration time period may be a time period during which the mechanical switch of the button is not activated.
[0029] According to another aspect of the present disclosure, a method for using a force-sensitive input device may include using an analog sensor to output an analog signal as a function of displacement of a button along a first axis from a first end position. The method may further include generating input data in response to sampled values of the analog signal using stored calibration data that correlates the value of the analog signal with the position of the button along the first axis. The method may further include automatically calibrating the force-sensitive input device. The automatic calibration may include updating the stored calibration data with at least one sampled value of the analog signal. The force-sensitive input device may include a button movable along the first axis between first and second end positions and biased toward the first end position.
[0030] In some embodiments, the automatic calibration may include updating the stored calibration data by replacing the stored value associated with the second end position with the sampled value when the sampled value of the analog signal is greater than the stored value associated with the second end position in the stored calibration data.
[0031] In at least one embodiment, the automatic calibration may include updating the stored calibration data by replacing the stored value associated with the first end position with the sampled value when the sampled value of the analog signal is less than the stored value associated with the first end position in the stored calibration data.
[0032] In some embodiments, the automatic calibration may include repeatedly sampling the analog signal during a calibration time period during which the mechanical switch of the button is activated. The automatic calibration may further include updating the stored calibration data by replacing a stored value associated with the second end position in the stored calibration data with a highest value of the analog signal sampled during the calibration time period.
[0033] In at least one embodiment, the automatic calibration may include repeatedly sampling the analog signal during a calibration time period during which the mechanical switch of the button is not activated. The automatic calibration may further include updating the stored calibration data by replacing the stored value associated with the first end position in the stored calibration data with the lowest value of the analog signal sampled during the calibration time period. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] The concepts described in the present disclosure are illustrated by way of example and not limitation in the accompanying drawings. For simplicity and clarity of illustration, the elements shown in the drawings are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. In addition, where appropriate, the same reference numerals or similar reference numerals (e.g., reference numerals ending in the same two digits) have been repeated between the figures to indicate corresponding or similar elements. The detailed description makes specific reference to the accompanying drawings, in which:
[0035] Figure 1 is a cross-sectional view of an illustrative embodiment of a force-sensitive input device;
[0036] Figure 2 is a diagram of one embodiment of a combination analog / digital input key (with the keycap removed) illustrating a first digital activation point along the keystroke and a first analog input range along the keystroke;
[0037] Figure 3 is a diagram of another embodiment of a combination analog / digital input key (with the keycap removed) showing a second digital activation point along the keystroke and a first analog input range along the keystroke;
[0038] Figure 4 is a diagram of yet another embodiment of a combination analog / digital input key (with the keycap removed) illustrating a second digital activation point along the keystroke and a second analog input range along the keystroke;
[0039] Figure 5 is a perspective view of an illustrative embodiment of an input device including a plurality of force-sensitive input keys and a plurality of binary input keys;
[0040] Figure 6 yes Figure 5 A partially exploded perspective view of several components of an input device;
[0041] Figure 7 is available for Figure 5 A cross-sectional view of another illustrative embodiment of a force-sensitive input key in an input device;
[0042] Figure 8 is a simplified flow chart showing one illustrative embodiment of a force-sensitive input method;
[0043] Figure 9 is a simplified graph illustrating various calibration scenarios that can be automatically compensated for by the presently disclosed apparatus and method; and
[0044] Figure 10 is a simplified flow chart showing another illustrative embodiment of a force-sensitive input method. DETAILED DESCRIPTION
[0045] While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific exemplary embodiments thereof have been shown by way of example in the drawings and will be described in detail herein. However, it should be understood that there is no intention to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.
[0046] In the following description, numerous specific details, such as the types and interrelationships of circuit components, are set forth to provide a more thorough understanding of the present disclosure. However, one skilled in the art will appreciate that embodiments of the present disclosure can be practiced without these specific details. In other instances, various circuit components are not shown in detail (or are not labeled in each instance) to avoid obscuring the present disclosure. Using the included descriptions, one of ordinary skill in the art will be able to implement appropriate functionality without undue experimentation.
[0047] References in the specification to "one embodiment," "an embodiment," "illustrative embodiment," and the like indicate that at least one embodiment described may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes the particular feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in conjunction with an embodiment, it should be understood that it is within the knowledge of those skilled in the art to implement such feature, structure, or characteristic in conjunction with other embodiments, whether or not explicitly described.
[0048] See Figure 1-10 , showing various embodiments of the combined analog / digital input key 10. Figure 1-10 The combined analog / digital input key 10 in each of the examples is shown without a keycap 134, which is typically coupled to the plunger 12, 136 and is depressed by the user to activate the key 10. When the keycap 134 is depressed by the user, the plunger 12 is able to travel downwardly through a distance H. The resilient assembly 14 (which may be a spring, elastic member, etc.) positioned inside the housing 18 is directed toward Figure 1-7 The uppermost position of the plunger 12 shown in FIG biases the plunger 12. In other embodiments, the resilient assembly 14 may bias the plunger 12 toward the lowermost position.
[0049] In the illustrative embodiment, the combined analog / digital input key 10 utilizes an analog sensor 16 (e.g., a reflective sensor, a capacitive sensor, etc.) to obtain an analog measurement of the movement of the plunger 12 along its axis of travel (traversing a distance H). The signal output by the analog sensor 16 is a function of how far the plunger 12 has moved along the distance H (i.e., how far the user has pressed the key). Circuitry 17 associated with the input key 10 can receive the analog sensor signal and correlate its value with the distance traveled by the plunger 12, which can be expressed as a percentage of the distance H. Circuitry 17 can then generate analog input data and digital input data, which can be output to a separate circuit assembly, such as driver software for computer hardware.
[0050] See now Figure 1 , shows an illustrative embodiment of a force sensitive input key 10 in cross section. In at least one embodiment, the input key 10 may generally include a plunger 12, a resilient member 14, an analog sensor 16, and a housing 18. In an embodiment, for example Figure 1 In some embodiments shown in FIG, the bottom side of the housing 18 can be opened, thereby allowing the input key 10 to be secured to a supporting surface such as a printed circuit board (PCB) 20. It is contemplated that in other embodiments, the input key 10 may contain other components besides Figure 1 Additional or different components than those shown. As used herein, the term "plunger" may also refer to a "button" of a force-sensitive input key, and the phrase "force-sensitive input key" may also refer to a "force-sensitive input device."
[0051] The plunger 12 of the input key 10 includes a surface 22 that is exposed through the housing 18 and is designed to be pressed by a user or attached to a keycap 134, as will be discussed in more detail below. The plunger 12 is movable relative to the housing 18 along an axis 24 between two end positions. Figure 1 When the surface 22 of the button is pressed by the user, the plunger 12 can move along the axis 24 ( Figure 1 The plunger 12 is moved downward (from the center of the plunger 12) until the plunger 12 reaches the bottom position. In the illustrated embodiment, when the plunger 12 is in the bottom position, the bottom surface 26 of the plunger 12 will be close to the PCB 20. Because the plunger 12 is an analog mechanism, the plunger 12 can be positioned at an infinite number of positions between the top and bottom positions.
[0052] In some embodiments, particularly those in which the analog sensor 16 comprises a reflective sensor, the plunger 12 may include a reflective surface 28 that partially or fully reflects some or all types of light. In the illustrative embodiment, the reflective surface 28 reflects light toward the analog sensor 16 such that the analog sensor 16 outputs an analog signal that is a function of the force applied to the plunger 12 and / or the displacement of the plunger 12 along the first axis 24. It is contemplated that in other embodiments in which the analog sensor 16 comprises one or more sensors other than a reflective sensor, the analog signal output by the analog sensor 16 is still a function of the force applied to the plunger 12 and / or the displacement of the plunger 12 along the first axis.
[0053] In the illustrative embodiment, the reflective surface 28 of the plunger 12 can reflect light of a specific wavelength or a specific spectrum of wavelengths. In the illustrative embodiment, the reflective surface 28 is a surface of the plunger 12 (i.e., the reflective surface 28 is integrally formed with the plunger 12). In other embodiments, the reflective surface 28 can be coupled to the plunger 12 after the plunger 12 has been formed. By way of example, the reflective surface 28 can be applied to the surface of the plunger 12 as a reflective coating.
[0054] The elastic member 14 of the input key 10 biases the plunger 12 toward the top position. Figure 1As shown in FIG, the elastic member 14 is illustratively embodied as a metal coil spring 14. One end of the spring 14 engages with the plunger 12, while the other end of the spring 14 engages with the PCB 20. Figure 1 In the illustrative embodiment of FIG, the spring 14 has a generally cylindrical shape, and the plunger 12 and the PCB 20 each include a cylindrical feature that is received within one end of the spring 14 to maintain engagement with the spring 14. The resilient nature of the spring 14 allows the plunger 12 to move along the axis 24 when a user applies force to the plunger 12, but causes the plunger 12 to return to its original position when the user no longer applies force. Figure 1 . This configuration of the plunger 12 and spring 14 provides tactile feedback that allows the user to feel the amount of input (i.e., force) the user is applying to the plunger 12. Additionally, the spring 14 can be designed with a fast, robust response that requires minimal relaxation time. It should be appreciated that in other embodiments, the resilient component 14 can be any type of component that allows the plunger 12 to move along the axis 24 but biases the plunger 12 toward the top position (e.g., a rubber button).
[0055] In at least one embodiment, and more particularly in embodiments where the analog sensor 16 comprises a reflective sensor, the analog sensor 16 of the input key 10 is configured to emit light that impinges on the reflective surface 28. The amount of light impinging on the reflective surface 28 will be reflected back toward the analog sensor 16 and will be measured by the analog sensor 16. Figure 1 , light emitted from the simulated sensor 16, reflected by the reflective surface 28, and then returned to the simulated sensor 16 generally travels along an axis 30 that is parallel to the axis 24. In the illustrative embodiment, the reflective surface 28 is generally perpendicular to the axis 30. As the plunger 12 moves along the axis 24 (e.g., when a user applies force to the plunger 12), the reflective surface 28 of the plunger 12 will move along the axis 30.
[0056] As the distance between the simulated sensor 16 and the reflective surface 28 of the plunger 12 changes, the amount of light reflected from the reflective surface 28 back to the simulated sensor 16 will also change (e.g., when the reflective surface 28 and the simulated sensor 16 are farther apart, more scattering will occur and less light will return to the simulated sensor 16). Specifically, the amount of light reflected from the reflective surface 28 is monotonically related to the displacement of the plunger 12 from the top position (i.e., the distance traveled by the plunger 12 along the axis 24, which is also the distance traveled by the reflective surface 28 along the axis 30). Thus, by measuring the amount of light reflected from the reflective surface 28, the simulated sensor 16 is able to indirectly measure the distance between the simulated sensor 16 and the reflective surface 28 of the plunger 12.
[0057] The measurement of the amount of light reflected from the reflective surface 28 by the analog sensor 16 is related not only to the distance between the analog sensor 16 and the reflective surface 28, but also (due to the spring 14) to the force applied to the plunger 12 by the user. The specific properties of the spring 14 (or other resilient component 14) used in the input key 10 will produce a specific relationship between the amount of force applied to the plunger 12 and the displacement of the plunger 12 permitted by the spring 14. In the illustrative embodiment, the spring 14 is configured to permit displacement of the plunger 12 from the top position in proportion to the force applied to the plunger 12. Because the displacement of the plunger 12 is proportional to the applied force, and the amount of light reflected from the reflective surface 28 is monotonically related to the displacement of the plunger 12, the amount of light reflected from the reflective surface 28 is also monotonically related to the force applied to the plunger 12. Thus, by measuring the amount of light reflected from the reflective surface 28, the analog sensor 16 is also able to indirectly measure the force applied to the plunger 12 by the user.
[0058] In the illustrative embodiment, the analog sensor 16 includes a light emitting diode (LED) configured to emit light, and a phototransistor configured to receive and measure the amount of light reflected from the reflective surface 28. Specifically, the analog sensor 16 is illustratively embodied as a QRE1113 miniature reflective object sensor available from Fairchild Semiconductor Corporation of San Jose, California. Figure 1 , analog sensor 16 can be soldered to PCB 20 with an LED and phototransistor facing reflective surface 28. When energized, the LED of analog sensor 16 emits infrared light toward reflective surface 28. The infrared light that returns to analog sensor 16 from reflective surface 28 impinges on the phototransistor. In the illustrative embodiment, the phototransistor of analog sensor 16 is a bipolar junction transistor (BJT) with a light-sensitive base.
[0059] In this manner, the phototransistor will output an analog signal (e.g., of varying voltages) that is a function of the amount of light reflected from the reflective surface 28 back to the analog sensor 16. This analog signal can be processed to determine the force applied to the plunger 12 and the displacement of the plunger 12, as further described below. It is contemplated that in other embodiments, the analog sensor 16 may have other configurations including different light sources, light sensors, and / or different types of sensors.
[0060] The housing 18 may have any suitable shape for supporting the components of the input keys 10. In the illustrated embodiment, the housing 18 defines a cavity 32 in an interior portion of the housing 18. Figure 1, the analog sensor 16 is disposed in the chamber 32. A portion of the plunger 12 is also disposed in the chamber 32. Specifically, the reflective surface 28 of the plunger 12 is disposed in the chamber 32. In the illustrative embodiment, the housing 18 is formed of an opaque material so that light emitted by the analog sensor 16 does not pass through the housing 18. The opaque housing 18 also prevents external light from impinging on and being detected by the analog sensor 16.
[0061] In an illustrative embodiment, the input key 10 can operate in an analog mode, a digital mode, and a combined analog / digital mode. In both analog and digital modes, the circuit 17 associated with the input key 10 can receive an analog sensor signal and correlate its value with the distance traveled by the plunger 12, which in some embodiments can be expressed as a percentage of the distance H. In analog mode, after receiving the analog sensor signal, the circuit 17 can then generate analog input data (i.e., data representing the analog input), which can be output by the circuit 17. In digital mode, after receiving the analog sensor signal, the circuit 17 can then generate digital input data (i.e., data representing the digital input), which can be output by the circuit 17. In combined analog / digital mode, the circuit 17 can generate (and output) both analog input data and digital input data in response to the analog sensor signal.
[0062] In at least one embodiment, the plunger 12, resilient assembly 14, and housing 18 of each combination analog / digital input key 10 are illustratively embodied as an MX series desktop configuration 0.60 inch key switch available from Cherry, Inc. of Pleasant Prairie, Wisconsin. Figure 2-4 In this illustrative embodiment, the distance H is approximately 4 mm, but other sized input keys 10 have different possible depression distances for the plunger 12.
[0063] In an illustrative embodiment, in analog mode, the analog input data generated by the circuit 17 associated with the input key 10 may take a range of values representing the distance the plunger 12 has displaced from its uppermost resting position. For example, in one embodiment, the analog input data may be an integer in the range of 0 to 100 (i.e., 1, 2, 3, ..., 98, 99, 100), wherein the integer represents a percentage of the distance H traveled by the plunger 12. In other embodiments, the analog input data may be a decimal representing a percentage of the distance H traveled by the plunger 12. In such embodiments, the minimum value of the analog input data represents that the plunger 12 is in the starting position and has not yet been pressed by the user. The maximum value of the analog input data represents that the plunger 12 has been fully pressed by the user. It is contemplated that in other embodiments utilizing other types of sensors, the minimum and maximum values of the analog input data may represent other positions of the plunger 12.
[0064] In digital mode, the digital input data generated by the circuitry 17 associated with the input key 10 takes a binary value (e.g., high or low, 0 or 1) that indicates whether the plunger 12 has been depressed by at least a threshold distance 34. For example, in some embodiments, the threshold distance 34 may be set to 50% of distance H (e.g., in the illustrative embodiment, it may be set at 2 mm). In such embodiments, when the plunger 12 has not been depressed or has only been depressed by less than 50% of distance H, the circuitry 17 associated with the input key 10 will output a first binary value (e.g., a digital low or "0") when in digital mode. In this embodiment, once the plunger 12 has been depressed by at least 50% of distance H (i.e., between 50-100%), the circuitry 17 associated with the input key 10 will output a second binary value (e.g., a digital high or "1") when in digital mode. It is contemplated that in other embodiments utilizing other types of sensors, the value of the digital input data may represent other positions of the plunger 12.
[0065] In some embodiments, a user may be able to toggle the functionality of the input key 10 between analog mode and digital mode (e.g., by pressing another key or combination of keys on the keyboard containing the input key 10). However, toggling the functionality of the input key 10 in this manner is not always convenient or intuitive for the user. For example, it may be inconvenient for a user to switch between analog mode and digital mode while playing a keyboard-controlled electronic computer game because the user's hands are typically required to remain on a specific combination of keys on the keyboard throughout the game. Specifically, in many such electronic computer games, quick-time events within the game require the user to keep four fingers of his or her left hand on the W, S, A, and D keys for the majority of the game.
[0066] Accordingly, the input key 10 is also capable of operating in a combined analog / digital mode, wherein the circuitry 17 associated with the input key 10 simultaneously provides both of the outputs described above (i.e., analog input data and digital input data) to the software or firmware associated with the input key comprising the input key 10. Presenting both analog input data and digital input data in this manner may be problematic for certain software controls, at least at a threshold distance 34 for the digital input data, such as Figure 2 It is shown that maintaining the 50% level is problematic.
[0067] To address this issue, in some embodiments, the threshold distance 34 for activating a numeric key press can be adjusted to a value higher or lower than 50%. Figure 3As shown, the threshold distance 34 for numeric input data of the input key 10 can be set to 80%. It should be understood that in other embodiments, the threshold distance 34 can be set to other values, such as any other value between 50-100%. It is also contemplated that the threshold distance 34 can be set to a value between 0-50%. In some embodiments, the threshold distance 34 can be user-configurable so that it can be adjusted to any selected displacement of the plunger 12, thereby allowing the user to reconfigure the input key 10 for different applications. For example, external software or a separate key on the keyboard can be used to manually set the threshold distance 34 of the plunger 12.
[0068] In an embodiment using 80% of the distance H as the threshold distance 34, when the plunger 12 has not been depressed or has only been depressed less than 80% of the distance H, the circuit 17 associated with the input key 10 will output a "0" as the digital input data. In this embodiment, once the plunger 12 has been depressed at least 80% (i.e., between 80-100%) of the distance H, the circuit 17 will output a "1" as the digital input data. This allows a larger portion of the distance H to be used for analog control while still maintaining the digital functionality of the input key 10.
[0069] exist Figure 4 In another embodiment shown in FIG, the analog signal of the input key 10 can be scaled to the portion of the distance H above the threshold distance 34 for digital activation. This embodiment has the advantage of allowing the user to exercise full analog control from 0-100% (at the expense of not using the full distance H of the keystroke for the analog control). As described above, the threshold distance 34 for digital activation can be set to any value between 51-100%, and in Figure 4 In the illustrated embodiment, the threshold distance 34 is illustratively set to 80%. Threshold distance 34 can also be set to a value between 0-50%. In the illustrated embodiment, the initial 80% of plunger 12 movement through distance H is associated with an analog output within the range of 0-100%, while depression of the plunger to any position within the final 20% of distance H activates the digital output. In such an embodiment, the minimum value of the analog input data indicates that plunger 12 is in the starting position and has not yet been depressed by the user. Similarly, as shown in this embodiment, the maximum value of the analog input data indicates that plunger 12 has reached 80% of threshold distance 34. It is contemplated that in other embodiments utilizing other types of sensors, the values of the analog input data may represent other positions of plunger 12.
[0070] Table 1 below contains one illustrative embodiment of code for calculating analog output from analog sensor signals, where the range of the analog output is scaled to cover only a portion of the distance H (from no shift to a threshold distance 34 (the *magic point* in Table 1)).
[0071]
[0072] Table 2 below contains one illustrative embodiment of code for controlling a digital output to register a keystroke (“1”) when the analog sensor signal indicates that the plunger 12 has reached (or exceeded) the threshold distance 34, and to return to “0” once the analog sensor signal indicates that the plunger 12 is above the threshold distance 34.
[0073]
[0074] See now Figure 5 and 6 , one illustrative embodiment of the input device 100 is shown as a game controller or gamepad 100. While the present disclosure generally describes applications related to electronic games (e.g., computer games), it should be understood that one or more features of the input device 100 may be advantageously incorporated into input keys for many applications in the fields of consumer products, industrial, medical, and other electronics. It is contemplated that input keys similar to those described herein may be used to translate user intent into a form translatable by any type of computing device, including, but not limited to, personal computers, entertainment systems, industrial computing systems, shorthand devices, medical computing systems, and other computing devices. By way of example, when input keys according to the present disclosure are used in medical applications (specifically, radiography), the force applied by a user to a force-sensitive input key may control how quickly a computed tomography system changes between displayed slices.
[0075] like Figure 5 , the game board 100 includes a number of force-sensitive input keys 110 and a number of binary input keys 160. Specifically, the illustrative embodiment of the game board 100 includes six force-sensitive input keys 110 arranged near the center of the game board 100, and sixteen binary input keys 160 ( Figure 2 Not all binary input keys 160 are labeled in the figure. It is contemplated that in other embodiments, the game pad 100 may include any number of force-sensitive input keys 110 and any number of binary input keys 160 (including no binary input keys 160). As described below, an arrangement of at least four force-sensitive input keys 110 may be advantageous for certain applications. Such applications may include electronic computer games in which the corresponding W, S, A, and D keys on a conventional computer keyboard are configured as force-sensitive input keys 110.
[0076] The game board 100 also includes a cover 150 to protect the internal electronic components of the game board 100. Figure 5 1 is shown with the cover 150 removed to expose several internal components of the game board 100. It is contemplated that in other embodiments, the game board 100 may contain components other than Figure 5 and 6Components other than or different from those shown in FIG.
[0077] Each of the force-sensitive input keys 110 of the game board 100 has the same characteristics as described above (see Figure 1-4 ) is similar in configuration and operation to the force sensitive input key 10 described in Figure 5 and 6 In the illustrative embodiment shown in FIG, the force-sensitive input keys 110 (and the binary input keys 160) of the gaming pad 100 are each embodied in the form factor of a standard key switch. Specifically, the button 112 of each force-sensitive input key 110 has a two-part construction, including a keycap 134 configured to be pressed by a user and a plunger 136 that engages a spring 114 within a housing 118. The housing 118, plunger 136, and spring 114 of each force-sensitive input key 110 are illustratively embodied as MX series desktop-configuration 0.60-inch key switches (with linear actuation), available from Cherry, Inc. of Pleasant Prairie, Wisconsin. The button 162 of each binary input key 160 has a similar two-part construction, including a keycap 184 and a plunger 186 that engages a spring 164 within a housing 168. The housing 168, plunger 186, and spring 164 of each binary input key 160 are illustratively embodied as MX series desktop configuration 0.60 inch key switches (with pressure point click), also available from Cherry. The housing 118 of each force sensitive input key 110 and the housing 168 of each binary input key 160 are secured to the PCB 120.
[0078] Figure 6 In FIG, most of the keycaps 134, 184 have been removed to expose the housings 118, 168 and plungers 136, 186 of the input keys 110, 160. One keycap 134 and one keycap 184 are shown in FIG. Figure 6 184 is shown in a partially exploded view to indicate its relationship to plunger 136 and plunger 186, respectively. When keycap 134 is coupled to plunger 136, plunger 136 supports keycap 134. When assembled, keycap 134 and plunger 136 move together along axis 124 as button 112 of force-sensitive input key 110. Similarly, when keycap 184 is coupled to plunger 186, plunger 186 supports keycap 184. When assembled, keycap 184 and plunger 186 move together along axis 174 as button 162 of binary input key 160.
[0079] like Figure 6 As shown in FIG, for each of the force-sensitive input keys 110, the analog sensor 116 is positioned outside the housing 118 (rather than inside the housing, such as Figure 1). Specifically, the analog sensor 116 of each of the force-sensitive input keys 110 is soldered to the PCB 120 in a location adjacent to the housing 118. In at least some embodiments, specifically embodiments in which the analog sensor 116 comprises a reflective sensor, the keycap 134 of each of the force-sensitive input keys 110 comprises a reflective surface 128. Figure 6 As shown, reflective surface 128 extends outward from keycap 134 above analog sensor 116. In the illustrative embodiment, reflective surface 128 is integrally formed with keycap 134 (i.e., reflective surface 128 is a surface of keycap 134). In other embodiments, reflective surface 128 may be coupled to keycap 134 after keycap 134 has been formed. As button 112 (including keycap 134) moves along axis 124, reflective surface 128 will move along an axis generally parallel to axis 124. In the illustrative embodiment, reflective surface 128 is generally perpendicular to axis 124 (and its axis of travel).
[0080] Similar to the force-sensitive input keys 10 described above, each of the force-sensitive input keys 110 of the gaming pad 100 is configured to output an analog signal that is a function of the force applied to the input key 110 or the distance traveled by the input key 110. For example, in an embodiment that includes a reflective sensor, the analog sensor 116 of each force-sensitive input key 110 will generate an analog signal in response to the measured amount of reflected light. As described above, because the displacement of the button 112 (including the keycap 134 and its reflective surface 128) is proportional to the force applied to the keycap 134, and the amount of light reflected from the reflective surface 128 is monotonically related to the displacement of the button 112, the amount of light reflected from the reflective surface 128 is also monotonically related to the force applied to the keycap 134. Thus, by measuring the amount of light reflected from the reflective surface 128, the analog sensor 116 can also indirectly measure the force applied by the user.
[0081] The analog signals output by each of the force-sensitive input keys 110 of the gaming pad 100 are transmitted to a circuit 152, which is configured to generate both analog input data and digital input data representing the distance traveled by each button 112 of the input keys 110. The circuit 152 is also configured to determine the force applied to each of the force-sensitive input keys 110 based on the corresponding analog signals. In the illustrative embodiment, the circuit 152 of the gaming pad 100 is soldered to the PCB 120. In other embodiments, the circuit 152 may be external to the gaming pad 100. The circuit 152 is illustratively embodied as an ATmega16U4 8-bit AVR microcontroller with 16K bytes of ISP Flash and a USB controller, available from Atmel Corporation of San Jose, California.
[0082] In some embodiments, the circuit 152 may include an analog-to-digital converter (ADC) configured to convert analog signals received from the force-sensitive input keys 110 into digital signals. In other words, the ADC of the circuit 152 is configured to output a digital signal based on each analog signal received from the force-sensitive input key 110. It is contemplated that in other embodiments, the ADC may be separate from the circuit 152 (i.e., a separate component soldered to the PCB 120). In the illustrative embodiment, the gaming board 100 also includes one or more low-pass filters soldered to the back side of the PCB 120 (not shown). The one or more low-pass filters are positioned between the force-sensitive input keys 110 and the ADC of the circuit 152 and are configured to reduce noise in one or more of the analog signals from the force-sensitive input keys 110 before the analog signals are received by the ADC.
[0083] Once the analog signals from the force-sensitive input keys 110 have been converted to digital signals, the circuitry 152 of the gaming board 100 can determine the force applied to each of the force-sensitive input keys 110 and / or the distance traveled by the button 112, and subsequently generate analog input data and digital input data. As described above, the magnitude of each analog signal represents the amount of light measured by each force-sensitive input key 110, which is monotonically related to the force applied to and / or the distance traveled by the keycap 134 of that input key 110. Thus, the circuitry 152 can use the received analog signals (converted to digital signals) to calculate the force applied to and / or the distance traveled by one of the force-sensitive input keys 110. The circuitry 152 can perform this calculation of the applied force using a mathematical function, a lookup table, or any other suitable calculation process. The circuitry 152 can then perform appropriate calibration, mapping, and / or scaling of the determined force and / or distance into a format suitable for presentation to a driver of a computing device connected to the gaming board 100.
[0084] In an illustrative embodiment, circuitry 152 is configured to output movement data including both direction and magnitude in response to analog signals received from four of the force-sensitive input keys 110 of gaming board 100. Specifically, two of the force-sensitive input keys 110 can be used to register a user's intent for movement along the x-axis (one input key 110 indicates a positive movement along the x-axis, and one input key 110 indicates a negative movement along the x-axis). Similarly, two of the force-sensitive input keys 110 can be used to register a user's intent for movement along the y-axis (one input key 110 indicates a positive movement along the y-axis, and one input key 110 indicates a negative movement along the y-axis). Using the analog signals output by these four force-sensitive input keys 110, circuitry 152 can generate movement data including both x-axis and y-axis components. When any of the four force-sensitive input keys 110 is pressed by a user, circuitry 152 can calculate a vector in the corresponding direction, where the magnitude of the vector is proportional to the force applied by the user to the input key 110. In the event that multiple (e.g., two) force-sensitive input keys 110 are pressed simultaneously, circuitry 152 may sum the calculated vectors to determine the overall direction and magnitude of the user's desired movement. In electronic gaming applications (e.g., computer games), this movement data may be used to accurately and precisely control the movement and / or actions of a character in the game.
[0085] In some embodiments, circuitry 152 may format the determined movement data, analog input data, and / or digital input data for presentation to a driver of a computing device connected to gamepad 100. For example, the movement data may be formatted according to a Universal Serial Bus (USB) protocol (e.g., by a USB controller included in circuitry 152), with gamepad 100 coupled to the computing device via a USB cable. In other embodiments, circuitry 152 may format the movement data, analog input data, and / or digital input data according to a direct input protocol, an X-input protocol, or any other protocol expected by a driver of a particular computing device. In some embodiments, the formatting performed by circuitry 152 may be user-adjustable. For example, a user may configure how different forces applied to one of the force-sensitive input keys 110 of gamepad 100 are mapped to a 256-value scale. This configurability may allow more users (e.g., of varying abilities) to effectively use gamepad 100. In some embodiments, the user may also be able to set a threshold distance similar to threshold distance 34 described above.
[0086] While the above-described embodiments include circuit 152 and circuit 17 as components of the gamepad 100 and input device 10, respectively, it is contemplated that other suitable methods may be used that receive analog signals and subsequently generate both analog input data and digital input data regarding the displacement of the plungers 12, 134. For example, a software development kit (SDK), application programming interface (API), etc. may be used to generate both analog input data and digital input data in response to the analog signals. In one such embodiment, circuit 17 of the force-sensitive input device 10 may communicate the current state of the force-sensitive input device 10, specifically the position of the plunger 12, via a protocol, interface, or port. This information is then fed to a software application, which reads the analog state of each force-sensitive input device 10 to be manipulated by the software application, or is passed to another application, where the analog state is programmed to execute a function within the software application.
[0087] In at least some embodiments, a COM port can be opened between the force-sensitive input device hardware and the operating system. The analog state of each input device 10 will be continuously sent through this COM port, with each input device 10 being capable of a range of values. Depending on the desired scale and accuracy, the output can be in the range of 0-255 or 0-4096, or the output can be in the range of 0.000-1.000 and all decimal points in between. For example, when the plunger 12 is not pressed, the associated value will be 0 or 0.000, and when the plunger 12 is pressed all the way down, the associated value may be 255, 4096, or 1.000. Pressing the plunger 12 halfway down will produce an associated value of 128, 2048, or 0.500.
[0088] Next, a software application (SDK / API) would be programmed to continuously read the output data and track the state of all keys 10, 110, 160 of the device 10, 100, and establish a standardized format for the data so that it can be presented to other software applications. For example, it might read the value "0.250" for the "A" key on a standard keyboard and the value "0.125" for the "S" key on a standard keyboard. These values would then be stored in the SDK / API as variables such as "analog_s=0.125" and "analog_a=0.250." The software application could then pass this formatted data to other applications as ("analog_s=0.125"), or it could perform internal calculations on the values and manipulate the data using a throttling or peaking routine, assigning a specific value to the formatted data ("analog_s_throttle_rate=2" or "analog_s_peak=0.125"). Such throttling and peaking routines will be described in detail below.
[0089] These software applications will then be programmed to interact with this SDK / API and read in these standardized analog values. In at least one embodiment, if the program has a slider, it can be manipulated based on the state of the analog key. In such an embodiment, if the program reads in "analog_s=0.125", the software application will immediately set the slider to 12.5% upward. Alternatively, the software can read in "analog_s_throttle_rate=2" and instead increase the slider value by 2% every other time. As another alternative, the software can take the "analog_s" value and perform its own internal calculations and increase the current value of the slider at the rate of the "analog_s" value. In this scenario, if the slider is currently at 10% and it receives a value of "analog_s=0.125", it can increase the slider value by 2% every other time (10% to 12% to 14%, etc.). However, if it receives a value of "analog_s=0.250", it may increase the slider value by 4% every other time (10% to 14% to 18%, etc.). Similar functionality can be programmed at the SDK / API level or in specific software applications.
[0090] See now Figure 7 , shows in cross-section another illustrative embodiment of a force-sensitive input key 110 that may be used in a game pad 100 (or other input device 100 ). Figure 7 The illustrative embodiment of the force sensitive input key 110 shown in FIG is similar in configuration and operation to the Figure 5 and 6 The force sensitive input key 110 shown in FIG. Figure 1 The force sensitive input key 10) analog sensor 116 is disposed in a chamber 132 defined within the housing 118. Figure 7 As shown, the button 112 of the force-sensitive input key 110 has a two-part construction comprising a keycap 134 (having a surface 122 configured to be pressed by a user) and a plunger 136 that engages the spring 114 within the housing 118. The plunger 136 is movable along the axis 124 when force is applied to the keycap 134 by the user. Figure 7 When the surface 122 of the keycap 134 is pressed by the user, both the keycap 134 and the plunger 136 can move along the axis 124 ( Figure 7 Move the knob 112 downwards until the knob 112 reaches the bottom position.
[0091] exist Figure 7In the illustrative embodiment, the plunger 136 includes a plunger arm 138 that extends into the chamber 132 defined in the housing 118. The reflective surface 128 of the button 112 is included on the plunger arm 138 and faces the analog sensor 116. In some embodiments where the analog sensor 116 includes a reflective sensor, the reflective surface 128 is integrally formed with the plunger 136 (i.e., the reflective surface 128 is a surface of the plunger 136). In other embodiments, the plunger arm 138 and / or the reflective surface 128 may be coupled to the plunger 136 after the plunger 136 has been formed. As the button 112 (including the plunger 136) moves along the axis 124, the reflective surface 128 moves along the axis 130 that is generally parallel to the axis 124. In the illustrative embodiment, the reflective surface 128 is generally perpendicular to the axis 130 (and the axis 124). In the illustrative embodiment, the housing 118 may be formed of an opaque material so that light cannot escape and / or enter the chamber 132.
[0092] In some embodiments, the input device can output a value representing the "real-time" position of the keycap 134 and plunger 12. For example, if the user presses the input device 10 halfway down, the output value may be "50." However, when the user releases the input device 10, it returns to its original position, and the output value immediately becomes "0." This behavior can be problematic for certain applications (e.g., when setting the volume level on a computer) because it would require the user to hold the simulated input key indefinitely in a particular partially depressed position to achieve the desired value.
[0093] According to the present disclosure, the force-sensitive input device 10, 100 can be configured to control the increase or decrease of a control value based on how far the analog input device 10, 100 is pressed downward. For example, if the user presses and holds the plunger 12, 134 downward by 10% of its maximum displacement, the control value will steadily increase at a specific rate, such as 0 to 10 to 20 to 30, etc. If the user then releases the plunger 12, 134, the control value will remain constant (until further user input). If the user desires to decrease the control value, a second force-sensitive input device (i.e., another one of the buttons 112) can be used in a similar manner to control the decrease. For example, if the user presses and holds the second force-sensitive input device downward by 10% of its maximum displacement, the control value will steadily decrease at a specific rate, such as 30 to 20 to 10 to 0. If the user wants to increase or decrease the control value more quickly, he or she can press down further on the appropriate force-sensitive input device to increase or decrease the control value at a higher rate (e.g., 0 to 30 to 60 to 90, etc.).
[0094] In another embodiment, a force-sensitive input device 10 can be used to set and maintain a specific level of a control value by monitoring the "peak" value during a press of the input device 10. In this control method, the circuitry 17 associated with the input device 10 will increase the control value proportionally to the amount the input device 10 is pressed down by the user, but will maintain, rather than decrease, the value as the input device 10 returns to its resting position. After the force-sensitive input device 10 has been fully released, the user subsequently pressing down on the input device 10 and displacing the input device 10 from its resting position can reset the control value to "0" (and can then begin increasing the control value proportionally to the amount the input device 10 was pressed down by the user). This functionality is useful in situations involving "throttling," such as electronic computer games, such as flight simulators and car driving simulators.
[0095] See now Figure 8 An illustrative embodiment of a force sensitive input method 200 is shown as a simplified flow chart. The method 200 may be used with Figure 1-4 The force-sensitive input device 10, and Figure 5-7 The method 200 may be used with a force-sensitive input key 110 and / or with any other suitable force-sensitive input device. The method 200 begins at block 202, where a plunger 12, which is movable along an axis 24 between two end positions, is displaced toward one of the two end positions against the force of a resilient assembly 14. As described above, the plunger 12 may be biased toward one of the two end positions using a spring 14. When the spring 14 allows the plunger 12 to be displaced along the axis 24 (as described below), the spring 14 continues to bias the plunger 12 toward one of the two end positions. In some embodiments, block 202 may involve a user applying a force to the plunger 12 to cause the plunger 12 to move along the axis 24.
[0096] Method 200 continues with block 204, which occurs during block 202. Block 204 may involve outputting an analog signal as a function of the displacement of plunger 12 from the first end position along first axis 24. In at least some embodiments, the outputting may be performed by analog sensor 16. In this embodiment, reflective surface 28 of plunger 12 may be illuminated with light traveling generally parallel to axis 24. In embodiments where analog sensor 16 is a reflective sensor, block 204 may include illuminating reflective surface 28 of plunger 12 by emitting light from an LED of sensor 16 facing reflective surface 28. Specifically, block 202 may involve emitting infrared light from the LED of sensor 16. It is contemplated that in other embodiments, other types of light sources and / or other types of light may be used to illuminate reflective surface 28 of plunger 12. Block 204 may be performed continuously or intermittently throughout method 200. Furthermore, it is contemplated that other types of sensors involving other suitable methods of outputting an analog signal as a function of the displacement of plunger 12 may be used as analog sensor 16.
[0097] During block 204, the amount of light reflected from the reflective surface 28 and traveling generally parallel to the axis 24 may be measured by the sensor 16. In some embodiments, block 204 may involve receiving and measuring the reflected light using a phototransistor of the sensor 16. The phototransistor of the sensor 16 may output an analog signal as a function of the amount of light reflected from the reflective surface 28. As described above, the amount of light reflected from the reflective surface 28 (and, therefore, the magnitude of the resulting analog signal) may be monotonically related to the force applied to the plunger 12 and the distance traveled by the plunger 12.
[0098] After block 204, method 200 proceeds to block 206, which may involve generating both analog input data and digital input data in response to the analog signal. The analog input data may include a range of values monotonically related to the displacement of plunger 12. The digital input data may include a first and a second binary value. In some embodiments, block 206 may involve circuit 152 receiving the analog signal output by the phototransistor in block 204, and using this analog signal to calculate the force applied to plunger 12 and the distance traveled by plunger 12, as described above. In such embodiments, block 206 may involve converting the analog signal output by the phototransistor into a digital signal using an ADC of circuit 152. In some embodiments, block 206 may also involve using a low-pass filter to reduce noise in the analog signal before the analog signal is converted by the ADC.
[0099] Following block 206 , the method 200 may continue to block 208 , which may involve configuring the force-sensitive input device 10 , 100 to output one of: (i) both analog input data and digital input data, (ii) only analog input data, or (iii) only digital input data.
[0100] In method 200, the first binary value may indicate that the displacement of plunger 12 is less than a threshold displacement, corresponding to a threshold position 34 positioned between the first and second end positions. The second binary value may indicate that the displacement of plunger 12 is equal to or greater than the threshold displacement. In some embodiments, the minimum value of the analog input data may indicate that plunger 12 is in the first end position, and the maximum value of the analog input data may indicate that plunger 12 is in the second end position. In at least one embodiment, the minimum value of the analog input data may indicate that plunger 12 is in the first end position, and the maximum value of the analog input data may indicate that plunger 12 is in the threshold position 34. Threshold position 34 may be closer to the second end position than the first end position. After block 208, method 200 may further include block 210, which may involve adjusting threshold displacement 34 based on user settings.
[0101] In some embodiments, the behavior of each input device 10 will differ from that of other input devices 10 due to manufacturing tolerances of the various components of the input device 10, degradation over time of the analog sensor used to measure the displacement of the plunger 12, or even due to environmental factors. Specifically, the minimum and maximum values of the analog sensor signal representing the displacement of the plunger 12 will vary between input devices 10 and may fluctuate over time. As such, it is advantageous to periodically automatically calibrate each input device 10 and store the calibration information in the memory of the device (e.g., a keyboard) that includes the input device 10.
[0102] Figure 9 Three different calibration curves are shown for force-sensitive input device 10. While original calibration curve 40 may accurately represent the behavior of input device 10 during an initial time period, the behavior of input device 10 may change over time. In some cases, represented by calibration curve 42, the analog sensor signal may register a higher value at a particular displacement of plunger 12 than suggested by original calibration curve 40. In other cases, represented by calibration curve 44, the analog sensor signal may register a lower value at a particular displacement of plunger 12 than suggested by original calibration curve 40.
[0103] like Figure 9 As can be observed in Figure 4, this variation in the simulated sensor signal over time leads to at least four possible scenarios that can be problematic for users of force-sensitive input device 10. In a first scenario of an exemplary embodiment, the sensor signal value at the top of a key press may be higher than the calibrated value (left side of curve 42), requiring the user to press input device 10 further to obtain the desired response. In a second scenario, the sensor signal value at the top of a key press may be lower than the calibrated value (left side of curve 44), which may cause input device 10 to indicate activation without the user pressing input device 10. In a third scenario, the sensor signal value at the bottom of a key press may be higher than the calibrated value (right side of curve 42), preventing the user from utilizing the full range of input device 10. In a fourth scenario, the sensor signal value at the bottom of a key press may be lower than the calibrated value (right side of curve 44), causing the user to reach the bottom of the input device 10 press early and lose sensitivity.
[0104] Periodically performing automatic calibration of each input device 10 and storing the calibration information in the memory of the device containing the input device 10 (e.g., a keyboard) can help prevent these situations. In some embodiments, periodic calibration can be performed by circuitry 17 associated with the force-sensitive input device 10. Circuitry 17 is configured to generate input data in response to an analog signal using, for example, the stored calibration curves 40, 42, 44 discussed above. In such embodiments, the value of the analog signal is associated with the position of the button along the first axis. As will be described below, circuitry 17 can be further configured to perform an automatic calibration procedure that includes updating the stored calibration data with at least one sampled value of the analog signal.
[0105] It is contemplated that other circuits, software, applications, etc. may perform automatic calibration and generation of input data based on analog signals. For example, circuitry internal to or external to the force-sensitive input device 10 (e.g., circuitry 152 discussed above) may be used to perform the functions described herein. Furthermore, it is contemplated that operating system drivers, software development kits (SDKs), application programming interfaces (APIs), etc. may be used to perform the functions described herein.
[0106] Advantageously, the auto-calibration routine can utilize knowledge of whether a particular input device 10 is being pressed based on the state of the mechanical switches in the input device 10. For example, the MX series desktop configuration 0.60 inch key switches used in the illustrative embodiment will activate approximately halfway via a keystroke (see Figure 2 ). This mechanical information indicates whether the input device 10 is depressed between 0-2 mm or between 2-4 mm, and can be used in an automatic calibration procedure, as described below.
[0107] To address the first scenario described above, if the value of the analog sensor signal is detected to be greater than the maximum value of the current calibration curve, the detected value can be set to the new maximum possible value of the signal. In some embodiments, when the sampled value of the analog signal is greater than the stored value associated with the second end position in the stored calibration data, circuit 17 can update the stored calibration data by replacing the stored value associated with the second end position (i.e., calibration curve 40) with the sampled value (i.e., curve 42). Table 3 below contains an illustrative embodiment of code for implementing this functionality.
[0108]
[0109] To address the second scenario described above, the value of the analog sensor signal can be repeatedly sampled during a calibration time period when the analog sensor signal is expected to be at the higher end of its range. The highest value of the analog sensor signal detected during this calibration time period can then be set as the new maximum possible value of the signal via circuitry 17 or any suitable means. The calibration time period during which the analog sensor signal is expected to be at the higher end of its range will correspond to either: (i) the corresponding button is pressed and the associated mechanical switch is activated, or (ii) the button is not pressed and the associated mechanical switch is not activated, depending on the type and configuration of the analog sensor (i.e., the analog sensor signal may take either its maximum or minimum value when the button is at rest, and the opposite value when the button is fully pressed). Thus, in some embodiments, the calibration time period during which the analog sensor signal is expected to be at the higher end of its range may correspond to a time period during which the mechanical switch associated with the button corresponding to the analog sensor is activated; in other embodiments, this calibration time period may correspond to a time period during which the associated mechanical switch is not activated. Table 4 below contains one illustrative embodiment of code for implementing the functionality just described.
[0110]
[0111] To address the third scenario described above, the value of the analog sensor signal can be repeatedly sampled during a calibration time period when the analog sensor signal is expected to be at the lower end of its range. The lowest value of the analog sensor signal detected during this calibration time period can then be set as the new minimum possible value of the signal via circuitry 17 or any suitable means. As discussed above, the calibration time period during which the analog sensor signal is expected to be at the lower end of its range will correspond to either: (i) the corresponding button is pressed and the associated mechanical switch is activated, or (ii) the button is not pressed and the associated mechanical switch is not activated, depending on the type and configuration of the analog sensor (i.e., the analog sensor signal may take on either its maximum or minimum value when the button is at rest, and the opposite value when the button is fully pressed). Thus, in some embodiments, the calibration time period during which the analog sensor signal is expected to be at the lower end of its range may correspond to a time period during which the mechanical switch associated with the button corresponding to the analog sensor is activated; in other embodiments, this calibration time period may correspond to a time period during which the associated mechanical switch is not activated. Table 5 below contains one illustrative embodiment of code for implementing the functionality just described.
[0112]
[0113] To address the fourth scenario described above, if the value of the analog sensor signal is detected to be less than the minimum value of the current calibration curve, the detected value can be set to the new minimum possible value of the signal. In some embodiments, when the sampled value of the analog signal is less than the stored value associated with the first end position in the stored calibration data, circuit 17 can update the stored calibration data by replacing the stored value associated with the first end position (i.e., calibration curve 40) with the sampled value (i.e., curve 44). Table 6 below contains an illustrative embodiment of code for implementing this functionality.
[0114]
[0115] See now Figure 10 An illustrative embodiment of a force sensitive input method 300 is shown as a simplified flow chart. The method 300 may involve calibration Figure 1-4 force-sensitive input device 10, Figure 5-7 The method 300 begins at block 302, where a plunger 12, which is movable along an axis 24 between two end positions, is displaced toward one of the two end positions against the force of a resilient assembly 14. As described above, the plunger 12 may be biased toward one of the two end positions using a spring 14. When the spring 14 allows the plunger 12 to be displaced along the axis 24 (as described below), the spring 14 continues to bias the plunger 12 toward one of the two end positions. In some embodiments, block 302 may involve a user applying a force to the plunger 12 to cause the plunger 12 to move along the axis 24.
[0116] The method 300 continues with block 304, which occurs during block 302. Block 304 may involve outputting an analog signal as a function of the displacement of the plunger 12 along the first axis 24 from the first end position. In at least some embodiments, the outputting may be performed by the analog sensor 16, as described above. It is contemplated that in at least one embodiment, a reflective sensor, as discussed above, may be used as the analog sensor 16. However, other types of sensors involving other suitable methods of outputting an analog signal as a function of the displacement of the plunger 12 may be used as the analog sensor 16.
[0117] After block 304, method 300 continues to block 306, which may involve generating input data in response to sampled values of the analog signal using stored calibration data that associates the value of the analog signal with the position of the plunger 12 along the first axis. In at least some embodiments, as discussed above, the stored calibration data may include three different calibration curves for the force-sensitive input device 10. Although the original calibration curve 40 may accurately represent the behavior of the input device 10 during an initial time period, the behavior of the input device 10 may change over time. In some cases, represented by calibration curve 42, the analog sensor signal may register a higher value at a particular displacement of the plunger 12 than the value suggested by the original calibration curve 40. In other cases, represented by calibration curve 44, the analog sensor signal may register a lower value at a particular displacement of the plunger 12 than the value suggested by the original calibration curve 40.
[0118] Following block 306 , the method 300 may continue to block 308 , which may involve automatically calibrating the force-sensitive input device 10 , including updating stored calibration data with at least one sampled value of the analog signal.
[0119] In at least some embodiments, when the sampled value of the analog signal is greater than a stored value associated with the second end position in the stored calibration data, the automatic calibration may further include updating the stored calibration data by replacing the stored value associated with the second end position with the sampled value. In some embodiments, when the sampled value of the analog signal is less than a stored value associated with the first end position in the stored calibration data, the automatic calibration may further include updating the stored calibration data by replacing the stored value associated with the first end position with the sampled value. In at least some embodiments, the automatic calibration may further include repeatedly sampling the analog signal during a calibration time period during which the mechanical switch of the button is activated, and updating the stored calibration data by replacing the stored value associated with the second end position in the stored calibration data with the highest value of the analog signal sampled during the calibration time period. In some embodiments, the automatic calibration may further include repeatedly sampling the analog signal during a calibration time period during which the mechanical switch of the button is not activated, and updating the stored calibration data by replacing the stored value associated with the first end position in the stored calibration data with the lowest value of the analog signal sampled during the calibration time period.
[0120] Although the present disclosure has been described in detail in the drawings and the foregoing description, such description and illustration should be considered as exemplary and not restrictive in nature, and it should be understood that only illustrative embodiments have been shown and described and that all changes and modifications within the spirit of the present disclosure are desired to be protected. There are multiple advantages of the present disclosure resulting from the various features of the apparatus, systems, and methods described herein. It should be noted that alternative embodiments of the apparatus, systems, and methods of the present disclosure may not include all of the described features, but still benefit from at least some of the advantages of such features. One of ordinary skill in the art can readily design and have one or more of the features of the present invention and their own implementations of the apparatus, systems, and methods that fall within the spirit and scope of the present disclosure as defined by the appended claims.
Claims
1. A force-sensitive input device, comprising: a button movable along a first axis between first and second end positions and biased toward the first end position; an analog sensor configured to output an analog signal as a function of displacement of the button along the first axis from the first end position, wherein a minimum value of the analog signal indicates that the button is in the first end position and that the first end position corresponds to the bottom of the key, and wherein a maximum value of the analog signal indicates that the button is in the second end position and that the second end position corresponds to the top of the key; as well as circuitry configured to generate input data in response to the analog signal using stored calibration data correlating a value of the analog signal with a position of the button along the first axis, wherein the circuitry is further configured to perform an automatic calibration routine comprising updating the stored calibration data with at least one sampled value of the analog signal, wherein the automatic calibration routine comprises: repeatedly sampling the analog signal during a first calibration time period; and When the sensor signal value at the second end position is lower than the calibration value: updating the stored calibration data by replacing the stored value associated with the second end position in the stored calibration data with the highest value of the analog signal sampled during the first calibration time period, and / or repeatedly sampling the analog signal during a second calibration time period; and When the sensor signal value at the first end position is higher than the calibration value: The stored calibration data are updated by replacing a stored value associated with the first end position in the stored calibration data with a lowest value of the analog signal sampled during the second calibration time period.
2. A force-sensitive input device according to claim 1, wherein the automatic calibration procedure includes updating the stored calibration data by replacing the stored value associated with the second end position with the sampled value when the sampled value of the analog signal is greater than the stored value associated with the second end position in the stored calibration data.
3. A force-sensitive input device according to claim 2, wherein the automatic calibration procedure includes updating the stored calibration data by replacing the stored value associated with the first end position with the sampled value when the sampled value of the analog signal is less than the stored value associated with the first end position in the stored calibration data.
4. The force-sensitive input device of claim 1 , wherein the first calibration time period is a time period during which the mechanical switch of the button is not activated, and wherein the second calibration time period is a time period during which the mechanical switch of the button is activated.
5. The force-sensitive input device of claim 1 , wherein the first calibration time period is a time period during which the mechanical switch of the button is activated, and wherein the second calibration time period is a time period during which the mechanical switch of the button is not activated.
6. A method of using a force-sensitive input device, the force-sensitive input device comprising a button movable along a first axis between first and second end positions and biased toward the first end position, the method comprising: outputting, using an analog sensor, an analog signal as a function of displacement of the button along the first axis from the first end position, wherein a minimum value of the analog signal indicates that the button is in the first end position and that the first end position corresponds to the bottom of the key, and wherein a maximum value of the analog signal indicates that the button is in the second end position and that the second end position corresponds to the top of the key; generating input data in response to sampled values of the analog signal using stored calibration data correlating values of the analog signal with positions of the button along the first axis; as well as automatically calibrating the force-sensitive input device, wherein the automatic calibration comprises updating the stored calibration data with at least one sampled value of the analog signal, Automatic calibration includes: repeatedly sampling the analog signal during a first calibration time period; and When the sensor signal value at the second end position is lower than the calibration value: updating the stored calibration data by replacing the stored value associated with the second end position in the stored calibration data with the highest value of the analog signal sampled during the first calibration time period, and / or repeatedly sampling the analog signal during a second calibration time period; and When the sensor signal value at the first end position is higher than the calibration value: The stored calibration data are updated by replacing a stored value associated with the first end position in the stored calibration data with a lowest value of the analog signal sampled during the second calibration time period.
7. A method according to claim 6, wherein the automatic calibration includes, when the sampled value of the analog signal is greater than the stored value associated with the second end position in the stored calibration data, updating the stored calibration data by replacing the stored value associated with the second end position with the sampled value.
8. A method according to claim 7, wherein the automatic calibration includes, when the sampled value of the analog signal is less than the stored value associated with the first end position in the stored calibration data, updating the stored calibration data by replacing the stored value associated with the first end position with the sampled value.
9. The method of claim 6, wherein the first calibration time period is a time period during which the mechanical switch of the button is not activated, and wherein the second calibration time period is a time period during which the mechanical switch of the button is activated.
10. The method of claim 6, wherein the first calibration time period is a time period during which a mechanical switch of the button is activated, and wherein the second calibration time period is a time period during which the mechanical switch of the button is not activated.
Citation Information
Patent Citations
Force sensitive input devices and methods
US8717202B1
Force sensitive input devices and methods
US8922399B2
Force sensitive input devices and methods
CN105074627A
Clutch pedal positon sensor continuous calibration
US5161405A