账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
触控屏幕手势全攻略
 

【作者: Steve Kolokowsky,Trevor Davis】2011年03月16日 星期三

浏览人次:【15371】

触控屏幕推陈出新的操作模式让人乐此不疲,屏幕上的图像在指尖下跃动,随心所欲完美地同步互动。现今各种先进的消费装置逐渐以触控屏幕取代机械式按纽。在手机上翻阅网页变得轻而易举,用户可轻松流畅地拖曳滚动条浏览网站、放大观看过小的文字或图像、按压屏幕点选下个链接,或在不同页面之间拖放图标或文字。事实上,用户对已习惯适应触控屏幕的简便,但却不了解背后技术的复杂性。现今的科技消费者开始期盼运用多样丰富的手势来操作装置,缩放、平移、轻弹等都只是基本的手势。对于有兴趣开发全世界最炫操作接口的设计师或工程师而言,则必须了解触控屏幕子系统的各项机制,才能真正了解手势解译的程序以及它们在现今行动产品的应用。


了解子系统基本架构与通讯方法

首先得了解触控屏幕子系统的基本架构与通讯方法,从触控屏幕的表面开始,首先面临的问题是解译与显示屏幕上的手势,最后是显示动作,并针对用户的意图提供快速直觉的反应。图1显示基本的硬件与软件堆栈,协助说明当用户触碰到屏幕时会发生哪些事,以及数据流在系统内如何移动。



《图一 系统内有许多硬件、驱动器以及软件在运作,实际上每个系统在搜集数据和软件决策方面都略有差别。 》
《图一 系统内有许多硬件、驱动器以及软件在运作,实际上每个系统在搜集数据和软件决策方面都略有差别。 》

硬件系统一开始的动作是解读触控动作,几乎所有智能型手机的触控屏幕都采用投影式电容,针对手指产生的电容变化做出反应。触控屏幕含有成排成列的传感器,用来侦测手指所造成的电容变化。当手指触碰到屏幕,就会影响这些传感器的电荷,根据这些变化可搜集到手指在屏幕上的位置(X与Y轴坐标点)。明确的说,系统中第一个IC(integrated circuit)就是触控屏幕IC。


图二呈现一个典型触控屏幕的「扫瞄」流程,触控控制器负责驱动数组中每个传输(TX 驱动)线,并在接收端检查回传讯号(RX 扫瞄)线。当屏幕被触碰,手指的电容就会让RX讯号微幅下降。这种驱动与接收技巧,建构出最基本的数据搜集功能,亦建立了系统中其他动作的基础。若触控屏幕的数据在搜集时未达到最高的精准度,即使再多的软件校正也无法让装置能解译出用户的真正意图。在某些情况中,由于中断延迟过于冗长,以致主控处理器干涉到触控的时间点。在其他状况中,感测电压会受到系统中电子噪声的干扰。


《图二 典型触控屏幕的「扫瞄」流程,控制器负责驱动数组中传输(TX 驱动)线,并在接收端检查回传讯号(RX 扫瞄)线。》
《图二 典型触控屏幕的「扫瞄」流程,控制器负责驱动数组中传输(TX 驱动)线,并在接收端检查回传讯号(RX 扫瞄)线。》

正确处理电容反应信息

系统从面板收集到数据后,必须对电容的变化做出反应,为此,系统会针对每个传感器设置一个基准值。这个基准值是长期的平均值,代表包括温度变化与其他因素所造成的讯号波动。把感测到的电容减去基准值,即可得到许多讯号值,代表像下图所示的触碰动作:



《图三 根据未处理的电容数据判断手指位置 》
《图三 根据未处理的电容数据判断手指位置 》

但在上述的案例中,仅收集到未处理的数据。这步骤虽然重要,但这些数据还不代表系统需要的X轴与Y轴数据,系统需要确切的坐标值才能了解手指的动作。判断X轴与Y轴位置最简单的方法之一,就是计算质心(质量中心),以加值平均法算出一维或二维的传感器数值。二维的质心使用上述的坐标 (1+5+2+0)+(5+15+12+2)*2+ (10+25+15+5)*3+(5+10+5+1)*4/(1+5+2+0+5+15+12+2+10+25+15+5+5+10+5+1) = 2.75 此为X轴坐标。这个位置再配合LCD的分辨率进行缩放调整,反映屏幕上的实际坐标点。


出现有效的触碰讯号,并知道触碰点的X/Y轴坐标后,接下来就要开始解读屏幕上的手指动作。通常嵌入式触控屏幕组件会透过I2C 或SPI接口来进行通讯(较大型的触控系统有时会使用USB接口)。一开始,主控端与触控控制器必须相互同步化。主控端还必须检查收集到的数据是新数据,或是之前取得的相同数据集(亦称为过期数据)。


每当触控数据有改变,触控控制器就会更新数据缓冲区。改变过的触控数据可能肇因于触碰数量的改变、其中一个触碰动作有所移动、或是出现用户自行定义的事件。触控控制器数据通常会在每次扫瞄与处理结束后进行更新。更新通讯接口的时间应尽可能缩短,避免造成显示延迟。所有触控数据更新后,接口缓存器就会被标示为有效,主控端就可以收集新的触控信息。一般来说,系统会以两种方法来通知主控端触控数据有所改变,一是轮询,另一种则是通讯岔断线。在轮询系统中,主控端会定期主动检查触控屏幕组件,查看是否有新信息,而在岔断系统中,触控控制器组件会透过一个I/O脉冲讯号,通知主控端有新的数据出现。一般都建议触控系统采用岔断通讯法,因为触控数据能以更趋近实时的速度呈现,且能优化功耗,因为主控端仅须在有新数据收到岔断时才须进行通讯。


