Analog input device, computing system and method for receiving and processing analog input

Through analog input devices and computing systems processing analog signals, the problem that existing input devices cannot achieve fine control is solved, and more accurate user input operations and application control is achieved.

CN120435701APending Publication Date: 2025-08-05RAZER ASIA PACIFIC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380089434.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-02-14
Publication Date
2025-08-05

AI Technical Summary

Technical Problem

Existing input devices such as game controllers, game keyboards and keyboards only output binary signals, limiting precise control of functions and user intentions, making it difficult to achieve more refined input operations.

Method used

An analog input device is adopted, including an analog button assembly matrix, each button assembly contains an analog pressure sensor, and uses an optical sensing sub-device and light barrier elements to measure the light quantity change, generate analog signals, and process these signals through a computing system to generate corresponding application events.

Benefits of technology

It realizes that the analog input device can output continuous analog signals, supports more refined user input operations, and improves control accuracy and flexibility in applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120435701A_ABST
    Figure CN120435701A_ABST
Patent Text Reader

Abstract

In some embodiments, an analog input device includes a mounting panel and a matrix of analog button assemblies mounted to the mounting panel. Each analog button assembly includes an analog pressure sensor including a plunger element and a pressure receiving device having an optical sensing sub-device and an output terminal. When the simulated button assembly is pressed by a finger of a user, the plunger element is configured to move toward the mounting panel to apply a pressure on the pressure receiving device. The optical sensing sub-device includes a light blocking element associated with the plunger element so as to be movable with the plunger element in a direction of movement of the plunger element, and the light blocking element includes a cutout profile that varies an amount of light passing through the light blocking element as the light blocking element moves in the direction of movement.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Various embodiments generally relate to analog input devices. In particular, various embodiments generally relate to force-sensitive analog input devices or pressure-sensitive analog input devices. Background Art

[0002] Conventionally, input devices such as game controllers, gamepads, keyboards, or mice include buttons or keys connected to digital switches. These digital switches only output binary signals and limit the achievable functions of the input devices and possible user intentions. For example, in games, in order to more accurately control the magnitude of a character's speed, direction, movement, action, etc., a more granular input may be preferred. Such control using binary input devices is generally not achievable.

[0003] Therefore, a more effective input device is needed to solve the above problems. Summary of the Invention

[0004] According to various embodiments, an analog input device is provided. The analog input device may include: a mounting panel; a matrix of analog button assemblies mounted to the mounting panel, each analog button assembly including an analog pressure sensor, wherein the analog pressure sensor includes a plunger element; and a pressure receiving device having an optical sensing sub-assembly and an output terminal. When the analog button assembly is pressed by a user's finger, the plunger element is configured to move toward the mounting panel to apply pressure to the pressure receiving device. The optical sensing sub-assembly includes a light blocking element associated with the plunger element so as to be movable along a movement direction of the plunger element, the light blocking element including a cutout profile that causes the amount of light passing through the light blocking element to vary as the light blocking element moves along the movement direction. The pressure receiving device is configured to measure the amount of light passing through the light blocking element and output an analog signal corresponding to the measured amount of light through the output terminal.

[0005] According to various embodiments, a computing system for receiving and processing analog input is provided. The computing system may include: a main processor; and an input device according to various embodiments, connected to the main processor via a communication interface, wherein the main processor is configured to receive a data packet from the input device, determine a depression amount of a corresponding button component based on a digital step value corresponding to an analog signal from the corresponding button component, and generate a corresponding predetermined application event in an application based on the determined depression amount of the corresponding button component and an input setting for the application.

[0006] According to various embodiments, a method for processing analog input for a computing system according to various embodiments is provided. The method may include: generating an analog signal via a pressure receiving device, the analog signal corresponding to an amount of light measured as a measure of pressure applied to the pressure receiving device when a button component is pressed by a user's finger; digitizing the analog signal into a corresponding digital step value via an analog-to-digital converter; outputting a data packet via a processor, the data packet including a button identification (ID) of the button component pressed by the user's finger and a digital step value corresponding to the analog signal from the button component; transmitting the data packet from a processor of an input device to a main processor of the computing system via a communication interface; determining, via the main processor, an amount by which a corresponding button component is pressed based on the corresponding digital step value from the received data packet; and generating, via the main processor, a corresponding predetermined application event in an application based on the determined amount by which the corresponding button component is pressed and an input setting for the application.

[0007] According to various embodiments, a calibration system is provided. The calibration system may include: a calibration fixture; a calibration computer program stored in a host computing device; and firmware programmed into the analog input device according to various embodiments, the calibration system further including one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the calibration system to: (i) send a command via the calibration computer program to drive the calibration fixture to press the analog button assembly in the analog button assembly matrix to the bottom position of the analog button assembly; (ii) send parameters and commands to the firmware via the calibration computer program to start calibration; (iii) adjust infrared (IR) current and IR activation time via the firmware until the sampled values meet a first threshold for the bottom position of the analog button assembly; (iv) calculate an average and a range of the sampled values for the bottom position of the analog button assembly via the firmware and send the average and the range of the sampled values for the bottom position of the analog button assembly to the calibration computer program; (v) send a pass to the firmware via the calibration computer program if the average and the range of the sampled values for the bottom position of the analog button assembly meet a second threshold for the bottom position of the analog button assembly; and (vi) save the average and the range of the sampled values as a reference value for the bottom position of the analog button assembly via the calibration computer program. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] In the drawings, like reference numerals generally refer to like parts throughout the different views. The drawings are not necessarily drawn to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments are described with reference to the following drawings, in which:

[0009] Figure 1 shows a schematic diagram of an example analog input device according to various embodiments;

[0010] Figure 2A Shown according to various embodiments Figure 1 an example cutout profile for a light blocking element of an example simulated input device; Figure 2B and Figure 2C shows various embodiments Figure 1 an example movement of a cutout profile of a light blocking element of an example simulated input device;

[0011] Figure 3A shows a schematic diagram of an example analog input device according to various embodiments; Figure 3B Shown are various embodiments having Figure 3A a graph of voltage change versus distance traveled for a light blocking element of an example computing system of an analog input device;

[0012] Figure 4 A schematic diagram illustrating an example computing system for receiving and processing analog input according to various embodiments is shown;

[0013] Figure 5 A schematic diagram illustrating an example computing system having an emulated keypad as an input device according to an example embodiment is shown; and

[0014] Figure 6 A schematic diagram illustrating a calibration system implemented by an input device according to various embodiments; and

[0015] Figure 7 A flow chart of a user calibration process for an input device according to various embodiments is shown. DETAILED DESCRIPTION

[0016] The embodiments described below in the context of an apparatus are analogously valid for the corresponding method, and vice versa. Furthermore, it will be understood that the embodiments described below may be combined, for example, parts of one embodiment may be combined with parts of another embodiment.

[0017] It should be understood that the terms "upper," "above," "top," "bottom," "lower," "side," "rear," "left," "right," "front," "lateral," "sideways," "upward," "downward," and the like, when used in the following description, are for convenience and to aid understanding of relative positions or directions, and are not intended to limit the orientation of any device or structure or any part of any device or structure. In addition, the singular terms "a," "an," and "the" include plural references unless the context clearly indicates otherwise. Similarly, the word "or" is intended to include "and" unless the context clearly indicates otherwise.

[0018] It will be further understood that the terms "comprise" (and any forms thereof, such as "comprises" and "comprising"), "have" (and any forms thereof, such as "has" and "having"), "include" (and any forms thereof, such as "includes" and "including"), and "contain" (and any forms thereof, such as "contains" and "containing") are open-ended linking verbs. Thus, a method or apparatus that "comprises," "has," "includes," or "contains" one or more steps or elements has those one or more steps or elements, but is not limited to having only those one or more steps or elements. Similarly, a step of a method or an element of an apparatus that "comprises," "has," "includes," or "contains" one or more features has those one or more features, but is not limited to having only those one or more features. Furthermore, a device or structure that is configured in a certain way is configured in at least that way, but may also be configured in ways that are not listed.

[0019] As used herein throughout the specification and claims, approximating language may be applied to modify any quantitative representation that can vary within permissible limits without causing a change in the basic function to which it is associated. Thus, a value modified by one or more terms such as "about," "substantially," or the like is not limited to the precise value specified, but rather is intended to be within acceptable tolerances for the operation of the embodiment for its intended application. In some cases, an approximating language may correspond to the precision of an instrument used to measure the value.

[0020] As used herein, a phrase of the form "at least one of A or B" may include A or B, or both A and B. Correspondingly, a phrase of the form "at least one of A or B or C," or including further listed items, may include any and all combinations of one or more of the associated listed items.

[0021] As described herein, a processor (or processing unit or host processing unit or main processor, etc.) may be understood as any kind of logic implementation entity, which may be a dedicated circuit or processor that executes software stored in memory, firmware, or any combination thereof. Thus, a processor may be a hardwired logic circuit or a programmable logic circuit such as a programmable processor (e.g., a programmable logic controller (PLC)), for example, a microprocessor (e.g., a complex instruction set computer (CISC) processor or a reduced instruction set computer (RISC) processor). A processor may also be a processor that executes software, for example, any kind of computer program, for example, a computer program using a virtual machine code such as, for example, Java.

