Sensor fusion algorithm for handheld controller including Force Sensing Resistor (FSR)

文档序号:74753 发布日期:2021-10-01 浏览:15次 中文

阅读说明:本技术 用于包括力感测电阻器(fsr)的手持式控制器的传感器融合算法 (Sensor fusion algorithm for handheld controller including Force Sensing Resistor (FSR) ) 是由 J·G·莱因堡 于 2020-02-27 设计创作,主要内容包括:手持式控制器的逻辑可以基于由力感测电阻器(FSR)提供的力数据以及由触摸传感器提供的触摸传感器数据来实现传感器融合算法。示例性传感器融合算法可以用于响应于用户用高于阈值大小的力按压所述手持式控制器的控件而暂停针对所述触摸传感器至少相对于高水平值的校准调节,所述高于阈值大小的力可以由与所述控件相关联的FSR检测,所述高水平值对应于对所述控件的触摸。例如,可以响应于FSR值越过阈值即从低于所述阈值到高于所述阈值而暂停相对于所述高水平值的校准调节,并且可以响应于所述FSR值在相反方向上越过所述阈值而恢复所述校准调节。(Logic of the handheld controller may implement a sensor fusion algorithm based on force data provided by a Force Sensing Resistor (FSR) and touch sensor data provided by a touch sensor. An example sensor fusion algorithm may be used to suspend calibration adjustments for the touch sensor at least relative to a high level value in response to a user pressing a control of the handheld controller with a force above a threshold amount that may be detected by an FSR associated with the control, the high level value corresponding to a touch of the control. For example, calibration adjustments relative to the high level value may be suspended in response to the FSR value crossing a threshold, i.e., from below the threshold to above the threshold, and the calibration adjustments may be resumed in response to the FSR value crossing the threshold in the opposite direction.)

1. A system, comprising:

one or more processors;

a hand-held controller, the hand-held controller including a controller body, the controller body including:

at least one control configured to be pressed;

a touch sensor associated with the at least one control and configured to provide touch sensor data to the one or more processors indicative of a proximity of an object relative to the at least one control; and

a Force Sensing Resistor (FSR) associated with the at least one control and configured to provide force data to the one or more processors indicating a magnitude of a force pressing the at least one control; and

logic, the logic configured to:

performing a calibration adjustment for the touch sensor by adjusting a high level value indicating that the object contacts the at least one control in response to a criterion being met;

determining a first digitized FSR value based at least in part on the force data provided by the FSR;

determining that the first digitized FSR value exceeds a threshold, the first digitized FSR value exceeding the threshold indicating a transition from the object contacting the at least one control without pressing the at least one control to the object pressing the at least one control;

suspending the calibration adjustment in response to determining that the first digitized FSR value exceeds the threshold;

determining a second digitized FSR value based at least in part on the force data provided by the FSR;

determining that the second digitized FSR value is less than or equal to the threshold, the second digitized FSR value being less than or equal to the threshold indicating a transition from the object pressing the at least one control to the object contacting the at least one control without pressing the at least one control; and

restoring the calibration adjustment in response to determining that the second digitized FSR value is less than or equal to the threshold value.

2. The system of claim 1, wherein:

the touch sensor comprises a capacitive sensor configured to measure a capacitance value based on a proximity of the object relative to the at least one control;

the high level value represents a high level capacitance value corresponding to a capacitance value measured by the capacitive sensor when the object contacts the at least one control.

3. The system of claim 1, wherein:

the FSR is configured as a measurement range; and is

The threshold value is about 5% to about 15% of the range of values.

4. The system of claim 1, wherein:

setting the high level value to an existing value upon determining that the first digitized FSR value exceeds the threshold value; and is

Suspending the calibration adjustment includes avoiding increasing the high level value to a value greater than the existing value.

5. The system of claim 1, wherein suspending the calibration adjustment comprises:

prior to determining that the first digitized FSR value exceeds the threshold, determining a maximum value of a plurality of first digitized proximity values determined based on the touch sensor data provided by the touch sensor;

determining a minimum value of a plurality of second digitized proximity values determined based on the touch sensor data provided by the touch sensor after determining that the first digitized FSR value exceeds the threshold;

calculating an average between the maximum and the minimum; and

refraining from increasing the high level value to a value greater than the average value.

6. The system of claim 1, wherein performing the calibration adjustment for the touch sensor comprises:

determining an average proximity value based at least in part on the touch sensor data provided by the touch sensor over a previous number of samples;

comparing the average proximity value with the high level value set as an existing value; and

adjusting the high level value from the existing value to a new value that is greater than the existing value if the average proximity value exceeds the existing value.

7. The system of claim 1, wherein the object is a finger or a thumb, and wherein the at least one control is disposed on a head of the controller body and configured to be pressed by the finger or the thumb.

8. The system of claim 1, wherein the logic is further configured to:

determining a digitized proximity value based on the touch sensor data provided by the touch sensor; and

determining that the digitized closeness value exceeds the high level value,

wherein suspending the calibration adjustment is further responsive to determining that the digitized proximity value exceeds the high level value.

9. A computer-implemented method, comprising:

performing a calibration adjustment for a touch sensor associated with at least one control of a handheld controller by adjusting a high level value indicative of an object contacting the at least one control in response to a criterion being met;

determining a first digitized Force Sensing Resistor (FSR) value based at least in part on force data provided by an FSR associated with the at least one control;

determining that the first digitized FSR value exceeds a threshold;

suspending the performance of the calibration adjustment in response to the determination that the first digitized FSR value exceeds the threshold;

determining a second digitized FSR value based at least in part on the force data provided by the FSR;

determining that the second digitized FSR value is less than or equal to the threshold value; and

resuming the performance of the calibration adjustment in response to the determination that the second digitized FSR value is less than or equal to the threshold value.

10. The computer-implemented method of claim 9, wherein:

the touch sensor comprises a capacitive sensor configured to measure a capacitance value based on a proximity of the object relative to the at least one control; and is

The high level value represents a high level capacitance value corresponding to a capacitance value measured by the capacitive sensor when the object contacts the at least one control.

11. The computer-implemented method of claim 9, wherein:

the FSR is configured as a measurement range; and is

The threshold value is about 5% to about 15% of the range of values.

12. The computer-implemented method of claim 9, wherein:

setting the high level value to an existing value upon the determination that the first digitized FSR value exceeds the threshold value; and is

The suspending the performance of the calibration adjustment includes refraining from increasing the high-level value to a value greater than the existing value.

13. The computer-implemented method of claim 9, wherein the suspending the performance of the calibration adjustment comprises:

prior to said determining that the first digitized FSR value exceeds the threshold value, determining a maximum value of a plurality of first digitized proximity values determined based on touch sensor data provided by the touch sensor;

determining a minimum value of a plurality of second digitized proximity values determined based on the touch sensor data provided by the touch sensor after the determining that the first digitized FSR value exceeds the threshold;

calculating an average between the maximum and the minimum; and

refraining from increasing the high level value to a value greater than the average value.

14. The computer-implemented method of claim 9, further comprising:

determining a digitized proximity value based on touch sensor data provided by the touch sensor; and

determining that the digitized closeness value exceeds the high level value,

wherein the suspending the performance of the calibration adjustment is further in response to the determining that the digitized proximity value exceeds the high level value.

15. A system, comprising:

one or more processors;

a hand-held controller, the hand-held controller including a controller body, the controller body including:

at least one control configured to be pressed;

a touch sensor associated with the at least one control and configured to provide touch sensor data to the one or more processors indicative of a proximity of an object relative to the at least one control; and

a Force Sensing Resistor (FSR) associated with the at least one control and configured to provide force data to the one or more processors indicating a magnitude of a force pressing the at least one control; and

logic, the logic configured to:

performing a calibration adjustment for the touch sensor by adjusting a high level value indicating that the object contacts the at least one control in response to a criterion being met;

detecting a first transition from a first digitized FSR value less than or equal to a threshold value to a second digitized FSR value greater than the threshold value based at least in part on the force data provided by the FSR;

suspending the calibration adjustment in response to detecting the first transition;

detecting a second transition from a third digitized FSR value being greater than the threshold value to a fourth digitized FSR value being less than or equal to the threshold value based at least in part on the force data provided by the FSR; and

resuming the calibration adjustment in response to detecting the second transition.

16. The system of claim 15, wherein:

the touch sensor comprises a capacitive sensor configured to measure a capacitance value based on a proximity of the object relative to the at least one control; and is

The high level value represents a high level capacitance value corresponding to a capacitance value measured by the capacitive sensor when the object contacts the at least one control.

17. The system of claim 15, wherein:

the FSR measures a positive value when the object is not in contact with the touch sensor; and is

The threshold is set to a value greater than the positive value.

18. The system of claim 15, wherein:

setting the high level value to an existing value upon detection of the first transition; and is

The logic is further configured to suspend the calibration adjustment by avoiding increasing the high level value to a value greater than the existing value.

19. The system of claim 15, wherein suspending the calibration adjustment comprises:

determining a maximum value of a plurality of first digitized proximity values determined based on the touch sensor data provided by the touch sensor prior to detecting the first transition;

determining a minimum value of a plurality of second digitized proximity values determined based on the touch sensor data provided by the touch sensor after detecting the first transition;

calculating an average between the maximum and the minimum; and

refraining from increasing the high level value to a value greater than the average value.

20. The system of claim 15, wherein performing the calibration adjustment for the touch sensor comprises:

determining an average proximity value based at least in part on the touch sensor data provided by the touch sensor over a previous number of samples;

comparing the average proximity value with the high level value set as an existing value; and

adjusting the high level value from the existing value to a new value that is greater than the existing value if the average proximity value exceeds the existing value.

Background

The electronic gaming industry has become large and important and has spawned many innovations in software and related hardware. Various hand-held electronic game controllers have been designed, manufactured, and sold for various gaming applications. Some of these innovations are also applicable outside the electronic gaming industry, such as controllers for industrial machinery, defense systems, robots, and the like. The use of Virtual Reality (VR) systems is receiving widespread attention in the present day, both within and outside the electronic gaming industry, and technological development is on the rise. Controllers for VR systems are required to perform a number of different functions and often meet stringent (and sometimes even conflicting) design constraints while optimizing certain desired characteristics (e.g., ease of use, etc.).

One exemplary purpose of the controller used in VR systems is to mimic natural interactions as much as possible, such as grasping, throwing, squeezing, etc. To achieve this, various types of sensors have been used, including Force Sensing Resistors (FSRs) that use variable resistance to measure the amount of force applied to the FSR. However, due to the materials used in the construction of FSRs, existing controllers with FSRs tend to exhibit rather short response curves (e.g., force versus resistance response curves), such that they are only used for binary (e.g., on/off) switches. This is undesirable in VR systems. Furthermore, a mylar-based FSR requires a large and bulky plug connector, which means that the FSR occupies a large footprint, is difficult to miniaturize, and cannot be directly welded to other components. Another disadvantage of using mylar in the construction of an FSR is that it cannot withstand the high temperatures of a reflow oven, which limits the ways in which the manufacturing costs of a mylar-based FSR can be reduced. It is also known to construct an FSR having a Printed Circuit Board (PCB) as the base substrate, rather than using mylar for the base substrate. However, PCB substrates also exhibit abbreviated (and sometimes non-monotonic) response curves, making these types of FSRs unsuitable for VR applications. Accordingly, there is a need in the art for an improved controller design that can improve VR systems and/or better facilitate user operation.

Drawings

Fig. 1 depicts a controller according to an exemplary embodiment of the present disclosure, wherein the hand holder is in an open position.

Fig. 2 depicts the controller of fig. 1 in a hand with the palm of the user open upward.

FIG. 3 depicts the controller of FIG. 1 in a user's gripping hand.

FIG. 4 depicts the controller of FIG. 1 in a user's palm-down hand.

Fig. 5 depicts a pair of controls with a hand retainer in an open position according to an exemplary embodiment of the present disclosure.

Fig. 6A depicts a front view of a right hand controller according to another exemplary embodiment of the present disclosure.

Fig. 6B depicts a rear view of the right hand controller of fig. 6A.

Fig. 7A depicts a window for an infrared light sensor according to an embodiment of the present disclosure.

Fig. 7B depicts a window for an infrared light sensor according to another embodiment of the present disclosure.

FIG. 8 shows a side view of the right hand control of FIG. 6A with the housing of the tubular housing partially enclosing the handle of the control removed to reveal instruments on its inner surface.

FIG. 9A depicts a cross section of the right hand control of FIG. 6A with the outer shell of the tubular housing partially encasing the handle of the control removed.

Fig. 9B depicts the cross-section of fig. 9A, except that the housing is mounted in its normal operating position.

Fig. 10A depicts a front view of a right hand controller with a partially closed hand holder according to another exemplary embodiment of the present disclosure.

Fig. 10B depicts a front view of the controller of fig. 10A, except that the hand holder is fully open.

Fig. 11A depicts a front view of a head and handle component of a controller, including a hand-fixator anchor that can move circumferentially around the head, according to an exemplary embodiment of the present disclosure.

Fig. 11B depicts the head and handle components of fig. 11A, except that the face plate is removed from the head to expose lockable collar portions that can facilitate selective circumferential adjustment of the hand fixator anchor about the head.

Fig. 12A depicts a partially assembled controller with the hand holder components removed, according to an alternative embodiment of the present disclosure.

FIG. 12B depicts a close-up view of the channel features of the controller of FIG. 12A.

Fig. 12C is a cross-sectional view of the channel depicted in fig. 12B.

Fig. 13A depicts a Force Sense Resistor (FSR) according to an exemplary embodiment of the present disclosure.

FIG. 13B depicts a front view of the FSR of FIG. 13A.

FIG. 13C depicts a cross-section of the FSR of FIG. 13B taken along section A-A showing a first substrate made of polyimide.

FIG. 14 depicts various front views of a phase-by-phase FSR in an exemplary process of constructing the FSR.

Fig. 15 depicts an exemplary layer of an FSR according to another embodiment of the present disclosure. Fig. 15 is not to scale. In contrast, FIG. 15 is presented to illustrate exemplary material layers and is not meant to represent an actual cross-sectional view of an FSR.

Fig. 16 depicts an exemplary layer of an FSR according to another embodiment of the present disclosure. Fig. 16 is not to scale. In contrast, FIG. 16 is presented to illustrate an exemplary material layer and is not meant to represent an actual cross-sectional view of an FSR.

Fig. 17 depicts an exemplary layer of an FSR according to another embodiment of the present disclosure. Fig. 17 is not to scale. In contrast, FIG. 17 is presented to illustrate an exemplary material layer and is not meant to represent an actual cross-sectional view of an FSR.

Fig. 18A depicts a front view of an FSR prior to a folding step for forming a complete FSR, according to another embodiment of the present disclosure.

FIG. 18B depicts a front view of the FSR of FIG. 18A after performing a folding step.

FIG. 18C depicts a cross-section of the FSR of FIG. 18A taken along section B-B.

FIG. 18D depicts exemplary layers of the FSR of FIG. 18A. Fig. 18D is not to scale. In contrast, fig. 18D is presented to illustrate an exemplary material layer and is not meant to represent an actual cross-sectional view of an FSR.

FIG. 19 is a flow chart of an exemplary process for manufacturing an FSR.

FIG. 20 illustrates an exemplary User Interface (UI) that may be used to configure the FSR-based input mechanism of the controller for an electronic system to operate in different pressure modes.

FIG. 21 depicts a force versus time graph illustrating a "one-touch-and-send" style of "soft press" based on FSR input.

FIG. 22 depicts a force versus time graph illustrating a "sweep" style of "soft presses" based on FSR input.

FIG. 23 depicts the controller of FIG. 1 having various sensors disposed within the controller body.

FIG. 24 is a flow chart of an exemplary process for recalibrating the FSR of the handheld controller based on touch data provided by the touch sensor.

FIG. 25 is a flow diagram of an exemplary process for ignoring stray inputs at the FSR of a handheld controller based on touch data provided by a touch sensor for a proximity control.

FIG. 26 is a flow chart of an exemplary process for adjusting the FSR input threshold for the FSR based on the size of the hand detected by the proximity sensor array in the handle of the handheld controller.

FIG. 27 is a flow diagram of an exemplary process for activating and deactivating bindings for controls of a handheld controller based on FSR input values.

FIG. 28 is a flow diagram of an exemplary process for using a time delay to determine whether to ignore an FSR input for a first threshold of a plurality of thresholds.

FIG. 29 illustrates exemplary components of a handheld controller, such as the controller of FIG. 1.

FIG. 30 depicts a graph of a technique for pausing calibration adjustments for a touch sensor relative to a high level value when a user presses a control of a handheld controller with a force above a threshold magnitude.

FIG. 31 is a flow chart of an exemplary process for suspending calibration adjustments for a touch sensor relative to a high level value when a user presses a control of a handheld controller with a force above a threshold magnitude.

