触摸屏校准分析

合集下载

电阻式触摸屏校准算法分析

电阻式触摸屏校准算法分析

电阻式触摸屏校准算法分析<一> 算法分析电阻式触摸屏在X,Y坐标方向上是线性的,比如S32采用的触摸屏,理论上Xmin=0,Xmax=1023,Ymin=0,Ymax=1023。

但是实际的触摸屏,往往是xmin>0,xmax<1023,ymin>0,ymax<1023。

所以就需要校准。

此文讨论的校准算法,其原理就是利用触摸屏的线性特性,针对被校准的触摸屏,获取其真正的x,y的范围,即xmin,ymin,xmax,ymax将其记录下来。

以后当触摸事件发生,将触摸屏报告的原始坐标(x,y)按比例投射到0~1023的坐标上即可。

注意,TP与LCD在相同的坐标方向上,具有相似性,即比例一致性。

看看对原始坐标的处理:If (x<xmin) x=0;Else if (x>xmax) x=xmax-xmin;Else x=1023*(x-xmin)/(xmax-xmin);If (y<ymin) y=0;Else if (y>ymax) y=ymax-ymin;Else y=1023*(y-ymin)/(ymax-ymin);可见,对原始坐标,先减去一个0位置的偏移量(x-xmin),然后求得它X范围上的比率((x-xmin)/(xmax-xmin)),再乘以1023,就得到了投射到(0~1023)上的坐标。

再看看校准算法。

在以下的讨论中,所谓物理坐标,指触摸屏上的坐标PT;所谓逻辑坐标,指LCD上的坐标PL。

LCD的宽度(W)对应TP的X方向,LCD的高度(H)对应TP的Y方向。

通过点击三个校准点Po(x,y),Px(x,y),Py(x,y),我们能得到图中内层方框的X,Y的物理坐标范围,即Xm = Px.x – Po.x Ym = Py.y – Po.y将此图投射到LCD上,有如下(物理值->逻辑值)的对应关系:Xl->Lwl,Xm->Lwm,Xr->Lwr,Yb->Lhb,Ym->Lhm,Yt->Lht。

关于触摸屏校准问题及触摸屏中断过程图解

关于触摸屏校准问题及触摸屏中断过程图解
触摸屏校准 在开始实现触摸屏功能之前,还需要解决一个问题,那就是触摸屏的校正。触摸屏和 LCD 是两种不同的物理器件。对于一个分辨率为 320×240 的 LCD,它的宽度为 320 个像素, 高度为 240 个像素。而触摸屏处理的数据是点的物理坐标,该坐标是通过触摸屏控制器采集 得到的。要想实现触摸屏上的物理坐标与 LCD 上的像素点坐标一一对应上,两者之间就需 要一定的转换,即校正。而且电阻式触摸屏由于自身的原因参数会发生变化,因此需要经常 性的校正。比较常见的校正方法是三点校正法,它的原理是:
保存下来的参数即可。
LCD 校准
3点校准:6个未知数K1,A1,B1,K2,A2,B2
校准公式:二元一次方程。
*
*
*
XZ1,YZ1 XJ1,YJ1 XZ1=K1XJ1+A1YJ1+B1 YZ1=K2XJ1+A2YJ1+B2
校准:5点
5点校准:10个未知数K1,A1,B1,K2,A2,B2
ቤተ መጻሕፍቲ ባይዱ
校准公式:二元二次方程。
设 LCD 上每个点 PD 的坐标为[XD,YD],触摸屏上每个点 PT 的坐标为[XT,YT]。要实现触 摸屏上的坐标转换为 LCD 上的坐标,需要下列公式进行转换: 30,30,28,32
XD=A×XT+B×YT+C
YD=D×XT+E×YT+F
因为其中一共有六个参数(A,B,C,D,E,F),因此只需要三个取样点就可以求得这六个参数。 这六个参数一旦确定下来,只要给出任意触摸屏上的坐标点 PT,代入这个公式,就可以得 到它所对应的 LCD 上像素点的坐标 PD。具体的求解过程就不细讲,只给出最终的结果。已 知 LCD 上 的 三 个 取 样 点 为 : PD0,PD1,PD2 , 它 们 所 对 应 的 触 摸 屏 上 的 三 个 点 为 : PT0,PT1,PT2。A,B,C,D,E,F 这六个参数最终的结果都是一个分式,而且都有一个共同的分母, 为:

触摸屏实验报告

触摸屏实验报告

触摸屏实验报告一、实验目的本次触摸屏实验的主要目的是深入了解触摸屏的工作原理、性能特点以及应用场景,并通过实际操作和测试,掌握触摸屏的基本使用方法和相关技术参数的测量。

二、实验设备1、触摸屏实验装置一套,包括触摸屏、控制器、数据线等。

2、电脑一台,用于运行测试软件和数据处理。

3、测量工具,如游标卡尺、万用表等。

三、实验原理触摸屏是一种可接收触头等输入讯号的感应式液晶显示装置。

从技术原理来区别触摸屏,可分为五个基本种类:电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏、表面声波技术触摸屏和近场成像技术触摸屏。

电阻触摸屏的屏体部分是一块多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层(ITO 膜),上面再盖有一层外表面硬化处理、光滑防刮的塑料层。

它的工作原理是通过压力使上下两层导电层在触摸点位置接触,从而实现触摸位置的检测。

电容触摸屏是利用人体的电流感应进行工作的。

电容屏是一块四层复合玻璃屏,玻璃屏的内表面和夹层各涂有一层 ITO(纳米铟锡金属氧化物),最外层是一薄层矽土玻璃保护层,夹层 ITO 涂层作为工作面,四个角上引出四个电极,内层 ITO 为屏蔽层以保证良好的工作环境。

当手指触摸在金属层上时,由于人体电场,用户和触摸屏表面形成一个耦合电容,对于高频电流来说,电容是直接导体,于是手指从接触点吸走一个很小的电流。

这个电流分别从触摸屏的四角上的电极中流出,并且流经这四个电极的电流与手指到四角的距离成正比,控制器通过对这四个电流比例的精确计算,得出触摸点的位置。

四、实验步骤1、连接设备将触摸屏实验装置与电脑正确连接,确保数据线连接牢固,设备电源正常接通。

2、安装驱动和测试软件在电脑上安装触摸屏的驱动程序,并运行相应的测试软件。

3、校准触摸屏按照测试软件的提示,进行触摸屏的校准操作,以确保触摸位置的准确性。

4、进行触摸测试使用手指或专用的触摸笔在触摸屏上进行点击、滑动、缩放等操作,观察触摸屏的响应情况,并记录相关数据。

屏幕4点校准算法

屏幕4点校准算法

屏幕4点校准算法介绍屏幕4点校准算法是一种用于校准触摸屏幕的方法。

通过测量用户点击屏幕时的坐标,并与屏幕上实际显示的坐标进行比较,可以计算出触摸屏幕的误差,并进行校准,从而提高触摸屏幕的准确性和灵敏度。

本文将详细介绍屏幕4点校准算法的原理、步骤和应用。

原理屏幕4点校准算法的原理基于触摸屏幕在不同位置的响应误差是不一样的。

通常情况下,由于制造过程中的一些偏差和材料差异,触摸屏幕在边缘和角落的响应误差较大,而在中心位置的响应误差较小。

因此,通过在触摸屏幕的四个角落进行校准,可以得到一个精确的校准参数,从而减小触摸屏幕的误差。

步骤屏幕4点校准算法的步骤如下:步骤1:选择参考点首先,需要选择四个参考点,一般选取屏幕的四个角落。

这四个参考点的坐标需要事先确定,并且要尽可能分布在屏幕的不同位置。

步骤2:用户操作用户需要按照指示在屏幕上分别点击四个参考点位置。

系统会记录下用户点击时的坐标。

步骤3:计算校准参数根据用户点击时的坐标和事先确定的参考点坐标,可以计算出校准参数。

校准参数可以通过线性插值或者其他数学模型得到,具体的计算方法要根据具体情况而定。

步骤4:应用校准参数最后,将计算出的校准参数应用到触摸屏幕上,以校正触摸屏幕的误差。

校准参数可以通过软件或者硬件的方式进行应用。

应用屏幕4点校准算法广泛应用于各类触摸屏设备,例如智能手机、平板电脑、工控机等。