主控端的信息处理

若主控端在下一次扫瞄更新之前就响应岔断脉冲并完成数据撷取动作,主控端就会得到一个更新过(新)有效数据集。在岔断脉冲后完成数据撷取的允许延迟时间,即为执行另一次扫瞄(Tscan)与处理作业的时间。若主控端没有实时收集触控数据,主控端会错失新的触控信息,手势或屏幕动作就会出现停顿,或甚至被错误解读。


主控端在收集到触控数据后,就会转到操作系统。以Android为例,由于Android是一个开放原始码的操作系统,凡是有好奇心又有网络联机的人就能看到Android如何解译手势。Android内含三类手势:简单手势,在操作系统内解译并由应用程序来使用。预录手势,储存在GestureStore内,由一个比较引擎负责解译。多点触控手势,通常由View类别来使用,用户无须做动作。最新版的Android代号为Gingerbread,内建的支持功能涵盖简单的单点触控手势、多点触控的两指移动/缩放手势、以及预录的单点触控手势。


单点触控手势侦测是在view.GestureDetector这个类别中执行。OnGestureListener函式会检查每个触控事件,然后处理Android系统内Widget了解的手势。除了Scroll之外,系统只会在手指离开面板时才开始解译这些手势。这将对解读手势所需要的功耗产生限制。在「Simple」手势侦测功能当中,Android提供多到出乎意料的调整弹性,包括移动速度、按压与双按的时间间隔、定义判断按压或移动的临限值以及设定单点或多点触控手势。



《图四 Android内含三类手势:简单手势、预录手势、多点触控手势。》
《图四 Android内含三类手势:简单手势、预录手势、多点触控手势。》

Android系统的多点触控支持能力

多点触控手势已加入到2.1版的(


Éclair)Android操作系统。内建的多点触控支持能力,透过ScaleGestureDetector方法提供两指移动与缩放(缩放窗口)功能。ScaleGestureDetector程序代码会等待多点触控事件发生后,然后把手指距离的变化转换成缩放比率,作为缩小或放大的比率值。实现多点触控手势涉及到的技术困难程度,在ScaleGestureDetector程序代码会显得很明显。程序代码中针对 片断数据或不完整的手势进行修正处理。


就像物质是由分子构成而分子由原子组成一样,客制手势是由笔划构成,而笔划则是由GesturePoints组成。GesturePoints含有两个元素: X/Y轴位置以实时戳。GestureStroke是一个众多点的集合,这些点汇集成boundingBox与一个长度值。这两组数据相当有用。只要查看长度与boundingBox,程序就能判断动作是直线或曲线。「手势」是GestureStrokes的集合。GestureStrokes内含一组手势,这些手势同一时间只会出现一个。我们可以有多个GestureStrokes,因此可利用一组手势进行搜寻,并用另一组手势来操作音乐播放程序。此外,研发者可天马行空地设计自己的客制手势。建立客制手势最简单的方法就是录下来。Android提供一个Gesture Builder程序,内含图形化接口让用户快速建立手势。


Android的预录手势会透过一个聪明运算引擎来评测,用户无需对手势内容拥有专业知识,一切都交给这个引擎来解译手势。GestureUtils.java档案含有许多有趣的方法,能显示、简化、以及比较手势。在解译手势时,系统会比较候选手势与gesture store内的所有手势。「预测」功能会回传所有可能手势的列表,并针对每个手势提供评分。Google 实验室的Gesture Search应用就用到其中许多任务具,但Gesture Search并未包含在GPL开放授权范围或Android提供的Apache授权内容。这个程序须从App Store下载。


最后,主控端会根据判断的手势,透过屏幕的更新呈现实时的动作。当系统侦测到用户是在手机的保龄球游戏中做出击倒球瓶的动作,就会显示 「直划(fling)」手势,相同的直划手势也能包快速卷页浏览商务电子邮件内容。缩放或调整窗口手势可用来缩放上司电子邮件的文字大小,或放大聚会上的微笑照片。虽然屏幕的互动南差北异,但底部的硬件、电容感测技术、韧体堆栈、软件堆栈以及操作系统的解译动作都是相同的。对于消费性电子系统的设计者而言,关键在于了解系统中哪些部分是开发产品的重点,协助达到理想的触控效能 ─因为用户想要的其实相当简单: 他们只想要完美的产品。


(作者任职于Cypress赛普拉斯半导体)


相关文章
不怕水的电容触控感测器一招搞定!
为冲床制造应用提高绩效 协易携手Beckhoff再造双赢
零售4.0时代来临 POS角色需重新定义
2015电子产业7大关键趋势
触控薄型化技术改朝换代
comments powered by Disqus
相关讨论
  相关新闻
» 美光针对用户端和资料中心等市场 推出232层QLC NAND
» 摩尔斯微电子在台湾设立新办公室 为进军亚太写下新里程碑
» 爱德万测试与东丽签订Micro LED显示屏制造战略夥伴关系
» 格斯科技携手生态系夥伴产学合作 推出油电转纯电示范车
» Arm:因应AI永无止尽的能源需求 推动AI资料中心工作负载


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84S3CQMS4STACUKR
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw