关键词: 触摸
红外触摸(精选四篇)
红外触摸 篇1
红外触摸技术是一种自然的人机交互技术,利用了LCD屏边沿的红外对管矩阵来检测触摸位置。红外管发出的脉冲形成格栅,手指触摸屏幕会阻断光束,接收电路探测到光束的损失便可确定X轴与Y轴的坐标值。对于两点以上触摸,可通过多轴扫描来处理,实现真2点以上触摸感知。
相比电阻、电容等触摸屏,红外触摸屏的特点是透光性好,性价比高,稳定性好,对触摸物体无力度、导电等特殊要求。红外触摸屏常用接口有COM串口和USB,其中USB接口使用比较灵活,可插拔使用。普通显示器只要外挂一个尺寸相当的触摸屏,安装好驱动程序即可使用。
市场上的触摸展示机大多采用Windows系统,其优点是软件兼容性好,系统性能较强,缺点是功耗大,散热不好,系统造价高。若采用安卓系统,可克服上述缺点,大大降低系统造价,提高系统的稳定性。安卓系统的触摸系统适合用在对系统性能要求不高,功能相对单一的场合。本文外挂触摸屏选用了22寸的USB接口触摸屏,支持2点触摸和USB-HID规范,Windows7以上可直接驱动,不需要专门的驱动程序。系统主板采用了全志A83T开发板,安卓版本为4.4,linux内核版本为3.1。整个触摸系统架构如图1所示。
2 安卓驱动架构
Android驱动主要分两种类型:Android专用驱动和Android使用的设备驱动(linux),触摸屏属于Event输入设备驱动。输入Input驱动程序的主设备号是13,次设备号是(Event queue):64~95,最多有32个。Input子系统的结构如图2所示,分为三层:硬件驱动层,子系统核心层,事件处理层。
(1)硬件驱动层负责具体的硬件设备驱动,本层代码放在内核中,是开发工作的核心内容,按照GPL协议,这部分需要开源。
(2)安卓框架部分是上下两个层之间的纽带,向上提供事件处理层的接口,向下提供驱动层的接口,本部分一般不用修改。
(3)最上层应用层负责与用户程序打交道,将下层传来的事件报告给用户程序。
3 触屏驱动设计
安卓的linux3.1.10版本的内核中自带了USB触摸屏驱动,位置是:
/kernel/drivers/input/touchscreen/usbtouchscreen.c,添加的专用触摸驱动也放在这个目录。
3.1 USB驱动注册
插入USB触屏后,首先进行USB设备注册,入口是:
USB设备驱动usb_generic_driver会和USB设备交互,进行描述符的匹配,匹配成功后将调用上述结构体中probe域中指定的probe函数。其中的匹配表由usbirtouch_id_table指定。然后将每个接口定义成device,加载到USB总线。
USB_DEVICE_HID_CLASS中两个参数,第1个代表厂商(Vendor)ID,第2个代表产品(Product)ID.
在probe函数中,需要通过set_bit()告知input子系统可以报告的事件并初始化触屏参数:
EV_KEY表示按键事件,EV_ABS表示触摸的绝对坐标值,使用下面3个函数进行触屏参数初始化。
input_set_abs_params(input_dev,ABS_MT_PRESSURE,0,255,0,0);//压力范围和精度
input_set_abs_params(input_dev,ABS_MT_POSITION_X,0,32767,0,0);//X值范围和精度
input_set_abs_params(input_dev,ABS_MT_POSITION_Y,0,32767,0,0);//Y值范围和精度
3.2 触摸数据的上报
利用urb上报进行数据上报。上报前使用usb_fill_int_urb()回调usbirtouch_irq()函数进行数据段填充。主要代码如下:
在每个点上报后需要紧跟一句input_mt_sync()用于不同点的间隔,本批触摸点上报完毕使用input_sync(dev)表示本批次上报结束。
4 驱动的编译
编写好的需要对内核重新编译,主要步骤如下:
(1)将驱动程序复制到kernel/driver/input/touchscreen目录下;
(2)修改kernel/driver/input/touchscreen目录下的Makefile,添加
"obj-$(CONFIG_TOUCHSCREEN_USBIRTOUCH_DT)+=usbirtouchusb-hy.o";
(3)修改kernel/driver/input/touchscreen目录下的Kconfig文件,增加如下代码
(4)运行make menuconfig选择TOUCHSCREEN_USBIR-TOUCH_HY重建内核;
(5)打开目录/system/core/rootdir目录下的ueventd.rc文件,该文件设置驱动挂载到/dev目录下时的权限和所有者。添加如下内容:
/dev/usbirtouch0666 rootroot
第5步的作用是增加程序访问驱动的权限。经过上述步骤编译的内核包含了新USB触屏驱动。如果安卓系统版本高于4.0,还要需要将输入设备配置文件(idc)复制到/system/usr/idc目录下。
5 触摸屏的校准
由于外挂屏采用了绝对坐标,安装时也不可能与LCD高精度对准,需要软件算法进行校准,其目标是将物理坐标值转换为屏幕坐标。常用的校准算法是3点、4点与5点校准,原理类似。校准的数据保存在/dev/usbirtouch目录下,但需要此目录的读写权限。对于3点校准算法使用方程组(1)来表示触摸点的绝对坐标值与显示设备上匹配点的关系:
其中(Xt,Yt)为转换后得到的显示屏坐标,(Xo,Yo)为原始的触摸屏坐标,A、B、C、D、E、F为该线性算法的6个参数。代入至少三个不同点的坐标值(Xo1,Yo1),(Xo2,Yo2),(Xo3,Yo3),(Xt1,Yt1),(Xt2,Yt2),(Xt3,Yt3)到方程组(2),得到6个方程。
求解方程确定6个参数后,即可利用方程组(1)计算触摸点对应的屏幕点的坐标。将6个参数值存入指定文件,触摸屏初始化时如果读到校准文件就不需要校准了,否则提示用户运行程序校准。校准程序限制于篇幅不再赘述。
6 结语
本文主要对基于安卓的外挂式红外触摸屏进行了驱动设计,实现了2点触摸操作,设计思想可用于其它大屏尺寸的触摸驱动开发。由于Input输入子系统涉及的知识较多和篇幅受限,细节没有过多展开,未来打算在触摸防抖、抗干扰和提高分辨率等方面做进一步研究。
参考文献
[1]许荣斌,谢莹,朱永红.触摸屏校准常用算法分析[J].工业控制计算机,2006.19(4):77~78.
[2]於琪建,张海峰.Linux输入子系统在触摸屏驱动上的实现[J].机电工程,2009,26(3):32~34
[3]王振丽等.Android底层开发技术实战详解---(内核、移植和驱动[M].北京:电子工业出版社,2015.3
红外触摸 篇2
关键词:红外式触摸手写白板,屏幕校准,模拟操作,笔迹平滑
1 引言
随着多媒体科技的发展,人们越来越多地用到触摸手写设备,因为触摸手写设备作为一种新的输入设备,摆脱了键盘和鼠标操作,使人机交互更为直截了当,具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。
本文介绍的红外式触摸手写白板可广泛应用于教学、会议等场合,其主要有以下几个优点:
●可以用手指或书写笔等取代鼠标,方便地进行点击、拖曳等动作,可以识别双击、鼠标左键和右键。
●可用手指或书写笔直接在显示屏幕上进行书写、绘图等,将演讲和授课内容实时原迹呈现。
●可以在各类流行的文件上直接进行批注或对演示文件进行操作,如PPT、WORD、EXCEL、JPEG等。
2 红外式触摸手写设备简介
红外式触摸手写设备采用红外阵列扫描感应技术,由装在手写白板外框的红外线发射与接收感测元件构成,采用红外线发射和阻断原理,在手写白板表面形成红外线探测网,任何触摸物体可改变触点上的红外线而实现触摸输入操作[1]。
手写白板属于USB设备,使用中断方式与计算机通信。计算机向该设备发送控制命令,使手写白板执行激活、停止、自检等功能。手写白板向计算机发送数据包,发送的数据包类型有坐标数据包、抬笔数据包、命令回应数据包以及联络数据包等。其中,坐标数据包给出触摸点所遮挡的X、Y方向上的红外管编号,抬笔数据包通知计算机笔画结束,命令回应数据包根据计算机发送的控制命令给出相应回应(如激活成功、停止成功等),联络数据包(心跳包)可帮助计算机验证设备的USB连接是否正常。
3 手写白板应用设计的关键技术
通过投影仪将计算机屏幕投影到手写白板上,这样手写白板可以成为大型的书写屏,对投射到白板上的计算机画面,可用书写笔或手指直接在白板上滑动、点击,实现鼠标操作的相应功能(如点击打开文件、拖曳图标等)。手写白板会不断地向计算机发送数据包,应用程序要对数据包进行解析,确定用户当前的动作(单击、双击、拖动、……),在计算机上正确地模拟用户操作。
实现该应用功能的关键技术包括以下三点:(1)屏幕校准;(2)模拟用户操作;(3)笔迹平滑处理。
3.1 屏幕校准
由于存在机械误差和放大因素,在手写白板上投影的画面与实际的计算机屏幕之间,对应点的集合会有偏差。要使在白板上的操作实时地在计算机上得到正确的响应,必须经过一定的校准。触摸屏的常用校准方法有两点校准、三点校准方法和四点校准法[2]。校准点数越多,手写白板数据越精确。根据手写白板的功能要求,为了保证计算机能正确的响应操作,采用四点校准法。
一般的四点校准法是以中心为基准来校正的[2],这种校准方法的最大缺点是偏离中心越远,校准后的误差越大,这样在屏幕投影边缘进行的操作,如点击任务栏图标等,就很有可能产生不正确的响应,因此,结合坐标转换,本文使用屏幕投影的四个顶点进行校准。
图1屏幕校准与坐标转换示意图
假设计算机屏幕平面顶点A’、B’、C’、D’的坐标(计算机屏幕像素值)分别为(X A',Y A'),(X B',Y B'),(X C',Y C'),(X D',Y D'),白板上投影平面顶点A、B、C、D的坐标(横竖方向上的红外管编号)分别为(XA,Y A),(XB,Y B),(XC,Y C),(XD,Y D),如果当前触摸点所遮挡的红外管编号为(X,Y),计算机屏幕上对应的坐标为(X',Y'),则有
∆X、∆Y分别为白板上投影平面的有效宽度和高度。
由于矩形ABCD与矩形A’B’C’D’相似,有
其中,X'max、Y'max分别为计算机屏幕X、Y方向上的分辨率,而XA'=0、YA'=0,因此最终的坐标转换公式为
这样,只需要获得∆X、∆Y、XA、YA、X'max、Y'max这六个参数,就可以进行正确的坐标转换了。
在实现时,首先在校准子程序中调用坐标校准画面,以白点显示A校准点,由用户点击,此时白板发送的坐标数据包会给出触摸点遮挡的X、Y方向的红外管编号,即XA、YA。用户抬笔后,显示B校准点让用户点击。这样再依次显示C、D校准点,最终获得四个校准点信息,就得到了参数∆X、∆Y、XA、YA,而X'max、Y'max可以直接由计算机系统得到。
3.2 模拟用户操作
用户在手写白板上的操作主要是点击和滑动两大类。对于计算机来说,点击和滑动等操作能得到的信息就是一系列的坐标数据包和抬笔数据包。因此,要准确模拟用户操作,必须对坐标数据包和抬笔数据包的组合进行逻辑判断,以确定用户的操作是左键单击、左键拖动、左键双击或是右键单击。
用户在手写白板上的单次点击即可视为左键单击,不离开手写白板进行连续移动就认为是左键拖动,这两个操作的判断比较直观,这里不作详细说明。而对于左键双击和右键单击操作,需要作一些相应处理。首先,双击操作可能会与两次单击操作混淆,因此我们设定,如果连续两次点击时间间隔足够小且在一定像素范围内,就认为是双击动作。其次,要单独定义右键单击操作,即如果用户在白板上一定像素范围内停留超过预定时间后,就认为是右击。上述双击判断的时间间隔和像素范围、右击判断的时间长度和像素范围,都可以由用户设定。
下面以C表示坐标数据包,L表示抬笔数据包。对坐标数据包和抬笔数据包的逻辑判断思路如下:上传到计算机的连续多个数据包,必然是CC…CLCC…CL…的形式。在一组CC…CL中,第一个C肯定是左键按下事件,最后的L必然是左键释放,但左键释放后还需要判断此时是否要模拟双击动作,而对于中间连续的C则要判断是鼠标移动还是右键单击。总的算法流程如图2所示,由于坐标数据包的处理流程比较复杂,其算法流程单独列出如图3所示。图2、图3中右键单击、左键按下和左键释放3个标识位的初始值设置见表1。
一旦判断出用户的当前操作,即可调用计算机相应的API在指定的坐标点模拟鼠标左击、拖动、双击和右击等动作。
3.3 笔迹平滑处理
由于投射到手写白板上的计算机屏幕经过了放大,因此手写白板上的一个红外管发射的红外线会占据多个像素的宽度,红外管数目越多,占据的像素宽度越小。这个宽度的典型值是5个像素,也就是说,即使触摸点所遮挡的红外管没有改变,如果不进行任何平滑处理,直接根据坐标数据包计算的坐标模拟鼠标操作,模拟的坐标点仍然会在5个像素的范围内抖动。这样,当在白板上进行书写、绘图等有连续滑动的操作时,笔画轨迹会有明显的抖动,与实际书写轨迹不符。
对手写输入设备的笔画轨迹处理可采用3点加权滤波的方式。在一组CC…CL中,从第三个C坐标数据包开始,对每一个C数据包转换得到的坐标进行相应处理:
其中,(x,y)是平滑处理后得到模拟操作点的坐标,(x0,y0)是上上一个C数据包的坐标,(x1,y1)是前一个C数据包的坐标,(x2,y2)是当前C数据包的坐标,a、b是加权系数,若取即为3点均值滤波[3]。
这种平滑处理方法相当于沿着笔迹方向在实际的当前触摸点和上一触摸点之间补点,因此a取值越大相当于补的点越多,平滑效果就越好,但这时程序运算量会增大,运行速度变慢,对实时操作会产生影响。并且a值越大,前两个点的影响就越大,平滑后的模拟操作点坐标与实际触摸点的坐标之间差距变大,因此a过大会造成笔迹的失真。通过以上分析不难看出,需要在平滑、实时操作和笔迹还原中作适当的权衡。
图4给出了多个不同a值的测试结果。a=0时,相当于没有平滑处理,模拟的笔迹有多处抖动;a=0.4时,笔迹效果比未处理时较好,但仍然有明显的抖动;a=0.88时,笔迹平滑,笔画没有失真,且能实时重现笔迹;a=0.98时,笔迹平滑,但笔画有失真(笔画变短,应该是折线的地方也被平滑了),同时能感到重现笔迹有明显延时。
根据测试经验,a=0.88时能得到很好的平滑效果笔迹准确而又不影响实时操作。
4 结束语
经过运行与测试,该手写白板屏幕校准简单准确在投影平面上进行的点击、拖动等操作可以在计算机上得到实时正确的响应,并且能够在画板、Power Poin等程序中进行绘图、批注等交互,验证了该设计方案的正确性与实用性。
参考文献
[1]刘金浦,鲁俊婷.触摸屏的功能探究[J].办公自动化杂志,2008,(7):41-43.
[2]王丁,闫瑶,张廷宇.触摸屏校准的一种通用算法[J].自动化技术与应用,2008,27(2):116-117,29.
红外触摸 篇3
我国正在设计制造可以在空间中长期运行的载人航天器,航天器上图像系统拟采用高清显示系统,仪表系统是站上图像系统的重要组成部分,提供图像解码和终端显示的功能。目前载人航天器上投入使用的液晶屏,采用键盘或按键输入方式,不具备触摸显示功能。对于目前的航天船载显示,键盘和鼠标等输入设备的使用很不方便,而且占用了独立的设备及操作空间。在载人航天器综合显示系统中,将触摸屏应用到仪表显示系统是具有重要意义的。对于船载显示设备,它要求触摸屏具有高清晰度,高分辨率,高抗干扰能力,并且能够精确定位。为了满足未来我国载人航天发展的需要,有必要对载人航天器仪表触摸屏应用做深入的研究。
1 红外触摸屏技术原理
触摸屏是一种用于人机交互和二维运动追迹的绝对定位系统,应用触摸屏装置能够节省空间,显示屏就是用户接口,接口方式可以自定义、多样化,因此触摸屏已经广泛应用于多媒体手持设备、工业控制显示器件。我国载人航天器上人机界面将进行全面优化,引入触摸屏技术,使得显示器操作更加直观、方便,同时,对于显示器的功能开发也将更灵活[1]。
触摸屏作为一个输入装置,由触摸检测部件和触摸屏控制器组成。触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接收后送触摸屏控制器;触摸屏控制器的主要作用是从触摸点检测装置接收触摸信息,并将它转换成触点坐标送给数据处理单元,同时能从数据处理单元接收命令并加以执行。
目前主要的触摸屏可以分为四大类:电阻触摸屏、电容触摸屏、表面声波触摸屏、红外触摸屏。前面两种均属于薄膜式,因为使用时需要在显示屏前加贴薄膜。表面声波触摸屏的触摸部分是一块平面、球面或是柱面的玻璃平板。由于薄膜和玻璃板的存在,很大程度上影响了显示器的光透过率。同时它们都有难以逾越的屏障,如单一传感器的受损、老化,器件参数特性容易漂移,很难长时间稳定工作,触摸界面怕受污染,维护繁杂等等问题。而红外触摸屏无需薄膜,光透过率为100%,而且不受电流、电压和静电干扰,适宜恶劣的环境条件。
红外式触摸屏由装在触摸屏外框上的红外线发射与接收感测元件构成。如图1所示。在显示屏相邻的两条边上各放置一排红外发光二极管,另外两条边各放置一排红外接收探测器,形成红外探测网。如果所有的红外对管通达,表示无触摸物体。当有触摸时,手指或其他物就会挡住经过该位置的横竖红外线,触摸屏扫描时发现并确信有一条红外线受阻后,立刻换到另一坐标轴再扫描,如果再发现另外一轴也有一条红外线受阻,发现触摸,并将两个发现有阻隔的红外对管位置报告给主机,经过计算判断出触摸点在屏幕的位置。当手指等物在屏面移动对红外线网形成切割时,红外管阵列感知到的位置二元数组也在实时变化,这有利于我们仅仅通过信号变化就可以执行位置相对变化的判断进而实现运动追踪和预判。通常红外发光检测装置是装于红外滤光外框内,它对红外光是透明的,对环境光起抑制作用[2]。
2 载人航天器仪表系统触摸屏分辨能力
2.1 载人航天器仪表系统显示器的显示分辨率
载人航天器仪表系统要求显示屏能够支持处理1 080 P(1 920×1 080)的高清图像源。但是显示器本身并不具有1 920×1 080的物理分辨率,只是把1 920×1 080的图像经过处理降低到显示器实际的物理分辨率后,显示出来。载人航天器仪表系统采用的12.1 inch的显示器物理分辨率为1 024×768,所以要把1 920×1 080的图像处理成1 024×768的显示出来。所以空间站上的显示器的显示分辨率为1 024×768。
2.2 载人航天器仪表系统红外触摸屏的分辨能力
目前,我国正在设计制造的载人航天器上,仪表系统的显示设备中的三台触摸式智能显示器设计尺寸是12.1 inch,有效显示面积为247 mm×186 mm。所以像素点的平均宽度为0.241 2 mm,高度为0.241 2 mm。
载人航天器仪表系统中,显示单元所显示的包括文本、图形和图像。目前,要求人机交互界面能够对文本和图形实现触摸控制。研究触摸屏的分辨能力要通过判断载触摸屏是否可以检测显示单元的最小像素块。载人航天器上仪表系统显示器的显示分辨率为1 024×768,显示单元的最小像素的尺寸约为0.3 mm。因此要验证遮挡位置变化0.3 mm的光强度变化能否被广电转换器探测并达到模数转换器最小分辨值。设计了以下实验。实验的材料包括:
(1)红外发射管IR26-51CL110TR8:构成红外发射电路,发出红外光。
(2)红外接收管PT26-51B/TR8:构成光电转换电路,将接收红外光转换成电压信号。
(3)JXD-250A型多用途读数显微镜:提供精确到0.01 mm的距离移动,采用刻尺和读数鼓轮进行读数,游标相对固定的刻尺移动,通过转动读数鼓轮可读出0.01 mm的分化值。
(4)直流稳定电源,数字万用表,可调电阻等。将发射电路驱动电压设定为5 V。
实验电路结构如图2所示,将光电发射电路和光电转换电路安装固定,保持红外发射管和红外接收管对齐,对管距离为247 mm,然后使固定遮光板的JXD-250A型多用途读数显微镜在x轴的位置A以0.1 mm的步径沿y轴方向逐步遮挡两管间的红外光线,记录对应于不同遮挡程度的输出电压。遮挡位置与输出电压的部分实验数据见表1。在位置B和C处重复上述步骤。
实验数据表明当触摸物在边缘位置移动0.3 mm时,电压变化在0.01 V以上,在中心位置移动0.3 mm时电压变化可达0.23 V。原因是红外发光管发出的红外光强度并不均匀,凸透镜中部光强度较大,而边缘部分光强较弱,因此如果边缘部分遮挡位置变化0.3 mm引起的光强变化能被光电转换电路检测到,那么就可以准确反映触摸屏是否受到触摸。而8位ADC可以对2.5 V电压实现的最小分辨量为0.01 V,所以在红外管边缘范围能分辨一个像素宽的位置变化引起的电压变化。当遮光板处于不同位置时(靠近红外发射管,靠近两管中间,靠近红外接收管)实验结果相似。所以,遮挡位置变化0.3 mm的光强度变化可以被广电转换器探测并达到模数转换器最小分辨值。即当采用上述红外发射、接收器件,通过一定的模/数转换,红外触摸屏可以分辨载人航天器仪表显示单元的最小像素块。
3 红外触摸屏硬件设计
3.1 红外触摸屏设计指标及环境适应性要求
3.1.1 设计指标
(1)显示器尺寸:12.1 inch;显示屏分辨率:1 024×768。红外屏电路板外形尺寸见图3。
(2)功耗:功耗小于1 W;
(3)响应时间:不大于200 ms;
(4)识别大小:能识别直径不小于5 mm的圆形物体。
3.1.2 环境适应性
(1)工作环境温度为0~50℃;
(2)能够适应外界自然光的干扰;
(3)工作气压为零至一个大气压。
3.2 触摸屏红外系统硬件总体设计
经过对红外式触摸屏原理的研究、红外触摸屏分辨能力的分析,根据载人航天器仪表系统需求,可以对载人航天器仪表系统红外触摸屏硬件部分进行设计。红外触摸屏由红外检测系统和控制系统两部分构成。红外检测部分用以确定触摸屏的位置。控制系统一方面协调检测部分的工作,另一面将红外检测部分传来的信息加以分析加工。当有触摸操作发生时,将位置信息转换成相应的坐标,传给综合显示单元主机[3]。
红外发光管在合适的电流驱动下,发出红外线。同一对管内的接收管负责接收该红外线,输出电压信号,经过滤波电路后供A/D转换器进行电压采集,控制系统经过运算后判断是否发生触摸,并计算触摸位置坐标[4]。系统构成见图4。
硬件设计的目标是能够按照一定顺序实现红外对管的发射和接收。控制电路的终端输出当前工作的接收管集电极电压,需在滤波处理后进行模数转换,供CPU采集和处理[5]。采用FPGA作为红外触摸屏电路的CPU,控制“灯阵”中各对管的通断和输出电压采集和计算。
3.3 红外对管的选取及控制电路设计
红外触摸屏作为配套设备,镶嵌在仪表设备表面。为达到人机工效学要求,红外屏的高度应该越短越好,边框宽度越窄越好。触摸屏电路板拟采用板材中间掏空,器件分布四周边框的一体化设计。对于红外发射电路,如果红外触摸屏上的红外发射管同时发光,会相互干扰,所以电路设计为使红外发射管依次发光。相应地,红外接收管依次接收同一对管内红外发射管的红外线,每一个对管独立工作。红外发射管和红外接收管是红外触摸屏所必须的器件,在满足要求的情况下尽量选用小型化器件。
红外发射管选用台湾亿光公司的IR26-51CL110TR8,采用双端小型表贴封装,具有低导通电压,与红外接收管匹配性强,不含铅和高分子聚合物等污染物,发射功率相对较大等优点。它的峰值波长是940 nm(工作电流为20 mA时)。光敏三极管选用该公司的PT26-51B/TR8,采用双端小型表贴封装,具有响应时间短,灵敏度高,结电容小,不含铅和高分子聚合物等污染物,尤其适用于红外接收[5]。它的灵敏度峰值波长[6]是940 nm。根据液晶屏尺寸和红外器件的尺寸,分布数量为横向对管44对,纵向对管33对。每一对对管的基本工作电路见图5。当发射管不工作时,输出电压相当于电源电压;当发射管发射红外线时,输出电压下降至某点。
红外发射管和光敏接收管分别组成“灯阵”。横向发射管灯阵及控制电路图见图6,纵向发射管电路设计情况相同。红外发射管的工作电流为32.5 mA。由于集成电路的输出无法负荷该工作电流,采用开关三极管电路进行通断控制,发射管正极由54AC138和PNP型三极管控制接通电源,负极由54HC238和NPN型三极管控制接地。两端译码器的控制线组成发射管矩阵电路。
红外接收管采用台湾亿光公司的PT26-51B-TR8型光敏三极管,与红外发射管配对使用。接收电路采用三极管共射放大电路,接收管工作在放大区。由RGCC4051模拟开关控制三极管集电极与电源端导通,54AC138控制发射极接地。为保证红外发射管与相对的接收管同步工作,采用与发射管相同的控制信号,横向接收电路图见图7。纵向接收管电路设计情况相同。
3.4 模数转换电路
在红外接收管接收到红外信号后,集电极电压会发生显著变化,通过A/D转换器采集该电压判断该对管位置是否发生遮挡。控制电路的终端输出当前工作的接收管集电极电压,需在滤波处理后进行模/数转换,供CPU采集和处理。
4 算法设计
对于红外触摸屏,当有触摸操作时,只要明确触摸物体的边界,即可以中心点作为触摸位置。根据红外屏的特性,在受到光干扰时运行不稳定,在设计时需考虑提高抗光干扰能力。软件采用了如下设计方法:
在电路加电后依次对所有对管进行初始化,分别记录第n个对管不发射红外线和发射红外线全通过时的输出电压,并计算差值ΔUno。由于接收三极管工作在放大状态,理想情况下,其差值ΔUno仅为红外发射造成的电压降,与干扰信号无关。在不同环境下,器件参数会发生漂移,该压差在长时间跨度内有可能有较大变化,但在短时间相近的两次采集,其变化量可以忽略。
在完成初始化后,顺序对对管的状态进行扫描。每个对管扫描时均需计算前述电压差ΔUno,若大于前一次记录值的某一范围(如80%),则认为该对管没有被遮挡,更新该数据,继续扫描下一个。
若发生遮挡,则记录当前对管序号n1,继续扫描至找到最后一个被遮挡的对管,记为n2。对于红外对管的光束发生部分遮挡时,当前输出电压差ΔUn1与无遮挡状态下的ΔUn1o的比值与通过的红外“光柱”占整个发射管“光柱”宽度的比值是相同的,可以计算出遮挡物边界与该对管的“光柱”一侧边缘的距离。由于“光柱”的边界与对管序号是已知的线性的关系,可以计算出触摸物两边界的位置,其中心点即为触摸位置。当只有一个对管被遮挡时,另一边界无法确定,触摸位置定为该对管的中心点。
5 结语
常用的触摸屏类型中红外触摸屏可用手指、笔或任何可阻挡光线的物体来触摸,不容易受到因操作不当而造成的人为损害。由于不对检测器件触碰,与使用者的使用频率没有关系,其工作寿命取决于工作电路的寿命,因此使用寿命长,其环境适应性较好,稳定性高,无基板框架结构安装方便,与液晶屏加固冲突较小(液晶屏加固需使用钢化玻璃加固并在表面进行防飞溅处理,在其表面再安装带透明基板的触摸屏,需考虑两者之间折射、反光,基板强度等问题),同时红外触摸屏驱动电路设计相对简单,电路的可靠性高。由于工作原理和器件特性,在高低温及真空等条件下均能稳定可靠的工作,满足航天特殊环境下使用的要求。
本文通过对红外式触摸屏原理的研究、载人航天器仪表系统红外触摸屏分辨能力的分析,根据载人航天器仪表系统的具体要求设计了一种结构简单、抗干扰能力强的红外触摸屏的硬件电路。目前商用触摸屏技术已经相当成熟,但是要触摸屏技术应用到载人航天器上,还需要做进一步的研究工作。这部分工作主要包括热设计及分析、抗力学环境设计、抗辐射环境设计、电磁兼容设计及静电防护设计。
参考文献
[1]李方园.触摸屏工程应用[M].北京:电子工业出版社,2008.
[2]戎志刚,郝炳焜,徐明.红外触摸屏原理与编程[M].合肥:中国科技大学出版社,1995.
[3]陈永甫.红外探测与控制电路[M].北京:人民邮电出版社,2004.
[4]郑磊,杨福兴.基于ATmega88的红外触摸屏设计[J].机电产品开发与创新,2010(1):27-29.
[5]汤世洪,刘成安,陈泉根.基于FPGA的高分辨率红外触摸屏的设计[J].电子设计工程,2011(22):163-166.
红外触摸 篇4
红外触摸屏是在触摸屏的四周布满红外接收管和红外发射管, 这些红外管在触摸屏的表面排列呈一一对应的位置关系, 形成一张由红外线布成的光网, 当有物体 (可以是手指, 带手套的手或任何触摸物体进入红外光网阻挡住某处的红外线发射接收时, 此点的横竖两个方向的接收红外管接收到的红外线的强弱就会发生变化, 设备通过了解红外线的接收情况的变化就能知道何处进行了触摸。
1 硬件系统设计
系统的核心以飞思卡尔公司的K60芯片为主控制器, 它首先控制移位寄存器74HC164和译码器74HC138来完成接收管和发射管的矩阵扫描。然后控制信号处理模块, 不断循环采集接收管的电压幅度值。当有触摸物进入触摸区域时, 由于对光线的遮挡, 对应的接收管采集到的电压值必然发生变化, 此时通过与之前的值进行比较和运算, 就可计算出触摸点的坐标。最后再将得到的坐标数据通过USB发送给PC机, 最终实现触摸定位功能。
2 单片机选择
硬件系统以Kinetis 60微控制器为核心, 具有处理速度快, 功耗低, 成本低等优点, 其片内128KB的RAM, 512KB的FLASH, 高达16位精度A/D采样模块和多通道的DMA模块完全满足了系统开发的需要。同时K60包含DSP内核, 通过库函数调用, 方便进行数学运算以及数字信号处理, 可以减轻硬件负担, 加快信号处理速度, 减小响应时间。
3 红外发送与接收电路设计
3.1 红外发射及扫描电路
红外发射及扫描电路如图1所示。工作原理是通过74HC164和74HC138构成n*n (实验以8*8做测试) 扫描电路。74HC164为移位寄存器, 它每次只使一个输出脚为高电平, 74HC138为38译码器, 它每次只使一个输出脚为低电平。图中Cn, Cn+1为74HC164输出脚, COUTn、COUTn+1为74HC138输出脚。当Cn输入低脉冲、COUTn为低电平时, 红外发射管点亮。改变Cn和COUTn, 即可使不同发射管点亮, 扩展此电路即可实现n*n扫描。
3.2 接收及放大电路
接收及放大电路如图2所示。电路利用了三极管的开关特性来实现接收管部分的矩阵扫描。取样电阻R109接在光敏三极管的集电极, 当接收管接收到相应波长的红外光时, 会产生一定大小的光电流, R109将电流信号转换成电压信号, Qn接入74LS151数据选择器输入端, 将电压信号输出。电路中的Cn与发射电路是相接的, 这样就能保证发射管和对应的接收管同时工作。
74LS151为互补输出的8选1数据选择器, 它配合74HC164也能实现n*n路矩阵扫描输出, 其输出引脚为Y脚, 该引脚接到下一级的放大器进行放大处理。
红外接收管被有效光照射后产生毫伏级别的电压信号, 需要对信号进行放大才能满足模数转换器AD的信号采集范围。我们选择低噪声、低失真的放大器AD8330对模拟光电信号进行放大, 在高增益下通过高速转换, 使其适合于作为模数转换系统的前置放大, 并且频带宽度折中较小, 设计中可以灵活的使用整个动态范围, 而不会影响带宽或者产生失真。
4 串口通信
本红外触摸屏采用串口通信方式, 把计算出的坐标信息发送给主控设备。设计中, 采用RS-232通信协议, 应用MAX3232芯片吧单片机的TTL电平转换为RS-232电平。应用串口通信, 通信协议简单, 硬件实现方便。
5 电源电路
由于主控芯片需要3.3V的电压, 因此需要对电源电压进行降压处理。本系统采用LM1117-3.3V进行稳压处理, LM1117-3.3V是一个正向低压降稳压器, 其输出固定电压为3.3V, 允许最大工作电流为800MA, 而且芯片内还集成了过热保护和限流电路, 因此能保证正常、稳定的给整个系统供电。最后, 稳压芯片的滤波电容要靠近引脚, 数字地和模拟地要分开。
6总结
系统扫描方面占用的时间最多, 约为总体时间的90%, 因此本文重点放在减少扫描时间上。系统调试过程中发现对元器件精确度要求比较高, 特别是运算放大器抗噪声能力和抗漂移能力要求很高。接收光信号产生的微弱电流非常小, 转化的电压值也很小, 如果精确度和抗噪声能力不够的话, 有用信号会被噪声所湮没, 所以本文又增加了滤波电容, 减少环境光对系统的干扰。
参考文献
[1]曾一雄.基于STM32的抗强光多点红外触摸屏的设计与实现[D].电子科技大学, 2013.
[2]吴娟.红外多点触摸技术的关键问题研究[D].合肥工业大学, 2012.
[3]刘建军, 叶新林, 刘新斌.一种识别红外触摸技术上多个触摸点的方法[P].中国:CN101075168A.
[4]Shneiderman B.Touch screens now offer compelling uses[J].Software, IEEE, 1991 (8) :93-94, 107.