分享

触摸屏校准

 败败0619 2013-03-14
1   电阻型触摸屏基本原理

电阻型触摸屏又称为电阻压力型触摸屏,它主要利用压力感应进行工作。对于点阵式触摸屏,为了提高人机交互的友好性,常在 显示屏上粘上一层透明的薄膜体,用于检测屏幕触摸输入信号,形成触摸屏。图1所示是一个电阻型触摸屏的横截面,其结构十分简单,由上下相对放置的两片玻璃 构成,玻璃的内表面涂上薄薄一层导电材料,并用一些小玻璃珠将导电表面隔开。当手指或触摸笔按压玻璃表面时,上层玻璃产生弯曲接触下层玻璃。这种结构中玻 璃珠间的距离决定了触摸屏的敏感度,通常这些玻璃非常小 ( 一般小于0.0 01 I mch) 。玻璃珠互相放置得越近,敏感度越小,压力就要越大,才能使两层玻璃片可靠接触。当手指接触屏幕,两导电层会出现一个接触点,因其中一面导电层接通Y轴方 向的5 V均匀电压场,使得侦测层的电压由零变为非零,控制器侦测到这个接通后,通过一个触摸屏控制器( A D转换器) 将电源的正、负极加到一块玻璃的导电层两端,并将得到的电压值与5 V相比,即可得触摸点的Y轴坐标,同理得出X轴的坐标,这就是电阻式技术触摸屏共同的最基本原理。由于存在机械误差和放大因素存在的误差,在触摸屏上所绘 制的图形和液晶屏上的图形,对应点的集合会有所偏差。在触摸屏上点击某一按钮或选择某项功能时,内置的软件便无法对触摸屏上的点击做出正确响应,而触摸屏 具有离散性,任两个触摸屏点密度都不能完全一致,所以几乎所有带阻性触摸屏的设备在出厂前均要经过一定的校准。校准是一种图形重建的过程,即将图片要经过 变换,换算出与液晶屏相一致的点集合。
校准方式有两点校准、三点校准、四点校准法等。其中校准点数越多,触摸屏数据越精确。

  
2 触摸屏校准算法分析

下面将主要以两点和三点校准法来分析触摸屏的校准算法 。  
2 .1 两点校准法 
两点校准法即为取触摸屏中左上角和右下角这两个点来校准触摸屏。大多数的校准都采取是两点校准法,现将两种常用的两点校准法做分析和比较。

2 .1.1第一种两点校准法

1) 先触摸并获取触摸屏左上角的坐标( lefttopx, lefttopy )。  
2) 再触摸并获取触摸屏右下角的坐标( rightbottomx, rightbottomy )。  
3) 计算水平方向的比率( ratiox) 和垂直方向的比率( ratioy ) ,注意这里的ratiox, ratioy是浮点数:  
r a t i o x = ( r i g h t b o t t o mx - l e f t t o p x ) / ( 触摸屏的宽度) ;  
r a t i o y = ( r i g h t b o t t o my - l e f t t o p y ) / ( 触摸屏的高度) ;                                                                   4 )假设液晶屏中的当前点的液晶屏坐标( X, Y ) :  
当前点的触摸屏的X坐标 = X   r a t i o x+ l e f t t o p x;  
当前点的触摸屏的Y坐标 = Y   r a t i o y+ l e f t t o p y;

2.1.2 第二种两点校准法

在触摸屏的左上角和右下角分别显示两个校 准图标( 长为2 0的十字光标) ,十字光标的交叉点即为校准点。这样可以固定好触摸屏上要校准的点,可以更加精确的校准,并且这里利用另一校准算法来实现。该算法实现为程序第一 次启动时将会进入校准模式,出现左上角的十字光标,请用户触摸十字交叉的中心,如果触摸点明显偏离十字叉 的中心,那么程序会要求重新校准。 

1 ) 首先在触摸屏左上角显示一长为2 0的十字光标,颜色为黑色。  
2) 触摸十字光标中心的交点,由于存在机械上的误差,在触摸十字中心时,附近的电压也会产生变化,这样在触摸屏上可能会取到很多个点,所以这里取触摸屏上得到的前1 6个点,分别求X轴、Y轴的坐标和s u mx、s u my 。  
3) 将寄存器中所求的和s u mx、s u my分别右移4位,由于寄存器中的数为二进制数,所以右移4位即为除以1 6,可求得1 6个点坐标的平均值( 在此不可直接除以1 6求值 ) :

