CN113168258B - 触摸事件侦测方法、mcu、触控设备及存储介质 - Google Patents
触摸事件侦测方法、mcu、触控设备及存储介质 Download PDFInfo
- Publication number
- CN113168258B CN113168258B CN201980002387.5A CN201980002387A CN113168258B CN 113168258 B CN113168258 B CN 113168258B CN 201980002387 A CN201980002387 A CN 201980002387A CN 113168258 B CN113168258 B CN 113168258B
- Authority
- CN
- China
- Prior art keywords
- channel
- touch
- touch key
- mcu
- press
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Input By Displaying (AREA)
- Electronic Switches (AREA)
Abstract
本申请提供一种触摸事件侦测方法、MCU、触控设备及存储介质。其中MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,该方法包括:根据N个通道上的当前电压,判断触摸按键当前是否存在按压操作。若触摸按键当前存在按压操作,则确定N个通道上的当前电压中的最大电压,并确定具有最大电压的第一通道。若第一通道具有两个与其相邻的第二通道和第三通道,则根据最大电压、第二通道上的当前电压、第三通道上的当前电压以及第一通道、第二通道和第三通道分别对应的触摸子按键的位置,确定触摸按键的按压位置。以确保计算得到的按压位置的准确度。
Description
技术领域
本申请涉及触控技术领域,尤其涉及一种触摸事件侦测方法、MCU、触控设备及存储介质。
背景技术
目前触控设备在人们的日常生活中被频繁使用,如燃气灶、触控灯等。这些触控设备中包括:微控制单元(Microcontroller Unit,MCU)和触摸按键,其中MCU与触摸按键之间存在通道。
MCU可以采集通道上的电压,并根据电压确定触摸按键上是否存在按压操作,如果存在按压操作,MCU还可以确定触摸按键上的按压位置。针对滑条式触摸按键、圆形式触摸按键等包括多个触摸子按键的触摸按键,现有技术通过如下方式确定触摸按键上的按压位置,假设触摸按键包括N个触摸子按键,N个触摸子按键通过N个通道连接至MCU,N为大于2的整数,首先MCU确定N个通道上的当前电压中的最大电压对应的触摸子按键的位置,其次确定与最大电压对应的通道相邻的两个通道,在两个通道中确定电压值中的较大者,再对该较大值对应的触摸子按键的位置,以及,最大电压对应的触摸子按键的位置进行重心计算,以得到触摸按键的按压位置。
然而,当上述两个通道的电压值中的较小者与较大值比较接近时,MCU得到的触摸按键的按压位置与实际按压位置存在较大的偏差,从而得到的按压位置的准确度较低。
发明内容
本申请提供一种触摸事件侦测方法、MCU、触控设备及存储介质。以确保计算得到的按压位置的准确度。
第一方面,本申请提供一种触摸事件侦测方法,方法应用于微控制单元MCU,MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,N个通道与N个触摸子按键一一对应,N为大于2的整数,方法包括:根据N个通道上的当前电压,判断触摸按键当前是否存在按压操作。若触摸按键当前存在按压操作,则确定N个通道上的当前电压中的最大电压,并确定具有最大电压的第一通道。若第一通道具有两个与其相邻的第二通道和第三通道,则根据最大电压、第二通道上的当前电压、第三通道上的当前电压以及第一通道、第二通道和第三通道分别对应的触摸子按键的位置,确定触摸按键的按压位置。
由于MCU在计算触摸按键的按压位置时,同时将第二通道、第三通道的位置和电压考虑在内,因此即使第二通道和第三通道的电压比较接近,也不会存在计算得到的触摸按键的按压位置与实际按压位置存在较大的偏差,以确保计算得到的按压位置的准确度。
可选的,根据最大电压、第二通道上的当前电压、第三通道上的当前电压以及第一通道、第二通道和第三通道分别对应的触摸子按键的位置,确定触摸按键的按压位置,包括:计算最大电压、第二通道上的当前电压、第三通道上的当前电压之和,得到第一通道、第二通道和第三通道上的当前电压和。分别计算最大电压、第二通道上的当前电压、第三通道上的当前电压与电压和的比值,以得到第一通道、第二通道、第三通道对应的权重。根据第一通道、第二通道、第三通道对应的权重,对第一通道、第二通道和第三通道分别对应的触摸子按键的位置进行加权平均,以得到触摸按键的按压位置。
可选的,上述方法还包括:若触摸按键当前不存在按压操作,则判断触摸按键之前是否存在有效按压操作。若触摸按键之前存在有效按压操作,则判断触摸按键的无按压计数值是否大于单击阈值,无按压计数值是在有效按压操作至触摸按键的当前按压操作之间所统计的无按压次数。若无按压计数值大于单击阈值,则确定触摸按键存在单击动作。其中,有效按压操作是还未根据该按压操作确定触摸按键上的动作的按压操作,动作包括以下任一项:单击、双击、长按、滑动。
可选的,上述方法还包括:若触摸按键当前存在按压操作,则判断无按压计数值是否大于零。若无按压计数值大于零,则确定触摸按键存在双击动作。
可选的,上述方法还包括:若无按压计数值等于零,则确定触摸按键的当前按压操作所在位置与有效按压操作所在位置之间的距离,并判断距离是否超过第一距离阈值。若距离未超过第一距离阈值,则判断触摸按键的按压计数值是否大于长按阈值,按压计数值是在有效按压操作至触摸按键的当前按压操作之间所统计的按压次数。若按压计数值大于长按阈值,则确定触摸按键存在长按动作。
可选的,上述方法还包括:若距离超过第一距离阈值,则根据触摸按键的当前按压操作所在位置与有效按压操作所在位置确定触摸按键上的滑动方向,并判断滑动方向上的距离是否超过滑动阈值。若滑动方向上的距离超过滑动阈值,则确定触摸按键存在滑动方向上的滑动动作。
即MCU可以根据触摸按键上当前是否存在按压操作、之前是否存在有效按压操作、按压计数值和无按压计数值以及按压操作所在位置与有效按压操作所在位置之间的距离等,可以确定触摸按键上的动作,如单击、双击、滑动或者长按等,从而丰富了MCU的功能。
可选的,根据N个通道上的当前电压,判断触摸按键当前是否存在按压操作,包括:若N个通道上的任一个通道的当前电压满足预设条件,则确定触摸按键当前存在按压操作;若N个通道上的所有通道的当前电压均不满足预设条件,则确定触摸按键当前不存在按压操作;其中,任一个通道的当前电压满足预设条件包括:任一个通道的基准电压与当前电压的差值大于预设阈值,任一个通道的基准电压为当任一个通道对应的触摸子按键上不存在按压操作时,任一个通道上的电压。通过该方法可以有效的判断触摸按键上是否存在按压操作。
下面将介绍MCU、触控设备、可读存储介质以及计算机程序产品,其效果可参考上述方法部分的效果,下面对此不再赘述。
第二方面,本申请提供一种MCU,MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,N个通道与N个触摸子按键一一对应,N为大于2的整数,MCU包括:
第一判断模块,用于根据N个通道上的当前电压,判断触摸按键当前是否存在按压操作。
第一确定模块,用于若触摸按键当前存在按压操作,则确定N个通道上的当前电压中的最大电压,并确定具有最大电压的第一通道。
第二确定模块,用于若第一通道具有两个与其相邻的第二通道和第三通道,则根据最大电压、第二通道上的当前电压、第三通道上的当前电压以及第一通道、第二通道和第三通道分别对应的触摸子按键的位置,确定触摸按键的按压位置。
第三方面,本申请提供一种MCU,MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,N个通道与N个触摸子按键一一对应,N为大于2的整数,MCU用于执行如第一方面或第一方面的可选方式所述的触摸事件侦测方法。
第四方面,本申请提供一种触控设备,包括:MCU和触摸按键,MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,N个通道与N个触摸子按键一一对应,N为大于2的整数,MCU用于执行如第一方面或第一方面的可选方式所述的触摸事件侦测方法。
第五方面,本申请提供一种可读存储介质,包括程序指令,当程序指令在计算机上运行时,使得计算机执行如第一方面或第一方面的可选方式所述的触摸事件侦测方法。
第六方面,本申请提供一种计算机程序产品,包括程序指令,该程序指令用于试下如第一方面或第一方面的可选方式所述的触摸事件侦测方法。
本申请提供一种触摸事件侦测方法、MCU、触控设备及存储介质。一方面,由于MCU在计算触摸按键的按压位置时,同时将第二通道、第三通道的位置和当前电压考虑在内,因此即使第二通道和第三通道的当前电压比较接近,也不会存在计算得到的触摸按键的按压位置与实际按压位置存在较大的偏差,以确保计算得到的按压位置的准确度。另一方面,MCU可以根据触摸按键上当前是否存在按压操作、之前是否存在有效按压操作、按压计数值和无按压计数值以及按压操作所在位置与有效按压操作所在位置之间的距离等,可以确定触摸按键上的动作,如单击、双击、滑动或者长按等,从而丰富了MCU的功能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为MCU和触摸按键的连接示意图;
图2为本申请一实施例提供的当手指靠近圆形式触摸按键时的电容变化示意图;
图3为本申请一实施例提供的当无手指靠近滑条式触摸按键时各个通道上的电压示意图;
图4为本申请一实施例提供的当手指靠近滑条式触摸按键时各个通道上的电压示意图;
图5为本申请一实施例提供的触摸事件侦测方法的流程图;
图6为本申请一实施例提供的滑条式触摸按键的示意图;
图7为本申请一实施例提供的圆形式触摸按键的示意图;
图8为本申请另一实施例提供的触摸事件侦测方法的流程图;
图9为本申请再一实施例提供的触摸事件侦测方法的流程图;
图10为本申请一实施例提供的一种MCU的示意图。
具体实施方式
目前触控设备中包括:MCU和触摸按键,其中MCU与触摸按键之间存在通道。图1为MCU和触摸按键的连接示意图,如图1所示,目前存在的典型触摸按键包括:按键式触摸按键、滑条式触摸按键和圆形式触摸按键,这些触摸按键下方均设置有触摸传感器,因此上述的触摸按键也可以被称为触摸感应电极,如图1中的按键0、1、2均为按键式触摸按键,按键3为圆形式触摸按键,按键4为滑条式触摸按键。其中,滑条式触摸按键由3个触摸子按键构成,圆形式触摸按键由4个触摸子按键构成,每个按键式触摸按键或者触摸子按键通过一个通道与MCU连接,例如:按键0、1、2分别通过通道0、1、2与MCU连接,按键3分别通过通道3、4、5、6与MCU连接,按键4分别通过通道7、8、9与MCU连接。
针对滑条式触摸按键、圆形式触摸按键等包括多个触摸子按键的情况,MCU检测触摸按键上是否存在手指按压情况的原理可以是:针对触摸按键中的任一个触摸子按键,MCU可以通过模数转换器(Analog-to-Digital Converter,ADC)采集该触摸子按键对应的通道上的电压。其中MCU可以获取当无手指按压在触摸子按键上时,触摸子按键对应的通道的基准电压Base,如基准电压为2048,该2048是根据ADC的精度归一化处理之后的数值。当有手指按压在该触摸子按键上时,人体与地会行成一个电容,这个电容与该触摸子按键串连在一起,从而导致触摸子按键的电容变大,进而导致相同时间内该触摸子按键上的电压变小,比如MCU采集到的电压Vout为1600左右,该1600同样是根据ADC的精度归一化处理之后的数值。MCU通过计算Delta=Base–Vout来确定是否有手指按压该触摸子按键上,例如:当Delta值大于200时认为有手指按压该触摸子按键。基于此,可以确定该触摸子按键所在的触摸按键上存在按压操作。
进一步地,当MCU确定触摸按键上存在按压操作,MCU还可以确定触摸按键上的按压位置。不同于按键式触摸检测,针对滑条式触摸按键和圆形式触摸按键的位置检测,不仅依赖于距离手指最近的按键(即中心按键)的电容值变化,还依赖于该通道的相邻通道的电容值变化。当手指逐渐接近触摸按键时,由于人体电场的影响会使中心按键的电容值发生变化,但由于滑条式触摸按键和圆形式触摸按键中触摸子按键排布紧凑,它们之间具有一定的耦合性,因此手指靠近中心按键时,中心按键的相邻按键的电容值也存在一定的变化。例如:图2为本申请一实施例提供的当手指靠近圆形式触摸按键时的电容变化示意图,如图2所示,圆形式触摸按键中的触摸子按键A和触摸子按键B的电容值都发生了变化,触摸子按键A相较于触摸子按键B的电容值变化较大。图3为本申请一实施例提供的当无手指靠近滑条式触摸按键时各个通道上的电压示意图,图4为本申请一实施例提供的当手指靠近滑条式触摸按键时各个通道上的电压示意图,结合图3和图4所示,当无手指靠近滑条式触摸按键时,通道CH1、CH2、CH3、CH4上的电压均相同,均为基准电压。当有手指靠近滑条式触摸按键中的触摸子按键2时,通道CH2的电压变化最大,与之相邻的触摸子按键1、3对应的通道CH1、CH3电压变化次之,距离CH2最远的CH4上的电压变化最小。
如上所述,现有技术中,MCU通过如下方式确定滑条式触摸按键或者圆形式触摸按键的按压位置:MCU确定N个通道上的当前电压中的最大电压对应的触摸子按键的位置,其次确定与最大电压对应的通道相邻的两个通道,在两个通道中确定电压值中的较大者,再对该较大值对应的触摸子按键的位置,以及,最大电压对应的触摸子按键的位置进行重心计算,以得到触摸按键的按压位置。然而,当上述两个通道的电压值中的较小者与较大值比较接近时,MCU得到的触摸按键的按压位置与实际按压位置存在较大的偏差,从而得到的按压位置的准确度较低。
为了解决上述技术问题,本申请提供一种触摸事件侦测方法、MCU、触控设备及存储介质。
图5为本申请一实施例提供的触摸事件侦测方法的流程图,该方法应用于MCU,MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,N个通道与N个触摸子按键一一对应,N为大于2的整数,如图1中的滑条式触摸按键由3个触摸子按键构成,圆形式触摸按键由4个触摸子按键构成,相应的,如图5所示,该方法包括如下步骤:
步骤S501:MCU根据N个通道上的当前电压,判断触摸按键当前是否存在按压操作。
步骤S502:若触摸按键当前存在按压操作,则MCU确定N个通道上的当前电压中的最大电压,并确定具有最大电压的第一通道。
步骤S503:若第一通道具有两个与其相邻的第二通道和第三通道,则MCU根据最大电压、第二通道上的当前电压、第三通道上的当前电压以及第一通道、第二通道和第三通道分别对应的触摸子按键的位置,确定触摸按键的按压位置。
如上所述,针对触摸按键中的任一个触摸子按键,MCU可以通过ADC采集该触摸子按键对应的通道上的电压,MCU可以获取当无手指按压在该触摸子按键上时,该触摸子按键对应的通道的基准电压Base。MCU还可以获取当有手指按压在该触摸子按键上时,该触摸子按键对应的通道的电压Vout。MCU通过计算Delta=Base–Vout来确定是否有手指按压该触摸子按键上,例如:当Delta值大于预设阈值200时认为有手指按压该触摸子按键,即上述触摸按键上存在按压操作。
下面分别以滑条式触摸按键、圆形式触摸按键为例,对上述的触摸事件侦测方法进行详细说明:
图6为本申请一实施例提供的滑条式触摸按键的示意图,如图6所示,该滑条式触摸按键包括N个触摸子按键,N为大于2的整数,假设N个触摸子按键的索引值分别为0,1,2……N-1,对应通道的索引值也为0,1,2……N-1,并假设N个触摸按键中触摸子按键0的位置为0,触摸子按键N-1的位置为255,且N个触摸子按键大小相同或相近,基于此,相邻两个触摸子按键的相对距离为255/(N-1)。需要说明的是,N个触摸子按键的位置表示方式不限于上述方式,比如:还可以假设N个触摸按键中触摸子按键0的位置为0,触摸子按键N-1的位置为1000,且N个触摸子按键大小相同或相近,基于此,相邻两个触摸子按键的相对距离为1000/(N-1)。本申请对此不做限制。假设MCU可以确定具有最大电压的第一通道的索引值x。
1、若0<x<N-1,即表示该第一通道存在两个相邻的通道,将这两个相邻的通道分别称为第二通道和第三通道,这种情况,通过如下方式确定触摸按键上的按压位置:MCU计算第一通道x上的电压data(x)、第二通道x-1上的电压data(x-1)、第三通道x+1上的电压data(x+1)之和,得到第一通道x、第二通道x-1和第三通道x+1上的电压和data(x-1)+data(x)+data(x+1),MCU分别计算最大电压、第二通道上的当前电压、第三通道上的当前电压与电压和的比值,以得到第一通道、第二通道、第三通道对应的权重,分别为:
最后MCU通过公式(1)可以确定触摸按键的按压位置:
即上述过程实际上是MCU采取的算数平均算法,来确定触摸按键的按压位置。此外,MCU还可以对第一通道、第二通道和第三通道上的当前电压采用几何平均算法或者调和平均算法等,以得到触摸按键的按压位置,本申请对如何确定触摸按键的位置不做限制。
2、若x=0,即表示该第一通道仅存在一个与其相邻的第三通道,这种情况,MCU通过公式(2)可以确定触摸按键的按压位置:
此外,MCU还可以对第一通道、第三通道上的当前电压采用几何平均算法或者调和平均算法等,以得到触摸按键的按压位置,本申请对如何确定触摸按键的位置不做限制。
3、若x=N-1,即表示该第一通道仅存在一个与其相邻的第二通道,这种情况,MCU通过公式(3)可以确定触摸按键的按压位置:
此外,MCU还可以对第一通道、第二通道上的当前电压采用几何平均算法或者调和平均算法等,以得到触摸按键的按压位置,本申请对如何确定触摸按键的位置不做限制。
图7为本申请一实施例提供的圆形式触摸按键的示意图,如图7所示,该圆形式触摸按键包括N个触摸子按键,N为大于2的整数,假设N个触摸子按键的索引值分别为0,1,2……N-1,对应通道的索引值也为0,1,2……N-1,并假设N个触摸按键中触摸子按键0的位置为0,触摸子按键N-1的位置为255,且N个触摸子按键大小相同或相近,基于此,相邻两个触摸子按键的相对距离为255/(N-1)。需要说明的是,N个触摸子按键的位置表示方式不限于上述方式,比如:还可以假设N个触摸按键中触摸子按键0的位置为0,触摸子按键N-1的位置为1000,且N个触摸子按键大小相同或相近,基于此,相邻两个触摸子按键的相对距离为1000/(N-1)。本申请对此不做限制。假设MCU可以确定具有最大电压的第一通道的索引值x。
圆形式触摸按键与滑条式触摸按键不同之处在于,对于任一个通道其均存在两个相邻的通道,将这两个相邻的通道分别称为第二通道和第三通道,这种情况,通过如下方式确定触摸按键上的按压位置:MCU计算第一通道x上的电压data(x)、第二通道x-1上的电压data(x-1)、第三通道x+1上的电压data(x+1)之和,得到第一通道x、第二通道x-1和第三通道x+1上的电压和data(x-1)+data(x)+data(x+1),MCU分别计算最大电压、第二通道上的当前电压、第三通道上的当前电压与电压和的比值,以得到第一通道、第二通道、第三通道对应的权重,分别为:
最后MCU通过公式(4)可以确定触摸按键的按压位置:
即上述过程实际上是MCU采取的算数平均算法,来确定触摸按键的按压位置。此外,MCU还可以对第一通道、第二通道和第三通道上的当前电压采用几何平均算法或者调和平均算法等,以得到触摸按键的按压位置,本申请对如何确定触摸按键的位置不做限制。
需要说明的是,上述第一通道、第二通道和第三通道上的当前电压可以是ADC直接采集到的电压,单位是伏特V,也可以是根据ADC的精度归一化处理之后的数值,该数值没有单位。
综上,本申请提供一种触摸事件侦测方法,其中,若触摸按键当前存在按压操作,则MCU确定N个通道上的当前电压中的最大电压,并确定具有最大电压的第一通道;若第一通道具有两个与其相邻的第二通道和第三通道,则MCU根据最大电压、第二通道上的当前电压、第三通道上的当前电压以及第一通道、第二通道和第三通道分别对应的触摸子按键的位置,确定触摸按键的按压位置。由于MCU在计算触摸按键的按压位置时,同时将第二通道、第三通道的位置和电压考虑在内,因此即使第二通道和第三通道的电压比较接近,也不会存在计算得到的触摸按键的按压位置与实际按压位置存在较大的偏差,以确保计算得到的按压位置的准确度。
本申请不仅提供了确定触摸按键的按压位置的技术方案,还提供了如何识别触摸按键上的动作事件的技术方案,具体如下:
图8为本申请另一实施例提供的触摸事件侦测方法的流程图,该方法应用于MCU,MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,N个通道与N个触摸子按键一一对应,N为大于2的整数,如图1中的滑条式触摸按键由3个触摸子按键构成,圆形式触摸按键由4个触摸子按键构成,相应的,如图8所示,该方法包括如下步骤:
步骤S801:MCU获取N个通道上的当前电压。
其中,MCU可以通过ADC采集N个通道上各自的电压。
步骤S802:MCU根据N个通道上的当前电压判断触摸按键当前是否存在按压操作。若触摸按键当前不存在按压操作,则执行步骤S803,若触摸按键当前存在按压操作,则执行步骤S806。
MCU根据N个通道上的当前电压判断触摸按键当前是否存在按压操作,可参考上一实施例中的内容,对此不再赘述。
步骤S803:MCU判断触摸按键之前是否存在有效按压操作,若存在有效按压操作,则执行步骤S804。若不存在有效按压操作,则继续执行步骤S801。
该有效按压操作是还未根据该按压操作确定所述触摸按键上的动作的按压操作,该动作包括以下任一项:单击、双击、长按、滑动。
步骤S804:MCU判断触摸按键的无按压计数值是否大于单击阈值。若无按压计数值大于单击阈值,则执行步骤S805,否则,继续执行步骤S801。
其中,无按压计数值是在有效按压操作至触摸按键的当前按压操作之间所统计的无按压次数。
步骤S805:MCU确定触摸按键存在单击动作。
步骤S806:MCU判断无按压计数值是否大于零。若无按压计数值大于零,则执行步骤S807;若无按压计数值等于零,则执行步骤S808。
步骤S807:MCU确定触摸按键存在双击动作。
步骤S808:MCU确定触摸按键的当前按压操作所在位置与有效按压操作所在位置之间的距离。
其中,MCU可以通过上述实施例提供的按压位置的确定方法,确定当前按压操作所在位置与有效按压操作所在位置。并根据距离计算公式确定两个位置之间的距离。
步骤S809:MCU判断距离是否超过第一距离阈值。若该距离未超过第一距离阈值,则执行步骤S810,若该距离超过第一距离阈值,则执行步骤S812。
其中,该第一距离阈值通常长按操作被允许的最大误差距离。
步骤S810:MCU判断触摸按键的按压计数值是否大于长按阈值,若该按压计数值超过长按阈值,则执行步骤S811。否则,则继续执行步骤S801。
按压计数值是在有效按压操作至触摸按键的当前按压操作之间所统计的按压次数。
步骤S811:MCU确定触摸按键存在长按动作。
步骤S812:MCU根据触摸按键的当前按压操作所在位置与有效按压操作所在位置确定触摸按键上的滑动方向。
假设滑条式触摸按键水平放置,以触摸按键的中心点为原点,x轴方向向右,y轴方向向上,这种情况下,当触摸按键的当前按压操作所在位置的x轴坐标减去有效按压操作所在位置x轴坐标大于0时,表示触摸按键上的滑动方向向右,触摸按键的当前按压操作所在位置的x轴坐标减去有效按压操作所在位置的x轴坐标小于0时,表示触摸按键上的滑动方向向左。
步骤S813:MCU判断滑动方向上的距离是否超过滑动阈值。若该距离超过了滑动阈值,则执行步骤S814。否则,则继续执行步骤S801。
其中,该滑动阈值大于上述的第一距离阈值。
步骤S814:MCU确定触摸按键存在滑动方向上的滑动动作。
需要说明的是,MCU可以设置一个变量click_coordinata(简称c_c),该click_coordinata被初始设置为无效,该click_coordinata可以用于判断触摸按键之前是否存在有效按压操作。
无按压计数值可以用no_touch_cycle(简称n_t_c)表示,该no_touch_cycle的初始值为0。
按压计数值可以用long_touch_cycle(简称l_t_c)表示,该long_touch_cycle的初始值为0。
基于此,上述的触摸事件侦测方法如下:图9为本申请再一实施例提供的触摸事件侦测方法的流程图,如图9所示,该方法包括如下步骤:
步骤S901:MCU获取N个通道上的当前电压。
步骤S902:MCU根据N个通道上的当前电压判断触摸按键当前是否存在按压操作。若触摸按键当前不存在按压操作,则执行步骤S903,若触摸按键当前存在按压操作,则执行步骤S907。
步骤S903:MCU判断c_c是否有效,若c_c有效,则执行步骤S904。否则,则继续执行步骤S901。
步骤S904:令n_t_c加一。
步骤S905:MCU判断n_t_c是否大于单击阈值。若n_t_c大于单击阈值,则执行步骤S906,否则,继续执行步骤S901。
步骤S906:MCU确定触摸按键存在单击动作。
步骤S907:MCU判断无按压计数值是否大于零。若无按压计数值大于零,则执行步骤S908;若无按压计数值等于零,则执行步骤S909。
步骤S908:MCU确定触摸按键存在双击动作。
步骤S909:MCU设置c_c为有效。
步骤S910:MCU确定触摸按键的当前按压操作所在位置与有效按压操作所在位置之间的距离。
步骤S911:MCU判断距离是否超过第一距离阈值。若该距离未超过第一距离阈值,则执行步骤S912,若该距离超过第一距离阈值,则执行步骤S915。
其中,该第一距离阈值通常长按操作被允许的最大误差距离。
步骤S912:令l_t_c加一。
步骤S913:MCU判断触摸按键的l_t_c是否大于长按阈值,若该l_t_c超过长按阈值,则执行步骤S914。否则,则继续执行步骤S901。
步骤S914:MCU确定触摸按键存在长按动作。
步骤S915:MCU根据触摸按键的当前按压操作所在位置与有效按压操作所在位置确定触摸按键上的滑动方向。
步骤S916:MCU判断滑动方向上的距离是否超过滑动阈值。若该距离超过了滑动阈值,则执行步骤S917。否则,则继续执行步骤S901。
步骤S917:MCU确定触摸按键存在滑动方向上的滑动动作。
需要说明的是,图8和图9对应实施例还适用于按键式按键,不同的是,按键式按键上的动作通常为单击、双击或者长按,不存在滑动动作。其原理可参考图8和图9对应实施例,本申请对此不再赘述。
综上,本申请提供一种触摸事件侦测方法,MCU可以根据触摸按键上当前是否存在按压操作、之前是否存在有效按压操作、按压计数值和无按压计数值以及按压操作所在位置与有效按压操作所在位置之间的距离等,可以确定触摸按键上的动作,如单击、双击、滑动或者长按等,从而丰富了MCU的功能。
图10为本申请一实施例提供的一种MCU的示意图,MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,N个通道与N个触摸子按键一一对应,N为大于2的整数,如图10所示,MCU包括:
第一判断模块1001,用于根据N个通道上的当前电压,判断触摸按键当前是否存在按压操作。
第一确定模块1002,用于若触摸按键当前存在按压操作,则确定N个通道上的当前电压中的最大电压,并确定具有最大电压的第一通道。
第二确定模块1003,用于若第一通道具有两个与其相邻的第二通道和第三通道,则根据最大电压、第二通道上的当前电压、第三通道上的当前电压以及第一通道、第二通道和第三通道分别对应的触摸子按键的位置,确定触摸按键的按压位置。
可选的,第二确定模块1003具体用于:计算最大电压、第二通道上的当前电压、第三通道上的当前电压之和,得到第一通道、第二通道和第三通道上的当前电压和。分别计算最大电压、第二通道上的当前电压、第三通道上的当前电压与电压和的比值,以得到第一通道、第二通道、第三通道对应的权重。根据第一通道、第二通道、第三通道对应的权重,对第一通道、第二通道和第三通道分别对应的触摸子按键的位置进行加权平均,以得到触摸按键的按压位置。
可选的,MCU还包括:第二判断模块1004,用于若触摸按键当前不存在按压操作,则判断触摸按键之前是否存在有效按压操作,有效按压操作是还未根据该按压操作确定该触摸按键上的动作的按压操作,该动作包括以下任一项:单击、双击、长按、滑动。
第三判断模块1005,用于若触摸按键之前存在有效按压操作,则判断触摸按键的无按压计数值是否大于单击阈值,无按压计数值是在有效按压操作至触摸按键的当前按压操作之间所统计的无按压次数。
第三确定模块1006,用于若无按压计数值大于单击阈值,则确定触摸按键存在单击动作。
可选的,MCU还包括:第四判断模块1007,用于若触摸按键当前存在按压操作,则判断无按压计数值是否大于零。
第四确定模块1008,用于若无按压计数值大于零,则确定触摸按键存在双击动作。
可选的,MCU还包括:第五判断模块1009,用于若无按压计数值等于零,则确定触摸按键的当前按压操作所在位置与有效按压操作所在位置之间的距离,并判断距离是否超过第一距离阈值。
第六判断模块1010,用于若距离未超过第一距离阈值,则判断触摸按键的按压计数值是否大于长按阈值,按压计数值是在有效按压操作至触摸按键的当前按压操作之间所统计的按压次数。
第五确定模块1011,用于若按压计数值大于长按阈值,则确定触摸按键存在长按动作。
可选的,MCU还包括:第七判断模块1012,用于若距离超过第一距离阈值,则根据触摸按键的当前按压操作所在位置与有效按压操作所在位置确定触摸按键上的滑动方向,并判断滑动方向上的距离是否超过滑动阈值。
第六确定模块1013,用于若滑动方向上的距离超过滑动阈值,则确定触摸按键存在滑动方向上的滑动动作。
可选的,第一判断模块1001具体用于:若N个通道上的任一个通道的当前电压满足预设条件,则确定触摸按键当前存在按压操作;若N个通道上的所有通道的当前电压均不满足预设条件,则确定触摸按键当前不存在按压操作;其中,任一个通道的当前电压满足预设条件包括:任一个通道的基准电压与当前电压的差值大于预设阈值,任一个通道的基准电压为当任一个通道对应的触摸子按键上不存在按压操作时,任一个通道上的电压。
本申请还提供一种MCU,该MCU用于执行上述的触摸事件侦测方法,其内容和效果可参考方法实施例部分,对此不再赘述。
本申请还提供一种MCU,该MCU用于执行上述的触摸事件侦测方法,其内容和效果可参考方法实施例部分,对此不再赘述。
本申请还提供一种触控设备,包括:MCU和触摸按键,MCU通过N个通道与触摸按键连接,触摸按键包括:N个触摸子按键,N个通道与N个触摸子按键一一对应,N为大于2的整数。上述MCU用于执行上述的触摸事件侦测方法,其内容和效果可参考方法实施例部分,对此不再赘述。
本申请还提供一种可读存储介质,包括程序指令,当该程序指令在计算机上运行时,使得计算机执行如上述的触摸事件侦测方法,其内容和效果可参考方法实施例部分,对此不再赘述。
本申请还提供一种计算机程序产品,包括程序指令,该程序指令用于执行如上述的触摸事件侦测方法,其内容和效果可参考方法实施例部分,对此不再赘述。
Claims (15)
1.一种触摸事件侦测方法,其特征在于,所述方法应用于微控制单元MCU,所述MCU通过N个通道与触摸按键连接,所述触摸按键包括:N个触摸子按键,所述N个通道与所述N个触摸子按键一一对应,N为大于2的整数,所述方法包括:
根据所述N个通道上的当前电压,判断所述触摸按键当前是否存在按压操作;
若所述触摸按键当前存在按压操作,则确定所述N个通道上的当前电压中的最大电压,并确定具有所述最大电压的第一通道;
若所述第一通道具有两个与其相邻的第二通道和第三通道,则根据所述最大电压、所述第二通道上的当前电压、所述第三通道上的当前电压以及所述第一通道、所述第二通道和所述第三通道分别对应的触摸子按键的位置,确定所述触摸按键的按压位置;
所述根据所述最大电压、所述第二通道上的当前电压、所述第三通道上的当前电压以及所述第一通道、所述第二通道和所述第三通道分别对应的触摸子按键的位置,确定所述触摸按键的按压位置,包括:
计算所述最大电压、所述第二通道上的当前电压、所述第三通道上的当前电压之和,得到所述第一通道、所述第二通道和所述第三通道上的当前电压和;
分别计算所述最大电压、所述第二通道上的当前电压、所述第三通道上的当前电压与所述电压和的比值,以得到所述第一通道、所述第二通道、所述第三通道对应的权重;
根据所述第一通道、所述第二通道、所述第三通道对应的权重,对所述第一通道、所述第二通道和所述第三通道分别对应的触摸子按键的位置进行加权平均,以得到所述触摸按键的按压位置。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述触摸按键当前不存在按压操作,则判断所述触摸按键之前是否存在有效按压操作;
若所述触摸按键之前存在有效按压操作,则判断所述触摸按键的无按压计数值是否大于单击阈值,所述无按压计数值是在所述有效按压操作至所述触摸按键的当前按压操作之间所统计的无按压次数;
若所述无按压计数值大于所述单击阈值,则确定所述触摸按键存在单击动作;
其中,所述有效按压操作是还未根据该按压操作确定所述触摸按键上的动作的按压操作,所述动作包括以下任一项:单击、双击、长按、滑动。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述触摸按键当前存在按压操作,则判断所述无按压计数值是否大于零;
若所述无按压计数值大于零,则确定所述触摸按键存在双击动作。
4.根据权利要求3所述的方法,其特征在于,还包括:
若所述无按压计数值等于零,则确定所述触摸按键的当前按压操作所在位置与所述有效按压操作所在位置之间的距离,并判断所述距离是否超过第一距离阈值;
若所述距离未超过所述第一距离阈值,则判断所述触摸按键的按压计数值是否大于长按阈值,所述按压计数值是在所述有效按压操作至所述触摸按键的当前按压操作之间所统计的按压次数;
若所述按压计数值大于所述长按阈值,则确定所述触摸按键存在长按动作。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述距离超过所述第一距离阈值,则根据所述触摸按键的当前按压操作所在位置与所述有效按压操作所在位置确定所述触摸按键上的滑动方向,并判断所述滑动方向上的所述距离是否超过滑动阈值;
若所述滑动方向上的所述距离超过所述滑动阈值,则确定所述触摸按键存在所述滑动方向上的滑动动作。
6.根据权利要求1所述的方法,其特征在于,所述根据所述N个通道上的当前电压,判断所述触摸按键当前是否存在按压操作,包括:
若所述N个通道上的任一个通道的当前电压满足预设条件,则确定所述触摸按键当前存在按压操作;
若所述N个通道上的所有通道的当前电压均不满足预设条件,则确定所述触摸按键当前不存在按压操作;
其中,所述任一个通道的当前电压满足预设条件包括:所述任一个通道的基准电压与当前电压的差值大于预设阈值,所述任一个通道的基准电压为当所述任一个通道对应的触摸子按键上不存在按压操作时,所述任一个通道上的电压。
7.一种MCU,其特征在于,所述MCU通过N个通道与触摸按键连接,所述触摸按键包括:N个触摸子按键,所述N个通道与所述N个触摸子按键一一对应,N为大于2的整数,所述MCU包括:
第一判断模块,用于根据所述N个通道上的当前电压,判断所述触摸按键当前是否存在按压操作;
第一确定模块,用于若所述触摸按键当前存在按压操作,则确定所述N个通道上的当前电压中的最大电压,并确定具有所述最大电压的第一通道;
第二确定模块,用于若所述第一通道具有两个与其相邻的第二通道和第三通道,则根据所述最大电压、所述第二通道上的当前电压、所述第三通道上的当前电压以及所述第一通道、所述第二通道和所述第三通道分别对应的触摸子按键的位置,确定所述触摸按键的按压位置;
所述第二确定模块具体用于:
计算所述最大电压、所述第二通道上的当前电压、所述第三通道上的当前电压之和,得到所述第一通道、所述第二通道和所述第三通道上的当前电压和;
分别计算所述最大电压、所述第二通道上的当前电压、所述第三通道上的当前电压与所述电压和的比值,以得到所述第一通道、所述第二通道、所述第三通道对应的权重;
根据所述第一通道、所述第二通道、所述第三通道对应的权重,对所述第一通道、所述第二通道和所述第三通道分别对应的触摸子按键的位置进行加权平均,以得到所述触摸按键的按压位置。
8.根据权利要求7所述的MCU,其特征在于,还包括:
第二判断模块,用于若所述触摸按键当前不存在按压操作,则判断所述触摸按键之前是否存在有效按压操作;
第三判断模块,用于若所述触摸按键之前存在有效按压操作,则判断所述触摸按键的无按压计数值是否大于单击阈值,所述无按压计数值是在所述有效按压操作至所述触摸按键的当前按压操作之间所统计的无按压次数;
第三确定模块,用于若所述无按压计数值大于所述单击阈值,则确定所述触摸按键存在单击动作;
其中,所述有效按压操作是还未根据该按压操作确定所述触摸按键上的动作的按压操作,所述动作包括以下任一项:单击、双击、长按、滑动。
9.根据权利要求8所述的MCU,其特征在于,还包括:
第四判断模块,用于若所述触摸按键当前存在按压操作,则判断所述无按压计数值是否大于零;
第四确定模块,用于若所述无按压计数值大于零,则确定所述触摸按键存在双击动作。
10.根据权利要求9所述的MCU,其特征在于,还包括:
第五判断模块,用于若所述无按压计数值等于零,则确定所述触摸按键的当前按压操作所在位置与所述有效按压操作所在位置之间的距离,并判断所述距离是否超过第一距离阈值;
第六判断模块,用于若所述距离未超过所述第一距离阈值,则判断所述触摸按键的按压计数值是否大于长按阈值,所述按压计数值是在所述有效按压操作至所述触摸按键的当前按压操作之间所统计的按压次数;
第五确定模块,用于若所述按压计数值大于所述长按阈值,则确定所述触摸按键存在长按动作。
11.根据权利要求10所述的MCU,其特征在于,还包括:
第七判断模块,用于若所述距离超过所述第一距离阈值,则根据所述触摸按键的当前按压操作所在位置与所述有效按压操作所在位置确定所述触摸按键上的滑动方向,并判断所述滑动方向上的所述距离是否超过滑动阈值;
第六确定模块,用于若所述滑动方向上的所述距离超过所述滑动阈值,则确定所述触摸按键存在所述滑动方向上的滑动动作。
12.根据权利要求7所述的MCU,其特征在于,所述第一判断模块具体用于:
若所述N个通道上的任一个通道的当前电压满足预设条件,则确定所述触摸按键当前存在按压操作;
若所述N个通道上的所有通道的当前电压均不满足预设条件,则确定所述触摸按键当前不存在按压操作;
其中,所述任一个通道的当前电压满足预设条件包括:所述任一个通道的基准电压与当前电压的差值大于预设阈值,所述任一个通道的基准电压为当所述任一个通道对应的触摸子按键上不存在按压操作时,所述任一个通道上的电压。
13.一种MCU,其特征在于,所述MCU通过N个通道与触摸按键连接,所述触摸按键包括:N个触摸子按键,所述N个通道与所述N个触摸子按键一一对应,N为大于2的整数,所述MCU用于执行如权利要求1-6任一项所述的触摸事件侦测方法。
14.一种触控设备,其特征在于,包括:MCU和触摸按键,所述MCU通过N个通道与触摸按键连接,所述触摸按键包括:N个触摸子按键,所述N个通道与所述N个触摸子按键一一对应,N为大于2的整数,所述MCU用于执行如权利要求1-6任一项所述的触摸事件侦测方法。
15.一种可读存储介质,其特征在于,包括程序指令,当所述程序指令在计算机上运行时,使得所述计算机执行如权利要求1-6任一项所述的触摸事件侦测方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/114397 WO2021081817A1 (zh) | 2019-10-30 | 2019-10-30 | 触摸事件侦测方法、mcu、触控设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113168258A CN113168258A (zh) | 2021-07-23 |
CN113168258B true CN113168258B (zh) | 2022-09-20 |
Family
ID=75715690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980002387.5A Active CN113168258B (zh) | 2019-10-30 | 2019-10-30 | 触摸事件侦测方法、mcu、触控设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113168258B (zh) |
WO (1) | WO2021081817A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113437960A (zh) * | 2021-08-13 | 2021-09-24 | 四川中微芯成科技有限公司 | 一种电容式触摸按键实现环形触摸的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495681A (zh) * | 2011-11-23 | 2012-06-13 | 江苏惠通集团有限责任公司 | 具有触摸按键的控制设备 |
CN103607187A (zh) * | 2013-11-12 | 2014-02-26 | 青岛歌尔声学科技有限公司 | 一种检测电容触摸按键是否被触发的方法和装置 |
CN107294522A (zh) * | 2017-07-05 | 2017-10-24 | 广东欧珀移动通信有限公司 | 基于触摸按键的响应方法、装置、存储介质及电子设备 |
CN109039320A (zh) * | 2018-08-15 | 2018-12-18 | 深圳市麦道微电子技术有限公司 | 一种可以满足复杂工况的高可靠的电容式触摸按键 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201163764Y (zh) * | 2008-01-31 | 2008-12-10 | 杭州利尔达科技有限公司 | 基于mcu的电容感应式触摸按键 |
CN101853102B (zh) * | 2010-06-01 | 2012-05-09 | 深圳市汇顶科技有限公司 | 一种触控设备配置参数的自动生成方法、系统 |
CN102162184B (zh) * | 2011-04-19 | 2016-06-01 | 佛山市顺德海尔电器有限公司 | 一种洗衣机触摸控制方法 |
EP3035173B1 (en) * | 2014-12-15 | 2018-02-07 | Nxp B.V. | User interface unit, electronic device and manufactoring method |
CN107193479B (zh) * | 2017-05-26 | 2018-07-10 | 网易(杭州)网络有限公司 | 信息处理方法、装置、电子设备及存储介质 |
-
2019
- 2019-10-30 WO PCT/CN2019/114397 patent/WO2021081817A1/zh active Application Filing
- 2019-10-30 CN CN201980002387.5A patent/CN113168258B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495681A (zh) * | 2011-11-23 | 2012-06-13 | 江苏惠通集团有限责任公司 | 具有触摸按键的控制设备 |
CN103607187A (zh) * | 2013-11-12 | 2014-02-26 | 青岛歌尔声学科技有限公司 | 一种检测电容触摸按键是否被触发的方法和装置 |
CN107294522A (zh) * | 2017-07-05 | 2017-10-24 | 广东欧珀移动通信有限公司 | 基于触摸按键的响应方法、装置、存储介质及电子设备 |
CN109039320A (zh) * | 2018-08-15 | 2018-12-18 | 深圳市麦道微电子技术有限公司 | 一种可以满足复杂工况的高可靠的电容式触摸按键 |
Also Published As
Publication number | Publication date |
---|---|
CN113168258A (zh) | 2021-07-23 |
WO2021081817A1 (zh) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI605359B (zh) | 觸控板之手勢辨識方法與手勢辨識裝置 | |
JP5507771B2 (ja) | ユーザインタフェースを介する不満の定量化 | |
US8013842B2 (en) | Method for gesture detection on a capacitive touchpad | |
CN105159556A (zh) | 一种界面操作方法及电子终端 | |
CN104932828A (zh) | 一种信息处理方法及电子设备 | |
CN113168258B (zh) | 触摸事件侦测方法、mcu、触控设备及存储介质 | |
US9262009B2 (en) | Touch device and method for detecting touch point thereof | |
CN105677220A (zh) | 一种信息处理方法及电子设备 | |
CN105022561A (zh) | 触摸屏控制装置、方法和移动终端 | |
WO2021081738A1 (zh) | 滑动信号的识别方法、mcu、触控设备及存储介质 | |
CN104076962A (zh) | 一种触摸输入装置的状态控制方法及装置 | |
CN107577404B (zh) | 信息处理方法、装置和电子设备 | |
CN104951234A (zh) | 一种基于触屏终端的数据处理方法及系统 | |
CN103370680A (zh) | 触摸输入装置、电子设备以及输入方法 | |
CN103176723B (zh) | 一种触摸响应的处理方法及装置 | |
CN102214028B (zh) | 触控板的手势识别方法与手势识别装置 | |
CN104951135B (zh) | 一种信息处理装置及方法 | |
CN101799728B (zh) | 触碰感测装置及方法 | |
JP2011095900A (ja) | 情報処理装置、及び情報処理方法 | |
US20200050314A1 (en) | Touch sensing method, electronic device and non-transitory computer readable recording medium device | |
CN106033700A (zh) | 按键、耳机、电子设备、信息处理方法和装置 | |
CN201583916U (zh) | 触控模块 | |
CN110941339B (zh) | 一种手势感应方法及电子设备、存储介质 | |
CN104423657A (zh) | 信息处理的方法及电子设备 | |
CN106598364A (zh) | 压力侦测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |