Determining touch locations and forces thereto on a touch and force sensing surface
First Claim
1. A method for decoding multiple touches and forces thereof on a touch sensing surface, said method comprising the steps of:
- scanning a plurality of channels aligned on an axis for determining self-capacitance values of each of the plurality of channels;
comparing the self-capacitance values to determine which one of the channels has a local maximum self-capacitance value, wherein left and right slope values are determined for the at least one self-value, wherein;
the left slope value is equal to the at least one self-value minus a self-value of a channel to the left of the at least one channel, andthe right slope value is equal to the at least one self-value minus a self-value of a channel to the right of the at least one channel;
wherein when the left slope value is greater than zero (0) and the right slope value is less than zero (0), then determine a local maximum self-capacitance value and return to the step of scanning the plurality of nodes of the at least one channel, and when no then continue to next step;
wherein when a ratio between a positive left slope value and a positive right slope value is greater than a predefined threshold, then determine a local maximum self-capacitance value and return to the step of scanning the plurality of nodes of the at least one channel, and when not then continue to the next step;
wherein when a ratio between a negative left slope value and a negative right slope value is less than a predefined threshold, then determine a local maximum self-capacitance value and return to the step of scanning the plurality of nodes of the at least one channel, and when not then continue to the next step;
wherein when there is another self-value, then return to the step of determining left and right slope values;
scanning a plurality of nodes of at least one channel having local maximum self-capacitance value for determining mutual values of the nodes;
comparing the mutual values to determine which one of the nodes has the largest mutual capacitance value, wherein the node having the largest mutual capacitance value on the local maximum self-capacitance value channel is a potential touch location; and
determining a force at the potential touch location from a change in the mutual capacitance values of the node at the potential touch location during no touch and during a touch thereto.
10 Assignments
0 Petitions
Accused Products
Abstract
A projected capacitive touch and force sensor capable of detecting multiple touches thereto and forces thereof is coupled with a digital device having multi-touch and force decoding capabilities. Once a touch has been established, a force thereof may be assigned to the touch based upon the magnitude of change of capacitance values determined during scans of the projected capacitive touch and force sensor. The touch forces applied to the touch sensor from the associated tracked touch points may be utilized in further determining three dimensional gesturing, e.g., X, Y and Z positions and forces, respectively.
-
Citations
36 Claims
-
1. A method for decoding multiple touches and forces thereof on a touch sensing surface, said method comprising the steps of:
-
scanning a plurality of channels aligned on an axis for determining self-capacitance values of each of the plurality of channels; comparing the self-capacitance values to determine which one of the channels has a local maximum self-capacitance value, wherein left and right slope values are determined for the at least one self-value, wherein; the left slope value is equal to the at least one self-value minus a self-value of a channel to the left of the at least one channel, and the right slope value is equal to the at least one self-value minus a self-value of a channel to the right of the at least one channel; wherein when the left slope value is greater than zero (0) and the right slope value is less than zero (0), then determine a local maximum self-capacitance value and return to the step of scanning the plurality of nodes of the at least one channel, and when no then continue to next step; wherein when a ratio between a positive left slope value and a positive right slope value is greater than a predefined threshold, then determine a local maximum self-capacitance value and return to the step of scanning the plurality of nodes of the at least one channel, and when not then continue to the next step; wherein when a ratio between a negative left slope value and a negative right slope value is less than a predefined threshold, then determine a local maximum self-capacitance value and return to the step of scanning the plurality of nodes of the at least one channel, and when not then continue to the next step; wherein when there is another self-value, then return to the step of determining left and right slope values; scanning a plurality of nodes of at least one channel having local maximum self-capacitance value for determining mutual values of the nodes; comparing the mutual values to determine which one of the nodes has the largest mutual capacitance value, wherein the node having the largest mutual capacitance value on the local maximum self-capacitance value channel is a potential touch location; and determining a force at the potential touch location from a change in the mutual capacitance values of the node at the potential touch location during no touch and during a touch thereto. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for determining gesturing motions and forces thereof on a touch sensing surface having a visual display, said system comprising:
-
a first plurality of electrodes arranged in a parallel orientation having a first axis, wherein each of the first plurality of electrodes comprises a self-capacitance; a second plurality of electrodes arranged in a parallel orientation having a second axis substantially perpendicular to the first axis, the first plurality of electrodes are located over the second plurality of electrodes and form a plurality of nodes comprising overlapping intersections of the first and second plurality of electrodes, wherein each of the plurality of nodes comprises a mutual capacitance; a flexible electrically conductive cover over the first plurality of electrodes, wherein a face of the flexible electrically conductive cover forms the touch sensing surface; a plurality of deformable spacers between the flexible electrically conductive cover and the first plurality of electrodes, wherein the plurality of deformable spacers maintains a distance between the flexible electrically conductive cover and the first plurality of electrodes; a digital processor and memory, wherein digital outputs of the digital processor are coupled to the first and second plurality of electrodes; an analog front end coupled to the first and second plurality of electrodes; an analog-to-digital converter (ADC) having at least one digital output coupled to the digital processor; wherein values of the self-capacitances are measured for each of the first plurality of electrodes by the analog front end, the values of the measured self-capacitances are stored in the memory, the digital processor is configured to determine for each measured self-capacitance value of each of the first plurality of electrodes left and right slope values for the at least one self-value, wherein; the left slope value is equal to the at least one self-value minus a self-value of a electrode to the left, and the right slope value is equal to the at least one self-value minus a self-value of a electrode to the right; the digital processor is further configured; to determine from the measured self-capacitance values local maximum self-capacitance values when the left slope value is greater than zero (0) and the right slope value is less than zero (0), or a ration between a positive left slope value and a positive right slope value is greater than a predefined threshold or when a ratio between a negative left slope value and a negative right slope value is less than a predefined threshold; to control the analog front end to measure values of the mutual capacitances of the nodes of at least one of the first electrodes having at least one local maximum self-capacitance values of the largest values, to store the values of the measured mutual capacitances in the memory; and the digital processor uses the stored self and mutual capacitance values for determining a gesturing motion and at least one force associated therewith applied to the touch sensing surface. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A method for decoding multiple touches and forces thereof on a touch sensing surface comprising electrodes arranged in a matrix extending from east to west on an X-axis and from north to south on a Y-axis, said method comprising the steps of:
-
scanning a plurality of channels aligned on the X-axis for determining self-capacitance values of each of the plurality of channels; comparing the self-capacitance values to determine which one of the channels has a local maximum self-capacitance value, wherein a self-capacitance value is only compared when the self-capacitance value is greater than a self-touch threshold, scanning a plurality of nodes of each channel for which a local maximum self-capacitance value has been determined for determining mutual values of the nodes comparing the mutual values to determine which one of the nodes has the largest mutual capacitance value, wherein the node having the largest mutual capacitance value on a local maximum self-capacitance value channel is a potential touch location, wherein for each channel only mutual values that are greater than a mutual touch threshold are considered, wherein the nodes are formed by electrodes of the X-axis and electrodes of the Y-axis; wherein for each considered mutual value of a channel a next slope value and a previous slope value are determined, wherein the next slope value is equal to a current mutual value minus a next mutual value of a next node, and wherein the previous slope value is equal to the current mutual value minus a previous mutual value of a previous node; determining if the next slope value is less than zero (0) and the previous slope value is greater than zero (0), wherein when yes then begin a step of validating the node, and when no then continue to the next step; determining if the next slope value is greater than zero (0) and less than a percentage of the previous slope value, wherein when yes then begin the step of validating the node, and when no then continue to the next step; determining if the next slope value is less than zero (0) and greater than the previous slope value, wherein when yes then begin the step of validating the node, and when no then continue to the next step; determining if there is another mutual value, wherein when yes then return to the step of determining if at least one of the mutual values is greater than the mutual touch threshold, and when no then continue scanning and comparing for a next channel until a touch detection frame is completed; wherein the step of validating a node comprises the steps of; identifying the node having a local maximum mutual value as a current node; determining if there is a valid node north of the current node, wherein when no then continue to the step of determining if there is a valid node south of the current node, and when yes then perform a mutual measurement on the north node and continue to the next step; determining if the north node is greater than the current node, when yes then make the north node the current node and continue to the step of determining whether a touch point already exists at this node, and when no then continue to the next step determining if there is a valid node south of the current node, wherein when no then continue to the step of determining if there is a valid node east of the current node, and when yes then perform a mutual measurement on the south node and continue to the next step; determining if the south node is greater than the current node, wherein when yes then make the south node the current node and continue to the step of determining whether a touch point already exists at this node, and when no then continue to the next step; determining if there is a valid node east of the current node, wherein when no then continue to the step of determining if there is a valid node west of the current node, and when yes then perform a mutual measurement on the east node and continue to the next step; determining if the east node is greater than the current node, when yes then make the east node the current node and continue to the step of determining whether a touch point already exists at this node, and when no then continue to the next step; determining if there is a valid node west of the current node, wherein when no then continue to the step of determining if there is a valid node left of the current node, and when yes then perform a mutual measurement on the west node and continue to the next step; determining if the west node is greater than the current node, when yes then make the west node the current node and continue to the step of determining whether a touch point already exists at this node, and when no then continue to the next step; determining if there is a valid node left of the current node, wherein when no then define a left mutual value as a center mutual value minus a right mutual value and continue to the step of determining a fine position for the node, and when yes then perform a mutual measurement on the left node and continue to the next step; determining if there is a valid node right of the current node, wherein when no then define the mutual value as the center mutual value minus the left mutual value and continue to the step of determining the fine position for the node, and when yes then perform a mutual measurement on the right node and continue to the next step; defining a fine position of the node by subtracting the left value from the right value, dividing this difference by the center value and multiplying the result thereof by 64 and continue to the next step; and determining whether interpolation was performed for each axis, wherein when yes, then add another touch point to a list of all detected touch points and return to the step of determining if there are additional mutual values, and when no, then interpolate another axis by using left and right nodes of the other axis for starting again at the step of determining if there is a valid node left of the current node; and determining a force at the potential touch location from a change in the mutual capacitance values of the node at the potential touch location during no touch and during a touch thereto.
-
Specification