新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM7和VC平臺的高分辨率紅外觸摸屏設計

        基于ARM7和VC平臺的高分辨率紅外觸摸屏設計

        作者: 時間:2009-12-30 來源:網絡 收藏
        本文中的的觸摸位置的計算主要是通過遮擋時與未遮擋時的光強比來得到的。在判斷觸摸位置時,可以先確定被遮擋的管子,計算得到被遮擋的大致位置。若被遮擋的管子為第N個管子,這個被遮擋的大致位置為Ld,則有:

        本文引用地址:http://www.104case.com/article/152166.htm

          Ld=(N-1)×管子的寬度

          由于手指遮擋時有一定的區域,所以遮擋時有兩種可能:其一是在被確定的管子的前面;其二是在被確定的管子處。圖3所示為手指遮擋示意圖。


          為了精確計算,需要計算這兩種情況下位置的偏移量△L1和△L2。則有:


          其中,L為第N個管子被遮擋時的位置。△L1為手指在被確定的管子的前面時的偏移量。△L2為手指在被確定的管子處時的偏移量,XN為掃描時采樣第N個管子接收到的數據,XNmax為“1”態時采樣第N個管子接收到的數據.XNmin為“0”態時采樣第N個管子接收到的數據。

          2鼠標驅動

          作為硬件上的核心控制芯片,只能進行采集以得到觸摸位置信息,而無法實現相應的鼠標動作。所以,必須通過主機端的驅動程序來實現。本文中的驅動程序可通過++編程來實現串口通信和鼠標動作,從而完成軟件結合硬件對鼠標的驅動。

          2.1 串口通信

          為了使主機能夠接收通過串口傳送的觸摸位置,可利用Microsoft公司提供的ActiveX控件Microsoft Communications Control,并通過++編程來實現串口通信。通過在該控件中的設置可指定通信串口號,同時可設置波特率、校驗位、停止位、數據位等通信參數,以及接收OnComm事件門限值。其具體代碼如下:


          由于傳統的鼠標是一種相對定位系統,它只和前一次鼠標的位置坐標有關。而則是一種絕對坐標系,與相對定位系統有著本質的區別。因此,本文通過主機從串口接收到的觸摸點坐標數據并進行轉換來得到屏幕坐標,即的坐標范圍為(0,0)到(2048,768)。而只能通過串口發送字節,且只能發送小于256的數據,所以很難實現直接傳輸。因此,在數據發送時,應將采集得到的位置數據的每個位上的數分別進行傳送。與此同時,主機端從串口接收緩沖區并取出數據,然后在驅動程序中將這些數據重新組合起來以得到觸摸位置信息。另外,為了實現鼠標的不同動作,也應分別發送不同的控制字。每次串口通信的數據格式如下:



          其中,X為觸摸位置的橫坐標,X1為X百位上的數,X2為X十位上的數,X3為X個位上的數;Y為觸摸位置的縱坐標,Y1為Y百位上的數,Y2為Y十位上的數,Y3為Y個位上的數。

          

        電容式觸摸屏相關文章:電容式觸摸屏原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 华阴市| 霞浦县| 禄丰县| 岳西县| 肃南| 得荣县| 潍坊市| 绵阳市| 当阳市| 鄂托克前旗| 景谷| 繁峙县| 宁阳县| 赫章县| 仲巴县| 泰兴市| 清流县| 建宁县| 柳河县| 东光县| 多伦县| 基隆市| 沙田区| 镇康县| 巴塘县| 辽阳市| 新晃| 静宁县| 南部县| 阿拉善盟| 镇雄县| 霞浦县| 墨脱县| 阳泉市| 理塘县| 新和县| 宿松县| 桃江县| 桂东县| 天峨县| 柳州市|