嵌入式Linux系統基于MiniGUl的觸摸屏多點采集校準算法

      作者: TouchScreen     時間:2012-03-30     源于:中國觸摸屏網    總點擊:
      【導讀】:為實現觸摸屏的精確校準,提出一種在嵌入式Linux系統下基于MiniGUl的觸摸屏多點采集校準算法.該方法利用MiniGUI定時器消息和鼠標消息,在一般校屏程序中只需采集5個基本目標點,將每個目標點的取值都細化為多個光標點運算處理。通過多點數據的采集、比較及處理,能夠較精確

      基于MiniGUI的觸摸屏多點采集校準算法
      向昱丞1,高潔2
      (1.中國兵器工業第58研究所軍電部,四J|I綿陽621000;2.中國兵器工業第58研究所軍品部,四川綿陽621000)

      摘要:為實現觸摸屏的精確校準,提出一種在嵌入式Linux系統下基于MiniGUl的觸摸屏多點采集校準算法.該方法利用MiniGUI定時器消息和鼠標消息,在一般校屏程序中只需采集5個基本目標點,將每個目標點的取值都細化為多個光標點運算處理。通過多點數據的采集、比較及處理,能夠較精確地校準觸摸屏。結果表明,該算法能提高取值的準確性,減少取值過程中的誤操作。

      關鍵詞:嵌入式Linux系統;MiniGUI;觸摸屏多點采集

      中圖分類號:TP301.6;TP311.52 文獻標志碼:A

      O 引言

          觸摸屏處理的數據是點的物理坐標,通過觸摸屏控制器采集得來,而LCD顯示屏則處理像素。同時,在安裝觸摸屏的過程中,也存在一定的誤差,所以需要校準。

          嵌入式Linux是一種可以進行裁減、修改使之能在嵌入式計算機系統上運行的操作系統。具有較高的穩定性和安全性,以及具有良好的硬件支持、標準兼容性和資源豐富等特點Ilj。而MiniGUI是基于Linux實時嵌入式系統的一個輕量級圖形用戶界面支持系統,具有如下優點:節省資源,提供了完備的多窗口機制,可根據項目需求進行定制配置和編譯,獨立進程的GUI模擬器,不依賴任何操作系統及硬件平臺和可移植性好。

          由于傳統的5點校準法在通過觸摸屏取點的操作過程中,只一次性取5個目標點,很容易因為手滑、沒看清楚等原因造成取點不準確,從而影響校準精度,故提出一種基于MiniGUI的觸摸屏多點采集校準算法,以較精確地校準觸摸屏。

      1 觸摸屏多點采集校準

          常用的5點校準法是先預設5個屏幕坐標點(原始點),通常5個點分別在左上、右上、右下、左下和屏幕正中,再通過觸摸屏獲取的5個目標坐標點(目標點)調用MiniGUI下特定函數對2組坐標數據進行處理,達到屏幕校準目的,校準函數為SetMouseCalibrationParameters。(觸摸屏取點時,預設的5個屏幕坐標點分別標記在屏幕上的“+”正中,每采集一個目標點,“+”變到下一個預設采點位置,并附帶操作文字提示),如圖l。

       

      圖1觸摸屏取點
      圖1觸摸屏取點
       

          而多點采集校準是指在5個目標點的采點過程中,對每個點都多次采集、比較,使所采集的每個點更加準確,或使誤操作對采點結果的準確度影響較小。

      2 多點采集校準算法及校屏程序

          多點采集校準算法基本公式為:

      圖2 多點采集屏幕校準程序流程圖
       

          式中,Pi為每一次取點的x坐標值;Pj為每一次取點的Y坐標值;為n次取點x坐標相加值;為n次取點Y坐標相加值;Px為x坐標最終值;Py為Y坐標最終值。

          利用MiniGUI消息循環機制,編寫觸摸屏多點采集校屏程序。把MiniGUI消息機制中的鼠標消息,即用戶在操作鼠標時產生的鼠標事件,投遞到相應的應用程序消息隊列中。本程序采用鼠標消息中的MSG HITTEST,如果發生鼠標事件,系統會向含有光標熱點的窗口或捕捉鼠標的窗口發送一條消息。其wParam參數即為光標熱點的x坐標,IParam參數為光標熱點的y坐標。結合MSG TIMER消息,進行循環采集多點坐標。當用戶點擊觸摸屏某一“+”,則進入MSG TIMER消息計時采集數據點,開始采集即時接觸點對應光標的x、Y坐標點。在此期間,保持接觸點按下狀態則可一直獲取接觸點即時坐標,若取點完成之前松開,則會提示重新取點。在MSG TIMER時間周期內,本稃宇設置每一次按下鼠標期間都取十個坐標點,然后取相加值的平均數。這樣,可以保證取值更加準確。多點采集程序段流程如圖2。

       

      圖2 多點采集屏幕校準程序流程圖
      圖2 多點采集屏幕校準程序流程圖
       

         在程序初始化時,設置左上、右上、右下、左下、中心位置5個原始點相對于640×480大小屏幕的坐標分別為(10,10)、(630,10)、(630,470)、(10,470),(320.240),存入自定義結構數組dst中,程序段如下:

      case MSG——CREATE:
      dst[0],x=10;dst[0].y=10;
      dst[l].x=630;dst[1].y=10;
      dst[2].x=630;dst[2].y=470;
      dst[3].x=lO;dst[3].Y=470;
      dst[4].x=320;dst[4].Y=240;

          取值完成后,把5個目標點坐標(£,只,)分別存入結構體src中。然后調用屏幕校準函數SetMouseCalibrationParameters(src,dst),即完成屏幕校準。最后,生成一個xp.txt文件,把最終目標點和原始點取值寫入該文件,程序如下:

      fp=fopen(”./xp.txt”,”w+It);
      if(fp==NULL)
      exit(O);
      fwrite(dst pts,sizeof(struct_POINT),5,fp);
      fwrite(src pts,sizeof(struct—POINT),5,fp);
      fclose(fp);

          在下一次進入嵌入式計算機系統時,無需再進行屏幕校準操作。在系統總程序初始化時打開xp.txt文件,讀出其中保存的原始點與目標點值,再直接調用屏幕校準函數即可。程序如下:

      fp=fopen(“xp.txt”,“rb”);
      i“fp>0)
      fread(dst,sizeof(POINT),5,fp);
      fread(src,sizeof(POINT),5,fp);
      SetMouseCalibrationParameters(src,dst);
      fclose(fp);

      3 結束語

          結果證明,該方法可以較精確地校準觸摸屏,減小了取值過程中誤操作的可能,大大提高了取值的準確性。且界面程序中的人性化設計,使得校準操作更加方便有效。

      參考文獻

      【l】張斌.基于PXA270板開發Qt/Embedded的觸摸屏驅動【J】.兵工自動化,2009,28(9):82—84.
      【2】劉錟.觸摸屏校準程序設計[J】.計算機世界.技術與應用.2006(13):25—27.
      【3】張斌.Linux2.6.16在嵌入式模塊X—Board(GP8)上的移植(J】.兵工自動化,2009,28(10):94—96.


      相關閱讀:3D打印    模具產業    微鑄鍛技術    石墨烯    OLED面板    夏普    iPhone 8    半導體    蘋果    
      關于我們 | 廣告服務 | 聯系我們 | 版權聲明 | 隱私政策 | 網站地圖 | 友情鏈接 | 歡迎投稿 | 加入收藏 | 意見反饋 | 經銷商加入
      網站廣告、經銷商加盟、觸摸屏軟件銷售: 028-85108892 13183843395 028-66219290 聯系人: 張小姐 產品購買聯系方式如下:
      地址:成都市高升橋東路2號高盛中心1109室 電話: 028-85108892 13183843395 028-66219290
      版權所有 Copyright(C) 2003-2015 All rights reserved 中國觸摸屏網 電子郵件: 51touch@126.com touch8@gmail.com
      業務合作QQ:觸摸屏技術,觸摸屏報價,觸摸屏軟件咨詢 43361182 觸摸屏軟件制作與技術支持:觸摸屏軟件,觸摸查詢系統,觸摸查詢軟件 893008608 媒體合作QQ: 893008608

      2000人超級QQ觸摸屏群:59897879 171220106


      分享到