FIG. 32 is a flow chart of an exemplary process for performing continuous calibration adjustments for a touch sensor associated with a control of a handheld controller.

FIG. 33 is a flow diagram of an exemplary sub-process of suspending calibration adjustments for a touch sensor.

FIG. 34 is a flow diagram of another exemplary sub-process of suspending calibration adjustments for a touch sensor.

Detailed Description

Described herein, among other things, are Force Sensing Resistors (FSRs) configured with a first substrate made of polyimide disposed below a resistive and flexible second substrate. The first substrate has a conductive material (e.g., a plurality of interdigitated metal fingers) disposed on a front surface thereof. One or more spacer layers are also interposed between the first and second substrates such that a central portion of the second substrate overhangs the first substrate. An actuator is disposed on the second substrate to transfer a force to a front surface of the second substrate. When this occurs, the central portion of the second substrate flexes inward toward the first substrate, and some of the resistive material on the back surface of the second substrate becomes in contact with some of the conductive material on the front surface of the first substrate. As the force increases, the surface area of the conductive material in contact with the resistive material increases. Also, as the force is reduced, the surface area of the conductive material in contact with the resistive material is reduced. This change in surface area contact under variable force causes the FSR to act as a variable resistor whose resistance value is controlled by the force.

Due at least in part to the polyimide material used for the first substrate, the disclosed FSR exhibits characteristics that enable its use in controllers of VR systems and other possible end-use applications. For example, the polyimide substrate allows for selective soldering of the output terminals (or leads) of the FSR directly to a board (e.g., PCB) without the use of bulky pin connectors, which results in a smaller footprint for the FSR, as compared to a mylar-based FSR that requires large bulky pin connectors. Because polyimide is often used as the material of choice for flex circuits, the polyimide substrate of the FSR can conveniently connect the FSR to other flex circuits, which can reduce the cost of manufacturing the disclosed FSR, as compared to the cost of manufacturing a conventional FSR. Polyimide can also withstand high temperatures, such as those of a reflow oven, opening the door to a cost effective manufacturing process. Further, the polyimide exhibits desirable characteristics such as less hysteresis, higher repeatability when used as the first substrate of the disclosed FSR as compared to conventional FSRs. In general, the disclosed FSR (with the first substrate made of polyimide) exhibits a force-resistance response curve that simulates a real analog input, which enables the FSR to be used in a controller of a VR system.

Also disclosed herein is a controller for an electronic system (e.g., a VR system) that includes the disclosed FSR having a first substrate made of polyimide. The controller may be configured to be held by a user's hand and may include a controller body. The disclosed FSR may be mounted on a plane of a structure within the controller body, such as a structure mounted within a handle of the controller body or a structure mounted below at least one thumb-operated control included on a head of the controller body. When implemented in a controller for an electronic system, the FSR is configured to measure a resistance value corresponding to a force applied to a relevant portion of the controller (e.g., a force applied to an exterior surface of a handle, to at least one thumb-operated control, etc.).

Implementing FSR in a controller for a VR system allows the range of natural interactions to be extended beyond the current state of use of conventional controllers. For example, the electronic system and/or the controller may determine, via the FSR, a force of the user squeezing a handle of the controller and/or a force of the user depressing a thumb-operated control. Because the disclosed FSRs exhibit an ideal response curve, such controllers can convert varying force presses or squeezes into varying digitized values that can be used in electronic games to control game play patterns (e.g., breaking rock, squeezing balloons, switching available weapons available for use by a game character, etc.). An FSR with desirable response characteristics may replace conventional mechanical switches to reduce user fatigue and/or reduce accidental actuation of controls. For example, the FSR may act as a switch by detecting when the applied force exceeds a threshold. This threshold may be dynamically adjusted. For example, the threshold may be adjusted to a lower value to reduce hand fatigue during the game (e.g., when the user presses a control associated with the FSR to frequently fire a gun during the game). In contrast, the threshold value may be adjusted to a higher value to reduce instances of accidental control operations, which may be useful in exciting or exciting games where the user may react to stimuli in the video game.

Also disclosed herein is a handheld controller that includes logic for implementing a sensor fusion algorithm based on force data provided by the FSR of the controller in combination with touch data or proximity data provided by a touch sensor or proximity sensor array, respectively. An exemplary sensor fusion algorithm can be used to recalibrate the FSR when an object contacts a control associated with the FSR as detected by the touch sensor. For example, the logic may determine, based on touch data provided by the touch sensor, that an object has come into contact with a control on the controller body that is configured to be pressed. The logic may also determine a resistance value measured by the FSR based on force data provided by the FSR when an object has come into contact with the control, and may associate the resistance value with a digitized zero FSR input value to "recalibrate" the FSR upon detection of a touch on the control.

Another exemplary sensor fusion algorithm may be used to ignore stray inputs detected by the FSR when an object is in contact with a nearby control. For example, the logic may determine a resistance value measured by the FSR based on the force data provided by the FSR, the resistance value corresponding to a digitized FSR input value that meets or exceeds a threshold value that is met to register an FSR input event for the first control of the handheld controller. The logic may also determine that the object is in contact with a second control of the handheld controller proximate to the first control based on touch data provided by the touch sensor when the FSR measures the FSR resistance value, and may prevent registration of the FSR input event when the object is in contact with the second control.

Another exemplary sensor fusion algorithm may be used to detect a hand size of a hand grasping the controller handle, as detected by the proximity sensor array, and adjust a threshold force used to register the FSR input event at the FSR based on the hand size. This may be useful for making force-based input easier for users with smaller hands (more difficult, but not difficult, for users with larger hands). For example, an array of proximity sensors spatially distributed on a handle of a handheld controller may be used to determine a size of a hand that is gripping the handle, and the logic may adjust the threshold to an adjusted threshold that is satisfied for registering FSR input events with respect to the handle based on the size of the hand.

An exemplary sensor fusion algorithm can be used to suspend calibration adjustments for the touch sensor at least relative to a high level value in response to a user pressing a control of the handheld controller with a force above a threshold amount that can be detected by an FSR associated with the control, the high level value corresponding to a touch to the control. For example, logic of the handheld controller may monitor touch sensor data provided by a touch sensor associated with a control of the handheld controller for recalibration or resetting of at least one high level value within a range of values measured by the touch sensor. For example, the high level value may correspond to an object touching the control and partially pressing the control. When using a hand-held controller, calibration of the touch sensor works by iteratively adjusting the high-level value such that the high-level value is calibrated to a value that correctly represents the digitized proximity value output by the touch sensor each time an object (e.g., a finger) makes contact with the control without pressing the control. One exemplary reason for performing these calibration adjustments during use of the handheld controller is that the touch sensor data may drift over time for various reasons. For example, as use of the handheld controller proceeds over time, the degree of perspiration (or dryness) of the user's hand may change, and/or the humidity, temperature, and/or additional environmental parameters may change over time, which may affect the values measured by the touch sensor (e.g., when the touch sensor is a capacitive sensor, the measured capacitance may be affected due to wetting on the user's hand, such as by perspiration). Accordingly, calibration of the touch sensor accommodates these types of changes by calibrating at least the high level value to a value that indicates that the object is in contact with the control (and not pressing), e.g., rather than the object hovering over the control without touching the control, or the object pressing the control.

When a user presses a control of a handheld controller, the touch sensor associated with the control (which is calibrated as described above and elsewhere herein) may be improperly calibrated. This may be because when the user's finger (or another object) is initially in contact with the control, the touch sensor measures a first digitized proximity value (e.g., a value of 1000 in arbitrary units), and when the user transitions from touching to pressing hard on the control, the user's finger will typically spread out over the top surface of the control, so that the finger covers a larger area than before the pressing. Further, when a user's finger presses on the control, the top surface of the control may even deflect inward toward the controller body. This causes the digitized value measured by the touch sensor to change in accordance with the pressure applied to the control. For example, when the user presses the control, the touch sensor may measure a second digitized proximity value (e.g., 1500 in arbitrary units) that is significantly greater than a first digitized proximity value (e.g., 1000) measured when the user touches the control without pressing. This phenomenon may adversely affect calibration of the touch sensor because when the user presses the control (especially if done repeatedly), the calibration algorithm interprets a higher digitized proximity value (e.g., value 1500 when the user presses the control) as a high level value corresponding to the user touching the control without pressing. Subsequently, after recalibrating to this false high level value, the user may reduce the applied pressure and revert to touching the control without pressing. At this point, the calibration algorithm interprets the digitized proximity value as a value indicating that the user's finger is lifted off the control, at which point the user may actually still be touching the control. Such incorrect calibration may adversely affect the operability of a system using a handheld controller with calibration tracking of the touch sensors of the controls. For example, in a VR application, a user's virtual hand displayed on a display screen may drop a virtual object when the user of the handheld control does not intend to drop the virtual object (e.g., the user may still hold the handheld controller). As another example, the user may intend to release their grip a small amount (e.g., transition from a tight grip to a light grip), but the VR application may interpret the touch sensor data as the user releasing the virtual object with a loose hand, which is not the user's intent to release pressure slightly.

To address these and other issues, disclosed herein is an example sensor fusion algorithm that may be used to suspend calibration adjustments for a touch sensor in response to a user pressing a control of a handheld controller with a force above a threshold amount that may be detected by an FSR associated with the control, at least with respect to a high level value that corresponds to a touch to the control. That is, the sensor fusion algorithm can use the force data provided by the FSR to facilitate an improvement in the output of a touch sensor, such as a capacitive sensor. For example, logic of the handheld controller may perform calibration adjustments for the touch sensor by adjusting a high level value indicating that an object contacts a control associated with the touch sensor in response to a criterion being met. The logic may also determine that the first digitized FSR value exceeds a threshold (which indicates a transition from the object contacting the control to pressing the control), and in response to exceeding the threshold, the logic may suspend calibration adjustments at least relative to the high-level value. Subsequently, in response to determining that the second digitized FSR value is less than or equal to the threshold value (which indicates a transition from the object pressing the control to contacting the control), the logic may resume the calibration adjustment at least relative to the high-level value.

By suspending and resuming calibration adjustments for the touch sensor relative to high level values based on the force data provided by the FSR, the high level values of the touch sensor will not be calibrated to increased values when an object (e.g., a finger) presses a control of the handheld controller with a force above a threshold magnitude. This pause technique avoids "double counting" input to the controls of the hand-held controller. In other words, the FSR of the control can take over the touch sensor when the user transitions from touching the control to pressing the control. Likewise, when the user transitions from pressing the control to touching the control without applying pressure, the touch sensor may instead take over for the FSR. The mechanism of pausing and resuming calibration adjustment relative to a high level value of the touch sensor improves calibration of the touch sensor because the high level value will correctly correspond to the state in which the object contacts the control, rather than a different state in which the object is spaced from the control, or the state in which the object presses the control.

Fig. 1-4 illustrate a controller 100 for an electronic system according to an exemplary embodiment of the present disclosure. The controller 100 may be utilized by an electronic system such as a VR electronic gaming system, a robot, a weapon, or a medical device. The controller 100 may include a controller body 110 having a handle 112, and a hand holder 120 that holds the controller 100 in a hand of a user (e.g., the user's left hand). The handle 112 includes a tubular housing, which may optionally be substantially cylindrical. In this case, the substantially cylindrical shape does not necessarily have a constant diameter or a perfectly circular cross-section.

In the embodiment of fig. 1-4, the controller body 110 can include a head (between the handle 112 and the distal end 111) that can optionally include one or more thumb-operated controls 114, 115, 116. For example, a tilt button or any other button, knob, scroll wheel, joystick or trackball may be considered a thumb-operated control if they can be conveniently manipulated by the user's thumb during normal operation when the controller 100 is held in the user's hand.

The controller 100 preferably includes a tracking member 130 fixed to the controller body 110, and optionally includes two noses 132, 134, each protruding from a corresponding one of two opposing distal ends of the tracking member 130. In the embodiment of fig. 1-4, the tracking member 130 is preferably, but not necessarily, a tracking arc having an arcuate shape. The tracking member 130 includes a plurality of tracking transducers disposed therein, preferably at least one tracking transducer disposed in each protruding nose 132, 134. Additional tracking transducers may also be provided in the controller body 110, preferably at least one distal tracking transducer provided adjacent the distal end 111.

The aforementioned tracking transducers may be tracking sensors that are responsive to electromagnetic radiation (e.g., infrared light) emitted by the electronic system, or these tracking transducers may alternatively be tracking beacons that emit electromagnetic radiation (e.g., infrared light) received by the electronic system. For example, the electronic system may be a VR gaming system that broadly broadcasts (i.e., applies) pulsed infrared light to the controller 100, and the plurality of tracking transducers of the tracking member 130 are infrared light sensors that may receive the broadcast pulsed infrared light or are blocked from receiving the pulsed infrared light. The tracking transducers in each nose 132, 134 (e.g., 3 sensors in each nose) preferably hang over the user's hand on each distal end of the tracking member 130, thus better exposing (around the user's hand) to receive or transmit electromagnetic radiation emitted by or to the electronic system at more angles without creating unacceptable shielding.

Preferably, the tracking member 130 and the controller body 110 are made of a substantially rigid material, such as hard plastic, and are securely fixed together so that they do not significantly translate or rotate relative to each other. In this way, tracking of the translation and rotation of the series of tracking transducers in space is preferably not complicated by the motion of the tracking transducers relative to each other. For example, as shown in fig. 1 to 4, the tracking member 130 may be fixed to the controller main body 110 by being joined to the controller main body 110 at two positions. Hand holder 120 may be attached to controller 100 (controller body 110 or tracking member 130) near these two locations so that the palm of the user rests on the outer surface of handle 112 between these two locations.

In certain embodiments, the tracking member 130 and the controller body 110 may comprise a unitary, monolithic piece with material continuity, rather than being assembled together. For example, the tracking member 130 and the controller body 110 may be molded together by a single injection molding process step, resulting in one unitary hard plastic part that includes both the tracking member 130 and the controller body 110. Alternatively, the tracking member 130 and the controller body 110 may be first manufactured separately and then assembled together. Either way, the tracking member 130 may be considered to be fixed to the controller body 110.

The hand retainer 120 is shown in an open position in fig. 1. The hand holder 120 can be selectively biased in the open position by a curved resilient member 122 to facilitate insertion of the user's left hand between the hand holder 120 and the controller body 110 when the user is gripping the controller and vision is blocked by VR glasses. For example, the curved resilient member 122 may optionally be a resiliently curved flexible metal strip, or may comprise an alternative plastic material that is substantially resiliently bendable, such as nylon. The curved elastic member 122 may optionally be partially or completely inside or covered by a pad or fabric material 124 (e.g., a neoprene sock) for the comfort of the user. Alternatively, the pad or fabric material 124 may be disposed on (e.g., adhered to) only the side of the curved elastic member 122 that faces the user's hand.

The length of the hand holder 120 optionally may be adjustable, for example by including a pull cord 126 that is tightened by a spring-biased cord guide 128. The drawstring 126 may optionally have excess length that can be used as a lanyard. The sheath 124 optionally may be attached to a pull cord. In certain embodiments, the curved elastic member 122 may be pre-tensioned by the tension of a cinched draw cord 126. In such embodiments, the tension applied by the curved elastic member 122 to the hand holder 120 (to bias it in the open position) causes the hand holder to automatically open when the draw cord 126 is not tightened. The present disclosure also contemplates alternative conventional methods of adjusting the length of the hand holder 120, such as cleats, elastic bands (which temporarily stretch when the hand is inserted, thereby applying elastic tension to press against the back of the hand), adjustable length hook and loop strap attachments, and the like.

Hand holder 120 may be disposed between handle 112 and tracking member 130 and configured to contact the back of a hand of a user. Fig. 2 shows the controller 100 during operation with the user's left hand inserted therein, but without gripping the controller body 110. In fig. 2, hand retainer 120 is closed and tightened on the hand to physically bias the palm of the user's hand against the outer surface of handle 112. In this way, the hand holder 120 can hold the controller 100 on the hand when closed, even if the hand does not grip the controller main body 110. Fig. 3 and 4 depict the controller 100 during operation, when the hand holder 120 is closed, and the hand is gripping the controller body 110 and the thumb is operating one or more thumb-operated controls (e.g., the trackpad 116).

The handle 112 of the controller body 110 preferably includes an array of proximity sensors spatially distributed partially or completely around the outer surface of the handle. Although the array may include a grid, the proximity sensors in the array need not be of equal size and need not have equal spacing between them. The proximity sensor array preferably responds to the proximity of a user's finger to the outer surface of the handle 112. For example, the proximity sensor array may be a plurality of capacitive sensors embedded beneath an outer surface of the handle 112, wherein the outer surface comprises an electrically insulating material. The capacitance between such a capacitive sensor array and a portion of a user's hand is inversely proportional to the distance between them. Capacitance can be detected by connecting an RC oscillator circuit to one element in the capacitive sensor array, and noting that the time constant of the circuit (and the period and frequency of oscillation) will vary with capacitance. In this manner, the circuit can detect the release of the user's finger from the outer surface of the handle 112.