通过校准触摸屏幕,可以提高用户的触控体验,减少误操作,并且可以精确地控制光标的位置。

总结屏幕4点校准算法是一种用于校准触摸屏幕的方法,通过选择参考点、用户操作、计算校准参数和应用校准参数等步骤,可以提高触摸屏幕的准确性和灵敏度。

该算法广泛应用于各类触摸屏设备,可以改善用户的触摸体验。

触摸屏校准

触摸屏校准

触摸屏校准
一、3.22触摸屏校准
触摸屏上电后迅速按住屏下方中部位置,当听到“吱”一声后抬手,进入一界面,按任意一点进入触摸校准画面,点击屏中心上出现的小黑点。

然后跟随小黑点点击屏的四个角。

返回。

二、6410;6408系列屏的校准
1.触摸屏上电后,当出现“心系健康,诚信天下”画面时,迅速快速的点击“心系健康”四个字的中部,进入设置界面。

点击“Touch Setting”按钮,在出现的选择框点“Touch Calibration”按钮,然后选择YES 键。

进入触摸校准画面,点屏中心的十字标中心2秒钟,抬起。

然后点击屏四个角落的十字图标,完成后点任意位置返回。

2.连接鼠标至触摸屏下端的USB口,重新上电,任意点击鼠标左键,进入系统设置画面。

点击“Touch Setting”按钮,在出现的选择框点“Touch Calibration”按钮,然后选择YES键。

进入触摸校准画面,点击屏中部的十字标中心。

然后点击屏四个角落的十字图标。

点任意位置返回。

三、8610;8608系列屏的校准
1、连接鼠标至触摸屏下端的USB口,重新上电,点击屏中间的触
摸校准按钮,点击屏中部的十字标中心。

然后点击屏四个角落
的十字图标。

点任意位置返回。

触摸屏上电后,点击屏中间的触摸校准按钮,进入校准画面。

点屏中心的十字标中心2秒钟,抬起。

然后点击屏四个角落的十字图标,完
成后点任意位置返回。

2、。

电容屏触摸校准方法

电容屏触摸校准方法

电容屏触摸校准方法
电容屏触摸校准是确保触摸屏准确响应用户输入的重要步骤。

以下是电容屏触摸校准的一般方法:
1. 手动校准,在某些设备上,可以通过进入设置菜单中的触摸屏校准选项来手动进行校准。

在这种情况下,系统会显示一些目标点,用户需要按照指示用手指精确地点击这些点,以便系统能够准确地识别屏幕的触摸位置。

2. 自动校准,许多设备在启动时会自动进行触摸屏校准,系统会通过内置的算法自动识别触摸屏的特征并进行校准。

这种方法通常更简单,用户无需进行手动操作。

3. 使用校准工具,一些设备可能配备了专门的校准工具,用户可以通过这些工具进行更精细的触摸屏校准,以确保触摸屏在不同位置都能准确响应。

4. 软件校准,在一些情况下,触摸屏校准可以通过安装特定的校准软件来实现,这些软件通常提供了更多的参数和选项,用户可以根据自己的需求进行定制化的校准。

无论采用哪种方法,触摸屏校准都是非常重要的,它可以确保设备在日常使用中能够准确响应用户的操作,提高了用户体验。

在进行触摸屏校准时,用户需要确保环境安静,避免干扰,以获得最佳的校准效果。

同时,定期进行触摸屏校准也是一个好习惯,可以确保设备长期保持良好的触摸性能。

电容屏触摸校准方法

电容屏触摸校准方法

电容屏触摸校准方法标题:电容屏触摸校准方法详解随着科技的发展,智能手机、平板电脑等移动设备已经深入到我们的日常生活中。

这些设备大多使用电容式触摸屏,但有时我们会发现屏幕的触摸点与实际位置存在偏差,这时就需要进行触摸校准。

本文将详细介绍电容屏触摸校准的方法。

一、了解电容屏工作原理电容屏是通过人体的导电性来感知触控位置的。

电容屏由多层组成,其中最重要的是底层的玻璃板和顶层的保护层。

这两层之间有许多透明的电极,形成许多小电容。

