通過(guò)ADS7846在PDA上實(shí)現(xiàn)個(gè)性化書法輸入
2.4 應(yīng)用程序
一塊觸摸屏中并不一定每個(gè)點(diǎn)對(duì)壓力的感應(yīng)都很準(zhǔn)確。另外筆尖在觸摸屏上書寫時(shí),也會(huì)有秚動(dòng)和干擾。這就造成了用同樣的力在觸摸屏上畫一條線,顯現(xiàn)時(shí)可能出現(xiàn)粗細(xì)不一樣的現(xiàn)象。針對(duì)這個(gè)現(xiàn)象,在應(yīng)用程序中適當(dāng)做一些平滑處理。筆者采用算術(shù)平均法來(lái)平滑曲線,即如果發(fā)現(xiàn)采樣點(diǎn)的壓力值比前一個(gè)點(diǎn)大或小很多,則對(duì)該點(diǎn)和剛剛輸入的前幾個(gè)點(diǎn)壓力值做算術(shù)平均,得到的值作為該點(diǎn)正確的壓力值。但要注意,用來(lái)做平均的點(diǎn)不能取得太少,否則平滑作用不明顯;也不能取得太多,否則線條粗細(xì)變化太慢,模擬不出書法效果。通過(guò)實(shí)驗(yàn),發(fā)現(xiàn)取前三個(gè)點(diǎn)比較合適。做算術(shù)平均的源程序如下:
if(pressure-oldpressurel>50 oldpressurel-pressure >50) //如果發(fā)現(xiàn)觸點(diǎn)的采樣壓力值比前一個(gè)點(diǎn)大或小很多//
pressure =(pressure+oldpressurel+oldpressure2+oldpressure3)>>2; /則對(duì)該點(diǎn)和前三個(gè)觸點(diǎn)的壓力值做算術(shù)平均,并把結(jié)果作為該點(diǎn)正確的壓力值//
3 實(shí)驗(yàn)結(jié)果
經(jīng)過(guò)實(shí)驗(yàn),在LCD上顯示出的結(jié)果如圖2所示。
圖2(a)為使用ADS7843,未采樣觸點(diǎn)壓力值在LCD上的顯示效果;圖2(b)為使用ADS7846,采樣觸點(diǎn)壓力值后,根據(jù)壓力大小在LCD上顯示出不同粗細(xì)曲線的效果。
如果使用多灰度級(jí)的LCD顯示屏,還可以利用觸點(diǎn)的壓力大?。≧touch)和筆尖在屏上接觸的時(shí)間這兩個(gè)參數(shù),使畫出曲線的顔色呈出出不同深淺。即觸點(diǎn)的壓力越大、筆尖在屏上相關(guān)區(qū)域接觸的時(shí)間越長(zhǎng),這個(gè)區(qū)域顯現(xiàn)的顔色就越深。具體調(diào)節(jié)公式如下:
式中,graylever為L(zhǎng)CD上該點(diǎn)將要顯現(xiàn)出的灰度值,(X,Y)為該點(diǎn)坐標(biāo),(Xddtime,Yoldtime)為同一筆劃中一定時(shí)間間隔前觸點(diǎn)的坐標(biāo)。筆者在開(kāi)發(fā)過(guò)程中,取時(shí)間間隔為100ms。A和B都是用來(lái)調(diào)整graylever變化范圍的常量,可以通過(guò)實(shí)驗(yàn)根據(jù)具體情況設(shè)定。
這樣,用指尖在觸摸屏上作畫時(shí),LCD上也會(huì)顯現(xiàn)出素描和國(guó)畫的效果。
如果使用彩色LDC,可以結(jié)合GUI在LCD上創(chuàng)建一個(gè)供用戶選擇不同色彩的窗口,用戶就可以挑選合適的顔色在觸摸屏上畫圖,顯示屏上也將會(huì)呈現(xiàn)色彩繽紛的作品。因此,本文介紹的方法將會(huì)為PDA及相關(guān)行業(yè)開(kāi)拓出全新的功能,帶來(lái)更加明媚的春天。
本文提出的方法已在MOTOROLA公司的DRAGONBALL(龍珠)系列MX1(ARM920T)上實(shí)現(xiàn)。該設(shè)計(jì)使得在PDA的觸摸屏上寫字時(shí),能顯示出毛筆或鋼筆寫出的書法效果,同時(shí)也顯現(xiàn)出了書寫人筆跡的個(gè)性風(fēng)格,并具有反應(yīng)速度快、實(shí)現(xiàn)成本低、程序編寫特簡(jiǎn)單等突出特點(diǎn)。相信此方法將會(huì)在周期入式領(lǐng)域中得到廣泛的應(yīng)用。
電能表相關(guān)文章:電能表原理
評(píng)論