When hand holder 120 (e.g., a hand strap) is tightly closed, not only can controller 100 be prevented from falling out of the hand, but excessive translation of the finger relative to the proximity sensor array of handle 112 can also be prevented, thereby more reliably sensing finger motion. The electronic system may include algorithms embodying anatomically possible movements of the fingers to better use sensing from the proximity sensor array to present splaying of the hands of the controlled character, finger pointing, or other movements of the fingers relative to the controller or to each other. As such, movement of the controller 100 and/or fingers by the user may help control VR gaming systems, defense systems, medical systems, industrial robots, or machines or other devices. In VR system applications (e.g., for gaming, training, etc.), the system may present a throwing motion based on tracking the motion of the transducer, and may present a release of the thrown object based on a sensed release of the user's finger from the outer surface of the controller handle.

Thus, the functionality of the hand holder 120 (allowing the user to "let go" of the controller 100 without the controller 100 actually becoming detached from the hand or being thrown or dropped onto the floor) may enable additional functionality of the controlled electronic system. For example, if release and resumption of the user's grip on the handle 112 of the controller body 110 is sensed, such release or grip may be incorporated into the game to display (e.g., display in VR) the object being thrown or gripped. Hand holder 120 may allow this function to be accomplished repeatedly and safely. For example, the position of the hand holder 120 in the embodiments of fig. 1-4 may help the tracking member 130 protect the back of the user's hand from real-world impacts, such as when the user moves in response to a prompt sensed in the VR environment (e.g., when actually occluded by VR glasses).

In certain embodiments, the controller 100 can include a rechargeable battery disposed within the controller body 110, and the hand holder 120 (e.g., hand holder strap) can include a conductive charging wire electrically coupled to the rechargeable battery. The controller 100 preferably also includes a Radio Frequency (RF) transmitter for communicating with the rest of the electronic system. Such an RF transmitter may be powered by the rechargeable battery and may be responsive to the thumb-operated controls 114, 115, 116, a proximity sensor in the handle 112 of the controller body 110, and/or a tracking sensor in the tracking member 130.

As shown in fig. 5, in certain embodiments, the controller 100 may be the left controller of a pair of controllers including a similar right controller 200. In certain embodiments, the controllers 100 and 200 may (together) track the motion and grip of both hands of the user simultaneously, for example to enhance the VR experience.

Fig. 6A depicts a front view of a right hand controller 600 according to another exemplary embodiment of the present disclosure. Fig. 6B depicts a rear view of the right hand controller 600. The controller 600 has a controller body that includes a head 610 and a handle 612. In the embodiment of fig. 6A-6B, the head 610 includes at least one thumb-operated control A, B, 608, and may also include a control (e.g., trigger 609) configured to be operated by an index finger. The handle 612 comprises a tubular housing partially enclosed by a shell 640.

In the embodiment of fig. 6A-6B, the tracking member 630 is secured to the controller body at one end of the head 610 and handle 612. Hand retainer 620 is configured to physically bias the palm of the user's hand against housing 640 between head 610 and the end of handle 612. Hand holder 620 is preferably disposed between handle 612 and tracking member 630, and may include a hand securing strap that is adjustable in length and configured to contact the back of a user's hand. In the embodiment of fig. 6A-6B, hand fixator 620 optionally includes a pull cord 628, and optionally may be adjustable in length by a cord lock 626 (near the distal end of handle 612) that selectively prevents pull cord 628 from sliding at the location of cord lock 626.

In the embodiment of fig. 6A-6B, tracking transducers 632, 633 are disposed on tracking member 630, with tracking transducer 633 disposed on a protruding nose at the opposite distal end of tracking member 630. Additional tracking transducers 634 are optionally provided on the distal region of the head 610. Tracking transducers 632, 633 and 634 may be tracking sensors that are responsive to electromagnetic radiation (e.g., infrared light) emitted by an electronic system (e.g., a virtual reality gaming system), or may be tracking beacons that emit electromagnetic radiation (e.g., infrared light) received by the electronic system. For example, the electronic system may be a VR gaming system that broadly broadcasts (i.e., applies) pulsed infrared light to the controller 600, and the tracking transducers 632, 633 and 634 are infrared light sensors that receive the broadcast pulsed infrared light. The response of such tracking sensors may be transmitted back to the electronic system, and the system may interpret such response to effectively track the position and orientation of the controller 600.

One or more of the tracking transducers 632, 633, 634 may optionally be configured as shown in the embodiment of fig. 7A, or alternatively in the embodiment of fig. 7B, or alternatively in a conventional manner not shown. The lower portion of fig. 7A depicts an exploded perspective view of infrared light sensor 750 electrically connected to flex circuit 751, shown below the rectangular portion of upper cover fenestrated housing wall 755, which comprises an infrared-opaque plastic. Fenestration housing wall 755 includes a window 756. Window 756 preferably comprises a polycarbonate plastic that is transmissive to infrared light and may include an underside recess to accommodate the thickness of infrared light sensor 750.

According to the embodiment of fig. 7A, the fenestrated housing wall (e.g., the outer structure of tracking member 630, or head 610 of fig. 6A) may be made by a so-called "two-shot" injection molding process, whereby a majority of the housing wall is made of infrared-opaque plastic, but infrared-transmissive plastic is disposed in window 756 above infrared light sensor 750.

The upper portion of fig. 7A depicts a cross-sectional view of the assembled infrared light sensor 750, flex circuit 751, and fenestration housing wall 755. The infrared light, which is shown in fig. 7A as three downward arrows incident on the window 756 from above, passes through the window 756 and is received by the infrared light sensor 750 below. Because housing wall 755 comprises an infrared-opaque plastic, infrared light that strikes the housing wall does not pass through, and a portion of it can be reflected back into the window for reception by infrared light sensor 750. In this manner, although a majority of housing wall 755 comprises an infrared-opaque plastic, window 756 allows infrared light to affect infrared light sensor 750 such that infrared light sensor 750 only receives infrared light from a preferred angular range.

Alternatively, one or more of the tracking transducers 632, 633, 634 may optionally be configured as shown in the embodiment of fig. 7B. The lower portion of fig. 7B depicts an exploded perspective view of infrared light sensor 750, shown below a rectangular portion of upper cover housing wall 758 comprising an IR-opaque plastic, as electrically connected to flex circuit 751. The housing wall 758 is coated with an infrared opaque film 757 that is patterned to include a window 759 (there is no infrared opaque film 757 at the window).

The upper portion of fig. 7B depicts a cross-sectional view of assembled infrared light sensor 750, flex circuit 751, housing wall 758, and IR-opaque film 757. Infrared light, shown in fig. 7B as three downward arrows impinging on housing wall 758 from above, passes through window 759 in infrared light opaque film 757, through housing wall 758 there, and is received by infrared light sensor 750 below. Because the housing wall 758 comprises plastic that is transmissive to infrared light, infrared light striking the housing wall may enter it and be lost, and may inadvertently and undesirably reach nearby sensors via internal reflection. In this manner, window 759 in infrared light opaque film 757 allows infrared light to primarily affect infrared light sensor 750.

Fig. 8 shows a side view of the right hand controller 600 with the housing 640 partially encasing the tubular housing of the handle 612 removed to reveal the instruments on its inner surface. In the embodiment of fig. 8, the instrument may include an array of proximity sensors 800 spatially distributed on an interior surface of the housing 640, the array of proximity sensors 800 being responsive to the proximity of a user's finger to the housing 640. The proximity sensors 800 of the array need not be of equal size, nor need they be regularly or equally spaced from each other. In certain embodiments, the array of proximity sensors 800 may preferably be a plurality of capacitive sensors that may be connected to a flexible circuit that is bonded to the inner surface of the housing 640. In the embodiment of fig. 8, the housing 640 includes a first electrical connector portion 805 that is connectable to a mating second electrical connector portion of the handle 612 (as shown in more detail in fig. 9A-9B).

Fig. 9A-9B depict cross-sections of the right hand controller 600 of fig. 6A, showing that the controller handle optionally may include tubular housing portions 612a, 612B longitudinally separated by a seam 613, wherein the tubular housing portions 612a and 612B are contiguous. In fig. 9A, the housing 640 is shown detached from the rest of the handle. Fig. 9B depicts the cross-section of fig. 9A, except that the housing 640 is mounted in its normal operating position. In the embodiment of fig. 9A-9B, the first electrical connector portion 805 of the housing 640 is shown mated and connectable to the second electrical connector portion 905 of the controller handle.

In the embodiment of fig. 9A-9B, housing 640 partially encases tubular housings 612a, 612B, preferably overlapping longitudinal seam 613, so that longitudinal seam 613 can be positioned to optimize the manufacturing process, rather than to accommodate the desired circumferential position of proximity sensor array 800. In certain embodiments, the outer shell 640 overlaps a circumferential portion C of the tubular housing 612a, 612b of the handle, and the circumferential portion C angularly spans at least 100 degrees but no more than 170 degrees of the entire circumference of the tubular housing 612a, 612b of the handle. In certain embodiments, such circumferential overlap may enable the proximity sensor array 800 to sense the proximity of a desired portion of a user's finger or palm (e.g., the region of the hand most indicative of grasping).

The tubular housing 612a, 612b of the handle need not have a circular cross-section, and the word "circumference" is used herein regardless of whether the tubular housing 612a, 612b of the handle has a circular cross-section. Here, the term "circumference" refers to the entire circumference of the tubular housing 612a, 612b around the handle, which may be circular if the tubular housing 612a, 612b is a right circular hollow cylinder, but closed shapes other than circular if the tubular housing is non-cylindrical or hollow prismatic in shape.

In the embodiment of fig. 9A-9B, a Printed Circuit Board (PCB)920 may be mounted within the tubular housing 612a, 612B of the handle, with the second electrical connector portion 905 electrically coupled to the PCB 920. The PCB920 optionally includes a Force Sensing Resistor (FSR)922 and the controller may further include a plunger 924 that transfers compressive forces applied via the housing 640 inwardly to the FSR 922 toward the outside of the tubular housings 612a, 612b of the handle. In certain embodiments, the FSR 922 in combination with the proximity sensor array 800 may facilitate sensing the onset of a user's grip and the relative strength of such grip by the user, which may be advantageous for certain gaming functions.

In certain embodiments, the outer shell 640 has a shell thickness (measured radially in fig. 9A-9B) that is less than one third of the shell wall thickness of the tubular shell portion 612a or 612B of the handle. In those embodiments, such thickness non-uniformity may improve the sensitivity of the proximity sensor array 800 relative to alternative embodiments in which the proximity sensor array 800 is disposed on or in the tubular housing 612a, 612b of the handle.

Fig. 10A depicts a front view of a right hand controller 200 having a partially closed hand retainer 220 (e.g., a hand securing strap) according to another exemplary embodiment of the present disclosure. Fig. 10B depicts a front view of the controller 200, except that the hand holder 220 is fully open. In the embodiment of fig. 10A-10B, the controller 200 includes a controller body having a head 210 and a handle 212. The head 210 abuts the handle 212 at a neck region 211 of the controller 200. The handle 212 preferably includes an array of proximity sensors spatially distributed just below its outer surface, and preferably responsive to the proximity of a user's finger to the outer surface of the handle 212.

In the embodiment shown in fig. 10A-10B, head 210 includes thumb-operated controls A, B and 208. The controller 200 also includes a tracking member 230 that is preferably secured to the controller body at the distal ends of the head 210 and handle 212. Tracking member 230 preferably includes a plurality of tracking transducers, which may be sensors responsive to electromagnetic radiation emitted by the electronic system (e.g., pulsed infrared light emitted by a virtual reality gaming system), or tracking beacons that emit electromagnetic radiation to be received by the electronic system. In the embodiment of fig. 10A-10B, the tracking member 230 is preferably, but not necessarily, a tracking arc having an arcuate shape. Hand holder 220 is preferably disposed between handle 212 and tracking arc 230.

In the embodiment of fig. 10A-10B, the controller 200 includes a pull cord 228 and a cord lock 226 near the distal end of the handle 212. The cord lock 226 may selectively prevent the draw cord 228 from sliding at the cord lock 226. In the embodiment of fig. 10A, as the draw cord 228 is pulled progressively further past the cord lock 226, the hand retainer 220 is pulled tighter into a closed position (as indicated by the motion arrows depicted in fig. 10A). The closed position physically biases the user's palm against the outer surface of the handle 212.

In the embodiment of fig. 10A-10B, hand retainer 220 preferably includes a resilient member (e.g., an inner or outer resiliently deformable strip, such as a metal strip) that biases hand retainer 220 toward the open position shown in fig. 10B. In the embodiment of fig. 10B, when the user selectively releases the cord lock 226 and allows the draw cord 228 to slide relative thereto, the pre-load bias towards straightening the elastically deformed elastic member causes the hand holder 220 to naturally open (as indicated by the motion arrows depicted in fig. 10B). This open position may facilitate insertion or extraction of the user's hand from the controller 200, particularly when the user's line of sight may be obstructed by wearing virtual reality glasses.

Fig. 11A depicts a front view of the head 210 and handle 212 components of the controller 200, including a hand-fixator anchor 302 that is adjustable to move circumferentially around the head 210. Fig. 11B depicts the same assembly of head 210 and handle 212, except that the faceplate has been removed from head 210 to expose a lockable collar portion 311 that can facilitate selective circumferential adjustment of hand fixator anchor 302 about head 210.

In the embodiment of fig. 11B, lockable collar portion 311 is translatable along an arcuate path defined by inner arcuate guide 315. The user may selectively lock the lockable collar portion 311 to prevent further movement of the anchor 302 around the periphery of the head 210. Referring now to fig. 4 and 10A-11B, the resilient member of hand retainer 220 is attached to hand retainer anchor 302 of head 210, which allows adjustment of hand retainer 220 toward or away from the user's index thumb turn (between the user's thumb and fingers). In certain embodiments, the resilient member of hand fixator 220 is attached to hand fixator anchor 302 of head 210, preferably by a pivoting or rotatable attachment, such that hand fixator 220 may pivot relative to hand fixator anchor 302 at the location of the attachment. This degree of freedom is an addition to the adjustability of the position of the hand fixator anchor 302 around the perimeter of the head 210.

Fig. 12A, 12B, and 12C depict an alternative embodiment of a partially assembled controller 400 having a controller body that includes a head 410 and a handle 412 joined to the head in a neck region 411. In an alternative embodiment of fig. 12A-12C, the controller body includes a channel 414 disposed near the neck region 411. The hand holder (not shown in fig. 12A so that the channel 414 will not be partially obscured) includes a resilient member 420 that terminates in a protrusion 425 that extends into the channel 414.

In the embodiment of fig. 12B and 12C, the protrusion 425 includes a catch 427 that prevents longitudinal movement of the protrusion within the channel 414 when the hand retainer is in the closed position. For example, in the embodiment of fig. 12C, the catch 427 is a cam that increases friction with the inner surface of the channel 414 when the relative angle of the hand holder projections 425 corresponds to the closed position of the hand holder, i.e., when the closed position of the hand holder creates tension on the elastic member 420 (e.g., downward as shown in the cross-section of fig. 12C).

Conversely, when the hand holder protrusion 425 is rotated to a relative angle corresponding to the open position of the hand holder (e.g., upward as shown in the cross-section of fig. 12C), the friction between the catch 427 and the channel 414 may be reduced, and the hand holder protrusion 425 may translate within the channel 414 (as indicated by the motion arrows shown in fig. 12B). The channel 414 is preferably oriented such that translation of the hand holder protrusion along the channel 414 preferably adjusts the relative position of the hand holder protrusion 425 toward or away from the direction of the user's index thumb turn, e.g., such that the controller 400 can accommodate different hand sizes or finger lengths. In an alternative embodiment, the hand holder protrusion 425 may be pivotally attached to the rest of the hand holder by a conventional pivot joint. This rotational degree of freedom is an addition to the adjustable translation of the hand holder protrusion 425 along the channel 414.

Fig. 13A-C depict different views of a Force Sensing Resistor (FSR)1300 according to an exemplary embodiment of the present disclosure. As shown in the cross-section of the FSR1300 in fig. 13C, the FSR1300 may include a first substrate 1302 made of polyimide. The FSR1300 may also include a second substrate 1304 disposed on (or over) the first substrate 1302. The first substrate 1302 and the second substrate 1304 can be considered the two primary substrates (or layers) of the FSR1300, which can be considered a 2-layer FSR1300, but it should be understood that the FSR1300 includes additional layers, as will be described in greater detail herein. In this case, the first substrate 1302 may be considered a "bottom" or "base" substrate relative to the two primary substrates of the FSR1300, but it should be understood that there may be a layer of material behind (or below) the first substrate 1302. (i.e., in the negative Z direction, as shown in FIG. 13C).

The first substrate 1302 has a conductive material disposed on a front surface (i.e., a surface facing the positive Z direction) of the first substrate 1302. As will be described in more detail with reference to fig. 14, the conductive material may include a plurality of interdigitated metal fingers. Meanwhile, the second substrate 1304 (sometimes referred to as a resistive "film") has a resistive material disposed on a rear surface (i.e., a surface facing the negative Z direction) of the second substrate 1304. The resistive material may be a semiconductive material that exhibits a degree of resistance (e.g., a relatively high sheet resistance in the range of 300 kilo-ohms per square (kOhm/sq) to 400 kOhm/sq), such as an ink composition (e.g., silver ink, carbon ink, mixtures thereof, and the like). Preferably, the sheet resistance of the second substrate 1304 is 350kOhm/sq, but it should be understood that other sheet resistance values may be used, including those outside of the sheet resistance ranges specified herein, such as when the FSR1300 is used in other applications, such as non-controller based applications. As such, the sheet resistance ranges specified herein should be understood to be non-limiting. In some embodiments, the second substrate 1304 may be made of mylar, and the resistive material is disposed on a rear surface of the second substrate 1304. In some embodiments, the second substrate 1304 is made of polyimide with a resistive material (e.g., a conductive ink composition) on the back surface. An exemplary benefit of using polyimide for the second substrate 1304 is the creation of an FSR1300 that can be mass produced using a reflow oven, while mylar cannot withstand such high temperatures.

The FSR1300 may include one or more spacer layers interposed between the first substrate 1302 and the second substrate 1304 such that a central portion of the second substrate 1304 overhangs the first substrate 1302 and is spaced a distance from the first substrate 1302. Fig. 13C shows two spacer layers, including but not limited to a cover layer 1306 disposed on the first substrate 1302 at the periphery of the first substrate 1302, and an adhesive layer 1308 disposed on the cover layer 1306. The cover layer 1306 may be made of polyimide, and thus may be the same material as the first substrate 1302. The thickness of the cover layer 1306 (measured in the Z direction) may be in the range of 10 microns to 15 microns. The thickness (measured in the Z-direction) of the adhesive layer 1308 can be in a range of 50 microns to 130 microns. Thus, the total distance that the second substrate 1304 is spaced apart from the first substrate 1302 may be the sum of the thicknesses of the one or more spacer layers (e.g., the thickness of the cover layer 1306 plus the thickness of the adhesive layer 1308). These layers may be provided at thicknesses outside of the thickness ranges specified herein, such as when the FSR1300 is used in other applications, such as non-controller based applications. As such, these thickness ranges should be understood as non-limiting.

An actuator 1310 (such as a disc-shaped compliant plunger) may be disposed on the second base plate 1304 and configured to transmit a force F onto the front surface of the second base plate 1304. The actuator 1310 may be made of Poron, which is a compliant material that deforms to some extent when a force is applied to the actuator 1310. The actuator 1310 may be concentric with the center of the active area of the FSR1300 in order to center the applied force F. The actuator 1310 also spans a portion of the active area of the FSR1300 in order to evenly distribute the force F over that portion of the active area of the FSR 1300.

The thickness (measured in the Z-direction) of the second substrate 1304 may be in the range of 50 microns to 130 microns. At this exemplary thickness, the second substrate 1304 is flexible. For example, the second substrate 1304 may be made of mylar, which is flexible over a thickness within the above-specified range. The functional operation of the FSR1300 relies on the flexibility of the second substrate 1304 so that the resistive material on the back surface of the second substrate 1304 becomes in contact with the conductive material on the front surface of the first substrate 1302 under the compressive force F applied to the actuator 1310. The thickness (measured in the Z-direction) of the first substrate 1302 can be in a range of 20 microns to 30 microns. Polyimides of this thickness are also flexible. Thus, the first substrate 1302 is also flexible. Meanwhile, the thickness (measured in the Z direction) of the actuator 1310 may be in a range of 780 micrometers to 810 micrometers. These layers may be provided at thicknesses outside of the thickness ranges specified herein, such as when the FSR1300 is used in other applications, such as non-controller based applications. As such, these thickness ranges should be understood as non-limiting.

FSR1300 may exhibit varying resistance in response to a variable force F applied to actuator 1310. For example, as the force F on the actuator 1310 increases, the resistance decreases. In this manner, FSR1300 can be viewed as a variable resistor whose resistance value is controlled by force F. The FSR1300 may be a "shunt mode" FSR1300 or a "pass through mode" FSR1300, but is preferably a shunt mode FSR 1300. With the shunt mode FSR1300, the conductive material disposed on the front surface of the first substrate 1302 can be in the form of a plurality of interdigitated metal fingers. When a force F is applied to the front (or top) of the actuator 1310, the resistive material on the back surface of the second substrate 1304 becomes in contact with some of the interdigitated metal fingers, which turns the metal fingers, thereby changing the resistance on the output terminals of the FSR 1300. In a pass-mode implementation, the conductive material on the first substrate 1302 can be a solid region of conductive material with a semi-conductive (or resistive) material disposed thereon, and the second substrate 1304 can have a similar configuration (e.g., a semi-conductive (or resistive) material disposed on a solid region of conductive material). Solid areas of conductive material on each substrate (1302 and 1304) are coupled to separate output terminals, and when the two substrates (1302 and 1304) are brought into contact with each other under force F, an excitation current can pass through one layer to the other.

At least in the preferred shunt mode implementation, the force-resistance response curve (plotting the resistance of the FSR1300 as a function of the applied force F) represents a desirable characteristic for the controller 100/600 that may be used in a VR system. For example, the response curve of the FSR1300 may exhibit less hysteresis and higher repeatability (from one FSR1300 to another FSR 1300) compared to conventional FSRs such as those using mylar as the material of the base substrate. The load hysteresis describes the effect of the previous force on the current FSR1300 resistance. The response curve is also monotonic and it simulates real simulation inputs that can be used for many play patterns in a VR game system, such as crushing virtual rocks, squeezing virtual balloons, etc. Although the examples herein describe force F, the FSR1300 is actually sensitive to applied pressure (force x area) because equal force at small points and larger areas on the front surface of the second substrate 1304 will result in different resistive responses of the FSR 1300. Thus, the actuator 1310 acts to maintain repeatability across the FSR1300 in terms of the response curve under force F.

Fig. 14 depicts various front views of the FSR1300 phase-by-phase in an exemplary process of constructing the FSR 1300. In stage 1 of fig. 14, a plurality of interdigitated metal fingers 1400 may be formed on the front surface of a polyimide first substrate 1302. The metal fingers 1400 are electrically conductive. An exemplary conductive metal for the metal fingers 1400 is copper, such as 1/3 ounce HA copper. The copper may also be gold plated. A subtractive manufacturing process may be used to form the plurality of interdigitated metal fingers 1400. For example, prior to stage 1, polyimide first substrate 1302 may be formed with a copper-clad layer disposed on the front surface of the first substrate, and the copper-clad layer may be etched (e.g., by removing strips of copper material) to form the pattern of interdigitated metal fingers 1400 shown in stage 1 of fig. 14. The size and spacing of the etched pattern may be selected to form a distance of 0.2 millimeters (mm) between pairs of adjacent metal fingers 1400 (measured in the Y-direction), and a width of 0.2mm for each metal finger of the plurality of interdigitated metal fingers 1400 (measured in the Y-direction). The width of the metal fingers and the spacing between the metal fingers may provide an optimal balance between maximum sensitivity and minimum manufacturing etch tolerance of the FSR 1300. Although a uniform pattern of metal fingers 1400 is shown in fig. 14, it should be understood that other non-uniform patterns may be employed (e.g., greater density toward the center metal fingers and lesser density toward the outer metal fingers). Fig. 14 shows two sets of interdigitated metal fingers 1400, each set leading to an output terminal 1402 (or lead) of a 2-terminal FSR1300 having a first output terminal 1402(1) and a second output terminal 1402 (2).

As described above, the copper constituting the metal finger 1400 may be plated with gold. Thus, after etching the pattern of interdigitated metal fingers 1400, a gold plating layer may be deposited on the copper fingers to create gold plated fingers. Thus, the plurality of interdigitated metal fingers 1400 shown in stage 1 of fig. 14 may represent gold-plated fingers. The gold plating may be Electroless Nickel Immersion Gold (ENIG). Notably, there may be no additional copper plating over the base layer copper prior to gold plating. When vias are added to a multilayer flexible substrate, additional copper plating is typically applied over the base copper. However, the addition of additional copper plating on the base copper prior to gold plating may actually result in an undesirable increase in the detection resistance as compared to the disclosed FSR1300 that does not include any additional copper plating on the base copper prior to gold plating. Thus, omitting any additional copper plating on the metal fingers 1400 prior to gold plating achieves optimal sensitivity in the FSR 1300. Thus, the copper-clad layer that constitutes the metal finger 1400 remains exposed when the metal finger 1400 is plated with a gold material. In this manner, the gold material is in direct contact with the base copper material of the metal fingers 1400 without any additional copper plating between the base copper and the gold plating.

At stage 2 of fig. 14, a capping layer 1306 may be deposited over the first substrate 1302 at the periphery of the first substrate 1302. For example, the cover layer 1306 may have a ring shape to cover a peripheral portion of the metal fingers 1400, and after deposition, the remaining portions of the metal fingers 1400 are not covered by the cover layer 1306. The cover layer 1306 may be made of polyimide.

At stage 3 of fig. 14, an adhesive layer 1308 may be deposited on the cover layer 1306 such that the remaining portions of the metal fingers 1400 (the portions of the metal fingers 1400 not covered by the cover layer 1306) are also not covered by the adhesive layer 1308. For example, the adhesive layer 1308 may be C-shaped such that the adhesive layer 1308 covers a majority of the cover layer 1306 and such that the adhesive layer 1308 does not cover the active area of the FSR 1300. The "active region" of FSR1300 is shown in stage 3 of fig. 14 as having diameter B. Further, the adhesive layer 1308 in the C-shape may leave a portion of the cover layer 1306 uncovered by the adhesive layer 1308. The uncovered portion of the cover layer 1306 is shown to have a width w in stage 3 of fig. 14. After placing the second substrate 1304 over the top of the first substrate 1302, this uncovered portion of the cover layer 1306 forms an air gap that allows air to enter and/or exit from the space between the first substrate 1302 and the second substrate 1304, which may prevent the sensor from being caused by variations in atmospheric pressureChange in response therebetween. The width w of the air gap (i.e., the uncovered portion of the cover layer 1306) may be 1mm, small enough to maintain symmetry of the contact surface under force, and large enough to allow air to enter/exit through the air gap. In some embodiments, the adhesive layer 1308 may be from meprolid, minnesota, usa467 adhesives from company (i.e., 3M 467 adhesives). The cover layer 1306 and the adhesive layer 1308 represent examples of spacer layers that may be disposed on the first substrate 1302 to space the second substrate 1304 from the first substrate 1304 in a suspended manner. As described above, the thickness (measured in the Z direction) of the cover layer 1306 may be in the range of 10 to 15 microns, and the thickness (measured in the Z direction) of the adhesive layer 1308 may be in the range of 50 to 130 microns. Preferably, the thickness of the adhesive layer 1308 is made as thin as possible (e.g., at the lower end of a specified thickness range) to allow for an initial response (e.g., the FSR1300 begins to detect input) in the event that the force F is very light. However, these layers may be provided with thicknesses outside of the thickness ranges specified herein, such as when the FSR1300 is used in other applications, such as non-controller based applications. As such, these thickness ranges should be understood as non-limiting.

In stage 4, a second substrate 1304 may be provided on the first substrate 1302. In stage 4, a central portion of the second substrate 1304 is suspended over the first substrate 1302 with one or more spacer layers (e.g., a cover layer 1306 and an adhesive layer 1308) interposed between the first substrate 1302 and the second substrate 1304 (see fig. 13C). Although not shown in fig. 14, an actuator 1310 may be attached to the front surface of the second base plate 1304 in order to complete the construction of the FSR1300, as shown in fig. 13A-13C. The size of the actuator (measured in the X-Y plane) may span 80% of the active area of the FSR1300 (i.e., 80% of the diameter B, as shown in stage 3 of fig. 14). For example, the disc actuator 1310 may have a diameter equal to 0.8 × B. In some embodiments, the FSR1300 may have an overall diameter of 14.5 mm. At this dimension, the diameter B of the active area may be 10.5mm, which means that the cover layer 1306 and the adhesive layer 1308 may be deposited as a 2mm ring between the first substrate 1302 and the second substrate 1304. In this embodiment, the diameter of the actuator 1310 may be 8.4mm (i.e., 0.8 x 10.5 mm).

The FSR1300 may open without an external force (or load). In some embodiments, to account for any contact of the first substrate 1302 and the second substrate 1304 under zero or negligible applied force, a threshold circuit may be used to set a threshold resistance value at which the first substrate 1302 and the second substrate 1304 are considered to be in "contact," meaning that the FSR1300 may open until the threshold resistance value is reached, even if the two primary substrates (i.e., 1302 and 1304) are actually in contact.

Fig. 15 depicts exemplary layers of an FSR1300 according to another embodiment of the present disclosure. Fig. 15 is not to scale. In contrast, FIG. 15 is presented to illustrate exemplary material layers and is not meant to represent an actual cross-sectional view of the FSR 1300. As described above with reference to the previous figures, the FSR1300 as shown in fig. 15 includes a first substrate 1302 made of polyimide, metal fingers 1400 (i.e., conductive material) disposed on a front surface of the first substrate 1302, and a second substrate 1304 disposed on the first substrate 1302, with one or more spacer layers interposed between the first substrate 1302 and the second substrate 1304; in this case, a plurality of spacer layers, including the aforementioned cover layer 1306 and adhesive layer 1308, are disposed between the two primary substrates. An actuator 1310 is also disposed on the second base plate 1304.

In the embodiment of fig. 15, actuator 1310 may be made of Poron and may have a thickness (measured in the Z direction) of 794 microns. The actuator adhesive layer 1500 may be used to attach the actuator 1310 to the second substrate 1304. The actuator adhesive 1500 can have a thickness (measured in the Z direction) of 70 microns. A suitable adhesive for the actuator adhesive 1500 is FT 8397 adhesive from alleldisin (Avery Dennison) corporation of grand dail, california. In the embodiment of fig. 15, the thickness (measured in the Z-direction) of the second substrate 1304 can be 125 microns. The sheet resistance of the resistive material on the rear surface of the second substrate 1304 may be 350 kOhm/sq. The adhesive layer 1308 may be a peelable adhesive, such as 3M MP467 adhesive. The thickness of the adhesive layer 1308 (measured in the Z-direction) may be 50 microns. The cover layer 1306 may be made of polyimide and may have a thickness (measured in the Z direction) of 12.5 microns. Coverlay adhesive 1502 (e.g., polyethylene with adhesive on either side) may be used to attach the coverlay 1306 to the front surface of the first substrate 1302 over the metal fingers 1400. The coverlay adhesive 1502 may have a thickness (measured in the Z-direction) of 25 microns. The metal fingers 1400 may be made of copper (e.g., gold-plated copper) and may have a thickness (measured in the Z-direction) of 12.5 microns. The first substrate 1302 may have a thickness (measured in the Z-direction) of 25 microns.

A Pressure Sensitive Adhesive (PSA)1504 may be attached to the back surface of the first substrate 1302. The PSA 1504 may be 3M 467MP and may have a thickness of 50 microns. The PSA liner 1506 can be disposed on the PSA 1504 and can be peeled away prior to attaching the FSR1300 to a planar surface (e.g., a planar surface of a structure mounted inside the controller body 110).

In the connector portion of the FSR1300, a reinforced polyimide 1508 may be attached to the back surface of the first substrate 1302 using a reinforced adhesive 1510. The reinforced polyimide 1508 may have a thickness (measured in the Z-direction) of 137.5 microns and may form a stiffer connector portion of the FSR1300 to enhance the durability of the connector portion. The thickness of the reinforcing adhesive (measured in the Z direction) may be 25 microns.

The embodiment of fig. 15 may represent an FSR1300 adapted for mounting on a planar surface of a structure mounted within a handle 112/612 of a controller 100/600 for an electronic system (e.g., VR system), as disclosed herein. It should be understood that other thickness values, sheet resistance values, and/or materials than those specified with reference to fig. 15 may be used, such as when FSR1300 is used in other applications, such as non-controller based applications. As such, these values and materials should be understood as non-limiting.

Fig. 16 depicts exemplary layers of an FSR1300 according to another embodiment of the present disclosure. Fig. 16 is not to scale. In contrast, FIG. 16 is presented to illustrate exemplary material layers and is not meant to represent an actual cross-sectional view of the FSR 1300. The FSR1300 shown in fig. 16 with respect to the first substrate 1302 and the layers above the first substrate 1302 (i.e., in the positive Z-direction) may have a similar configuration as the FSR1300 shown in fig. 15. Fig. 16 differs from fig. 15 in the layers below the first substrate 1302 (i.e., in the negative Z-direction). Therefore, for the sake of brevity, the first substrate 1302 and the layers above the first substrate 1302 (i.e., in the positive Z-direction) in fig. 16 will not be described again, as the layers in fig. 16 can be understood with reference to the description of fig. 15.

