国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

通過(guò)ADS7846在PDA上實(shí)現(xiàn)個(gè)性化書(shū)法輸入

發(fā)布時(shí)間:2010-11-16 10:52    發(fā)布者:eetech
關(guān)鍵詞: ADS7846 , PDA , 個(gè)性化 , 書(shū)法 , 輸入
目前,在嵌入式系統(tǒng)中通過(guò)觸摸屏寫(xiě)出的文字,筆劃粗細(xì)都是相同的,字跡顯得僵硬,不如毛筆字或鋼筆字瀟灑大方且風(fēng)格多樣。提出了一種適用于PDA及其它嵌入式設(shè)備的低成本、高速度、簡(jiǎn)單可行的解決方法,使得在觸摸屏上書(shū)寫(xiě)時(shí),LCD屏上能顯現(xiàn)出如同毛筆字或鋼筆字的傳統(tǒng)書(shū)法特色的文字,筆劃粗細(xì)疏密有致,字跡親切自然,同時(shí)也能顯現(xiàn)出書(shū)寫(xiě)人筆跡的個(gè)性風(fēng)格。  

書(shū)法藝術(shù)是中國(guó)傳統(tǒng)文化的瑰寶。如果用筆尖或指尖在觸摸屏上揮灑自如寫(xiě)字,LCD上能顯示出猶如用毛筆或鋼筆收寫(xiě)時(shí)的書(shū)法效果,并能顯現(xiàn)出書(shū)寫(xiě)人獨(dú)特個(gè)性的雋秀筆跡,那么就會(huì)使人體會(huì)到淋漓盡致的書(shū)法藝術(shù)。但現(xiàn)有的PDA(Personal Digital Assistant)通過(guò)觸摸屏畫(huà)出線條,顯示屏上顯示出的線條粗細(xì)都是相同的,無(wú)法寫(xiě)出筆劃粗細(xì)相間的文字,也就無(wú)法模擬出毛筆或鋼筆書(shū)寫(xiě)時(shí)筆鋒的效果。為彌補(bǔ)以上不足,筆者采用能采樣觸點(diǎn)壓力的ADS7846觸摸屏控制器,編寫(xiě)了采樣觸點(diǎn)坐標(biāo)值和壓力值的驅(qū)動(dòng)程序,實(shí)現(xiàn)了通過(guò)觸摸屏輸入,在液晶顯示器上顯示書(shū)法出良好的效果。就象手中拿著毛筆或鋼筆在觸摸屏上寫(xiě)字一樣,無(wú)論是行書(shū)、草書(shū)、隸書(shū)還是楷書(shū),都能顯示出令人滿意的效果,并且完全保留了書(shū)寫(xiě)人的字跡特點(diǎn)。  

1 ADS7846觸摸屏控制器原理和功能概述  

基于四線電阻式觸摸屏的輸入系統(tǒng)由觸摸屏、觸摸屏控制器、微控制器及其相應(yīng)軟件構(gòu)成。其中,觸摸屏控制器相當(dāng)于觸摸屏與微控制器之間的接口。觸摸屏體是一個(gè)四層的復(fù)合薄膜,,附著在顯示器表面與顯示器配合使用。復(fù)合薄膜的最下層是玻璃基層,最上層是光滑防刮的塑料層,中間為兩層透明導(dǎo)電涂層。每一導(dǎo)電層為觸摸屏的一個(gè)工作面,每個(gè)工作面的兩端各涂有一條銀膠,稱為該工作面的一對(duì)電極,分別稱為X“電極對(duì)”和Y“電極對(duì)”。當(dāng)觸摸屏控制器在X“電極對(duì)”上施加一確定的電壓,而Y“電極對(duì)”上不加電壓時(shí),X“電極對(duì)"所在的工作面上就會(huì)形成均勻連續(xù)的平行電場(chǎng)。當(dāng)用手指觸及觸摸屏表面時(shí),觸點(diǎn)處的電壓反映了觸點(diǎn)在X工作面上的位置,將該電壓通過(guò)Y+(或Y-)電極引到觸摸屏控制器,并經(jīng)過(guò)A/D轉(zhuǎn)換,便可得到觸點(diǎn)電壓的數(shù)字量,即X坐標(biāo)。同理,在Y“電極對(duì)”上施加電壓,以X+(或X-)電極為測(cè)量電極,便可測(cè)得Y坐標(biāo)。微控制器根據(jù)觸點(diǎn)坐標(biāo)位置以及對(duì)應(yīng)坐標(biāo)位置上顯示的內(nèi)容,便可得知觸摸者的意圖。





ADS7846是Burr-Brown公司生產(chǎn)的一種四線式觸摸屏控制器,在與觸摸連用時(shí),一旦筆尖或指尖點(diǎn)觸在觸摸屏上,便可迅速得到該點(diǎn)的位置信號(hào),從而達(dá)到在觸摸屏表面雪址的目的。ADS7846是典型的逐步逼近寄存器型A/D變換器,包含了取樣/保持功能。ADS7846與其前代產(chǎn)品ADS7843相比,增加了片內(nèi)溫度測(cè)量、觸摸壓力測(cè)量、外模擬量測(cè)量和電池電壓測(cè)量四個(gè)功能。  

ADS7846的核心部件是一個(gè)具有采樣和保持功能的12位逐次逼近式A/D轉(zhuǎn)換器。內(nèi)部的六選一模擬多路開(kāi)關(guān)根據(jù)微控制器送來(lái)的命令字選擇六個(gè)模擬量:X+、Y+、Y-、VBAT(電池電壓)、TEMP(溫度)和AUXIN(外模擬量)之一送入A/D轉(zhuǎn)換器,轉(zhuǎn)換后通過(guò)SPI接口將數(shù)字量送入微控制器。ADS7846還設(shè)置有觸摸識(shí)別電路,當(dāng)檢測(cè)到有觸摸時(shí),該電路輸出一個(gè)低電平信號(hào),稱為PENIRQ#(筆中斷),ADS7846以這個(gè)信號(hào)向微控制器提出測(cè)量觸點(diǎn)坐標(biāo)的中斷請(qǐng)求。觸點(diǎn)坐標(biāo)的公式如下:  




  
式中,X和Y分別為觸點(diǎn)在X工作面和Y工作面上產(chǎn)生的電壓的數(shù)字量的測(cè)量值,可通過(guò)采樣得到;(X,Y)反映了觸點(diǎn)在觸摸屏上的坐標(biāo)的公式如下XMIX、YMIN、XMAX和YMAX分別為觸摸屏上最小和最大坐標(biāo)點(diǎn)在X工作面和Y工作面上產(chǎn)生的電壓的數(shù)字量的實(shí)際測(cè)量值,它們是常量,可通過(guò)測(cè)量得到;(XMIN,YMIN)和(XMAX,YMAX)反映了觸摸屏上最小、最大坐標(biāo)點(diǎn)的坐標(biāo);w和H分別是LCD顯示屏X軸和Y軸上的象素點(diǎn)總數(shù);(X1,Y1)為觸點(diǎn)映射到LCD顯示屏上的像素點(diǎn)坐標(biāo)。  

觸摸壓力測(cè)量是指對(duì)指尖或筆尖觸及觸摸屏?xí)r產(chǎn)生的壓力值進(jìn)行測(cè)量。觸摸壓力不是直接測(cè)出來(lái)的,而是轉(zhuǎn)換為測(cè)量觸點(diǎn)處X工作面和Y工作面之間的接觸電阻的大小來(lái)完成的。Rtouch的公式如下:  




  
式中,Rtouch表示接觸電阻;Rx是X+與X-兩電極間的總電阻;Z1和Z2是觸摸屏的內(nèi)部參數(shù),反映觸點(diǎn)與X工作面和Y工作面間的關(guān)系。Z1和Z2兩個(gè)參數(shù)及X的值可通過(guò)ADS7846提供的指令采樣得到。而Rx并不需要去測(cè)量,因?yàn)楦鱾(gè)觸摸屏的這個(gè)參數(shù)并不一樣,但在同一個(gè)觸摸屏上它卻是個(gè)定值,每個(gè)點(diǎn)的Rtouch都要乘以這個(gè)定值Rx,所以這個(gè)參數(shù)可以不考慮。所得到的Rtouch值的大小反應(yīng)了測(cè)量觸點(diǎn)壓力的大小。Rtouch越大,壓力越小,可以通過(guò)實(shí)驗(yàn)測(cè)出不同壓力的Rtouch值。如果發(fā)現(xiàn)壓力值分布范圍太寬,可以給Rtouch除以一個(gè)合適的參數(shù);如果發(fā)現(xiàn)壓力值分布太窄,可以給Rtouch乘以一個(gè)合適的參數(shù)。筆者針對(duì)自己的觸摸屏,通過(guò)試驗(yàn)發(fā)現(xiàn)用  




  
比較合適,不同的壓力與Rtouch的比值分布在80~170之間,這樣就有足夠的間隔來(lái)把壓力劃分為不同的等級(jí)。  

2 設(shè)計(jì)原理與具體實(shí)現(xiàn)  

2.1 設(shè)計(jì)思路  

