互电容触控坐标精确处理和上报算法
2016-11-01张倩洋张钊锋李宝骐
张倩洋,张钊锋,李宝骐
(1.中国科学院 上海高等研究院,上海 201210;2.中国科学院大学,北京 100049;3.上海磐启微电子有限公司,上海 201210)
互电容触控坐标精确处理和上报算法
张倩洋1,2,张钊锋1,李宝骐3
(1.中国科学院 上海高等研究院,上海 201210;2.中国科学院大学,北京 100049;3.上海磐启微电子有限公司,上海 201210)
在触控屏上用手指或触控笔划动时,由于手抖、噪声及不稳定的感应信号,触控轨迹会产生不期望的震荡,呈现出锯齿波和曲线断点,导致用户体验很差。针对此问题,提出了一种基于互电容的触控坐标精确上报的处理算法。通过微控制器对触控坐标原始数据的处理,找到触发时电容信号的相对变化峰值及高于阈值门限的等高线轮廓,再通过轮廓插值得到不规则多边形,利用其顶点的凹凸性区分两个或多个触控点,并计算多边形的质心,确定划线标识,再通过线性二次指数平滑滤波后,实现了坐标数据的精确上报。滤波后的坐标轨迹视觉上更加平滑,结果表明该算法能消除曲线边缘的锯齿波及曲线断点,成功地处理触控信息。
互电容;触控坐标;阈值门限;指数平滑滤波
随着电子触控的兴起,触控屏在电子产品中得到广泛应用,极大地提升了人机间交互。其中电容式触控屏具有多感应触控、鲁棒性好的优点,被广泛采用[1]。然而,当触控单元在触控屏上移动时,会存在手抖、噪声及不稳定的电容感应信号的干扰,从而出现触控屏上的曲线不平滑、触控位置精度下降、曲线边缘出现锯齿波、像素点偏移和曲线断点等问题。目前已经有相关研究尝试解决这类问题[2-5]。
毛建平提出了一种触控屏坐标去抖动方法,但该方法某些情况延迟过大[2];Wen-Chung Kao等人提出的插值像素法过于复杂,成本过高[3];Chih-Lung Lin等人利用了峰值校准使得电容触控板不需要电源,但需要额外PC及USB接口的辅助[4]。莫良华等提出了一种提高边缘感应触摸精度的电容式触控屏及其数据处理方法,提高了边缘灵敏度,但仍存在一定的误差[5]。
1 触控控制芯片工作原理
触摸屏控制芯片将触控电信号转化为精确的坐标数据上报给触摸控制设备的上层处理系统,如图1所示。
图1 触控屏控制芯片工作原理示意图
屏电容分为多个小单元,当手或者触控笔触摸时,会导致触控点电容微弱的变化,这种微弱的变动经过开关电容模块进行转换放大之后,变成模拟电压,由于屏电容数量很大,设计采用轮流扫描的方式,依次将多个屏电容的大小转化成模拟电压。
开关电容模块的开关由数字电路控制,遵循精确的时序,经过一系列步骤之后得到反映触摸屏电容大小的电压信号,模数转换器在恰当的时机开始运作,采样模拟信号转化为数字信号。
数字信号处理(DSP)部分包括对模数转换器的数据进行预处理,包括抗混叠低通滤波器,去除高频分量,为后续的数据处理打下良好基础。当整个屏幕电容全部扫描结束并且数字信号处理完成后,每个屏电容即得到一个反映该电容大小的数据。
微控制器(MCU)获取反映电容大小的原始数据后,对原始数据进行处理,使得划线避免抖动、断线等情况,判断出精确的触控坐标点,以获得更好的用户体验,并将此坐标上报给上层处理系统,上层处理系统会根据上报过来的一连串坐标数据进行判定触控的手势。
2 触控识别
触控识别的实现基于原始数据,触控芯片的硬件部分会将整个屏的不同单元经过ADC采样和数字滤波器的处理最终送给微控制器,这些数据反映了当前触控屏的电容变化。
根据DSP上报的原始数据,软件首先找到电容相对变化的最大值,以最大值为中心形成一个相对较大值区域,将这个不规则区域进行数学转换,转换成对应的多边形进行图像处理,然后对多边形进行滤波,进而对多边形求中心,具体流程如图2所示。
图2 触控识别流程图
2.1预处理
通常,在接通稳压输入电源后,驱动通道和感应通道之间的n×n的互电容分布均匀稳定,没有明显的异常变化,当一个触控传感器单元被触摸到时,每一帧扫描到的在驱动通道和感应通道之间的的互电容分布就会发生变化,触摸点附近的电容值会迅速增大,电容值的相对变化量反映了此时触摸点的触控强度。也即需要先对上报的原始数据做预处理,触摸前后的电容值的差值即为当前电容相对变化量(没有被触摸到的区域会出现一个在0附近小范围波动的数据,波动是自然的,因为触控屏的外在环境,芯片参数等都在小范围内波动)。
2.2确定触控峰值及峰值域
对于一个精确的触控帧,需要找到这一帧的触控峰值,也即触控强度最大的触控单元(标红的方形),这个触控单元标明该点发生了触控。
当单点触控时,只有一个峰值,最大值即相对峰值。当多点触控时,会有多个峰值,如果在这一帧中重复该过程,第二次查找峰值时会出现峰值查重现象(找到和第一次相同的峰值),或者找到的是首次峰值域里的某个值,致使后续流程不加分辨进行处理而浪费了资源。解决的方法是对已经查找过的最大触控单元做标记,并且对其峰值域内的其他单元也做上标记,避免了对同一个触控点做多次处理。
当检测到最大值后,需要同步地大致检测出触摸的一块区域的轮廓。事实上,触控屏电容的个数是有限的,如果仅仅将最大值,即屏电容的位置中心坐标上报给上层系统,触控屏显示出的坐标分辨率是非常差的,无法精确触控。当屏电容有触控感应时,触摸点附近的屏电容值会随之增大,并产生一个或多个峰值,在三维空间视角中,会呈现出一个或多个山丘状,它反映了这一帧的触控强度,山丘的等强度线类似于等高线,可正可负。系统根据电容相对变化量,设置一个阈值门限,然后找到峰值域。
这里,阈值门限是动态变化的,初始电容阈值是前20帧(没有触摸感应)的电容平均值,而后的门限值则不低于前5帧的阈值平均值,同时不能低于当前帧触控峰值的0.3倍(实验经验所得),因为如果阈值门限设置得太低会引入不必要的噪声干扰,影响峰值域的选取。
以峰值为中心,根据阈值门限,环绕着峰值一圈找到高于门限值的屏电容单元,得到一块峰值域,以此避免了贯穿遍历一帧数据的时间和资源浪费。如若将峰值域的中心坐标上报上层系统,分辨率会明显高于仅仅上报峰值单元中心坐标。但仍然存在一个问题,在峰值域内,每个屏电容单元的电容变化值均不同,仅仅计算峰值域中心坐标只是一个近似估计,精度仍需进一步提高。图3显示了找到电容变化峰值及生成触控等高线轮廓的三维图。
图3 找电容变化峰值,并生成峰值域后的三维图
2.3轮廓插值
在阈值门限的平面,沿着高于轮廓阈值门限的屏电容单元环绕一周可以构成一个迷宫,如果沿着左手方向一直向前走,可以从起点回到终点,如图4所示。在迷宫外,找到一个低于阈值门限的电容单元,可以在这个单元和与它邻近的高于阈值的单元中间插入一个和阈值一样大的点。不断重复这一操作,可以得到一条封闭的和阈值大小相等的轮廓曲线,如图5所示。
图4 高于阈值的轮廓
图5 轮廓插值曲线
2.4轮廓曲线凹凸性判定
上一步得到的触控轮廓曲线是一个不规则的平面多边形,需要判定该区域内包含了一个还是两个或者多个触摸点。一个同时包含两个触控点的轮廓形状类似“花生”,在观察轮廓凹陷程度的同时,还需判定凹点的方向。在一个“花生”中,凹点一般凹陷的很深,并且倾向于两端互指。凹凸顶点判定图见图6。
图6 凹凸顶点判定图
凹陷程度的判定基于叉乘积[6],具体推导与操作如下:顺序给出3个平面点P1(x1,y1),P2(x2,y2),P3(x3,y3),当以空间坐标表示这3个点时,并以垂直纸面向外为Z坐标轴指向,坐标重新表示为P1(x1,y1,0),P2(x2,y2,0),P3(x3,y3,0)
(1)
(2)
(x2-x3)(y1-y3))=(0,0,S)
(3)
根据叉乘的右手法则,对于P2凸点和凹点两种情形,叉乘积向量所指方向刚好相反,进一步可得出结论:当P2凸点时,S>0;当P2凹点时,S<0。
在标准化向量数学中,方向是两条线段的矢量和。可根据相互间的凹陷程度、方向及距离,给每一对顶点分等级。一个高等级的凹陷程度和对等点意味着检测到一个“花生”,并且确定多指触摸的间断点(见图7)。
2.5计算轮廓质心
有了代表手指触摸(轮廓的一半)的多边形,还需进一步确定触摸的位置和大小。本文采用质心的方法,把触控区域的几何中心估计为它的位置。先把多边形划分成很多个三角形,然后一步步计算三角形的平衡点,首先在触控区域内随意选择一个点,将该点与轮廓的某条线段的两个顶点相连,这样就由随意点确定了一个三角形,该点的力矩M△就等于这个三角形的面积SΔ与到三角形中心的向量V△的乘积,即
MΔ=SΔ×VΔ
(4)
三角形面积的总和即触控总面积,力矩的矢量和也即整个多边形的力矩。由于力矩是面积乘以到中心点位置的向量,所以力矩M多除以面积S多即为关于该触控点的触控多边形中心的位置向量V多
M多/S多=V多
(5)
图7 用轮廓线段的凹凸性分离两个触摸点
多边形质心计算矢量示意图如图8所示。
图8 多边形质心计算矢量示意图
2.6划线标识判定
对于持续移动的多点触控,需要判定其划线标识,将之前的触控点和现在的触控点进行匹配,使得上报的划线标识保持一致。通常采用的最近距离匹配法会出现一定程度的误判。用速度计算一个期望的位置会更好。本文采用关联性来调节触控信号。首先,做时间滤波,即计算过去的3个触控位置的平均值。其次,考虑触控强度滞后效应,需要设置触控悬停时间门限,它与触控强度和时间成正相关。当悬停释放,初始划线标识不再追踪,悬停触控和触控释放均不再上报为触控,而弱触控表现为在一个很长的延迟后上报一个触摸点,中等触控表现为在一个短暂的延迟后上报一个触摸点,强触控则及时地上报触摸点。
3 触控坐标滤波
经过以上步骤计算出来的坐标仍然是一个相对粗糙的坐标信息,真正给用户上报的坐标信息还需做进
一步相应的滤波处理。本文采用线性二次指数平滑法[7]对坐标数据进行滤波。
设t时刻的横坐标数据为xt(纵坐标同理),则有
(6)
(7)
由式(5)和(6)可得
(8)
(9)
Ft+m=at+btm
(10)
式中:Ft+m为下一m期预测值,m为预测超前期数。
图9展示了采用线性二次指数平滑滤波前后的坐标轨迹对比效果图,很显然,滤波后获得了更好的平滑度。
图9 采用指数平滑滤波的坐标轨迹前后对比图
4 生成显示坐标并上报
将计算出的坐标数据及其对应的划线标识,统一上报给上层系统,具体实现过程如图10所示。
图10 生成显示坐标及上报数据过程
5 结论
本文提出了一种基于互电容的平滑处理触控坐标在触控屏上的移动感应轨迹的新方法。相比原始输入的移动触控轨迹,采用触控识别算法,通过MCU对触控坐标原始数据的处理,实现坐标去抖,再通过指数平滑滤波后的触控轨迹更加平滑,能有效地在触控屏上显示坐标信息并上报给上层处理系统。
[1]HOTK,LEECY,TSENGMC,etal.Simplesingle-layermulti-touchprojectedcapacitivetouchpanel[J].SIDsymposiumdigestoftechnicalpapers,2009,40(1):447-450.
[2]毛建平.触控屏坐标去抖动方法、系统及触控屏终端:103412698A[P]. 2013-07-30.[3]KAO W C,KANG Y C,LIU C H,et al. Hardware engine for real-time pen tracking on electrophoretic displays[J]. Journal of display technology,2013,9(3):139-145.
[4]LIN C L,LI C S,CHANG Y M,et al. 3D stylus and pressure sensing system for capacitive touch panel[C]//2012 IEEE International Conference on Consumer Electronics (ICCE). Las Vegas,NV:IEEE,2012:215-216.
[5]莫良华,张靖恺,彭玲. 提高边缘感应触摸精度的电容式触摸屏及其数据处理方法: CN101882041A[P].2010-03-12.
[6]赵军,张桂梅,曲仕茹. 利用极点顺序的多边形顶点凹凸性判别算法[J].工程图学学报,2007,28(1):55-59.
[7]黎锁平,刘坤会. 平滑系数自适应的二次指数平滑模型及其应用[J].系统工程理论与实践,2004,24(2):94-99.
责任编辑:许盈
Accurate touch coordinates processing and reporting algorithm based on mutual capacitance
ZHANG Qianyang1,2, ZHANG Zhaofeng1, LI Baoqi3
(1.ShanghaiAdvancedResearchInstitute,ChineseAcademyofSciences,Shanghai201210,China; 2.ChinaUniversityofChineseAcademyofSciences,Beijing100049,China; 3.ShanghaiPanchipMicroElectronicsCo.,Ltd.,Shanghai201210,China)
A novel approach to accurately process and report touch coordinates is presented based on mutual capacitance. Unwanted oscillations appeares as zigzag output and curve breakpoints which can be apparently seen are caused by hand shake, noise and unstable sense signals when drawing and writing on a touch screen, which leads to poor user experience. The drawn trajectory needs to be improved for better visual display effect. Thus, touch recognition algorithm is utilized in this paper, the raw data of the touch coordinates is processed through the micro-controller. First, the maximum value of the relative change of the capacitance signal is found and stored when touching. Then, the edge of contour which is higher than threshold can be interpolated, getting an irregular polygon. Besides, discrimination of two or more touch points can be implemented by judging the bump sex of polygon vertices. After polygon centroid is calculated and touch id is determined, the final coordinates are given and reported to the upper host with linear quadratic exponential smooth filtering. The displayed track is visually smoothed, showing the proposed algorithm can successfully handle the touch information and turn the zigzag waves with breakpoints to smoothed curves.
mutual capacitance; touch coordinates; contour threshold; exponential smooth filtering
TN409
ADOI:10.16280/j.videoe.2016.10.011
2016-04-02
文献引用格式:张倩洋,张钊锋,李宝骐. 互电容触控坐标精确处理和上报算法[J].电视技术,2016,40(10):50-54.
ZHANG Q Y,ZHANG Z F,LI B Q. Accurate touch coordinates processing and reporting algorithm based on mutual capacitance[J].Video engineering,2016,40(10):50-54.