In the embodiment of fig. 16, stiffener 1600 may be attached to the back surface of first substrate 1302 below the body portion of FSR1300 using a stiffening adhesive 1510. The thickness of the reinforcing adhesive (measured in the Z direction) may be 25 microns, as is the case with the embodiment of fig. 15, but with the stiffener 1600 located under the body portion of the FSR1300 and the reinforcing polyimide 1508 located under the connector portion of the FSR 1300. Additionally, stiffener 1600 may be an FR4 stiffener with a thickness (measured in the Z direction) of 530 microns, thicker than reinforced polyimide 1508 of the embodiment of fig. 15. The pull tab 1602 may be attached to the rear surface of the stiffener 1600 using an adhesive layer 1604. Adhesive layer 1604 may be a pull tab adhesive, such as 3M MP467 adhesive. The adhesive layer 1604 may have a thickness (measured in the Z-direction) of 50 microns.

The embodiment of fig. 16 may represent an FSR1300 adapted for mounting on a plane of a structure mounted below the thumb-operated control 116 of a controller 100/600 for an electronic system (e.g., a VR system), as disclosed herein. It should be understood that other thickness values, sheet resistance values, and/or materials than those specified with reference to fig. 16 may be used, such as when FSR1300 is used in other applications, such as non-controller based applications. As such, these values and materials should be understood as non-limiting.

Fig. 17 depicts exemplary layers of an FSR1300 according to another embodiment of the present disclosure. Fig. 17 is not to scale. In contrast, fig. 17 is presented to illustrate exemplary material layers and is not meant to represent an actual cross-sectional view of the FSR 1300. Some of the layers of the FSR1300 shown in fig. 17 may have a similar construction as the FSR1300 shown in fig. 15. However, fig. 17 differs from fig. 15 in several respects.

In the embodiment of fig. 17, the thickness (measured in the Z-direction) of the second substrate 1304 can be 127 micrometers. The adhesive layer 1308 may be a releasable adhesive, such as a 3M 468MP adhesive. For FSRs 1300 that can withstand reflow oven temperatures, the adhesive layer 1308 can be a peelable adhesive, such as 3M9085 or 3M 9082. The thickness (measured in the Z direction) of the adhesive layer 1308 may be 125 microns. In some cases, the thickness of the adhesive layer 1308 may be 50 microns. Additionally, the metal fingers 1400 may be made of RA copper. In addition, the conductive material 1700 may be disposed on the rear surface of the first substrate 1302. The conductive material 1700 may be HA copper or RA copper having a thickness (measured in the Z direction) of 12.5 microns. An additional capping layer 1702 may be deposited over the conductive material 1700. This additional cover layer 1702 may be made of polyimide and may be attached to the conductive material 1700 using a cover layer adhesive 1704. The additional cover layer 1702 may have a thickness (measured in the Z-direction) of 12.5 microns and the cover layer adhesive 1704 may have a thickness (measured in the Z-direction) of 25 microns. An adhesive layer 1706 may be disposed on the cover layer 1702. The adhesive layer 1706 may be a peelable adhesive, such as a 3M 467MP adhesive, having a thickness (measured in the Z direction) of 60 microns. For FSRs 1300 that can withstand the high temperatures of a reflow oven, the adhesive layer 1706 may be a peelable adhesive, such as 3M9085 or 3M 9082.

The embodiment of fig. 17 may represent an FSR1300 adapted to be mounted on a planar surface of a structure mounted within the controller body 110 of a non-VR controller. It should be understood that other thickness values, sheet resistance values, and/or materials than those specified with reference to fig. 17 may be used, such as when FSR1300 is used in other applications, such as non-controller based applications. As such, these values and materials should be understood as non-limiting.

Fig. 18A through 18D depict an FSR1800 according to another embodiment of the present disclosure. The FSR1800 may have component layers similar to those described with reference to the FSR1300, such as a first substrate 1802 made of polyimide, and a second substrate 1804 that is flexible and has a resistive material on a back surface. One or more spacer layers (e.g., a capping layer 1806 and an adhesive layer 1808) may be interposed between the first substrate 1802 and the second substrate 1804.

A portion of the first substrate 1802 of the FSR1800 in fig. 18B and 18C surrounds the second substrate 1804 and is also disposed on the front surface of the second substrate 1804. Fig. 18A, labeled "before folding," depicts the FSR1800 before a portion of the first substrate 1802 is wrapped around the second substrate 1804. In fig. 18A, FSR1800 includes a first body portion 1812(1) (sometimes referred to as "lower balloon" 1812(1)) and a second body portion 1812(2) (sometimes referred to as "upper balloon" 1812 (2)). Lower balloon member 1812(1) is connected to upper balloon member 1812(2) by a folding neck 1814 at the first end of lower balloon member 1812 (1). A solder tail 1816 extends from the second end of the lower balloon 1812(1), and a solder pad 1818 is on the terminal end of the solder tail 1816. An actuator 1810 in the form of a tact switch is disposed on the upper balloon 1812(2) such that the actuator 1810 eventually becomes the front or top layer of the FSR1800 after the folding operation, as shown in fig. 18B and 18C. Thus, the portion of first substrate 1802 of FSR1800 surrounding second substrate 1804 is upper balloon 1812 (2).

A cross-section of the FSR1800 after the folding operation is shown in fig. 18C to depict exemplary layers of the FSR 1800. Some of the layers shown in FIG. 18C are described in more detail with reference to FIG. 18D. In this embodiment of fig. 18C, a force F may be applied to the actuator 1810 (e.g., a tact switch), causing a variable resistance of the FSR1800 that is converted to a variable digitized value. Using a tact switch for the actuator 1810 (e.g., a switch that switches to a different binary state upon application of a predefined force F) results in a two-pole FSR1800 that first "presses" when the tact switch 1810 is actuated, and then the FSR1800 may output a variable resistance upon application of an increasing force F. This can be used to calibrate the FSR1800 on each actuation of the FSR1800 by assuming that the tact switch 1810 is actuated with the same force F each time it is depressed. That is, FSR1800 may reset to a known force F magnitude associated with actuation of tact switch 1810 in response to detecting actuation of tact switch 1810. This may mitigate inaccuracies inherent to FSR 1800.

As shown in fig. 18C and 18D, the FSR1800 includes a first substrate 1802 made of polyimide having a thickness (measured in the Z direction) of 25 microns. An electrically conductive material (e.g., metal fingers 1820 made of HA copper (e.g., gold plated copper) shown in fig. 18D) having a thickness of 12.5 microns (measured in the Z direction) may be disposed on the front surface of the first substrate 1802 at the lower balloon 1812(1) such that the electrically conductive material is below the resistive material on the second substrate 1804. Overlay layer adhesive 1822 may be used to attach the overlay layer 1806 to the front surface of the first substrate 1802 above the metal fingers 1820. The coverlay adhesive 1822 can have a thickness (measured in the Z-direction) of 25 microns. The cover layer 1806 may be made of polyimide and may have a thickness (measured in the Z direction) of 12.5 microns. The adhesive layer 1808 disposed on the cover layer 1806 may be a peelable adhesive, such as 3M MP467 adhesive. The thickness of the adhesive layer 1808 (measured in the Z direction) may be 60 microns. The thickness (measured in the Z direction) of the second substrate 1804 may be 127 micrometers. The sheet resistance of the resistive material on the back surface of the second substrate 1804 may be 350 kOhm/sq. Adhesive layer 1824 may be used to attach upper balloon member 1812(2) to lower balloon member 1812(1) when upper balloon member 1812(2) is folded over lower balloon member 1812(1) at folding neck 1814. The adhesive layer 1824 may have a thickness of 125 microns (measured in the Z-direction). A suitable adhesive for adhesive layer 1824 is 3M 468 MP. Adhesive layer 1824 may also be C-shaped.

On the upper balloon 1812(2) of FSR1800, a first reinforced polyimide 1834 may be attached to the front surface of the first substrate 1802 (before folding) using a reinforced adhesive 1836. The first reinforced polyimide 1834 may have a thickness (measured in the Z-direction) of 75 microns. The thickness of the reinforcing adhesive (measured in the Z direction) may be 25 microns. Additionally, on the upper balloon 1812(2) of FSR1800, a second reinforced polyimide 1838 may be attached to the front surface (prior to folding) of the first reinforced polyimide 1834 using an adhesive layer 1840. The second reinforced polyimide 1838 may have a thickness (measured in the Z-direction) of 75 microns. The thickness of the adhesive layer (measured in the Z direction) may be 125 microns. When the upper balloon member 1812(2) is folded over the lower balloon member 1812(1) at the folding neck 1814, the second reinforced polyimide 1838 becomes in contact with the second substrate 1804 as shown in fig. 18C, and the adhesive layer 1824 adheres the two body portions 1812(1) and 1812(2) of the FSR1800 in a stacked relationship after the folding operation. It should be understood that other thickness values, sheet resistance values, and/or materials than those specified with reference to fig. 18D may be used, such as when FSR1800 is used in other applications, such as non-controller based applications. As such, these values and materials should be understood as non-limiting.

In addition, as shown in fig. 18D, a conductive material 1826 may be disposed on the back surface of the first substrate 1802. The conductive material 1826 may be HA copper having a thickness (measured in the Z direction) of 12.5 microns. An additional cover layer 1828 may be deposited over the conductive material 1826. This additional overlay 1828 may be made of polyimide and may be attached to the conductive material 1826 using overlay adhesive 1830. The additional coverlay 1828 may have a thickness (measured in the Z-direction) of 12.5 microns and the coverlay adhesive 1830 may have a thickness (measured in the Z-direction) of 25 microns. Additional cover layer 1828 and cover layer adhesive 1830 may span a portion of the solder tail 1816, lower balloon 1812(1), folded neck 1814, and upper balloon 1812(2), leaving a footprint for the actuator 1810 ("button footprint" in fig. 18D). An adhesive layer 1832 may be disposed on the additional cover layer 1828. The adhesive layer 1832 may be a peelable adhesive, such as a 3M 468MP adhesive, having a thickness (measured in the Z direction) of 125 microns. An adhesive layer 1832 may span the solder tail 1816 and the lower balloon 1812 (1).

While the exemplary FSR1300/1800 is shown as having a generally circular shape, it should be understood that the FSR1300/1800 may be configured as layers having different cross-sectional shapes, such as square, rectangular, and the like. The overall size of the FSR1300/1800 may be larger or smaller than the examples described herein, depending on the particular application. Further, it should be understood that an FSR array may be implemented by connecting multiple FSRs 1300/1800 together. In such an array, the layer of FSR material may be configured as a strip of material.

FIG. 19 is a flow diagram of an exemplary process 1900 for manufacturing an FSR, such as FSR1300 or FSR1800 disclosed herein. The processes described herein are illustrated as a collection of blocks in a logical flow graph, which represents a sequence of operations. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order and/or in parallel to implement the processes.

At 1902, a first substrate 1302 made of polyimide may be formed with a copper clad layer disposed on a front surface of the first substrate 1302.

At 1904, the copper clad layer may be etched to form a plurality of interdigitated copper fingers (i.e., an example of metal fingers 1400) on the front surface of the first substrate 1302. The etching at block 1904 may include removing a strip of copper material having a width of 0.2mm to create a distance of 0.2mm between pairs of adjacent copper fingers of the plurality of interdigitated copper fingers. The spacing between successive strips of removed copper material may also be maintained at 0.2mm to provide copper fingers having a width of 0.2 mm.

At 1906, a gold plating layer may be deposited on the plurality of interdigitated copper fingers to produce gold plated fingers. The gold plating may be ENIG.

At 1908, one or more spacer layers can be provided on the first substrate 1302 at a periphery of the first substrate 1302 such that the one or more spacer layers do not cover a portion of the gold-plated fingers. Multiple spacer layers may be provided in two operations, as shown in sub-blocks 1910 and 1912.

At 1910, a cover layer 1306 (e.g., made of polyimide) can be deposited on the first substrate 1302 at a periphery of the first substrate 1302. The cover layer 1306 may cover a peripheral portion of the gold-plated fingers, with the remainder of the gold-plated fingers not covered by the cover layer 1306.

At 1912, an adhesive layer 1308 may be deposited on the cover layer 1306, such that the remaining portions of the gold-plated fingers are not covered by the adhesive layer 1308. Further, operations at block 1912 may include leaving a portion of the cover layer 1306 uncovered by the adhesive layer 1308 to form an air gap that allows air to enter or exit from a space between the first substrate 1302 and the second substrate 1304.

At 1914, a second substrate 1304 may be disposed on the first substrate 1302 such that a central portion of the second substrate 1304 is suspended over the first substrate 1302 by one or more spacer layers interposed between the first substrate 1302 and the second substrate 1304. The second substrate 1304 is flexible and has a resistive material disposed on a rear surface of the second substrate 1304.

At 1916, to construct the FSR1800, an extended portion of the first substrate 1802 can be wrapped around the second substrate 1804 and attached to the front surface of the second substrate 1804, wherein the extended portion of the first substrate 1802 will be interposed between the actuator 1810 and the second substrate 1804 to be attached. This operation is performed to construct FSR1800, as indicated by the dashed outline in block 1916, but may be omitted when constructing FSR 1300.

At 1918, an actuator 1310 can be disposed on the second substrate 1304, such as by attaching the actuator 1310 to a front surface of the second substrate 1304 to construct the FSR1300, or by attaching an actuator 1810 (e.g., a tact switch) to the first substrate 1802 interposed between the second substrate 1804 and the actuator 1810.

The FSR1300/1800 disclosed herein can be mounted on a plane of a structure within a handheld controller, such as the controller 100/600 disclosed herein, and the structure can be positioned at any suitable location within the controller body 110 in order to measure a resistance value corresponding to the amount of force applied to the outer surface of the controller body 110 (e.g., force applied by a finger pressing the control, force applied by a hand squeezing the handle 112/612). With particular reference to fig. 9A and 9B, the FSR1300/1800 may be mounted on the plane of a PCB920, which may itself be mounted within the tubular housing 612a, 612B of the handle 612. In this configuration, the plunger 924 may be engaged with the actuator 1310/1810 of the FSR1300/1800, which may allow for the transfer of compressive forces from the plunger 924 to the actuator 1310/1810. However, other configurations are possible in which the plunger 924 is omitted and the actuator 1310/1810 engages a portion of the tubular housing 612a, 612b of the handle 612. With particular reference to fig. 1, FSR1300/1800 may be mounted on the plane of a structure within the head (between handle 112 and distal end 111). The structure mounted within the head may be mounted under one or more of the thumb-operated controls 114, 115, 116. For example, the FSR1300/1800 may be positioned below the thumb-operated control 116 (e.g., a trackpad). Accordingly, when the user's thumb presses on the thumb-operated control 116 during operation of the controller 100, the FSR1300/1800 positioned below the thumb-operated control 116 may be configured to measure a resistance value corresponding to the amount of force applied by the user's thumb to the thumb-operated control 116. It should be understood that multiple FSRs 1300/1800 may be provided within the controller body 110 of the controller, such as one or more FSRs 1300/1800 mounted within the handle 112/612 and one or more FSRs 1300/1800 mounted below one or more corresponding controls 114, 115, 116 on the head of the controller body 110.

When implemented in the controller 100/600, the FSR1300/1800 disclosed herein may enable variable analog inputs. For example, squeezing the handle 112/612 or pressing a thumb-operated control (e.g., 116) with varying force may cause the resistance of the FSR1300/1800 to vary with applied force, and the resistance may be converted to a digitized value representing the change in FSR input used to control the style of game play.

Fig. 20 illustrates an exemplary User Interface (UI)2000 that may be used to configure an FSR-based input mechanism of a handheld controller, such as controller 100/600, for an electronic system to operate in different modes. The UI 2000 may be output on a display of an electronic system, such as a Head Mounted Display (HMD), or on any other type of display used with a Personal Computer (PC) or gaming machine. The UI 2000 includes an "activation type" pull-down menu 2002. The "activation type" drop down menu 2002 may be used to select a "soft press" activation type for an FSR-based input mechanism (e.g., thumb-operated control 116, handle 112/612, etc.). Herein, "soft press" refers to a "software press" that allows the controller 100/600 and/or an electronic system associated with the controller 100/600 to use logic to determine when to register an FSR-based input event based on an analog input of FSR1300/1800 (e.g., an FSR resistance, which corresponds to the force on FSR1300/1800, and is converted to a digitized FSR input value) and also based on other configuration settings that will be discussed later. In other words, FSR1300/1800 may measure the resistance value and then convert it to a digitized FSR input value. If the digitized FSR input value satisfies the conditions specified by the configuration settings for the "soft press," then an FSR-based input event may be registered.

