蔡紅娟,高恒強(qiáng),蔡 苗
(1.華中科技大學(xué) 武昌分校 電工電子教學(xué)基地,武漢 430064;2.中國(guó)地質(zhì)大學(xué)(武漢) 機(jī)電學(xué)院,武漢 430074)
觸摸屏廣泛應(yīng)用于工業(yè)控制領(lǐng)域的人機(jī)交互和控制設(shè)備,簡(jiǎn)化了用戶的操作[1],提供了更加友好直接的人機(jī)交互。市場(chǎng)上較為常見的觸摸屏有:紅外線觸摸屏、電容式觸摸屏、電阻式觸摸屏和表面聲波觸摸屏。目前,市場(chǎng)上應(yīng)用比較多的是電阻式觸摸屏。然而電阻式觸摸屏在出廠時(shí)由于LCD顯示屏與觸摸屏之間裝配的不對(duì)應(yīng)會(huì)引起機(jī)械誤差,主要有位移誤差、放大誤差和旋轉(zhuǎn)誤差[3],從而導(dǎo)致觸摸屏上繪制的圖形與LCD顯示屏上的圖形對(duì)應(yīng)的集合會(huì)有所偏差,使之無法準(zhǔn)確的產(chǎn)生對(duì)應(yīng)點(diǎn)的x和y坐標(biāo)。為了解決這個(gè)問題,幾乎所有帶阻性的觸摸屏投入使用前均要經(jīng)過一定的校準(zhǔn)[9]。
由于觸摸屏的密度不一致,采用簡(jiǎn)單的基本線性校準(zhǔn)還是會(huì)存在一定的誤差,為了獲得更高的校準(zhǔn)精度,在此數(shù)學(xué)推理的基礎(chǔ)上,本文進(jìn)一步提出了觸摸屏校準(zhǔn)的優(yōu)化算法,并以嵌入式硬件為平臺(tái),采集觸摸屏檢測(cè)數(shù)據(jù)作為測(cè)試樣本,對(duì)兩種校準(zhǔn)算法進(jìn)行了測(cè)試比較,結(jié)果表明,優(yōu)化算法可以獲得更高的校準(zhǔn)精度。
典型的電阻式觸摸屏一般由三部分構(gòu)成:兩層透明的阻性導(dǎo)電層,在兩層導(dǎo)電層之間的隔離層以及電極[6]。電阻式觸摸屏示意圖如圖1所示。
電阻式觸摸屏就相當(dāng)于一種傳感器,利用壓力感應(yīng)進(jìn)行控制,將矩形區(qū)域中觸摸點(diǎn)(x, y)的物理位置轉(zhuǎn)換為代表x坐標(biāo)和y坐標(biāo)的電壓[5]。觸摸屏工作時(shí),上下導(dǎo)電層相當(dāng)于電阻網(wǎng)絡(luò),當(dāng)某一層電極加上電壓時(shí),會(huì)在該網(wǎng)絡(luò)上形成電壓梯度。如果有外力使得上下兩層在某一點(diǎn)接觸,則在電極未加電壓的另一層可以檢測(cè)到接觸點(diǎn)處的電壓,經(jīng)過A/D轉(zhuǎn)換知道接觸點(diǎn)處的坐標(biāo)[8]。比如,在Y+電極上加驅(qū)動(dòng)電壓VCC,Y-電極接地,則頂層導(dǎo)電層( Y+, Y-)上形成電壓梯度,X+作為引出端測(cè)量接觸點(diǎn)的電壓,當(dāng)有外力使得上下兩層導(dǎo)電層有在某一點(diǎn)(x1,y1)接觸,則在X+處可測(cè)得電壓為VX+,由于導(dǎo)電層均勻?qū)щ姡瑒t可以認(rèn)為觸點(diǎn)電壓與驅(qū)動(dòng)電壓之比即為觸點(diǎn)Y坐標(biāo)與觸摸屏高度之比,即y1=(VX+/ VCC)*height。同理,將驅(qū)動(dòng)電壓施加在X+電極,并在Y+處測(cè)量觸點(diǎn)電壓,從而可以獲得該點(diǎn)的x坐標(biāo)。
圖1 電阻式觸摸屏示意圖
由壓力感應(yīng)得到坐標(biāo)值的并不能達(dá)到100%的精度,它存在著誤差,尤其是觸摸屏本身電阻材料的均勻性以及出廠安裝時(shí)存在的機(jī)械誤差,直接影響到了觸摸屏的精度。因此,在使用觸摸屏?xí)r,需要將觸摸屏上的圖形經(jīng)過一定的變換,換算出與LCD顯示屏相一致的點(diǎn)集合,這種圖形重建的過程就是校準(zhǔn)。
觸摸屏和LCD顯示屏疊加在配套使用時(shí),由于存在誤差,觸摸屏坐標(biāo)系和顯示屏坐標(biāo)系不重合,校準(zhǔn)的目的就是在這兩種坐標(biāo)系之間找到一種合適正確的映射關(guān)系,使觸摸屏上顯示的圖形經(jīng)過變換,與LCD顯示的圖形保持一致[7]。這里觸摸屏和LCD顯示圖形的點(diǎn)都用矢量來表示[2,4]:Q( x, y )為觸摸屏上的點(diǎn),稱為物理坐標(biāo);Qd( xd, yd)為L(zhǎng)CD顯示屏上的點(diǎn),稱為顯示坐標(biāo)。設(shè)物理坐標(biāo):
由于觸摸屏和LCD顯示屏接觸點(diǎn)之間存在角度誤差,同時(shí)考慮到每個(gè)點(diǎn)的x和y坐標(biāo)都存在不同的因子縮放,并且觸摸屏和LCD顯示屏之間還存在移動(dòng)誤差,則假設(shè)角度差為φ,縮放因子為kx和ky,位移因子為Sx和Sy,可得到顯示坐標(biāo):
一般情況,觸摸屏和LCD顯示屏之間的角度誤差φ極小,則sinφ≈φ,cosφ≈1。那么,LCD顯示屏上點(diǎn)坐標(biāo)可以化簡(jiǎn)為:
由上式中可以看出,除了x和y,方程式右邊各項(xiàng)均為常量,即觸摸屏和顯示屏的坐標(biāo)系可以認(rèn)為是線性的,基于此方程實(shí)現(xiàn)的校準(zhǔn)也稱為線性校準(zhǔn)。現(xiàn)在用一般情況來代替各乘積項(xiàng)的系數(shù),則可以得到:
顯然,如果能求出線性變換的參數(shù)( A1, B1, C1,A2, B2, C2),就可以通過上述等式來校準(zhǔn)從觸摸屏那里得來的顯示坐標(biāo)了[5]。為了求出這六個(gè)參數(shù),在觸摸屏上任意取三個(gè)點(diǎn)(由于邊界點(diǎn)的線性度差,所以要盡量避免),設(shè)物理坐標(biāo)和顯示坐標(biāo)分別為(x1, y1)、(x2, y2)、(x3, y3)和 (xd1, yd1)、(xd2, yd2)、(xd3, yd3),可以得到方程組:
解方程組可得:
值得注意的是,只有在觸摸屏和LCD顯示屏之間的角度誤差φ極小的情況下,上述的基本線性校準(zhǔn)算法才適用。為了達(dá)到更好的校準(zhǔn)效果,本文在此基礎(chǔ)上,對(duì)基本線性校準(zhǔn)算法進(jìn)行了優(yōu)化,形成五點(diǎn)校準(zhǔn)。
為了使校準(zhǔn)更加精確,現(xiàn)在觸摸屏上任意取五個(gè)點(diǎn),設(shè)物理坐標(biāo)和顯示坐標(biāo)分別為(x1, y1)、(x2, y2)、(x3, y3)、(x4, y4)、(x5, y5) 和 (xd1, yd1)、(xd2, yd2)、(xd3, yd3)、(xd4, yd4)、(xd5, yd5),代入 x 坐標(biāo)方程xd=A1·x+B1·y+ C1,可以得到方程組:
對(duì)等式做如下處理:
第一步,將原方程5個(gè)等式直接相加,得第1個(gè)總等式:
第二步,將原方程5個(gè)等式分別乘以參數(shù)x,然后5個(gè)等式相加,得第2個(gè)總等式:
第三步,將原方程5個(gè)等式分別乘以參數(shù)y,然后5個(gè)等式相加,得第3個(gè)總等式:
由這三個(gè)總等式構(gòu)成一個(gè)x坐標(biāo)的三階線性方程組,用克萊姆法則可以將參數(shù)A1,B1,C1求出。
同理,可以得到y(tǒng)坐標(biāo)的三階線性方程組:
用克萊姆法則可以將參數(shù)A2,B2,C2求出。
這里采用的觸摸屏校準(zhǔn)的測(cè)試環(huán)境是:基于s3c2410的ARM9開發(fā)板,外界五線電阻式觸摸屏和640×480像素16灰度級(jí)液晶屏,使用μcos-Ⅱ操作系統(tǒng),開發(fā)板與PC機(jī)通過串口連接。
在觸摸屏的(73,154)、(891,516)、(512,939)三點(diǎn)位置均顯示“+”,用筆依次點(diǎn)擊三個(gè)點(diǎn),獲得這三個(gè)點(diǎn)的顯示坐標(biāo)分別為(30,30)、(210,120)、(120,210),帶入基本線性校準(zhǔn)算法的方程組,可計(jì)算校準(zhǔn)系數(shù)如下:A1=108720,B1=-5400,C1=7391400,A2=5490,B2=107730,C2=-2494830。
然后在觸摸屏 (265,414)、(606,171)、(768,700)、(111,956)、(448,580)五個(gè)點(diǎn)的位置均顯示“+”,并依次點(diǎn)擊,通過上述的校準(zhǔn)系數(shù)對(duì)觸摸屏進(jìn)行校準(zhǔn),得到結(jié)果如圖2所示。
圖2 基本線性校準(zhǔn)法校準(zhǔn)測(cè)試
圖中,“Screen Sample”是觸摸屏坐標(biāo),“Translated Sample”是通過校準(zhǔn)之后的得到的顯示坐標(biāo),“Display Sample”是采樣時(shí)直接獲得的顯示坐標(biāo)。由圖右邊兩列坐標(biāo)可知,通過基本線性校準(zhǔn)之后,計(jì)算值“Translated Sample”與理論值“Display Sample”比較接近,達(dá)到了校準(zhǔn)目的,但還是存在著一定誤差。
圖3 校準(zhǔn)算法優(yōu)化后的測(cè)試
如果采用優(yōu)化算法對(duì)上述一系列采樣點(diǎn)進(jìn)行校準(zhǔn),則得到的結(jié)果如圖3所示。對(duì)比右邊兩列坐標(biāo)可知,通過優(yōu)化算法校準(zhǔn)之后,計(jì)算值“Translated Sample”與理論值“Display Sample”的近似度大為提高,極大程度上提高了校準(zhǔn)精度。
電阻式觸摸屏在安裝過程中不可避免的存在機(jī)械誤差,因此很多應(yīng)用觸摸屏的系統(tǒng)啟動(dòng)后,進(jìn)入應(yīng)用程序前先要執(zhí)行校準(zhǔn)程序。本文針對(duì)電阻式觸摸屏分析了基本線性校準(zhǔn)算法,在此基礎(chǔ)上提出了一種優(yōu)化的校準(zhǔn)算法,并以嵌入式開發(fā)板為硬件平臺(tái),對(duì)校準(zhǔn)算法進(jìn)行了測(cè)試,實(shí)驗(yàn)結(jié)果表明,優(yōu)化的校準(zhǔn)算法有效的提高了觸摸屏的校準(zhǔn)精度,為觸摸屏校準(zhǔn)提供了一種可行實(shí)用的途徑。
[1] 馮菁, 馬勝前, 王科寧, 等.一種電阻式觸摸屏機(jī)械安裝誤差的校正方法[J].制造業(yè)自動(dòng)化, 2011(33): 26-27.
[2] 宋學(xué)瑞, 蔡子裕, 段青青.觸摸屏數(shù)據(jù)處理算法[J].計(jì)算機(jī)工程, 2008(34): 256-257.
[3] 楊莉, 蔣奇良.拉格朗日插值算法在觸摸屏校準(zhǔn)中的應(yīng)用[J].機(jī)電技術(shù), 2011(4): 8-9.
[4] 萬厚沖, 孫超云.電阻式觸摸屏數(shù)據(jù)校準(zhǔn)的一種補(bǔ)償算法[J].福建電腦, 2010(2): 64.
[5] 譚翀.電阻式觸摸屏校準(zhǔn)算法的研究與設(shè)計(jì)[J].微計(jì)算機(jī)信息, 2010(26): 35-37.
[6] 羅勇剛, 夏定純.電阻式觸摸屏的校準(zhǔn)與應(yīng)用研究[J].武漢科技學(xué)院學(xué)報(bào), 2007(20): 47-49.
[7] 王丁, 閆瑤, 張廷宇.觸摸屏校準(zhǔn)的一種通用算法[J].自動(dòng)化技術(shù)與應(yīng)用, 2008(27): 116-117.
[8] 盛占石, 王楚華, 周新云.基于ARM7嵌入式系統(tǒng)中觸摸屏的設(shè)計(jì)和研究[J].電測(cè)與儀表, 2008(45): 61-63.
[9] 王黨利, 馬保吉, 寧生科.電阻觸摸屏誤差分析及加速度模型的數(shù)據(jù)處理[J].陜西理工學(xué)院院報(bào)(自然科學(xué)版),2009(25): 15-19.