Method and apparatus for separating touches from merged touch data in a capacitive touch screen
The method and apparatus enhance capacitive touchscreen accuracy by reallocating nodes based on touch amplitude and threshold comparisons, effectively distinguishing and detecting multiple touches in proximity, addressing the challenge of merged touch detection.
Patent Information
- Application Number
- JP2025543716
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-24
- Filing Date
- 2024-01-25
- Publication Date
- 2026-02-03
- Estimated Expiration
- 2044-01-25
AI Technical Summary
Existing capacitive touchscreens struggle to accurately distinguish between multiple touches that occur in close physical proximity, leading to inaccurate detection and difficulty in identifying the release of individual touches during gestures like pinching.
A method and apparatus that analyze capacitive touch data across multiple cycles, reallocating nodes based on touch amplitude differences and thresholds to separate merged touches, and detect touch application or release by comparing total touch data sums.
Enhances the ability to differentiate between closely spaced touches and accurately detect touch events, improving gesture recognition on capacitive touchscreens.
Smart Images

Figure 2026504177000001_ABST
Abstract
Description
[Technical Field]
[0001] This application claims priority to U.S. Non-Provisional Patent Application No. 18 / 421,725, filed January 24, 2024, and U.S. Provisional Patent Application No. 63 / 441,323, filed January 26, 2023, the contents of which are incorporated herein by reference in their entireties. [Background technology]
[0002] The present disclosure relates generally to capacitive touchscreens, and more particularly to distinguishing between multiple touches that occur in close physical proximity on a capacitive touchscreen. Summary of the Invention
[0003] According to one aspect of one or more examples, a method of distinguishing touches on a capacitive touch screen is provided, the method including the steps of: storing respective first touch data for a first set of nodes in a first cycle; determining first total touch data by summing the respective first touch data for the first set of nodes in the first cycle; storing respective second touch data for a second set of nodes in a second cycle after the first cycle, the first set of nodes and the second set of nodes at least partially overlapping; assigning to the first touch the nodes for which the first touch data was stored in the first cycle; assigning to the second touch the nodes for which the second touch data was stored in the second cycle but for which the first touch data was not stored in the first cycle; and determining, for one or more boundary nodes of the first set of nodes assigned to the first touch that are adjacent to the nodes assigned to the second touch, that the second touch data for each of the one or more boundary nodes is greater than the first touch data for each of the one or more boundary nodes. determining whether the second touch data of each of the one or more boundary nodes is greater than the first touch data of the respective one or more boundary nodes; reallocating one or more of the respective boundary nodes to the second touch based on the second touch data of the respective one or more boundary nodes being greater than the first touch data of the respective one or more boundary nodes; identifying one or more isolated nodes allocated to the second touch that are adjacent to at least one other node allocated to the first touch and not adjacent to any other node allocated to the second touch, and reallocating the one or more identified isolated nodes to the first touch; determining second total touch data by summing respective second touch data from the second cycle for nodes allocated to the first touch after the one or more isolated nodes have been reallocated to the first touch and after the one or more boundary nodes have been reallocated to the second touch; comparing the first total touch data with the second total touch data; and identifying a combined boundary node based on the comparison of the first total touch data and the second total touch data.
[0004] The step of identifying the joining boundary node may include, in response to the second total touch data exceeding the first total touch data by a threshold amount, identifying one or more nodes assigned to the first touch that are adjacent to a node assigned to the second touch as joining boundary nodes.
[0005] The step of identifying the joining boundary node may include identifying one or more nodes assigned to the second touch that are adjacent to a node assigned to the first touch as joining boundary nodes in response to the second total touch data not exceeding the first total touch data by a threshold amount.
[0006] The step of reallocating one or more of the boundary nodes may include determining a first touch data average of the first touch data for the first set of nodes in the first cycle; comparing each second touch data stored in the second cycle for each of the one or more boundary nodes with the first touch data average; and reallocating one or more boundary nodes having first touch data less than the first touch data average and second touch data greater than the first touch data average to the second touch.
[0007] The step of reallocating one or more of the boundary nodes may include determining whether the second touch data of each of the one or more boundary nodes exceeds the first touch data of each of the one or more boundary nodes by more than a threshold, and reallocating one or more boundary nodes having second touch data that exceed the first touch data average by more than the threshold to the second touch, wherein the first touch data and the second touch data include at least one of a capacitive touch distribution, a location, and an amplitude.
[0008] According to another aspect of various examples, a method for detecting application or removal of one of a first touch and a second touch on a capacitive touchscreen is provided. The method may include storing respective first touch data for a first set of nodes in a first cycle, storing respective second touch data for a second set of nodes in a second cycle after the first cycle, determining first total touch data by summing the respective first touch data for the first set of nodes in the first cycle, determining second total touch data by summing the respective second touch data for the second set of nodes in the second cycle, and determining whether a touch has been applied to or removed from the capacitive touchscreen based on a comparison between the first total touch data and the second total touch data.
[0009] In response to the second total touch data divided by the first total touch data exceeding a threshold, the method may determine that a touch has been applied to the capacitive touch screen. In response to the first total touch data divided by the second total touch data exceeding a threshold, the method may determine that a touch has been released from the capacitive touch screen.
[0010] According to one aspect of various examples, a method for distinguishing touches on a capacitive touchscreen is provided, the method including the steps of: storing respective first touch data for a first set of nodes of the capacitive touchscreen in a first cycle, the first set of nodes being assigned to a first touch; storing respective second touch data for a second set of nodes of the capacitive touchscreen in the first cycle, the second set of nodes being assigned to a second touch; identifying the nodes of the capacitive touchscreen assigned to the first touch and the second touch as shared nodes for the first cycle; and identifying a combination of the nodes of the capacitive touchscreen in the second cycle. storing respective touch data for a combined set of nodes, where the combined set of nodes at least partially overlaps with at least one of the first set of nodes and the second set of nodes; allocating nodes of the combined set of nodes that overlap with the first set of nodes in the first cycle to the first touch; allocating nodes of the combined set of nodes that overlap with the second set of nodes in the first cycle to the second touch; and identifying nodes of the combined set of nodes that overlap with the shared nodes of the first cycle as shared nodes of the second cycle.
[0011] The method may include the steps of: allocating to the first touch a node of the combined set of nodes that does not overlap with the first set of nodes in the first cycle or the second set of nodes in the first cycle but is adjacent to one or more nodes of the first set of nodes in the first cycle; and allocating to the second touch a node of the combined set of nodes that does not overlap with the first set of nodes or the second set of nodes in the first cycle but is adjacent to one or more nodes of the second set of nodes.
[0012] The method may include determining a first cycle sum by summing respective first touch data for a first set of respective nodes in a first cycle and respective second touch data for a second set of respective nodes in the first cycle; determining a second cycle sum by summing respective touch data for a combined set of nodes of the capacitive touch screen in a second cycle; comparing the first cycle sum to the second cycle sum; and determining that one of the first touch and the second touch has been released in response to the second cycle sum being less than the first cycle sum.
[0013] According to one aspect of various examples, an apparatus for distinguishing touches on a capacitive touch screen may include a capacitive touch screen having a plurality of nodes for outputting respective touch data in response to a touch by a user, a memory unit coupled to the capacitive touch screen, and a processing circuit, wherein the processing circuit stores respective first touch data for a first set of nodes among the plurality of nodes in the memory unit in a first cycle, determines first total touch data by summing the respective first touch data for the first set of nodes in the first cycle, stores respective second touch data for a second set of nodes among the plurality of nodes in the memory unit in a second cycle after the first cycle, the second set of nodes at least partially overlapping, assigns nodes for which first touch data was stored in the first cycle to the first touch, assigns nodes for which second touch data was stored in the second cycle but for which first touch data was not stored in the first cycle to the second touch, and assigns nodes for which second touch data was stored in the second cycle but for which first touch data was not stored in the first cycle to the second touch, and for one or more boundary nodes of the first set of nodes allocated to the first touch that are adjacent to nodes allocated to the first touch, determining whether the second touch data of the respective one or more boundary nodes is greater than the first touch data of the respective one or more boundary nodes, reallocating one or more of the respective boundary nodes to the second touch based on the second touch data of the respective one or more boundary nodes being greater than the first touch data of the respective one or more boundary nodes, identifying one or more isolated nodes allocated to the second touch that are adjacent to at least one other node allocated to the first touch and not adjacent to any other node allocated to the second touch, reallocating the one or more identified isolated nodes to the first touch, determining second total touch data by summing respective second touch data from the second cycle for the nodes allocated to the first touch after the one or more isolated nodes have been reallocated to the first touch and after the one or more boundary nodes have been reallocated to the second touch;comparing the first total touch data with the second total touch data; and identifying a joining boundary node based on the comparison of the first total touch data and the second total touch data.
[0014] To identify a joining boundary node, in response to the second total touch data exceeding the first total touch data by a threshold amount, the processing circuit identifies one or more nodes assigned to the first touch that are adjacent to a node assigned to the second touch as joining boundary nodes.
[0015] To identify a joining boundary node, in response to the second total touch data not exceeding the first total touch data by a threshold amount, the processing circuit identifies one or more nodes assigned to the second touch that are adjacent to a node assigned to the first touch as joining boundary nodes.
[0016] To reallocate the one or more boundary nodes, the processing circuit is for determining a first touch data average of the first touch data for the first set of nodes in the first cycle, comparing each second touch data stored in the second cycle for each of the one or more boundary nodes with the first touch data average, and reallocating one or more boundary nodes having second touch data greater than the first touch data average to the second touch.
[0017] To reallocate the one or more boundary nodes, the processing circuit determines whether the second touch data of each of the one or more boundary nodes exceeds the first touch data of each of the one or more boundary nodes by more than a threshold amount; and reallocating to the second touch one or more boundary nodes having second touch data that exceeds the respective first touch data average by more than a threshold amount. [Brief explanation of the drawings]
[0018] [Figure 1A] 1 shows a graphical representation of capacitive touch data according to the prior art. [Figure 1B] 1 shows a graphical representation of capacitive touch data for a first touch according to the prior art. [Figure 1C] 1 shows a graphical representation of capacitive touch data of a first touch and a second touch merged in accordance with the prior art. [Figure 2A] 1 illustrates a method for distinguishing touches on a capacitive touchscreen, according to various examples. [Figure 2B] 10 illustrates capacitive touch data stored on a first cycle, according to various examples. [Figure 3] 10 illustrates capacitive touch data stored in a second cycle, according to various examples. [Figure 4] 1 illustrates a method for assigning nodes of a capacitive touch screen to first and second touches based on capacitive touch data, according to various examples. [Figure 5] 1 illustrates a method for reallocating boundary nodes of a capacitive touch screen between a first touch and a second touch based on capacitive touch data, according to various examples. [Figure 6] 1 illustrates a method for reallocating boundary nodes of a capacitive touch screen between a first touch and a second touch based on capacitive touch data, according to various examples. [Figure 7] 1 illustrates a method for reallocating isolated nodes of a capacitive touch screen from a second touch to a first touch based on capacitive touch data, according to various examples. [Figure 8] 1 illustrates a method for identifying a joining boundary node of a capacitive touch screen between a first touch and a second touch based on capacitive touch data, according to various examples. [Figure 9] 1 illustrates a method for detecting application or removal of one of a first touch and a second touch, according to various embodiments. [Figure 10A] 1 illustrates a method for distinguishing touches on a capacitive touchscreen, according to various examples. [Figure 10B]10B illustrates a graphical representation of capacitive touch data corresponding to the method of FIG. 10A, in accordance with various examples. [Figure 10C] 10B illustrates a graphical representation of capacitive touch data corresponding to the method of FIG. 10A, in accordance with various examples. [Figure 10D] 1 illustrates a method for distinguishing touches on a capacitive touchscreen and determining whether a touch has been released, according to various examples. [Figure 11] 1 illustrates a block diagram of an apparatus for distinguishing touches on a capacitive touchscreen, according to various examples. DETAILED DESCRIPTION OF THE INVENTION
[0019] Reference will now be made in detail to the following various examples, which are illustrated in the accompanying drawings. Like reference numerals refer to like elements throughout. The following examples may be embodied in various forms, including but not limited to the examples set forth herein.
[0020] FIG. 1A shows a graphical representation of capacitive touch data according to the prior art. Capacitive touchscreens have become ubiquitous and are used in a variety of applications, including, but not limited to, cell phones, tablets, and control panels used in a variety of applications such as automobiles and point-of-sale terminals. A capacitive touchscreen is divided into many nodes, which may be square or rectangular in shape (although other shapes may be used). When a user touches or is sufficiently close to a capacitive touchscreen, a capacitive touch controller measures the capacitive touch amplitude at each of the touched nodes. This application describes the use of capacitive touch amplitude, but other types of touch data may be used to identify a touch. The capacitive touch amplitude depends on how many of the nodes are touched by the user. If a user's finger touches an entire node, the capacitive touch amplitude will be larger than the capacitive touch amplitude for a node that is only partially touched by the user's finger. Referring to FIG. 1A, the x-axis and y-axis represent the capacitive touchscreen and the nodes of the capacitive touchscreen. The vertical axis represents the capacitive touch amplitude at a given node in the xy plane. As shown in Figure 1A, two separate touches on the capacitive touch screen, a first touch 110 and a second touch 120, are detected as indicated by the two peaks in the capacitive touch amplitude.
[0021] FIG. 1B shows a graphical representation of capacitive touch data according to the prior art. Referring to FIG. 1B, a first touch 130 on a capacitive touch screen is shown, as indicated by a single peak in the capacitive touch amplitude. Referring to FIG. 1C, the capacitive touch amplitude of the first touch 130 and a second touch 140 occurring very close to the first touch 130 are shown. Because the second touch 140 is very close to the first touch 130, the two capacitive touch amplitude peaks merge into a single peak, making it difficult to distinguish between the first touch 130 and the second touch 140. When this occurs, the locations of the two touches may merge into a single location that is between the two touches, causing the first touch 130 to "jump" toward the second touch 140. This can also occur during a "pinch" motion, in which a user may move one finger toward a second finger in a pinching motion. When a first finger gets too close to a second finger, the two touches may merge, resulting in inaccurate detection of the touches. Furthermore, a capacitive touch controller may assign a touch ID to each detected touch. When two touches merge, the touches may appear merged on the touchscreen, but the software or firmware assigning the touch IDs may maintain separate touch IDs for the two touches. If a user releases one of the touches, the software or firmware may not be able to detect the released touch because the two touches are merged. In that case, when a new touch is detected, a new touch ID is assigned to the new touch, while the previous touch ID is still reserved for the released touch. Therefore, there is a need to detect and distinguish between multiple touches that occur close to each other on a capacitive touchscreen.
[0022] 2A-8 illustrate methods of distinguishing touches on a capacitive touchscreen, according to various examples. The following description refers to a "touch" of a capacitive touchscreen, which includes a user physically touching the capacitive touchscreen and a user being close enough to the capacitive touchscreen to register touchscreen data, even if the user is not physically touching the capacitive touchscreen. FIG. 2A illustrates methods of distinguishing touches on a capacitive touchscreen, according to various examples. FIG. 2B illustrates steps for storing capacitive touch data during a first cycle, according to various examples. The capacitive touch controller stores touch data at regular time intervals or cycles. In step 200, during a first cycle (N-1), respective first touch data 210 is stored for a first set of nodes. Specifically, in FIG. 2B, capacitive touch amplitudes are stored for nodes ranging from 7 to 10 in the x-direction and from 3 to 6 in the y-direction. According to various examples, in step 201, the first total touch data may be determined by summing the respective first touch data for all of the nodes in the first set of nodes. According to various examples, the first touch data average may be determined by calculating the sum of the capacitive touch amplitudes for all of the nodes in the first set of nodes and dividing the sum by the number of nodes for which the first touch data was recorded. In the example shown in FIG. 2B, the first total touch data is 838 and the first touch data average is 60.
[0023] In step 202, according to various examples, capacitive touch data is stored during a second cycle N. The capacitive touch data shown in FIG. 3 is second touch data 310 from a second touch occurring during the second cycle N for a second set of nodes, but the second touch occurs on many of the same nodes as the first touch whose touch data is shown in FIG. 2B. The nodes for which second touch data was stored range from 6 to 11 in the x-direction and from 3 to 7 in the y-direction. As shown by comparing FIG. 2B with FIG. 3, the capacitive touch amplitude increased for some nodes and decreased for other nodes from cycle N-1 to cycle N.
[0024] In steps 203 and 204, nodes of the capacitive touch screen are assigned to a first and a second touch, respectively, based on the capacitive touch data, according to various examples. Referring to FIG. 4, the contour or profile of the node that stored first touch data during cycle N-1 overlaps with the second touch data of the second cycle, i.e., cycle N. All nodes that stored first touch data 210 during cycle N-1 are assigned to the first touch. All other nodes that stored second touch data 310 during cycle N but did not store touch data during cycle N-1 are assigned to the second touch.
[0025] In step 205, for one or more boundary nodes, it is determined whether the second touch data is greater than the first touch data. In step 206, one or more boundary nodes allocated to the first touch are reallocated to the second touch based on the second touch data of each of the one or more boundary nodes being greater than the first touch data of each of the one or more boundary nodes. Figure 5 illustrates the steps of reallocating boundary nodes allocated to the first touch to the second touch, according to various examples. Briefly referring back to Figure 2B, it can be seen that in cycle N-1, the first touch data (e.g., capacitive touch amplitude) for each boundary node, i.e., the nodes forming the periphery of the area in which the first touch data is stored, are all less than the average capacitive touch amplitude 60. 3, 4, and 5, during cycle N, two of the boundary nodes 510, 520 at (x, y) coordinates (10, 4) and (10, 5) have respective capacitive touch amplitudes (i.e., 204 and 255) that are greater than the average capacitive touch amplitude (i.e., 60). According to various examples, these nodes 510, 520 having second touch data greater than the average first touch data represent peaks of the second touch and are reallocated to the second touch. According to various examples, each reallocated node may have respective first touch data during cycle N-1 that is less than the average first touch data and respective second touch data during cycle N that is greater than the average first touch data. According to various examples, the reallocated nodes may be based on the second touch data of each of the one or more boundary nodes being greater than the first touch data of each of the one or more boundary nodes. According to various examples, one or more boundary nodes having second touch data that exceeds the respective first touch data for each of the one or more boundary nodes by a threshold amount may be reallocated to a second touch. For example, regardless of the average first touch data, if the touch data of a boundary node increases, for example, by a factor of two, the boundary node may be reallocated from a first touch to a second touch.
[0026] As shown in FIG. 6, two reallocated boundary nodes 510 and 520 located at coordinates (10, 4) and (10, 5) have been reallocated to the second touch. Step 207 includes identifying any isolated nodes allocated to the second touch and reallocating such isolated nodes to the first touch. FIG. 6 illustrates the steps of identifying isolated nodes according to various examples. Referring to FIG. 6, an isolated node 610 can be identified as a node allocated to the second touch that is not adjacent to or touching other nodes allocated to the second touch. For example, node (6, 5) is allocated to the second touch (touch data is zero), but is not adjacent to or touching other nodes allocated to the second touch, and is therefore identified as an isolated node 610. According to various examples, the isolated node of the second touch may be reassigned to the first touch, as shown in FIG. 7, where isolated node 610 located at coordinates (6, 5) has been reassigned to the first touch.
[0027] FIG. 8 illustrates a method for identifying a joining boundary node of a capacitive touch screen between a first touch and a second touch based on capacitive touch data, according to various examples. To identify the joining boundary node, according to various examples, first total touch data may be determined by calculating the sum of each first touch data during cycle N-1 for each node assigned to the first touch, as described above in step 201 of FIG. 2A. For example, the sum of each first touch data (e.g., capacitive touch amplitude) during cycle N-1 shown for node 210 in FIG. 2 is 838. Next, in step 208a of FIG. 2A, second total touch data may be calculated by calculating the sum of each second touch data during cycle N for each node assigned to the first touch. The nodes used to determine the second total touch data may be determined after boundary nodes and isolated nodes, if any, are reallocated. For example, as shown in Figure 5, nodes (10,4) and (10,5) are identified as boundary nodes 510, 520, which are reallocated to the second touch in Figure 6. Similarly, in Figure 6, node (6,5) is identified as an isolated node 610, which is reallocated to the first touch in Figure 7. According to various examples, once these reallocation steps have occurred, second total touch data may be calculated by summing the capacitive touch amplitudes during cycle N of the nodes allocated to the first touch, for example, shown in green in Figure 7. Calculating the second total touch data for the nodes shown in green in Figure 7 results in a second total touch data of 1089.
[0028] Once the first and second total touch data have been calculated, step 208b of FIG. 2A can compare the two values to determine whether the total touch data assigned to the first touch increased by more than a certain threshold from cycle N−1 to cycle N, i.e., from the first cycle to the second cycle. For example, if the second total touch data exceeds the first total touch data by more than 10%, it can be determined that at least a portion of the increase in total touch data was caused by the second touch. While this example uses an increase of more than 10% as the threshold, a different threshold can be used. For example, the threshold can be set to a single unit of total touch data (e.g., the sum of the respective capacitive touch amplitudes), i.e., a threshold of “1,” such that any increase in total touch data from the first cycle to the second cycle can indicate that at least a portion of the increase in total touch data was caused by the second touch. 2A, if the second total touch data exceeds the first total touch data by more than a threshold, the boundary node allocated to the first touch (i.e., a node allocated to the first touch that is adjacent to a node allocated to the second touch) may be designated as a combined boundary node 810 allocated to both the first and second touches. If the second total touch data does not exceed the first total touch data by more than a threshold, the boundary node allocated to the second touch (i.e., a node allocated to the second touch that is adjacent to a node allocated to the first touch) may be designated as a combined boundary node allocated to both the first and second touches.
[0029] According to various examples, a new touch on a capacitive touch screen may be detected. Additionally, a “lift-off” or release of a touch that has physically merged with another touch may be detected. For example, FIG. 9 illustrates a method for detecting the application or release of one of a first touch and a second touch, according to various embodiments. In step 910, first touch data for a first set of nodes in cycle N−1 may be stored. The first touch data may be capacitive touch amplitude, although other types of touch data capable of indicating a touch may be used. Touch data for each node in the first set of nodes may be stored, although other touch data for the first set of nodes, such as, without limitation, an average or sum of all nodes, may be used instead of or in addition to storing touch data for each node. According to various examples, in step 920, second touch data may be stored for a second set of nodes in cycle N, which is after cycle N−1 and may be referred to as the second cycle. The second set of nodes may at least partially overlap with the first set of nodes. A method according to various examples may determine first total touch data at step 930 by summing the first touch data for each node in the first set of nodes. A method according to various examples may also determine second total touch data at step 940 by summing the second touch data for each node in the second set of nodes. A method according to various examples may compare the first total touch data with the second total touch data at step 950 and determine whether a touch has been applied or released based on the results of the comparison. For example, a new touch may be determined to have been detected if the second total touch data divided by the first total touch data is greater than a predetermined threshold. A touch may be determined to have been released if the first total touch data divided by the second total touch data is greater than a predetermined threshold.
[0030] FIG. 10A illustrates a method for distinguishing touches on a capacitive touchscreen, according to various examples, and FIGS. 10B and 10C illustrate graphical representations of capacitive touch data corresponding to the method of FIG. 10A , according to various examples. For example, during a “pinch” gesture in which a user moves two fingers toward each other on a capacitive touchscreen, it may be difficult to distinguish between a first touch 1001 of one finger and a second touch 1002 of a second finger. With reference to FIGS. 10A-10C , the method may include step 1010 of storing respective first touch data for a first cycle, i.e., cycle N−1, for a first set 1015 of the capacitive touchscreen nodes assigned to the first touch 1001. The method may include step 1020 of storing respective second touch data for a first cycle, i.e., cycle N−1, for a second set 1025 of the capacitive touchscreen nodes assigned to the second touch 1002. The method may include identifying 1030 nodes of the capacitive touch screen allocated to the first touch 1001 and the second touch 1002 as shared nodes 1035 of the first cycle.
[0031] The method may include storing 1040 respective touch data for a combined set 1045 of nodes of the capacitive touch screen in a second cycle, i.e., cycle N, occurring after the first cycle. The combined set 1045 of nodes may at least partially overlap with at least one of the first set of nodes 1015 and the second set of nodes 1025. The method may include 1050 assigning nodes of the combined set 1045 of nodes that overlap with the first set of nodes 1015 to the first touch, assigning nodes of the combined set 1045 of nodes that overlap with the second set of nodes 1025 to the second touch, and identifying nodes of the combined set 1045 of nodes that overlap with shared nodes 1035 of the first cycle as shared nodes 1055 of the second cycle.
[0032] According to various examples, storing each touch data for the combined set of nodes may include storing touch data for new nodes for which touch data was not stored in the first cycle. For example, in the second cycle of FIG. 10C , touch data was recorded for nodes (0, 3) and (0, 4), but touch data was not recorded for these nodes in the first cycle. Step 1060 of the method may include assigning to the first touch a node of the combined set of nodes 1045 that does not overlap with the first set of nodes 1015 or the second set of nodes 1025, but that is adjacent to one or more nodes in the first set of nodes 1015. For example, because nodes (0, 3) and (0, 4) are adjacent to one or more nodes in the first set of nodes (e.g., nodes (1, 3) and (1, 4)), nodes (0, 3) and (0, 4) are assigned to the first set of nodes 1015. Similarly, the method may include allocating to the second touch nodes of the combined set of nodes that do not overlap with the first set of nodes or the second set of nodes, but that are adjacent to one or more nodes of the second set of nodes.
[0033] FIG. 10D illustrates a method for distinguishing touches on a capacitive touchscreen and determining whether a touch has been released, according to various examples. The method of FIG. 10D includes the same steps as the method of FIG. 10A , and descriptions of those steps will not be repeated. The method of FIG. 10D also includes step 1041 of determining a first cycle sum by summing respective first touch data for a first set of respective nodes 1015 in a first cycle and respective second touch data for a second set of respective nodes 1025 in the first cycle. A second cycle sum may be determined by summing respective touch data for a combined set 1045 of nodes of the capacitive touchscreen in a second cycle, and the first cycle sum may be compared to the second cycle sum. The method may include step 1042 of determining whether the second cycle sum is less than the first cycle sum minus a threshold value. In step 1043, one of the first touch and the second touch is determined to have been released in response to the second cycle sum being less than the first cycle sum minus the threshold. According to various examples, step 1050 of assigning nodes of the combined set of nodes to the first and second touches and step 1060 of identifying shared nodes of the second cycle are performed in response to the second cycle sum not being less than the first cycle sum minus the threshold.
[0034] 11 shows a block diagram of an apparatus for distinguishing touches on a capacitive touchscreen, according to various examples. The apparatus may include a capacitive touchscreen 1110, a processing circuit 1120 coupled to the capacitive touchscreen 1110, and a memory unit coupled to the processing circuit 1120 and the capacitive touchscreen 1110. The processing circuit 1120 may include a capacitive touch controller, may be capable of receiving input signals from the capacitive touchscreen 1110, and may execute software for implementing the methods described above. The memory unit 1130 may be used to store touch data received from the capacitive touchscreen 1110 as well as data calculated by the processing circuit 1120, such as total touchscreen data for a set of nodes in a given cycle.
[0035] The capacitive touchscreen 1110 may have a plurality of nodes for outputting respective capacitance changes in response to being touched by a user or in response to the user coming sufficiently close to the capacitive touchscreen 1110. The processing circuit 1120 measures the capacitive touch amplitude at each of the touched nodes and determines touch data based on the capacitance changes. A memory unit 1130 may be coupled to the capacitive touchscreen 1110. The processing circuit 1120 may store respective first touch data for a first set of nodes of the plurality of nodes of the capacitive touchscreen 1110 in a first cycle in the memory unit 130 and determine first total touch data by summing the respective first touch data for the first set of nodes in the first cycle. The processing circuit 1120 may store respective second touch data for a second set of nodes of the plurality of nodes in the memory unit 1130 in a second cycle after the first cycle. The first set of nodes and the second set of nodes may at least partially overlap. The processing circuit 1120 may assign nodes where first touch data was stored in the first cycle to the first touch, assign nodes where second touch data was stored in the second cycle but where first touch data was not stored in the first cycle to the second touch, and for one or more boundary nodes of the first set of nodes assigned to the first touch that are adjacent to the nodes assigned to the second touch, determine whether the second touch data of each of the one or more boundary nodes is greater than the first touch data of each of the one or more boundary nodes. The processing circuit may reallocate one or more of the respective boundary nodes to the second touch based on the second touch data of each of the one or more boundary nodes being greater than the first touch data of each of the one or more boundary nodes.
[0036] Processing circuit 1120 may identify one or more isolated nodes allocated to the second touch that are adjacent to at least one other node allocated to the first touch and not adjacent to any other node allocated to the second touch, and reallocate the one or more identified isolated nodes to the first touch. After the one or more isolated nodes are reallocated to the first touch and after the one or more boundary nodes are reallocated to the second touch, processing circuit 1120 may determine second total touch data by summing respective second touch data from the second cycle for the nodes allocated to the first touch, compare the first total touch data to the second total touch data, and identify a joining boundary node based on the comparison of the first total touch data and the second total touch data.
[0037] Various examples have been disclosed herein in connection with the above description and drawings. It will be understood that literally describing and illustrating every combination and subcombination of these examples would be unduly repetitive. For example, the methods described herein may include more, fewer, or other steps. Additionally, steps may be performed in any suitable order and combined with other steps. Accordingly, all examples may be combined in any manner and / or combination, and the specification, including the drawings, shall be construed to constitute a complete written description of all combinations and subcombinations of the examples described herein, and methods and processes for making and using them, and shall support claims to any such combinations or subcombinations.
[0038] It will be understood by those skilled in the art that the examples described herein are not limited to those particularly shown and described hereinabove. Additionally, unless stated to the contrary above, it should be noted that all of the accompanying drawings are not to scale. Various modifications and variations are possible in light of the above teachings.
Claims
1. 1. A method of distinguishing touches on a capacitive touch screen, the method comprising: storing respective first touch data for a first set of nodes in a first cycle; determining first total touch data by summing the respective first touch data for the first set of nodes in the first cycle; storing respective second touch data for a second set of nodes in a second cycle after the first cycle, wherein the first set of nodes and the second set of nodes at least partially overlap; assigning a node in which first touch data is stored to the first touch in the first cycle; assigning a second touch to a node that has stored second touch data in the second cycle but has not stored first touch data in the first cycle; For one or more boundary nodes of a first set of nodes allocated to the first touch that are adjacent to a node allocated to the second touch, determining whether the second touch data of each of the one or more boundary nodes is greater than the first touch data of the each of the one or more boundary nodes; reallocating one or more of the respective boundary nodes to the second touch based on the second touch data of the respective one or more boundary nodes being greater than the first touch data of the respective one or more boundary nodes; identifying one or more isolated nodes allocated to the second touch that are adjacent to at least one other node allocated to the first touch and that are not adjacent to any other node allocated to the second touch, and reallocating one or more of the identified isolated nodes to the first touch; determining second total touch data by summing respective second touch data from the second cycle for nodes allocated to the first touch after the one or more isolated nodes have been reallocated to the first touch and after the one or more boundary nodes have been reallocated to the second touch; comparing the first total touch data with the second total touch data; and identifying a joining boundary node based on the comparison of the first total touch data and the second total touch data.
2. 2. The method of claim 1 , wherein identifying the joining boundary node comprises: identifying, in response to the second total touch data exceeding the first total touch data by a threshold amount, one or more nodes assigned to the first touch that are adjacent to a node assigned to the second touch as the joining boundary node.
3. 2. The method of claim 1 , wherein identifying the joining boundary node comprises identifying one or more nodes assigned to the second touch that are adjacent to a node assigned to the first touch as the joining boundary node in response to the second total touch data not exceeding the first total touch data by a threshold amount.
4. The step of reallocating one or more of the boundary nodes comprises: determining a first touch data average of the first touch data for the first set of nodes in the first cycle; comparing each second touch data stored in the second cycle for each of the one or more boundary nodes with the first touch data average; and reallocating to the second touch one or more boundary nodes having first touch data less than the first touch data average and second touch data greater than the first touch data average.
5. The step of reallocating one or more of the boundary nodes comprises: determining whether the respective second touch data of the one or more boundary nodes exceeds the respective first touch data of the respective one or more boundary nodes by more than a threshold; and reallocating to the second touch one or more boundary nodes having second touch data that exceed the respective first touch data average by more than the threshold.
6. The method of claim 1 , wherein the first touch data and the second touch data include at least one of capacitive touch distribution, location, and amplitude.
7. 1. A method for detecting application or removal of one of a first touch and a second touch on a capacitive touch screen, the method comprising: storing respective first touch data for a first set of nodes in a first cycle; storing respective second touch data for a second set of nodes in a second cycle after the first cycle; determining first total touch data by summing the respective first touch data for the first set of nodes in the first cycle; determining second total touch data by summing the respective second touch data for a second set of the nodes in the second cycle; and determining whether a touch has been applied to or released from the capacitive touch screen based on a comparison between the first total touch data and the second total touch data.
8. 8. The method of claim 7, further comprising determining that a touch has been applied to the capacitive touch screen in response to the second total touch data divided by the first total touch data exceeding a threshold.
9. 8. The method of claim 7, further comprising determining that a touch has been released from the capacitive touch screen in response to the first total touch data divided by the second total touch data exceeding a threshold.
10. 1. A method of distinguishing touches on a capacitive touch screen, the method comprising: storing respective first touch data for a first set of nodes of the capacitive touch screen in a first cycle, the first set of nodes being assigned to a first touch; storing respective second touch data for a second set of nodes of the capacitive touch screen in the first cycle, the second set of nodes being assigned to a second touch; identifying nodes of the capacitive touch screen assigned to the first touch and the second touch as shared nodes for the first cycle; storing respective touch data for a combined set of nodes of the capacitive touch screen in a second cycle, the combined set of nodes at least partially overlapping with at least one of the first set of nodes and the second set of nodes; assigning to the first touch nodes of the combined set of nodes that overlap with the first set of nodes in the first cycle; assigning to the second touch nodes of the combined set of nodes that overlap with the second set of nodes in the first cycle; and identifying nodes of the combined set of nodes that overlap with the shared nodes of the first cycle as shared nodes of the second cycle.
11. assigning to the first touch a node of the combined set of nodes that does not overlap with the first set of nodes in the first cycle or the second set of nodes in the first cycle, but that is adjacent to one or more nodes of the first set of nodes in the first cycle; and allocating to the second touch a node of the combined set of nodes that does not overlap with the first set of nodes or the second set of nodes in the first cycle but that is adjacent to one or more nodes of the second set of nodes.
12. determining a first cycle sum by summing the respective first touch data for each of the first set of nodes in the first cycle and the respective second touch data for each of the second set of nodes in the first cycle; determining a second cycle sum by summing the respective touch data for the combined set of nodes of the capacitive touch screen in a second cycle; comparing the first cycle sum to the second cycle sum; and determining that one of the first touch and the second touch has been released in response to the second cycle sum being less than the first cycle sum.
13. 13. The method of claim 12, wherein the allocating of nodes of the combined set of nodes to the first and second touches and the identifying of shared nodes of the second cycle are performed in response to the second cycle sum being greater than or equal to the first cycle sum minus a threshold.
14. 1. An apparatus for distinguishing touches on a capacitive touch screen, the apparatus comprising: a capacitive touch screen having a plurality of nodes for outputting respective touch data in response to a touch by a user; a memory unit coupled to the capacitive touch screen; a processing circuit, the processing circuit comprising: storing respective first touch data for a first set of nodes of the plurality of nodes in a first cycle in the memory unit; determining first total touch data by summing the respective first touch data for the first set of nodes in the first cycle; storing in the memory unit respective second touch data for a second set of nodes of the plurality of nodes in a second cycle after the first cycle, the first set of nodes and the second set of nodes at least partially overlapping; assigning a node in which first touch data is stored to the first touch in the first cycle; assigning a second touch to a node that has stored second touch data in the second cycle but has not stored first touch data in the first cycle; For one or more boundary nodes of a first set of nodes allocated to the first touch that are adjacent to a node allocated to the second touch, determining whether the second touch data of each of the one or more boundary nodes is greater than the first touch data of the each of the one or more boundary nodes; reallocating one or more of the respective boundary nodes to the second touch based on the second touch data of the respective one or more boundary nodes being greater than the first touch data of the respective one or more boundary nodes; identifying one or more isolated nodes assigned to the second touch that are adjacent to at least one other node assigned to the first touch and that are not adjacent to any other node assigned to the second touch; reassigning one or more of the identified isolated nodes to the first touch; determining second total touch data by summing respective second touch data from the second cycle for nodes allocated to the first touch after the one or more isolated nodes have been reallocated to the first touch and after the one or more boundary nodes have been reallocated to the second touch; comparing the first total touch data to the second total touch data; and identifying a joining boundary node based on the comparison of the first total touch data and the second total touch data.
15. 15. The apparatus of claim 14, wherein, in response to the second total touch data exceeding the first total touch data by a threshold amount, the processing circuitry is to identify as the joining boundary node one or more nodes assigned to the first touch that are adjacent to a node assigned to the second touch.
16. 15. The apparatus of claim 14, wherein, in response to the second total touch data not exceeding the first total touch data by a threshold amount to identify the joining boundary node, the processing circuitry is to identify one or more nodes assigned to the second touch that are adjacent to a node assigned to the first touch as the joining boundary node.
17. To reallocate the one or more boundary nodes, the processing circuitry: determining a first touch data average of the first touch data for the first set of nodes in the first cycle; comparing each second touch data stored in the second cycle for each of the one or more boundary nodes to the first touch data average; 15. The apparatus of claim 14, for reallocating one or more boundary nodes having second touch data greater than the first touch data average to the second touch.
18. To reallocate the one or more boundary nodes, the processing circuitry: determining whether the respective second touch data of the one or more boundary nodes exceeds the respective first touch data of the respective one or more boundary nodes by more than a threshold; 15. The apparatus of claim 14, wherein the apparatus is for reallocating to the second touch one or more boundary nodes having second touch data that exceed the respective first touch data average by more than the threshold.
19. The device of claim 14 , wherein the touch data comprises capacitive touch amplitude.
Citation Information
Patent Citations
Sensor device for detecting contact or proximity of object and display device having the same mounted thereon
JP2010272064A
Touch detection device and touch detection method
JP2018200647A
Method and apparatus for detecting multi touch on touch screen panel
KR1020160022206A
Method of segmenting multiple touches in touch sensing system
US20130169561A1