[0022] Various embodiments generally relate to analog input devices. In particular, various embodiments generally relate to force-sensitive analog input devices or pressure-sensitive analog input devices. According to various embodiments, the input device may include, but is not limited to, a controller, a keypad, a keyboard, a mouse, a joystick, or a steering wheel. According to various embodiments, the input device may include a matrix of analog buttons or keys, each of which may be configured to vary an input signal based on the amount of force or pressure applied by a user to the corresponding analog button or key. Thus, the corresponding analog button or key may provide variable force-sensitive or pressure-sensitive analog input depending on the force or pressure applied to the analog button or key. According to various embodiments, varying the amount of force or pressure applied to the corresponding analog button or key may vary the range or magnitude of the press experienced by the analog button or key. Thus, varying the range or magnitude of the press of the corresponding analog button or key may vary the analog output signal from the corresponding analog button or key of the analog input device. For example, the amount of force or pressure applied to the corresponding analog button or key may be proportional to the analog output signal from the corresponding analog button or key of the analog input device. Specifically, the amount of pressing force or pressure applied to the corresponding analog button or key can be linearly proportional to the analog output signal of the corresponding analog button or key from the analog input device. According to various embodiments, the analog output signal can be processed by the processor to generate a corresponding application event in the application.

[0023] In some aspects of what is described herein, the proposed analog input device may include a light blocking element that is associated with a corresponding analog button or key in a manner that is movable along the direction of movement of the corresponding analog button or key together with the corresponding analog button or key. The light blocking element may include a cutout profile that causes the amount of light passing through the light blocking element to change as the light blocking element moves along the direction of movement. Specifically, when the analog button or key is not pressed and the light blocking element is in an initial position, the light blocking element may allow an initial amount of light to pass through the blocking element. This may mean that when the analog button or key is pressed, the analog output signal (e.g., an analog voltage) does not start from zero, but from a positive number; as the analog button or key travels along the direction of movement, the analog output signal may increase from a positive number, resulting in a smooth increase in the analog output signal (e.g., not a sudden increase from zero). Therefore, a linear increase in the analog output signal relative to the travel distance of the analog button or key may be obtained.

[0024] According to some aspects, the proposed input device may include a digital potentiometer with an adjustable resistance. Each analog button or key can be electrically connected to a digital potentiometer, and the analog output signal can be adjusted by the digital potentiometer in a manner that a linear increase in the analog output signal relative to the travel distance of the analog button or key can be obtained. The digital potentiometer can be calibrated by software commands, so a software program (e.g., a software program executed by a processor) can be used to control the digital potentiometer. Although a digital potentiometer is used in various current embodiments, it should be understood that any other electrical component with an adjustable resistance (e.g., a rheostat) can be adopted and replaced with the digital potentiometer.

[0025] In some cases, aspects of the systems and techniques described herein provide technical improvements and advantages over existing approaches. For example, the proposed analog input device provides an analog output for an analog switch (e.g., an input to a host device). This may mean that different travel distances can correspond to different analog output signals, which in turn correspond to different inputs at the host device (e.g., in terms of magnitude, for example, to activate different functions in an application running on the host device). The analog output can be adjusted by a digital potentiometer (e.g., after being pre-calibrated at the factory by a software program and calibrated by the user as described herein) to be linearly proportional to the travel distance of the analog button or key. For example, a fully pressed analog button or key (i.e., at the maximum travel distance) can correspond to, for example, moving a character (e.g., an avatar) in a game a predetermined distance; a half-pressed analog button or key (i.e., at 1 / 2 of the maximum travel distance) can correspond to, for example, moving the character half of the predetermined distance, and a quarter-pressed analog button or key (i.e., at 1 / 4 of the maximum travel distance) can correspond to, for example, moving the character a quarter of the predetermined distance; and so on. In other words, by pressing a simulated button or key to a portion (e.g., including but not limited to a portion, fraction) of the maximum travel distance, the user can provide an input having a controlled magnitude (e.g., scale, range) that in turn corresponds to a unique command in the host device. Further, the controlled magnitude (e.g., scale, range) can be continuous relative to the travel distance of the simulated button or key.

[0026] Various embodiments generally relate to a computing system for receiving and processing analog input and a method for processing analog input for a computer system. A computing system may refer to an information processing system or a functional system capable of performing a large number of calculations. A computing system may include a processing unit, random access memory, disk storage, input devices, and output devices, among other things. According to various embodiments, a computing system may include a main processor and an analog input device of various embodiments. According to various embodiments, a user may provide an analog input via the analog input device, such that the analog input signal may be sent to the main processor via the analog input device, and the main processor may process the analog input signal to generate a corresponding application event and provide a corresponding output in response to the analog input signal. The corresponding output may include, but is not limited to, text and / or graphical display, sound, light, or tactile feedback.

[0027] The following examples relate to various embodiments.

[0028] Example 1 is an analog input device comprising: a mounting panel; a matrix of analog button assemblies mounted to the mounting panel, each analog button assembly comprising an analog pressure sensor, wherein the analog pressure sensor comprises: a plunger element; and a pressure receiving device having an optical sensing sub-assembly and an output terminal, wherein when the analog button assembly is pressed by a user's finger, the plunger element is configured to move toward the mounting panel to apply pressure on the pressure receiving device, wherein the optical sensing sub-assembly comprises a light blocking element associated with the plunger element in a manner movable along a moving direction of the plunger element together with the plunger element, and the light blocking element comprises a cutout profile, and as the light blocking element moves along the moving direction, the cutout profile causes the amount of light passing through the light blocking element to change, and wherein the pressure receiving device is configured to measure the amount of light passing through the light blocking element and output an analog signal corresponding to the measured amount of light through the output terminal.

[0029] In Example 2, the subject matter of Example 1 may optionally include the light blocking element being configured to move from the initial position to the maximum position along the moving direction together with the plunger element in response to a user's finger pressing the button assembly.

[0030] In Example 3, the subject matter of Example 2 can optionally include the light blocking element allowing an initial amount of light to pass through the blocking element when the simulated button assembly is not pressed and the light blocking element is at the initial position.

[0031] In Example 4, the subject matter of Example 3 can optionally include that the light blocking element includes a cutout portion, and the cutout portion has an elongated shape extending from a lower end to an upper end of the light blocking element and surrounded by a continuous boundary.

[0032] In Example 5, the subject matter of Example 4 may optionally include: the width between relative boundaries of the cut portion along a direction perpendicular to the moving direction of the plunger element gradually increases from the lower end to the upper end of the light blocking element in the following manner: the amount of light passing through the light blocking element increases as the light blocking element moves from the initial position to the maximum position along the moving direction.

[0033] In Example 6, the subject matter of Example 5 may optionally include: a width between opposite boundaries of the cutout portion gradually increasing in such a manner that an amount of light passing through the light blocking element linearly increases.

[0034] In Example 7, the subject matter of Example 5 can optionally include that when the light blocking element moves from the initial position to the maximum position, a width between opposing boundaries of the cutout portion increases from an initial width that allows an initial amount of light to pass through the blocking element to a maximum width.

[0035] In Example 8, the subject matter of Example 2 can optionally include: a travel distance of the light blocking element between the initial position and the maximum position being equal to or greater than 4 mm.

[0036] In Example 9, the subject matter of Example 1 may optionally include: the optical sensing sub-device further including: a light emitter oriented to emit light along a light path perpendicular to the direction of movement; and a light sensor disposed in the light path and configured to generate an analog signal based on the amount of light sensed by the light sensor for output via an output terminal, wherein when the plunger element moves toward the mounting panel, the light blocking element moves laterally across the light path.

[0037] In Example 10, the subject matter of Example 9 can optionally include: an amount of light sensed by the light sensor for output via the output terminal being lower than a saturation value of the light sensor.

[0038] In Example 11, the subject matter of Example 1 can optionally include a digital potentiometer, wherein the digital potentiometer is electrically coupled to the analog button assembly matrix and is adjustable with respect to its resistance.

[0039] In Example 12, the subject matter of any one of Examples 1 to 11 can optionally include that the analog signal is an analog voltage.

[0040] In Example 13, the subject matter of Example 12 can optionally include the analog voltage being inversely proportional to an amount of light passing through the light blocking element.

[0041] In Example 14, the subject matter of Example 12 can optionally include the digital potentiometer being adjustable in a manner such that the analog voltage is linearly proportional to the travel distance of the light blocking element.

[0042] In Example 15, the subject matter of Example 1 may optionally include: a multiplexer comprising an input side and an output side, wherein the input side is coupled to an output terminal of a matrix of analog button components; an analog-to-digital converter coupled to the output side of the multiplexer; a processor coupled to the analog-to-digital converter and configured to output a data packet comprising a button identification (ID) of the analog button component pressed by a user's finger and a digital step value corresponding to an analog signal from the button component; and a communication interface configured to transmit the data packet to a host computing device.

[0043] In Example 16, the subject matter of Example 15 can optionally include an analog filter electrically coupled between the pressure sensor and the analog-to-digital converter.

[0044] In Example 17, the subject matter of Example 15 can optionally include a lighting device comprising at least one light source controlled by a processor.

[0045] In Example 18, the subject matter of Example 1 can optionally include the pressure receiving device comprising a biasing element disposed between the plunger element and the mounting panel and biasing the plunger element away from the mounting panel in a biasing direction.

[0046] Example 19 is a computing system for receiving and processing analog input, the computing system comprising: a main processor; and an input device according to any one of Examples 1 to 18, connected to the main processor via a communication interface, wherein the main processor is configured to receive a data packet from the input device to determine the amount of pressing of the corresponding button component based on a digital step value corresponding to the analog signal from the corresponding button component, and generate a corresponding predetermined application event in the application based on the determined amount of pressing of the corresponding button component and the input setting for the application.

[0047] In Example 20, the subject matter of Example 19 can optionally include the main processor being further configured to transform the determined pressing amount onto a non-linear scale before generating the corresponding predetermined application event.

[0048] In Example 21, the subject matter of Example 19 can optionally include that corresponding to the predetermined application event includes a continuously variable action, and wherein the main processor is configured to generate a state of the continuously variable action according to the determined pressing amount.

[0049] In Example 22, the subject matter of Example 19 can optionally include that corresponding to the predetermined application event includes a discrete action, and wherein the main processor is configured to generate the discrete action when the determined amount of depression is equal to or greater than a preset depression level.

[0050] In Example 23, the subject matter of Example 19 may optionally include: corresponding to a predetermined application event includes a first discrete action and a second discrete action, and wherein the main processor is configured to generate the first discrete action when the determined press amount is equal to a first preset press level or between the first preset press level and the second preset press level, and to generate the second discrete action when the determined press amount is equal to or greater than the second preset press level.

[0051] In Example 24, the subject matter of Example 19 may optionally include: the main processor is configured to switch between a first input setting and a second input setting for the application based on a user input command via a physical modifier key or a virtual modifier key, and wherein a first corresponding predetermined application event associated with the first input setting is different from a second corresponding predetermined application event associated with the second input setting.

[0052] Example 25 is a method for processing analog input for a computing system according to Example 19, the method comprising: generating an analog signal via a pressure receiving device, the analog signal corresponding to the amount of light measured as a measure of pressure applied to the pressure receiving device when a button component is pressed by a user's finger; digitizing the analog signal into a corresponding digital step value via an analog-to-digital converter; outputting a data packet via a processor, the data packet including a button identification (ID) of the button component pressed by the user's finger and a digital step value corresponding to the analog signal from the button component; transmitting the data packet from the processor of the input device to the main processor of the computing system via a communication interface; determining, via the main processor, the amount of pressing of the corresponding button component based on the corresponding digital step value from the received data packet; and generating, via the main processor, a corresponding predetermined application event in an application based on the determined amount of pressing of the corresponding button component and the input setting for the application.

[0053] In Example 26, the subject matter of Example 25, when dependent on Example 14, may optionally include calibrating, via the processor, the adjustable digital potentiometer by pressing the analog button assembly until the light blocking element reaches a maximum position.

[0054] In Example 27, the subject matter of Example 25 can optionally include transforming the determined pressing amount onto a non-linear scale before generating the corresponding predetermined application event.

[0055] In Example 28, the subject matter of Example 25 can optionally include that the corresponding predetermined application event includes a continuously variable action, and wherein generating the corresponding predetermined event includes generating a state of the continuously variable action according to the determined pressing amount.

[0056] In Example 29, the subject matter of Example 25 can optionally include that corresponding to the predetermined application event comprises a discrete action, and wherein generating the corresponding predetermined event comprises generating the discrete action when the determined amount of depression is equal to or greater than a preset depression level.

[0057] In Example 30, the subject matter of Example 25 may optionally include: the corresponding predetermined application event includes a first discrete action and a second discrete action, and wherein generating the corresponding predetermined event includes generating the first discrete action when the determined press amount is equal to a first preset press level or between the first preset press level and the second preset press level, and generating the second discrete action when the determined press amount is equal to or greater than the second preset press level.

[0058] In Example 31, the subject matter of Example 25 may optionally include: switching between a first input setting and a second input setting for an application based on a user input command via a physical modifier key or a virtual modifier key, and wherein a first corresponding predetermined application event associated with the first input setting is different from a second corresponding predetermined application event associated with the second input setting.

[0059] Example 32 is a calibration system comprising: a calibration fixture; a calibration computer program stored in a host computing device; and firmware programmed into the analog input device of Example 1, the calibration system further comprising one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the calibration system to: (i) send a command via the calibration computer program to drive the calibration fixture to press an analog button component in a matrix of analog button components to a bottom position of the analog button component; (ii) send parameters and commands to the firmware via the calibration computer program to initiate calibration; (iii) adjust infrared (IR) current and (iv) calculating, by the firmware, an average and a range of the sampled values for the bottom position of the simulated button component, and sending the average and the range of the sampled values for the bottom position of the simulated button component to the calibration computer program; (v) sending a pass to the firmware by the calibration computer program if the average and the range of the sampled values for the bottom position of the simulated button component meet the second threshold value for the bottom position of the simulated button component; and (vi) saving, by the calibration computer program, the average and the range of the sampled values as a reference value for the bottom position of the simulated button component.

[0060] In Example 33, the subject matter of Example 32 can optionally include repeating steps (i) to (vi) for a middle position of the simulated button component and a top position of the simulated button component.

[0061] Figure 1A schematic diagram of an analog input device 100 according to various embodiments is shown. According to various embodiments, the analog input device 100 may include at least one mounting panel 110. According to various embodiments, the at least one mounting panel 110 may be part of the internal support structure of the analog input device 100. According to various embodiments, the at least one mounting panel 110 may also be an internal printed circuit board (PCB) of the analog input device 100. According to various embodiments, the analog input device 100 may include a matrix of analog button assemblies 120 mounted to the at least one mounting panel 110. According to various embodiments, the analog input device 100 may include two or more analog button assemblies 120. For example, when the analog input device 100 is a mouse, the analog input device 100 may include two or more analog click buttons. When the analog input device 100 is a keypad having 15 to 25 keys, the analog input device 100 may include up to 15 to 25 analog keys. When the analog input device 100 is a game controller having four or more buttons, the analog input device 100 may include two, three, or four or more analog buttons. When the analog input device 100 is a keyboard, the analog input device 100 may include a plurality of analog keys.

[0062] According to various embodiments, each analog button assembly 120 may include a pressure sensor 121 having a plunger element 122 and a pressure receiving device 124. The plunger element 122 may interact with the pressure receiving device 124 in such a manner that pressure or force is applied to the pressure receiving device 124 when the analog button assembly 120 is pressed by a user's finger. Specifically, when the analog button assembly 120 is pressed by a user's finger, the plunger element 122 may be configured to move toward the mounting panel 110 to apply pressure to the pressure receiving device 124. According to various embodiments, the pressure sensor 121 may be a single, replaceable, integral key switch, or may be an inseparable, integrated, built-in device of the analog input device 100. According to various embodiments, each analog button assembly 120 may include a button cap 123 that is removably or fixedly coupled to the plunger element 122 of the pressure sensor 121. According to various embodiments, the button cap 123 may be a thin shell having an input surface for receiving a user's fingertip. The button cap 123 may be ergonomically shaped to receive a fingertip. Thus, when the button cap 123 is pressed by a user's finger, the plunger element 122 may move together with the button cap 123 in the direction of movement of the plunger element 122. The direction of movement of the plunger element 122 may be perpendicular to the plane of the mounting panel 110.

[0063] According to various embodiments, the pressure receiving device 124 of each simulated button assembly 120 may include an optical sensing sub-assembly 125 configured to measure the amount of light that varies based on the pressure or force sensed at the pressure receiving device 124. Therefore, pressing the simulated button assembly 120 can exert a corresponding pressure or force on the pressure receiving device 124, which can cause the amount of light sensed by the optical sensing sub-assembly 125 to vary. According to various embodiments, the amount of light can be varied by proportionally varying the light blocking range of the light blocking element 134 relative to the pressure or force on the pressure receiving device 124. According to various embodiments, the pressure receiving device 124 may include an output terminal 133 for outputting an analog signal corresponding to the measured amount of light. Therefore, the measured amount of light can be output as an analog signal. According to various embodiments, the amount of light can be the intensity of the light.

