侵权投诉
搜索
更多>> 热门搜索:
订阅
纠错
加入自媒体

电阻触摸屏多点触控算法的研究与实现

2015-11-19 11:03
野明月
关注

  摘 要:触摸屏作为一种人机交互界面,已大量取代了以往的键盘、鼠标等人机沟通方式。电阻式触摸屏以其低廉的价格,稳定的性质更成为主打选择的触摸屏之一。在日常应用中,经常需要同时对多点进行操作。然而,触摸屏的触摸点之间会互相影响,而得出错误的触摸点坐标。本文优化了两点触摸的判断算法,实现了多点触控的正确识别和定位处理。经试验验证表明可以实现图像的放大、缩小、旋转等功能。

  多点触控,是指能同时正确识别和定位两个或两个以上的触摸操作,能够独立判断每个触摸点的操作意义,并实现相应功能的技术。这是一种摆脱了传统的输入设备,简单而方便的人机交互操作模式。多点触控技术目前有两种[1]:多点触控手势识别和多点触控位置识别。

  目前市面上出现较多的方式是多点触控手势识别。手指同时触摸屏幕多点时,能够识别每个手指移动的方向,能够进行旋转、缩放、平移等操作,但还不能够判断出每个手指的具体位置。但两点触摸甚至多点触摸时,X、Y 轴上会产生多个最大值,此时系统无法判断触摸点的准确位置。通常把并不是真正触摸的点叫做“鬼点”。

  多点触控位置识别才是真正意义上的多点触控技术,可以识别到触摸点的具体位置,没有“鬼点”的现象。这种触控技术基于互电容检测方式,通过行列交叉处耦合电容Cm 的变化判断触摸点。手指触摸时行列之间的互电容减小,可以判断触摸点存在,并且准确判断每一个触摸点位置。

  1 电阻式触摸屏多点触摸技术

  实现两点触摸,每个工作单元必须彼此独立,并且触摸点只能在同一个工作单元中。图1 给出了电阻式触摸屏实现多点触摸的方法:在X1 电极上加上电压,由Y1,Y2,Y3 电极读取A、B、C 触摸单元所检测到的X 坐标;在以后的各个始终周期依次读取X2,X3 的坐标。获得所有触摸单元的X 坐标后,再依次给Y 电极加上电压,以获得各个触摸单元的Y 坐标,从而实现两点触摸。

电阻触摸屏多点触控算法的研究与实现

  图1 电阻式触摸屏多点触摸的方法

  2 两点触摸判断算法实现

  2.1剔除非触摸点

  当触摸屏表面有触摸点时,上层的ITO 导电层向下凹陷,发生形变,并接触到下层的ITO,接触点的两层ITO 导电层之间存在一个电阻,当触摸的压力越大时,之间的电阻阻值就越小。通过计算相应阻值,可以得到触摸位置,但是想要正确识别出两点触摸的位置,就必须先剔除非触摸点。所谓非触摸点,就是指没有意愿的接触点。这些触摸点是随机的,而且是非有效触摸。比如,触摸力度较轻时,触摸屏ITO 导电层的电阻处在接通与未接通的临界点,类似这样的触摸点就是非触摸点。这在没有意志支配的情况下产生的接触点,对整个检测没有意义的,所以必须将它们剔除。

  考虑到非触摸点的随机性,两次测量的方法可将其剔除。若第一次测量的结果是有效值,但第二次测量的结果超出了整个触摸屏的阻值所规定的范围,是一个很大的值,则视其为无效值,该点即为非接触点,必将其剔除。反之,如果第二次测量的结果在整个触摸屏的阻值所规定的范围内,则视其为有效值,是有效的触摸点。

  2.2 接触电阻的改进

  触摸屏幕的压力大小不同,ITO 导电层的电阻值也不同,也就是说轻触或重触触摸屏,产生的电阻是不同的。控制芯片可以测试出接触电阻的阻值大小,但是没法分辨出是轻触,还是重触,这只会影响判断触摸点的准确性,从而会影响整个触摸屏的可靠性。下图是图2是轻触的示意图。

电阻触摸屏多点触控算法的研究与实现

  图2 触摸屏轻触示意图

  在现阶段的方案中, 接触电阻和压力成为影响触点坐标准确性的重要因素。如果接触电阻不大于方阻,不会影响坐标显示的准确性;如果大于方阻,就会出现跳跃点。比如,轻触触摸屏上的某一点,会造成电路接通不完全,对整个电路来说,它表现为测量电阻大,测得的值比实际值要大,那么它的坐标将会向后跳跃。与其相反的,如果是用力的重触触摸屏上的某一点时,坐标会前移。由此可见轻触或重触对接触电阻的测量值影响很大,接触电阻和压力成反比。

  查阅过一些四线电阻式触摸屏的技术手册后发现:他们通常使用接触电阻小于2kΩ 这个测试条件,来测试最小压力这个参数。在正常力度的压力下, 一般接触电阻为2kΩ;如果压力更小, 接触电阻则会大于2kΩ。由此可见,实际测量结果与所施加的压力存在动态变化,如果加在同一点上的力量是变化的,那么测量出的坐标点就是不确定的,所以这种测量方法仍然必须改进。

  在此,分解一次完整的触摸过程:(1) 手指接触到触摸屏表面,(2)手指对触摸屏逐步增加压力,(3) 压力保持,(4) 抬起手指,(5) 手指的压力逐步减小,(6) 手指离开触摸屏,整个触摸过程完成。分解过程之后可以发现,在这个过程中,手指对屏幕的压力并不是一个恒定不变的量。所以,细分整个过程,把不同时期得到的压力和接触电阻全部采样,然后求取平均值,那么这个值将更加接近实际数据,这就是用求平均值的最根本原因。用求平均值的方法可以模拟整个触摸过程,从而排除掉前期接触、后期接触或者中间接触时压力不稳等情况。

  这个改进用一个循环来实现,多次执行读取采样函数,然后求平均值。由于A/D 转换的速度很快,这给求平均值提供了有利的基础。按照程序设定,一共采样32 次,在计算求平均值的时候,利用C 语言中的左移,求得平均值。可以把这个求得的和左移5 位,就得到平均值,这种计算方式十分便捷。另一个需要考虑的问题是时间,也就是A/D 转换的速度问题。如果在完成一次触摸的整个过程中,采样的数目越多,对于触摸点平均取值就越接近实际数据,对确认触摸点坐标的影响也就越小。A/D 转换数据读取过程的实现,以及改进后的算法如下:

  第一步:接通触摸屏电流,循环读取32 次A/D 转换器的值,并求得这些值的总和。

  第二步:将求得的总和值左移五位,求得平均值,并把该平均值作为有效的数据。

  改进后的算法有效避免了不同压力对准确测量电阻值的影响,提高了数据的稳定性和可靠性。可以更加准确定位坐标,特别是屏幕中间区域的触摸点,效果尤其明显。

1  2  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号