er r x =s u m x >>4  
er r y =s umy >>4 

4) 用所得的两个平均值,与触摸屏所提供的经验值比较,若在经验值的范围内 则该值为合法的,将该值存入E2 ROM 内,这两个点即被称为基准点,输入的点就通过基准点进行校准。

  
2.2三点校准法 
三点校准法较之前面介绍的二点校准法更为精确。当触摸屏与液晶屏间的角度差很小时,经过推理可以假设触摸屏与液晶显示器各点之间的对应关系为( 设液晶显示器的坐标为( XL,YL ) ,触摸屏的坐标为( ×,Y) ) :

XL = AX+BY+C 
YL = DX+EY+F

因为要取三个点进行校准,所以存在六个变量,即要通过六个方程式求出液晶显示器的坐标。此处要求三个点尽量分散,最好为左上角、中间、右下角三点。得 :

XL1 = AX1+BY1+C

XL2 = AX2+BY2+C

XL3 = AX3+BY3+C

YL1 = DX1+EY1+F

YL2 = DX2+EY2+F

YL3 = DX3+EY3+F

可求 出 A、B、C、D、E、F的值,一旦这些参数值定下来,便可利用上面的方程组,通过触摸屏上的原始数据计算出它在LCD显示器上的对应点。

上述联立方程组的未知量已求解出,此处不再推导。这里直接跳过中间步骤得出最后结论,将K作为各方程式的公 分母,便可得出未知量 :

K = (X - X3) (Y2  - Y3) - (X2 - X3) (Y - Y3)  
A = (( X L l - X L 3)(Y 2 - Y3) - (X L2 - XL3)(Y1 - Y 3)) /K  
B = (( X1 - X 3 )( XL2 - X L3) - (X L1 - XL3)( X2 - X 3)) /K  
C = (Y(( X3XL2  - X2XL3) + Y2(XlXL3 - X3XL1) + Y3(X2XL1 一 X1XL2)) / K  
D = ((YL1 - YL3)(Y2 - Y3) - (YL2  - YL3)(Y1 - Y3)) /K  
E = ((X1 - X3)(YL2  - YL3) - (YLl - YL3)(X2 - X 3)) / K  
F = (Yl (X3YL2 - X2YL3) + Y2 (X1YL3 - X3YL1) + Y3(X2YL1 - X1YL2)) / K

基于此,通过三个校准点便可确定触摸屏与液晶屏的对应关系,进行校准。

  
3 触摸屏的校准举例

假设液晶屏( 320 x 240 ) 中有一个实心矩形作为按钮,此实心矩形的左上角坐标是( X1,Y1 ); 右下角的坐标是( X2,Y2 ) 。要校准此触摸屏, 则须按照下面的4个步骤 :  
1 ) 先测试触摸屏左上角的坐标( lefttopx, lefttopy )。  
2 ) 再测试触摸屏右下角的坐标( rightbottomx, rightbottomy )。  
3 ) 计算水平方向的比率( ratiox ) 和垂直方向的比率( ratioy ) :  
ratiox = ( rightbottomx - lefttopx ) / 320;  
ratioy = (rightbottomy - lefttopy ) / 240;  
4 ) 计算触摸屏中此按钮的左上角坐标(buttonx1, buttony1)和右下角坐标( buttonx2 ,buttony2 ) :  
buttonx1 = X1 * ratiox + lefttopx;  
buttony1 = Y1 * ratioy + lefttopy;  
buttonx2 = X2 * ratiox + lefttopx;
buttony2 = Y2 * ratioy + lefttopy;  
5 ) 在机器程序中判断从串口接收的触摸屏的坐标数据是否在上一步计算出的触摸屏按钮坐标的范围内。 由于三点校准具体的实现就是将取得的点代入公式即可,这里不在重复叙述 。

4 结束语

每个触摸屏在使用之前,都要进行校准;用户必须将获取的左上角和右下角坐标保存到用户自己的FLASH或者其它掉电时不会丢失的器件中,便于使用过程中校正读取的触摸屏数据如果此信息丢失,必须重新进行校准,重新将左上角和右下角坐标保存。  
本文介绍的三点校准算法是这三种校准算法中最优的,此算法首先确定误差源, 然后通过三个选定点导出触摸屏的校准矩阵,并用软件方法来实施点与点之间对应关系的校准。掌握这种技术,对降低嵌入式系统的成本至关重要。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多