- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四线电阻触摸屏校准算法小结
四线电阻触摸屏校准算法的实现
(一)
四线电阻屏的触摸板坐标和屏坐标有如下关系:
X0 = xfac * X + xoff;
Y0 = yfac * Y + yoff;
其中X0,Y0是屏的物理坐标,xfac,yfac为x,y方向的比例因子,xoff,yoff为x,y方向的偏移
量.
既然说到了校准,那么这四个量肯定是不变的,所以我们可以用至少两个屏的物理坐标点就
可算出这四个量,也即是两点校准法,由于按下屏后读出的是X,Y值,而校准时用的X0,Y0
也是已知的,那么就是解四元一次方程组了,算法如下:
(X1,Y1)和(X2,Y2)是用于校准时屏上显示的两个点,这两个点的坐标必须不一样,
是已知的;
(x1,y1)和(x2,y2)是校准时读取的被按下的两点的触摸板坐标值;
有如下方程组:
X1 = xfac * x1 + xoff; // 1
Y1 = yfac * y1 + yoff; // 2
X2 = xfac * x2 + xoff; // 3
Y2 = yfac * y2 + yoff; // 4
解得:
3 -1 得xfac = (X2 -X1)/(x2 -x1); //得到x轴方向的比例因子
3 + 1 得xoff = [(X2 + X1)-xfac(x2 + x1)]/2; //得到x轴方向的偏移量
4 -2 得yfac = (Y2 -Y1)/(y2 -y1); //得到y轴方向的比例因子
4 + 2 得yoff = [(Y2 + Y1)-yfac(y2 + y1)]/2; //得到y轴方向的偏移量
OK! 所谓的三点触摸校准,四点触摸校准只不过是加了可靠的滤波算法,因为触摸笔和屏
的接触不是很准确的!而像素点是很小的,所以通常都用四点校准,而且经验证这此算法是
必须加的,否则很不准,参见STM32学习笔记相关实验实验例程,已验证通过理论知识:
* 触摸屏实际是在普通的lcd 上贴了一个触摸膜, 没有原生的触摸屏
校准公式
X液晶= ax + by + c x,y是触摸屏
Y液晶= dx + ey + d
公式原理
X,Y的公司类似, 这里就已X液晶的公式为例
先说a
首先, 液晶和触摸膜的分辨率通常是不一样的, 如液晶分辨率640*480, 触摸膜分辨率
1024 * 768,
则这时就需要把 触摸膜的分辨率 乘一个系数才和液晶分辨率对应, 这里 就是ax中的a,
这里a = 640 / 1024 = 0.625
再说c
由于安装的机械问题, 可能有水平的平移, 这里就是c
最后说b
一开始还以为公式错了, 为什么x的东西还有y的事, 原理还是安装机械的问题, 若膜和lcd
安装有一定的倾斜角度y就不是0了
计算abcdef参数
对应abc和def来说是独立的, 类似的, 下面以计算abc为例
有3个未知数abc,显然需要3个方程
M[0] = A * x[0] + B * y[0] + C
M[1] = A * x[1] + B * y[1] + C
M[2] = A * x[2] + B * y[2] + C
M[0]~M[2]代表lcd 的坐标, x[0]~x[2], y[0]~y[2]是触摸膜坐标
这3个点不能在同一条直线上, 在校准过程中, 在源代码中给M[0]~M[2]赋值, 然后x[0]等是
从驱动读数,最后解方程即可
最后abc表达式,
F= (Xt[0] -Xt[2])*(Yt[1] -Yt[2]) -(Xt[1] -Xt[2])*(Yt[0] -Yt[2]);
//计算参数
A=(Xd0-Xd2)*(Yt[1]-Yt[2])-(Xd1-Xd2)*(Yt[0]-Yt[2]);
B=(Xt[0]-Xt[2])*(Xd1-Xd2)-(Xd0-Xd2)*(Xt[1]-Xt[2]);
C=Yt[0]*(Xt[2]*Xd1-Xt[1]*Xd2)+Yt[1]*(Xt[0]*Xd2-Xt[2]*Xd0)+Yt[2]*(Xt[1]*Xd0-Xt[0]*Xd1);
D=(Yd0 -Yd2)*(Yt[1] -Yt[2]) -(Yd1 -Yd2)*(Yt[0] -Yt[2]);
E=(Xt[0] -Xt[2])*(Yd1 -Yd2) -(Yd0 -Yd2)*(Xt[1] -Xt[2]);
F=Yt[0]*(Xt[2]*Yd1 -Xt[1]*Yd2) + Yt[1]*(Xt[0]*Yd2 -Xt[2]*Yd0) + Yt[2]*(Xt[1]*Yd0 -Xt[0]*Yd1);
2012-8-9
您可能关注的文档
最近下载
- 手术室的无菌操作.pptx VIP
- DLT1453-2015 输电线路铁塔防腐蚀保护涂装.docx VIP
- 2025年四川省国家工作人员法治素养测评(卷二).docx
- NB-T 47013.6-2015 承压设备无损检测 第6部分:涡流检测.pdf VIP
- 肠漏营养不良护理.pptx VIP
- NB∕T 47013.5-2015_承压设备无损检测 第5部分:渗透检测.pdf VIP
- 金风2.5MW机组的安全链系统介绍(主修)技术报告.ppt VIP
- 山西省辛安泉域岩溶水动态变化特征及成因分析.pdf VIP
- 2025年新人教版八年级上册历史全册知识点(背诵+默写).pdf
- NB-T47013.4-2015磁粉检测_承压设备无损检测标准释义.pdf VIP
原创力文档


文档评论(0)