張倩洋,張釗鋒,李寶騏
(1.中國科學(xué)院 上海高等研究院,上海 201210;2.中國科學(xué)院大學(xué),北京 100049;3.上海磐啟微電子有限公司,上海 201210)
?
互電容觸控坐標(biāo)精確處理和上報算法
張倩洋1,2,張釗鋒1,李寶騏3
(1.中國科學(xué)院 上海高等研究院,上海 201210;2.中國科學(xué)院大學(xué),北京 100049;3.上海磐啟微電子有限公司,上海 201210)
在觸控屏上用手指或觸控筆劃動時,由于手抖、噪聲及不穩(wěn)定的感應(yīng)信號,觸控軌跡會產(chǎn)生不期望的震蕩,呈現(xiàn)出鋸齒波和曲線斷點,導(dǎo)致用戶體驗很差。針對此問題,提出了一種基于互電容的觸控坐標(biāo)精確上報的處理算法。通過微控制器對觸控坐標(biāo)原始數(shù)據(jù)的處理,找到觸發(fā)時電容信號的相對變化峰值及高于閾值門限的等高線輪廓,再通過輪廓插值得到不規(guī)則多邊形,利用其頂點的凹凸性區(qū)分兩個或多個觸控點,并計算多邊形的質(zhì)心,確定劃線標(biāo)識,再通過線性二次指數(shù)平滑濾波后,實現(xiàn)了坐標(biāo)數(shù)據(jù)的精確上報。濾波后的坐標(biāo)軌跡視覺上更加平滑,結(jié)果表明該算法能消除曲線邊緣的鋸齒波及曲線斷點,成功地處理觸控信息。
互電容;觸控坐標(biāo);閾值門限;指數(shù)平滑濾波
隨著電子觸控的興起,觸控屏在電子產(chǎn)品中得到廣泛應(yīng)用,極大地提升了人機間交互。其中電容式觸控屏具有多感應(yīng)觸控、魯棒性好的優(yōu)點,被廣泛采用[1]。然而,當(dāng)觸控單元在觸控屏上移動時,會存在手抖、噪聲及不穩(wěn)定的電容感應(yīng)信號的干擾,從而出現(xiàn)觸控屏上的曲線不平滑、觸控位置精度下降、曲線邊緣出現(xiàn)鋸齒波、像素點偏移和曲線斷點等問題。目前已經(jīng)有相關(guān)研究嘗試解決這類問題[2-5]。
毛建平提出了一種觸控屏坐標(biāo)去抖動方法,但該方法某些情況延遲過大[2];Wen-Chung Kao等人提出的插值像素法過于復(fù)雜,成本過高[3];Chih-Lung Lin等人利用了峰值校準(zhǔn)使得電容觸控板不需要電源,但需要額外PC及USB接口的輔助[4]。莫良華等提出了一種提高邊緣感應(yīng)觸摸精度的電容式觸控屏及其數(shù)據(jù)處理方法,提高了邊緣靈敏度,但仍存在一定的誤差[5]。
觸摸屏控制芯片將觸控電信號轉(zhuǎn)化為精確的坐標(biāo)數(shù)據(jù)上報給觸摸控制設(shè)備的上層處理系統(tǒng),如圖1所示。
圖1 觸控屏控制芯片工作原理示意圖
屏電容分為多個小單元,當(dāng)手或者觸控筆觸摸時,會導(dǎo)致觸控點電容微弱的變化,這種微弱的變動經(jīng)過開關(guān)電容模塊進(jìn)行轉(zhuǎn)換放大之后,變成模擬電壓,由于屏電容數(shù)量很大,設(shè)計采用輪流掃描的方式,依次將多個屏電容的大小轉(zhuǎn)化成模擬電壓。
開關(guān)電容模塊的開關(guān)由數(shù)字電路控制,遵循精確的時序,經(jīng)過一系列步驟之后得到反映觸摸屏電容大小的電壓信號,模數(shù)轉(zhuǎn)換器在恰當(dāng)?shù)臅r機開始運作,采樣模擬信號轉(zhuǎn)化為數(shù)字信號。
數(shù)字信號處理(DSP)部分包括對模數(shù)轉(zhuǎn)換器的數(shù)據(jù)進(jìn)行預(yù)處理,包括抗混疊低通濾波器,去除高頻分量,為后續(xù)的數(shù)據(jù)處理打下良好基礎(chǔ)。當(dāng)整個屏幕電容全部掃描結(jié)束并且數(shù)字信號處理完成后,每個屏電容即得到一個反映該電容大小的數(shù)據(jù)。
微控制器(MCU)獲取反映電容大小的原始數(shù)據(jù)后,對原始數(shù)據(jù)進(jìn)行處理,使得劃線避免抖動、斷線等情況,判斷出精確的觸控坐標(biāo)點,以獲得更好的用戶體驗,并將此坐標(biāo)上報給上層處理系統(tǒng),上層處理系統(tǒng)會根據(jù)上報過來的一連串坐標(biāo)數(shù)據(jù)進(jìn)行判定觸控的手勢。
觸控識別的實現(xiàn)基于原始數(shù)據(jù),觸控芯片的硬件部分會將整個屏的不同單元經(jīng)過ADC采樣和數(shù)字濾波器的處理最終送給微控制器,這些數(shù)據(jù)反映了當(dāng)前觸控屏的電容變化。
根據(jù)DSP上報的原始數(shù)據(jù),軟件首先找到電容相對變化的最大值,以最大值為中心形成一個相對較大值區(qū)域,將這個不規(guī)則區(qū)域進(jìn)行數(shù)學(xué)轉(zhuǎn)換,轉(zhuǎn)換成對應(yīng)的多邊形進(jìn)行圖像處理,然后對多邊形進(jìn)行濾波,進(jìn)而對多邊形求中心,具體流程如圖2所示。
圖2 觸控識別流程圖
2.1預(yù)處理
通常,在接通穩(wěn)壓輸入電源后,驅(qū)動通道和感應(yīng)通道之間的n×n的互電容分布均勻穩(wěn)定,沒有明顯的異常變化,當(dāng)一個觸控傳感器單元被觸摸到時,每一幀掃描到的在驅(qū)動通道和感應(yīng)通道之間的的互電容分布就會發(fā)生變化,觸摸點附近的電容值會迅速增大,電容值的相對變化量反映了此時觸摸點的觸控強度。也即需要先對上報的原始數(shù)據(jù)做預(yù)處理,觸摸前后的電容值的差值即為當(dāng)前電容相對變化量(沒有被觸摸到的區(qū)域會出現(xiàn)一個在0附近小范圍波動的數(shù)據(jù),波動是自然的,因為觸控屏的外在環(huán)境,芯片參數(shù)等都在小范圍內(nèi)波動)。
2.2確定觸控峰值及峰值域
對于一個精確的觸控幀,需要找到這一幀的觸控峰值,也即觸控強度最大的觸控單元(標(biāo)紅的方形),這個觸控單元標(biāo)明該點發(fā)生了觸控。
當(dāng)單點觸控時,只有一個峰值,最大值即相對峰值。當(dāng)多點觸控時,會有多個峰值,如果在這一幀中重復(fù)該過程,第二次查找峰值時會出現(xiàn)峰值查重現(xiàn)象(找到和第一次相同的峰值),或者找到的是首次峰值域里的某個值,致使后續(xù)流程不加分辨進(jìn)行處理而浪費了資源。解決的方法是對已經(jīng)查找過的最大觸控單元做標(biāo)記,并且對其峰值域內(nèi)的其他單元也做上標(biāo)記,避免了對同一個觸控點做多次處理。
當(dāng)檢測到最大值后,需要同步地大致檢測出觸摸的一塊區(qū)域的輪廓。事實上,觸控屏電容的個數(shù)是有限的,如果僅僅將最大值,即屏電容的位置中心坐標(biāo)上報給上層系統(tǒng),觸控屏顯示出的坐標(biāo)分辨率是非常差的,無法精確觸控。當(dāng)屏電容有觸控感應(yīng)時,觸摸點附近的屏電容值會隨之增大,并產(chǎn)生一個或多個峰值,在三維空間視角中,會呈現(xiàn)出一個或多個山丘狀,它反映了這一幀的觸控強度,山丘的等強度線類似于等高線,可正可負(fù)。系統(tǒng)根據(jù)電容相對變化量,設(shè)置一個閾值門限,然后找到峰值域。
這里,閾值門限是動態(tài)變化的,初始電容閾值是前20幀(沒有觸摸感應(yīng))的電容平均值,而后的門限值則不低于前5幀的閾值平均值,同時不能低于當(dāng)前幀觸控峰值的0.3倍(實驗經(jīng)驗所得),因為如果閾值門限設(shè)置得太低會引入不必要的噪聲干擾,影響峰值域的選取。
以峰值為中心,根據(jù)閾值門限,環(huán)繞著峰值一圈找到高于門限值的屏電容單元,得到一塊峰值域,以此避免了貫穿遍歷一幀數(shù)據(jù)的時間和資源浪費。如若將峰值域的中心坐標(biāo)上報上層系統(tǒng),分辨率會明顯高于僅僅上報峰值單元中心坐標(biāo)。但仍然存在一個問題,在峰值域內(nèi),每個屏電容單元的電容變化值均不同,僅僅計算峰值域中心坐標(biāo)只是一個近似估計,精度仍需進(jìn)一步提高。圖3顯示了找到電容變化峰值及生成觸控等高線輪廓的三維圖。
圖3 找電容變化峰值,并生成峰值域后的三維圖
2.3輪廓插值
在閾值門限的平面,沿著高于輪廓閾值門限的屏電容單元環(huán)繞一周可以構(gòu)成一個迷宮,如果沿著左手方向一直向前走,可以從起點回到終點,如圖4所示。在迷宮外,找到一個低于閾值門限的電容單元,可以在這個單元和與它鄰近的高于閾值的單元中間插入一個和閾值一樣大的點。不斷重復(fù)這一操作,可以得到一條封閉的和閾值大小相等的輪廓曲線,如圖5所示。
圖4 高于閾值的輪廓
圖5 輪廓插值曲線
2.4輪廓曲線凹凸性判定
上一步得到的觸控輪廓曲線是一個不規(guī)則的平面多邊形,需要判定該區(qū)域內(nèi)包含了一個還是兩個或者多個觸摸點。一個同時包含兩個觸控點的輪廓形狀類似“花生”,在觀察輪廓凹陷程度的同時,還需判定凹點的方向。在一個“花生”中,凹點一般凹陷的很深,并且傾向于兩端互指。凹凸頂點判定圖見圖6。
圖6 凹凸頂點判定圖
凹陷程度的判定基于叉乘積[6],具體推導(dǎo)與操作如下:順序給出3個平面點P1(x1,y1),P2(x2,y2),P3(x3,y3),當(dāng)以空間坐標(biāo)表示這3個點時,并以垂直紙面向外為Z坐標(biāo)軸指向,坐標(biāo)重新表示為P1(x1,y1,0),P2(x2,y2,0),P3(x3,y3,0)
(1)
(2)
(x2-x3)(y1-y3))=(0,0,S)
(3)
根據(jù)叉乘的右手法則,對于P2凸點和凹點兩種情形,叉乘積向量所指方向剛好相反,進(jìn)一步可得出結(jié)論:當(dāng)P2凸點時,S>0;當(dāng)P2凹點時,S<0。
在標(biāo)準(zhǔn)化向量數(shù)學(xué)中,方向是兩條線段的矢量和??筛鶕?jù)相互間的凹陷程度、方向及距離,給每一對頂點分等級。一個高等級的凹陷程度和對等點意味著檢測到一個“花生”,并且確定多指觸摸的間斷點(見圖7)。
2.5計算輪廓質(zhì)心
有了代表手指觸摸(輪廓的一半)的多邊形,還需進(jìn)一步確定觸摸的位置和大小。本文采用質(zhì)心的方法,把觸控區(qū)域的幾何中心估計為它的位置。先把多邊形劃分成很多個三角形,然后一步步計算三角形的平衡點,首先在觸控區(qū)域內(nèi)隨意選擇一個點,將該點與輪廓的某條線段的兩個頂點相連,這樣就由隨意點確定了一個三角形,該點的力矩M△就等于這個三角形的面積SΔ與到三角形中心的向量V△的乘積,即
MΔ=SΔ×VΔ
(4)
三角形面積的總和即觸控總面積,力矩的矢量和也即整個多邊形的力矩。由于力矩是面積乘以到中心點位置的向量,所以力矩M多除以面積S多即為關(guān)于該觸控點的觸控多邊形中心的位置向量V多
M多/S多=V多
(5)
圖7 用輪廓線段的凹凸性分離兩個觸摸點
多邊形質(zhì)心計算矢量示意圖如圖8所示。
圖8 多邊形質(zhì)心計算矢量示意圖
2.6劃線標(biāo)識判定
對于持續(xù)移動的多點觸控,需要判定其劃線標(biāo)識,將之前的觸控點和現(xiàn)在的觸控點進(jìn)行匹配,使得上報的劃線標(biāo)識保持一致。通常采用的最近距離匹配法會出現(xiàn)一定程度的誤判。用速度計算一個期望的位置會更好。本文采用關(guān)聯(lián)性來調(diào)節(jié)觸控信號。首先,做時間濾波,即計算過去的3個觸控位置的平均值。其次,考慮觸控強度滯后效應(yīng),需要設(shè)置觸控懸停時間門限,它與觸控強度和時間成正相關(guān)。當(dāng)懸停釋放,初始劃線標(biāo)識不再追蹤,懸停觸控和觸控釋放均不再上報為觸控,而弱觸控表現(xiàn)為在一個很長的延遲后上報一個觸摸點,中等觸控表現(xiàn)為在一個短暫的延遲后上報一個觸摸點,強觸控則及時地上報觸摸點。
經(jīng)過以上步驟計算出來的坐標(biāo)仍然是一個相對粗糙的坐標(biāo)信息,真正給用戶上報的坐標(biāo)信息還需做進(jìn)
一步相應(yīng)的濾波處理。本文采用線性二次指數(shù)平滑法[7]對坐標(biāo)數(shù)據(jù)進(jìn)行濾波。
設(shè)t時刻的橫坐標(biāo)數(shù)據(jù)為xt(縱坐標(biāo)同理),則有
(6)
(7)
由式(5)和(6)可得
(8)
(9)
Ft+m=at+btm
(10)
式中:Ft+m為下一m期預(yù)測值,m為預(yù)測超前期數(shù)。
圖9展示了采用線性二次指數(shù)平滑濾波前后的坐標(biāo)軌跡對比效果圖,很顯然,濾波后獲得了更好的平滑度。
圖9 采用指數(shù)平滑濾波的坐標(biāo)軌跡前后對比圖
將計算出的坐標(biāo)數(shù)據(jù)及其對應(yīng)的劃線標(biāo)識,統(tǒng)一上報給上層系統(tǒng),具體實現(xiàn)過程如圖10所示。
圖10 生成顯示坐標(biāo)及上報數(shù)據(jù)過程
本文提出了一種基于互電容的平滑處理觸控坐標(biāo)在觸控屏上的移動感應(yīng)軌跡的新方法。相比原始輸入的移動觸控軌跡,采用觸控識別算法,通過MCU對觸控坐標(biāo)原始數(shù)據(jù)的處理,實現(xiàn)坐標(biāo)去抖,再通過指數(shù)平滑濾波后的觸控軌跡更加平滑,能有效地在觸控屏上顯示坐標(biāo)信息并上報給上層處理系統(tǒng)。
[1]HOTK,LEECY,TSENGMC,etal.Simplesingle-layermulti-touchprojectedcapacitivetouchpanel[J].SIDsymposiumdigestoftechnicalpapers,2009,40(1):447-450.
[2]毛建平.觸控屏坐標(biāo)去抖動方法、系統(tǒng)及觸控屏終端:103412698A[P]. 2013-07-30.[3]KAO W C,KANG Y C,LIU C H,et al. Hardware engine for real-time pen tracking on electrophoretic displays[J]. Journal of display technology,2013,9(3):139-145.
[4]LIN C L,LI C S,CHANG Y M,et al. 3D stylus and pressure sensing system for capacitive touch panel[C]//2012 IEEE International Conference on Consumer Electronics (ICCE). Las Vegas,NV:IEEE,2012:215-216.
[5]莫良華,張靖愷,彭玲. 提高邊緣感應(yīng)觸摸精度的電容式觸摸屏及其數(shù)據(jù)處理方法: CN101882041A[P].2010-03-12.
[6]趙軍,張桂梅,曲仕茹. 利用極點順序的多邊形頂點凹凸性判別算法[J].工程圖學(xué)學(xué)報,2007,28(1):55-59.
[7]黎鎖平,劉坤會. 平滑系數(shù)自適應(yīng)的二次指數(shù)平滑模型及其應(yīng)用[J].系統(tǒng)工程理論與實踐,2004,24(2):94-99.
責(zé)任編輯:許盈
Accurate touch coordinates processing and reporting algorithm based on mutual capacitance
ZHANG Qianyang1,2, ZHANG Zhaofeng1, LI Baoqi3
(1.ShanghaiAdvancedResearchInstitute,ChineseAcademyofSciences,Shanghai201210,China; 2.ChinaUniversityofChineseAcademyofSciences,Beijing100049,China; 3.ShanghaiPanchipMicroElectronicsCo.,Ltd.,Shanghai201210,China)
A novel approach to accurately process and report touch coordinates is presented based on mutual capacitance. Unwanted oscillations appeares as zigzag output and curve breakpoints which can be apparently seen are caused by hand shake, noise and unstable sense signals when drawing and writing on a touch screen, which leads to poor user experience. The drawn trajectory needs to be improved for better visual display effect. Thus, touch recognition algorithm is utilized in this paper, the raw data of the touch coordinates is processed through the micro-controller. First, the maximum value of the relative change of the capacitance signal is found and stored when touching. Then, the edge of contour which is higher than threshold can be interpolated, getting an irregular polygon. Besides, discrimination of two or more touch points can be implemented by judging the bump sex of polygon vertices. After polygon centroid is calculated and touch id is determined, the final coordinates are given and reported to the upper host with linear quadratic exponential smooth filtering. The displayed track is visually smoothed, showing the proposed algorithm can successfully handle the touch information and turn the zigzag waves with breakpoints to smoothed curves.
mutual capacitance; touch coordinates; contour threshold; exponential smooth filtering
TN409
ADOI:10.16280/j.videoe.2016.10.011
2016-04-02
文獻(xiàn)引用格式:張倩洋,張釗鋒,李寶騏. 互電容觸控坐標(biāo)精確處理和上報算法[J].電視技術(shù),2016,40(10):50-54.
ZHANG Q Y,ZHANG Z F,LI B Q. Accurate touch coordinates processing and reporting algorithm based on mutual capacitance[J].Video engineering,2016,40(10):50-54.