当手指接触屏幕时,会改变这些小电容的电荷分布,从而计算出触控的位置。

二、电容屏触摸校准的重要性由于制造误差、环境温度变化等因素,电容屏的实际触摸位置可能会与设计位置产生偏差,这就需要我们进行触摸校准。

触摸校准可以确保屏幕的精确度,提高用户的操作体验。

三、电容屏触摸校准方法1. 使用系统自带的校准工具:大部分移动设备都有内置的触摸屏校准工具。

通常在设置菜单中可以找到。

按照提示完成一系列的操作,如点击指定的点,画线等,就可以完成校准。

2. 手动校准:如果设备没有提供校准工具,或者校准后仍然存在问题,我们可以尝试手动校准。

首先,我们需要找到设备的固件文件,然后使用文本编辑器打开。

在固件文件中,我们可以找到触摸屏的校准参数,包括X轴和Y轴的偏移量和灵敏度。

根据实际情况调整这些参数,然后保存并重新刷入固件,就可以完成校准。

四、注意事项1. 在进行触摸校准时,应保证设备电量充足,避免在过程中断电导致数据丢失。

2. 校准过程需要一定的耐心和细心,不要急躁,以免影响校准效果。

3. 如果多次校准后仍然无法解决问题,可能是硬件问题,需要找专业的维修人员处理。

总的来说,电容屏触摸校准是一项简单但重要的任务。

只有正确的校准,才能保证屏幕的准确性和稳定性,提高用户的使用体验。

希望以上的介绍能帮助大家更好地理解和掌握电容屏触摸校准的方法。

触摸屏校准方法!!!

触摸屏校准方法!!!

触摸屏及ADS7846/HT20462009-05-15 10:17四线电阻式触摸屏,上图我们看到,触摸屏一般是上线和下线为一组。

左右线为一组,用万用表可以量到阻值。

上下的线阻为(Y+ Y-)阻值为 500欧----680欧。

左右线阻(X+ X-)阻值为 350欧----450欧。

jz4740,的中断计算程序#define SPCS_HIGH v_pSSIGPIORegs->group[SPI_EN_PIN/32].DATS = 1 <<(SPI_EN_PIN%32)#define SPCS_LOW v_pSSIGPIORegs->group[SPI_EN_PIN/32].DATC = 1 << (SPI_EN_PIN%32)#define SPCK_HIGH v_pSSIGPIORegs->group[SPI_CLK_PIN/32].DATS = 1 <<(SPI_CLK_PIN%32)#define SPCK_LOW v_pSSIGPIORegs->group[SPI_CLK_PIN/32].DATC = 1 <<(SPI_CLK_PIN%32)#define SPDA_HIGH v_pSSIGPIORegs->group[SPI_DATA_PIN/32].DATS = 1 <<(SPI_DATA_PIN%32)#define SPDA_LOW v_pSSIGPIORegs->group[SPI_DATA_PIN/32].DATC = 1 <<(SPI_DATA_PIN%32)#define SPDAIN v_pSSIGPIORegs->group[SPI_DATARX_PIN/32].PIN & (1 <<(SPI_DATARX_PIN % 32))//insert 0 ,not insert 1;#define SPDABUSY v_pSSIGPIORegs->group[SPI_BUSY_PIN/32].PIN & (1 <<(SPI_BUSY_PIN % 32))//insert 0 ,not insert 1;//------------------------------------------------------------------------------ void delay(int k){int i;for(i=0;i<k;i++);}void start()//SPI开始{SPCK_LOW;SPCS_HIGH;SPDA_HIGH;SPCK_HIGH;SPCS_LOW;}void WriteCharTo7843(unsigned char num) //SPI写数据{unsigned char count=0;SPCK_LOW;for(count=0;count<8;count++){if ( (num & 0x80) == 0x80)SPDA_HIGH;elseSPDA_LOW;SPCK_LOW;delay(3);SPCK_HIGH;delay(3);num <<= 1;}}int ReadFromCharFrom7843() //SPI 读数据{unsigned char count=0;WORD Num=0;for(count=0;count<12;count++){Num<<=1;SPCK_HIGH;delay(3); //下降沿有效SPCK_LOW;delay(3);if(SPDAIN)Num++;}return(Num);}INT WINAPI SpiISR( VOID ){while ( !g_SpiISR.bISTExist ){int X=0,Y=0,X_,y_;WaitForSingleObject( g_SpiISR.hIntrEvent, INFINITE );Sleep(30);//中断后延时以消除抖动,使得采样数据更准确start(); //启动SPIWriteCharTo7843(0x90); //送控制字 10010000 即用差分方式读X坐标详细请见有关资料delay(2);while(SPDABUSY);SPCK_HIGH; delay(4);SPCK_LOW; delay(4);X=ReadFromCharFrom7843();WriteCharTo7843(0xD0); //送控制字 11010000 即用差分方式读Y坐标详细请见有关资料delay(2);while(SPDABUSY);SPCK_HIGH; delay(4);SPCK_LOW; delay(4);Y=ReadFromCharFrom7843();SPCS_HIGH;RETAILMSG(1, (TEXT("SpiISR X=%d,Y=%d\r\n"),X,Y));InterruptDone( g_SpiISR.dwSwIntr );}return ( 0 );}控制字ADS7846的控制字由表1所列,其中S为数据传输起始标志位,该位必为“1”,A2~A0进行通道选择。