[0064] According to various embodiments, the pressure receiving device 124 may include a biasing element 126. The biasing element 126 may be arranged between the plunger element 122 and the at least one mounting panel 110. The biasing element 126 may bias the plunger element 122 away from the at least one mounting panel 110 in a biasing direction. Therefore, the biasing element 126 may provide resistance against the pressure or force of pressing the simulated button assembly 120. The biasing direction may be parallel to the moving direction of the plunger element 122. According to various embodiments, the biasing element 126 may include a spring or elastic membrane structure or other suitable element, structure or configuration that can return the plunger element 122 to the original position or initial position after being pressed. According to various embodiments, the biasing element 126 may be directly or indirectly connected between the plunger element 122 and the at least one mounting panel 110. According to various embodiments, the pressure receiving device 124 may include a housing (e.g., Figure 2B and Figure 2C 129 in the embodiment, and the plunger element 122 can be slidable through the top plate of the housing. The button cap 123 can be coupled to the plunger element 122 so as to be movable relative to the housing. The biasing element 126 can bias the plunger element 122 away from the bottom plate of the housing in a biasing direction, thereby indirectly biasing the button cap 123 away from the at least one mounting panel 110.

[0065] According to various embodiments, the optical sensing sub-assembly 125 of the pressure receiving device 124 may include a light emitter 130. The light emitter 130 may be disposed at an intermediate height between the plunger element 122 and the at least one mounting panel 110. The light emitter 130 may be oriented to emit light along an optical path 131 that is non-parallel to the direction of movement of the plunger element 122 (e.g., or non-parallel to the bias direction of the biasing element 126). Specifically, the light emitter 130 may be oriented to emit light along an optical path 131 that is perpendicular to the direction of movement of the plunger element 122 (e.g., or perpendicular to the bias direction of the biasing element 126). Thus, the optical path 131 of the light emitted from the light emitter 130 may be substantially perpendicular to the direction in which the at least one simulated button assembly 120 is depressed by a user. According to various embodiments, the light emitter 130 may be a laser light emitter or a collimated light emitter. According to various embodiments, the intermediate height between the plunger element 122 and the at least one mounting panel 110 may be a location along a height between the mounting panel 110 and the maximum depression of the plunger element 122.

[0066] According to various embodiments, the optical sensing sub-device 125 of the pressure receiving device 124 may include a light sensor 132. The light sensor 132 may be disposed in the optical path 131 and may be configured to output an analog signal based on the amount of light sensed by the light sensor 132, for output via the output terminal 133. Therefore, the light sensor 132 may be placed directly facing the light emitter 130. Thus, the light emitter 130 and the light sensor 132 may be arranged relative to each other so that light from the light emitter 130 is projected directly toward the light sensor 132. According to various embodiments, the light sensor 132 may detect the intensity of light incident on the light sensor 132 and output an analog signal based on the detected light intensity. According to various embodiments, the light sensor 132 may include, but is not limited to, a phototransistor-type light sensor, a photoresistor-type light sensor, or a photodiode-type light sensor. According to various embodiments, the analog signal from the light sensor 132 may be an analog voltage or an analog current.

[0067] According to various embodiments, the optical sensing sub-device 125 of the pressure receiving device 124 may include a light blocking element 134. The light blocking element 134 may be associated with the plunger element 122 in a manner that can move along the movement direction of the plunger element 122 (for example, parallel to the biasing direction of the biasing element 126). The light blocking element 134 may extend toward the mounting panel 110 to intersect the optical path 131 between the light emitter 130 and the optical sensor 132. According to various embodiments, the light blocking element 134 may be directly or indirectly coupled to the plunger element 122. According to various embodiments, the light blocking element 134 may have an elongated shape and may extend downward toward the mounting panel 110. According to various embodiments, the light blocking element 134 may be positioned in a manner that the movement path of the light blocking element 134 may intersect the optical path 131 between the light emitter 130 and the optical sensor 132 due to the simulated button assembly 120 being pressed by the user. According to various embodiments, when the pressure receiving device 124 includes a housing and the plunger element 122 is slidable through the top plate of the housing with the button cap 123 coupled to the plunger element 122 , the light blocking element 134 may be coupled to the plunger element 122 so as to be movable with the button cap 123 .

[0068] According to various embodiments, the light blocking element 134 may include a cutout profile. Figure 2A shows example cutout profiles for the light blocking element 134 of the analog input device 100 according to various embodiments; Figure 2B and Figure 2C shows example movements of the cutout profile of the light blocking element 134 of the simulated input device 100 according to various embodiments;

[0069] When pressure or force is applied to push the button cap 123 toward at least one mounting panel 110 (i.e., in the direction of movement of the plunger element 122), the cutout profile 135 of the light blocking element 134 can cause the amount of light passing through the light blocking element 134 to vary as the light blocking element 134 moves laterally across the light path 131. Thus, the cutout profile 135 of the light blocking element 134 can cause the degree of blocking of the light path 131 to vary depending on the movement of the plunger element 122 due to the pressure or force on the pressure receiving device 124. According to various embodiments, the light blocking element 134 can include an elongated plate having the cutout profile 135 and can be configured to move longitudinally to intersect the light path 131 as a user applies pressure or force to depress the button cap 123. According to various embodiments, the cutout profile 135 of the light blocking element 134 can include an elongated shape extending from a lower end 134a to an upper end 134b of the light blocking element 134 and surrounded by a continuous boundary 135a.

[0070] The width between opposite boundary sections of the boundary 135a of the cutout portion 135 along the optical path 131 (e.g., perpendicular to the moving direction of the plunger element 122) can be adjusted such that the amount of light passing through the light blocking element 134 increases as the light blocking element 134 moves in the moving direction 201 (e.g., perpendicular to the moving direction of the plunger element 122). Figure 2B and Figure 2C ) moves from the initial position to the maximum position in an increasing manner from the lower end 134a of the light blocking member 134 (eg, Figure 2A The initial pass width shown as w1 in FIG) gradually increases to the upper end 134b (e.g., Figure 2A denoted as w2 in the figure). In other words, the width between opposing boundary segments of boundary 135a can determine the amount of light that passes through light-blocking element 134. For example, the wider the width between opposing boundary segments of boundary 135a, the greater the amount of light that passes through light-blocking element 134 and is detected by light sensor 132 as a higher analog signal (if the analog signal (e.g., analog current) is proportional to the amount of light) or a lower analog signal (if the analog signal (e.g., analog voltage) is inversely proportional to the amount of light). The maximum pass-through width w2 can be designed so that the amount of light that passes through light-blocking element 134 is lower than the saturation value of light sensor 132.

