低成本阻性触摸屏上实现手势识别
扫描二维码
随时随地手机看文章
对于各种消费、医疗、汽车和工业设备,增强的低成本触控 式用户界面是一个极具价值的特性。在许多消费电子应用 中,设计师偏向使用容性触摸屏,而不愿使用阻性触摸技 术,原因是前者可以跟踪手指,似乎能够提供更友好的用户 交互体验。目前,低成本阻性技术的应用市场包括:只需要 单点触控、至关重要的极其精确的空间分辨率、利用触控笔 来实现特定功能(如亚洲语言符号识别等),或者用户必须 戴手套的场合。 虽然阻性技术传统上是用来检测屏幕上“单点触摸”的位 置,但本文提出了一个创新的“两点触摸”概念,它利用阻 性触摸屏控制器 AD7879 在廉价的阻性触摸屏上检测最常见 的双指手势(缩放、捏合和旋转)。
阻性触摸屏的经典方法
典型的阻性触摸屏包括两个平行的氧化铟锡(ITO)导电层,中 间的间隙将两层分开(图 1)。上层(Y)的边缘电极相对于下 层(X)的边缘电极旋转 90°。当对屏幕的一个小区域施加压 力,使这两层发生电气接触时,就发生了“触摸”现象。如 果在上层的两个电极之间施加一个直流电压,而下层悬空, 则触摸将使下层获得与触摸点相同的电压。判断上层方向触 摸坐标的方法是测量下层的电压,以便确定触摸点处的电阻 占总电阻的比值。然后交换两层的电气连接,获得触摸点在 另一个轴上的坐标。
连接直流电压的层称为“有源”层,电流与其阻抗成反比。 测量电压的层称为“无源”层,无相关电流流经该层。发生 单点触摸时,在有源层中形成一个分压器,无源层电压测量 通过一个模数转换器读取与触摸点和负电极之间的距离成比 例的电压1.
由于成本低廉,传统的 4 线阻性触摸屏深受单点触控应用的 欢迎。实现阻性多点触控的技术有多种,其中总是会用到一 个矩阵布局屏幕,但屏幕制造成本高得吓人。此外,控制器 需要许多输入和输出来测量和驱动各个屏幕带,导致控制器 成本和测量时间增加。
图 1. (a) 阻性触摸屏的结构;(b) 用户触摸屏幕时的电气接触
超越单点触控
虽然如此,但通过理解并模拟该过程背后的物理原理,我们 可以从阻性触摸屏提取更多信息。当发生两点触摸时,无源 屏幕中的一段电阻加上触点的电阻与有源屏幕的导电段并 联,因此电源的负载阻抗减小,电流增大。阻性控制器的经 典方法是假设有源层中的电流恒定不变,无源层为等电位。 两点触摸时,这些假设不再成立,为了提取所需的信息,需 要进行更多测量。
阻性屏幕中的两点触摸检测模型如图 2 所示。Rtouch为层间的 接触电阻;在现有的大多数屏幕中,其数量级一般与两层的 电阻相同。如果有一个恒定的电流I流经有源层的两端,则有 源层上的电压为:
图 2. 阻性屏幕两点触摸的基本模型
手势识别
以“捏合”(pinch)作为范例可以更好地描述手势识别的工作 原理。捏合手势从两根分开较远的手指触摸开始,产生双重 接触,使得屏幕的阻抗降低,有源层两根电极之间的电压差 因此减小。随着两根手指越来越接近,并联面积减小,因而 屏幕的阻抗提高,有源层两根电极之间的电压差相应地增 大。
紧密捏合后,并联电阻趋于 0,Ru + Rd提高到总电阻,因此电 压增大到:
图 3 显示了一个沿着垂直(Y)轴捏合的例子。当手势开始时, 其中一层的两根电极之间的电压恒定不变,另一层则表现出 阶跃性降低,然后随着手指相互靠近而提高。
图 3. 垂直捏合时的电压测量
图 4 显示倾斜捏合时的电压测量结果。这种情况下,两个电 压均表现出阶跃性降低,然后缓慢恢复。两个恢复速率(利 用各层的电阻归一化)的比值可以用来检测手势的角度。
图 4. 倾斜捏合时的电压测量
如果手势为缩放(手指分开),其行为可以从上述讨论推导 出来。图 5 显示了沿各轴及沿倾斜方向缩放时测得的两个有 源层电压趋势。
图 5. 沿不同方向缩放时的电压趋势
利用 AD7879检测手势
AD7879 触摸屏控制器设计用于与 4 线式阻性触摸屏接口。除 了检测触摸动作外,它还能测量温度和辅助输入端的电压。 所有四种触摸测量加上温度、电池、辅助电压测量,均可以 通过编程写入其片内序列器。
AD7879 结合一对低成本运算放大器,可以执行上述捏合和缩 放手势测量,如图 6所示。
下面的步骤说明了手势识别的过程:
在前半周期中,将一个直流电压施加于上层(有源 层),并测量X+引脚的电压(对应于VY+ – VY–),以提 供与Y方向上的运动(接近还是分开)相关的信息。
在后半周期中,将一个直流电压施加于下层(有源 层),并测量Y+引脚的电压(对应于VX+ – VX–),以提 供与X方向上的运动(接近还是分开)相关的信息。
图 6 所示的电路需要为差分放大器提供保护,防止短接到 VDD。在前半周期中,下方放大器的输出短接到VDD。在后半 周期中,上方放大器的输出短接到VDD。为避免这种现象, AD7879的GPIO可以控制两个外部模拟开关,如图 7所示。
图 6. 基本手势检测应用图
图 7. 避免放大器输出短接到VDD的应用图
这种情况下,AD7879 设置为从机转换模式,并且仅测量半个 周期。当 AD7879 完成转换时,产生一个中断,主处理器重 新设置 AD7879 以测量第二个半周期,并且改变 AD7879 GPIO 的值。第二转换结束时,两层的测量结果均存储在器件 中。
旋转可以通过一个方向上的同时缩放和一个倾斜捏合来模 拟,因此检测旋转并不困难。挑战在于区别旋转是顺时针 (CW)还是逆时针(CCW),这无法通过上述过程来实现。为了 检测旋转及其方向,需要在两层(有源层和无源层)上进行测量,如图 8 所示。图 7 中的电路无法满足之一要求,图 9 提出了一种新的拓扑结构。
图 8. 顺时针和逆时针旋转时的电压测量
图 9所示的拓扑结构实现了如下功能:
半周期 1:电压施加于Y层,同时测量(VY+ – VY–)、VX–和 VX+。每完成一个测量,AD7879 就会产生一个中断,以 便处理器改变GPIO配置。
半周期 2:电压施加于X层,同时测量(VX+ – VX–)、VY–和VY+。
图 9 中的电路可以测量所有需要的电压来实现全部性能,包 括:a)单点触摸位置;b)缩放、捏合、旋转手势检测和量化; c)区别顺时针与逆时针旋转。用两点触摸手势来完成单点触 摸操作时,可以估计手势的中心位置。
图 9. 单点触摸位置和手势检测的应用图
实用提示
轻柔手势产生的电压变化相当微细。通过放大这种变化,可 以提高系统的鲁棒性。例如,可以在屏幕的电极与 AD7879 的引脚之间增加一个小电阻,这将能提高有源层的压降,但 单点触摸定位精度会有所下降。
另一种方法是仅在低端连接上增加一个电阻,当 X 层或 Y 层 为有源层时,仅检测 X–或 Y–电极。这样就可以应用一定的 增益,因为直流值相当低。
ADI公司有许多放大器和多路复用器可以满足图 6、图 7 和图 9 所示应用的需求。测试电路使用AD8506 双通道运算放大器和ADG16xx 系列模拟多路复用器;多路复用器的导通电阻很 低,采用 3.3 V单电源供电。
结束语
利用 AD7879 控制器和极少的辅助电路,可以检测缩放、捏 合和旋转。只需在有源层上进行测量,就能识别这些手势。 在主处理器的控制下,利用两个 GPIO 测量无源层的电压, 可以区别旋转方向。在该处理器中执行相当简单的算法,就 能识别缩放、捏合和旋转,估计其范围、角度和方向。
感谢
本文获得了西班牙瓦伦西亚中小企业协会(IMPIVA)通过项目 IMIDTF/2009/15 和西班牙教育与科学部通过项目 Consolider/CSD2007-00018提供的部分资助。
本文作者感谢 Colin Lyden、John Cleary和 Susan Pratt在讨论 中提供的有益建议。
参考文献
(Information on all ADI components can be found at www.analog.com.)
1 Finn, Gareth. “New Touch-Screen Controllers Offer Robust Sensing for Portable Displays.” Analog Dialogue, Vol. 44, No. 2. February 2010. (return to text)
Authors
Javier Calpe [javier.calpe@analog.com] 分别于 1989年和 1993年获得西班牙瓦伦西亚大学物理 学学士学位和博士学位,为该校讲师。Javier自 2005 年起担任ADI公司瓦伦西亚开发中心的设 计中心经理。
Italo Medina [italo.medina@analog.com] 于 2010 年获得西班牙瓦伦西亚理工大学电子工程学士 学位。Italo于 2010 年加入ADI公司,成为爱尔 兰利默里克精密DAC部模拟设计师。
Alberto Carbajo [alberto.carbajo@analog.com]于 2000 年获得西班牙瓦伦西亚理工大学电子工程 学士学位,2004 年获得爱尔兰科克大学(UCC) 工程硕士学位。Alberto于 2000 年加入ADI公 司,在测试与设计部门工作。目前,他的工作 重点是基于IC的检测产品,包括信号处理和微 控制器设计集成。
María José Martínez [maria.martinez@analog.com] 于 2005 年获得西班牙瓦伦西亚理工大学电信工 程学士学位。她于 2006 年加入ADI公司,担任 触摸屏产品应用工程师,重点关注CapTouch®触 摸屏控制器和透镜驱动器产品。Maria目前在 ADI瓦伦西亚的便携产品部门工作。