首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于ARM7和VC平台的高分辨率红外触摸屏设计
来源:本站整理  作者:佚名  2009-12-30 11:59:42



由于刚接收的数据为VARIANT类型,故需将其转化为int型变量来进行以上坐标的组合。该转换过程是先将VARIANT类型变量赋值COle-SafeArray类,再利用COleSafeArray类中的成员函数将数据写入BYTE型数组中,最后将BYTE型数据转化为int型。

  2.2鼠标动作

  鼠标动作在触摸屏的应用中甚为重要。它主要包括鼠标的定位,鼠标的移动,鼠标的左键单击和双击,以及鼠标的右键单击。在VC++编程中,可通过使用API函数中的mouse_event来模拟鼠标事件,以实现以上的鼠标动作。其实现代码如下:

  定位:SetCursorPos(X,Y);

  左键单击:mouse_event((MOUSEEVENTF_LEFYDOWN,0,0,0,0);

  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

  在模拟鼠标动作的同时,一个很重要的处理步骤是屏蔽采集数据时受到的干扰。另外,使鼠标运动平滑化也不容忽视。


  图4是通过matlab软件对鼠标运动过程中的各坐标绘制的曲线图。通过曲线可以看到,硬件上的干扰会造成采集的坐标数据出现突变点,曲线上有很多毛刺。这也合理的解释了鼠标在运动过程会出现回跳和抖动,不能平滑运动的现象,因此必须屏蔽这些干扰。

  针对突变点,本文采用了比较法来克服。所谓比较法,就是将后一次接收到的坐标数据与前一次接收到的坐标数据做比较,并设置一定的域值范围。当比较得到的绝对值在该域值范围内时,则认为所作的动作是有效的。与此同时,还需比较前后数据的变化趋势是否一致,只有当数据的变化趋势一致,才认为鼠标的移动是有效的。

  针对毛刺,本文采用平均法和比较法来克服。所谓平均法,是将从第N组到第2N组的N组数据进行平均,然后将其作为第N组数据。这样可以有效的减少毛刺干扰。另外,也可以对前后两组数据进行比较,只有当比较得到的绝对值大于触摸屏的最小分辨率时,才认为鼠标发生移动,否则原地不动。通过这样的处理,可以解决鼠标抖动的问题。经过处理后的鼠标运动曲线如图5所示。


  3结束语

  本文介绍了基于ARM7控制器和VC实现的红外触摸屏设计方案,该方案以ARM7作为硬件的核心控制芯片,并通过其利用IO口对移位锁存器的控制来实现对发射管的驱动,利用地址线和数据线来实现对接收管的寻址和采样,以形成红外定位阵列,从而从硬件上完成了位置数据的采集。该方法可实现2046×768的高分辨率。而在软件上,通过VC++编程则可实现主机端的串口通信,模拟鼠标动作,并结合比较法和平均法对鼠标运动进行平滑化处理。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:7,429.68800 毫秒