由于电阻式触摸屏就是一种传感器,它利用压力感应进行控制,将矩形区域中触摸点(X,Y)的物理位置转换为代表X坐标和Y坐标的电压。这里先引入两个概念,物理坐标和逻辑坐标。物理坐标指触摸屏上点的实际位置,通常以液晶上点的个数来度量。逻辑坐标指这点被触摸时A/D转换后的坐标值。如图1,我们假定液晶最左下角为坐标轴原点A,在液晶上任取一点B(十字线交叉中心),B在X方向距离A10个点,在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
x[5],y[5]五点定位的物理坐标是已知的,其中4点分别设置在LCD的角落,一点设置在LCD正中心,作为基准矫正点。校正关键点和距离布局如图。
校正步骤如下:
1.通过先后点击LCD的4个角落的矫正点,获取4个角落的逻辑坐标值。
2.计算s1’=xl[2]-xl[1]、s3’=xl[3]-xl[4]、s2’=yl[3]-yl[2]、s4’=yl[4]-yl[1]
计算s1=x[2]-x[1]、s3=x[3]-x[4]、s2=y[3]-y[2]、s4=y[4]-y[1],一般取点可以人为的设定s1=s3和s2=s4,以方便运算。
计算KX=(s1’+s3’)/2/s1、KY=(s2’+s4’)/2/s2
3.点击LCD正中心,获取中心点的逻辑坐标,作为矫正的基准点。
4.完成以上步骤则校正完成。下次点击触摸屏的时候获取的逻辑值XL和YL,可根据公式转换成物理值:
X=(XL-XLC)/KX+XC
Y=(YL-YLC)/KY+YC
换算出来的X,Y即是和LCD像素相对应的物理坐标值,方便对触屏响应程序做区域判别。
关键字:STM32f103 电阻触摸屏 五点校正算法
引用地址:
STM32f103的电阻触摸屏的五点校正算法
推荐阅读最新更新时间:2024-11-07 11:44
基于STM32F103RCT6的电脑鼠控制系统方案解析
1 电脑鼠工作原理 电脑鼠周围安装六组红外传感器,分别感知左方、左前方、前方、右前方、右方,发射端发射一定频率的红外线,接收端通过六个方向的反射波来判断是否有障碍物,实时地储存单元格的资料,通过六组红外传感器反馈的迷宫信息,控制电脑鼠完成避障、转弯、加速等动作,运用智能算法对迷宫的部分单元格或全部单元格进行遍历,并将迷宫的信息以有效的数据结构存储,微控制器根据这些记录信息运用迷宫高效算法找到一条最优化路径,从而实现从起点到终点的最大化冲刺。 2 硬件电路设计 为完成迷宫探测和冲刺任务,电脑鼠需具备以下各功能模块:ARM微处理器作为控制核心协调各功能模块正常工作;电机及驱动模块实时控制电机启动、制动;红外检测模块负责红外线探测
[单片机]
STM32F103串口1 printf函数的实现
在单片机中使用最多的通信接口基本就是串口了,说起串口就不得不提串口中最常用的一个函数就是打印函数printf()函数,在上位机上中这个函数直接从库函数中调用就可以了,那么在单片机中这个函数要怎么使用呢?能不能将这个函数和串口1对应起来,当然是有方法的。 下面就通过代码来演示一下如何在串口1上使用printf()函数的功能。 void uart_init(u32 bound) { //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_Ini
[单片机]
旋转LED屏显示控制器设计方案
引言 在各种设备中,显示设备占有重要地位,少了显示设备就像人少了眼睛,很多内在的东西都看不见。显示设备很重要也很常见,然而它的外形总是那么单调,像一个个的模型。旋转LED屏以其新颖、可视角360°吸引了电子狂热者的眼光。本项目是通过主控芯片STM32F103,将触摸技术与旋转LED屏幕相结合,可以实现时钟的变换,还可以利用触摸技术在旋转LED上玩一些小游戏[1],让旋转LED不再只是单一的观赏性的技术。 旋转LED显示屏是一种通过同步控制发光二极管(LED)位置和点亮状态来实现图文显示的新型显示屏,因其结构新颖、成本低、可视视角达360°而得到了迅速的发展。目前,常见的LED显示屏都是采用扫描方式进行显示的,其实现原理是在不同
[单片机]
STM32F103RCT6+USART3+UART5初始化代码
USART和UART的区别就是:USART支持同步收发,UART只支持异步收发 同步模式:USART 需要同步始终信号USART_CK,通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使用异步模式。 1 USART3初始化 void USART3_init(void) { GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); //使能USART3,GPIOB时钟 RCC
[单片机]
STM32F103单片机复位电路回顾
在设计“单片机控制线路板”时,一般需有4部分电路:“电源电路部分”、“晶振电路部分”、“复位电路部分”、“下载电路部分”;对不同的“IC芯片”,工作所需“电源电压”各不相同,大多为“+3.3V”或“+5.0V”;“晶振电路部分”和“复位电路部分”也需根据“芯片”对应的“datasheet”进行设计,特别是“复位电路部分”,必须参考手册,确定“低电平复位”还是“高电平复位”,否则会导致上电后“芯片无法复位工作”; 在“初代温控板V1.0”中,控制芯片为“STM32F103RCT6”,为“低电平复位”,但由于设计失误,未添加“复位电路”,如下所示: 复位电路图 如图“红色部分”所示,在“初代温控板V1.0”中,此部分电路被忽略,导
[单片机]
基于ht1632c芯片的点阵驱动模块在STM32F103mini的应用
ht1632c点阵模块 STM32F103RC(mini) 杜邦线 工程代码:https://download.csdn.net/download/goolete/10922678 驱动代码:https://download.csdn.net/download/goolete/10922879 取模软件:https://download.csdn.net/download/goolete/10922876 (取模软件用之前必须破解,否则生成为乱码,破解文件在压缩包里) HT1632C点阵模块使用手册V1.0:https://download.csdn.net/download/goolete/10922
[单片机]
STM32F103ZET基于KEIL环境新建工程笔记
1.在某个目录内新建工程路径,这里我命名为A03-SPORT 2.在上述上当内新建两个名为Project和User目录,前者用于存放工程文件,后者存放我们自行编写的文件 3.将从ST官网下载的库文件中的Libraries路径下所有文件复制到A03-SPORT路径内,本笔记所用的版本为V3.5.0 4.此时,A03-SPORT路径内的情况如下 5.将官方库路径内的如下文件复制到User路径内 6.User内路径如下 7.打开Keil,Project- New Project一个工程,路径为上边新建的Project目录,命名SPORT 8.选择所用的芯片STM32F103ZE 9.是否加入由Keil生成
[单片机]
ST推出多点触感电阻式触摸屏控制器
由于最新的高科技设备如智能手机、移动互联网设备和上网本均采用多点触摸屏,以支持日益复杂的应用和视频游戏,意法半导体(ST)推出一款先进的多点触感“电阻式”触摸屏控制器芯片,以优化支持这项先进功能的电子元器件的材料成本。STM32TS60 是意法半导体最新STMTouch系列产品的首款产品,此系列为客户提供应用广泛的解决方案,包括多点触感元件和接近传感器及触控键传感器。
新的多点触感控制器可检测多达10个同时发生的手指、指甲或触控笔的触摸操作,让应用设计人员用更加直接和自然的用户控制图标取代复杂的菜单序列。多点触感功能使很多操作变得更加容易,例如,浏览和选择选项、手写和数据输入、窗口排列和缩放、图片拾起和
[网络通信]