[0071] In various embodiments, the cutout profile 135 of the light blocking element 134 can be formed along the longitudinal axis ( Figure 2A The cutout profile 135 of the light blocking element 134 can be designed so that the amount of light passing through the light blocking element 134 increases linearly, exponentially, or quadratically as the light blocking element 134 moves downward (e.g., at a substantially constant speed). For example, the width between opposing boundary segments of the boundary 135a of the cutout portion 135 can gradually increase in such a manner that the amount of light passing through the light blocking element 134 increases linearly. For example, the cutout profile 135 of the light blocking element 134 can be substantially in the shape of an inverted isosceles triangle, and the width between opposing boundary segments of the boundary 135a can increase linearly.

[0072] Figure 2B The light blocking element 134 is shown in its initial (default) position when the analog button assembly 120 is not pressed. When the light blocking element 134 is in the initial position, the light blocking element 134 can allow an initial amount of light to pass through the blocking element 134 (e.g., through an initial pass width w1). Therefore, when the analog button assembly 120 is not pressed (e.g., in its default / initial position), the light sensor 132 can detect an initial amount of light incident on the light sensor 132 and output an initial analog signal based on the detected initial amount of light (e.g., initial light intensity).

[0073] Figure 2CThe light blocking element 134 is shown in its maximum position, in which the simulated button assembly 120 cannot move further (e.g., by some kind of stop mechanism) even if the pressure or force applied to the simulated button assembly 120 continues to increase. When the light blocking element 134 is in its maximum position, the light blocking element can allow a maximum amount of light to pass through the blocking element 134 (e.g., through a maximum pass width w2). Therefore, when the simulated button assembly 120 is pressed to its maximum position, the light sensor 132 can detect the maximum amount of light incident on the light sensor 132 and output a maximum analog signal (if the analog signal is proportional to the amount of light) or a minimum analog signal (if the analog signal is inversely proportional to the amount of light) based on the maximum amount of light detected (e.g., maximum light intensity).

[0074] Therefore, as the light blocking element 134 is pressed by the user's finger to Figure 2B The initial position shown is moved to Figure 2C At the maximum position shown, the amount of light passing through the light blocking element 134 (e.g., through the width of the opposite boundary section of the cutout profile 135) gradually increases. Therefore, the light sensor 132 can detect the gradual increase in light incident thereon and output a gradually increasing analog signal (if the analog signal is proportional to the amount of light) or a gradually decreasing analog signal (if the analog signal is inversely proportional to the amount of light). For example, if the amount of light passing through the blocking element 134 (e.g., through the linearly increasing width of the opposite boundary section of the cutout profile 135) increases linearly, the light sensor 132 can detect the linear increase in light incident thereon and output a linearly increasing analog signal (if the analog signal is proportional to the amount of light) or a linearly decreasing analog signal (if the analog signal is inversely proportional to the amount of light).

[0075] Return Reference Figure 1 According to various embodiments, the analog input device 100 may include a multiplexer 138 having an output side and an input side. According to various embodiments, the input side of the multiplexer 138 may be coupled to the output terminals 133 of the matrix of the analog button assemblies 120. Thus, the multiplexer 138 may receive multiple analog signals from the matrix of the analog button assemblies 120 and provide a single output. According to various embodiments, the analog button assemblies 120 of the analog input device 100 may be coupled to the multiplexer 138 via a matrix connection.

[0076] According to various embodiments, the analog input device 100 may include an analog-to-digital converter (ADC) 140. ADC 140 may be coupled to the output side of multiplexer 138. Thus, ADC 140 may receive an analog signal from multiplexer 138 and may be configured to discretize the analog signal into corresponding digital step values. According to various embodiments, multiplexer 138 may be electrically coupled to ADC 140 so that the analog signal output from multiplexer 138 can be sent to ADC 140 for conversion into readable data. According to various embodiments, ADC 140 may convert the continuous-time and continuous-amplitude analog signal from multiplexer 138 into discrete-time and discrete-amplitude digital step values. According to various embodiments, ADC 140 may perform the conversion at predetermined sampling intervals. According to various embodiments, the total number of discrete digital step values for the range of the analog signal from light sensor 132 may be based on the resolution of ADC 140. According to various embodiments, the digital step value may be an integer from 0 to N, where N is one less than a power of 2. Thus, each integer of the digital step value may represent a corresponding magnitude of the analog signal from the light sensor 132 .

[0077] According to various embodiments, the analog input device 100 may include a processor 142. The processor 142 may be coupled to the ADC 140 in a manner that receives a digital step value. The processor 142 may be configured to output a data packet that includes a button identification (ID) of the analog button assembly 120 pressed by the user's finger and a digital step value corresponding to the analog signal from the analog button assembly 120. According to various embodiments, the processor 142 and the ADC 140 may communicate digitally with each other. Thus, the digital step value converted by the ADC 140 may be digitally transmitted from the ADC 140 to the processor 142. According to various embodiments, the processor 142 may receive various information data from the ADC 140 and / or the pressure receiving device 124 and / or the pressure sensor 121, and may arrange, compile, and / or format the various information data, including the button identification (ID) and the digital step value, into a formatted data string for transmission. According to various embodiments, the formatted data string may be in the form of a USB (Universal Serial Bus) HID (Human Interface Device) vendor report.

[0078] According to various embodiments, the analog input device 100 may include a communication interface 144. The communication interface may be wired or wireless. The communication interface 144 may be connectable to a host computing device. The communication interface 144 may be configured to transmit data packets from the processor 142 to the host computing device. According to various embodiments, the wired communication interface 144 may include a USB connector or a multi-pin electrical connector. According to various embodiments, the wireless communication interface 144 may include an infrared (IR) communication interface, a radio frequency (RF) communication interface, a Bluetooth communication interface, or a Wi-Fi communication interface. According to various embodiments, the host computing device may be a computer to which peripherals such as the input device 100 may be connected, or a programmable machine or programmable electronic device that directs the operation of the peripherals, including drivers for input / output devices connected to the host computing device.

[0079] According to various embodiments, the ADC 140 and the processor 142 may be discrete components of the analog input device 100. According to various embodiments, the ADC 140 and the processor 142 may be integrated into a single microcontroller 150.

[0080] Figure 3A Schematic diagram of an analog input device 300 according to various embodiments is shown. According to various embodiments, Figure 3A The analog input device 300 includes Figure 1 All features of the analog input device 100. Therefore, it is suitable for Figure 1 All features, changes, modifications and variations of the analog input device 100 may also be applied to Figure 3A According to various embodiments, Figure 3A The analog input device 300 is connected to Figure 1 The analog input device 100 may differ in that Figure 3A The analog input device 300 may further include the following additional features and / or limitations.

[0081] According to various embodiments, Figure 3A The analog input device 300 may further include a digital potentiometer 330 (also known as a digital resistor). The digital potentiometer is an integrated circuit (IC). Some versions include non-volatile memory (e.g., EEPROM or Flash) that can store the potentiometer's resistance setting. Because its size is relatively small compared to conventional potentiometers, multiple potentiometers can be packaged on a single chip. Digital potentiometer ICs with multiple channels are available.

[0082] The digital potentiometers 330 can be electrically coupled between the matrix of the analog input button assembly 120 and the multiplexer 138. In some embodiments, each digital potentiometer 330 can be coupled to an output terminal 133 of a pressure receiving device 124. In some embodiments, each digital potentiometer 330 can be coupled to several output terminals 133 of a pressure receiving device 124, for example, each channel of a digital potentiometer 330 can be coupled to an output terminal 133 of a pressure receiving device 124. The digital potentiometers 330 can be configured to have an adjustable value (e.g., resistance) to adjust the output analog signal (e.g., analog voltage). The digital potentiometers 330 can be controlled by a microcontroller (e.g., processor 142). The digital potentiometers 330 can be calibrated via software commands and can also be configured to detect faulty switches and foreign objects blocking the optical path (e.g., optical path 131). The digital potentiometers 330 can be adjusted such that the analog voltage is substantially linearly and inversely proportional to the travel distance of the light blocking element 134.

[0083] It should be understood that the digital potentiometer 330 can also be adjusted in such a manner that the analog voltage is substantially linearly proportional to the travel distance of the light-blocking element 134. In one example, the width between opposing boundary segments of the boundary 135a of the cutout portion 135 can be gradually reduced in such a manner that the amount of light passing through the light-blocking element 134 decreases linearly, so that the analog voltage can be substantially linearly proportional to the travel distance of the light-blocking element 134. In one example, as the amount of light passing through the light-blocking element 134 and detected and output by the light sensor 132 increases, and if the analog voltage signal is proportional to the detected amount of light, the analog voltage increases.

[0084] Figure 3B A graph 305 illustrates the change in voltage of the light-blocking element 134 of the analog input device 300 as a function of travel distance, according to various embodiments. The y-axis represents voltage (V) 301, and the x-axis represents travel distance (mm) 303 of the light-blocking element 134. The voltage can be recorded from the ADC 140. Graph 305 illustrates that the voltage is inversely proportional to the travel distance of the light-blocking element 134. Specifically, graph 305 shows that at an initial position where the travel distance 303 of the light-blocking element 134 is zero (e.g., the button cap is not pressed), i.e., the amount of light (e.g., intensity) detected by the detector 132 is at its minimum value but not zero, the voltage 301 is at its maximum value. As the travel distance 307 of the light-blocking element 134 increases from zero to a maximum value (indicated as 307, approximately equal to or greater than 4 mm), i.e., the amount of light (e.g., intensity) detected by the detector 132 increases to its maximum value, the voltage 301 decreases substantially linearly to its minimum value.

[0085] According to various embodiments, Figure 3AThe analog input device 300 may further include a filter (not shown). The filter may be electrically connected between the pressure sensor 121 and the analog-to-digital converter 140. The filter may be configured to reduce noise in the analog signal from the pressure sensor 121. According to various embodiments, the filter may include a low-pass filter.

[0086] According to various embodiments, Figure 3A The analog input device 300 may further include a storage element (not shown). The storage element may be coupled to the processor 142 and may store instructions for execution by the processor 142. According to various embodiments, the storage element may be a memory. According to various embodiments, the memory may include, but is not limited to, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), or a flash memory.

[0087] According to various embodiments, Figure 3A The analog input device 300 may further include a lighting device (not shown) including at least one light source controlled by the processor 142. According to various embodiments, the lighting device may include backlighting for the at least one analog button assembly 120 and / or bottom lighting for the analog input device 300. Thus, the at least one light source may function as a backlight for the at least one analog button assembly 120 and / or may function as a bottom light for the analog input device 300.

