Apparatus and method for touch and proximity sensing
By performing high-pass filtering and low-pass filtering in the capacitor button processor and using integrators to identify proximity and touch, the false detection problem under the influence of moisture is solved, achieving a stronger and more accurate sensing effect.
Patent Information
- Application Number
- CN202210286038.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2017-03-28
- Filing Date
- 2017-03-29
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2037-03-29
AI Technical Summary
The existing capacitive buttons have strong solidity and detection problems under the influence of moisture in proximity and touch sensing, resulting in false touch or proximity detection.
High-pass filtering and low-pass filtering for multiple sensor measurements are implemented by executing specific instructions in the processor, and differentiated measurements are accumulated using the integrator to identify proximity and touch, and adjust the identification time when moisture is detected.
It improves the strong solidity and accuracy of the touch and proximity sensing of the capacitive button in the presence of moisture, reduces false detection, and enhances the anti-interference ability of the system.
Smart Images

Figure CN114637426B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application date of March 29, 2017, application number of "201780005008.9", and invention name of "Robustness and detection of water on capacitor button".
[0002] priority
[0003] This application claims priority to U.S. Provisional Application No. 62 / 314,886, filed on March 29, 2016, which is incorporated herein by reference for all purposes. Technical Field
[0004] The present invention relates to proximity and touch sensing, and more particularly to robustness and detection of water on capacitive buttons. Background Art
[0005] Many different touch, proximity and gesture detection devices are available for use in different applications. For example, various capacitive touch detection technologies are available from the assignee of the present application. These devices work on the principle of capacitive voltage division (CVD) or charge time measurement techniques. See, for example, the patent application titled “mTouch TM Sensing Solution Acquisition Method Capacitive Divider (mTouch TM The application note AN1478, “See What You Can Do with the CTMU” published by Microchip Technology, is disclosed in the application note AN1375. Touch and proximity sensing buttons are usually implemented by very low-end microcontrollers with low processing power. Usually, the simplest and most direct solution is the solution chosen. Summary of the invention
[0006] Embodiments of the present invention include at least one computer-readable medium containing instructions that, when loaded and executed by a processor, cause the processor to identify a first high-pass filtered sequence of multiple sensor measurements. In combination with any of the above embodiments, the instructions may further cause the processor to accumulate multiple samples from the first high-pass filtered sequence into a first accumulated value. In combination with any of the above embodiments, the instructions may further cause the processor to compare the first accumulated value with a first threshold of accumulated sensor measurements or values. In combination with any of the above embodiments, the instructions may further cause the processor to identify whether the sensor has been approached based on a determination of whether the first accumulated value is greater than the first threshold of accumulated sensor measurements or values. In combination with any of the above embodiments, the instructions may further cause the processor to cause a first low-pass filtering of the sensor measurements before or after high-pass filtering. In combination with any of the above embodiments, the instructions may further include instructions for causing the processor to identify a second high-pass filtered sequence of multiple sensor measurements. In combination with any of the above embodiments, the instructions may further cause the processor to accumulate multiple samples from the second high-pass filtered sequence into a second accumulated value. In conjunction with any of the above embodiments, the instructions may further cause the processor to compare the second accumulated value with a second threshold of the accumulated sensor measurement or value. In conjunction with any of the above embodiments, the instructions may further cause the processor to identify whether the sensor has been approached based on the determination of whether the second accumulated value is greater than the second threshold of the accumulated sensor measurement or value. In conjunction with any of the above embodiments, the instructions may further cause the processor to calculate the first high-pass filtered sequence by calculating the difference between the sensor measurements. In conjunction with any of the above embodiments, the instructions may further cause the processor to reset the first accumulated value when the first high-pass filtered sequence changes its sign. In conjunction with any of the above embodiments, the instructions may further cause the processor to reset the value when the low-pass filtered result of the high-pass filtered sequence changes its sign. In conjunction with any of the above embodiments, the instructions may further cause the processor to count the number of resets of the first accumulated value, wherein a given reset occurs after the first accumulated value exceeds the accumulation threshold during a defined time interval. In conjunction with any of the above embodiments, the instructions may further cause the processor to reset the first accumulated value when the high-pass filtered sequence reaches the reset threshold. In conjunction with any of the above embodiments, the instructions may further cause the processor to input the high pass filtered sequence or sensor measurements preprocessed by the first low pass filter into a Schmitt trigger having a user defined trigger hysteresis threshold, wherein when the Schmitt trigger output assumes a predefined level of one of two possible output levels, the first accumulated value is reset. In conjunction with any of the above embodiments, the instructions may further cause the processor to determine whether mobile moisture is present on the sensor by comparing the number of resets of the accumulated value within a defined time interval to a count threshold.In conjunction with any of the above embodiments, the instructions may further cause the processor to determine whether mobile moisture is present on the sensor through sensor measurements. In conjunction with any of the above embodiments, the instructions may further cause the processor to resolve the identification of whether a bounce has approached the sensor based on whether mobile moisture is present on the sensor. In conjunction with any of the above embodiments, the instructions may further cause the processor to resolve the identification of whether a bounce has approached the sensor based on whether the first accumulated value has been reduced. In conjunction with any of the above embodiments, the instructions may further cause the processor to extend the time for resolving the identification of whether a bounce has approached the sensor based on whether mobile moisture is present on the sensor.
[0007] Embodiments of the invention include an apparatus including a processor to execute instructions of any of the above-described computer-readable medium embodiments.
[0008] Embodiments of the invention include methods performed by any of the above-described apparatus or processor embodiments. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 is a description of an example system for touch and proximity sensing on a capacitive sensor according to an embodiment of the present invention;
[0010] Figure 2 Two integrators according to an embodiment of the present invention are described;
[0011] Figure 3 is an illustration of sensor readings according to an embodiment of the present invention;
[0012] Figure 4 Describe the operation of the system according to an embodiment of the present invention with respect to fast touch, slow touch, and rain or moisture formation;
[0013] Figure 5 is a more detailed description of the operation of the state machine according to an embodiment of the present invention;
[0014] Figure 6 is another more detailed description of the operation of the state machine according to an embodiment of the present invention;
[0015] Figure 7 Describing an example method for detecting touch according to an embodiment of the present invention; and
[0016] Figure 8 The sensor, low-pass filter, high-pass filter, accumulator and state machine according to the embodiment of the present invention are described. DETAILED DESCRIPTION
[0017] Figure 11 is an illustration of an example system 100 for touch and proximity sensing on a capacitive sensor according to an embodiment of the present invention. In one embodiment, the system 100 may perform touch and proximity sensing when water or other moisture is present on the sensor. In another embodiment, water or other moisture may contribute to touch and proximity detection, but may not be explicitly identified as present. Such embodiments may therefore achieve touch and proximity detection that is robust to the presence of water or other moisture. In yet another embodiment, the system 100 may incorporate explicit detection of water or other moisture into touch and proximity sensing. In another embodiment, the system 100 may identify moving water or moisture, such as rain, that may otherwise cause false positive detection of touch or proximity. Although rain may be used in the examples herein, any detection of moving water may be made. Water or other moisture may be present on the sensor in the system 100. The system 100 may robustly handle water or other moisture present on its sensor. The sensor may include a capacitive sensor. Touch or proximity detection on a capacitive sensor may be highly sensitive to conductive materials (such as water or other moisture) that may surround the sensor. In outdoor applications, water may be a major concern for the robust sensing of the system 100. Water on the sensor, and particularly moving water on the sensor (such as rain), can corrupt sensor measurements and cause false touch or proximity detections in the system 100 if the configuration of the system 100 does not handle this or other moisture.
[0018] The system 100 may be implemented for any suitable touch or proximity sensing system. For example, the system 100 may implement an outdoor capacitive touch or proximity sensing system where factors such as rain or condensation may cause moisture on the surface of the sensor. Such a system may include, as examples only, sensors under buttons or keyboards on vending machines, cash machines, or security systems. In addition, such a system may include a touch screen, virtual keyboard, or similar input on a kiosk, tablet computer, computer, mobile device, or other suitable electronic device. In addition, such a system may include a handle, lever, knob, or any other mechanical or electromechanical object of a car where touch or proximity sensing will be performed. The system may also be implemented in white good appliances, washing machines, kitchen equipment, exhaust hoods, or coffee machines.
[0019] In one embodiment, the system 100 may be implemented using a set of one or more integrators configured to accumulate or integrate the same sensing data. The integrator may integrate or accumulate data that has been preprocessed (e.g., using low-pass filtering with different cutoff frequencies and differentiating over time). Each integrator in the set may differ according to the amount of low-pass filtering applied to the same set of raw sensing data, and the time between the low-pass filtered data that takes its difference. The integrator in the system 100 may, for example, accumulate low-pass filtered and differentiated measurements when the differentiated data increases, and the integrator is reset when the differentiated data decreases. The set of integrators may receive input from one or more sensors. Although different amounts of low-pass filtering are applied to the data set, or different times between the low-pass filtered data that takes its difference, the set of integrators may integrate or accumulate preprocessed data from the same sensor or several sensors. The values compiled by the integrators may be used to detect touch or proximity. The values may be evaluated by, for example, a state machine. This may be different from other solutions, in which a simple comparison of sensor measurements with thresholds may be performed. In one embodiment, the integrator may be configured to accumulate values used to explicitly or implicitly determine whether water is present or moving on the surface of the sensor. This determination may be made, for example, by a state machine. In another embodiment, touch or proximity detection analysis performed on the values produced by the integrator may take into account the presence or movement of water.
[0020] In one embodiment, the integrator may integrate or accumulate the sensed data after low-pass filtering and differentiation have been applied to the sensed data. In another embodiment, the first integrator may integrate or accumulate sensed data that has not been low-pass filtered before differentiation, while the second integrator and the additional integrator may integrate or accumulate the same sensed data that has been low-pass filtered applied to the sensed data before differentiation. Different integrators may integrate sensed data to which different low-pass filters have been applied, and have different times between the low-pass filtered data to which their differences are obtained. For example, the first integrator may integrate or accumulate sensed data with a small amount of low-pass filtering applied, while the second integrator may integrate or accumulate the same sensed data with an increased amount of low-pass filtering applied. The stronger the low-pass filtering, the slower the proximity and touch that can be detected by a given accumulator. The amount of low-pass filtering applied to a particular integrator may be set according to a specific condition to be detected or strongly managed or according to the characteristics of the sensor. Low-pass filtering may include, for example, selecting only a subset of data that can be used for accumulation. For example, data that is not low pass filtered may include as many data units acquired at the sampling rate as are available from a given sensor. Accumulation of the difference of two such data units may be performed by calculating the difference of the data units at consecutive moments defined by the original sampling rate. Data that is low pass filtered may include data with some samples omitted. For example, only every other data unit may be considered, effectively dividing the sampling rate in half. In other examples, every nth low pass filtered data unit may be used. In other examples, accumulation of the difference of data units may be performed relative to the current data unit and the data units L sampled prior to the current data unit.
[0021] As mentioned above, detection of touch in a capacitive sensor is easily achieved in other solutions by comparing the measured signal from the sensor with a fixed threshold. However, the integrator of system 100 may result in a slow update of the zero level. The zero level may represent the measured level of the signal from the system 100 sensor when there is no physical proximity or touch. The zero level may also be referred to as a baseline level or an ambient level. In some cases, there may be a slow update of the zero level in system 100 to cause a slow drift of the measured value. Such drift may be caused by temperature changes, electromagnetic signals or interference from the environment, or changes in the material from which the surface of the sensor is made. In addition, when water falls on the sensor or condensation forms on the sensor, the measured signal level from the sensor may change in a dramatic manner. Therefore, even systems that attempt to adjust the baseline measurement may mistakenly identify such moisture conditions as touches.
[0022] System 100 can be implemented in any suitable manner to identify touch or approach, while taking into account whether moisture exists or moves on the touch or approach surface. System 100 may include any suitable number and type of touch or proximity sensors, such as sensor 106. Sensor 106 can be implemented by a suitable electronic device for changing the measured value when object 114 approaches or touches sensor 106. The measured value can be any suitable data representation from the sensor, including voltage, current or other physical phenomenon. The measurement can also have an alternating nature, such as alternating between two signal levels. The sensor 106 that produces a change in at least one of the signal levels between the measurement signals is alternating with the approach or touch of object 114. Object 114 may include, for example, a hand, a finger, a stylus or a portion thereof. Sensor 106 can generate a measurement signal based on the approach or touch of object 114. Sensor 106 can generate a baseline measurement that changes over time. In addition, the sensor 106 can generate a measurement that changes when moisture forms on the surface of the sensor 106 or when moisture forms on the surface of the system 100 and the object 114 is in contact with this moisture and surface while also in contact with or close to the sensor 106. This moisture can be formed by, for example, condensation, rain 110, or another source. The sensor 106 can be included in the user interface 112. The user interface 112 can include, for example, a larger touch screen, buttons, a joystick, a handle. Moisture that affects the measurement output of the sensor 106 can contact the user interface 112.
[0023] The output signal from the sensor 106 may be routed to an analog circuit, a digital circuit, or a combination thereof that forms an integrator (including a mechanism for data preprocessing as discussed above). An analog / digital converter may be used to first convert the output signal into a digital measurement value that can be analyzed and manipulated to take action according to the teachings of the present invention. Therefore, the integrator may be implemented in any suitable combination of analog or digital circuits. For example, the integrator may be implemented in full or in part by a suitable counter and logic circuit. In another example, the integrator may be implemented by a circuit implemented in a processor 102 coupled to a memory 104. In this example, the integrator and other operations of the system 100 may be implemented by instructions in the memory 104, which, when loaded and executed by the processor 102, cause the processor 102 to perform the functions of the system 100 as described in the present invention. The processor 102 may include, for example, an eight-bit microcontroller or a processor thereof. The memory 104 may include, for example, a volatile or non-volatile memory, such as a RAM, a ROM, or a FLASH.
[0024] Sensor 106 may be polled or generate new signals representing discrete measurements at any suitable frequency. For example, sensor 106 may generate new signals at a rate on the order of hundreds of hertz.
[0025] An integrator 116 implemented in the system 100 may record values provided by the sensor 106 over time. In particular, the integrator 116 may record differential values of the values provided by the sensor 106, where the difference between a value at a first time and a value at a second time is recorded. Various levels of the integrator 116 may be detected by the sensor 106 to detect moisture on a surface of the system 100 and may be detected by the same sensor 106 when a touch or proximity is sensed. Specific inference results from the operation of the integrator may be controlled by the state machine 108. The state machine 108 and the integrator 116 may be implemented in any suitable combination of analog or digital circuits, including by instructions in the memory 104 for execution by the processor 102.
[0026] The system 100 can be configured to determine not only a touch, but also whether water is present or moved on the sensor 106 by means of the integrator 116 and the state machine 108. Thus, the use of the system 100 in, for example, a car handle can be used as a rain indicator for the car itself. Other rain indicators for cars can only detect rain after a certain time after starting the car or at a minimum car speed. Compared to optical or infrared sensors, when the sensor 106 is implemented as a capacitive sensor, it generally has a lower power consumption, and especially when it is operated for keyless entry purposes (continuously detecting rain), especially when the car is parked. Thus, based on the history of rain detection before starting the engine, it can be estimated whether it is useful or necessary to wipe the rain off the windshield or rear window long before the car moves. In addition, when the car is parked, the rain indication can be used to close the sunroof or windows when it rains. Compared to optical or infrared sensors at the windshield, having capacitive sensors for touch or proximity detection at both front doors also ensures that rain is detected at at least one of the door handles regardless of the direction the rain is coming from in windy conditions. Sensor 106 can also be used for the primary purpose of rain detection or indication, such as for automatically closing a skylight when it starts to rain. Such windows can also be found in homes or buildings.
[0027] Figure 2Two integrators according to an embodiment of the present invention are described. Although two integrators are shown, any suitable number and level of integrators can be used. The first integrator, the level 1 integrator 204, can receive a signal from the sensor 106. More specifically, the level 1 integrator 204 can receive an input modified by a comparator 206 from the sensor 106, which finds a differential input between different times of the value from the sensor 106. For example, at time t, the sensor 106 can output a measured signal value. This value can be stored in the memory 208. The value previously recorded at time (t-1) can be retrieved and compared with the newly acquired value. The comparator 206 can issue a value reflecting the difference between the new value from the sensor 106 and the current, previously stored value at time (t-1). The difference value can be accumulated in the level 1 integrator 204. By accumulating the difference value, slowly changing conditions (such as temperature and electromagnetic noise) that affect the nominal output of the sensor 106 can be taken into account. The comparator 206 can be implemented by suitable analog or digital circuits or by instructions executed by a processor.
[0028] In one embodiment, the first-order integrator 204 may be configured to convert the change (Δ1=x t -x t-1 ) is accumulated in the sensor readings detected from time to the next time (t vs. t-1). In addition, the stage 1 integrator 204 can be configured to forward the sensor readings to another integrator, such as the stage 2 integrator 202. At the stage 2 integrator 202, the value can be evaluated via another comparator 210, which can be implemented by suitable analog or digital circuits or by instructions executed by a processor. In addition, the differentiated sensor readings can be stored to the memory 212.
[0029] In another embodiment, the stage 1 integrator 204 may reset the accumulated value if the differential sensor input it receives is negative. In yet another embodiment, the stage 1 integrator 204 may reset the accumulated difference value if the differential input it receives is less than a threshold value.
[0030] Similarly, the 2nd level integrator 202 can accumulate the difference of its own input. The input to the 2nd level integrator 202 can be determined by the comparator 210. In the comparator 210, the differentiated input between different times of the value from the sensor 106 can be determined. The value selected by the comparator 210 for comparison can be different from the value selected by the comparator 206. In one embodiment, at time t, the measurement value previously recorded at time (tL) can be retrieved and compared with the newly acquired measurement value. The comparator 210 can issue a value reflecting the difference between the new value from the sensor 106 and the value previously stored at time (tL). The difference value can be accumulated at the 2nd level integrator 202. The value of L can be greater than. The value can be selected according to the design choice of the response of the system in various conditions. The larger the value of L, the longer the lookback for evaluating whether a proximity has occurred.
[0031] Thus, in one embodiment, the 2-stage integrator 202 may accept as input the difference between measurements taken at different points in time, where at least one gap in measurement occurs between the input points. In another embodiment, if the difference determined by the comparator 210 is positive or equal to zero, then this difference may be accumulated in the 2-stage integrator 202. However, if the difference determined by the comparator 210 is negative, then the value accumulated by the 2-stage integrator 202 may be set to zero.
[0032] By accumulation, when such a difference is a positive value, the 2nd level integrator 202 and the 1st level integrator 204 can add the input difference value to the running total. In addition, the 2nd level integrator 202 and the 1st level integrator 204 can reset the running total when the input difference value is negative. The running total or accumulated value at each of the integrators 202 and 204 can be used to determine whether a touch or approach has occurred. The running total or accumulated value at the 1st level integrator 204 can be compared with a threshold value that defines the accumulated total of differential sensor readings from the last reset. This threshold value can be referred to as threshold value T1. The threshold value can be set according to experimental results. In addition, the running total or accumulated value at the 2nd level integrator 202 can be compared with a threshold value that defines the accumulated total of differential sensor readings from the last reset. This threshold value can be referred to as threshold value T2. In one embodiment, if one or both of the integrators 202 and 204 reach their respective threshold values, a touch or determination can be identified.
[0033] Thus, in one embodiment, each of the integrators may accumulate the differential measurement input, with the accumulated value increasing as the measurement increases, but resetting when the measurement value decreases.
[0034] In another embodiment, the integrator may accumulate differential measurements until the difference is less than a threshold (even if non-zero). In yet another embodiment, the integrator may accumulate differential measurement inputs where proximity or touch reduces the measurement signal. In this case, the positive and negative aspects of the signal, threshold, and baseline may be reversed. The accumulator may reset when the difference is greater than zero.
[0035] Therefore, a Schmitt trigger may be employed in which the accumulator is reset when the differential input signal has a sign opposite to the sign of the accumulator output.
[0036] The values of the integrators 202, 204 may cause a slight monotonic shift in the signal. This monotonic shift in the signal may indicate a touch or proximity of the object 114. The output of the integrator 202 may be compared to a threshold. If the output of the integrator 202 exceeds the threshold, the sensor reading may be considered a touch. This output may be the change in the sensor reading at a given time.
[0037] Figure 3 304 may illustrate the operation of the system 100. Graphs 302, 304 may illustrate the measurement signals received from a touch or proximity sensor (e.g., sensor 106) relative to time (described in units of, for example, seconds, minutes, or hours). The underlying measurement signals in graphs 302, 304 may be the same. The points on each graph may illustrate when a touch or proximity (indicated as a "press") has been identified. Therefore, graphs 302, 304 reflect the differences in the interpretation of the same sensor signals between other systems and embodiments of the present invention.
[0038] From the beginning until exactly 182 seconds later in each of the graphs 302, 304, the surface of the touch or proximity sensor, such as sensor 106, may dry. After 182 seconds in each of the graphs 302, 304, rain may fall on the surface of the touch or proximity sensor or otherwise form moisture thereon.
[0039] Before 182 seconds, the sensors in both systems may be touched. These are shown by points in each of the graphs 302, 304. Each peak of the measurements in the graphs 302, 304 may reflect a touch or close proximity of an object to the sensor 106. As shown in the graph 304, the system 100 may accurately detect a single touch or proximity at each peak before 182 seconds. As shown in the graph 302, other systems may detect a touch or proximity at each peak before 182 seconds. However, there may be some bounces, aliasing, double touches, or other unrelated, false positive touch or proximity detections, where multiple touches are identified from a single measurement peak. Other systems may rely on a comparison in which the measurement signal itself is compared to a threshold.
[0040] However, after 182 seconds, no touch of the sensor may be made while rain falls on the sensor 106 or moisture forms on it. Therefore, unstable measurement signals that may be incorrectly interpreted by other systems as touch or proximity of an object may be caused by the sensor 106. The moving baseline signal from the sensor 106 may not be sufficient to remove false positive detections in other systems because rain or moisture may cause sharp spikes as shown in graphs 302, 304. The measurement spikes may be attributed to capacitance or impedance changes caused by moisture. The measurement spikes attributed to rain may be even higher than the measurement spikes caused by actual touch or proximity before the 182 second mark.
[0041] However, system 100 may not experience such false positives. System 100, through its use of an integrator to process measurements from the sensor, may identify a touch, may emphasize monotonic shifts in the signal that are characteristic of a touch. System 100, through its use of an integrator to process differential measurements from the sensor, may filter out drift and spikes caused by rain or water, which are typically non-monotonic.
[0042] In one embodiment, the system 100 may be configured to consider the presence or movement of rain or moisture on or adjacent to the sensor 106 when evaluating the measurement signal from the sensor 106. In another embodiment, the system 100 may be configured to make a determination of the presence or movement of rain or moisture on or adjacent to the sensor 106 through the measurement signal of the same sensor 106. In yet another embodiment, the system 100 may be configured to make a determination of the presence or movement of rain or moisture on or adjacent to the sensor 106 and whether the sensor 106 has been touched or approached through the measurement signal from the sensor 106. In some embodiments, the system 100 may be configured to make a determination of whether the sensor 106 has been touched or approached without using an operating baseline or environmental measurement from the sensor 106. In other embodiments, the system 100 may be configured to utilize a baseline adjusted according to the touch or proximity detection to discover subsequent releases.
[0043] Figure 4The operation of the system 100 according to an embodiment of the present invention with respect to fast touch, slow touch, and rain or moisture formation is described. Graph 402 may illustrate the measurement signal output from the sensor 106, and the touch and release identified by the system 100. Graph 404 may illustrate the output of the 1-stage integrator 204, wherein proximity is identified when the integrator output exceeds the threshold value T1. Graph 406 may illustrate the output of the 2-stage integrator 202, wherein proximity is identified when the integrator output exceeds the threshold value T2. After proximity detection, the measurement signal must not drop below a specific level during the debounce period to detect touch. The maximum amount that the measurement signal can drop during the debounce period to detect touch depends on the measurement signal level when proximity is identified. When proximity is identified, the baseline value can be updated to the measurement signal level minus the integrator output of the integrator whose output exceeds its threshold. This baseline can be used to evaluate during the debounce period.
[0044] From about 0 seconds until exactly 1 second has passed, an object may touch sensor 106 in a rapid manner, meaning that the initial touch and subsequent release of the touch occur in a relatively decisive manner. The object's approach to sensor 106 may be relatively rapid, resulting in an increasing steep slope of the measurements produced by sensor 106, such as Figure 4 The quick touch portion of the touch is shown before. A quick release may similarly involve a relatively fast and decisive movement away from the sensor 106, resulting in a rapid drop in the measured signal.
[0045] From exactly 4 seconds ago until exactly 5 seconds have passed, the object may have touched the sensor in a slow manner, meaning that the initial touch occurred in a relatively less decisive manner. The approach of the object to the sensor 106 may be relatively slow, resulting in a less steep slope of increase in the measurement signal generated by the sensor 106, such as Figure 4 A slow release may similarly involve a relatively slow movement away from the sensor 106, thereby causing a noise signal when a release is determined but the object has not yet completely moved away and also contributes to a measurement produced by the sensor 106.
[0046] exist Figure 4 In between the fast and slow touches illustrated in , rain may fall on sensor 106. As shown, rain may cause jumps or spikes in the measurement signal, which may cause other systems to report a touch.
[0047] As shown in graph 404, following a quick touch, level 1 integrator 204 may accumulate rapidly rising difference values from the measurements of sensor 106. This may cause level 1 integrator 204 to exceed its threshold value T1. This may cause system 100 to recognize that a primary indication of proximity or touch has occurred.
[0048] Additionally, as shown in graph 404, also after a quick touch, the 2nd level integrator 202 may accumulate a quickly rising difference value from the measurements of the sensor 106. This may cause the 2nd level integrator 202 to exceed its threshold value T2. This may also cause the system 100 to recognize that a primary indication of proximity or touch has occurred.
[0049] It should be noted that the graph 404 illustrates that the accumulation of the 2-stage integrator 202 rises slower than the accumulation of the 1-stage integrator 204 .
[0050] In one embodiment, after a touch is identified, accumulation of the level 2 integrator 202 and the level 1 integrator 204 may be suspended until after a release is identified.
[0051] During periods of rain, the spikes in the measurement signal level shown in graph 402 may have otherwise caused other systems to recognize a touch. However, assuming that such spikes were insufficient, representing non-sustained changes in the measurement level that fell rapidly (and the integrator resets immediately after the negative input), the measurement differences did not accumulate in system 100 to a level sufficient to trigger recognition of a touch or proximity.
[0052] During a slow touch, there is no continuous increase in measurement sufficient to cause the 1st level integrator 204 to accumulate the difference value of the measurement from the sensor 106 to a level exceeding the threshold T1. The slow touch or approach of an object to the sensor 106 may not cause a sharp rise in the output of the sensor 106. However, the 2nd level integrator 202 may sufficiently accumulate the difference value of the pre-processed (e.g., low-pass filtered) output from the sensor 106. The differential input values are all positive, which does not cause a reset of the integrator. Therefore, the 2nd level integrator 202 identifies a slow touch exceeding its threshold T2. This may cause the system 100 to recognize that a touch or approach has occurred. Although any given difference value during a slow touch may not be sufficient to cause the 1st level integrator 204 to exceed its threshold T1, the non-monotonic nature of the rise of the signal from the sensor 106 may not cause any negative input (i.e., negative difference) to the 2nd level integrator 202. Therefore, the 2nd level integrator 202 may not reset and continue to accumulate its pre-processed input. Furthermore, due to its reliance on low-pass filtered data, the 2nd-stage integrator 202 may see longer, gradual changes in the original input signal. Thus, the 2nd-stage integrator 202 may accumulate values to reach its threshold value T2, thereby identifying a touch or proximity.
[0053] Although two integrators are shown in these example embodiments, more than two integrators may be used in a set of integrators. All integrators accumulate differences from the same raw data from the sensor, although preprocessing (e.g., different levels of low pass filtering). Different levels of low pass filtering may result in multiple different touch speeds. By employing multiple integrators with different preprocessing levels, it is possible to resolve detection of touches at low latency using integrator inputs with little or no preprocessing, and it is possible to resolve slower touches and noisy environments by using integrators with strongly preprocessed inputs, resulting in higher robustness and higher latency on touch detection.
[0054] Figure 4 The baseline shown in can be used to identify the release of a touch. In one embodiment, this baseline is not used to compare the output from the sensor 106 to identify its touch. In another embodiment, this baseline is not used to compare the difference in the output from the sensor 106 to identify its touch. The baseline can be calculated after the touch. The baseline can be calculated as the current measurement value from the sensor 106 minus the corresponding integrator value. The release can be identified when the measured signal drops below a defined percentage (e.g., fifty percent) difference between the measured value and the baseline value.
[0055] After an approach, if the signal level has not decreased too much during the timeout period, then a touch is recognized. In one embodiment, the timeout value and the amount it can be reduced are dependent on whether there is water or not. If a touch is not recognized, then it is terminated and the algorithm continues to wait for a new approach, i.e., a crossing of the accumulator value beyond its corresponding threshold.
[0056] Water detection can be based on the number of other false touches within a specific period. False proximity detection can occur when the integrator is reset while the integrator value is greater than a specific threshold. If the number of false proximity is high, water is detected, if not, the system 100 can assume that there is no water.
[0057] Figure 5 2 is a more detailed description of the operation of the state machine 108 according to an embodiment of the present invention. The state machine 108 may control, in part, the interpretation of the values produced by the integrators 202, 204 and the states of the operation of the integrators 202, 204. The state machine 108 may perform the following operations: Figure 5 The solution shown in .
[0058] exist Figure 5 In the example, “SD” and “SDelta” may represent the difference between the baseline and the current signal level. “SDmax” may represent the maximum value that the signal “SDelta” may achieve after detecting proximity or touch.
[0059] From the first state (TD_start), the state machine 108 may move into the TD_idle state via A1. After a primary indication of proximity or touch, the state machine 108 may move to TD_approach_normal via A2. This primary indication may be a value accumulated by one of the integrators to exceed its corresponding threshold. At this point, the state machine 108 may move to other states via A3, A4, or A5, depending on the situation encountered. A proximity verification timeout period may begin, for which the state machine 108 waits for an inhibiting condition to be displayed that a touch should not be detected.
[0060] One such prohibiting situation is when the measurement signal indicates that the touch is removed immediately before the state machine 108 reaches the end of the proximity verification cycle. The value of the measurement signal may have dropped. A false proximity may include such a spike when it is accumulated but does not maintain a value long enough. In these cases, the state machine 108 may return to the TD_idle state via A4.
[0061] Another prohibitive condition may include the presence of rain. Figure 6 Detection of rain may be illustrated by the operation of the state machine in , as further described below. It may also be determined whether an average decrease condition is observed, where the level 1 integrator or the level 2 integrator has decreased its value. In one embodiment, if rain and a proximity verification timeout occur, the state machine 108 may move to the TD_approach_extend state via A5. In another embodiment, if an average decrease condition, rain, and a proximity verification timeout occur, the state machine 108 may move to the TD_approach_extend state via A5. This state may represent performance of the system 100, where rain causes an extension of the timeout window in which a touch is to be detected. The timeout initially set for the proximity verification timeout may be extended in this state.
[0062] At TD_approach_extend, the state machine 108 may check for another swap during the extended validation timeout. This swap may include removal or false approach (as checked in TD_approach_normal), and whether SD has dropped less than 75% of SDmax. This last condition is similar to slow removal, but may reflect another case where the approach is falsely detected and not caused by rain.
[0063] If the approach verification timeout expires (in TD_approach_normal), or if the extended verification timeout expires (in TD_approach_extend), the state machine 108 may move to TD_Pressed via A3 or A7, respectively. These represent operations for an inhibited condition where nothing happens to cause the system 100 to recognize an initial touch.
[0064] At TD_pressed, it can be determined that a touch actually occurred. Additional states can provide another debounce. A press timeout can be initiated, and if no other state is entered first (ultimately leading to a release), the state machine can exit to TD_idle via A8.
[0065] Once the SD value drops below fifty percent of SDmax, the state machine 108 may enter TD_release via A9, initially indicating the release of the touch. A debounce timer may be started. At TD_release, if the SD value rises again above fifty percent of SDmax before the debounce timer expires, the state machine 108 may return to TD_pressed. Once the expiration of the debounce timer occurs in TD_release, the state machine 108 may exit to TD_blocked via A11.
[0066] At TD_blocked, the state machine 108 may ignore other attempted touches for the time set by the blocking timeout. After the blocking timeout expires, the state machine may return to TD_idle via A12.
[0067] Figure 6 is another more detailed description of the operation of the state machine 108 according to an embodiment of the present invention. The state machine 108 may check whether Figure 6 Rain detection can be used, for example, in Figure 5 Rain detection may be used to additionally compensate for false positive touches in any system in which the output signal of sensor 106 is used to detect touch.
[0068] State machine 108 may begin with an initial state (e.g., RAIN_off) assuming no rain or moisture is present on the surface of sensor 106. A rain timeout may be initiated, where if no shift between RAIN_off and RAIN_on is detected, a new time period may begin and state machine 108 may remain in the same state.
[0069] After the rain timeout is completed, if the number of false starts has not been reached, the state machine 108 may remain in the same state. The rain timeout may start again. After the rain timeout is completed, if the threshold number of false starts has not been reached, the state machine 108 may transition to RAIN_on. False starts may be due to other false positive touches that would have been detected due to rain or moisture on the surface of the sensor 106. The threshold number of false starts within a given amount of time may therefore represent a condition that the system 100 may determine to be a rain or moisture condition.
[0070] Once in the RAIN_on state, the rain timeout may start again. After the rain timeout is completed, if the low threshold number of false starts is still exceeded, the state machine 108 may remain in the same state because rain or moisture may still be present. The rain timeout may start again. After the rain timeout is completed, if the low threshold number of false starts (e.g., two) has not been exceeded, the state machine 108 may transition to RAIN_off. The threshold number of false starts to transition to may be different between RAIN_off and RAIN_on because the state machine 108 may be more lenient in initially determining that rain or moisture is present (rather than determining that rain or moisture has safely passed once rain or moisture is detected).
[0071] False start counts can be tracked by measurements from sensor 106, which if applied against thresholds in other systems would be counted as touches. Figure 3 All touches detected during the rain condition in the graph 302 in FIG. 304 may be false touches and will be counted as false starts. Figure 5 In the context of , false approaches or removals can be counted as false starts. A false approach can be included when the integrator is reset (after, for example, a negative differentiation input) while the integrator value is greater than a certain threshold. If the number of false approaches is high, water is detected, if not, the system assumes that no water is present.
[0072] Therefore, after an approach, if the signal level does not decrease too much during the timeout period, a touch is recognized. The timeout value and the amount by which the signal level can decrease are dependent on whether there is water or not. If a touch is not recognized, it is stopped and the algorithm continues to wait for a new approach.
[0073] Figure 7 An example method 700 for detecting a touch according to an embodiment of the invention is illustrated.
[0074] At 705, an integrator in the touch system can be initialized to zero. At 710, a measurement signal provided by the touch sensor can be detected.
[0075] At 715, a difference in measurements (designated as Δ1) may be calculated with little or no low pass filtering performed as pre-processing. For example, a difference between a measurement from a touch sensor and such a measurement at a previous time (eg, the last sampled measurement or the last analyzed measurement) may be performed.
[0076] At 720, more low pass filtering is performed (rather than the low pass filtering performed for differentiation in 715) as pre-processing and a difference value of the measurement (denoted as Δ2) can be calculated. For example, the difference between the measurement from the touch sensor and the measurement at another previous time can be calculated. The measurement at another previous time can be from, for example, the previous L samples.
[0077] At 725, it may be determined whether Δ1 is negative or has flipped polarity relative to the accumulator output. If not, then at 730, Δ1 may be added to the stage 1 integrator. If so, then at 735, the value of the stage 1 integrator may be reset.
[0078] At 740, it may be determined whether Δ2 is negative or has flipped polarity relative to the accumulator output. If not, then at 745, Δ2 may be added to the 2nd stage integrator. If so, then at 750, the 2nd stage integrator may be reset. If the increased measurement is associated with removal of the object from the sensor rather than approach, then the negative and positive aspects of Δ1 and Δ2 may be reversed.
[0079] At 755 , it may be determined whether the value of the first stage integrator has exceeded a threshold value T1 to indicate a touch. If so, method 700 may proceed to 765 .
[0080] At 760, it may be determined whether the value of the second stage integrator has exceeded threshold T2 to indicate a touch. If so, method 700 may proceed to 765. Otherwise, method 700 may proceed to 784. If the increased measurement is associated with removal of the object from the sensor rather than approach, the negative and positive aspects of the T1 and T2 thresholds may be reversed.
[0081] At 765, a preliminary indication of a touch or proximity can be made. The method 700 can further process the signal information to determine if a false touch has been made, and retain additional processing until a touch is processed.
[0082] At 770, a baseline may be established for subsequent release determinations. The baseline may include the current measurement value from the sensor 106 minus the corresponding integrator value. Another touch identification may be suspended until step 786. At 775, a bounced touch may be resolved because subsequent measurements are evaluated to determine: whether the touch data did not last long enough to register as a touch; whether the touch fluctuated between touch and no-touch levels (in which case, superfluous touches are ignored); or whether additional time should be allowed for processing if rain is present. Rain determinations may be made in parallel, for example, by the execution of 784 to 788. False proximity identified by 775 may be attributed to rain determination via counts of false proximity. The method 700 may wait to identify a subsequent release corresponding to a touch.
[0083] At 780, if the touch data passes the debounce criteria, the touch and release may be confirmed at 782. Otherwise, the touch may not be confirmed as a touch.
[0084] At 784, it may be determined whether a sufficient number of false starts or approaches have been identified within a limited time to find rain or moisture identified at 786 or to find the absence of such rain or moisture at 788. Different thresholds may be used to move between rain or no rain identification. 784 to 788 may be performed in parallel with other portions of method 700.
[0085] At 790, method 700 may repeat, for example, at 710, or may optionally terminate.
[0086] Method 700 may be implemented by any suitable mechanism, such as by Figures 1 to 6 The method 700 may be implemented by the system 100 and elements of one or more of . The method 700 may optionally be repeated or terminated at any suitable point. In addition, although a specific number of steps are described to implement the method 700, the steps of the method 700 may optionally be repeated, performed in parallel or recursively with each other, omitted, or optionally modified in other ways. The method 700 may be started at any suitable point, such as at 705.
[0087] The method may be formally expressed as receiving a sequence x of values x[k] at discrete times k, where the sequence is a series of measurements from a capacitive touch or proximity sensor. The method may then include converting a plurality of sequences y (n) [k] is calculated as a function y of x[k] (n) [k] = f (n) (x[k]). For each sequence y (n) , the method may include calculating the (n) [k] is a given high-pass filter sequence. For each sequence y (n) , the method may include: in accumulator a (n) [k] accumulates the output of the nth high-pass (HP) filter, inputs the HP value into the Schmitt trigger, and resets the accumulator a when the corresponding Schmitt trigger output changes (n) [k]. HP valued (n) [k] can be the increment value d (n) [k] = y (n) [k]–y (n) [kL] or scaling increment d (n) [k] = F*(y (n) [k]–y (n) [kL]), where F is a constant and L is a delay value. HP value d (n) [k] can be y (n) Any high pass filtered version of x[k]. The order of low pass filtering and high pass filtering x[k] can be swapped. The threshold of the Schmitt trigger hysteresis can be user defined. The accumulator can be reset when the Schmitt trigger output assumes one of its two possible output levels. Reset accumulator a (n)[k] may include setting its value to a predetermined initial value, such as a (n) [k] = 0. If any of the accumulator values exceeds (or is equal to) the threshold, proximity can be detected. A baseline b[k] = x[k] - a can be taken after proximity detection (i) [k], where i is the index of any of the accumulators that exceeds the corresponding threshold at time k. If, within a duration D4, the number of detected false approaches exceeds threshold T4, then rain can be detected. False approaches may occur after an accumulator reset, where its value before the reset exceeds threshold T5. If, within a duration D6 (e.g., D6=D4), the number of detected false approaches is less than threshold T6, then a "no rain" condition can be detected. The method may utilize a state machine that changes to a debounce state when an approach is detected. Within the debounce state, if x[k]-b[k] exceeds the adaptation threshold T3[k] during a timeout period of a given duration D3[k], then a press can be detected, where T3 and D3 depend on other variables. T3[k] and D3[k] may depend on variables indicating rain or (spray) water or liquid detection.
[0088] Figure 8 A sensor 805 , a low pass filter (LPF) 815 , a high pass filter (HPF) 810 , 830 , accumulators 825 , 845 , and a state machine 850 are illustrated according to an embodiment of the present invention. Figure 8 A more detailed view of system 100 may be illustrated. Sensor 805 may be an implementation of sensor 106. State machine 850 may be Figures 5 to 6 The state machine 850 is an implementation of a state machine. LPF 815, HPF 810, 830, and accumulators 825, 845 may be implemented in analog circuits, digital circuits, instructions for execution by a processor, or any suitable combination thereof. State machine 850 may be implemented by instructions for execution by a processor.
[0089] The sensor measurement from sensor 805 may pass through LPF 815 and HPF 810. Depending on the resulting values, these values may be added to accumulator 825 or the accumulator may be reset.
[0090] In parallel, the sensor measurement may be passed through HPF 830. Depending on the resulting value, it may be added to accumulator 845 or the accumulator may be reset. In some embodiments, the sensor measurement may also be passed through another LPF with a different cutoff frequency rather than LPF 815 before being analyzed for addition to accumulator 845.
[0091] In state machine 850, the accumulated values from accumulators 825, 845 and sensor measurements may be evaluated to detect a touch or proximity.
[0092] Although example embodiments have been described above, other variations and embodiments may be made in accordance with the present invention without departing from the spirit and scope of these embodiments.
Claims
1. At least one non-transitory computer-readable medium containing instructions that, when loaded and executed by a processor, cause the processor to: identifying a first high pass filtered sequence from the plurality of sensor measurements; accumulating a plurality of samples from the first high pass filtered sequence into a first accumulated value; comparing the first accumulated value to a first accumulated value threshold; identifying whether the sensor has been approached based on a determination of whether the first accumulated value is greater than the first accumulated value threshold; The first accumulated value is reset in the following cases: The first high-pass filtered sequence changes its sign; or The low-pass filtering result of the first high-pass filtering sequence changes its sign; counting a number of resets of the first accumulated value, wherein a given reset occurs during a defined time interval after the first accumulated value exceeds the first accumulated value threshold; and Whether identification of whether the sensor has been approached is false is determined by comparing the number of resets of the first accumulated value within the defined time interval to a count threshold. 2 . The medium of claim 1 , further comprising instructions for causing a first low pass filtering of the sensor measurements either before or after the high pass filtering.
3. The medium of claim 1, further comprising instructions for causing the processor to: identifying a second high pass filtered sequence from the plurality of sensor measurements; accumulating a plurality of samples from the second high pass filtered sequence into a second accumulated value; comparing the second accumulated value to a second accumulated value threshold; and Based on a determination of whether the second accumulated value is greater than the second accumulated value threshold, it is identified whether the sensor has been approached.
4. The medium of claim 1, wherein the first high pass filtered sequence is calculated by calculating a sequence of differences between sensor measurements.
5. The medium of claim 1, further comprising instructions that cause the processor to reset the first accumulated value when the first high pass filtered sequence reaches a reset threshold.
6. The medium of claim 1, further comprising instructions for causing the processor to: The first high pass filtered sequence is input into a Schmitt trigger having a user defined trigger hysteresis threshold, wherein the first accumulated value is reset when the Schmitt trigger output assumes a predefined one of two possible output levels.
7. The medium of claim 1, further comprising instructions for causing the processor to debounce an identification of whether the sensor has been approached based on a determination that the identification of having approached the sensor is false.
8. The medium of claim 1, further comprising instructions for causing the processor to debounce an identification of whether the sensor has approached based on whether the first accumulated value has decreased.
9. The medium of claim 1, further comprising instructions for causing the processor to extend a time for debouncing an identification of whether the sensor has been approached based on a determination that the identification of having approached the sensor is false.
10. A device for touch and proximity sensing, comprising: processor; and at least one non-transitory computer-readable medium containing instructions that, when loaded and executed by a processor, cause the processor to: identifying a first high pass filtered sequence from the plurality of sensor measurements; accumulating a plurality of samples from the first high pass filtered sequence into a first accumulated value; comparing the first accumulated value to a first accumulated value threshold; identifying whether the sensor has been approached based on a determination of whether the first accumulated value is greater than the first accumulated value threshold; The first accumulated value is reset in the following cases: The first high-pass filtered sequence changes its sign; or The low-pass filtering result of the first high-pass filtering sequence changes its sign; counting a number of resets of the first accumulated value, wherein a given reset occurs during a defined time interval after the first accumulated value exceeds the first accumulated value threshold; and Whether identification of whether the sensor has been approached is false is determined by comparing the number of resets of the first accumulated value within the defined time interval to a count threshold.
11. The apparatus of claim 10, wherein the medium further comprises instructions for causing a first low pass filtering of the sensor measurements either before or after the high pass filtering.
12. The apparatus of claim 10, wherein the medium further comprises instructions for causing the processor to: identifying a second high pass filtered sequence from the plurality of sensor measurements; accumulating a plurality of samples from the second high pass filtered sequence into a second accumulated value; comparing the second accumulated value to a second accumulated value threshold; and Based on a determination of whether the second accumulated value is greater than the second accumulated value threshold, it is identified whether the sensor has been approached.
13. The apparatus of claim 10, wherein the first high pass filtered sequence is calculated by calculating a sequence of differences between sensor measurements.
14. The apparatus of claim 10, wherein the medium further comprises instructions for causing the processor to reset the first accumulated value when the first high pass filtered sequence reaches a reset threshold.
15. The apparatus of claim 10, wherein the medium further comprises instructions for causing the processor to: input the first high pass filtered sequence into a Schmitt trigger having a user defined trigger hysteresis threshold, wherein the first accumulated value is reset when the Schmitt trigger output is at a predefined level of two possible output levels.
16. The apparatus of claim 10, wherein the medium further comprises instructions for causing the processor to debounce the identification of whether the sensor has been approached based on a determination that the identification of having approached the sensor is false.
17. The device of claim 10, wherein the medium further comprises instructions for causing the processor to debounce an identification of whether the sensor has been approached based on whether the first accumulated value has decreased.
18. The apparatus of claim 10, wherein the medium is further for instructions to cause the processor to extend a time for debouncing the identification of whether the sensor has been approached based on a determination that the identification of the sensor has been approached is false.
19. A method for touch and proximity sensing, comprising: identifying a first high pass filtered sequence from the plurality of sensor measurements; accumulating a plurality of samples from the first high pass filtered sequence into a first accumulated value; comparing the first accumulated value to a first accumulated value threshold; as well as identifying whether the sensor has been approached based on a determination of whether the first accumulated value is greater than the first accumulated value threshold; The first accumulated value is reset in the following cases: The first high-pass filtered sequence changes its sign; or The low-pass filtering result of the first high-pass filtering sequence changes its sign; counting a number of resets of the first accumulated value, wherein a given reset occurs after the first accumulated value exceeds the first accumulated value threshold during a defined time interval; and Whether identification of whether the sensor has been approached is false is determined by comparing the number of resets of the first accumulated value within the defined time interval to a count threshold.
20. The method of claim 19, further comprising performing a first low pass filtering of the sensor measurements before or after the high pass filtering.
21. The method of claim 19, further comprising: identifying a second high pass filtered sequence from the plurality of sensor measurements; accumulating a plurality of samples from the second high pass filtered sequence into a second accumulated value; comparing the second accumulated value to a second accumulated value threshold; and Based on a determination of whether the second accumulated value is greater than the second accumulated value threshold, it is identified whether the sensor has been approached.
22. The method of claim 19, wherein the first high pass filtered sequence is calculated by calculating a sequence of differences between sensor measurements.
23. The method of claim 19, further comprising resetting the first accumulated value when a first high pass filtered sequence reaches a reset threshold.
24. The method of claim 19, further comprising: The first high pass filtered sequence is input into a Schmitt trigger having a user defined trigger hysteresis threshold, wherein the first accumulated value is reset when the Schmitt trigger output assumes a predefined one of two possible output levels.
25. The method of claim 19, further comprising de-bouncing an identification of whether the sensor has been approached based on a determination that the identification of having approached the sensor is false.
26. The method of claim 19, identifying whether debounce has approached the sensor based on whether the first accumulated value has decreased.
27. The method of claim 19, further comprising extending a time for debouncing an identification of whether the sensor has been approached based on a determination that the identification of having approached the sensor is false.
Citation Information
Patent Citations
Capacitive touch system with noise immunity
CN102414652A
Methods and apparatus for performing capacitive touch sensing and proximity detection
CN102667690A