触摸屏校准原理

触摸屏校准原理

触摸屏校准原理在现代科技发展迅速的时代,触摸屏已经成为了我们日常生活中常见的输入设备之一。

无论是智能手机、平板电脑还是电脑显示屏,触摸屏的应用越来越广泛。

而触摸屏的校准原理则是保证其准确性和精确度的重要技术基础。

触摸屏校准的目的是为了确保用户在触摸屏上的操作能够准确地与屏幕上的相应位置对应起来。

如果触摸屏校准不准确,用户在触摸屏上的操作将会出现误差,从而降低了用户的体验和操作效率。

触摸屏校准的原理主要基于电容技术或者电阻技术。

其中,电容触摸屏是应用最广泛的一种。

电容触摸屏是利用触摸物体与触摸屏表面产生电容变化来实现触摸操作的。

而电阻触摸屏则是通过触摸物体对屏幕施加压力来改变电阻来实现触摸操作的。

触摸屏校准的过程可以分为两个主要步骤:标定和校对。

标定是指在出厂前对触摸屏进行的一系列校准操作,以确定触摸屏的坐标系。

而校对则是在触摸屏使用过程中,根据实际情况对触摸屏进行的校准操作,以确保触摸操作的准确性。

在标定过程中,首先需要将触摸屏分割成一个个小区域,并记录下每个小区域对应的坐标值。

然后,通过对这些小区域进行测试,测量触摸物体与触摸屏之间的电容变化或电阻变化,从而确定每个小区域的坐标值。

最后,将这些坐标值保存在触摸屏的控制器中,以便在实际使用中进行校对。

在校对过程中,触摸屏会根据用户的触摸操作与实际显示的位置进行比对,并计算出触摸物体的坐标值。

如果触摸物体的坐标与实际显示的位置不符合预期,触摸屏控制器会通过一系列算法进行校对,从而调整触摸物体的坐标值,以使其准确地与实际显示的位置对应起来。

触摸屏校准的原理虽然简单,但实际操作中存在一些挑战。

首先,触摸屏的校准需要考虑到不同触摸物体的特性,如大小、形状等,以确保校准的准确性。

其次,由于触摸屏的灵敏度和精度要求较高,对于校准的算法和方法也有一定的要求。

最后,触摸屏校准需要在不同环境下进行,如温度、湿度等因素也会对校准结果产生影响,因此需要进行相应的校准调整。

触摸屏校正总结

触摸屏校正总结

移植所遇到的问题分析与总结(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。

触摸屏校正原理和方法

触摸屏校正原理和方法

触摸屏校正原理和方法张开俊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)。

触摸屏为什么点不准之触摸屏校准教程

触摸屏为什么点不准之触摸屏校准教程

触摸屏为什么点不准之触摸屏校准教程嵌入式环境下,触摸屏是鼠标的替代也是升级输入设备,下面我们来研究一下触摸屏。

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这⼉必须⽤三个点才能够解出来所以叫三点校准法。

台达触摸屏校准方法

台达触摸屏校准方法

台达触摸屏校准方法
嘿,朋友们!今天咱就来讲讲台达触摸屏校准那点事儿。

你说这触摸屏啊,就像我们的手机屏幕一样,用久了可能就没那么准啦,就得校准一下,不然点这里它跑那里去了,多烦人呐!
咱先找到校准的入口,一般就在设置里面嘛,就跟你找手机设置差不多。

然后呢,就会出现校准的界面啦,这时候你就像在玩一个小游戏一样。

你看啊,屏幕上会出现一个一个的小点,就好像一个个小目标,你得用你的手指去准确地点击它们。

这就好像打靶一样,你得瞄得准准的,才能打中靶心呀!要是你点歪了,那可不行哦,就跟打靶脱靶了一样。

这时候你可别着急,慢慢来,一个一个点过去。

哎呀,你想想,要是你校准不好,以后用起来多别扭呀!就好比你走路走歪了,那能舒服吗?
校准的时候可得有点耐心呀,别嫌麻烦。

你想想,你平时用触摸屏的时候,要是不准确,那不是更麻烦嘛!所以呀,现在花点时间好好校准,以后用起来就顺畅多啦。

你说这台达触摸屏也是够厉害的,能让我们这么方便地操作各种设备。

但它也需要我们好好照顾它呀,就像我们照顾自己的宝贝一样。

等你校准完了,你就会发现,哇塞,这触摸屏用起来顺手多啦!就好像给它做了一次大保健一样,焕然一新呐!这感觉多棒呀!
反正呀,台达触摸屏校准这事儿,说难也不难,说简单也不简单。

关键是要细心,要有耐心。

别嫌我啰嗦啊,我这可都是为了你们好呀!你们要是不好好校准,以后用起来不顺手可别怪我没提醒你们哦!就这么着吧,大家赶紧去试试吧!。

如何校准触摸屏基准参数

如何校准触摸屏基准参数

如何校准触摸屏基准参数在触摸屏修理工作中,我们发觉电阻式触摸屏在嵌入式系统中用的较多,电阻式触摸屏可分为四线、五线、七线等几种,接下来,我们主要以WinCE触摸屏为例,分析如何校准触摸屏基准参数问题:在我们顺当完成驱动程序安装以及各种功能就都已经预备就绪了,现在就可以实际操作触摸屏幕了。

但一般来说,电阻式触摸屏需要校准,也就是说在驱动启动过程中MDD层要调用相应的DDSI函数来读取注册表中的校正数据校正触摸屏。

抱负状况下,校准程序只要在嵌入式设备初次加电测试过程中运行一次就可以了,参考值会被存储在非易失性存储器中,以免让用户在以后的加电启动期间再做校准。

不过,高质量的触摸屏驱动程序是应当要向用户供应一种进入校准例程的途径,从而在由于温度漂移或其它因素造成校准不精确时进行重新校准。

在抱负状况下,校正触摸屏基准只需两组原始数据,即在屏幕对角读取的最小和最大值。

但在实际应用中,由于很多电阻式触摸屏存在明显的非线性,假如只在最小和最大值之间简洁的插入位置数值会导致驱动程序特别的不精确。

因此,在WinCE中需要猎取多个校准点,常用的校准点数量为5个。

方法如下:1、首先驱动程序在函数DdsiTouchPanelGetDeviceCaps 中设置校准点的个数;2、是系统在TouchDriverCalibrationPointGet中猎取每个校准点的屏幕坐标;3、是在屏幕界面的校准点坐标处显示一个位置符号,用户需要精确地在位置符号按下触摸屏;4、驱动程序通过TouchPanelReadCalibrationPoint函数读取相应的触摸屏坐标值;5、然后再开头下一个校准点,直到循环设定的次数后将采集到的触摸屏坐标值和校准点屏幕坐标送到TouchPanelSetCalibration函数中进行处理,该函数将产生校准基准参数。

校准完成之后,触摸屏便可以开头正常的操作了。

关于电阻式触摸屏的线性校准问题

关于电阻式触摸屏的线性校准问题

关于电阻式触摸屏的线性校准问题1 引言阻性触摸屏与LCD 显示器上的各点很难完全准确配合,因此除了采用精确的机械装配技术校准之外,在使用之前还必须进行软件校准。

本文介绍的校准方法首先确定误差源,然后通过三个选定点导出触摸屏的校准矩阵,并用软件方法来实施点与点之间对应关系的校准。

掌握这种技术,对降低嵌入式系统的成本至关重要。

图1所示是一个阻性触摸屏的横截面,其结构十分简单,由上下相对放置的两层结构构成,FILM 和玻璃的内表面涂上薄薄一层导电材料,并用一些透明绝缘隔离点(绝缘点)将导电表面隔开。

当手指或铁笔按压玻璃表面时,上层FILM 产生弯曲接触下层玻璃。

这种结构中层间的距离决定了触摸屏的敏感度。

层间距离越近,敏感度越小,压力就要越大,以使两层结构可靠接触。

玻璃或图1 阻性触摸屏的横截面 图2 触摸屏的等效电路图2所示是触摸屏的等效电路。

通过一个触摸屏控制器(AD 转换器)将电源的正、负极加到一块玻璃的导电层两端,另一块玻璃上的导电层则起到一个电位计游标的作用。

在玻璃上不同的触摸点,导电的情况也不同,数字转换器上便会录得不同的测试电压值,然后控制器将录得的电压值转换成一个二维坐标:X 轴坐标和Y 坐标。

这些控制器每秒钟可进行200次或更多的采样。

采样率通常与背景噪声和控制器质量有关。

智能控制器还具备其它一些功能,如检测到触摸时中断CPU 、在检测到触摸前设定采样率连续进行采样。

没有触摸时,控制器处于待机状态。

由于阻性触摸屏结构简单、操作易懂、所需软硬件有多个厂商可供选择,因此可用于对成本敏感的设计中。

然而,由于触摸屏与它背后的显示器(LCD 或其它)间的对应点很难完全配合,因此几乎所有带阻性触摸屏的设备在出厂前均要经过一定的校准。

否则在触摸屏上点击某一按钮或选择某项功能时,内置的软件便无法对这一点击做出正确响应。

本文介绍的校准方法需要三个目标点/或测试点,然后依次进行触摸测试,以确定该显示屏特有的校准因数。

普洛菲斯触摸屏校准方法

普洛菲斯触摸屏校准方法

普洛菲斯触摸屏校准方法
嘿,你知道不?普洛菲斯触摸屏校准那可是超重要的事儿!校准方法其实不难,首先进入系统设置菜单,找到校准选项,就像在迷宫里找到宝藏的入口一样刺激。

然后按照屏幕上的指示,用触控笔或者手指轻轻点击那些标记点,这就好比在玩一场精准的打地鼠游戏,可有意思啦!一定要仔细点哦,不然校准不准确可就麻烦啦。

校准过程中安全稳定性那是杠杠的!只要你按照步骤来,就不会出啥岔子。

这就像走在平坦的大路上,稳稳当当的。

要是乱操作,那可就不好说了,说不定会像在崎岖的小路上开车一样,颠得七荤八素。

普洛菲斯触摸屏的应用场景那可多了去了。

在工业控制领域,就像一个得力的小助手,能让你轻松操作各种设备。

在商业展示方面,也能大放异彩,就像一个酷炫的魔术师,吸引着大家的目光。

它的优势也很明显呀,反应灵敏,就像一只机灵的小猴子,一点就通。

操作简单,就像玩一款容易上手的小游戏。

我给你讲个实际案例哈。

有一次在一个工厂里,设备的触摸屏有点不准了,工人们操作起来可费劲了。

后来进行了普洛菲斯触摸屏校准,哇塞,那效果简直绝了!就像给设备换了一双明亮的眼睛,操作起来顺顺当当的。

普洛菲斯触摸屏校准真的很重要,能让你的设备如虎添翼。

大家一定要重视起来,赶紧试试吧!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

触摸屏校准分析
----------Vector(2013-05-14) 1.基础知识
我们传统的鼠标是一种相对定位系统,只和前一次鼠标的位置坐标有关。

而触摸屏则是一种绝对坐标系统,要选哪就直接
点哪,与相对定位系统有着本质的区别。

绝对坐标系统的特点是每一次定位坐标与上一次定位坐标没有关系,每次触摸的数据通过校准转为屏幕上的坐标,不管在什么情况下,触摸屏这套坐标在同一点的输出数据是稳定的。

不过由于技术原理的原因,并不能保证同一点触摸每一次采样数据相同,不能保证绝对坐标定位,点不准,这就是触摸屏最怕出现的问题:漂移。

对于性能质量好的触摸屏来说,漂移的情况出现并不是很严重。

所以很多应用触摸屏的系统启动后,进入应用程序前,先要执行校准程序。

通常应用程序中使用的LCD坐标是以像素为单位的。

比如说:左上角的坐标是一组非0的数值,比如(20,20),而右下角的坐标为(620,460)。

这些点的坐标都是以像素为单位的,而从触摸屏中读出的是点的物理坐标,其坐标轴的方向、XY值的比例因子、
偏移量、缩放因子都与LCD坐标不同,图是LCD坐标和触摸屏的物理坐标的比较。

(友善之臂mini2440开发板采用这种对应关系)
2.触摸屏校准原理
以上说了触摸屏需要校准的原因,问题出在,物理坐标和屏幕坐标并不匹配,不匹配有两个方面:第一,物理坐标的1个单位和屏幕坐标的1个单位并不相等,我们知道屏幕坐标1个单位一般是一个像素,而物理坐标的1个单位并不是1个像素.第二,假设我们把屏幕的左上角定义为(0,0),那么触摸屏的左上角的物理坐标并不是(0,0)(我们点击之后的物理采样数据)。

LCD 坐标和触摸屏坐标对应关系如下:
Vx = xFactor*Px + xOffset //Vx:LCD 像素坐标,Px: 触摸屏物理坐标
Vy = yFactor*Py + yOffset //同上
综上,校准有两个方面:第一,物理采样坐标与屏幕像素坐标的对应关系,也就是伸缩系数,
即单位物理采样数据代表几个单位屏幕像素数据,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。

根据上面的四个参数,我们来举个例子,假如屏幕坐标左上角为(0,0),当我们点击屏幕,此时我们从驱动那里得到物理x和y数据,分别乘上xScale和yScale 得到相对屏幕坐标,加上(平移)xOffset和yOffset,得到了当前的屏幕坐标。

3.示例代码:
int pointBas[4][2] = //预先在屏上绘制出的四个十字标记
{
20, 20, //A
20, 300, //B
219, 300,//C
219, 20, //D
};
int pointGet[4][2] =
{
40, 274,
40, 60,
191, 60,
191, 274, //实际点按触摸屏得到的数值
};
STATUS PenCalibratePoint(void)
{
float tmpBas = 0.0;
float tmpGet = 0.0;
//xScale
tmpBas = pointBas[3][0] - pointBas[0][0];
//printf("tmpBas:%f\n",tmpBas);
tmpGet = pointGet[3][0] - pointGet[0][0];
//printf("tmpGet:%f\n",tmpGet);
_gPenConfig.xFactor = tmpBas/tmpGet;
printf("xFactor:%f\n",_gPenConfig.xFactor);
//yScale
tmpBas = pointBas[1][1] - pointBas[0][1];
tmpGet = pointGet[1][1] - pointGet[0][1];
_gPenConfig.yFactor = tmpBas/tmpGet;
printf("yFactor:%f\n",_gPenConfig.yFactor);
//xOffset
tmpBas = pointBas[3][0]-pointGet[3][0]*_gPenConfig.xFactor;
_gPenConfig.xOffset = tmpBas;
printf("xOffset:%f\n",_gPenConfig.xOffset);
//yOffset
tmpBas = pointBas[3][1]-pointGet[3][1]*_gPenConfig.yFactor;
_gPenConfig.yOffset = tmpBas;
printf("yOffset:%f\n",_gPenConfig.yOffset);
return 0;
}
U16 PenMapX(U16 x)
{
float tmp;
tmp=x*_gPenConfig.xFactor+_gPenConfig.xOffset;
return (U16)tmp;
}
U16 PenMapY(U16 y)
{
float tmp;
tmp=y*_gPenConfig.yFactor+_gPenConfig.yOffset;
return (U16)tmp;
}。

相关文档
最新文档