1.9.9_ADC和触摸屏_较准原理_P

所谓校准,就是将触摸屏的坐标转换成LCD的坐标。

在开发板的LCD表面覆盖了一层触摸屏,点击触摸屏时,我们可以得到触点的坐标,但是显然这个坐标和LCD的坐标不是直接对应的,它们之间应该满足一定的转换公式。

触摸屏和LCD的位置关系如下图所示,下面是LCD(分辨率是480*272),上面覆盖了一层触摸屏。
在这里插入图片描述以LCD的左上方的顶点为原点,横向为X轴,竖向为Y轴建立一个平面直角坐标系。

那么LCD左上方顶点的坐标为(0, 0),右下方顶点的坐标为(479, 271),假设触摸屏的对应点坐标分别为(x1’, y1’),(x2’, y2’)。

问:怎么通过触点坐标(x’,y’)得到LCD对应点坐标(x,y)?

答:我们先单独看x坐标的转换,y坐标同理。

下图是LCD和TS的示意图,假设TS的触点坐标的x轴坐标是x’,对应LCD坐标的x轴坐标是x,TS左右顶点的坐标分别是x1’和x2’,那么有如下等式:(x’ - x1’)/(x2’ - x1’)= (x - 0)/(479 - 0)。

转换一下将x移到左边,其他参数移到右边得:
x = (479 - 0) / (x2’ - x1’) * (x’ - x1’) + 0
在这里插入图片描述
一般来说,我们不会选取边界上的点,因为边界上的点不容易点击,容易产生误差。

如下图所示,我们在显示屏上显示两个十字架,点击十字架的中心来选取校准点,x1’和x2’分别是两个校准点的触摸屏坐标,那么公式就变成:(x’ - x1’)/(x2’ - x1’)= (x - x1)/(x2 - x1)。

所以,x轴的转换公式为:
x = (x2 - x1)/ (x2’ - x1’) * (x’ - x1’) + x1

其中(x2 - x1)/ (x2’ - x1’)是长度系数K,x1’和x1分别是触摸屏和LCD校准点的x轴坐标。
在这里插入图片描述
同理,我们可以推出y轴的转换式为 y = (y2 - y1)/ (y2’ - y1’) * (y’ - y1’) + y1,其中y1,y2分别是LCD上y轴校准点的y坐标,y1’,y2’分别是触摸屏上y轴校准点的y坐标。

由于触摸屏制作工艺等问题,我们至少需要使用四个校准点,这样才可以保证参数的准确。

实际上,我们在LCD屏幕上显示了五个校准点,也就是五个十字架,分别为A,B,C,D,E五个点。通过A,B,C,D四个点来确定x轴和y轴的长度系数Kx和Ky。

其中,s1’和s1分别是触摸屏和LCD上A到B的距离,s2’和s2分别是触摸屏和LCD上D到C的距离,d1’和d1分别是触摸屏和LCD上A到D的距离,d2’和d2分别是触摸屏和LCD上B到C的距离。

通过这四个点我们就可以得到x轴和y轴的长度系数Kx和Ky:

  • Kx = (s1 + s2) / (s1’ + s2’)
  • Ky = (d1 + d2) / (d1’ + d2’)

由于LCD上的点坐标是确定的,所以s1 = s2,d1 = d2,那么上面两个式子就变成:

  • Kx = 2s / (s1’ + s2’)
  • Ky = 2d / (d1’ + d2’)

假设LCD的触摸点坐标为(x, y),那么对应的x轴和y的转换公式就变成了,其中xc,yc为E点的LCD坐标:

  • x = (x’ - xc’) * Kx + xc
  • y = (y’ - y1’) * Ky + yc

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值