微處理器首先利用SPI總線通過(guò)ADS7846采樣到筆尖在觸摸屏上的觸點(diǎn)坐標(biāo)值及Z1值和Z2值;然后通過(guò)式(1)和式(2)計(jì)算出映射到LCD屏上的坐標(biāo)值,用式(4)計(jì)算出Rtouch值;再利用GUI提供的API函數(shù)在LCD上畫(huà)一條線段把前一個(gè)觸點(diǎn)和當(dāng)前觸點(diǎn)連起來(lái);最后在這條線段的兩邊擴(kuò)展平行線,平行線的數(shù)量越多,這條線段越粗。平行線的數(shù)量由當(dāng)前觸點(diǎn)Rtouch的大小決定,即壓力越大,線段越粗。這樣就模擬出了用毛筆或鋼筆書(shū)寫(xiě)時(shí)筆鋒游轉(zhuǎn)的效果。  

2.2 電路設(shè)計(jì)  

筆者以MOTOROLA公司的DRAGONBALL(龍珠)系列MC9328MX1(ARM92T)作為硬件平臺(tái),利用MC9328MX1提供的SPI總線對(duì)ADS7846進(jìn)行控制和數(shù)據(jù)傳輸。接口示意圖如圖1所示。  

由圖1可以看出,ADS7846與其前代產(chǎn)品ADS7843的接口電路完全相同。如果需要在原來(lái)使用ADS7843的設(shè)備上增加片內(nèi)溫度測(cè)量、觸摸壓力測(cè)量、外模擬量測(cè)量和電池電壓測(cè)量四個(gè)功能,只需將板上的ADS7843替換為ADS7846,然后改寫(xiě)驅(qū)動(dòng)程序即可。因?yàn)锳DS7846與ADS7843的引腳封裝完全一致,所以不用改動(dòng)電路,這使更換工作非常方便。  

2.3 驅(qū)動(dòng)程序  

在應(yīng)用中,采用差動(dòng)參考電壓方式測(cè)量坐標(biāo)模擬量,測(cè)量命令字的設(shè)置和模擬量選擇參見(jiàn)表1和表2。

表1 ADS7846的測(cè)量命令字  

Bit7(MSB)
BIt6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0

S
A2
A1
A0
MODE
SER/DFR
PD1
PD0


表2 差動(dòng)參考電壓方式下的模擬量選擇  

A[2:0]
參考電壓(+REF,-REF)
模擬量輸入
所測(cè)參數(shù)

001
Y+,Y-
X+
Y

011
Y+,X-
X-
Z1

100
Y+,X-
Y-
Z2

101
X+,X-
Y+
X

有關(guān)ADS7843驅(qū)動(dòng)程序的資料很多,源代碼也能很容易地找到。具有觸摸壓力測(cè)量功能的ADS7846的驅(qū)動(dòng)程序,只需在原ADS7834驅(qū)動(dòng)程序的合適位置加入采樣Z1參數(shù)和Z2參數(shù)的代碼就行了 .這部分的代碼很簡(jiǎn)單,添加也很容易。筆者在MC9328MX1上實(shí)現(xiàn)的源代碼如下:
  
spi_tx_data(0xB0); //輸入采樣Z1值的命令//  
zl_upper = REG_SPI_RXDATA;  
spi_tx_data(0x00);  
zl_upper = REG_SPI_RXDATA;  
spi_tx_data(0xc0); //輸人采樣Z2值的命令//  
zl_lower = REG_SPI_RXDATA;  
spi_tx_data(0x00);  
z2_upper = REG_SPI_RXDATA;  
spi_tx_data(0x00);  
z2_lower = REG_SPI_RXDATA;  
spi_tx_data(0x00); //輸入采樣Y值的命令//  
x_upper = REG_SPI_RXDATA;  
spi_tx_data(0x00);  
x_upper = REG_SPI_RXDATA;  
spi_tx_data(0x90); //輸入采樣X(jué)值的命令//  
x_lower = RE G_SPI_RXDATA;  
spi_tx_data(0x00);  
y_upper = REG_SPI_RXDATA;  
spi_tx_data(0x00);  
y_upper = REG_SPI_RXDATA;  
然后,計(jì)算出X,Y,Z1和Z2的值:  
X=(((x_upper>3) %26;amp; 0x1F));  
Y=(((y_upper>3) %26;amp; 0x1F));  
Z1=(((z1_upper>3) %26;amp; 0x1F));  
Z2=(((z2_upper>3) %26;amp; 0x1F));  

此外,還應(yīng)注意觸摸抖動(dòng)和連擊問(wèn)題。可以采用延遲測(cè)量法來(lái)解決,即在接收到觸摸屏筆中斷時(shí)延遲一段時(shí)間(抖動(dòng)時(shí)30ms)后再測(cè)量,可消除抖動(dòng);測(cè)量完后再次延遲一段時(shí)間(連擊延時(shí)300ms)后打開(kāi)筆中斷,可避免連擊現(xiàn)象的出現(xiàn)。驅(qū)動(dòng)程序主要包括初始化SPI寄存器、可編程定時(shí)器中斷和筆中斷。在筆中斷中主要完成關(guān)筆中斷、設(shè)置筆中斷標(biāo)志和將定時(shí)計(jì)數(shù)值設(shè)置為抖動(dòng)延時(shí),在定時(shí)器中斷程序中主要實(shí)現(xiàn)坐標(biāo)值的測(cè)量、延時(shí)功能。  

2.4 應(yīng)用程序  

一塊觸摸屏中并不一定每個(gè)點(diǎn)對(duì)壓力的感應(yīng)都很準(zhǔn)確。另外筆尖在觸摸屏上書(shū)寫(xiě)時(shí),也會(huì)有秚動(dòng)和干擾。這就造成了用同樣的力在觸摸屏上畫(huà)一條線,顯現(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ì)變化太慢,模擬不出書(shū)法效果。通過(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)的壓力大小(Rtouch)和筆尖在屏上接觸的時(shí)間這兩個(gè)參數(shù),使畫(huà)出曲線的顔色呈出出不同深淺。即觸點(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è)定。
  
這樣,用指尖在觸摸屏上作畫(huà)時(shí),LCD上也會(huì)顯現(xiàn)出素描和國(guó)畫(huà)的效果。  

如果使用彩色LDC,可以結(jié)合GUI在LCD上創(chuàng)建一個(gè)供用戶選擇不同色彩的窗口,用戶就可以挑選合適的顔色在觸摸屏上畫(huà)圖,顯示屏上也將會(huì)呈現(xiàn)色彩繽紛的作品。因此,本文介紹的方法將會(huì)為PDA及相關(guān)行業(yè)開(kāi)拓出全新的功能,帶來(lái)更加明媚的春天。  

本文提出的方法已在MOTOROLA公司的DRAGONBALL(龍珠)系列MX1(ARM920T)上實(shí)現(xiàn)。該設(shè)計(jì)使得在PDA的觸摸屏上寫(xiě)字時(shí),能顯示出毛筆或鋼筆寫(xiě)出的書(shū)法效果,同時(shí)也顯現(xiàn)出了書(shū)寫(xiě)人筆跡的個(gè)性風(fēng)格,并具有反應(yīng)速度快、實(shí)現(xiàn)成本低、程序編寫(xiě)特簡(jiǎn)單等突出特點(diǎn)。相信此方法將會(huì)在周期入式領(lǐng)域中得到廣泛的應(yīng)用。
本文地址:http://www.qingdxww.cn/thread-39571-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 更佳設(shè)計(jì)的解決方案——Microchip模擬開(kāi)發(fā)生態(tài)系統(tǒng)
  • 利用模擬開(kāi)發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計(jì)
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 你仿真過(guò)嗎?使用免費(fèi)的MPLAB Mindi模擬仿真器降低設(shè)計(jì)風(fēng)險(xiǎn)
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美高清日本三级人妇 | 中文字幕一区二区三 | 国产精品夜间视频香蕉 | 国内精品国语自产拍在线观看91 | 色婷婷在线观看视频 | 成年美女黄网 | 97视频在线免费观看 | 欧美一区二区不卡视频 | 精品久久一 | 亚洲第一香蕉视频 | 亚洲一区视频在线播放 | 91成人在线观看视频 | 亚洲欧美综合另类 | 99热这里只有精品在线观看 | 国产亚洲精品一品区99热 | 亚洲激情综合在线 | 亚洲天堂激情 | 欧美多人三级级视频播放 | 可以看的黑人性较视频 | h漫免费在线观看 | 极品色综合 | 日韩精品亚洲专区在线观看 | 五月天婷婷网亚洲综合在线 | 91视频一区二区三区 | 午夜一级成人 | 91精品国产免费网站 | 三级网站免费观看 | 91亚洲精品福利在线播放 | 亚洲一区欧美一区 | 妈妈的朋友韩国在线播放 | 九九国产精品视频 | 免费lulu网站 | 四虎永久影院 | 搞鸡app下载| 亚洲男人的性天堂 | 精品一区二区久久 | 青草午夜精品视频在线观看 | 一级片免费在线 | 国产成人在线观看免费网站 | 国产精品好好热在线观看 | 日韩在线观看免费完整版视频 |