0 导言
位移传感器把外界物体的位移信号转化为电学量,然后完结对位移量的检测,在实践工程运用中有着非常重要的效果,其好坏往往影响着整个体系的功用。位移检测技能经过多年开展现已适当老练,各种位移传感器纷繁呈现,但低本钱的位移传感器结构简略,准确度不高,线性度低,而高本钱的位移传感器尽管功用优异,但制造工艺难度大,难以遍及。所以开发一款低本钱、高功用的位移传感器具有很高的现实意义。鉴于此,本文提出了经过LabVIEW 编程完结准确度高、线性度好、丈量规模大、无需其他硬件设备的鼠标位移丈量办法。
1 鼠标的作业原理及位移丈量的完结办法
1.1 鼠标的作业原理与驱动程序
鼠标(mouse) 在现代个人电脑( PC)中被广泛运用,特别是图形用户界面(GUI)的盛行,鼠标现已不可或缺。大规模的出产使鼠标的价格很低,经过运用鼠标来测位移也使本钱趋于合理。经过数十年的技能开展,尤其是光电鼠标与激光鼠标的呈现,其精度得到极大进步。运用鼠标进行位移测定,具有高精度、低本钱的长处。鼠标尽管实践上是位移传感器,但其是为PC 机装备的外部输入设备,各种操作体系自带的鼠标驱动程序仅仅为了供给图形用户界面操作,无法满意遍及的位移丈量要求。
鼠标全称显现体系纵横方位指示器。光电鼠和机械鼠的最大区别是对轨道的检测办法,但其作业原理根本相同: 经过光栅信号传感器或光电传感器将位移转换为电脉冲信号,然后经过芯片将信号处理为数据包传递给PC 机。现在运用鼠标完结位移丈量的办法主要是运用单片机完结信号处理,完结位移检测功用,但此办法稳定性差,噪声较大,需求额定硬件体系,性价比低。在操作体系现已尽可能发掘了底层硬件数据通讯才能的情况下,从头对底层硬件通讯浪费资源。实践上,鼠标供给GUI 操作,经过鼠标移动操控显现设备上鼠标指针的像素移动。反之,能够运用指针运动的位移来确认实践鼠标的位移。
1.2 鼠标坐标体系与显现坐标体系的联系
鼠标坐标体系( 即实践位移) 与显现坐标体系经过映射来完结对应联系,二者坐标均运用平面直角坐标系。鼠标坐标体系在平面上恣意取一点作为原点,以相对原点的偏移量核算目标点的坐标值,然后以相对该目标点的偏移量核算下一新目标点的坐标值,以此类推。鼠标坐标体系中根本单位为米基。显现坐标体系同显现器的实践分辨率及作业办法有关。运用平面直角坐标系,原点在屏幕的左上方,横向代表X 方向,纵向代表Y 方向。图形办法下的横向、纵向的象素为根本单位进行衡量。例如,1024×768 分辨率时,显现坐标的横向和纵向坐标规模为0~ 1023,0~ 767。
鼠标坐标系到显现坐标系完结三个方面的映射:(1) 原点映射:( x 0 , y 0 ) = ( X 0, Y0 ) , 其间X 0 , Y0 ( 为屏幕原点坐标)值可恣意给定:( 2) 目标点映射:( x i , y i ) = ( x i- 1 +△x i , y i- 1 + △yi ) →(X i , Yi ) = X i- 1 + △X i , Yi- 1 + △Yi ( i =1, 2 ……, n, 横向下界≤ X i ≤ 横向上界,纵向下界≤Yi ≤纵向上界; ( 3) 根本单位映射: 在图形办法下( 米基到象素映射) ,△x i / x 方向份额因子= △X i , △yi / y 方向份额因子= △Yi ( i =1, 2……,n)。改动米基到象素的份额因子μ 影响鼠标灵敏度,μ 值决议着指针的移动速度,能够在PC 机w indow s 操作体系中的操控面板设置。因而无须改动鼠标底层的硬件驱动,实践鼠标的位移能够经过象素坐标来确认。但实践的显现坐标均有鸿沟约束,不能满意大规模的位移丈量。经过LabVIEW编程消除显现坐标系象素X i 与Yi 的上下界约束,经过丈量指针移动的象从来准确检测鼠标的位移量。
1. 3 位移丈量的LabVIEW 完结办法
经过库函数节点( CLF) 来访问动态链接库( DLL) 的办法,直接调用WINDOWS API 函数与LabVIEW 自行编制的库函数,使得LabVIEW 对鼠标的通讯得到大大的增强,一起也为操作体系底层函数支撑LabVIEW 供给了快捷,节省了内存空间。与鼠标相关的动态链接库函数如表1 所示,二者库函数有部分相同的功用。
表1 鼠标驱动程序接口函数
经过调用以上函数完结鼠标的位移丈量。具体办法为: 在显现坐标系内,坐标规模分红M × N 象素。位移的X 、Y 重量二者互不影响,编程时能够别离处理。办法完结的重点是消除操作体系固有的显现坐标系象素X i 与Yi 的上下界约束。首先要判别鼠标的运动方向,若鼠标向左移动,则其必定抵达坐标系右鸿沟。这时经过函数使象素X i 置零,Yi 不变,一起记载一次其过鸿沟。经过显现坐标( X i , Yi ) 与初始坐标( X 0 ,Y0 ) 之差与过鸿沟次数即可求出在显现坐标中鼠标指针的位移。其他运动方向的位移同理能够得到。最终经过份额因子μ将显现坐标映射到鼠标坐标系中,即可求出实践位移( x i ,yi ) 。具体的程序流程图如图1 所示。
图1 鼠标位移丈量程序流程图
LabVIEW 具有代码直观、层次明晰的图形化编程特色。在前面板上设置显现坐标为M×N = 500 × 300 的指针作业区域,并设置初始坐标在作业区的中心( 250, 150) .X 方向右位移消除鸿沟的部分程序框图如图2 所示,条件句子判别当指针抵达右鸿沟( 499, Yi ) 时,下一次循环将其设为( 0, Yi ) ,并将今后的位移添加1 倍M.循环体内运用了移位寄存器。