触摸屏校正总结
- 格式:doc
- 大小:62.00 KB
- 文档页数:9
屏幕4点校准算法介绍屏幕4点校准算法是一种用于校准触摸屏幕的方法。
通过测量用户点击屏幕时的坐标,并与屏幕上实际显示的坐标进行比较,可以计算出触摸屏幕的误差,并进行校准,从而提高触摸屏幕的准确性和灵敏度。
本文将详细介绍屏幕4点校准算法的原理、步骤和应用。
原理屏幕4点校准算法的原理基于触摸屏幕在不同位置的响应误差是不一样的。
通常情况下,由于制造过程中的一些偏差和材料差异,触摸屏幕在边缘和角落的响应误差较大,而在中心位置的响应误差较小。
因此,通过在触摸屏幕的四个角落进行校准,可以得到一个精确的校准参数,从而减小触摸屏幕的误差。
步骤屏幕4点校准算法的步骤如下:步骤1:选择参考点首先,需要选择四个参考点,一般选取屏幕的四个角落。
这四个参考点的坐标需要事先确定,并且要尽可能分布在屏幕的不同位置。
步骤2:用户操作用户需要按照指示在屏幕上分别点击四个参考点位置。
系统会记录下用户点击时的坐标。
步骤3:计算校准参数根据用户点击时的坐标和事先确定的参考点坐标,可以计算出校准参数。
校准参数可以通过线性插值或者其他数学模型得到,具体的计算方法要根据具体情况而定。
步骤4:应用校准参数最后,将计算出的校准参数应用到触摸屏幕上,以校正触摸屏幕的误差。
校准参数可以通过软件或者硬件的方式进行应用。
应用屏幕4点校准算法广泛应用于各类触摸屏设备,例如智能手机、平板电脑、工控机等。
通过校准触摸屏幕,可以提高用户的触控体验,减少误操作,并且可以精确地控制光标的位置。
总结屏幕4点校准算法是一种用于校准触摸屏幕的方法,通过选择参考点、用户操作、计算校准参数和应用校准参数等步骤,可以提高触摸屏幕的准确性和灵敏度。
该算法广泛应用于各类触摸屏设备,可以改善用户的触摸体验。
触摸屏校正方法 The document was finally revised on 2021
用久了出现在触摸不准不灵敏的时候的校正方法:
1、将触摸屏背面的四个拨码开关,第一个设置为ON,其余三个拨码开关位置保持不变。
正常情况下四个拨码开关均在OFF的位置,如下图:
将第一个拨码开关设置为ON (上图)
2、按一下拨码开关旁边的黑色的Reset(复位)按钮或者将人机界面重新上电。
3、人机界面启动后,会要求对触控面板进行触控校正。
校正的方法为人机界面屏幕上出现的十字光标在什么位置就触控一下这个位置,直到十字光标消失,人机界面会继续往下执行启动过程
4、校正完之后,会弹出如下对话框,询问是否要恢复为出厂设置密码如下图,请选择NO 校正完成。
记得把第一个将第一个拨码开关设置回OFF
TK6070需要把J3端子的1-2短接就行,校准完成后在恢复到7-8短接。
电容屏触摸校准方法
电容屏触摸校准是确保触摸屏准确响应用户输入的重要步骤。
以下是电容屏触摸校准的一般方法:
1. 手动校准,在某些设备上,可以通过进入设置菜单中的触摸屏校准选项来手动进行校准。
在这种情况下,系统会显示一些目标点,用户需要按照指示用手指精确地点击这些点,以便系统能够准确地识别屏幕的触摸位置。
2. 自动校准,许多设备在启动时会自动进行触摸屏校准,系统会通过内置的算法自动识别触摸屏的特征并进行校准。
这种方法通常更简单,用户无需进行手动操作。
3. 使用校准工具,一些设备可能配备了专门的校准工具,用户可以通过这些工具进行更精细的触摸屏校准,以确保触摸屏在不同位置都能准确响应。
4. 软件校准,在一些情况下,触摸屏校准可以通过安装特定的校准软件来实现,这些软件通常提供了更多的参数和选项,用户可以根据自己的需求进行定制化的校准。
无论采用哪种方法,触摸屏校准都是非常重要的,它可以确保设备在日常使用中能够准确响应用户的操作,提高了用户体验。
在进行触摸屏校准时,用户需要确保环境安静,避免干扰,以获得最佳的校准效果。
同时,定期进行触摸屏校准也是一个好习惯,可以确保设备长期保持良好的触摸性能。
电容屏触摸校准方法标题:电容屏触摸校准方法详解随着科技的发展,智能手机、平板电脑等移动设备已经深入到我们的日常生活中。
这些设备大多使用电容式触摸屏,但有时我们会发现屏幕的触摸点与实际位置存在偏差,这时就需要进行触摸校准。
本文将详细介绍电容屏触摸校准的方法。
一、了解电容屏工作原理电容屏是通过人体的导电性来感知触控位置的。
电容屏由多层组成,其中最重要的是底层的玻璃板和顶层的保护层。
这两层之间有许多透明的电极,形成许多小电容。
当手指接触屏幕时,会改变这些小电容的电荷分布,从而计算出触控的位置。
二、电容屏触摸校准的重要性由于制造误差、环境温度变化等因素,电容屏的实际触摸位置可能会与设计位置产生偏差,这就需要我们进行触摸校准。
触摸校准可以确保屏幕的精确度,提高用户的操作体验。
三、电容屏触摸校准方法1. 使用系统自带的校准工具:大部分移动设备都有内置的触摸屏校准工具。
通常在设置菜单中可以找到。
按照提示完成一系列的操作,如点击指定的点,画线等,就可以完成校准。
2. 手动校准:如果设备没有提供校准工具,或者校准后仍然存在问题,我们可以尝试手动校准。
首先,我们需要找到设备的固件文件,然后使用文本编辑器打开。
在固件文件中,我们可以找到触摸屏的校准参数,包括X轴和Y轴的偏移量和灵敏度。
根据实际情况调整这些参数,然后保存并重新刷入固件,就可以完成校准。
四、注意事项1. 在进行触摸校准时,应保证设备电量充足,避免在过程中断电导致数据丢失。
2. 校准过程需要一定的耐心和细心,不要急躁,以免影响校准效果。
3. 如果多次校准后仍然无法解决问题,可能是硬件问题,需要找专业的维修人员处理。
总的来说,电容屏触摸校准是一项简单但重要的任务。
只有正确的校准,才能保证屏幕的准确性和稳定性,提高用户的使用体验。
希望以上的介绍能帮助大家更好地理解和掌握电容屏触摸校准的方法。
本文介绍的校准方法需要三个目标点/或测试点,然后依次进行触摸测试,以确定该显示屏特有的校准因数。
最后通过这些校准因数将触摸屏的对应点与实际显示的对应点完全对应起来。
误差的来源有几个误差源会影响触摸屏控制器,使之无法产生正确的对应点X和Y坐标。
最主要的误差源是电气噪声、机械误差及放大因子。
此外,操作者的误操作也会有所影响,如手指或铁笔按压时间不够长或压力不够大。
以上所有误差均会产生无用数据,必须对它进行纠正补偿才能使触摸屏正常工作。
在各种电气系统中,由热效应或电磁效应以及系统设计缺陷引起的电气噪声无处不在。
在触摸屏中,由于AD转换器的前端电路具有高输入阻抗,因此特别容易受到电气噪声的影响。
除了对带有触摸屏控制器的电路小心布局外,我们通常在AD转换器输入端增加低通滤波器来解决这一问题。
此外也可选择软件方法,舍弃AD转换中的最小的一、两位,并用算法将一些落在允许误差范围之外的数据点从采样流中去除。
这种软件算法也可消除由使用者产生的误差。
本文所阐述的校准方法可用来解决由于机械误差和放大因素引起的误差。
图3中的圆圈表示触摸屏下的LCD显示的图形,椭圆则表示当用户顺着LCD显示的图像画圈时,触摸屏对应点的集合,不过有所夸大。
这个重建的图形显然经过一系列旋转、移位和放大,而且在每个方向变换的参数不一样。
校准的重点则是将触摸屏上显示的这个重建图形经过变换,换算出与LCD显示的图形相一致的对应点集合。
校准的数学基础为了得到一个通用解决方案,我们将每个点描述为一个数学参量。
如图4所示,可将LCD显示器上的每个点当作一个矢量PD,而该点在触摸屏上对应的点则当作矢量P。
此外,我们假设一个参量M,通过这个参量可将PD与P进行换算,即PD=MP(1)这里的M是一个转换矩阵,也是我们要研究的对象。
如果能得到转换矩阵M中相关的数值,那么给定触摸屏上任一点P,我们就可换算出它在LCD显示器上的对应点PD。
现在假设LCD显示器上的任一点都与触摸屏上的某点相对应,但要经过旋转、移位和放大处理。
触摸屏校准原理在现代科技发展迅速的时代,触摸屏已经成为了我们日常生活中常见的输入设备之一。
无论是智能手机、平板电脑还是电脑显示屏,触摸屏的应用越来越广泛。
而触摸屏的校准原理则是保证其准确性和精确度的重要技术基础。
触摸屏校准的目的是为了确保用户在触摸屏上的操作能够准确地与屏幕上的相应位置对应起来。
如果触摸屏校准不准确,用户在触摸屏上的操作将会出现误差,从而降低了用户的体验和操作效率。
触摸屏校准的原理主要基于电容技术或者电阻技术。
其中,电容触摸屏是应用最广泛的一种。
电容触摸屏是利用触摸物体与触摸屏表面产生电容变化来实现触摸操作的。
而电阻触摸屏则是通过触摸物体对屏幕施加压力来改变电阻来实现触摸操作的。
触摸屏校准的过程可以分为两个主要步骤:标定和校对。
标定是指在出厂前对触摸屏进行的一系列校准操作,以确定触摸屏的坐标系。
而校对则是在触摸屏使用过程中,根据实际情况对触摸屏进行的校准操作,以确保触摸操作的准确性。
在标定过程中,首先需要将触摸屏分割成一个个小区域,并记录下每个小区域对应的坐标值。
然后,通过对这些小区域进行测试,测量触摸物体与触摸屏之间的电容变化或电阻变化,从而确定每个小区域的坐标值。
最后,将这些坐标值保存在触摸屏的控制器中,以便在实际使用中进行校对。
在校对过程中,触摸屏会根据用户的触摸操作与实际显示的位置进行比对,并计算出触摸物体的坐标值。
如果触摸物体的坐标与实际显示的位置不符合预期,触摸屏控制器会通过一系列算法进行校对,从而调整触摸物体的坐标值,以使其准确地与实际显示的位置对应起来。
触摸屏校准的原理虽然简单,但实际操作中存在一些挑战。
首先,触摸屏的校准需要考虑到不同触摸物体的特性,如大小、形状等,以确保校准的准确性。
其次,由于触摸屏的灵敏度和精度要求较高,对于校准的算法和方法也有一定的要求。
最后,触摸屏校准需要在不同环境下进行,如温度、湿度等因素也会对校准结果产生影响,因此需要进行相应的校准调整。
移植所遇到的问题分析与总结(elephant半原创)一:移植环境1:主机环境:Ret Hat Enterprise 52: 交叉工具链:开发平台:友善之臂mini2440+统宝寸屏4:所需的软件资源:(QT的移植是参考网上找到一篇较好的移植手册,但是此手册的作者不知道是无心之失还是咋的,给的资料有所保留。
不过思路比较清晰以及解析的比较详细,还是非常值得参考的)参照的文章链接地址为:二:交叉编译在移植好触摸屏的驱动后(在移植内核的时候完成),一般都要移植一个tslib来配合,在用户层对触摸屏的数据进行滤波和矫正,同时也可以给应用程序一个统一的接口,很多GUI都支持tslib的接口。
我移植到开发板的QT版本是QT4,所以用进行触摸屏校正,因为QT4只是支持(目前最新版),QT2支持的是版本,所以在移植过程中先要看清楚自己移植的是什么版本。
简单描述tslib校正触摸屏原理:Tslib是触摸屏驱动和应用层之间的适配层,它从触摸屏驱动处获得原始的设备坐标数据,通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的设备坐标转换为相应的屏幕坐标。
通过tslib/src/文件可以看出,在tslib中为应用层提供了2个主要的接口ts_open(),ts_close();ts_read()和ts_read_raw(),其中ts_read()为正常情况下的接口,ts_read_raw()为校准情况下使用的接口。
从tslib默认的文件中可以看出包括如下基本插件:(强烈建议通读这个配置文件并理解这个文件所写的内容)pthres 为Tslib 提供的触摸屏灵敏度门槛插件;variance 为Tslib提供的触摸屏滤波算法插件;dejitter 为Tslib 提供的触摸屏去噪算法插件;linear为Tslib 提供的触摸屏坐标变换插件。
tslib 从触摸屏驱动采样到的设备坐标进行处理再提供给应用端的过程大体如下: raw device --> variance --> dejitter --> linear --> applicationmodule module module module再来看看ts_calibrate主要做了哪些事情,校准情况下,tslib对驱动采样到的数据进行处理的一般过程如下:1。
触摸屏五点校正原理1. 物理坐标和逻辑坐标为了方便理解,我们首先引入2个概念,坐标和逻辑坐标。
物理坐标就是触摸屏上点的实际位置,我们通常以液晶上点的个数来度量。
逻辑坐标就是触摸屏上这一点被触摸时A/D转换后的坐标值。
我们假定液晶最左下角为坐标轴原点A,我们在液晶上再任取一点B (十字线交叉中心),B在X方向距离A 10个点,在Y方向距离A 20个点,那么我们就说液晶上B点所正对的解摸屏上这一点的物理坐标为(10,20)。
如果我们触摸这一点时得到的X向A/D转换值为100,Y向A/D,转换值为200,我们就说这一点的逻辑坐标为(100,200)。
2逻辑坐标的计算由于电阻式触摸屏的电压成线性均匀分布,那么A/D转换后的坐标也成线性。
假如我们将液晶最左下角点对应的解摸屏上的点定为物理坐标原点A其物理坐标记为(XA=0,YA=0)其逻辑坐标记为(XLA,YLA)(不一定为0)。
那么触摸屏上任意一点B 的逻辑坐标可表达为:XLB=XLA+KXXBYLB=YLA+KYYB 式2-1其中KX、KY分别为触摸屏X方向和Y方向的因子系数,这就像弹簧一样(我们知道弹簧也是线性的),拉力与弹簧伸长正比。
KX、KY可能为正,也可能为负,这根据具体触摸屏安装的方向和特性。
每个液晶触摸屏,我们也应该单独计算每一个触摸屏的K系数。
如果A点不是坐标原点,也是任意一点式2-1可以表达成XLB=XLA+KX(XB-XA)YLB=YLA+KY(YB-YA) 式2-2由式2-2我们可以推出计算K系统的公式KX=(XLB-XLA)/(XB-XA)KY=(YLB-YLA)/(YB-YA) 式2-32.2.3五点法确定基坐标和K系统在液晶上固定的位置显示五个点,因为是固定的位置,所以这五个点的物理坐标是预知的。
这五个点不应太靠边,因为边缘点对应的触摸屏线性一般不太好。
(1)首先在ABCDE对应的位置逐步用尖状物触摸,得到五个点的逻辑坐标。
(2)分别比较A 和C、B和D的横坐标,如果差值不在允许范围(你自己规定一个即可,比如5),则重复操作(1)(2)步。
STM32f103的电阻触摸屏的五点校正算法由于电阻式触摸屏就是一种传感器,它利用压力感应进行控制,将矩形区域中触摸点(X,Y)的物理位置转换为代表 X坐标和 Y 坐标的电压。
这里先引入两个概念,物理坐标和逻辑坐标。
物理坐标指触摸屏上点的实际位置,通常以液晶上点的个数来度量。
逻辑坐标指这点被触摸时A/D 转换后的坐标值。
如图1,我们假定液晶最左下角为坐标轴原点A ,在液晶上任取一点B (十字线交叉中心),B 在X 方向距离A 10 个点,在Y 方向距离A20 个点,则这点的物理坐标为(10,20)。
如果我们触摸这一点时得到的X 向A/D 转换值为100,Y 向A/D 转换值为200,则这点的逻辑坐标为(100,200)。
常用的电阻式触摸屏矫正方法有两点校准法和三点校准法。
本文这里介绍的是结合了不同的电阻式触摸屏矫正法的优化算法:五点校正法。
其中主要的原理是使用4点矫正法的比例运算以及三点矫正法的基准点运算。
五点校正法优势在于可以更加精确的计算出X和Y方向的比例缩放系数,同时提供了中心基准点,对于一些线性电阻系数比较差电阻式触摸屏有很好的校正功能。
校正相关的变量主要有:x[5] , y[5] 五点定位的物理坐标xl[5] , yl[5] 五点定位的逻辑坐标KX , KY 横纵方向伸缩系数XLC , YLC 中心基点逻辑坐标XC , YC 中心基点物理坐标(数值采用LCD显示屏的物理长宽分辨率的一半)触摸屏常和点阵式液晶显示(LCD)屏叠加在一起配套使用,构成一个矩形的实际物理平面; 而由用户触摸的触摸点集合经过 A/D 转换器,得到具体显示坐标的集合,这个集合构成了一个逻辑平面。
由于存在误差,这两个平面并不重合,校准的作用就是要将逻辑平面映射到物理平面上,即得到触点在液晶屏上的位置坐标。
校准算法的中心思想也就是要建立这样一个映射函数现有的校准算法大多是基于线性校准, 即首先假定物理平面和逻辑平面之间的误差是线性误差,由旋转和偏移形成。
摘要:随着科技的不断发展,触摸屏技术已经广泛应用于各个领域。
为了更好地掌握这一技术,我参加了为期一个月的触摸屏实训课程。
通过这次实训,我对触摸屏技术有了更深入的了解,并在实际操作中提升了自身的技能。
以下是我对此次实训的心得体会。
一、实训背景随着智能手机、平板电脑等移动设备的普及,触摸屏技术得到了广泛关注。
为了紧跟时代步伐,提高自身的技能水平,我报名参加了本次触摸屏实训课程。
实训期间,我学习了触摸屏的工作原理、技术特点、应用领域以及相关软件的使用方法。
二、实训内容1. 触摸屏基础知识实训课程首先介绍了触摸屏的基本概念、工作原理、分类、技术特点等。
我了解到,触摸屏技术主要包括电阻式、电容式、红外式、表面声波式等类型,每种类型都有其独特的优点和适用场景。
2. 触摸屏硬件电路在了解了触摸屏的基本知识后,我们开始学习触摸屏的硬件电路。
实训课程中,我们学习了触摸屏电路的组成、工作原理、故障排查方法等。
通过实际操作,我掌握了触摸屏硬件电路的安装、调试和维修技巧。
3. 触摸屏软件编程实训课程还涉及了触摸屏软件编程,学习了如何使用触摸屏开发软件进行应用程序的开发。
我们学习了触摸屏编程的基本语法、常用控件、事件处理等。
通过实际编程练习,我提高了自己的编程能力。
4. 触摸屏应用案例实训课程中,我们学习了多个触摸屏应用案例,包括智能家电、医疗设备、教育设备等。
通过分析这些案例,我了解了触摸屏在各个领域的应用,为今后从事相关工作打下了基础。
三、实训心得体会1. 提升了理论知识通过本次实训,我对触摸屏技术有了全面而深入的了解。
不仅掌握了触摸屏的基本原理,还学会了触摸屏硬件电路的安装、调试和维修。
同时,对触摸屏软件编程也有了初步的认识。
2. 增强了实践能力实训课程注重理论与实践相结合,使我能够在实际操作中提升技能。
在实训过程中,我学会了如何解决实际工作中遇到的问题,提高了自己的动手能力。
3. 培养了团队协作精神实训课程以小组为单位进行,我们在共同完成项目的过程中,学会了沟通、协作。
触摸屏实验报告总结本次实验通过搭建触摸屏电路,利用Arduino开发板和触摸屏模块,成功实现了触摸屏的基本功能。
通过实验,我对触摸屏的工作原理和应用有了更深入的了解,并掌握了触摸屏的基本驱动方法和相关程序的编写。
在实验过程中,我首先学习了触摸屏的基本原理。
触摸屏是一种能够感知触摸输入的装置,通过触摸屏的表面与人体接触,实现对屏幕上物体的控制。
触摸屏一般由触摸传感器(感应器)和控制电路组成,其中触摸传感器负责感知触摸输入,而控制电路则负责将触摸信号转化成可识别的信号,并传递给处理器。
接着,我进行了电路搭建的实验。
通过连接Arduino开发板和触摸屏模块,搭建出了完整的触摸屏电路。
在其中,我需要注意触摸屏模块和Arduino开发板之间的引脚对应关系,确保电路连接正确。
在驱动程序编写方面,我使用了Arduino的开发环境,并结合触摸屏模块的相关文档,编写了相应的程序。
程序主要包括了触摸屏的初始化、触摸坐标的获取和触摸事件的处理等功能。
在编写过程中,我学会了如何使用Arduino的库函数来实现触摸屏的驱动,以及如何通过串口将触摸信息传输到计算机上进行处理。
在实验中,我通过触摸屏模块获取到了屏幕上不同位置的触摸坐标,并实现了触摸滑动和点击的功能。
通过实验,我深刻认识到触摸屏的应用非常广泛,例如手机、平板电脑、汽车导航系统等。
触摸屏提供了一种便捷的交互方式,使得用户能够更加直观地与设备进行交互操作。
总之,本次实验使我对触摸屏的工作原理和应用有了更深入的了解,并掌握了触摸屏的基本驱动方法和程序编写技巧。
通过实验,我不仅掌握了理论知识,还通过自己的动手实践获得了宝贵的实际经验。
这次实验对我今后的学习和工作都具有重要的指导意义,我将继续深入学习触摸屏技术,进一步应用于实际项目中。
触摸屏校正原理和方法张开俊2011.6.10不同于鼠标,触控板的相对坐标定位,触摸屏是绝对坐标系定位,其物理坐标需要和LCD屏上的坐标一一对应。
所以在触摸屏原厂生产出货前,以及我们产品在产线组装前,都需要通过特定的软件或整机系统软件进行校正。
1.触摸屏为什么需要校正触摸屏与LCD显示屏是两个不同的物理器件。
LCD处理的像素,例如我们通常所说的分辨率是600x800,实际就是指每行的宽度是600个像素,高度是800个像素,而触摸屏处理的数据是点的物理坐标,该坐标是通过触摸屏控制器采集到的。
两者之间需要一定的转换。
其次,在安装触摸屏时,不可避免的存在着一定的误差,如旋转,平移的,这同样需要校正解决。
再次,电阻式触摸屏的材料本身有差异而且随着时间的推移,其参数也会有所变化,因此需要经常性的校正(电容式触摸屏只需要一次校正即可,这是由两者不同的材料原理造成的,具体可参阅有关电阻式和电容式触摸屏对比的文章)2.如何校正触摸屏的校正过程一般为:依次在屏幕的几个不同位置显示某种标记(如"+"), 用触摸笔点击这些标记,完成校正。
如果P T(x, y)表示触摸屏上的一个点, P L(x, y)表示LCD上的一个点,校正的结果就是得到一个转换矩阵M, 使P L(x, y) = M·P T(x, y)。
3.校正原理我们知道二维几何变换包含三种平移、旋转和缩放。
这三者的矩阵表示为:平移M T:缩放M S:旋转M R:所以P L =M R·M T·M S·P T,将这个公式展开,其结果为:在上面的公式中,LCD上的坐标(X L 、Y L)和触摸屏上的坐标(X T 、Y T)是已知的,而其他的则是我们需要求的:θ, S Y, S X, T Y, S X共有5个变量,至少需要五个方程,因为每组点坐标(P L, P T)可以得到两个方程,因此我们需要采集三组点坐标。
(1)触摸屏为什么需要校正?触摸屏与LCD显示屏是两个不同的物理器件。
LCD处理的像素,例如我们通常所说的分辨率是600x800,实际就是指每行的宽度是600个像素,高度是800个像素,而触摸屏处理的数据是点的物理坐标,该坐标是通过触摸屏控制器采集到的。
两者之间需要一定的转换。
其次,在安装触摸屏时,不可避免的存在着一定的误差,如旋转,平移的,这同样需要校正解决。
再次,电阻式触摸屏的材料本身有差异而且随着时间的推移,其参数也会有所变化,因此需要经常性的校正(电容式触摸屏只需要一次校正即可,这是由两者不同的材料原理造成的,具体可参阅有关电阻式和电容式触摸屏对比的文章)(2)如何校正?触摸屏的校正过程一般为:依次在屏幕的几个不同位置显示某种标记(如"+"), 用触摸笔点击这些标记,完成校正。
如果P T(x, y)表示触摸屏上的一个点, P L(x, y)表示LCD上的一个点,校正的结果就是得到一个转换矩阵M, 使P L(x, y) = M·P T(x, y)。
(3) 校正原理我们知道二维几何变换包含三种平移、旋转和缩放。
这三者的矩阵表示为:平移M T:缩放M S:旋转M R:所以 P L =M R·M T·M S·P T,将这个公式展开,其结果为:在上面的公式中,LCD上的坐标(X L 、Y L)和触摸屏上的坐标(X T 、Y T)是已知的,而其他的则是我们需要求的:θ, S Y, S X, T Y, S X共有5个变量,至少需要五个方程,因为每组点坐标(P L, P T)可以得到两个方程,因此我们需要采集三组点坐标。
但是上面的方程涉及三角函数,运算复杂,我们可以进一步简化为:变量虽然多了一个,但是解题过程简单多了,更适合计算机计算,而且采集点的数量仍然为3组。
假设LCD三个点的坐标为(X L1,Y L1),(X L2,Y L2),(X L2,Y L2), 对应触摸屏上的三个点是(X T1,Y T1),(X T2,Y T2)。
触摸屏工控组态实训课总结近年来,随着工业自动化的快速发展,触摸屏工控系统在工业控制领域中扮演着越来越重要的角色。
触摸屏工控组态实训课作为工控专业学生必修的一门实践课程,旨在培养学生对触摸屏工控系统的理解和操作能力。
通过本学期的学习和实训,我收获颇丰,现将此课程的总结如下。
在触摸屏工控组态实训课中,我们学习了触摸屏的基本原理和操作方式。
触摸屏是一种能够感应人体触摸动作的输入设备,它能够将用户的触摸操作转化为相应的控制信号,从而实现对工控系统的控制。
在实训中,我们通过实际操作了解了触摸屏的各种操作方式,如点击、滑动、拖拽等,并学会了如何利用触摸屏对工控系统进行配置和调试。
触摸屏工控组态实训课还涵盖了触摸屏的组态软件的学习和应用。
组态软件是一种专门用于配置和设计触摸屏界面的工具,通过它我们可以根据工控系统的需求设计出相应的界面,并将各种控制元素和功能按照需要进行组合和配置。
在实训中,我们学习了多种组态软件的使用方法,并通过实际操作完成了一系列的组态任务,从而掌握了触摸屏界面的设计和配置技巧。
在触摸屏工控组态实训课中,我们还学习了触摸屏与其他工控设备的联动控制。
触摸屏通常作为工控系统的人机交互界面,与其他设备(如PLC、变频器等)进行联动,实现对工业过程的监控和控制。
在实训中,我们学习了触摸屏与其他设备之间的通信协议和接口配置,并通过实际操作实现了触摸屏与PLC的联动控制,深入理解了触摸屏在工业自动化中的应用。
触摸屏工控组态实训课还重点培养了我们的故障排除和问题解决能力。
在实训过程中,我们经常会遇到各种故障和问题,如触摸屏无法正常工作、界面显示异常等。
通过仔细分析和排查,我们学会了快速定位和解决问题的方法,并通过实际操作不断提高了自己的技能。
总的来说,触摸屏工控组态实训课是一门非常实用和重要的课程,通过学习和实践,我们不仅掌握了触摸屏的基本原理和操作技巧,还学会了使用组态软件进行界面设计和配置,以及与其他工控设备的联动控制。
触摸屏为什么点不准之触摸屏校准教程嵌入式环境下,触摸屏是鼠标的替代也是升级输入设备,下面我们来研究一下触摸屏。
1.基础知识触摸屏的原理这里不讲,只说下大体思路,触摸屏硬件能够接收到来自用于的触摸,通过若干方式,把数据转换成坐标,此时,坐标是物理坐标,即触摸屏的坐标,而不是显示设备的坐标,显示设备的坐标由软件来定义,而触摸屏的物理坐标是固定的。
所以,当我们点击触摸屏,数据被送给驱动,驱动送给应用程序时,我们得到的数据还不是真正的显示设备数据哦,比如点击一点,硬件传来的是(189,123),(我们约定x在前),这时如果我们说,屏幕上的(189,123)点有点击,这时不正确的,这个很容易明白的,物理的点只是采样到的点,并不是真正意义上的显示设备的坐标,毕竟显示坐标由我们来定。
那么怎么办呢?~这时,需要校准触摸屏,所有的触摸屏使用前,必须要经过校准。
2.触摸屏校准原理以上说了触摸屏需要校准的原因,问题出在,物理坐标和屏幕坐标并不匹配,不匹配有两个方面:第一,物理坐标的1个单位和屏幕坐标的1个单位并不相等,我们知道屏幕坐标1个单位一般是一个像素,而物理坐标的1个单位并不是1个像素.第二,假设我们把屏幕的左上角定义为(0,0),那么触摸屏的左上角的物理坐标并不是(0,0)(我们点击之后的物理采样数据)。
综上,校准有两个方面:第一,物理采样坐标与屏幕像素坐标的对应关系,也就是伸缩系数,即单位物理采样数据代表几个单位屏幕像素数据,x坐标和y坐标各有一个伸缩系数,分别记作:xScale和yScale。
计算方法很简单,为了精确,可以采样屏幕上的四个点,让用户点击,比如(20,20),(20,200),(300, 200),(300,20),通过横着的线段除以物理采样的数据线段,得到了x的伸缩系数。
同理可以得到y的伸缩系数。
第二,物理坐标的相对于屏幕像素坐标的偏移,假如我们不计算偏移,只计算伸缩系数的话,假设用户在屏幕点(20,20)点击,我们经过转换物理采样数据,即乘上伸缩系数,发现,校准后的数据并不是(20,20)点,原因就是因为有偏移,原因是触摸屏的物理采样数据,在左上角并不是(0,0),而是某个正数对,采样到的数据不会是0的,这就是偏移产生的原因,所以,在计算过伸缩系数之后,比如点击屏幕(20,20),采样到的数据是(45,78),而第一步计算出的伸缩系数分别是0.78和0.67,那么物理坐标转换成屏幕坐标后是(45*0.78,78*0.67),此时虽然我们得到了物理坐标对应的屏幕坐标,但是现在屏幕坐标和我们(20,20)所在的屏幕坐标并不在一个坐标系,即(0,0)点不同,所以我们要减去一个坐标系偏移,假设分别是xOffset和yOffset,那么两个坐标做差便得到了xOffset和yOffset。
触屏三点校准法
1.两点校准法:
关系:
X = k1* x + datx;
Y = k2* y + daty;
其中X,Y是屏的物理坐标(液晶屏的坐标),x,y是屏逻辑坐标(触屏的坐标)k1,k2为x,y⽅向的⽐例因⼦,datx,daty为x,y⽅向的迁移量.四个未知数我们就需要四个⽅程(其实是两组独⽴的⽅程),所以我们就在液晶屏指定的物理坐标(X,Y)位置显⽰我们校准符号然后通过点击触屏读出x,y带⼊上⾯的式⼦求出k1,k2,datx,daty,以后就通过上⾯的关系将物理坐标和逻辑坐标联系起来了,但是我们在装屏的时候物理坐标和逻辑坐标不仅仅是⽔平或者垂直上⾯的偏差还有⾓度上⾯的偏差(就是物理坐标系的x轴和逻辑坐标的y轴不是垂直的),那么上⾯的⽅程就不实⽤了,为解决这个问题就诞⽣了三点校准法。
2.三点校准法:
关系:
X = k1* x + k3*y+datx;
Y = k2* y +k4*x+ daty;
其中k1,k2,datx,daty,,与上⾯的意义相同,k3,k4就是⾓度偏差带来的⽐例系数,按照上⾯⽅法⼀样设置物理坐标(X,Y)液晶显⽰校准点,然后通过点击校准点读出逻辑坐标x,y带⼊⽅程解出k1,k2,k3,k4,datx,daty这⼉必须⽤三个点才能够解出来所以叫三点校准法。
触摸屏实验报告总结
本次实验旨在通过使用触摸屏控制器和传感器来实现对屏幕上图像的控制。
我们使用了Arduino开发板作为控制平台,并使用了一个简单的触摸屏模块。
在实验中,我们首先编写了代码来检测触摸屏上的触摸事件,然后使用这些事件来控制屏幕上的LED灯的亮度。
实验过程中,我们遇到了一些问题。
我们需要学习如何正确地连接触摸屏模块和Arduino开发板,并设置正确的引脚。
我们需要了解如何编写代码来检测触摸屏上的触摸事件,并将这些事件转换为控制LED灯亮度的指令。
我们需要调试代码以确保它可以正常工作。
经过多次尝试和修改后,我们成功地实现了对屏幕上图像的控制。
我们可以通过轻触屏幕的不同区域来改变LED灯的亮度,从而实现对图像的控制。
此外,我们还添加了一些额外的功能,例如双击屏幕时切换不同的图像,以及长按屏幕时使LED灯闪烁。
总的来说,这次实验让我们深入了解了触摸屏控制器和传感器的工作原理,并学会了如何使用它们来实现对屏幕上图像的控制。
通过这个实验,我们也提高了自己的编程能力和解决问题的能力。
移植tslib-1.4所遇到的问题分析与总结(elephant半原创)一:移植环境1:主机环境:Ret Hat Enterprise 52: 交叉工具链:arm-linux-gcc-4.3.23: 开发平台:友善之臂mini2440+统宝3.5寸屏4:所需的软件资源:tslib-1.4.tar.gz qt-x11-opensource-src-4.5.3.tar.gz qt-embedded-opensource-src-4.5.3.tar.gz (QT的移植是参考网上找到一篇较好的移植手册,但是此手册的作者不知道是无心之失还是咋的,给的资料有所保留。
不过思路比较清晰以及解析的比较详细,还是非常值得参考的)参照的文章链接地址为:/view/242c91f24693daef5ef73d82.html二:交叉编译tslib-1.4在移植好触摸屏的驱动后(在移植内核的时候完成),一般都要移植一个tslib来配合,在用户层对触摸屏的数据进行滤波和矫正,同时也可以给应用程序一个统一的接口,很多GUI都支持tslib的接口。
我移植到开发板的QT版本是QT4,所以用tslib-1.4进行触摸屏校正,因为QT4只是支持tslib-1.4(目前最新版),QT2支持的是tslib-1.3版本,所以在移植过程中先要看清楚自己移植的是什么版本。
简单描述tslib校正触摸屏原理:Tslib是触摸屏驱动和应用层之间的适配层,它从触摸屏驱动处获得原始的设备坐标数据,通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的设备坐标转换为相应的屏幕坐标。
通过tslib/src/tslib.h文件可以看出,在tslib中为应用层提供了2个主要的接口ts_open(),ts_close();ts_read()和ts_read_raw(),其中ts_read()为正常情况下的接口,ts_read_raw()为校准情况下使用的接口。
从tslib默认的ts.conf文件中可以看出包括如下基本插件:(强烈建议通读这个配置文件并理解这个文件所写的内容)pthres 为Tslib 提供的触摸屏灵敏度门槛插件;variance 为Tslib提供的触摸屏滤波算法插件;dejitter 为Tslib 提供的触摸屏去噪算法插件;linear为Tslib 提供的触摸屏坐标变换插件。
tslib 从触摸屏驱动采样到的设备坐标进行处理再提供给应用端的过程大体如下:raw device --> variance --> dejitter --> linear --> applicationm odule m odule m odule m odule再来看看ts_calibrate主要做了哪些事情,校准情况下,tslib对驱动采样到的数据进行处理的一般过程如下:1。
读取屏上5个点的坐标(Top Left,Top Right,Bottom Left,Bottom Right,Center),在进行一系列的变换,取样的5个点,实际上是包含3个不同的X值,3个不同的Y值。
和scaling 值一共7个值,一起保存到/etc/pointercal中.(触摸屏校准文件)2.这个/etc/pointercal文件主要是供linear插件使用。
而我们每次的触摸的操作都进行多次触摸坐标变换。
至此已经找到解决问题的大体的方法了。
在校准触摸屏后只需及时的让linear插件再次读取新的/etc/pointeracal文件,这样新校准的坐标信息就及时的更新到上层应用。
下面就要考虑具体实现的问题了。
1。
从linear.c文件可以看出在该模块初始化时读取了/etc/pointercal文件。
只要在linear_read()中读取新的/etc/pointercal文件即可。
2。
校准后保存了一个新的pointercal文件,但ts_lib怎么知道当前的pointercal文件是应该读取的新文件。
刚开始的时候我们在linear.c的linear_read()函数中采取计数轮询的方式查看/etc/poinercal文件的最后更新时间,如果当前的更新时间大于上次更新时间,就去读取下pointercal文件。
我们暂且不说在一台刚下流水线的机器,它的rtc时间是不确定,再进行时间比较时会出现错误。
另外始终的轮询的方式和ts_lib的采样间隔时间值很小。
这样用户在进行触摸屏常按操作时,会非常明显的消耗系统资源。
3。
此时想到的办法就是进程通信,ts_lib是个动态库运行于系统中,他存在系统中不是以进程方式,但可以采取折衷方法,将调用ts_lib的进程号(实际上就是X的进程号)保存到一个配置文件中。
这样在使用ts_calibrate校准触摸屏后,利用信号的方式给ts_lib发送用户自定义信号,ts_lib的lineral.c中加一个简单的信号处理函数。
在接受到信号后就去读取下新的pointercal文件。
正常情况下不做任何的轮询和读取操作。
从上说的3个步骤中完全解决了校准后应用端触摸及时生效的问题。
还有个次要问题就是如何锁屏?这需要从内核入手了,查看linux2.6内核/drivers/input/evdev.c从该驱动提供的ioctl中看到对基于evdev的输入设备都提供EVIOCGRAB实现。
顾名思义,grab就是将当前的输入操作抓取到当前的操作中,让当前操作之外的所有应用端读不到触摸屏的触摸操作。
由驱动源码就很容易知道该如何实现锁屏解锁操作了。
源码如下:truct tsdev *ts;char *tsdevice = "/dev/input/event0";ts = ts_open(tsdevice, 0);int ts_tm pfd = ts_fd(ts);if (ts_tm pfd== -1){perror("ts_open");exit(1);}unsigned long val =1;int ioctl_ret=ioctl(ts_tm pfd,EVIOCGRAB,&val);printf("now lock the ts ioctl ret is:%d\n",ioctl_ret);if (ioctl_ret!=0){printf("Error: %s\n", strerror(errno));exit(1);}printf("lock the ts success \n");现在开始交叉编译tslib,在开始编译前需要确定自己的开发环境是否安装了autoconf、automake和libtool等软件包。
之前我的虚拟机并不是完全安装,在编译过程中出现很多问题,在这里我建议大家虚拟机完全安装。
不过如果确实不想重装系统的话,也可以手动安装,之前我自己就是手动安装的,虽然成功安装了tslib软件,但是在后续的QT移植过程中出现很多不可预知的错误,因此还是建议大家的虚拟机是完全安装的。
可以利用命令查看自己虚拟机上的autoconf版本:autoconf –V在开始编译tslib前还有一个问题需要特别注意:就是要确定在编译时所用的工具是交叉工具链而不是PC平台下的GCC工具,因为我要运行的平台是嵌入式ARM架构而不是PC的X86架构。
关于这一点,在网上找到很多资料都没有说明,几经寻找之下,终于在CSDN博客上看到网友yihui8的文章,对这一点作了说明。
(还是网友yihui8厚道)。
网友yihui8博客地址(详细解析tslib-1.4交叉编译):/yihui8/archive/2010/07/21/5753270.aspx第一步:解压源码包:tar xvzf tslib-1.4.tar.gzcd tslib第二步:进入tslib之后关键是要设置交叉编译环境(下面是根据我自己的实际情况所添加的)——如果不设置交叉编译环境,在移植到开发板时,执行./ts_calibrate程序时会出现以下错误:./ts_calibrate: line 1: syntax error :”(” unexpected.$export PATH=$PATH:/usr/local/arm/4.3.2/bin$export CC=arm-linux-gcc$export CXX=arm-linux-g++设置好交叉编译环境后就可以开始安装了:执行./autogen.sh执行./autogen.sh之后可能会有上述信息出现,但是我的机器上灰常不给力,只是显示出其中几行信息,一开始以为是出错,但是最后还是移植成功,证明这步就算只出现几行信息并无多大关系。
接着执行以下命令:./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes (1)有些开发板在执行此命令时需要添加—enable inputapi=no或者—enable input=no,至于是哪一个就需要根据tslib目录下的configure文件才可以知道。
(建议这个文件还是看一下)。
由于友善之臂mini2440的触摸屏驱动是支持ioctl操作的(在内核移植时做触摸屏驱动时可以看到源码中是支持ioctl的),因此我在这里并没有加上—enable inputapi=no.(2)如果没有加上ac_cv_func_malloc_0_nonnull=yes会出现交叉编译错误:undefined reference to `rpl_malloc'. 这是由ac_cv_func_malloc_0_nonnull检查引起的,为了不让它检查,产生一个cache文件daiq_tslib.cache,欺骗configure再执行:因此为了编译的顺利进行,在配置的时候需要加上这一句:ac_cv_func_malloc_0_nonnull=yes最后执行make & make instal l就可以在指定的路径上成功安装tslib。
我的指定路径是/usr/local/tslib/,在这个文件下安装成功的话会有四个目录:lib/ etc/ include/ bin/.安装好tslib之后将动态链接库文件拷贝到根文件系统中,(注意tslib依赖的是动态链接库文件),如果忘记拷贝动态链接库的话会出现以下错误:拷贝进去之后需要在自己的根文件系统的/etc/profile(在文件的一开始添加下面的内容)设置tslib的环境变量(要根据自己的实际情况来设置),下面是我的开发板所设置的有关tslib 的环境变量:#Ash profile#vim syntax=sh#No core files by defaultecho "Set ENV for tslib......"export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-arm(文件系统中QT 的安装目录)export TSLIB_ROOT=/usr/local/tslib (tslib的目录)export TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_TSDEVICE=/dev/input/event0export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercalexport POINTERCAL_FILE=$TSLIB_ROOT/etc/pointercalexport QWS_DISPLAY=LinuxFb:dev/fb0export set QWS_SIZE=320x240export QWS_MOUSE_PROTO=Tslib:/dev/input/event0export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD _LIBRARY_PATHecho “the env is successful”当配置好这些环境变量后下载到开发板,执行./ts_calibrate时如果出现:ts_open: No such file or directory说明环境变量设置有问题,可以用env命令查看一下有没有你刚才设置的环境变量。