The UI 2000 may also include a "bind" drop-down menu 2004 that may be used to select PC-based input controls to be bound to corresponding FSR-based input mechanisms on the controller 100/600. Here, the binding is selected as "left mouse button," but it should be understood that the binding may be selected as other PC-based input controls. The binding may also be analog. For example, for a racing game, FSR1300/1800 may be used for the accelerator pedal (e.g., the harder the user presses the FSR-based control mechanism, the faster the racing car in the game will be driven).

The UI 2000 may also include a "soft press style" drop down menu 2006 that may be used to select one of various styles of soft presses. The "simple threshold" style indicates that an FSR input event occurs when the digitized FSR input value meets or exceeds a threshold value. Because the digitized FSR input value corresponds to a particular resistance value measured by the FSR, which in turn corresponds to a particular applied force applied to the FSR1300/1800, one may also consider this style of soft press as registering an FSR input event when the resistance value measured by the FSR satisfies a threshold resistance value and/or when the magnitude of the applied force satisfies a threshold force magnitude. For example, if the handle 112/612 of the controller 100/600 includes an FSR1300/1800, the handle 112/612 may be squeezed until a threshold force magnitude is reached and, in response, the FSR input event is registered as a "soft press. The force required to "un-press" may be part of a threshold for anti-jitter purposes and/or to mimic a tact switch with a physical mutation rate. Thus, a "simple threshold" style may replace the traditional mechanical switch. UI 2000 shows that the user can adjust the configurable soft press threshold 2008(1) to increase or decrease the threshold used to compare to the digitized FSR input value to determine whether to register an FSR input event. The user may turn soft press threshold 2008(1) down (e.g., by moving the slider to the left) to reduce hand fatigue associated with actuation of the FSR-based input mechanism. The user may adjust soft press threshold 2008(1) high (e.g., by moving the slider to the right) to reduce instances where the FSR-based input mechanism registers an accidental input. In some cases, the soft press threshold 2008(1) may be set as a default threshold for a particular game (e.g., a lower default threshold for a shooting game, a higher default threshold for a quest game, etc.).

The "one-touch" style may set a baseline threshold and activate binding (i.e., register an FSR input event, similar to a press and hold button actuation) once the digitized FSR input value associated with FSR1300/1800 meets or exceeds the baseline threshold. Thereafter, any subsequent force decrease will cause the binding to fail (i.e., the FSR input event "unregister," similar to a user releasing a button), and any force increase will again activate the binding after the binding is canceled. There may be some anti-jitter in the "one-touch" style of soft pressing. Turning briefly to FIG. 21, an example of "one touch send" logic is shown on a "force versus time" graph 2100. The "force" axis may represent a digitized FSR input value ranging from zero to any suitable maximum value, which corresponds to a range of resistance values that FSR1300/1800 is capable of measuring. As shown in fig. 21, as the digitized FSR input value increases (e.g., the user presses harder and harder on the FSR-based input mechanism), the digitized FSR input value eventually crosses the baseline threshold 2102 and in response, the binding is activated (i.e., the FSR input event is registered, similar to the press-and-hold type of the user input), and then in response to the decrease in the digitized FSR input value, the binding is deactivated (e.g., the user "releases" the FSR-based input mechanism slightly). If the user presses harder on the FSR-based input mechanism, the binding may be activated again as long as the force remains at a value greater than baseline threshold 2102, and so on.

Referring again to fig. 20, the "sweeping" style of soft compressions may be selected according to three different sub-styles (e.g., aggressive, normal, and relaxed). The "sweep" style may be similar to the "simple threshold" style of soft presses, except that the "sweep" style uses a time delay, so in a configuration with multiple binding levels, if a higher threshold is reached fast enough, the time delay may be used to ignore lower FSR input values. The amount of time delay varies between different sub-genres (e.g., aggressive, normal, and relaxed). Turning briefly to FIG. 22, an example of "sweep" logic is shown on a "force-time relationship" graph 2200. Again, the "force" axis may represent a digitized FSR input value ranging from zero to any suitable maximum value, which corresponds to a range of resistance values that the FSR1300/1800 is capable of measuring. As shown in fig. 22, assume that a 12202 corresponds to a first threshold value corresponding to a first action, and a 22204 corresponds to a second threshold value corresponding to a second action. The time delay t may be set based on whether the "sweeping" style is a "aggressive" type, a "normal" type, or a "relaxed" type. In the "fast" curve shown in FIG. 22, the FSR input value reaches A12202 quickly, which triggers a time delay to begin operation. The FSR input value then reaches a 22204 before the time delay elapses, which causes the logic to ignore a 12202 and register the FSR input event only for the second action corresponding to a 22204. In the "slow" curve shown in FIG. 22, the FSR input value reaches A12202 and the time delay begins. However, since the FSR input value does not increase rapidly enough to reach a 22204 before the time delay has elapsed, the logic registers an FSR input event for the first action corresponding to a 12202, after which the FSR input value eventually reaches a 22204, and the logic registers another FSR input event for the second action corresponding to a 22204. The time delay t may be specified in units of milliseconds, and may be configured.

Referring again to fig. 20, another soft compression threshold 2008(2) may be used, for example, to set a multi-level threshold, such as a threshold for a "sweep" style of soft compressions. By a user squeezing or pressing the FSR-based input mechanism with varying forces, many different game-related analog inputs may be enabled using different styles of soft presses for FSR-based inputs. For example, the VR game may allow a user to crush rock or squeeze a balloon by squeezing the handle 112/612 of the controller body 110 with increased force. As another example, a shooting-based game may allow a user to switch between different types of weapons by pressing thumb-operated control 116 with different levels of effort.

Fig. 23 depicts the controller 100 of fig. 1 having various sensors disposed within the controller body 110. For example, the first FSR1300 (1) may be mounted underneath a control configured to be pressed, such as the thumb-operated control 116 included on the head 113 of the controller body 110. The second FSR1300 (2) may be mounted within the handle 112 of the controller body 110 along with the proximity sensor array 800. It should be understood that one or the other of FSRs 1300(1) or 1300(2) may be provided within controller 100, or both FSRs 1300(1) and 1300(2) may be provided within controller 100. In addition to or in lieu of the proximity sensor array 800, one or more touch sensors 2300 (e.g., touch sensors 2300(1) through (3)) can be associated with one or more controls configured to be depressed, such as thumb-operated controls 114, thumb-operated controls 115, and/or thumb-operated controls 116, and/or finger-operated controls (e.g., trigger 609). Touch sensor 2300 can be configured to provide touch data indicating that an object (e.g., a finger, a thumb, etc.) contacts an associated control (e.g., one or more of thumb-operated controls 114-116). In one example, the touch sensor 2300 includes a capacitive sensor (or capacitive sensor array) mounted within the head 113 of the controller body 110 (e.g., adhered or otherwise attached to the back surface of the housing and under the controls 114-116, attached to a structure (such as a PCB) inside the head 113, etc.). In other cases, the touch sensor 2300 can be based on other touch sensing technologies, such as infrared or acoustic touch sensors. Meanwhile, an array of proximity sensors 800 spatially distributed on handle 112 may be configured to provide proximity data indicative of a hand gripping handle 112. As disclosed herein, the proximity sensor 800 may also use any suitable technique to sense contact and/or proximity of a hand on the handle 112. FSR1300 is configured to provide force data indicating the amount of force of a press on a control (e.g., a press on control 116) or a squeeze on handle 112. The various sensor groups shown in fig. 23 may be connected by flexible circuits. For example, touch sensor 2300 and FSR1300 (1) in head 113 may be connected together by a common flex circuit. The polyimide substrate of FSR1300 disclosed herein allows this type of direct soldering of the FSR output terminals to the flex circuit.

The processes described herein are illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and so forth that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order and/or in parallel to implement the processes.

FIG. 24 is a flow diagram of an exemplary process 2400 for recalibrating the FSR1300/1800 of the handheld controller 100/600 based on touch data provided by the touch sensors.

At 2402, logic of the handheld controller 100/600 may determine that an object (e.g., a finger, a thumb, etc.) has come into contact with one control of the handheld controller based at least in part on touch data provided by the touch sensor. The at least one control may be included on the controller body 110 of the controller 100/600 and may be configured to be pressed. For example, the control may be a thumb-operated control 116 included on the head 113 of the controller body 110. In this embodiment, the touch sensor may be one of the touch sensors 2300. Alternatively, the control may be the handle 112 of the controller body 110. In this embodiment, the touch sensor may be a proximity sensor array 800.

At 2404, the logic may determine a resistance value measured by the FSR1300/1800 based at least in part on the force data provided by the FSR1300/1800 when the object has become in contact with the at least one control.

At 2406, the logic may correlate the resistance value to a digitized zero FSR input value. In other words, the sense resistance when an object becomes in contact with the at least one control may be considered a zero force input, meaning that any increase in force applied to FSR1300/1800 after that point correlates to a positive FSR input value. Thus, process 2400 represents a sensor fusion algorithm that helps mitigate any inherent inaccuracies of FSR1300/1800 by measuring some resistance by recalibrating when a touch to a control is detected, even if the object is not pressing on the control.

FIG. 25 is a flow diagram of an exemplary process 2500 for ignoring stray inputs at the FSR1300/1800 of the handheld controller 100/600 based on touch data provided by the touch sensor for the proximity control.

At 2502, logic of the handheld controller 100/600 may determine a resistance value measured by the FSR1300/1800 based at least in part on force data provided by the FSR1300/1800 associated with a first control (e.g., the thumb-operated control 116) of the handheld controller.

At 2504, the logic may convert the resistance value to a digitized FSR input value.

At 2506, the logic may determine whether the digitized FSR input value meets or exceeds a threshold to be met for registering an FSR input event for the first control. If the threshold is not met at 2506, process 2500 follows the "No" route from block 2506 to block 2502 to wait for additional force data. If the threshold is met at 2506, process 2500 follows the "yes" route from block 2506 to block 2508.

At 2508, the logic may determine whether an object (e.g., a finger, thumb, etc.) is in contact with a nearby second control (e.g., thumb-operated control 114 or 115) based at least in part on touch data provided by touch sensor 2300 associated with the nearby second control, wherein the touch data is provided when FSR1300/1800 measures the FSR resistance value. If the object is not in contact with the nearby second control, process 2500 follows the "No" route from block 2508 to block 2510, at which block 2510 the logic registers an FSR input event for the first control (e.g., by activating a binding for the first control). If the object is in contact with the nearby second control, process 2500 follows the "YES" route from block 2508 to block 2512.

At 2512, the logic may refrain from registering the FSR input event for the first control based at least in part on determining that the object is in contact with the second control. Thus, process 2500 represents a sensor fusion algorithm that can be used to ignore stray inputs at the FSR1300/1800 based on pressing a nearby control on the handheld controller.

Fig. 26 is a flow diagram of an exemplary process 2600 for adjusting an FSR input threshold for the FSR1300/1800 based on the size of the hand detected by the proximity sensor array 800 in the handle 112/612 of the handheld controller 100/600.

At 2602, logic of the handheld controller 100/600 may determine a size of a hand that is gripping the handle 112/612 based at least in part on proximity data provided by an array of proximity sensors 800 spatially distributed on the handle of the controller 100/600. The hand size may be determined from a plurality of predetermined hand sizes (e.g., small and large, or small, medium and large, etc.).

At 2604, the logic may adjust the threshold to an adjusted threshold to be met in order to register an FSR input event for handle 112/612 based at least in part on the size of the hand determined at block 2602. The adjusted threshold corresponds to a particular amount of force that may be used to squeeze the handle 112/612. For example, the magnitude of the force corresponds to the resistance measured by FSR1300/1800 in handle 112/612, and the resistance may correspond to a digitized FSR input value. When the user squeezes the handle, an FSR input event may be registered if the digitized FSR input value meets or exceeds the adjusted threshold value. Thus, as detected by the array of proximity sensors 800 at block 2602, the threshold may be adjusted to a lower value for users with smaller hands and a higher value for users with larger hands. In some cases, a default threshold may be configured for the controller 100/600 before the size of the hand is detected at block 2602, and the adjustment made at block 2604 may be to increase or decrease the threshold relative to the default value.

As shown by the sub-box in FIG. 26, process 2600 may involve more detailed operations. For example, determining the size of the hand at block 2602 may include sub-boxes 2606 and 2608.

At 2606, the logic may determine the number of proximity sensors in the proximity sensor array 800 that provide proximity data. For example, a small hand may only span a small portion of the proximity sensors in the proximity sensor array 800, while the remaining proximity sensors that do not detect the small hand may not provide the aforementioned proximity data. Instead, a large hand may span the entire proximity sensor array 800, and in this case, all of the proximity sensors 800 (or at least a number above a threshold number) may provide proximity data.

At 2608, the logic may determine a size of the hand based at least in part on the number of proximity sensors (of the array 800) that provided the proximity data.

Additionally, as shown in sub-boxes 2610 and 2612, the threshold adjustment at block 2604 may include adjusting a threshold for one or more FSRs of the controller 100/600.

For example, at 2610, the logic may adjust a first threshold (associated with the first FSR1300 (1)) to be met in order to register an FSR input event for the control 116. At 2612, the logic may additionally or alternatively adjust a second threshold (associated with a second FSR1300 (2)) to be met in order to register an FSR input event for handle 112/612.

FIG. 27 is a flow diagram of an exemplary process 2700 for activating and deactivating bindings for controls of a handheld controller based on FSR input values. As shown by the page external reference "a" in fig. 27, process 2700 can continue from any of processes 2400, 2500, or 2600, but this is not required.

At 2702, logic of the handheld controller 100/600 may determine a first digitized FSR input value at a first time based at least in part on the force data provided by the FSR1300/1800 of the controller 100/600. The first digitized FSR input value may be converted from a first resistance value measured at a first time by the FSR 1300/1800.

At 2704, the logic can determine whether the first digitized FSR input value meets or exceeds a threshold to be met for registering an FSR input event (e.g., for binding a control associated with FSR 1300/1800). If the threshold is not met at 2704, process 2700 follows the "no" route from block 2704 to block 2702, where the logic waits for additional force data at block 2702. If the threshold is met at 2704, process 2700 follows the "yes" route from block 2704 to block 2706.

At 2706, the logic can register the FSR input event (e.g., to activate a binding associated with a control associated with the FSR 1300/1800) based at least in part on the first digitized FSR input value meeting or exceeding the threshold.

At 2708, the logic may determine a second digitized FSR input value at a second time after the first time based at least in part on the force data provided by the FSR 1300/1800. The second digitized FSR input value may be converted from a second resistance value measured by the FSR1300/1800 at a second time.

At 2710, the logic may determine whether the second digitized FSR input value is less than the first digitized FSR input value (i.e., whether the FSR input has decreased since the previous measurement by FSR 1300/1800). If the second digitized FSR input value is less than the first digitized FSR input value, process 2700 follows the "YES" route from block 2710 to block 2712, where the logic may deactivate the binding for the control associated with FSR1300/1800 (which may be considered as unregistering a previously registered FSR input event equivalent to a press and hold input). If the second digitized FSR input value is not less than the first digitized FSR input value at block 2710, process 2700 follows the "no" route from block 2710 to block 2708, where the logic waits for additional force data from FSR1300/1800 at block 2708. Process 2700 can reflect the FSR detection mode shown in fig. 21 and described above. Accordingly, the threshold evaluated at block 2704 may correspond to baseline threshold 2102 described with reference to fig. 21.

FIG. 28 is a flow diagram of an example process 2800 for using a time delay to determine whether to ignore an FSR input for a first threshold of a plurality of thresholds. As shown by the page external reference "A" in FIG. 28, process 2800 may continue from any of processes 2400, 2500, or 2600, but this is not required.

At 2802, logic of the handheld controller 100/600 may determine a first digitized FSR input value at a first time based at least in part on the force data provided by the FSR1300/1800 of the controller 100/600. The first digitized FSR input value may be converted from a first resistance value measured at a first time by the FSR 1300/1800.

At 2804, the logic may determine whether the first digitized FSR input value meets or exceeds a first threshold (e.g., a 12202 of fig. 22) to be met in order to register the first FSR input event (e.g., to bind a control associated with the FSR 1300/1800). The first FSR input event may be associated with a first action (e.g., a first game mode). If the first threshold is not met at 2804, the process 2800 follows the "No" route from block 2804 to block 2802, where the logic waits for additional force data at block 2802. If the threshold is met at 2804, process 2800 follows the YES route from block 2804 to block 2806.

At 2806, the logic may begin monitoring for a predefined period of time (e.g., time delay t in fig. 22).

At 2808, the logic may determine a second digitized FSR input value at a second time after the first time based at least in part on the force data provided by the FSR 1300/1800. The second digitized FSR input value may be converted from a second resistance value measured by the FSR1300/1800 at a second time.

At 2810, the logic may determine whether the second digitized FSR input value meets or exceeds a second threshold (e.g., a 22204 of fig. 22) to be met in order to register a second FSR input event (e.g., to bind a control associated with FSR 1300/1800). The second FSR input event may be associated with a second action (e.g., a second mode of play) different from the first action, and the second threshold is greater than the first threshold. If the second threshold is not met at 2810, process 2800 follows the "no" route from block 2810 to block 2812, where the logic waits to determine whether a predefined time period has elapsed (e.g., whether the difference between the second time and the first time is less than the predefined time period). If the time period has not elapsed at block 2812, the process 2800 iterates by following the "no" route from block 2812 back to block 2810. If the time period has elapsed at block 2812 and the second threshold is not met, process 2800 follows a "yes" route from block 2812 to block 2814, where the logic may register a first FSR input event for a first threshold (e.g., may be associated with a first action or game mode).

If the second threshold is met at block 2810, process 2800 follows the "yes" route from block 2810 to block 2816, where the logic evaluates for a predefined period of time at block 2816. If the time period has not elapsed at block 2816, the process 2800 follows the "no" route from block 2816 back to block 2818, where at block 2818 the logic refrains from registering the first FSR input event, but rather registers a second FSR input event that is associated with a second threshold (e.g., which may be associated with a second action or game style). If the time period has elapsed at block 2816 and the second threshold has been met, process 2800 follows the "yes" route from block 2816 to block 2820, where the logic may register a first FSR input event for the first threshold and a second FSR input event for the second threshold at block 2820. Process 2800 may reflect the FSR detection mode shown in fig. 22 and described above.

Fig. 29 shows exemplary components of a handheld controller, such as the controller 100 of fig. 1, although the components shown in fig. 29 may also be implemented by the controller 600. As shown, the handheld controller includes one or more input/output (I/O) devices 2902, such as the controls described above (e.g., joysticks, trackpads, triggers, etc.), which may be any other type of input or output device. For example, I/O device 2902 may include one or more microphones to receive audio input, such as user voice input. In some implementations, one or more cameras or other types of sensors (e.g., Inertial Measurement Units (IMUs)) can be used as input devices to receive gesture inputs, such as motion of the handheld controller 100. In some embodiments, additional input devices may be provided in the form of keyboards, keypads, mice, touch screens, joysticks, control buttons, and the like. The input device may also include control mechanisms, such as a basic volume control button for increasing/decreasing volume, and a power and reset button.

Meanwhile, the output device may include a display, a light emitting element (e.g., LED), a vibrator generating a tactile sensation, a speaker (e.g., earphone), and the like. There may also be a simple light emitting element (e.g., an LED) to indicate status, such as, for example, at power-on. Although some examples have been provided, the handheld controller may additionally or alternatively include any other type of output device.

In addition, the handheld controller 100 may include one or more communication interfaces 2904 to facilitate wireless connectivity to a network and/or one or more remote systems (e.g., host computing devices executing applications, gaming machines, etc.). The communication interface 2904 may implement one or more of a variety of wireless technologies, such as Wi-Fi, bluetooth, Radio Frequency (RF), etc. It should be understood that the handheld controller 100 may also include a physical port to facilitate a wired connection to a network, connected peripheral devices, or plug-in network devices that communicate with other wireless networks.

In the particular implementation shown, the handheld controller also includes one or more processors 2906 and computer-readable media 2908. In some implementations, the processor 2906 may include a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), both a CPU and a GPU, a microprocessor, a digital signal processor, or other processing units or components known in the art. Alternatively or additionally, the functions described herein may be performed, at least in part, by one or more hardware logic components. By way of example, and not limitation, illustrative types of hardware logic components that may be used include Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), system on a chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like. In addition, each of the processors 2906 may have its own local memory, which may also store program modules, program data, and/or one or more operating systems.

In general, the controller may include logic (e.g., software, hardware, and/or firmware, etc.) configured to implement the techniques, functions, and/or operations described herein. Computer-readable media 2908 may include volatile and nonvolatile memory, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules or other data. Such memory includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, RAID storage systems, or any other medium which can be used to store the desired information and which can be accessed by a computing device. The computer-readable medium 2908 may be implemented as a computer-readable storage medium ("CRSM"), which may be any available physical medium that is accessible to the processor 2906 for executing instructions stored on the computer-readable medium 2908. In a basic implementation, the CRSM may include random access memory ("RAM") and flash memory. In other implementations, the CRSM may include, but is not limited to, read only memory ("ROM"), electrically erasable programmable read only memory ("EEPROM"), or any other tangible medium that can be used to store the desired information and that can be accessed by the processor 2906.

Several modules, such as instructions, data stores, etc., may be stored within the computer-readable medium 2908 and configured to execute on the processor 2906. Some exemplary functional modules are shown stored in the computer-readable medium 2908 and executed on the processor 2906, but the same functions may alternatively be implemented in hardware, firmware, or a system on a chip (SOC).

The operating system module 2910 may be configured to manage hardware within the handheld controller 100 and coupled to the handheld controller 100 for the benefit of other modules. Additionally, the computer-readable medium 2908 may store a network communication module 2912 that enables the handheld controller 100 to communicate with one or more other devices (such as a personal computing device executing an application (e.g., a gaming application)), a gaming machine, an HMD, a remote server, and so forth via the communication interface 2904. The computer-readable medium 2908 may also include a game session database 2914 to store data associated with games (or other applications) executing on the handheld controller or a computing device coupled with the handheld controller 100. The computer-readable medium 2908 may also include a device record database 2916 that stores data associated with a device (such as a personal computing device, a gaming machine, an HMD, a remote server, etc.) to which the handheld controller 100 is coupled. The computer-readable medium 2908 may also store game control instructions 2918 that configure the handheld controller 100 to function as a game controller, and general control instructions 2920 that configure the handheld controller 100 to function as a controller for other non-gaming devices.

Fig. 30 depicts a graph 3000 illustrating a technique for suspending calibration adjustments for a touch sensor (at least with respect to a high level value indicating that an object touches the control without pressing) when a user presses the control of the handheld controller with a force above a threshold magnitude. Fig. 30 shows a control 3002 of the handheld controller 100, and a finger 3004 depicted as being in a different position relative to the control 3002 over a range of time. Finger 3004 is an example of an object that can interact with control 3002. Because the control 3002 may be associated with a touch sensor configured to provide touch sensor data indicative of the proximity of the finger 3004 relative to the control 3002, the finger 3004 may interact with the control 3002 by hovering over the control 3002 without touching the control 3002 and/or by touching or contacting the control 3002. Because control 3002 may also be associated with an FSR, finger 3004 may interact with control 3002 by pressing control 3002 with a variable force. These different types of interactions can "operate" the control 3002 to implement different functionality. It should be appreciated that while fig. 30 depicts finger 3004 as an exemplary object that may interact with control 3002, other objects (e.g., a thumb, a portion of a hand such as a palm of a hand, multiple fingers, a stylus, etc.) may interact with control 3002 to operate control 3002 in a similar manner. Thus, the finger 3004 shown in fig. 30 is merely an example, and other objects are contemplated herein with respect to the disclosed embodiments.

The controls 3002 may represent any of the controls described herein disposed on the handheld controller 100, as described herein. For example, referring to fig. 23, the control 3002 may represent a control provided on the controller body 110 and configured to be pressed by a finger or a thumb. For example, control 3002 may represent a thumb-operated control 114, a thumb-operated control 115, and/or a thumb-operated control 116, and/or a finger-operated control (e.g., trigger 609, as shown in fig. 6B). Thus, for example, the control 3002 may be provided on the head 113 of the controller body 100. As another example, the control 3002 may represent a handle 112 of the controller body 110 that is configured to be squeezed by a hand. Accordingly, the control 3002 of fig. 30 is associated with a touch sensor (such as the touch sensor 2300 of fig. 23) that may be configured to provide touch sensor data indicative of a proximity of an object (e.g., a finger, a thumb, etc.) relative to the associated control 3002 (e.g., one or more of the thumb-operated controls 114-116). The touch sensor data can include touch sensor data indicating that an object contacts the associated control 3002. In some embodiments, the touch sensor associated with control 3002 may comprise an array of proximity sensors 800 included within handle 112 of controller body 110. For example, an array of proximity sensors 800, which may be spatially distributed on handle 112, may be configured to provide proximity data indicative of hand grasping handle 112 (an example of control 3002 in fig. 30). Accordingly, the control 3002 may be associated with a touch sensor that uses any suitable technique to sense contact of an object (such as finger 3004) with the control 3002 and/or proximity to the control, as disclosed herein. In an example, the touch sensor associated with control 3002 includes a capacitive sensor (or capacitive sensor array) mounted within controller body 110 (e.g., adhered or otherwise attached to the rear surface of the outer housing and beneath controls 114-116 and/or handle 112, attached to a structure within head 113 (such as a PCB), etc.). In other cases, the touch sensor associated with control 3002 can be based on other touch sensing technologies, such as infrared or acoustic touch sensing.

The control 3002 may also be associated with an FSR configured to provide force data indicating the magnitude of the force pressing the control 3002. When control 3002 represents handle 112 of controller 100, such pressing may include squeezing of handle 112. Thus, the controls 3002 may be associated with one or more of the FSRs 1300 shown in fig. 23, which may be installed within the controller body 110, as described herein.

Fig. 30 illustrates how the touch sensor input curve 3006 and the FSR input curve 3008, respectively, change over time as a function of interaction between the finger 3004 and the control 3002. The touch sensor input curve 3006 plots digitized proximity values over time based on touch sensor data provided by the touch sensor associated with the control 3002. In embodiments where the touch sensor is a capacitive sensor configured to measure capacitance values, the values of the touch sensor input curve 3006 may represent digitized capacitance values that have been converted from analog capacitances measured by the touch sensor. At the same time, FSR input curve 3008 plots, with respect to time, a digitized FSR value based on the force data provided by the FSR associated with control 3002. These values of the FSR input curve 3008 may represent digitized values that have been converted from analog resistance measured by the FSR.

At the beginning of the time range 3010, the digitized proximity value on the touch sensor input curve 3006 is low because the finger 3004 is spaced apart from the control 3002 and does not touch the control 3002. At this low point of the touch sensor input curve 3006, the finger 3004 also does not press the control 3002. During the time range 3010, a positive FSR value 3012 on the FSR input curve 3008 represents a deviation in the FSR output due to sensor noise. That is, even when the finger 3004 is not touching the control 3002, the force data provided by the FSR can be converted to a positive digitized FSR value, which is a "fictitious" force in the sense of the force output when the finger 3004 is not pressing the control 3002. During the time range 3010, the finger 3004 moves closer to the control 3002, and the value of the touch sensor input curve 3006 increases as a function of the movement, because the touch sensor associated with the control 3002 is configured to provide touch sensor data indicative of the proximity of an object (e.g., the finger 3004) relative to the control 3002, meaning that the digitized proximity value on the touch sensor input curve 3006 increases as the finger 3004 is detected to be at increasingly closer locations relative to the control 3002. At the same time, since no pressure is applied to control 3002, FSR input curve 3008 remains constant (does not change) during time range 3010.

At the beginning of time range 3014, finger 3004 is first in contact with control 3002. At this point, the digitized proximity value on the touch sensor input curve 3006 may be measured at or near the high level value 3016. This high level value is sometimes referred to as a maximum proximity value corresponding to the touch input. The high level value 3016 indicates that an object (e.g., finger 3004) contacts the control 3002 without pressing the control 3002. In some embodiments, the high level value 3016 may have been determined based on discrete gesture detection. For example, a calibration algorithm for the touch sensor associated with control 3002 can analyze the touch sensor data (i.e., capacitance values) provided by the control to detect discrete gestures. For example, if the touch sensor data indicates a sudden drop in the digitized proximity value (e.g., capacitance value) of the touch sensor, the calibration algorithm for the touch sensor may associate the drop in value with the user releasing the grip of the controller 100 (e.g., spreading a finger away from the handle 112) or releasing a particular finger 3004 from the control 3002 (e.g., lifting the finger 3004 off of the control 3002 to stop contacting the control 3002). The proximity (e.g., capacitance) value received when the user abruptly releases his or her finger 3004 from the control 3002 may correspond to a low level value within a range of proximity (e.g., capacitance) values detected by the touch sensor (e.g., where the low level value indicates that the finger 3004 is not touching the control 3002 and is spaced apart from the control 3002 at the time). The proximity (e.g., capacitance) value received prior to the sudden drop may correspond to a high level value 3016 shown in graph 3000 (e.g., where the high level value 3016 indicates that the finger 3004 touched the control 3002 at this time without pressing). Using the range of proximity (e.g., capacitance) values, the calibration algorithm may determine a bias and scaling factor for the touch sensor to normalize the proximity (e.g., capacitance) values measured by the touch sensor.

At a later time during the time range 3014, the finger 3004 presses the control 3002. At this point, the digitized FSR value on FSR input curve 3008 may begin to increase due to the application of a certain amount of force on control 3002 with the initial touch input. As the finger 3004 presses the control 3002 harder, the FSR value on the FSR input curve 3008 begins to increase, approaching the intersection 3018, where the FSR value transitions from below the FSR threshold 3020 (threshold) to above the FSR threshold 3020. Thus, logic of the handheld controller 100 may determine that the first digitized FSR value (which is based on the force data provided by the FSR associated with the control 3002) exceeds the FSR threshold 3020, which indicates a transition from the finger 3004 contacting the control 3002 without pressing the control 3002 to the finger 3004 pressing the control 3002 with a force above the threshold magnitude corresponding to the FSR threshold 3020. In other words, the logic may detect a first transition from a first digitized FSR value that is less than or equal to FSR threshold 3020 to a second digitized FSR value that is greater than FSR threshold 3020. In response to determining that the digitized FSR value exceeds the FSR threshold 3020 (e.g., in response to detecting a first transition on the cross-over point 3018), the logic may pause ongoing calibration adjustments for the touch sensor, which without pausing would increase the high-level value 3016 to a value on the touch sensor input curve 3006 that exceeds the existing high-level value 3016 during the time range 3014. That is, during time range 3014, finger 3004 may press control 3002 and then release pressure on the control. Concurrently with such pressing and releasing of pressure on control 3002, FSR input curve 3008 rises and falls (e.g., peaks), and touch sensor input curve 3006 also rises and falls above high level value 3016 due to the larger contact area and/or downward deflection of control 3002 toward the associated touch sensor. The suspension of calibration adjustments brings the high level value 3016 back at or near the cross-over point 3018 by: when the FSR value transitions from above the FSR threshold 3020 to below the FSR threshold 3020, the calibration algorithm is instructed to pause, suspend, or otherwise stop its tracking of the high-level value 3016 between the cross-point 3018 and the subsequent cross-point 3022.

During time range 3024, finger 3004 remains touching control 3002 without pressing, and the FSR value has now transitioned below FSR threshold 3020 at intersection 3022. At this point, calibration tracking may be resumed because finger 3004 is no longer pressing control 3002. Thus, suspension of calibration adjustments for the touch sensor, at least with respect to the high level value 3016, effectively indicates that the calibration algorithm ignores the range of proximity (e.g., capacitance) values on the touch sensor input curve 3006 during the time that the FSR value is above the FSR threshold 3020; to perform calibration tracking for the touch sensor, the calibration algorithm essentially assumes that these proximity values on the touch sensor input curve 3006 are not present. The reason for ignoring higher proximity values on the touch sensor input profile 3006 during the period between the cross-points 3018 and 3022 is that the FSR captures pressure-based input during this time, and therefore, there is no need to monitor the values on the touch sensor input profile 3006 during this time because the input during this time is due to the finger 3004 pressing harder on the control 3002. By ignoring this data for calibration, the output of the touch sensor is improved by better calibrating the touch sensor. This, in turn, can improve the finger tracking algorithm so that, for example, when the user's hand is still holding the controller 100, the VR application does not cause the fingers of the virtual hand to lift off of the controller 100, or the VR application does not inadvertently interpret the touch sensor data, thereby inadvertently throwing objects away in the VR game.

As shown in graph 3000, the FSR associated with control 3002 is configured to measure a range of resistance values that are converted to digitized FSR values. For example, the peak of the FSR input curve 3008 may represent the upper limit of the FSR range, and the positive FSR value 3012 may represent the lower limit of the FSR range. In some embodiments, FSR threshold 3020 is about 5% to about 15% of the range of resistance values that the FSR is capable of measuring (or 5% to 15% of the range of digitized FSR values depicted by graph 3000). In some embodiments, the FSR threshold 3020 is about 10% of the range of resistance values that the FSR is capable of measuring (or 10% of the range of digitized FSR values depicted by the graph 3000). In some embodiments, FSR threshold 3020 is set to a value that is greater than the positive FSR value 3012 shown in curve 3000 (or the corresponding positive resistance value due to sensor noise measured by the FSR). In some embodiments, the FSR threshold 3020 is greater than the positive FSR value 3012 by a threshold amount, such as two standard deviations represented by the positive FSR value 3012 greater than the noise floor. The goal may be to set FSR threshold 3020 to a point at which the digitized FSR value is safely interpreted as a pressure applied to control 3002, rather than a bias value due to sensor noise. Even if the zero of the FSR output is unknown to the calibration pause logic, a low fidelity FSR range above the noise floor of the FSR may be identified such that the portion of the time range 3014 between the cross points 3018 and 3022 corresponds to the finger 3004 pressing the control 3002 with a reasonable degree of confidence, rather than the finger 3004 touching the control 3002 without pressing.

