基于A(yíng)RM7和VC平臺的高分辨率紅外觸摸屏設計
2.2鼠標動(dòng)作
鼠標動(dòng)作在觸摸屏的應用中甚為重要。它主要包括鼠標的定位,鼠標的移動(dòng),鼠標的左鍵單擊和雙擊,以及鼠標的右鍵單擊。在VC++編程中,可通過(guò)使用API函數中的mouse_event來(lái)模擬鼠標事件,以實(shí)現以上的鼠標動(dòng)作。其實(shí)現代碼如下:
定位:SetCursorPos(X,Y);
左鍵單擊:mouse_event((MOUSEEVENTF_LEFYDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
在模擬鼠標動(dòng)作的同時(shí),一個(gè)很重要的處理步驟是屏蔽采集數據時(shí)受到的干擾。另外,使鼠標運動(dòng)平滑化也不容忽視。
圖4是通過(guò)matlab軟件對鼠標運動(dòng)過(guò)程中的各坐標繪制的曲線(xiàn)圖。通過(guò)曲線(xiàn)可以看到,硬件上的干擾會(huì )造成采集的坐標數據出現突變點(diǎn),曲線(xiàn)上有很多毛刺。這也合理的解釋了鼠標在運動(dòng)過(guò)程會(huì )出現回跳和抖動(dòng),不能平滑運動(dòng)的現象,因此必須屏蔽這些干擾。
針對突變點(diǎn),本文采用了比較法來(lái)克服。所謂比較法,就是將后一次接收到的坐標數據與前一次接收到的坐標數據做比較,并設置一定的域值范圍。當比較得到的絕對值在該域值范圍內時(shí),則認為所作的動(dòng)作是有效的。與此同時(shí),還需比較前后數據的變化趨勢是否一致,只有當數據的變化趨勢一致,才認為鼠標的移動(dòng)是有效的。
針對毛刺,本文采用平均法和比較法來(lái)克服。所謂平均法,是將從第N組到第2N組的N組數據進(jìn)行平均,然后將其作為第N組數據。這樣可以有效的減少毛刺干擾。另外,也可以對前后兩組數據進(jìn)行比較,只有當比較得到的絕對值大于觸摸屏的最小分辨率時(shí),才認為鼠標發(fā)生移動(dòng),否則原地不動(dòng)。通過(guò)這樣的處理,可以解決鼠標抖動(dòng)的問(wèn)題。經(jīng)過(guò)處理后的鼠標運動(dòng)曲線(xiàn)如圖5所示。
3結束語(yǔ)
本文介紹了基于ARM7控制器和VC實(shí)現的紅外觸摸屏設計方案,該方案以ARM7作為硬件的核心控制芯片,并通過(guò)其利用IO口對移位鎖存器的控制來(lái)實(shí)現對發(fā)射管的驅動(dòng),利用地址線(xiàn)和數據線(xiàn)來(lái)實(shí)現對接收管的尋址和采樣,以形成紅外定位陣列,從而從硬件上完成了位置數據的采集。該方法可實(shí)現2046×768的高分辨率。而在軟件上,通過(guò)VC++編程則可實(shí)現主機端的串口通信,模擬鼠標動(dòng)作,并結合比較法和平均法對鼠標運動(dòng)進(jìn)行平滑化處理。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評論