在線簽名識(shí)別系統(tǒng)的數(shù)據(jù)采集和USB通信
3.3 上位機(jī)應(yīng)用程序編寫
USB應(yīng)用程序可采用VB編寫,設(shè)計(jì)時(shí)把對(duì)USB的訪問做成動(dòng)態(tài)鏈接庫,這樣可以節(jié)省程序、提高程序運(yùn)行效率。實(shí)際上,只需要告訴VB系統(tǒng)動(dòng)態(tài)鏈接庫文件(DLL)的定位信息和聲明讀寫USB端口的接口函數(shù),就可以對(duì)USB端口進(jìn)行操作。而在VB中若要訪問動(dòng)態(tài)鏈接庫函數(shù)則必須把定位信息和函數(shù)聲明放在一個(gè)后綴為bas的模塊中。模塊中的聲明代碼如下:
Public Declare Function ReadData Lib " C:\WINDOWS\system32\EasyUSB.dll " - (ByVal pipenum As Integer,recbuffer As Byte,ByVal ilen AsInteger,ByVal waittime As Integer)As Integer
在VB中可以用定時(shí)器控件來同步接收數(shù)據(jù),也可以設(shè)置定時(shí)器的Interval屬性,即觸發(fā)定時(shí)器的間隔時(shí)間。當(dāng)每次觸發(fā)時(shí)間到達(dá)時(shí),就可從USB接口接收數(shù)據(jù)。
簽名的實(shí)時(shí)顯示分為采集坐標(biāo)的實(shí)時(shí)顯示和簽名筆跡的實(shí)時(shí)顯示,其中采集坐標(biāo)顯示包含橫縱坐標(biāo)和壓力坐標(biāo)的顯示。
簽名坐標(biāo)的實(shí)時(shí)顯示可以用TextBox文本框控件來實(shí)現(xiàn),但要用一個(gè)轉(zhuǎn)換函數(shù)Str ()負(fù)責(zé)把采集到的整型數(shù)據(jù)轉(zhuǎn)換為字符串類型,這樣就可以直接在文本框顯示了。
簽名筆跡的實(shí)時(shí)顯示稍微復(fù)雜一點(diǎn),其實(shí)現(xiàn)方法是采用畫線函數(shù)法,即當(dāng)知道了兩個(gè)點(diǎn)時(shí)就可以根據(jù)這兩個(gè)點(diǎn)畫線。每采集并接收到一個(gè)點(diǎn)時(shí),就執(zhí)行一次畫線函數(shù),以把當(dāng)前的點(diǎn)和前一個(gè)點(diǎn)相連。這樣,當(dāng)你簽名的時(shí)候,畫線函數(shù)就會(huì)把你的書寫筆跡呈現(xiàn)出來。
在進(jìn)行畫線時(shí)還要考慮干擾問題。由于液晶顯示對(duì)簽名采集芯片有一定的影響,因而可能造成采集數(shù)據(jù)的抖動(dòng),有時(shí)候還會(huì)出現(xiàn)非點(diǎn)(即本次采集到的值與前次和后一次的采集值相差較大),本設(shè)計(jì)雖然在系統(tǒng)硬件上做了一些抗干擾措施(比如加裝濾波電容等),但效果不是很明顯。
后經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),通過軟件去抖方法可以實(shí)現(xiàn)筆跡的平滑顯示。具體去抖可從以下兩個(gè)方面實(shí)現(xiàn):第一是把兩點(diǎn)之間的連線改為每四個(gè)點(diǎn)連一次,并把采集到的四個(gè)點(diǎn)的坐標(biāo)值取平均值,從而緩解坐標(biāo)值的抖動(dòng);第二是設(shè)定一個(gè)域值,當(dāng)兩個(gè)點(diǎn)之間的坐標(biāo)絕對(duì)值之差不在該域值范圍內(nèi)時(shí),即判定該點(diǎn)為非點(diǎn),而不對(duì)該坐標(biāo)值進(jìn)行任何操作,直接舍棄。通過以上兩個(gè)方面的措施可以去掉大多數(shù)的非點(diǎn)和抖動(dòng)點(diǎn),使曲線變得更加平滑。
圖5所顯示的是抗干擾處理前后所采集到的簽名,圖中箭頭處即為受干擾的筆劃。
簽名筆跡實(shí)時(shí)顯示的算法流程圖如圖6所示。
圖7給出了VB應(yīng)用程序下的實(shí)時(shí)顯示界面。
4 結(jié)束語
本在線簽名系統(tǒng)使用ADS7846實(shí)現(xiàn)了高速和高精度的數(shù)據(jù)采集,該芯片不僅能采集簽名的橫縱坐標(biāo),還能采集壓力坐標(biāo),從而豐富了在線簽名系統(tǒng)的動(dòng)態(tài)簽名信息,為以后的簽名識(shí)別提供了更多的判斷依據(jù)。本在線簽名識(shí)別系統(tǒng)中采用USB接口來解決動(dòng)態(tài)信息的采集設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)通信具有一定的現(xiàn)實(shí)意義。該方案可以準(zhǔn)確實(shí)時(shí)地將采集到的簽名數(shù)據(jù)傳送到計(jì)算機(jī)。經(jīng)測(cè)試,本系統(tǒng)傳輸信息的速度大于1Mbps,能夠很好的滿足系統(tǒng)的要求;同時(shí)由VB編寫的人機(jī)界面還可實(shí)現(xiàn)簽名的再現(xiàn)。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評(píng)論