北京时间09月10日消息,中国触摸屏网讯, 系统实现硬件构成
本文来自:http://www.51touch.com/touchscreen/news/front/200909/10-3031.html
目前的多点触摸硬件常见实现方法都有各自的优缺点,特别是对于大尺寸多点触摸控制系统而言更是明显。我们的应用目标是要在一台70寸的高清LCOS背投电视上实现多点触摸控制效果,受到电视机本身结构和背投屏幕材质的光学特性的限制,无论是直接使用FTIR技术、DI技术还是LLP技术都不能取得理想的光学感应效果。
鉴于此,我们使用了一种特殊的LLP的方式来进行硬件设置,即通过具备主动发射红外光的触笔来模拟手指的直接触摸过程。具体来说:通过触笔在背投屏幕上的触压发射红外光信号,光信号穿透背投屏幕后经过背投内部的大反射镜作镜面反射;镜头板接收镜面反射的光信号,再传递给计算机;触笔产生的信号会在屏幕上形成一个大的光斑,系统采用逐行扫描的方式对信号进行采样(30帧/秒),取光斑的最亮值,并记录该点在CMOS上成像的坐标;计算机对感应到的光信号进行处理,形成一套坐标系统,并将处理后的数据通过特定的数据格式传递给上层应用程序;从而达到跟踪触笔的运动,模拟出多点触摸的效果。
多点应用软件框架
我们实现的多点触摸控制上层应用是基于Touchlib构建的,Touchlib是一个开源的用于创建多点触摸交互界面的库,它能够处理红外线光斑跟踪,并向上层应用程序发送诸如按下、移动、释放等事件。
目前,Touchlib库使用TUIO协议(Table-Top User Interfaces Objects)发送事件,这使得Touchlib可以胜任于包括Adobe Flash在内的任何支持此协议的应用程序。TUIO是一套简单且通用的,特别为满足可感知桌面用户界面需要所设计的协议。因为TUIO协议本身是基于OSC(OpenSound Control)的,所以TUIO协议可以看做是OSC数据的一种标准化实现,可以用于所有支持该协议的设备上。
TUIO协议定义了两类主要的消息,即set消息和alive消息。其中,set消息用于目标对象特定状态,如位置、姿态或其他任何可以识别状态的通讯;alive消息则用于通过系列的sessionID来标识当前目标对象。TUIO使用下面的格式来进行数据通讯:
/tuio/[profileName] set sessionID [parameterList]
/tuio/[profileName] alive [list of active sessionIDs]
/tuio/[profileName] fseq int32
其中的profileName代表定义好的常用可感知用户界面配置,该配置定义了set消息中目标对象的状态数据格式,比如常用的2D Profile:
/tuio/2Dobj set s i x y a X Y A m r
/tuio/2Dcur set s x y X Y m
为了更好地展现多点触控的视觉效果,我们在上层应用中选择了基于Flash的实现方式。需要指出的是,TUIO原生是通过UDP进行数据传送的,而Flash本身只能通过TCP链接接收数据,因此还必需通过Flosc网关将OSC数据转换为为Flash可以读取的XMLSocket数据。上述流程如图7所示。
通过转换,上层的Flash应用程序就可以接收Touchlib发送的触点位置、编号、触控事件等各种数据,进而做出适当的响应,从而与用户产生多点触摸控制交互。综合上文描述的硬件设置,我们以一台70寸LCOS高清背投电视为基础,基于光学感应开发出一套使用主动红外触摸笔交互的多点触摸控制应用系统,已经成功应用于某风景区电子交互导览的实际应用中,为大尺寸多点触摸控制系统的研究和应用打下了一定的基础。
结语
本文介绍了多点触摸控制系统的基本原理,展示并分析了常见的基于光学感应的多点触摸实现方案的优缺点,深入研究了基于Touchlib的多点应用系统框架,及其与上层应用程序之间的数据传送协议和方法,并给出了一种基于70寸高清背投电视的大尺寸光学感应多点触控应用系统解决方案。当然,本文的初步结果是基于主动红外触摸笔的形式,人与机器之间还是借助了外部设备,并不是直接的肢体触摸,而且还不能支持手势识别。
可以预见,多点触摸人机界面及其相关技术有着非常广泛的应用前景,特别是大尺寸、低成本的多点触摸控制系统是值得广大业界同仁深入研究的。