CN103927059B - 一种利用fpga判断红外两点触摸位置的方法 - Google Patents
一种利用fpga判断红外两点触摸位置的方法 Download PDFInfo
- Publication number
- CN103927059B CN103927059B CN201410142436.4A CN201410142436A CN103927059B CN 103927059 B CN103927059 B CN 103927059B CN 201410142436 A CN201410142436 A CN 201410142436A CN 103927059 B CN103927059 B CN 103927059B
- Authority
- CN
- China
- Prior art keywords
- touch
- blocked
- fluorescent tube
- value
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Position Input By Displaying (AREA)
Abstract
本发明公开了一种利用FPGA判断红外两点触摸位置的方法,通过收集到的触摸信息进行FPGA存储,处理触摸信息,将处理后正确的触摸信息发送出去。本发明简单实用,过程清楚明了,在红外触摸领域开拓出新的道路,为红外触摸屏工程应用提供多种可选择解决方案来,能够应对多样化的用户需求。
Description
技术领域
本发明涉及一种红外触摸技术,尤其涉及的是一种利用FPGA判断红外两点触摸位置的方法。
背景技术
红外触摸屏作为触摸屏的一种,以其安装方便、免维护、高抗爆性、高可靠性灯优点而被逐步广泛应用在各个领域。虽然经过了20多年的发展,已经有了很多技术改进,但是这些技术所提及的技术内容,都远没有发挥出红外触摸屏所能达到的技术水平,这些技术内容中的绝大部分都只是对单个点触摸进行了详细的方案设计,而随着计算机技术的发展,单个点触摸已经渐渐满足不了部分工程的多样化需求,多点触摸技术以其高效性而更具优势。这就需要触摸屏能够支持多点触摸。但现有的技术中还没有一种比较好两点触摸的技术方案能够应用在红外触摸屏上。
发明内容
本发明的目的在于克服现有技术的不足,提供了一种利用FPGA判断红外两点触摸位置的方法,通过收集到的触摸信息进行FPGA存储,处理触摸信息,将处理后正确的触摸信息发送出去。
本发明是通过以下技术方案实现的,本发明包括以下步骤:
步骤101:启动红外触摸屏;
步骤102:驱动成对放置于触摸屏边框上的发射灯管进行顺序扫描;
步骤103:驱动成对放置于触摸屏边框上的接收灯管进行顺序扫描;
所述步骤102和步骤103中,扫描方式为:打开发射灯管i,i=1,2,3…后,同时打开j=i,j=i-x和j=i+x三个位置的接收灯管,x表示偏移扫描的偏移量,如果j=i-x和j=i+x的接收灯管不存在即不需要进行相应扫描操作,扫描从i=1开始一直扫描完所有灯为一次完整的扫描循环;
步骤104:存储接收灯管得到的AD值,j=i得到的值存储到直扫存储模块,j=i-x得到的值存储到左偏移扫描存储模块,j=i+x得到的值存储到右偏移扫描存储模块;
步骤105:判断是否扫描完一个循环,如果扫描完一个循环进入下一步,否则返回步骤102;
步骤106:逐个取出存储的AD值,将得到的AD值对比阈值来判断灯是否有被挡住,所述阈值设置的大小为当前光源的光无遮挡的照在接收灯管上转换成的AD值的40%~50%,如果得到的AD值小于所述阈值,即该位置的光线通路被挡住,判断有光线被挡住,记录被挡住灯管的位置和其扫描方式,然后进入下一步;如果没有被挡住的灯管就清空得到的AD存储值;
步骤107:将直扫得到的被挡住灯管的位置信息和偏移扫描得到的被挡住灯管的位置信息进行综合,如果横向和纵向在直扫和偏移扫描时均只有一个位置连续的光线被挡住就判断为单个触摸点,而只要在一个方向上有两个位置连续的光线被挡住就判断为两点触摸;
步骤108:单个触摸点时,直扫得到的位置即为触摸位置信息;
步骤109:两点触摸得到四个可能的触摸点;
步骤110:将步骤108和步骤109的数据综合判断确定真实触摸位置;
步骤111:将得到的真实触摸位置信息进行传输。
所述步骤106是在步骤105判断完成后才开始运行的,步骤105之后的所有步骤所花时间的总和小于步骤101~105扫描一个循环的时间。
所述步骤102和步骤103中,分别进行直扫、左偏移扫描和右偏移扫描,所述直扫为上下一一对应的垂直扫描。
所述步骤104中对AD值进行判断,在接收灯管得到AD值的同时判断出当前发射灯管是否有被挡住,同时记录被挡住的灯管位置。
所述步骤110中,判断真实触摸位置的方法为:如果是单点,通过直扫在横向和纵向的两条被挡住的光线的交点即确定出触摸点的真实位置;
如果是双点,在一个具有两个横边和竖边的阵列中,在横向和纵向产生各产生两条线,产生四个交点X、Y、X0、Y0,通过左偏移扫描得到了IX,JY,MX,NY四条斜线,IX,JY表示横边上I,J处的发射灯被挡住,MX,NY表示竖边上M,N处的发射灯被挡住,同理可知,右偏移扫描得到横边上E,F被挡住,竖边上G,H被挡住,而由于两点触摸时只要两个点不在一条直线上,那必然就会形成一个点在左上,一个点在右下,或者刚好相反的情况,这时通过对比计算EF和IJ之间的灯距可以得出两点为一个左上,一个右下的结果,这时就能得出X,Y为实际触摸点,而X0和Y0为伪触摸点了。
本发明的位置信息指的是当前被挡住灯的位置,即第几盏发射灯,通过灯的位置来确定触摸点的位置,因此灯密度决定了判断的精度。而偏移扫描指的是在打开第i盏发射灯时,用第i+x/i-x个接收灯管去接收红外光,虽然得到的AD值肯定没有直扫得到的AD值大,但是由于偏移量固定,其AD值还是可以提供位置判断信息,其得到的位置信息相当于是坐标系偏移后的位置信息,和直扫组合来综合判断去除假点。
本发明相比现有技术具有以下优点:本发明简单实用,过程清楚明了,在红外触摸领域开拓出新的道路,为红外触摸屏工程应用提供多种可选择解决方案来,能够应对多样化的用户需求。
附图说明
图1是本发明的流程图;
图2是本发明发射和接收灯管组成的触摸判断阵列图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1和图2所示,所示,本实施例是一个发射和接收灯管组成的触摸判断阵列图,该阵列包括两个横边和竖边,每个横边上放置了102个发射和接收灯管,每个竖边上放置了39个发射和接收灯管,这些灯管个数是根据显示器尺寸和发射接收灯管器件尺寸以及制版工艺等来综合确定的。下面来具体解释如何利用FPGA逻辑来判断两点触摸的位置。
首先在横向接收部分打开i,i+6和i-6这三个接收灯管,当i小于6时就没有i-6的接收灯管,这时只需打开i和i+6,然后打开发射灯,这时在i接收灯管上接收到的AD值是直扫AD值,在i+6上得到AD值是左偏移扫描得到的AD值;当i大于6小于97时,i接收灯管得到的AD值是直扫AD值,i+6是左偏移扫描AD值,i-6是右偏移扫描AD值;当i大于96时,i得到直扫AD值,i-6得到右偏移扫描AD值,而没有i+6。当发射灯管从1到102都打开了一遍以后,这时就已经得到了横边上直扫,左偏移扫描和右偏移扫描的AD值。同理在竖边是也经行一次这样的扫描,就得到了竖边上的所有AD扫描值。
在这些得到的扫描值中,需要进行判断,将得到的AD值对比阈值来判断灯是否有被挡住,所述阈值设置的大小为当前光源的光无遮挡的照在接收灯管上转换成的AD值的40%~50%,也可按照实际情况进行调整,如果得到的AD值小于所述阈值,即该位置的光线通路被挡住,判断有光线被挡住,记录被挡住灯管的位置和其扫描方式,然后进入下一步;如果没有被挡住的灯管就清空得到的AD存储值。分别记录下这些位置,如果是单点触摸会在横向和竖向上分别得到一系列连续被挡住的发射灯点,连续点的个数取决于被挡住灯的个数,也就是触摸点的大小,而根据平面几何原理,两条直线相交确定一点,横向和纵向的两条直线确定了触摸点具体的位置,两个触摸点成一线的除外。而如果是两点触摸,情况要复杂的多,两点触摸在两个方向上的直线相交会产生4个交点。在图2中,10和11边为发射灯管,00和01边为接收灯管,图中圆圈图标X、Y为实际的触摸点,方形图标X0、Y0为伪触摸点,伪触摸点是由于直扫在两个方向上产生的A、B、C、D四根直线相交得到的,为了排除伪点,通过左偏移扫描得到了IX,JY,MX,NY四条斜线,IX,JY表示横边上I,J处的发射灯被挡住,MX,NY表示竖边上M,N处的发射灯被挡住,同理可知,右偏移扫描得到横边上E,F被挡住,竖边上G,H被挡住,而由于两点触摸时只要两个点不在一条直线上,那必然就会形成一个点在左上,一个点在右下,或者刚好相反的情况。这时通过对比计算EF和IJ之间的灯距可以得出两点为一个左上,一个右下的结果,这时就能得出X,Y为实际触摸点,而X0和Y0为伪触摸点了。好像只需要横边就能判断出两点的真实位置了,但是由于偏移扫描并没有覆盖住整个屏,其在两边位置有一定的盲区,这时就需要借助竖边的偏移扫描来排除盲区,达到触摸判断覆盖整个屏幕。而在这个判断方法中也还有一个特殊情况,就是当偏移扫描的这个偏移斜率和两个真实触摸点之间的斜率相同时,在图中如EX和FY的斜率就有可能会和XY的斜率相同,这时在右偏移扫描只能扫描出一个点,但这恰恰提供了两个触摸点的排列方式,更容易找到真实触摸点。
在得到触摸点确切的位置后,接下来还要对触摸点进行轨迹跟踪,每个点都有自己独立的行动轨迹,如果不区分两个点就会使轨迹产生意图之外的错误,就例如两点平行移动时,如果没有独立区分两个点,它们的滑动轨迹就会产生交叉,而实际应该是两条平行线。这时需要对每个点的位置进行记忆存储,即记录上一次扫描判断出的每个点的位置信息,然后和当前得到的两个触摸点进行位置对比,相互接近的两个点判断为这个点的连续轨迹,这种判断机制在扫描频率越高时越精确。
在点轨迹追踪完成后还需要对点轨迹进行平滑处理,如果不做平滑处理,点轨迹看起来会很不规则,轨迹上会有很多细小的不规则线。平滑处理后轨迹曲线上的棱角被消除掉,曲线更接近真实滑动轨迹。平滑处理通过记忆最近的5次触摸点位置信息然后对5次触摸位置信息进行取平均数来完成,而当最初触摸时,触摸位置信息不到5个,这时只输出当前触摸次数的位置平均信息。这里举例当扫描出5次连续触摸点位置为1、3、4、6和7时,前5次位置输出分别为1/1=1;1+3/2=2;1+3+4/3=2.6;1+3+4+6/4=3.5;1+3+4+6+7/5=4.2。平均数越多曲线就越平滑,但是也能看出平滑后的触摸点位置相对落后当前触摸点两个循环,但是由于扫描速度快,以1秒50次计算,相当于落后40ms,所以人基本感觉不出来。最后将平滑后的位置数据送出即可。
在其他实施例中,也可以在扫描方式上将两个方向的四个边都经行一次扫描,这样可以提高一倍的精度,也可以通过使用高速器件来提高扫描频率,同样可以提高精度。
Claims (5)
1.一种利用FPGA判断红外两点触摸位置的方法,其特征在于,包括以下步骤:
步骤101:启动红外触摸屏;
步骤102:驱动成对放置于触摸屏边框上的发射灯管进行顺序扫描;
步骤103:驱动成对放置于触摸屏边框上的接收灯管进行顺序扫描;
所述步骤102和步骤103中,扫描方式为:打开发射灯管i,i=1,2,3…后,同时打开j=i,j=i-x和j=i+x三个位置的接收灯管,x表示偏移扫描的偏移量,如果j=i-x和j=i+x的接收灯管不存在即不需要进行相应扫描操作,扫描从i=1开始一直扫描完所有灯为一次完整的扫描循环;
步骤104:存储接收灯管得到的AD值,j=i得到的值存储到直扫存储模块,j=i-x得到的值存储到左偏移扫描存储模块,j=i+x得到的值存储到右偏移扫描存储模块;
步骤105:判断是否扫描完一个循环,如果扫描完一个循环进入下一步,否则返回步骤102;
步骤106:逐个取出存储的AD值,将得到的AD值对比阈值来判断灯是否有被挡住,所述阈值设置的大小为当前光源的光无遮挡的照在接收灯管上转换成的AD值的40%~50%,如果得到的AD值小于所述阈值,即该小于阈值的AD值所对应的位置的光线通路被挡住,判断有光线被挡住,记录被挡住灯管的位置和其扫描方式,然后进入下一步;如果没有被挡住的灯管就清空得到的AD存储值;
步骤107:将直扫得到的被挡住灯管的位置信息和偏移扫描得到的被挡住灯管的位置信息进行综合,如果横向和纵向在直扫和偏移扫描时均只有一个位置连续的光线被挡住就判断为单个触摸点,而只要在一个方向上有两个位置连续的光线被挡住就判断为两点触摸;
步骤108:单个触摸点时,直扫得到的位置即为触摸位置信息;
步骤109:两点触摸得到四个可能的触摸点;
步骤110:将步骤108和步骤109的数据综合判断确定真实触摸位置;
步骤111:将得到的真实触摸位置信息进行传输。
2.根据权利要求1所述的一种利用FPGA判断红外两点触摸位置的方法,其特征在于,所述步骤106是在步骤105判断完成后才开始运行的,步骤105之后的所有步骤所花时间的总和小于步骤101~105扫描一个循环的时间。
3.根据权利要求1所述的一种利用FPGA判断红外两点触摸位置的方法,其特征在于,所述步骤102和步骤103中,分别进行直扫、左偏移扫描和右偏移扫描,所述直扫为上下一一对应的垂直扫描。
4.根据权利要求1所述的一种利用FPGA判断红外两点触摸位置的方法,其特征在于,所述步骤104中对AD值进行判断,在接收灯管得到AD值的同时判断出当前发射灯管是否有被挡住,同时记录被挡住的灯管位置。
5.根据权利要求1所述的一种利用FPGA判断红外两点触摸位置的方法,其特征在于,所述步骤110中,判断真实触摸位置的方法为:如果是单点,通过直扫在横向和纵向的两条被挡住的光线的交点即确定出触摸点的真实位置;
如果是双点,在一个具有两个横边和竖边的阵列中,在横向和纵向产生各产生两条线,产生四个交点X、Y、X0、Y0,通过左偏移扫描得到了IX,JY,MX,NY四条斜线,IX,JY表示横边上I,J处的发射灯被挡住,MX,NY表示竖边上M,N处的发射灯被挡住,同理可知,右偏移扫描得到横边上E,F被挡住,竖边上G,H被挡住,而由于两点触摸时只要两个点不在一条直线上,那必然就会形成一个点在左上,一个点在右下,或者刚好相反的情况,这时通过对比计算EF和IJ之间的灯距可以得出两点为一个左上,一个右下的结果,这时就能得出X,Y为实际触摸点,而X0和Y0为伪触摸点了。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410142436.4A CN103927059B (zh) | 2014-04-10 | 2014-04-10 | 一种利用fpga判断红外两点触摸位置的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410142436.4A CN103927059B (zh) | 2014-04-10 | 2014-04-10 | 一种利用fpga判断红外两点触摸位置的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103927059A CN103927059A (zh) | 2014-07-16 |
CN103927059B true CN103927059B (zh) | 2017-01-11 |
Family
ID=51145305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410142436.4A Active CN103927059B (zh) | 2014-04-10 | 2014-04-10 | 一种利用fpga判断红外两点触摸位置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103927059B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226446A (zh) * | 2008-01-09 | 2008-07-23 | 广东威创视讯科技股份有限公司 | 红外线触摸屏及多点触摸定位方法 |
CN102053757A (zh) * | 2009-11-05 | 2011-05-11 | 上海精研电子科技有限公司 | 一种红外触摸屏装置及其多点定位方法 |
CN102129328A (zh) * | 2010-01-16 | 2011-07-20 | 鸿富锦精密工业(深圳)有限公司 | 红外线触摸屏 |
CN103365492A (zh) * | 2013-08-01 | 2013-10-23 | 北京东方中原教育科技有限公司 | 红外触摸屏多点触摸识别方法 |
-
2014
- 2014-04-10 CN CN201410142436.4A patent/CN103927059B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226446A (zh) * | 2008-01-09 | 2008-07-23 | 广东威创视讯科技股份有限公司 | 红外线触摸屏及多点触摸定位方法 |
CN102053757A (zh) * | 2009-11-05 | 2011-05-11 | 上海精研电子科技有限公司 | 一种红外触摸屏装置及其多点定位方法 |
CN102129328A (zh) * | 2010-01-16 | 2011-07-20 | 鸿富锦精密工业(深圳)有限公司 | 红外线触摸屏 |
CN103365492A (zh) * | 2013-08-01 | 2013-10-23 | 北京东方中原教育科技有限公司 | 红外触摸屏多点触摸识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103927059A (zh) | 2014-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106325737B (zh) | 一种书写路径擦除方法及设备 | |
CN103365480B (zh) | 一种多点红外触摸屏触摸识别方法及系统 | |
CN103164086B (zh) | 一种基于红外触摸屏的触摸显示方法、装置及红外触摸屏 | |
CN103294401A (zh) | 一种具有触摸屏的电子设备的图标处理方法及装置 | |
CN204178348U (zh) | 一种利用红外实现多点触控识别的系统 | |
CN105183238B (zh) | 基于红外白板的笔迹擦除方法、装置及红外白板 | |
CN106020566A (zh) | 一种红外触摸屏的扫描方法及装置 | |
CN103365492A (zh) | 红外触摸屏多点触摸识别方法 | |
CN103092438B (zh) | 一种红外触摸装置及多点触摸定位方法 | |
CN103885567A (zh) | 一种触控终端的唤醒方法及触控终端 | |
CN104598082A (zh) | 一种确定候选触摸点的方法及装置 | |
CN105260064A (zh) | 一种触控点识别方法及装置和显示设备 | |
CN105404433B (zh) | 一种基于红外触摸屏的触控识别方法和显示装置 | |
CN103853390A (zh) | 一种提高红外触摸屏触摸精度的方法 | |
CN103927059B (zh) | 一种利用fpga判断红外两点触摸位置的方法 | |
CN103970360B (zh) | 一种基于多点触摸的手势识别方法及系统 | |
CN106802744A (zh) | 红外触摸屏发生触控操作时定位触摸区域的方法及装置 | |
CN102364417A (zh) | 红外触摸屏多点识别方法及装置 | |
WO2019200927A1 (zh) | 书写速度的控制方法和装置 | |
CN116168172B (zh) | 页岩油气甜点预测方法、装置、设备及存储介质 | |
CN102402392A (zh) | 触摸屏的页面传送方法及装置 | |
CN104731417B (zh) | 一种触摸屏的光路扫描配置方法和装置 | |
CN105808019B (zh) | 一种用于红外触摸屏的触点坐标检测方法 | |
CN113171041B (zh) | 一种目标路径生成方法、装置、设备及存储介质 | |
CN103744559B (zh) | 红外触摸屏的多点定位方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 201100, room 8, building 188, building 302-6, Xin Chun Road, Shanghai, Minhang District Applicant after: Air China (Shanghai) Co., Ltd. Address before: Room 8, building 188, building 302-6, Xin Chun Road, Shanghai, Minhang District Applicant before: Air China (Shanghai) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |