許少睿
(廣東機(jī)電職業(yè)技術(shù)學(xué)院 電子與通信學(xué)院,廣東 廣州 510550)
紅外觸控技術(shù)擁有成本低和安裝售后簡(jiǎn)單的優(yōu)勢(shì),作為55寸、65寸、86寸和98寸液晶屏觸控技術(shù)的首選方案被廣泛應(yīng)用于各類電子產(chǎn)品中.傳統(tǒng)的紅外觸控技術(shù)利用紅外發(fā)射燈和紅外接收燈構(gòu)成了發(fā)射單元和接收單元[1-3],如圖1(a)所示,發(fā)射燈和接收燈一發(fā)一收的光線排布形成橫豎垂直的紅外線檢測(cè)網(wǎng)格,當(dāng)有物體遮擋紅外線時(shí),可以通過(guò)垂直的交點(diǎn)快速判斷物體的位置.這種方法適用于單點(diǎn)觸控,但在多點(diǎn)觸控時(shí)暴露出明顯的不足:容易產(chǎn)生鬼點(diǎn),識(shí)別率低.隨著紅外觸控技術(shù)的發(fā)展[4-7],目前最新的技術(shù)是利用發(fā)射燈和接收燈的不等間距排布產(chǎn)生覆蓋整個(gè)屏幕的光線.圖1(b)是不等間距紅外發(fā)射燈和接收燈布局所產(chǎn)生的光網(wǎng)圖,黑色代表光線覆蓋整個(gè)觸控區(qū)域,無(wú)盲區(qū).對(duì)比傳統(tǒng)的方法,具有識(shí)別精度高的優(yōu)點(diǎn),但是因?yàn)楣饩€數(shù)量呈現(xiàn)10倍的增長(zhǎng),對(duì)芯片的頻率和算法的要求也呈現(xiàn)倍數(shù)的提高.本文提出了一種新型識(shí)別多點(diǎn)紅外觸控算法,在不增加物料清單BOM(Bill of Material)整體成本的基礎(chǔ)上可以快速識(shí)別出20 點(diǎn)觸控,基于AT32F403 芯片搭建硬件測(cè)試平臺(tái),經(jīng)過(guò)軟硬件綜合設(shè)計(jì),和傳統(tǒng)的紅外觸控技術(shù)[8-10]對(duì)比,識(shí)別響應(yīng)快,觸摸體驗(yàn)感好.
圖1 傳統(tǒng)紅外觸控技術(shù)的紅外燈布局和光網(wǎng)圖
傳統(tǒng)的多點(diǎn)觸控識(shí)別方法首先選擇指定的兩個(gè)存在遮擋光線的接收燈,然后利用接收燈的非遮擋光線產(chǎn)生多個(gè)觸控識(shí)別區(qū)域,區(qū)域包含了真實(shí)觸控點(diǎn)和假點(diǎn),如圖2所示.圖2(a)的黑色區(qū)域表示所有非遮擋光線,當(dāng)有五只手指觸控時(shí),會(huì)在光網(wǎng)圖上形成對(duì)應(yīng)位置的非遮擋區(qū)域,用紅圈表示觸控點(diǎn)的位置.圖2(b)利用兩個(gè)指定接收燈產(chǎn)生了12個(gè)需要判斷的識(shí)別區(qū)域,區(qū)域包含5個(gè)紅色的真實(shí)觸控點(diǎn)區(qū)域和7個(gè)藍(lán)色的假點(diǎn)區(qū)域.對(duì)于12個(gè)識(shí)別區(qū)域,逐個(gè)結(jié)合遮擋光線和非遮擋光線縮小區(qū)域范圍,最終刪除小的假點(diǎn)區(qū)域,保留大的觸控區(qū)域,完成多點(diǎn)識(shí)別.這種方法的缺點(diǎn)是需要消耗大量的時(shí)間判斷多個(gè)假點(diǎn)區(qū)域,導(dǎo)致處理時(shí)間長(zhǎng),觸控延時(shí)嚴(yán)重,用戶體驗(yàn)感差.
圖2 光網(wǎng)圖上的真實(shí)觸控點(diǎn)區(qū)域和假點(diǎn)區(qū)域
本文提出一種新型的多點(diǎn)觸控識(shí)別算法,能夠?qū)崿F(xiàn)每次找出的可疑區(qū)域都是真實(shí)觸控點(diǎn)的存在區(qū)域,通過(guò)減少可疑區(qū)域減少了大量的計(jì)算時(shí)間,提高識(shí)別速度.本文提出的方法分為四個(gè)步驟:
(一)坐標(biāo)映射和區(qū)域選定.將所有(x,y)坐標(biāo)空間遮擋光線映射到(k,b)坐標(biāo)空間,然后選擇兩個(gè)最左側(cè)的接收燈r1和r2和遮擋區(qū)域形成可疑區(qū)域R.xy坐標(biāo)空間的遮擋直線y=k*x+b可以轉(zhuǎn)化為b=y-k*x,在kb坐標(biāo)空間就可以用點(diǎn)坐標(biāo)(k,b)來(lái)表示遮擋直線y=k*x+b,觸控點(diǎn)多條遮擋光線轉(zhuǎn)化到kb空間后,多個(gè)(k,b)點(diǎn)連接產(chǎn)生的直線也可以反向轉(zhuǎn)化得到xy空間的觸控點(diǎn)坐標(biāo).通過(guò)坐標(biāo)變換,將所有遮擋直線全部用(k,b)點(diǎn)表示,能夠快速的鎖定觸控點(diǎn)的范圍.圖3(a)表示五根手指在平面上觸控所遮擋到的所有光線,圖3(b)表示遮擋光線映射到(k,b)空間后的所有點(diǎn).通過(guò)計(jì)算kb 空間最左側(cè)的點(diǎn)形成的直線斜率,查找出擁有相近斜率的最左側(cè)兩個(gè)接收燈r1 和r2,通過(guò)r1和r2的遮擋區(qū)域可以快速產(chǎn)生第一個(gè)觸控點(diǎn)可疑區(qū)域范圍,如圖3(c)所示,紅色光線相交區(qū)域即是觸控點(diǎn)所在的區(qū)域.圖3(d)的紅色直線表示可以由多個(gè)(k,b)點(diǎn)反向得到xy空間的觸控點(diǎn)坐標(biāo).
(二)對(duì)區(qū)域R進(jìn)行縮減確定觸控點(diǎn)TP的光標(biāo)和范圍.如圖4(a)所示,遮擋光線用虛線表示,非遮擋光線用實(shí)線表示.非遮擋光線的數(shù)量比遮擋光線多,利用非遮擋光線能夠得到觸控物體的形狀和大小.本文利用非遮擋光線縮減可疑區(qū)域的范圍,通過(guò)在可疑區(qū)域的中心坐標(biāo)附近記錄所有非遮擋光線對(duì)應(yīng)的值,找出包圍最大區(qū)域的4根粗實(shí)線,即為觸控點(diǎn)的最終確定范圍.
圖3 坐標(biāo)映射和區(qū)域選定流程
圖4 觸控點(diǎn)區(qū)域縮減控制
(三)利用觸控點(diǎn)TP的坐標(biāo)刪除掉(k,b)空間上所有經(jīng)過(guò)觸控點(diǎn)TP的光線點(diǎn).確定了真實(shí)的觸控點(diǎn)之后,需要?jiǎng)h除掉經(jīng)過(guò)該觸控點(diǎn)的所有遮擋光線,減少遮擋光線信息的復(fù)雜度.然后將剩余的未判斷遮擋光線重新映射到kb空間,如圖4(b)所示.
(四)重復(fù)步驟一,循環(huán)刪除(k,b)空間所有的點(diǎn),即表示所有的遮擋光線都被刪除,最終完成所有真實(shí)觸控點(diǎn)的識(shí)別.本文給出的觸控實(shí)例是5跟手指觸控,只需要重復(fù)5次就可以完成所有點(diǎn)的識(shí)別.重復(fù)的次數(shù)等于觸控的點(diǎn)數(shù),避免了隨著觸控點(diǎn)數(shù)的增加,識(shí)別時(shí)間成倍數(shù)增加的情況,極大地減少識(shí)別所消耗的時(shí)間.
本系統(tǒng)由MCU主控電路模塊、紅外發(fā)射電路模塊和紅外接收電路模塊三大部分組成.紅外觸控系統(tǒng)硬件整體布局如圖5所示.MCU主控電路模塊采用ARTERY公司Cortex M4芯片AT32F403,芯片最高主頻200MHz,支持浮點(diǎn)運(yùn)算,電源由電腦USB 接口提供5V 電壓供電,LDO 采用芯片AMS1117ADJ.
圖5 系統(tǒng)電路板分布圖
紅外發(fā)射電路模塊的功能是利用MCU依次驅(qū)動(dòng)每個(gè)紅外發(fā)射燈發(fā)送光信號(hào),單個(gè)紅外發(fā)射燈的開(kāi)關(guān)時(shí)間為500 ns,驅(qū)動(dòng)瞬時(shí)電流為1 A.該電路的框圖如圖6 所示,采用了信號(hào)電平轉(zhuǎn)換芯片74HC244,移位器芯片74HC74D,譯碼器芯片74HC139和74HC138,通過(guò)三極管矩陣驅(qū)動(dòng)紅外發(fā)射燈.
圖6 紅外發(fā)射電路模塊
紅外接收電路模塊負(fù)責(zé)處理接收紅外接收燈接收的紅外信號(hào),對(duì)接收的信號(hào)進(jìn)行通道選擇操作,多重信號(hào)放大和濾波,經(jīng)過(guò)處理后的模擬信號(hào)進(jìn)入MCU的ADC采樣管腳,由MCU進(jìn)行信號(hào)采樣和模數(shù)轉(zhuǎn)換.該模塊的框圖如圖7 所示,采用了信號(hào)電平轉(zhuǎn)換芯片74HC244,多路片選信號(hào)開(kāi)關(guān)芯片74HC4051,移位器芯片74HC74D,2路片選信號(hào)開(kāi)關(guān)芯片74LVC2G66.
圖7 紅外接收電路模塊
程序的設(shè)計(jì)使用C語(yǔ)言作為編程工具,集成開(kāi)發(fā)環(huán)境(IDE)是Keil uVision,通過(guò)功能的模塊化來(lái)實(shí)現(xiàn),軟件程序功能包括:硬件資源初始化和USB枚舉模塊、發(fā)射燈控制模塊、接收燈信號(hào)處理模塊、數(shù)據(jù)坐標(biāo)映射模塊、區(qū)域縮減模塊、遮擋光線刪除模塊、觸控?cái)?shù)據(jù)跟蹤和位置分配模塊、USB數(shù)據(jù)發(fā)送模塊.程序的主流程圖如圖8所示.
圖8 流程圖
本文提出的新型多點(diǎn)觸控識(shí)別算法在65寸紅外觸控一體機(jī)上進(jìn)行驗(yàn)證.65寸紅外觸摸框總共需要1塊MCU主控電路板,5塊發(fā)射電路板和6塊接收電路板.板級(jí)PCBA之間運(yùn)用FPC排線串接方式連接,水平方向插入4塊PCBA,垂直方向插入2塊PCBA.硬件系統(tǒng)通過(guò)MCU主控電路板上的USB接口與PC端連接,由USB接口給系統(tǒng)提供5V供電.基于USB Multi-touch HID協(xié)議,MCU和PC之間完成USB枚舉后,windows將紅外觸摸屏識(shí)別為Touch HID設(shè)備.當(dāng)用戶觸控液晶屏?xí)r,硬件系統(tǒng)通過(guò)接收電路模塊可以將實(shí)時(shí)信號(hào)傳送入MCU ADC,由MCU采樣并識(shí)別出用戶觸控的位置.MCU將觸控點(diǎn)的坐標(biāo)數(shù)據(jù)通過(guò)USB發(fā)送給windows操作系統(tǒng),操作系統(tǒng)就會(huì)出現(xiàn)觸摸響應(yīng).
測(cè)試書(shū)寫的效果如圖9 所示,經(jīng)過(guò)測(cè)試驗(yàn)證可以識(shí)別出多點(diǎn)觸控.通過(guò)windows軟件Bus Hound觀察USB傳輸時(shí)間,5點(diǎn)觸控時(shí)間大約為13 ms,10點(diǎn)觸控時(shí)間大約為15 ms,20 點(diǎn)觸控時(shí)間大約為20 ms.傳統(tǒng)的識(shí)別算法5 點(diǎn)觸控時(shí)間大約為16 ms,10 點(diǎn)觸控時(shí)間大約為20 ms,20點(diǎn)觸控時(shí)間大約為26 ms.與傳統(tǒng)的識(shí)別算法對(duì)比,本文提出的算法整體識(shí)別時(shí)間縮短了約20%.用戶觸控沒(méi)有感覺(jué)出觸控和顯示的延后,輸出效果優(yōu)異.實(shí)驗(yàn)結(jié)果證明了本文提出的新型多點(diǎn)觸控識(shí)別算法的有效性和系統(tǒng)軟硬件設(shè)計(jì)的可行性.
圖9 5點(diǎn)觸控識(shí)別效果
針對(duì)傳統(tǒng)紅外多點(diǎn)觸控識(shí)別方法的不足之處,提出了一種新型的紅外多點(diǎn)觸控識(shí)別算法,并基于AT32F403主芯片搭建了65寸液晶觸控一體機(jī)硬件測(cè)試平臺(tái),詳細(xì)闡述了硬件測(cè)試平臺(tái)的各個(gè)硬件模塊和軟件設(shè)計(jì)流程,經(jīng)過(guò)軟硬件綜合設(shè)計(jì),實(shí)現(xiàn)了多點(diǎn)觸控的識(shí)別,優(yōu)化了識(shí)別時(shí)間,提升了用戶的觸控體驗(yàn).最后通過(guò)實(shí)驗(yàn)結(jié)果驗(yàn)證該方案設(shè)計(jì)的有效性.整個(gè)設(shè)計(jì)方案在保持成本優(yōu)勢(shì)的基礎(chǔ)上,提升了識(shí)別效率,能夠滿足市場(chǎng)的需求.
韓山師范學(xué)院學(xué)報(bào)2020年6期