Force sensing and unintentional input control
By detecting applied forces and combining the position sensor technology, identifying the user's input intentions, solving the problem of unintentional input interference, and improving the stability and accuracy of the user experience.
Patent Information
- Application Number
- CN201680032528.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2015-06-03
- Filing Date
- 2016-05-11
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2036-05-11
Smart Images

Figure CN107667332B_ABST
Abstract
Description
[0001] background
[0002] Detection of touch input can be used to support a variety of functions. For example, trackpads for supporting cursor control and gestures can be found on a variety of different devices, such as on laptops, on removable keyboard covers for tablets, and so on. In some instances, the trackpad also includes functionality that can be used to initiate a selection (e.g., a "click") and thereby move the cursor, and the selection can be made by the user without the user having to remove a finger from the trackpad to press a separate key. Touch functionality can also be included in a variety of other devices, such as part of a touch screen of a mobile phone or tablet, a keyboard sensor array, and so on.
[0003] However, in some instances, the user may inadvertently provide touch input that may interfere with the user experience. For example, the user may be typing on the keyboard and "hover" the finger over the trackpad, which may then result in unintentional taps due to fatigue, being jostled, etc. In the case of composing a document, this may result in the cursor being moved elsewhere in the document. If the user does not notice this movement, the keystrokes may continue at that point, which may be frustrating. These frustrations may also be encountered in other scenarios, such as when browsing the Internet, drawing a picture, and the like.
[0004] Overview
[0005] Unintentional input control techniques are described. In one or more implementations, techniques are described that utilize detection of applied force to determine the likelihood that a user intended to provide an input, such as a selection input (e.g., a "click"), a gesture, a lift-off, and the like. This can be used to identify a tap, a hover (e.g., a non-contact or a contact viewed at a level below a threshold), a moving continuation of a drag operation, and the like. Implementations are also discussed that utilize a curve, surface, or n-clusters in a product space of contact size and signal strength that can be used to define the likelihood of whether a contact includes the application of a force. Various other examples are also described, including cursor stability techniques that utilize force to control cursor movement.
[0006] This Summary is provided to introduce some concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The detailed description is described in conjunction with the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The use of the same reference number in different instances in the specification and the drawings may indicate similar or identical items. Each entity represented in the drawings may refer to one or more entities and thus references to the singular or plural form of each entity may be made interchangeably in the discussion.
[0009] Figure 1 is an illustration of an environment that may be used in an example implementation that employs the inadvertent input control techniques described herein.
[0010] Figure 2 Depicted are examples of a force sensor that includes a tactile feedback mechanism that employs piezoelectricity to detect force and provide tactile feedback, and a position sensor that can be used to detect the relative position of an object.
[0011] Figure 3 Depicted is a system in an example implementation showing unintentional input control of a selection input by a force control module.
[0012] Figure 4 An implementation showing first, second, and third examples of force signatures expressed as waveforms is depicted.
[0013] Figure 5 Depicted is an example implementation of control of unintentional input involving hovering.
[0014] Figure 6 Depicted is an example implementation of control of unintentional input involving long-duration hovering.
[0015] Figure 7 Depicted are example implementations of control of unintentional inputs involving selection inputs and movement.
[0016] Figure 8 An example implementation of control of unintentional input involving selection input and release of movement is depicted.
[0017] Fig. 9 Depicted are systems in example implementations that illustrate techniques that may be used to control a cursor during a press down using the force of a force control module.
[0018] Fig.10 Depicted are systems in example implementations illustrating techniques that may be used to control a cursor during lift-off using force measurements made by a force control module.
[0019] Fig.11 Depicted are systems in example implementations illustrating techniques that may be used to control a cursor using a force measured by a force control module to control a gain factor that maps a velocity of an object to a velocity of the cursor on a screen.
[0020] Fig.12 Depicted are systems that can be used in example implementations that employ techniques related to force curves and unintentional input control.
[0021] Fig.13 Depicted is an example implementation for obtaining realistic measured operating characteristics of a manually operated mechanism at a single touch location.
[0022] Fig.14 is a flow diagram depicting a procedure in an example implementation in which curves are used to classify whether reports are likely to indicate intentional or unintentional input.
[0023] Fig.15 shows a reference that can be implemented as Figure 1-14 Any type of computing device described herein may be used to implement an example system of various components of the example devices of the embodiments of the techniques described herein.
[0024] Detailed Description
[0025] Overview
[0026] Unintentional input captured by a touch-enabled device can cause disruption to the user experience when the user is interacting with the device. This can result in unintentional selections that are confusing to the user, unexpected movement of the cursor, incorrect gestures, etc.
[0027] Unintentional input control techniques are described. In one or more implementations, force is utilized to at least partially determine the likelihood that a user intended to provide input. In a first example, a force waveform is used to determine whether a user intended to tap. In a second example, a force waveform is used to determine the likelihood that an input detected by a position sensor (e.g., by a capacitive sensor) was intended by the user by verifying whether the force was detected by the force sensor. In a third example, when the likelihood that a user intended to hover a finger over a trackpad is higher than the likelihood that the user wanted to initiate an input, a contact that occurs after a long duration of hovering is ignored.
[0028] Cursor stability techniques are also described. In one or more examples, a force is used to cause the cursor to remain stable, such as to press an object down onto the trackpad or to lift an object off the trackpad. This can be performed by detecting the amount of force, used to reduce cursor speed gain, etc. In this way, the effect of the center of mass movement of the contact area caused by pressing or releasing can be minimized.
[0029] Also described is a technique in which the amount of force is inferred from a position sensor without the use of a dedicated force sensor. The value of the contact size (e.g., area) and the value of the signal strength (e.g., amplitude) from a position sensor (e.g., a capacitive sensor, a sensor-in-pixel configuration, etc.) are compared to a curve, surface, or (generally) n-cluster defined in a product space of contact size and signal strength, which can be used to detect a specified amount of force applied to the outer surface of the position sensor. The product space is the Cartesian product of a family of topological spaces with a natural topology, known as a product topology. For example, points above the n-cluster are considered to indicate force, while points below the n-cluster do not indicate force, resulting in a zero-force n-cluster. Thus, the n-cluster can also be used to determine the likelihood that a user expects to initiate input, maintain input (e.g., as part of a select and drag operation), and the like. Further discussion of these examples and other examples is included in the following sections.
[0030] In the following discussion, an example environment in which the techniques described herein may be employed is first described. Example procedures that may be performed in the example environment and in other environments are then described. Therefore, execution of the example procedures is not limited to the example environment, and the example environment is not limited to executing the example procedures described further below.
[0031] Example Environment
[0032] Figure 1 1 is a diagram of an environment 100 that can be used in an example implementation of the unintentional input control techniques described herein. The illustrated environment 100 includes an example of a computing device 102 that is physically and communicatively coupled to an input device 104 via a flexible hinge 106. The computing device 102 can be configured in various ways. For example, the computing device 102 can be configured for mobile use, such as a mobile phone, a tablet computer, etc. Thus, the computing device 102 can range from a full-resource device with a large amount of memory and processor resources to a low-resource device with limited memory and / or processing resources. The computing device 102 can also be associated with software that causes the computing device 102 to perform one or more operations.
[0033] For example, computing device 102 is illustrated as including input / output module 108. Input / output module 108 represents functionality associated with processing input to computing device 102 and presenting output from computing device 102. Input / output module 108 can process a variety of different inputs, such as inputs involving functions corresponding to keys of input device 104, inputs involving functions corresponding to keys of a virtual keyboard displayed by display device 110, identifying gestures and causing operations to be performed corresponding to gestures recognizable through touch screen functionality of input device 104 and / or display device 110. Thus, input / output module 108 can support a variety of different input technologies by recognizing and utilizing distinctions between various types of inputs, including key presses, gestures, and the like.
[0034] In the example shown, the input device 104 is configured to have an input portion including a keyboard 112 having a QWERTY key arrangement and a trackpad 114, but other key arrangements are also contemplated. In addition, other unconventional configurations are also contemplated, such as game controllers, configurations that mimic musical instruments, and the like. Thus, the input device 104 and the keys included in the input device 104 can be configured in a variety of different ways to support a variety of different functions.
[0035] As previously described, in this example, the input device 104 is physically and communicatively coupled to the computing device 102 using a flexible hinge 106. The flexible hinge 106 is flexible in that the rotational movement supported by the hinge is achieved by flexure (e.g., bending) of the material forming the hinge, as opposed to mechanical rotation such as supported by a pin (but this embodiment is also contemplated). In addition, the flexible rotation can be configured to support movement in one or more directions (e.g., vertically in this figure), while restricting movement in other directions, such as lateral movement of the input device 104 relative to the computing device 102. The flexible hinge 106 can be used to support consistent alignment of the input device 104 relative to the computing device 102, such as to align a sensor for changing power states, application states, etc.
[0036] The flexible hinge 106 can be formed using one or more layers of fabric and include conductors formed as flexible traces to communicatively couple the input device 104 to the computing device 102 and vice versa. This communication can be used to communicate the results of a key press to the computing device 102, receive power from the computing device, perform authentication, provide supplemental power to the computing device 102, and so on.
[0037] The input device is also illustrated as including a force control module 116, which represents the use of force control techniques to manage unintentional and intentional input. For example, the input device 104 may include a force sensor 118 and a position sensor 120. The force sensor 118 can be configured in a variety of ways, such as through the use of piezoelectrics, force sensitive resistors, compression ranges, and the like. The force sensor can be used to provide a single indication of force that sums all contact forces, or to provide a technique for calculating the amount of force based on each sensor force reading. The position sensor 120 is configured to detect the relative position of an object (such as a finger of a user's hand) to control the movement of a cursor, input gestures, and the like. The force sensor 118 and the position sensor 120 can be configured in a variety of ways to be included in various devices, such as as part of a trackpad 114, such as a Fig.12 The keys of a keyboard are shown arranged in a sensor array, as part of a touch screen functionality of display device 110, etc. Accordingly, although trackpad implementations are described in the following discussion, these implementations are equally applicable to other devices and usage scenarios.
[0038] Figure 2 An example 200 of a force sensor 118 and a position sensor 120 is depicted, the force sensor 118 employing piezoelectricity to detect force and provide tactile feedback, and the position sensor 120 can be used to detect the relative position of an object. This example is illustrated using a first stage 202, a second stage 204, and a third stage 206. The mechanism includes an outer surface 208, such as the surface of a trackpad or the keys of a keyboard. The outer surface 208 can be formed of a variety of different materials and combinations thereof, such as glass, plastic, laminated structures, and fabric outer layers, among others.
[0039] The outer surface 208 includes Figure 1 A position sensor 120 is configured to detect a relative position of an object relative to the outer surface 208. The position sensor 120 may be formed of a variety of different sensor types, such as a capacitive sensor (e.g., a capacitor array), an in-pixel sensor, an optical sensor, a resistive sensor, and an acoustic sensor.
[0040] The outer surface 208 is mechanically coupled to the pad 210, which is mechanically coupled to the backing 212. The pad 210 is configured to direct forces applied to the outer surface 210 to a central region of the backing 212 and, therefore, to the piezoelectric 214 connected to the backing 212. In this way, the amount of deflection of the backing 212 and corresponding piezoelectric 214 increases in response to force even under "off-center" compression, thereby supporting greater sensitivity for detecting force and the amount of tactile response.
[0041] The liner 212 is formed of a rigid material (e.g., steel, plastic, etc.) and is physically coupled to the piezoelectric 214. Accordingly, as illustrated in the first stage 202, when no force is applied to the outer surface 208 (and thus no force is applied to the liner 212), the piezoelectric 214 is not compressed and thus does not output a voltage.
[0042] In the second stage 204, an object 216, such as a finger of a user's hand (not shown to scale), as part of pressing on the outer surface 216, applies a force that causes the lining 212 to deflect, and thereby compresses the piezoelectric 214, which causes an output voltage that can be detected by the force sensing and haptic feedback module 116. Because the voltage output by the piezoelectric 214 varies with the amount of force applied, the piezoelectric 214 is configured to detect not only the presence or absence of force, but also the amount of force, such as a corresponding one of multiple levels of force. The piezoelectric 214 can be configured in various ways, such as being formed at least in part of a piezoelectric ceramic material, PZT, an electroactive polymer, or an electromechanical polymer.
[0043] The piezoelectric 214 can also be used to provide tactile feedback, as shown in the third stage 206. Continuing with the previous example in the second stage 204, the piezoelectric 214 detects the amount of force applied by the finger of the user's hand to the outer surface 208. If the detected force exceeds a threshold, the force control module 116 energizes the piezoelectric 214. This causes the piezoelectric 214 to pull the lining material 212 in the opposite direction, thereby deflecting back outward toward the object 216 applying the force, thereby providing a tactile response.
[0044] In this way, the piezoelectric 214 is utilized to provide both force sensing and tactile feedback. Other examples are also contemplated. For example, force may be sensed by a force sensor that is not a piezoelectric, and then the piezoelectric may be used to provide tactile feedback. In another example, a first piezoelectric may be used to detect force, and a second piezoelectric may be used to provide tactile feedback. As described above, the force sensor 118 may also be configured without a piezoelectric without departing from the spirit and scope of the technology described herein.
[0045] Force sensing and unintentional input control
[0046] Figure 3 A system 300 is depicted in an example implementation showing unintentional input control of a selection input by the force control module 116. The selection input can be considered a brief tap on the outer surface 208 of an input device (e.g., a trackpad) that, in some instances, is not strong enough to trigger a selection input such as a combination of a finger tap and a finger tap. Figure 2 Other examples are also contemplated in which a selection input of a "press" is controlled, such as a selection input of sufficient intensity to initiate a click and a tactile response, for example, a button press of a mouse.
[0047] In this example, force control module 116 is configured to control the results of unintentional input by using force signature 302, which is expressed as a waveform formed by reports obtained by force control module 116 from force sensor 118. Force control module 116 is configured to prevent further transmission of reports from force sensor 118 and position sensor 120 that do not meet input criteria, e.g., suppressing the associated contact so that touch detection is not reported to computing device 102, marking the contact as invalid (e.g., by clearing a confidence bit), and so on.
[0048] The force control module 116 obtains reports from the force sensor 118 that continuously samples the force readings at a sampling rate. In one or more implementations, the reports (e.g., readings) are spaced apart by no more than 1 millisecond or 2 milliseconds. There may be exceptions for simpler parameter extractions, such as to determine pure presence to distinguish from hovering. In those cases, sampling at a slower rate may be allowed. The reports may be maintained by the force control module 116 in a buffer (such as a ring buffer) to hold samples worth about 50 milliseconds.
[0049] A check is first made by the force control module 116 for proper operating conditions, such as starting with zero contact with the trackpad for situations involving a single tap. The force control module 116 waits for an indication of the arrival of a contact (e.g., a finger of a user's hand in the illustrated example) to be detected. There may be a delay between the contact (e.g., a finger touching down) and the controller of the position sensor 120 reporting the contact. The delay may be due to the limited frame rate of the position sensor 120 (e.g., 8 ms), noise filtering performed by the controller, etc.
[0050] Accordingly, the rising edge of the waveform of the force signature 302 associated with a new contact by the force sensor 118 is typically followed by a report from the position sensor 120. This delay is typically variable, typically varying between 5 milliseconds and 15 milliseconds. When the report arrives from the position sensor 120, the force control module 116 retrieves the force report from the cache back in time (e.g., up to about 15 ms) to ensure that the rising edge of the waveform of the force signature 302 is captured.
[0051] Once the force signature 302 is captured, the force control module 116 first locates the rising edge in the waveform. As discussed above, there may be some uncertainty as to where the rising edge is found. Parameters such as the slope and amplitude (e.g., maximum height) of the rising edge are then extracted from the waveform as described below.
[0052] If force signature 302 appears to satisfy an expected selection input (e.g., a "tap"), force control module 115 is configured to register and permit communication of this information to input / output module 108 of computing device 102. Thus, computing device 102 may also make a conclusion as to whether each report reflects an expected input.
[0053] If force signature 302 does not have a likelihood of being expected, a variety of different actions may be performed. For example, force control module 116 may indicate this lack of confidence to computing device 102. Input / output module 108 of computing device 102 is then free to make various determinations, e.g., that force signature 302 may still be processed as an expected selection input. Other examples are also contemplated, such as preventing force control module 116 and / or input / output module 108 from passing reports on as input further up, e.g., to an operating system or applications.
[0054] In one or more implementations, force control module 116 is configured to monitor the contact to determine whether the contact will be interpreted as a selection input, such as a tap, by computing device 102. For example, if the contact is lifted no later than 300 milliseconds, force control module 116 knows that each report will be interpreted as a tap by computing device 102. Accordingly, when the object is lifted off outer surface 208, the confidence bit requesting computing device 102 to suppress the tap is cleared by force control module 116.
[0055] The force control module 116 calculates a force baseline by averaging the initial multiple reports of the force signature 302. Force rises above the baseline that meet a defined minimum are located in the force signature 302. Figure 3 As shown, for example, time make (TimeMake) 304 marks the beginning of force signature 302.
[0056] The force control module 116 then locates and records a first time (e.g., TimeRise0 306) when the amount of force in the force signature 302 reaches a first threshold (e.g., BaselineForce plus MinForce0 308). The force control module 116 also locates and records a second time (e.g., TimeRise1 310) when the amount of force in the force signature 302 reaches a second threshold (e.g., BaselineForce plus MinForce1 312) that is greater than the first threshold. The rise time is then calculated based on the recorded first and second times (e.g., TimeRise0 306 and TimeRise1 310), and thus the slope of the rising edge of the force signature 302 is known.
[0057] The force control module 116 then reviews the recorded first time to ensure that the value does not exceed a defined maximum value. The force control module 116 also reviews the slope of the activation time of the rising edge of the waveform of the force signature 302 to ensure that the slope meets a defined minimum threshold. If so, the force control module 116 determines that the force signature 302 may represent a valid selection input, such as a tap, click, etc. Similarly, if the slope does not meet the defined minimum threshold, the force control module 116 may determine that the force signature 302 may not represent a valid selection input.
[0058] Figure 4 An implementation 400 showing multiple examples of force signatures expressed as waveforms is depicted. In a first example 402, the slope 408 is greater than a defined minimum threshold, but the amplitude 410 has not reached the first threshold level, and thus the force control module 116 determines that the detected object is unlikely to be intended as a selection input. In a second example 404, the amplitude 410 has reached the first threshold level, but the slope 412 is not greater than the defined minimum threshold, and thus the force control module 116 determines that the detected object is unlikely to be intended as a selection input. In a third example 406, the slope 414 is greater than the defined minimum threshold and the amplitude 410 has reached the first threshold level, and thus the force control module 116 determines that the detected object is likely to involve an intended input.
[0059] In one or more implementations, the force control module 116 employs different modes to control the determination of unintended input. Each of the modes below refers to the system's inference of how the user interacts with the input device 104 and / or the computing device 102 as a whole, and defines a set of parameters for the force control module 116 to determine the likelihood of an expected input, such as the time and force parameters mentioned above. These parameters can be dynamic, providing greater or less resistance to a tap, to provide maximum resistance without applying an undo reduction to the tap responsiveness.
[0060] In one example, when a key press is not detected or when the force control module 116 detects an extended period of inactivity of the input device, the force control module 116 returns to "hard mode." In this way, the difficulty of registering a selection input is increased for scenarios in which it is suspected that the user is not using the trackpad. In hard mode, the slope and force requirements are more stringent, and thereby involve more explicitly deliberate taps than in "easy mode." Continuing with this example, the force control module 116 may switch to easy mode when a hard tap occurs in hard mode, when the user moves the cursor a minimum distance, and so on. For example, when the cursor is moved, the force control module 116 may be fairly certain that the user desires to interact with the trackpad, and thus reduce resistance to unintentional input (e.g., slope and amplitude) in easy mode.
[0061] Figure 5 An example implementation 500 of control of unintentional input involving hovering is depicted. Hovering unintentional input generally occurs when a nearby object (such as a finger, thumb, or palm) is interpreted as an intended interaction by the input device 104. Accordingly, continuing with the above example, the force control module 116 is configured to ignore contacts having a force signature 302 (e.g., waveform) that does not meet specified criteria (e.g., a force signature 302 indicative of a hovering unintentional input).
[0062] The illustration includes a first example 502 and a second example 504. In the first example 502, reports from the force sensor 118 form a waveform 506 and reports from the position sensor 120 form a waveform 508. The waveform 508 from the position sensor 120 indicates the detected proximity of an object (e.g., a finger 510 from a user's hand). The proximity is detected without involving contact of the object with the external surface 208 (e.g., due to an enhanced sensing range of a capacitive sensor, infrared sensor, etc.).
[0063] However, waveform 506 from force sensor 118 indicates that force sensor 118 senses minimal to no force, e.g., the amplitude of waveform 506 is below a defined minimum force threshold 512. Thus, in the first example 502, force control module 116 readily determines that there is little likelihood that the user intended to initiate input and responds accordingly, e.g., by preventing the communication of reports from position sensor 120 to computing device 102 through the use of confidence bits.
[0064] In the second example 504, each report received by the force control module 116 from the position sensor 120 indicates the proximity of an object (e.g., a finger 510 of a user's hand) via a waveform 508. The waveform 508 formed from the reports received from the force sensor 118 also indicates that a force above the minimum force threshold 512 has been received and thus the object has contacted the outer surface 208 and applied a force to the outer surface 208. In response, the force control module 116 determines that an input may be expected and responds accordingly as described above, for example, by transmitting each report to Figure 1 The input / output module 108 of the computing device 102. Thus, in this example, the force control module 116 utilizes force to distinguish between intentional contact and hovering force.
[0065] Figure 6An example implementation 600 of control of unintentional input involving long duration hovering is depicted. One type of unintentional input involves unintended contact (e.g., causing a tap, cursor movement, scrolling, zooming) caused by a user's hand 602 hovering over a trackpad. The user may be typing and place a thumb or palm near the position sensor 120, which is thus detected by the position sensor 120 but they are not in contact with the outer surface 208.
[0066] In this example, the report of the amount of force detected from the force sensor 118 is used by the force control module 116 to determine that a significant force greater than the threshold 614 has not been applied (as shown in example 604) and thus contact with the exterior surface 208 is unlikely to be made. If contact is later detected (as shown in example 606), the force control module 116 determines the likelihood of an intent to initiate input based on the amount of time the object spent hovering over the exterior surface. In this way, the force control module 116 can take advantage of the recognition that intentional interaction with a trackpad does not typically begin with the user hovering for an extended period of time, but instead the user typically moves into and interacts with the trackpad, e.g., to perform a click, drag, gesture, etc.
[0067] This is generally illustrated in the figure as graph 608, which shows a waveform 610 formed from reports from the force sensor 118 and a waveform 612 formed from reports from the position sensor 120. As illustrated in the first example 604 of hovering, the waveform 612 from the position sensor 120 does detect proximity, but the waveform 610 from the force sensor 118 does not detect proximity and thus the reports are ignored, e.g., blocked from further processing by the force control module 116.
[0068] A time period is advanced in this state until the force sensor 118 detects the application of force to the outer surface 208 for waveform 612 (as indicated by example 606) and the position sensor 120 also detects proximity for waveform 610 (also as indicated by example 606). If this application of force occurs after a threshold amount of time, the force control module 116 may be used to prevent further processing of each report and indicate this condition through the use of a confidence bit because it is determined that the user is unlikely to intend to initiate an input. Thus, in this example, the position sensor 120 "sees" the proximity of the object before contact with the outer surface 208 occurs and tracks this pre-contact proximity. If contact with the outer surface 208 is made after a predefined time period has passed, the force control module 116 determines that this contact has a low likelihood of being an intended input.
[0069] In one or more implementations, the detection of proximity and amount of force will be correlated through the respective reports from the force sensor 118 and the position sensor 120 to distinguish which objects have applied force, the amount of time each object has hovered, etc. For example, the position sensor 120 can sense the position and relative strength when sensing an object. If the sensed strength exhibits an increase consistent with an increase in force, the force control module 116 can assign the detection of the force to the object position. Subsequent additions or removals of objects can also be assigned corresponding forces, and in this way, the force control module 116 can simultaneously track the forces and positions of multiple objects to support multiple simultaneous inputs, distinguish the amount of force at each object and corresponding input, etc.
[0070] Additionally, techniques are contemplated in which forces can be identified even on hovering contacts, e.g., forces large enough to be expected and override levels of unintentional locking. This can be performed in a variety of ways, such as by using a threshold value corresponding to the amount of expected force that can be used to override locking.
[0071] Figure 7 An example implementation 700 of control involving selection input as part of a drag operation and subsequent movement of unintentional input is depicted. The implementation 700 is illustrated using a first example 702 and a second example 704. In conventional mechanical click pads, a dome switch is used that is mechanically activated whenever the applied force exceeds a fixed threshold. Thus, moving a finger with sufficient force (i.e., the finger performing a drag operation) may still result in an unintentional button press.
[0072] However, force control module 116 utilizes force sensing that can be used to control tactile feedback. Force sensing can also be used to determine the likelihood that a user wants to perform an action (e.g., to initiate a click, to continue or release a drag operation, as described in more detail below in conjunction with FIG8, etc.).
[0073] In the first example 702, the movement of the fingers of the user's hand 706 is illustrated through the use of arrows. The force control module 116 detects the movement of the object through the position sensor 120 and defines the amount of force used to initiate a tactile response using a corresponding threshold 708. Thus, if the force signature 710 remains below the threshold 708 during the movement, the selection input is not initiated because the force control module 116 has determined that the user is unlikely to desire to initiate an input.
[0074] However, in the second example 704, the force control module 116 determines, through analysis of the reports received from the position sensor 120, that the object exhibits a lesser amount of movement than the threshold 708 of the first example 702. In response, the force control module 116 uses another threshold 714 that is lower than the threshold 708 for movement to determine the likelihood that the user intends to initiate an input. Accordingly, if the reports of the waveform 712 of the force signature from the force sensor 118 are greater than this threshold 714 (as illustrated), then a selection input is initiated, which may include a tactile response (such as in combination with a haptic response). Figure 2 Thus, by using the additional threshold 714, inadvertent selections are made less likely while still retaining sensitivity.
[0075] Figure 8 An example implementation 800 of control of unintentional input involving selection input and release of movement is depicted. As described above, in conventional mechanical click pads, a dome switch is used that is mechanically activated whenever the applied force exceeds a fixed threshold. Conventional click pads are also configured to release whenever the applied force is reduced below a threshold amount (e.g., the return force of the dome switch). Thus, if a user does not maintain sufficient force during a drag operation of a conventional device, the operation may end before the user desires.
[0076] In this example, force control module 116 is configured to release a tactile response (e.g., click) to a drag operation when the object applies an amount of force below threshold 808 and is not moving (i.e., generally static). Similarly, threshold 808 for defining a release is lowered to threshold 810 during movement in a drag operation to make an unintentional release less likely.
[0077] exist Figure 8 , fingers of a user's hand 802 are illustrated as performing a selection and drag operation, wherein the movement involved is illustrated using arrows along a graph 804 having a force signature 806 formed as a waveform based on reports obtained from force sensor 118 by force control module 116. A first threshold 808 is used to determine whether each report qualifies as a selection input as described above, e.g., a "down click."
[0078] A drag operation is then performed, which involves movement along the outer surface 208, as illustrated by the arrows. During this movement, a second threshold 810, which is below the first threshold 808, is used to determine whether the drag operation is to be released or to be considered continued. A third threshold 814 is also used as a release threshold, but is for zero movement and is thus above the second threshold 810. Thus, even though a point 812 may be encountered where the amount of force drops below the third threshold 814, the drag operation continues as long as the force remains above the second threshold 810 and the movement continues. Once the detected force moves below the second threshold 810, indicating the termination of the drag operation, it can be used by the force control module 116 to provide, for example, in conjunction with Figure 2 The tactile feedback described herein. In this way, unintentional click releases become less likely. Various other examples are also contemplated without departing from the spirit and scope of the technology described herein.
[0079] For example, a technique may be employed in which multiple different rejection levels (i.e., different thresholds) are used. The use of different thresholds may be based on the most recent interaction detected with computing device 102, e.g., whether cursor interaction, gestures, or typing has been detected within a threshold amount of time. Examples of these are referred to as "hard" or "soft" modes in the discussion below.
[0080] Force Input and Cursor Control
[0081] Fig. 9 A system 900 in an example implementation showing techniques that may be used to control a cursor during a push-down using the force of the force control module 116 is depicted. When a user pushes down on a trackpad or touch screen to select an icon, check a checkbox, etc., the cursor may move in a conventional scenario. This effect may be caused by rolling the fingertip on the external surface, deformation of the fingertip pad caused by the force (causing a shift in the calculated contact center of mass), etc. To address this issue, various techniques may be utilized to keep the relative position of the object reported (e.g., a finger of the user's hand 902) stable when first contacting the external surface 208, and report movement when a threshold amount of movement (e.g., as defined by the bounding box 904) is detected. These techniques may result in reduced responsiveness.
[0082] In this implementation, the force control module 116 utilizes force to control the cursor in lieu of or in addition to using the bounding box 904 (e.g., to reduce the size of the bounding box 904 and thus reduce the threshold amount of movement detected before reporting movement). The system 900 includes a first example 906 and a second example 908.
[0083] In a first example 906, a waveform 910 of a force signature is illustrated based on various reports from the force sensor 118. In this example, the waveform 910 includes sufficient slope (e.g., in combination with Figure 3906 ) so that each report is considered to indicate an input, such as a selection input as described above. In response to the force illustrated in waveform 910, force control module 116 is configured to override small movement reports communicated by position sensor 120 that may be due to deformation, shaking, etc. Thus, in the first example 906, the cursor remains stationary despite detecting the expected input.
[0084] In the second example 908, the finger of the user's hand 902 moves across the outer surface 208, as illustrated by the arrows. The corresponding waveform 912 formed by each report obtained from the force sensor 118 illustrates the amount of force at various time points during the movement. In this example, a threshold 914 is used so that if the amount of force remains below the threshold 914, the movement of the cursor is allowed. Thus, in the second example 908, if the force remains light, the cursor is allowed to move without delay. However, if the force quickly ramps up (as illustrated by the slope of the waveform 910 of the first example 906), the force control module 116 determines that the user may wish to initiate input. In this way, the force control module 116 supports increased responsiveness and protection against unintentional input. Similar techniques can also be used for the removal of contact (e.g., lift-off), and their discussion is included below and shown in the corresponding figures.
[0085] Fig.10 A system 1000 is depicted in an example implementation showing techniques that may be used to control a cursor during lift-off using force measurements made by force control module 116. Fig. 9 In the above example, the cursor movement that may occur in a conventional example due to the rolling of the fingertip on the outer surface, the deformation of the fingertip pad caused by the force and thus the shift of the calculated contact center of mass, etc., is described. Similar effects can also be observed when the fingers of the user's hand 1002 are lifted away from the contact outer surface 208 and thus may cause unintentional movement of the cursor in a conventional device.
[0086] Thus, in this example, the force control module 116 is also configured to control cursor movement based on force measurements, but in this instance using a reduced force to stop contact movement upon lift-off. In the illustrated example, a finger of the user's hand 1002 is illustrated as performing a drag operation, which is then terminated by lifting the finger of the user's hand 1002 off the outer surface 208, as illustrated using an arrow. A waveform 1006 indicating the amount of force over time, formed by the various reports obtained from the force sensor 118, is graphically shown.
[0087] When the finger of the user's hand 1002 is lifted off the outer surface 208, the force control module 116 detects a rapid drop 1008 in force in the waveform 1006, e.g., a slope exceeding a defined amount. In response, the force control module 116 determines that the user may have terminated the drag operation and overrides any movement detected by the position sensor 120 associated with this rapid drop 1008. In this way, the cursor is controlled to be relatively stationary at the time of lift-off by stopping the identified contact movement using a reduced force identified by the ramp as described above by time and corresponding intensity thresholds.
[0088] Fig.11 Depicted is a system 1100 in an example implementation showing techniques that can be used to control a cursor using a force measured by a force control module 116 to control a gain factor that maps the velocity of an object to the velocity of the cursor on a screen. As above, when a finger is pressed and released, the center of mass for the position of the object detected by the position sensor 120 shifts. In a typical cursor control scenario, the press and release events are performed with a stationary finger of a user's hand.
[0089] In this example, the gain factor 1002 maps the physical speed of the movement of the object detected by the position sensor 120 to the on-screen speed of the cursor. For example, the fingers of the user's hand 1104 may move half an inch per second, and the gain factor 1002 may be used to multiply the speed of the movement by a specified amount to obtain the on-screen speed of the cursor, which may be dynamically defined.
[0090] In the illustrated example, the gain factor 1102 is based at least in part on the rate of change of the amount of force as detected by the force sensor 118, which is graphically presented by the waveform 1106. The gain factor 1102 decays in proportion (e.g., directly, indirectly, dynamically) to the absolute rate of change of the force as detected by the force sensor 118. Thus, the gain factor 1102 dips downward to a low value when the waveform 1106 rises or falls rapidly, and remains stable at a nominal level when the waveform 1106 oscillates slowly. The effect is that movement of the cursor is significantly reduced and even eliminated in the event that the force applied by the object changes by more than a threshold amount. In this way, the force control module 116 achieves increased cursor stability while still retaining responsiveness to cursor movement.
[0091] Force curve and unintentional input control
[0092] Fig.12Depicted is a system 1200 that can be used in an example implementation of techniques for force curve and unintentional input control. Conventional multi-touch sensors can exhibit various nonlinear behaviors that are compensated for to provide a good user experience. For example, mutual capacitance sensors work because a grounded finger perturbs the fringing electric fields. The strength of these fields, known as the electric flux density, decreases nonlinearly with respect to distance and depends on the electrode geometry. Additionally, the sensor may have edges where the uniformity assumption breaks down. For example, a finger touching the middle of a touch pad is generally detected by multiple nodes, while a finger located on an edge or corner is typically detected by a single node. This again creates errors and introduces offsets for all measured quantities.
[0093] Below, a device model is described that can be used to infer the amount of sensed force that can be used to perform the previously described techniques without using a dedicated force sensor 118. Instead, the functionality of the force sensor 118 can be implemented by the position sensor 120. For example, the force control module 116 can convert raw sensor values into absolute force units, such as grams-force (gf); generate force estimates that are independent of contact size (e.g., finger area); use automatic gain control to adapt to various environmental and electrical changes; and correct for spatial aliasing effects and edge effects.
[0094] Accordingly, the force control module 116 incorporates techniques for estimating the size (e.g., area, width and height, major and minor axes) and signal strength (e.g., amplitude, average, RMS value) of each contact, which is used to infer the amount of force applied to the outer surface 2085. Signal strength, and thus amplitude, is a quantity that varies with the amount of force, albeit in a nonlinear manner, and multiple contacts produce independent estimates of size and amplitude.
[0095] exist Fig.12 An example of an input device 104 incorporating these techniques is illustrated in . The input device 104 is implemented as a multi-contact resistive design with a rectangular grid 1202 of force-sensitive resistive (FSR) nodes, which are illustrated in the figure as square blocks (e.g., an array arranged at 5 mm pitch). The combination of nodes can be used to define individual keys, trackpad functions, etc., and an example including four nodes 1206, 1208, 1210, 1212 for the letter "A" 1204 is shown. As an example, through the combination of nodes, gestures across the keys of the keyboard can be supported. The amplitude reported by each node is proportional to its conductance.
[0096] Other examples include mutual capacitance sensors, where an open cell foam layer is laminated over a capacitive electrode. Under zero force contact, the foam is relaxed and acts as a spacer with a known thickness and dielectric constant. Under force, the foam is compressed so that the finger gap to the sensor electrode tip decreases and the foam dielectric constant increases. This produces a measurable and repeatable change in capacitance that can be used to estimate force. For this sensor, the amplitude reported by each node is proportional to the change in mutual capacitance relative to its baseline value.
[0097] The force control module 116 is used to estimate the centroid, magnitude, and area of the contact, for example, by using a touch controller. These values are generally calculated from a matrix of resistance or capacitance differences, where each element of the matrix corresponds to a sensor node. The magnitude is proportional to the peak difference in the area where the force is applied. Fig.12 In the illustrated example, the area is proportional to the number of nodes under contact caused by the object.
[0098] In the following, a model is first extracted using data obtained from a set of standardized test fingers with diameters covering the range of human finger sizes. For example, if a contact size of 5.0-15.0 mm is of interest, a set of fingers with diameters of 2.5, 5.0, 7.5, 10.0, 15.0 and 20.0 mm can provide sufficient granularity and some margin. Depending on the application, rigid fingers or flexible fingers with a flat bottom can be used. For capacitive systems, the fingers are grounded and supported by conductive material or wrapped in a conductive structure. In this example, a robot with accessories that are mechanically compatible with the set of fingers, capable of applying arbitrary forces within the measurement range and equipped with a two-dimensional stage capable of moving the device under test is used.
[0099] A set of positions receive the robot stimulus, for example, 5 positions sufficiently far from the edge. The amount of force applied to the device (i.e., force value) is varied to span the sensor measurement range while testing. The measurement routine involves moving the robot to the first test position, attaching the first test finger to the robot, and stepping the robot through the force values defined above, and recording the center of mass, amplitude, and area produced by the sensor. This process continues for each position, and a variety of different finger samples are used at each position. Fig.13 Depicted is an example implementation 1300 for obtaining realistic measured operating characteristics for a manually operated mechanism at a single touch location. The sensor response was measured at 20, 40, 60, 80, 100, 140, 180, 220, 260, and 300 gf.
[0100] To perform the model fit, for any arbitrary force value v (in grams-force), the magnitude response of the sensor is modeled as “f v(area)", which is a scalar function of its area response. Assuming that "v" grams of force are part of the force value defined above, one way to obtain such a function is to fit a least squares polynomial to the measured data. It will be recognized that although this example uses contact area to represent contact size, multi-dimensional quantities can also be used instead. For example, contact size can be defined as contact width and height. Alternatively, contact size can be defined as the major and minor axes of the ellipse produced by the least squares fit. In general, "f v The "(size)" are not curves, but n clusters that partition the product space of contact size and signal strength. These curves are for illustrative purposes and are not intended to be limiting.
[0101] Fig.13 The first, second and third curves 1302, 1304, 1306 are unweighted least squares second order polynomials fitted to the responses of 20 gf, 300 gf and 100 gf, respectively. This result leads to the following observations. First, the amplitude depends on the finger size and can be a non-monotonic function of the finger size. In particular, a naive algorithm that simply sums the amplitudes of all cells produces severe errors. For the force ratios and test conditions of interest, the sensor responses are located within the first and second curves 1302, 1304. In particular, responses significantly below the first curve 1302 are physically impossible under standard operating conditions. Responses significantly above the second curve 1304 are also impossible due to sensor saturation.
[0102] Since this sensor has two output values that are jointly related to force (i.e., magnitude and area), the force threshold corresponds to a curve in the plane defined by the Cartesian product of area and magnitude. For example, the third curve 1306 is used as a threshold of 100 gf, where points above the curve exceed 100 gf and points below the curve are below 100 gf.
[0103] Thus, each curve (or n-cluster in general) can be used to support various functions. For example, as a threshold detector, each curve (or n-cluster) can be used by the force control module 116 as a basis for determining the likelihood that a selection input is to be initiated or released as described above. To this end, a threshold curve (or n-cluster) is created by fitting a data set to define the amount of force expected. For example, the third curve 1306 is an example threshold function for 100 gf.
[0104] Additionally, the first curve 1302 defines a threshold below which a response is physically impossible under standard operating conditions. Accordingly, the first curve 1302 can be used as a "zero force" curve, where a combination of signal strength (e.g., amplitude) and contact size (e.g., area) above the first curve 1302 may involve the application of force and thus be "non-hovering". On the other hand, a combination of signal strength (e.g., amplitude) and contact size (e.g., area) below the first curve 1302 may be hovering.
[0105] Thus, on a position sensor 120 (such as the capacitive sensor described previously), this n-cluster is located in the product space of contact size and signal strength, which is defined as area and amplitude in the above example. Points formed by the combination above the first curve 1302 are considered to apply greater than zero force, while points below this curve are considered to be hovering (not in contact with or applying no force to the outer surface 208).
[0106] The use of zero-force n-clusters provides better accuracy than simply using a separate magnitude or area threshold, which is a conventional technique for determining whether a capacitive touch is valid. Specifically, by ignoring touches below zero-force n-clusters and in combination with the techniques described above, force control module 116 can accurately distinguish and ignore hovering touches.
[0107] The use of n clusters in the product space of contact size and signal strength can also be used as part of a drag operation as described above. For example, if the contact characteristics change during a drag operation, a user may sometimes accidentally release the contact during a long drag motion, causing the down contact criterion to not be satisfied, such as in conjunction with Figure 8 As described. This may cause the drag operation to be interrupted or a new tap or drag to occur inappropriately. However, through the use of the n clusters described herein, once the identified contact is reported and the drag operation begins, the communication of the contact report can be maintained, thereby allowing the n clusters of reduced criteria to be applicable to the termination of the contact report (i.e., the end of the drag operation). For example, during movement, another n cluster defining the amount of force to be detected sufficient to maintain the drag operation can be adopted. The result is that the drag continues uninterrupted until an intentional lift-off defined by the n clusters of reduced criteria is encountered. As described above, the force depends on the contact size and amplitude. Thus, the force control module 116 can be used to fit the parameter surface to the measured data set and obtain a function that maps the area and amplitude to the absolute force.
[0108] Sample Procedure
[0109] The following discussion describes unintentional input force control techniques that can be implemented using the previously described systems and devices. Aspects of each process can be implemented in hardware, firmware, or software, or a combination thereof. The processes are shown as a set of blocks that specify operations performed by one or more devices, and are not necessarily limited to the order shown for performing the operations by the corresponding blocks. In various parts of the following discussion, reference will be made to the various figures described above.
[0110] Combination Figure 1-13 The functions, features and concepts described in each example of the present invention can be used in the context of the process described herein. In addition, the functionality, features and concepts in conjunction with the following different processes can be interchangeable in different processes and are not limited to the context of a single process. In addition, the boxes associated with the different representative processes and corresponding figures of this paper can be applied and / or combined together in different ways. Thus, the individual functionalities, features and concepts described in conjunction with the different example environments, devices, components and procedures herein can be used in any appropriate combination and are not limited to the specific combinations represented by the enumerated examples.
[0111] Fig.14 A procedure 1400 is depicted in an example implementation in which n clusters are used to classify whether each report is likely to indicate intentional or unintentional input. Each report is received by a force control module implemented at least in part in hardware from one or more position sensors configured to detect proximity of an object relative to an external surface, each report indicating a contact size and a signal strength of the detected proximity of the object (block 1402). For example, each report may be received by force control module 116 from a position sensor configured as follows: Fig.12 Capacitive sensors, node arrays, etc. shown in .
[0112] Each report is classified as indicating contact of an object with an external surface or as not having contact of an object with an external surface by comparing each report to n clusters that partition the product space of contact size and signal strength and indicate a prescribed force applied to the external surface (block 1404). Fig.13 The first curve 1302 of may define a zero force cluster such that each report having a combination of contact size and signal strength above the curve is considered intentional, while each report having a combination of contact size and signal strength below the curve is considered unintentional. The force control module controls whether each report is considered unintentional based on the classification (block 1506), such as to prevent or permit further transmission as described above. The cluster may be used for various other functions, such as to define movement in a drag operation, initiation of a selection input, etc., such as in conjunction with Figure 1-13 as described.
[0113] Example Systems and Devices
[0114] Fig.15 An example system including an example computing device 1602, which represents one or more computing systems and / or devices that may implement the various techniques described herein, is illustrated generally at 1500. This is illustrated by the inclusion of a force control module 116. The computing device 1602 may be, for example, a server of a service provider, a device associated with a client (e.g., a client device), a system on a chip, and / or any other suitable computing device or computing system.
[0115] The illustrated example computing device 1502 includes a processing system 1504, one or more computer-readable media 1506, and one or more I / O interfaces 1508 that are communicatively coupled to each other. Although not shown, the computing device 1502 may further include a system bus or other data and command transmission system that couples various components to each other. The system bus may include any one or a combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and / or a processor or local bus that utilizes any one of a variety of bus architectures. Various other examples are also contemplated, such as control and data lines.
[0116] Processing system 1504 represents the function of performing one or more operations using hardware. Therefore, processing system 1504 is illustrated as including hardware elements 1510 that can be configured as processors, functional blocks, etc. This can be included in the implementation in hardware of other logic devices as a dedicated integrated circuit or using one or more semiconductors. Hardware elements 1510 are not limited by the materials from which they are formed or the processing mechanisms utilized therein. For example, a processor can be composed of semiconductors and / or transistors (e.g., electronic integrated circuits (ICs)). In this context, processor executable instructions can be instructions that can be executed electronically.
[0117] Computer-readable storage media 1506 is illustrated as including memory / storage 1512. Memory / storage 1512 represents memory / storage capacity associated with one or more computer-readable media. Memory / storage component 1512 may include volatile media (such as random access memory (RAM)) and / or non-volatile media (such as read-only memory (ROM), flash memory, optical disks, magnetic disks, etc.). Memory / storage component 1512 may include fixed media (e.g., RAM, ROM, fixed hard drive, etc.) and removable media (e.g., flash memory, removable hard drive, optical disk, etc.). Computer-readable media 1506 may be configured in various ways as further described below.
[0118] Input / output interface(s) 1508 represent functionality that allows a user to input commands and information to computing device 1502, and also allows information to be presented to the user and / or other components or devices using various input / output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, a touch function (e.g., a capacitive or other sensor configured to detect physical touch), a camera (e.g., which may employ visible or invisible wavelengths such as infrared frequencies to identify movement as gestures that do not involve touch), and the like. Examples of output devices include a display device (e.g., a monitor or projector), a speaker, a printer, a network card, a tactile response device, and the like. Thus, computing device 1502 may be configured in various ways, as further described below, to support user interaction.
[0119] Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally speaking, such modules include routines, programs, objects, elements, components, data structures, etc. that perform specific tasks or implement specific abstract data types. The terms "module," "function," and "component" as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques can be implemented on a variety of commercial computing platforms with a variety of processors.
[0120] An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. Computer-readable media may include a variety of media that can be accessed by computing device 1502. By way of example and not limitation, computer-readable media may include “computer-readable storage media” and “computer-readable signal media.”
[0121] "Computer-readable storage medium" may refer to a medium and / or device that enables persistent and / or non-transient storage of information relative to only signal transmission, carrier waves, or the signal itself. Therefore, a computer-readable storage medium refers to a non-signal bearing medium. A computer-readable storage medium includes hardware such as volatile and non-volatile, removable and non-removable media and / or storage devices implemented with methods or techniques suitable for storing such as computer-readable instructions, data structures, program modules, logic elements / circuits, or other data. Examples of the computer-readable storage medium include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, hard disk, cassette, magnetic tape, disk storage or other magnetic storage device, or other storage devices, tangible media or articles that may be suitable for storing the desired information and accessible by a computer.
[0122] "Computer-readable signal media" may refer to signal-bearing media that are configured to transmit instructions to the hardware of the computing device 1502, such as via a network. Signal media typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, a data signal, or other transmission mechanism. Signal media also include any information transmission media. The term "modulated data signal" refers to a signal that has one or more of its characteristics set or changed in a manner that encodes information in the signal. By way of example and not limitation, communication media include wired media, such as a wired network or direct line connection, and wireless media, such as acoustic, RF, infrared, and other wireless media.
[0123] As previously described, hardware elements 1510 and computer-readable media 1506 represent modules, programmable device logic, and / or fixed device logic implemented in hardware that may be employed by certain embodiments to implement at least some aspects of the techniques described herein, such as executing one or more instructions. Hardware may include integrated circuits or systems on chips, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and components implemented in silicon or other hardware. In this context, hardware may be operable as a processing device that performs program tasks through instructions and / or logic implemented by hardware, as well as hardware (e.g., the computer-readable storage medium described above) that is used to store instructions for execution.
[0124] Combinations of the foregoing may also be employed to implement the various techniques described herein. Thus, software, hardware, or executable modules may be implemented as one or more instructions and / or logic implemented on some form of computer-readable storage medium and / or by one or more hardware elements 1510. Computing device 1502 may be configured to implement specific instructions and / or functions corresponding to software and / or hardware modules. Thus, the implementation of a module that may be executed by computing device 1502 as software may be at least partially accomplished in hardware, for example, by using computer-readable storage media and / or hardware elements 1510 of processing system 1504. Instructions and / or functions may be executable / operable by one or more articles (e.g., one or more computing devices 1502 and / or processing systems 1504) to implement the techniques, modules, and examples described herein.
[0125] As in Fig.15 As further shown in the example system 1500, the example system 1500 implements a ubiquitous environment for a seamless user experience when running applications on a personal computer (PC), a television device, and / or a mobile device. Services and applications run substantially similarly in all three environments so that a common user experience is achieved when transitioning from one device to the next when using applications, playing video games, watching videos, etc.
[0126] In the example system 1500, multiple devices are interconnected through a central computing device. The central computing device may be local to the multiple devices, or may be located remotely from the multiple devices. In one embodiment, the central computing device may be a cloud of one or more server computers connected to the multiple devices via a network, the Internet, or other data communication link.
[0127] In one embodiment, the interconnect architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to users of the multiple devices. Each of the multiple devices may have different physical requirements and capabilities, and the central computing device uses a platform to enable an experience that is customized for the device and common to all devices to be delivered to the device. In one embodiment, a class of target devices is created, and the experience is adapted to the generic class of devices. The device class may be defined by the physical characteristics of the device, the type of use, or other common characteristics.
[0128] In various implementations, computing device 1502 may take on a variety of different configurations, such as for use as a computer 1514, a mobile device 1515, and a television 1518. Each of these configurations includes devices that may have generally different configurations and capabilities, and thus computing device 1502 may be configured according to one or more of different device classes. For example, computing device 1502 may be implemented as a device of class computer 1514, which includes personal computers, desktop computers, multi-screen computers, laptop computers, netbooks, etc.
[0129] The computing device 1502 may also be implemented as a device of the mobile device 1515 class, which includes mobile devices such as mobile phones, wearable portable music players (e.g., wristbands, pendants, rings, etc.), portable gaming devices, tablet computers, multi-screen computers, etc. The computing device 1502 may also be implemented as a device of the television 1518 class, which includes devices having or connected to a generally larger screen in a casual viewing environment. These devices include televisions, set-top boxes, game consoles, etc. Other devices are also contemplated, such as appliances, thermostats, etc., as part of the "Internet of Things."
[0130] The techniques described herein may be supported by these various configurations of computing device 1502 and are not limited to the specific examples described herein. This functionality may also be implemented in whole or in part through the use of a distributed system (such as through the "cloud" 1520 via platform 1522 as described below).
[0131] Cloud 1520 includes and / or represents a platform 1522 of resources 1524. Platform 1522 abstracts the underlying functionality of the hardware (e.g., servers) and software resources of cloud 1520. Resources 1524 may include applications and / or data that may be used when a computer process is executed on a server located remote from computing device 1502. Resources 1524 may also include services provided over the Internet and / or through a subscriber network such as a cellular or Wi-Fi network.
[0132] The platform 1522 may abstract resources and functionality to connect the computing device 1502 with other computing devices. The platform 1522 may also be used to abstract the scaling of resources to provide a corresponding level of scaling to the demand encountered by the resources 1524 implemented via the platform 1522. Thus, in an interconnected device embodiment, the implementation of the functionality described herein may be distributed across the system 1500. For example, the functionality may be implemented in part on the computing device 1502 and via the platform 1522 that abstracts the functionality of the cloud 1520.
[0133] Conclusion and Example Implementation
[0134] Example implementations described herein include, but are not limited to, one or any combination of one or more of the following examples:
[0135] In one or more examples, a system includes at least one force sensor configured to detect an amount of force applied by an object to an external surface; one or more position sensors configured to detect proximity of the object to various positions of the external surface; and a force control module, the force control module being at least partially implemented in hardware, the force control module being configured to determine a likelihood that the object intended to initiate an input based on time domain or frequency domain characteristics of a force signature, the force signature being expressed by a waveform formed by reports of the amount of force detected from the at least one force sensor over a period of time.
[0136] An example as described alone or in combination with any other examples described above or below, wherein the report from the at least one force sensor is captured retroactively in time from a buffer in response to detecting proximity of the object by the one or more position sensors.
[0137] An example as described alone or in combination with any other examples described above or below, wherein the force control module is configured to prevent the computing device from processing the report in response to determining that the object is unlikely to have intended to initiate the input.
[0138] An example as described alone or in combination with any other examples described above or below, wherein the force control module is configured to indicate to a computing device that the object is unlikely to have intended to initiate the input in response to determining that the object is unlikely to have intended to initiate the input.
[0139] An example as described alone or in combination with any other examples described above or below, wherein the force control module is configured to employ multiple thresholds that can be used to detect the likelihood, using different thresholds depending on whether a user interaction is detected within a predefined amount of time.
[0140] The example described, alone or in combination with any of the other examples described above or below, further includes a tactile feedback mechanism, and wherein the force control module is configured to initiate tactile feedback of the tactile feedback mechanism in response to determining that the object may have intended to initiate the input to support unintentional input mitigation to reduce unintentional switching occurrences or selections.
[0141] In an example as described alone or in combination with any of the other examples described above or below, the force control module is configured to calculate the rise time by: recording a first time when the amount of force in the force signature reaches a first threshold; recording a second time when the amount of force in the force signature reaches a second threshold that is higher than the first threshold; and calculating a slope based on the recorded first time and second time.
[0142] In one or more examples, a device includes at least one force sensor configured to detect an amount of force applied by an object to an external surface; one or more position sensors configured to detect proximity of the object to respective positions of the external surface; and a force control module, the force control module being at least partially implemented in hardware, the force control module being configured to determine a likelihood that the object intends to initiate input based on an amount of time that the one or more objects are detected by the one or more position sensors as being proximate to the external surface and a force detected by the at least one force sensor being less than a force threshold.
[0143] The apparatus of claim 8, wherein the force control module is configured to distinguish the object from a second object and the corresponding detection of proximity and amount of force.
[0144] An example as described alone or in combination with any other examples described above or below, wherein the force control module is configured to distinguish the object from a second object by correlating detection of the proximity of the object with subsequent contact of the one or more position sensors with an amount of force applied by the object to the external surface as detected by the at least one force sensor.
[0145] An example as described alone or in combination with any other examples described above or below, wherein the force control module is configured to prevent the computing device from processing the input in response to determining that the object is unlikely to have intended to initiate the input.
[0146] Examples as described alone or in combination with any of the other examples described above or below also include a tactile feedback mechanism, and wherein the force control module is configured to initiate tactile feedback of the tactile feedback mechanism in response to determining that the object may have intended to initiate the input.
[0147] An example as described alone or in combination with any other examples described above or below, wherein the force control module is configured to permit processing of the input by the computing device in response to determining that the object may have intended to initiate the input.
[0148] In one or more examples, a system includes at least one force sensor configured to detect an amount of force applied by an object to an external surface; one or more position sensors configured to detect a position and movement of the object relative to the external surface; and a force control module, the force control module being at least partially implemented in hardware, the force control module being configured to determine a likelihood that the object intends to initiate input based on the amount of force applied by the object to the external surface relative to a predefined threshold and whether the object is moving.
[0149] An example as described alone or in combination with any other examples described above or below, wherein the force control module determines that the object may have intended to initiate the input when the object is not moving and the amount of force is above the predefined threshold.
[0150] An example as described alone or in combination with any other examples described above or below, wherein the force control module determines that the object may intend to continue the input drag operation when the object is moving and the amount of force is below the predefined threshold.
[0151] An example as described alone or in combination with any other examples described above or below, wherein the force control module determines that the object may intend to release the input drag operation when the object is not moving and the amount of force is below the predefined threshold.
[0152] An example as described alone or in combination with any other examples described above or below, wherein the force control module is configured to prevent the computing device from processing the input in response to determining that the object is unlikely to have intended to initiate the input.
[0153] Examples as described alone or in combination with any of the other examples described above or below also include a tactile feedback mechanism, and wherein the force control module is configured to initiate tactile feedback of the tactile feedback mechanism in response to determining that the object may have intended to initiate the input.
[0154] An example as described alone or in combination with any other examples described above or below, wherein the force control module is configured to permit processing of the input by the computing device in response to determining that the object may have intended to initiate the input.
[0155] Although various example implementations are described with language specific to structural features and / or method actions, it is to be understood that the various implementations defined in the appended claims are not necessarily limited to the specific features or actions described above. Instead, these specific features and actions are disclosed as example forms of implementing the claimed features.
Claims
1. A system comprising: at least one force sensor configured to detect an amount of force applied by an object to the outer surface; one or more position sensors configured to detect proximity of the object to various locations of the exterior surface; as well as A force control module, the force control module being implemented at least in part in hardware, the force control module being configured to: determining a likelihood that the subject intended to initiate an input based on a comparison of an amount of time that elapsed before an amount of force exceeding a threshold was detected by the at least one force sensor and after proximity was detected by the one or more position sensors to a threshold; as well as Responsive to determining that the likelihood indicates that the subject is unlikely to have intended to initiate an input, processing the report from the at least one force sensor is prevented.
2. The system according to claim 1, characterized in that The force control module is configured to capture reports from the at least one force sensor retroactively in time from a buffer in response to detecting proximity of the object via the one or more position sensors.
3. The system according to claim 1, characterized in that The force control module is configured to indicate to a computing device that the object is unlikely to have intended to initiate the input in response to determining that the object is unlikely to have intended to initiate the input.
4. The system according to claim 1, characterized in that The force control module is configured to employ a plurality of thresholds that can be used to detect the likelihood, using different thresholds depending on whether a user interaction is detected within a predefined amount of time.
5. The system according to claim 1, wherein: Also included is a tactile feedback mechanism, and wherein the force control module is configured to initiate tactile feedback of the tactile feedback mechanism in response to determining that the object may have intended to initiate the input to support unintentional input mitigation to reduce unintentional switching occurrences or selections.
6. The system according to claim 1, wherein: The force control module is configured to calculate the rise time by: recording a first time when an amount of force in the force signature reaches a first threshold; recording a second time when the amount of force in the force signature reaches a second threshold that is higher than the first threshold; as well as The slope is calculated based on the recorded first time and second time.
7. The system according to claim 1, characterized in that The force control module is configured to determine a likelihood that the object intended to initiate an input based on an amount of force applied by the object to the exterior surface relative to a predefined threshold and whether the object is moving.
8. The system according to claim 7, characterized in that The force control module determines that the object may have intended to initiate the input when the object is not moving and the amount of force is above the predefined threshold.
9. The system according to claim 7, characterized in that The force control module determines that the object may intend to continue the input drag operation when the object is moving and the amount of force is below the predefined threshold.
10. The system according to claim 7, characterized in that The force control module determines that the object may intend to release the input drag operation when the object is not moving and the amount of force is below the predefined threshold.
11. The system according to claim 7, characterized in that The force control module is configured to prevent processing of the input by the computing device in response to determining that the object is unlikely to have intended to initiate the input.
12. The system according to claim 7, characterized in that Also included is a haptic feedback mechanism, and wherein the force control module is configured to initiate haptic feedback of the haptic feedback mechanism in response to determining that the object may have intended to initiate the input.
13. The system according to claim 7, characterized in that The force control module is configured to permit processing of the input by the computing device in response to determining that the object may have intended to initiate the input.
14. An apparatus comprising: at least one force sensor configured to detect an amount of force applied by an object to the outer surface; one or more position sensors configured to detect proximity of the object to various locations of the exterior surface; as well as A force control module, the force control module being implemented at least in part in hardware, the force control module being configured to: determining a likelihood that the object intended to initiate an input based on a comparison of an amount of time that has elapsed since the object was detected by the one or more position sensors as being proximate to the exterior surface when the force detected by the at least one force sensor is less than a force threshold and a threshold; as well as Responsive to determining that the likelihood indicates that the subject is unlikely to have intended to initiate an input, processing the report from the at least one force sensor is prevented.
15. The device according to claim 14, characterized in that The force control module is configured to distinguish the object from a second object and the corresponding detection of proximity and amount of force.
16. The device according to claim 15, characterized in that The force control module is configured to distinguish the object from the second object by correlating detection of the proximity of the object with subsequent contact of the one or more position sensors with an amount of force applied by the object to the exterior surface as detected by the at least one force sensor.
17. The device according to claim 14, characterized in that Also included is a haptic feedback mechanism, and wherein the force control module is configured to initiate haptic feedback of the haptic feedback mechanism in response to determining that the object may have intended to initiate the input.
18. The device according to claim 14, characterized in that The force control module is configured to permit processing of the input by the computing device in response to determining that the object may have intended to initiate the input.
Citation Information
Patent Citations
Fingerstall type force touch interaction device and interaction method applied to mobile terminal
CN103853332A
Portable terminal, and method for providing haptic effect in portable terminal
CN103927113A
Coordinate input device
US20100026654A1
Electronic device
US20140139472A1
Object position detector with edge motion feature and gesture recognition
US20080042994A1