Fig. 31 is a flow diagram of an exemplary process 3100 for suspending calibration adjustments for a touch sensor relative to a high-level value when a user presses a control 3002 of a handheld controller 100/600 with a force above a threshold amount.

At 3102, logic of the handheld controller 100/600 may begin to perform calibration adjustments for the touch sensor associated with the at least one control 3002 of the handheld controller 100/600. Performing the calibration adjustment at block 3102 may begin in response to the controller 100/600 being powered on, and may involve adjusting at least the high-level value 3016 indicating that an object (e.g., a finger, thumb, part of a hand, stylus, etc.) contacts the control 3002 in response to a criterion being met. In this case, the criterion may be met when the average proximity value (which is based on touch sensor data from the touch sensor over a previous number of samples) exceeds the existing high level value 3016. If such criteria are met during use of the hand-held controller 100/600, the high-level value 3016 may be increased from an existing value to a new value that is greater than the existing value. An exemplary calibration algorithm is discussed in more detail below with respect to fig. 32. It should be appreciated that performing the calibration adjustment at block 3102 may also involve adjusting a low level value that indicates that the object is spaced from control 3002 if different criteria are met.

At 3104, the logic may determine: (i) a digitized proximity value based at least in part on touch sensor data provided by a touch sensor associated with control 3002, and (ii) a (first) digitized FSR value based at least in part on force data provided by an FSR associated with control 3002. For example, the digitized proximity value may be converted from a capacitance measured by the touch sensor and/or the digitized FSR value may be converted from a resistance measured by the FSR.

At 3106, the logic may determine whether the (first) digitized FSR value determined at block 3104 exceeds a threshold value (e.g., FSR threshold 3020). If the digitized FSR value does not exceed the threshold, process 3100 can follow the "no" route from block 3106 to determine another digitized proximity value and another digitized FSR value. In other words, the calibration adjustment is not suspended as long as the digitized FSR value does not exceed the FSR threshold 3020. If the (first) digitized FSR value exceeds the threshold at block 3106, process 3100 can follow the yes route from block 3106 to block 3107. A digitized FSR value exceeding FSR threshold 3020 may indicate a transition from the object contacting control 3002 without pressing control 3002 to the object pressing control 3002. Stated another way, at block 3106, the logic may detect a transition from a (first) digitized FSR value less than or equal to a threshold value (e.g., FSR threshold 3020) to a (second) digitized FSR value greater than the threshold value based at least in part on force data provided by the FSR associated with control 3002.

At 3107, in response to determining at block 3106 that the digitized FSR value exceeds the threshold, the logic may determine whether the digitized proximity value determined at block 3104 exceeds the high level value 3016. If the digitized proximity value does not exceed the high level value 3016, process 3100 can follow the "no" route from block 3107 to determine another digitized proximity value and another digitized FSR value. In other words, the calibration adjustment is not paused as long as the digitized proximity value does not exceed the high level value 3016. Referring to fig. 30, this situation will occur if the touch sensor input curve 3006 happens to be below the high level value 3016 at the time corresponding to the cross-over point 3018. If the digitized proximity value exceeds the high-level value 3016 at block 3107, process 3100 may follow the yes route from block 3107 to block 3108.

At 3108, the logic may pause the calibration adjustment initiated at block 3102. Such suspension of calibration adjustment at block 3108 may be performed in response to determining that the digitized FSR value exceeds the threshold at block 3106 (e.g., in response to detecting a first transition from the (first) digitized FSR value being less than or equal to the threshold to the (second) digitized FSR value being greater than the threshold) and also in response to determining that the digitized proximity value exceeds the high level value 3016 at block 3107. Suspending the calibration adjustment may include refraining from increasing the high level value 3016 after detecting the first transition at block 3106 and after determining that the current digitized proximity value is greater than the high level value 3016. Suspending the calibration adjustment may include limiting high-level value 3016 to a fixed value such that high-level value 3016 does not increase when limited to a fixed value. Exemplary techniques for suspending calibration adjustments are further disclosed below with reference to fig. 33 and 34.

At 3110, logic may determine a (second) digitized FSR value based at least in part on force data provided by the FSR associated with control 3002. For example, the digitized FSR value may be converted from the resistance measured by the FSR after suspending calibration adjustments at block 3108.

At 3112, the logic may determine whether the (second) digitized FSR value determined at block 3110 exceeds a threshold (e.g., FSR threshold 3020). If the digitized FSR value exceeds the threshold at block 3112, process 3100 can follow the yes route from block 3112 to determine another digitized FSR value. In other words, the calibration adjustment remains suspended as long as the digitized FSR value continues to exceed the FSR threshold 3020. If the (second) digitized FSR value is less than or equal to the threshold at block 3112, process 3100 can follow the no route from block 3112 to block 3114. A digitized FSR value less than or equal to FSR threshold 3020 at block 3112 may indicate a transition from the object pressing control 3002 to the object contacting control 3002 without pressing control 3002. Stated another way, at block 3112, the logic may detect a second transition from the (third) digitized FSR value being greater than the threshold (e.g., FSR threshold 3020) to the (fourth) digitized FSR value being less than or equal to the threshold based at least in part on the force data provided by the FSR associated with control 3002.

At 3114, in response to determining that the digitized FSR value is less than or equal to the threshold at block 3112 (e.g., in response to detecting a second transition from the (third) digitized FSR value being greater than the threshold to the (fourth) digitized FSR value being less than or equal to the threshold), the logic may resume the calibration adjustment suspended at block 3108. Resuming calibration adjustment may include allowing the high-level value 3016 to increase after detecting the second transition at block 3112. After block 3114, for example, the process 3100 may repeat blocks 3104 through 3114 until the handheld controller 100/600 is powered down.

Fig. 32 is a flow chart of an exemplary process 3200 for performing continuous calibration adjustments for a touch sensor associated with a control 3002 of a handheld controller 100/600.

At 3202, one or more processors of handheld controller 100/600 can receive touch sensor data from a touch sensor associated with control 3002 of handheld controller 100/600. For example, the touch sensor data can include digitized proximity (e.g., capacitance) values converted from analog proximity measurements (e.g., capacitance) of the touch sensor.

At 3204, logic of handheld controller 100/600 (e.g., logic implementing a calibration algorithm) can calibrate the touch sensor associated with control 3002 by performing calibration adjustments. As shown in the sub-box of block 3204, the calibration may involve various sub-operations.

At 3206, logic may perform discrete gesture detection. This may involve analyzing touch sensor data (i.e., capacitance values) provided by the touch sensors to detect discrete gestures at the controller 100/600. For example, if the touch sensor data indicates a sudden drop in a proximity (e.g., capacitance) value of the touch sensor, the logic may associate the drop in the proximity (e.g., capacitance) value with the user releasing his or her hand from the control 3002 or releasing a particular finger 3004 from the control 3002. The proximity (e.g., capacitance) value received when the user abruptly releases his or her finger 3004 from the control 3002 may correspond to a low level value within a range of proximity (e.g., capacitance) values detected by the touch sensor (e.g., where the low level value indicates that the finger 3004 is spaced apart from the control 3002 and not touching the control at that time). The proximity (e.g., capacitance) value received prior to the abrupt decrease may correspond to a high level value 3016 within a range of proximity (e.g., capacitance) values detected by the touch sensor (e.g., where the high level value 3016 indicates that the finger 3004 touched the control 3002 at the time without pressing).

At 3208, logic may perform continuous calibration (updating and decay) on the low level values. For example, when touch sensor data is received from a touch sensor, the logic may continuously monitor the touch sensor data to recalibrate or reset a low level value of the range of proximity (e.g., capacitance) values of the touch sensor. In other words, by continuously receiving touch sensor data from the touch sensor, the logic may determine whether the proximity (e.g., capacitance) value is below a previously determined low level value of the range. For example, when the capacitance changes throughout the gaming experience (e.g., due to hand perspiration or dryness, humidity, temperature, etc.), the logic may determine or set a new low level value at block 3208, adjusting the range of proximity (e.g., capacitance) values detected by the touch sensor.

At 3210, the logic may perform continuous calibration (updating and attenuating) on the high-level value 3016. For example, when touch sensor data is received from the touch sensor, the logic may continuously monitor the touch sensor data to recalibrate or reset the high level value 3016 of the range of proximity (e.g., capacitance) values of the touch sensor. In other words, by continuously receiving touch sensor data from the touch sensor, the logic may determine whether the proximity (e.g., capacitance) value is greater than a previously determined high-level capacitance value of the range. For example, subframes 3212 through 3216 may be performed at block 3210.

At 3212, the logic may determine an average proximity value based at least in part on touch sensor data provided by the touch sensor within a previous number of samples (e.g., counts, frames, etc.). For example, the detected proximity values within the previous N samples (e.g., where N-20) may be converted from the analog output of the touch sensor (e.g., the measured analog capacitance), and the logic may determine an average of the N proximity values. This provides the average proximity value of the previous N samples.

At 3214, the average proximity value determined at block 3212 may be compared to a high level value 3016, which is set to an existing value, to determine whether the average proximity value exceeds the high level value 3016. If the average proximity value does not exceed the existing high level value 3016, process 3200 may follow the "no" route from block 3214 to block 3212, where another subsequent average proximity value is determined based on additional touch sensor data provided by the touch sensor. If the average proximity value exceeds the existing high level value 3016, process 3200 may follow the "yes" route from block 3214 to block 3216.

At 3216, in response to the average proximity value exceeding the existing high-level value 3016, the logic may adjust the high-level value 3016 from the existing value to a new value that is greater than the existing value. In other words, the high level value 3016 is increased at block 3216. In some embodiments, a new high-level value 3016 is determined at block 3216 based at least in part on a percentage or weight of the average proximity value received over a predetermined number of frames. For example, the new high-level value 3016 may be expanded (or increased) toward an average proximity value determined from a previous number of past samples. In some cases, the amount by which the high-level value 3016 "grows" may be determined by multiplying the average proximity value from the previous number of frames by a variable, such as 0.2. However, this variable may be optimized such that the high level value 3016 "grows" toward the average proximity value determined over the previous number of frames to accurately determine the gesture of the user holding the handheld controller 100/600. In some cases, the amount of increase in the high-level value 3016 may also be based at least in part on the amount by which the average proximity value exceeds the high-level value 3016 at block 3214.

In some embodiments, performing calibration adjustments at block 3204 may include attenuating the low-level value or the high-level value 3016 over time, depending on how the user is grasping the controller 100/600, environmental conditions (e.g., humidity), or other characteristics (e.g., skin humidity). For example, the high-level value 3016 may be gradually decreased from an existing value to a predetermined lower value, and/or the low-level value may be gradually increased from an existing value to a predetermined higher value. The amount by which the low-level value and the high-level value 3016 may be attenuated may be limited such that the low-level value and the high-level value 3016 are separated by a threshold amount of range to reduce sensor noise of the touch sensor. In some cases, the attenuation may depend on time and/or the rate of change of the proximity (e.g., capacitance) value of the touch sensor. For example, if a user taps their finger on control 3002, or a different user picks up controller 100/600, potentially causing a change in the received proximity (e.g., capacitance) value, the decay rate may be increased to reduce the amount of time required to update low-level value and/or high-level value 3016.

It should be appreciated that when suspending calibration adjustment (e.g., at block 3108 of process 3100), such suspension of calibration adjustment may include omitting or otherwise ignoring sub-block 3210 of block 3204 after such suspension. In other words, as described herein, pausing the calibration adjustment in response to the object pressing the control 3002 with a force above the threshold magnitude means that the high level value 3016 is not allowed to increase, however, the continuous low level adjustment at block 3208 may continue after the pause. The pause is at least to prevent the high level value 3016 from increasing further.

FIG. 33 is a flow diagram of an exemplary sub-process 3300 of pausing calibration adjustments for a touch sensor. For example, process 3300 may be performed as part of block 3108 of process 3100.

At 3302, logic of the handheld controller 100/600 may determine the existing value to which the high-level value 3016 is currently set when it is determined that the (first) digitized FSR value exceeds the FSR threshold 3020 (e.g., when a first transition is detected from the (first) digitized FSR value being less than or equal to a threshold (e.g., the FSR threshold 3020) to the (second) digitized FSR value being greater than the threshold).

At 3304, the logic may avoid increasing the high-level value 3016 to a value greater than the existing value determined at block 3302. In other words, the process 3300 determines what the high-level value 3016 is set to when the FSR input curve 3008 of the graph 3000 crosses the FSR threshold 3020 at the cross-over point 3018 (e.g., from below the FSR threshold 3020 to above the FSR threshold 3020), and at this time, the logic "freezes" the high-level value 3016 to the currently set value.

FIG. 34 is a flow diagram of another exemplary sub-process 3400 that pauses calibration adjustments for a touch sensor. For example, the process 3400 may be performed as part of block 3108 of process 3100. The process 3400 may be performed in response to logic of the handheld controller 100/600 determining that the (first) digitized FSR value exceeds the FSR threshold 3020 (e.g., in response to detecting a first transition from the (first) digitized FSR value being less than or equal to a threshold (e.g., the FSR threshold 3020) to the (second) digitized FSR value being greater than the threshold).

At 3402, the logic may determine a maximum of a plurality of first digitized proximity (e.g., capacitance) values determined based on touch sensor data provided by the touch sensor before determining that the (first) digitized FSR value exceeds FSR threshold 3020 (e.g., before detecting the first transition). That is, the logic may determine the maximum proximity value of the touch sensor at a time before FSR threshold 3020 crosses from below FSR threshold 3020 to above FSR threshold 3020.

At 3404, the logic may determine a minimum value of a plurality of second digitized proximity values determined based on touch sensor data provided by the touch sensor after determining that the (first) digitized FSR value exceeds FSR threshold 3020 (e.g., after detecting the first transition). That is, the logic may determine the minimum proximity value of the touch sensor at a time after FSR threshold 3020 crosses from below FSR threshold 3020 to above FSR threshold 3020.

At 3406, the logic may calculate an average between the maximum determined at block 3402 and the minimum determined at block 3404.

At 3408, the logic may refrain from increasing the high level value 3016 to a value greater than the average value determined at block 3406. In other words, the process 3400 determines an average between a highest proximity (e.g., capacitance) value that occurs before the FSR input curve 3008 of the graph 3000 crosses the FSR threshold 3020 at the intersection point 3018 (e.g., from below the FSR threshold 3020 to above the FSR threshold 3020), and a lowest proximity (e.g., capacitance) value that occurs after the FSR input curve 3008 crosses the FSR threshold 3020 at the intersection point 3018 and the logic "freezes" the high level value 3016 to the average to suspend calibration adjustments.

Unless otherwise indicated, all numbers expressing quantities used in the specification and claims are to be understood as being modified in all instances by the term "about". Accordingly, unless indicated to the contrary, the numerical parameters set forth in the specification and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by the present disclosure. At the very least, and not as an attempt to limit the application of the doctrine of equivalents to the scope of the claims, each numerical parameter should at least be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. When further clarification is desired, the term "about" has the meaning reasonably given to it by those skilled in the art when used in conjunction with the stated value or range, i.e., meaning a range slightly larger or slightly smaller than the stated value or range as follows: within ± 20% of said value; within ± 19% of said value; within a range of ± 18% of said value; within ± 17% of said value; within ± 16% of said value; within ± 15% of said value; within ± 14% of said value; within ± 13% of said value; within a range of ± 12% of said value; within a range of ± 11% of said value; within ± 10% of said value; within ± 9% of said value; within ± 8% of said value; within ± 7% of said value; within ± 6% of said value; within ± 5% of said value; within ± 4% of said value; within ± 3% of said value; within ± 2% of said value; or within ± 1% of said value.

Although the subject matter has been described in language specific to structural features, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features described. Rather, the specific features are disclosed as exemplary forms of implementing the claims.

The present disclosure is described with reference to specific exemplary embodiments thereof, but those skilled in the art will recognize that the present disclosure is not limited to those exemplary embodiments. It is contemplated that various features and aspects of the disclosure may be used separately or in combination and by potentially different environments or applications. For example, features shown with reference to a right-hand controller may also be implemented in a left-hand controller, and vice versa. The specification and drawings are, accordingly, to be regarded in an illustrative and exemplary sense rather than a restrictive sense. For example, the word "preferably" and the phrase "preferably, but not necessarily," are used synonymously herein to consistently include the meaning of "not necessarily," or "optionally. The terms "comprising," "including," and "having" are intended to be open-ended terms.

76页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:屏幕显示的控制方法、装置和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类