[0088] Figure 4 A method for receiving and processing analog input (e.g., from a Figure 1 The analog output of the output terminal 133 of the analog input device 100, the analog output from Figure 3A Schematic diagram of a computing system 401 for analog input device 300 (analog output of digital potentiometer 330). According to various embodiments, computing system 401 may include a main processor 402 and a processor (respectively, as shown in FIG. 1 ) connected to main processor 402 via communication interface 144. Figure 1 and / or Figure 3A(shown) analog input device 100, 300. According to various embodiments, the main processor 402 may be a central processing unit of the host computing device 404. According to various embodiments, the main processor 402 may receive data packets from the input devices 100, 300. According to various embodiments, the main processor 402 may interpret the input data packets from the input devices 100, 300 and execute programmed instructions based on the interpreted input data packets. According to various embodiments, the main processor 402 may determine the amount of depression of the button cap 123 of the corresponding button assembly 120 based on the digital step value corresponding to the analog signal from the corresponding button assembly 120. According to various embodiments, the main processor 402 may determine the amount of depression of the button cap 123 of the corresponding button assembly 120 by performing calculations, mathematical processing, mapping, table lookup operations, or other suitable processing techniques. According to various embodiments, the main processor 402 may generate a corresponding predetermined application event in the application based on the determined amount of depression of the button cap 123 of the corresponding button assembly 120 and the input settings for the application. According to various embodiments, the corresponding predetermined application event may be a programmed action or occurrence triggered by the application in response to or recognition of a determined amount of depression of the button cap 123 of the corresponding button assembly 120. According to various embodiments, the input settings for the application may be a mapping of predetermined application events to a matrix of simulated button assemblies 120 and corresponding amounts of depression. According to various embodiments, the input settings may be predefined settings within the application. According to various embodiments, the input settings may be user-definable or configurable settings that the user may modify or change within the application based on user preferences and usage.

[0089] According to various embodiments, the main processor 402 may be further configured to transform the determined amount of depression of the button cap 123 of the corresponding button assembly 120 onto a non-linear scale before generating the corresponding predetermined application event. According to various embodiments, the non-linear scale may include a logarithmic scale or a variable scale. According to various embodiments, when the determined amount of depression of the button cap 123 of the corresponding button assembly 120 is translated onto the non-linear scale, the analog input device 100 may be configured to be more responsive in the lower, middle, or upper ranges of depression. According to various embodiments, the translation into a non-linear scale may allow the user to customize their own settings based on the desired responsiveness of the analog input device 100 to suit their personal use.

[0090] According to various embodiments, the corresponding predetermined application event may include a continuously variable action. For example, in a game, the continuously variable action may include a magnitude of a character's speed, direction, movement, action, etc. According to various embodiments, the main processor may be configured to generate a state of the continuously variable action based on the determined amount of depression of the button cap 123 of the corresponding button assembly 120.

[0091] According to various embodiments, the corresponding predetermined application event may include a discrete action. For example, the discrete action may be a binary action such as on or off. According to various embodiments, the main processor may be configured to generate a discrete action when the determined amount of depression of the corresponding button assembly 120 is equal to or greater than a preset depression level of the corresponding button assembly 120. Thus, the input device can function as a normal binary input device, such as a typing keyboard or numeric keypad. According to various embodiments, the actuation point or trigger point of the corresponding button assembly 120 can be configured or programmed when the button cap 123 of the corresponding button assembly 120 is depressed to a preset level. Thus, the corresponding button assembly 120 can be configured or programmed to generate a discrete action at a desired depression level. Thus, the corresponding button assembly 120 can trigger a discrete action without requiring the button cap 123 of the button assembly 120 to be fully depressed. According to various embodiments, the preset depression level of the button cap 123 of the corresponding button assembly 120 can be a user-defined input. Therefore, the main processor 302 can be configured to receive and store the user-defined input as the preset depression level of the button cap 123 of the corresponding button assembly 120.

[0092] According to various embodiments, the corresponding predetermined application event may include a first discrete action and a second discrete action. According to various embodiments, the main processor may be configured to generate the first discrete action when the determined amount of depression of the button cap 123 of the corresponding button assembly 120 is equal to a first preset depression level of the button cap 123 of the corresponding button assembly 120, or is between the first preset depression level of the button cap 123 of the corresponding button assembly 120 and a second preset depression level of the button cap 123 of the corresponding button assembly 120. According to various embodiments, the main processor may be configured to generate the second discrete action when the determined amount of depression of the button cap 123 of the corresponding button assembly 120 is equal to or greater than the second preset depression level of the button cap 123 of the corresponding button assembly 120. Thus, a single button assembly 120 can be configured to trigger two or more different discrete actions by presetting two or more different depression ranges for triggering the corresponding discrete actions. According to various embodiments, each of the first preset depression level and the second preset depression level of the button cap 123 of the corresponding button assembly 120 can be a corresponding user-defined input. Thus, the main processor 402 may be configured to receive and store user-defined input as a first preset depression level and a second preset depression level of the button cap 123 of the corresponding button assembly 120 .

[0093] According to various embodiments, the main processor may be configured to switch between a first input setting and a second input setting for an application based on a user input command via a physical or virtual modifier key. According to various embodiments, a first corresponding predetermined application event associated with the first input setting may be different from a second corresponding predetermined application event associated with the second input setting. For example, in a game, the first input setting may be a first mapping of combat-related predetermined application events to the matrix of the simulated button assembly 120, and the second input setting may be a second mapping of driving-related predetermined application events to the matrix of the simulated button assembly 120.

[0094] In the following, a gaming keypad is described as an example of an analog input device 100 , 300 according to various embodiments.

[0095] Gaming keypads combine the benefits of a keyboard with the compact and ergonomic size of a controller. A typical gaming keypad contains 15 to 25 keys designed to be controlled by the user's fingers. These keys are arranged in a manner similar to the numeric keypad of a keyboard to implement various functions such as direction and navigation (up, down, left, and right), changing weapons, jumping, or shooting. However, the keys in conventional keypads are connected to digital switches that only output binary signals, thereby limiting the achievable functions of the keypad and possible user intentions.

[0096] Example embodiments address these problems by employing analog switches and corresponding algorithms that output analog signals, wherein the analog switches and algorithms process the signals sent from the various keys of the keypad at a host computer that is connected to the keypad wirelessly or via USB. The analog keypad provides an enhanced input method with greater granularity, which gives mechanical keyboards the precise control typically found in devices such as game controllers, steering wheels, and aviation joysticks. By processing the signal from each key at the host computer, time latency is reduced and a faster response is achieved. Further, upgrading the processing solution by disposing the processing solution in software provides the user with flexibility in key mapping. In addition, lighting the keypad based on the amount of pressing of a single key can provide visual feedback or an indicator light to the user. Therefore, the keypad can display the amount of pressing of a single key with a lighting effect proportional to the amount of pressing.

[0097] Figure 5 A computing system 501 is shown with an emulated keypad 500 as an emulated input device according to an example embodiment.

[0098] By way of example, the analog keypad 500 may include a plurality of analog switches 510 (or analog pressure sensors) each disposed below a key 540, a microcontroller 520 including a processor and memory, and an analog-to-digital converter (ADC) 530. The analog switches 510 may be based on opto-mechanical switch technology and output different analog signals depending on the pressure or force applied to the key or the displacement of the key compared to an unpressed position. The ADC 530 may convert the analog signal into a digital signal and send the digital signal to the microcontroller 520 for pre-processing the data. In some embodiments, the analog keypad 500 may optionally include a digital potentiometer 550, so that the output from the analog switch 510 may be adjusted by the digital potentiometer 550 before being input to the ADC 530. The adjusted analog signal may be (inversely) linearly proportional to the amount of depression of the key 540. Subsequently, the ADC 530 may convert the adjusted analog signal into a digital signal and send the digital signal to the microcontroller 520 for pre-processing the data.

[0099] The simulated keypad 500 can be connected to the host computer 504 wirelessly or via USB. The host computer 504 can receive pre-processed data from the microcontroller and perform calculations to determine the pressure or force applied to one or more keys and proceed with an action to be taken by a main processor (not shown) of the host computer 504. According to various embodiments, the main processor (not shown) of the host computer 504 can proceed with a specific action (e.g., a character moves at a certain speed level corresponding to a certain amount of depression of a key 540).

[0100] The firmware can be maintained in a memory (or storage element) such as a ROM, EPROM, or flash memory to provide control over the switches and translate the analog signals sent from each analog switch to the host computer so that the host computer can further process the signals or data to implement corresponding functions.

[0101] In one example embodiment, when a user presses a key (or button assembly) to a specific distance, the firmware can register this event, and the event will be read by the microcontroller. Different events can be registered for different distances at which the key is pressed. The microcontroller can continuously monitor the keys on the keypad via scanning, which can occur many times per second. The firmware can register when the key is pressed and the distance at which the key is pressed, and quickly execute the process of translating the key press from physical contact into an electrical signal and then outputting it to the host computer for proportional (e.g., linear) control of the corresponding predetermined application event.

[0102] By way of example, an analog switch (or pressure sensor) can be located under each key. The analog switch can include a light emitter, a chopper (or light blocking element) arranged in the light path, and a light receiver (or light sensor). The path along which the light travels can be substantially parallel to the surface of the keycap (or button cap). The amount of light that can be detected by the light receiver may be affected by the position of the chopper, which can be further determined by the distance the key is pressed down, which varies with the pressure or force applied to the keycap. Since the displacement of the key is proportional to the pressure or force applied, and the amount of light passing through the chopper can be related to the displacement of the key, the amount of light detected by the light receiver can also be related to the pressure or force applied to the key. In this way, the amount of light indicates the pressure or force applied to the key. For example, a spring (or biasing element) under the key can be configured to allow the keycap to shift from a top position to a bottom position, and this displacement is proportional to the pressure or force applied to the key. The light receiver outputs analog data based on the intensity of the detected light, and the analog data is further processed by the microcontroller before being sent to a host computer for proportional (eg, linear) control corresponding to a predetermined application event.

[0103] In one example embodiment, when two directional keys, one representing the x-direction and the other representing the y-direction, are pressed downward simultaneously, an analog switch under the first key may output a first analog signal having a first magnitude (e.g., (inversely) linearly proportional to the travel distance of the first directional key representing the x-direction), and an analog switch under the second key may output a second analog signal having a second magnitude (e.g., (inversely) linearly proportional to the travel distance of the second directional key representing the y-direction). The ADC converts the first and second magnitudes, which are analog signals, into digital signals based on a calibration set having a predetermined digital range with a minimum value and a maximum value, and transmits the digital signals to a microcontroller.

[0104] The microcontroller can further process the digital signal sent by the ADC and convert the digital signal into a code (or format) that the host computer can understand. For example, when the simulated keypad is connected to the host computer via USB, the converted code is a USB code. The conversion is usually performed using a lookup table. This table is also the table that defines the keyboard layout. The host computer receives the code for each key from the simulated keypad and, for example, calculates the addition of the codes and then determines the direction of movement. The host computer can further adjust the actuation point of the switch. In addition, the host computer can change the function of the key based on the amount of pressure or force applied to the keycap.

[0105] The simulated keypad 500 mentioned above is shown as an example embodiment of an input device. Other input devices such as a mouse, keyboard, or controller with simulated switches are also suitable. One or more features of the input device, other than computer gaming, can be advantageously incorporated into many other applications by translating user intent into a form that can be interpreted 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.

[0106] Automatic calibration of input devices according to various embodiments may be performed by the manufacturer on a production line to overcome systematic variations, including but not limited to optical switch driver (OSD) variations, infrared (IR) ... phototransistor (PT) variations, surface mount technology (SMT) soldering quality, assembly errors, etc. Calibration may include printed circuit board assembly (PCBA) self-tests, including manual IRPT testing and OSD self-tests.

[0107] An IRPT test can be performed to ensure IRPT component consistency and identify any IRPT SMT soldering issues. To perform an IRPT test, the operator places the PCBA in a large box that blocks any external light. The operator then presses a button in the calibration software to transmit the sampling time n and notify the keyboard firmware to initiate the IRPT test. The keyboard firmware then turns on the IR and samples each key n times to avoid light interference. The average and range of the calibration results are then sent to the calibration software. If the average and range of the calibration results meet the threshold, the calibration software sends a pass to the keyboard firmware, which can save the average and range of the calibration results as a baseline for future tests. If the average and range of the calibration results do not meet the threshold, the calibration software sends a fail to the keyboard firmware and displays the failure in the calibration software.

[0108] Calibration can be performed by using a fixture to press the key under test to the key top position (e.g. Figure 2B the key positions shown), the middle position and the bottom position (e.g., as Figure 2C The key travel of 0 mm to 4.5 mm can be covered by the calibration software at the fixed top, middle and bottom positions of the OSD sensor (e.g., the amount of light passing through the light blocking element 134 and detected by the light sensor 132) to determine the appropriate IR current and activation time for each OSD sensor.

[0109] Figure 6A schematic diagram of a calibration system 800 implemented by an input device according to various embodiments is shown. The calibration system 800 may include calibration software 801, a calibration fixture 802, and keyboard firmware 803. The calibration software 801 may be configured to run on a personal computer. The calibration fixture 802 may include a mechanical arm configured to press the key under test. The keyboard firmware 803 may be programmed into the memory of the keyboard. The calibration fixture 802 and the keyboard firmware 803 may be connected to the calibration software 801 via a USB interface or a wireless connection. The calibration system 800 can be used (e.g., by a manufacturer at a factory) to perform online calibration, such as an OSD self-test.

[0110] An OSD self-test can be performed via a routine embedded in the keyboard firmware at every power-on-reset (PoR) to identify OSD hardware issues. The OSD self-test can be automatically run at PoR. An OSD (e.g., a small IC) can be located beneath each keyboard key. When an OSD hardware issue (e.g., a component failure) or SMT solder joint is detected during the OSD self-test, the keyboard firmware (e.g., 803) can report the error to a user interface (UI) application to help the operations or repair team quickly locate the root cause. If an OSD hardware issue (e.g., a component failure) or SMT solder joint exists, the keyboard firmware can report an error code with an additional byte indicating the key position to the calibration software (e.g., 801) to locate the faulty OSD. An OSD error can be a serious hardware failure that crashes the firmware and disables all functionality. If multiple keys have OSD hardware issues, the keyboard firmware (e.g., 803) can always report the first key position error because the firmware stops OSD testing when the first OSD error is detected. The keyboard firmware (e.g., 803) can continue running the OSD self-test routine until all hardware issues are resolved. The keyboard firmware (e.g., the main microcontroller unit (MCU) of 803) can send a command code 0xA0 or 0xA1 to the simulated MCU of the calibration software (e.g., 801), determine whether there is a hardware error based on the return value 0xC4 of the simulated MCU of the calibration software (e.g., 801), and then report the key position if there is a hardware error. Once the OSD hardware error is reported, the keyboard will be disabled and the corresponding key with the hardware error will be illuminated in red as an error indication. The calibration may not reach the saturation voltage during the entire key travel, and when the key is pressed to the end (e.g., the bottom position of the key), the deviation may not exceed 5% during the entire key travel.

[0111] Figure 7A flow chart of a user calibration process 1000 for an input device according to various embodiments is shown. For each calibration, the user calibration process 1000 can be repeated multiple times, for example, three times as described herein. It should be understood that the user calibration process 1000 can be repeated any number of times as desired, for example, once (i.e., without repetition) or four times.

[0112] At step 1001, the user calibration process 1000 is initiated.

[0113] In step 1002, the user is guided to press and hold a key to the bottom position of the key. Therefore, the key pressed and held by the user is the key under test.

[0114] At step 1003 , the user is guided to press a UI button displayed on a personal computer running calibration software to start the user calibration process 1000 .

[0115] At step 1004, the UI (eg, calibration software running on a personal computer) sends commands and parameters to the keyboard firmware.

[0116] At step 1005, the keyboard firmware initiates calibration and sends the calibration results of the bottom position of the key under test to the UI.

[0117] At step 1006, the calibration software determines whether the calibration result for the bottom position of the key under test is OK. This may mean that the calibration software determines whether the calibration result for the bottom position meets certain criteria (e.g., a threshold) pre-programmed into the calibration software. If the calibration result for the bottom position of the key under test is not OK, the user calibration process 1000 proceeds to step 1007. If the calibration result for the bottom position of the key under test is OK, the user calibration process 1000 proceeds to step 1008.

[0118] At step 1007, the calibration software determines whether the user calibration process 1000 has been repeated three times. If the user calibration process 1000 has not been repeated three times, the user calibration process 1000 returns to step 1005 by repeating steps 1005 and 1006. If the user calibration process 1000 has been repeated three times, the user calibration process 1000 proceeds to step 1017, the calibration fails, and the calibration software sends an error code.

[0119] At step 1008, the UI sends a notification to save the calibration results of the bottom position of the key under test.

[0120] In step 1009, the user is guided to release the key that the user has been pressing. Therefore, the key that the user releases is the key under test.

[0121] At step 1010, the keyboard firmware initiates calibration and sends the calibration results of the top position of the key under test to the UI.

[0122] At step 1011, the keyboard firmware sends the calibration results of the top position of the key under test to the UI.

[0123] At step 1012, the calibration software determines whether the calibration result of the top position is OK. If the calibration result of the top position is not OK, the user calibration process 1000 proceeds to step 1013. If the calibration result of the top position is OK, the user calibration process 1000 proceeds to step 1014.

[0124] At step 1013, the calibration software determines whether the user calibration process 1000 has been repeated three times. If the user calibration process 1000 has not been repeated three times, the user calibration process 1000 returns to step 1010 by repeating steps 1010 and 1011 three times. Otherwise, the user calibration process 1000 proceeds to step 1017, the calibration fails, and the calibration software sends an error code.

[0125] In step 1014, the UI sends a notification to save the calibration result of the top position.

[0126] At step 1015, the calibration software determines whether the calibration process 1000 has been performed three times. If the calibration process 1000 has not been performed three times, the user calibration process 1000 returns to step 1001 and repeats the user calibration process 1000 (e.g., a second or third calibration process). If the calibration process 1000 has been performed three times, the user calibration process 1000 proceeds to step 1016 and ends.

[0127] Although the processes 900, 1000 described above are illustrated and described as a series of steps or events, it should be understood that any ordering of such steps or events should not be interpreted as limiting. For example, some steps may occur in different orders and / or occur simultaneously with other steps or events other than the steps or events illustrated and / or described herein. In addition, all illustrated steps may not be required to implement one or more aspects or embodiments described herein. Similarly, the one or more steps described herein may be implemented in one or more separate actions and / or stages.

[0128] According to various embodiments, an input device for providing input to a computing device is provided. The input device may include at least one input key or button. The at least one input key or button may include an input surface to receive a pressing force or pressure applied by a user. The at least one input key or button may include a switch interaction component to interact with an analog switch. The at least one input key or button may include an analog switch to receive interaction with the interaction component, whereby the analog switch detects a property as a function of the amount of pressing force or pressure applied by the user.

[0129] According to various embodiments, the input device may be a keyboard with multiple input keys, or a keypad with multiple input keys, or a mouse with two or more click buttons, or a game controller with multiple input keys or buttons.

[0130] According to various embodiments, the input surface may be a keycap on a top surface of the key, and the switch-interacting component may be attached to a bottom surface of the key.

[0131] According to various embodiments, the analog switch may be located beneath the key and may interface with a switch-interacting component attached to a bottom surface of the key.

[0132] According to various embodiments, the switch may include a light emitter, a light receiver, and a chopper, whereby the light emitter may emit light received by the light receiver in a light path substantially parallel to a surface of the keycap, wherein the chopper may be disposed between the light emitter and the light receiver.

[0133] According to various embodiments, the interacting component can be configured to interface with the chopper to cause the chopper to move within the optical path and affect the amount of light passing through the chopper and received by the optical receiver, and wherein the property detected by the analog switch is the amount of light received by the optical receiver.

[0134] According to various embodiments, the amount of movement of the chopper within the optical path may be a function of the amount of depression force or pressure applied by the user.

[0135] Various embodiments have provided an analog input device that can provide greater granularity of input in an efficient and simple manner. Various embodiments have also provided an analog input device that allows data processing to be performed by a host computing device while the analog input device simply transmits analog data. In other words, the analog input device performs only minimal pre-processing of the analog signal for transmission to the host computing device, while the primary data operations are performed by the host computing device. Consequently, the manufacturing cost of the analog input device can be significantly reduced, and analog data processing performance can be increased. Various embodiments have provided an analog input device that redefines conventional input devices. According to various embodiments, the analog input device can provide more options to end users. According to various embodiments, the analog input device of a computing system can provide definable trigger points (or configurable actuation points), more than one trigger point allowing multiple functions to be implemented with a single key (or multiple actuation points enabling multiple events with a single key / button), and / or joystick / flight stick / drive wheel / game controller function mapping.

[0136] Although the present invention has been particularly shown and described with reference to specific embodiments, it will be understood by those skilled in the art that various changes, modifications, variations in form and details may be made therein without departing from the scope of the invention as defined by the appended claims. The scope of the present invention is thus indicated by the appended claims, and all changes that come within the meaning and range of equivalents of the claims are therefore intended to be encompassed.

Claims

1. An analog input device comprising: Install the panels; A matrix of analog button assemblies mounted to the mounting panel, each analog button assembly comprising an analog pressure sensor, wherein the analog pressure sensor comprises: a plunger element; and a pressure receiving device having an optical sensing sub-device and an output terminal, wherein, when the simulated button assembly is pressed by a user's finger, the plunger element is configured to move toward the mounting panel to apply pressure on the pressure receiving device, wherein the optical sensing sub-device includes a light blocking element, the light blocking element being associated with the plunger element in a manner movable together with the plunger element along a movement direction of the plunger element, and the light blocking element includes a cutout profile that causes the amount of light passing through the light blocking element to vary as the light blocking element moves along the movement direction, and The pressure receiving device is configured to measure the amount of light passing through the light blocking element and output an analog signal corresponding to the measured amount of light through the output terminal.

2. The input device according to claim 1, wherein The light blocking element is configured to move from an initial position to a maximum position along the movement direction together with the plunger element in response to the button assembly being pressed by the user's finger.

3. The input device according to claim 2, wherein: When the simulated button assembly is not pressed and the light blocking element is at the initial position, the light blocking element allows an initial amount of light to pass through the blocking element.

4. The input device according to claim 3, wherein The light blocking member includes a cutout portion, and the cutout portion has an elongated shape extending from a lower end to an upper end of the light blocking member and surrounded by a continuous boundary.

5. The input device according to claim 4, wherein The width between the relative boundaries of the cutout portion along a direction perpendicular to the moving direction of the plunger element gradually increases from the lower end to the upper end of the light blocking element in the following manner: the amount of light passing through the light blocking element increases as the light blocking element moves from the initial position to the maximum position along the moving direction. The input device according to claim 5 , wherein: A width between opposite boundaries of the cutout portion gradually increases in such a manner that an amount of light passing through the light blocking member linearly increases.

7. The input device according to claim 5, wherein When the light blocking member moves from the initial position to the maximum position, a width between opposing boundaries of the cutout portion increases from an initial width that allows the initial amount of light to pass through the blocking member to a maximum width.

8. The input device according to claim 2, wherein: A travel distance of the light blocking element between the initial position and the maximum position is equal to or greater than 4 mm.

9. The input device according to claim 1, wherein The optical sensing sub-device further comprises: a light emitter oriented to emit light along a light path perpendicular to the direction of movement; and a light sensor disposed in the light path and configured to generate an analog signal based on an amount of light sensed by the light sensor for output via the output terminal, Wherein, when the plunger element moves toward the mounting panel, the light blocking element moves laterally across the light path.

10. The input device according to claim 9, wherein An amount of light sensed by the light sensor for output via the output terminal is lower than a saturation value of the light sensor.

11. The input device of claim 1 , further comprising: Digital potentiometer, The digital potentiometer is electrically connected to the analog button component matrix and is adjustable relative to its resistance.

12. The input device according to claim 11, wherein The analog signal is an analog voltage.

13. The input device according to claim 12, wherein The analog voltage is inversely proportional to the amount of light passing through the light blocking element.

14. The input device according to claim 12, wherein The digital potentiometer is adjustable in such a manner that the analog voltage is linearly proportional to the travel distance of the light blocking element.

15. The input device of claim 1, further comprising: a multiplexer comprising an input side and an output side, wherein the input side is coupled to output terminals of the analog button assembly matrix; an analog-to-digital converter coupled to an output side of the multiplexer; a processor coupled to the analog-to-digital converter and configured to output a data packet including a button identification (ID) of the analog button assembly pressed by the user's finger and a digital step value corresponding to the analog signal from the button assembly; and A communication interface is configured to transmit the data packet to a host computing device.

16. The input device of claim 15, further comprising an analog filter electrically coupled between the pressure sensor and the analog-to-digital converter.

17. The input device of claim 15, further comprising a lighting arrangement comprising at least one light source controlled by the processor.

18. The input device according to claim 1, wherein The pressure receiving device includes a biasing element that is arranged between the plunger element and the mounting panel and biases the plunger element away from the mounting panel in a biasing direction.

19. A computing system for receiving and processing analog input, the computing system comprising: Main processor; as well as The input device according to any one of claims 1 to 18, connected to the main processor via a communication interface, In which, the main processor is configured to receive a data packet from the input device to determine the pressing amount of the corresponding button component based on a digital step value corresponding to the analog signal from the button component, and generate a corresponding predetermined application event in the application based on the determined pressing amount of the corresponding button component and the input setting for the application.

20. The computing system of claim 19, wherein: The main processor is further configured to transform the determined amount of depression onto a non-linear scale before generating the corresponding predetermined application event.

21. The computing system of claim 19, wherein: The corresponding predetermined application event includes a continuously variable action, and wherein the main processor is configured to generate a state of the continuously variable action according to the determined pressing amount.

22. The computing system of claim 19, wherein: The corresponding predetermined application event comprises a discrete action, and wherein the main processor is configured to generate the discrete action when the determined amount of depression is equal to or greater than a preset depression level.

23. The computing system of claim 19, wherein: The corresponding predetermined application event includes a first discrete action and a second discrete action, and wherein the main processor is configured to generate the first discrete action when the determined pressing amount is equal to a first preset pressing level or between the first preset pressing level and the second preset pressing level, and to generate the second discrete action when the determined pressing amount is equal to or greater than the second preset pressing level.

24. The computing system of claim 19, wherein: The main processor is configured to switch between a first input setting and a second input setting for the application based on a user input command via a physical modifier key or a virtual modifier key, and wherein a first corresponding predetermined application event associated with the first input setting is different from a second corresponding predetermined application event associated with the second input setting.

25. A method of processing simulated input for a computing system according to claim 19, the method comprising: generating, via the pressure receiving device, the analog signal corresponding to an amount of light measured as a measure of pressure exerted on the pressure receiving device when the button assembly is pressed by a user's finger; digitizing the analog signal into a corresponding digital step value via the analog-to-digital converter; outputting, via the processor, the data packet including a button identification (ID) of the button assembly pressed by the user's finger and a digital step value corresponding to the analog signal from the button assembly; transmitting the data packet from the processor of the input device to the main processor of the computing system via the communication interface; determining, via the host processor, an amount by which the corresponding button component has been depressed based on a corresponding digital step value from the received data packet; as well as The corresponding predetermined application event is generated in the application via the main processor based on the determined depression amount of the corresponding button component and the input setting for the application.

26. The method of claim 25 when dependent on claim 14, further comprising: The adjustable digital potentiometer is calibrated via the processor by pressing the analog button assembly until the light blocking element reaches a maximum position.

27. The method of claim 25, further comprising: The determined pressing amount is transformed into a non-linear scale before generating the corresponding predetermined application event.

28. The method of claim 25, wherein: The corresponding predetermined application event includes a continuously variable action, and wherein generating the corresponding predetermined event includes generating a state of the continuously variable action according to the determined pressing amount.

29. The method of claim 25, wherein: The corresponding predetermined application event includes a discrete action, and wherein generating the corresponding predetermined event includes generating the discrete action when the determined amount of depression is equal to or greater than a preset depression level.

30. The method of claim 25, wherein: The corresponding predetermined application event includes a first discrete action and a second discrete action, and wherein generating the corresponding predetermined event includes generating the first discrete action when the determined pressing amount is equal to a first preset pressing level or between the first preset pressing level and the second preset pressing level, and generating the second discrete action when the determined pressing amount is equal to or greater than the second preset pressing level.

31. The method of claim 25, further comprising: Switching between a first input setting and a second input setting for the application based on a user input command via a physical modifier key or a virtual modifier key, and wherein a first corresponding predetermined application event associated with the first input setting is different from a second corresponding predetermined application event associated with the second input setting.

32. A calibration system comprising: Calibration fixture; a calibration computer program stored in a host computing device; as well as firmware programmed into the analog input device of claim 1, The calibration system further comprises: one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the calibration system to: (i) sending a command through the calibration computer program to drive the calibration fixture to press the simulated button components in the simulated button component matrix to the bottom position of the simulated button components; (ii) sending parameters and commands to the firmware via the calibration computer program to initiate calibration; (iii) adjusting, by the firmware, infrared (IR) current and IR activation time until a sampled value satisfies a first threshold for a bottom position of the simulated button component; (iv) calculating, by the firmware, an average and a range of sampled values for the bottom position of the simulated button assembly, and sending the average and the range of sampled values for the bottom position of the simulated button assembly to the calibration computer program; (v) sending a pass to the firmware by the calibration computer program if the average and the range of the sampled values for the bottom position of the simulated button assembly meet a second threshold for the bottom position of the simulated button assembly; and (vi) saving the average and range of the sampled values as reference values for the bottom position of the simulated button assembly by the calibration computer program.

33. The calibration system of claim 32, further comprising: Repeat steps (i) to (vi) for the middle position of the simulated button assembly and the top position of the simulated button assembly.