2点触摸校准的实现
测试条件:
800*480分辨率显示屏,物理坐标值X轴范围0-799,Y轴0-479。
STMP811电阻触摸范围0 - 4095,其实就是一个差分ADC芯片。
实现思路:
点击了触摸板上的一点,会得到一个ADC采样值,含X轴和Y轴,那么如何将其转换为实际的物理坐标值? 实际上最简单的方法,建立一个比例关系即可:
采集的X轴ADC值乘以 799/4095,就是X物理坐标值。
采集的Y轴ADC值乘以 479/4095,就是Y物理坐标值。
考虑到触摸板的线性度差一点,坐标关系y = ax扩展为y = ax + b。
实现原理:
在左上角和右下角分别设置两个坐标点(LcdX0, LcdY0)和(LcdX1, LcdY1)然后让用户去点击,会得到两组ADC数值(AdcX0,AdcY0)和(AdcX1, AdcY1)
根据这四个坐标点,可以建立两组方程,一个X轴的,一个Y轴。
将数值(AdcX0, LcdX0)和(AdcX1, LcdX1)代入方程y = ax + b得到X轴方程 :y = (x - AdcX0)*(LcdX1 - LcdX0)/(AdcX1 - AdcX0) + LcdX0。
将数值(AdcY0, LcdY0)和(AdcY1, LcdY1)代入方程y = ax + b得到Y轴方程 :y = (x - AdcY0)*(LcdY1 - LcdY0)/(AdcY1 - AdcX0) + LcdY0。
后面采集到的ADC数值直接代入上面公式就可以得到校准后的物理坐标值。 |