夏金晶 方浩



摘 要:鼠標作為電腦的一個基本部件,扮演著重要角色?,F今的鼠標即使可以脫離桌面載體的使用,其對于二維桌面環境(Windows系統)本質上二維平面屬性未能改變,若針對三維桌面環境,即增加可視化窗口的維度,現今的鼠標在空間進行前后運動未能有真實效果。文中基于三軸加速度計ADXL345和Cortex-M0處理器,對三維鼠標的設計進行了探索。通過加速度計ADXL345完成x,y,z方向的數據采集,使用I2C將數據傳輸給Cortex-M0處理器;處理器對數據加工處理后,使用UART將動作的偏移量傳輸給PC機;根據三維方向的偏移量實現鼠標的三維控制。
關鍵詞:二維桌面;三維鼠標;虛擬環境;縱深方向;ADXL345;Cortex-M0
中圖分類號:TP212文獻標識碼:A文章編號:2095-1302(2020)01-0-03
0 引 言
自從美國科學家在1968年制造出世界上第一只鼠標(以其外形類似老鼠而命名)以來,鼠標已經有近60年的歷史。最初,鼠標普遍都是滾輪式,而隨著現代科技的不斷發展,當前人們開始越來越多地使用更為先進的光電子鼠標。然而,隨著計算機應用的進一步發展,當在許多場合沒有臺式機時(例如在長途車和礦井中),傳統鼠標在操作中存在較大的缺陷,便捷性較低;即使應用到目前最為先進的觸摸屏技術,往往也達不到較高的使用效果。而隨著微電子機械系統的研究不斷成熟,基于這一系統的傳感器也開始得到越來越廣泛的應用,尤其是在三維空間的定位中發揮了至關重要的作用[1]。
1 整體結構
系統設計劃分為軟件和硬件這兩個部分。其中,對于硬件而言,選取使用到了三軸加速度計,完成了對三維數據采集電路的前期設計工作,在此基礎上進一步得出了x,y,z這三個不同方向上的加速度信號強弱;接著,完成了對存儲電路的設計工作,借助于數據分析處理,及時得出了在x,y,z這三個方向的數據偏移[2]。對于軟件而言:第一步是對整個數據處理的流程做出設計,將加速度計進一步移動至原始數據中,并完成對該數據的及時存儲,最終將其轉換為數據格式進行處理;除此之外,還針對I2C接口驅動程序進行了設計[3]。圖1為系統整體結構。
2 硬件設計
2.1 MEMS加速度傳感器
本文設計選擇三軸加速度計ADXL345是因為它有三個軸,并且獲得的信號是三維的,不需要像單軸和雙軸加速度計那樣使用幾個芯片同時工作,只需要執行復雜的操作來集成它們,以獲得想要的三維信號。選擇ADXL345是出于簡單的設計、簡化的電路和時間限制的考慮[4]。
2.1.1 工作原理
圖2為MEMS加速度傳感器工作原理。根據圖2可知,該傳感器工作原理即在實際運行的過程中應用到的工作原理。此時進一步引入Hook定理,可以得出:
式中:F表示外力;m表示質量;a代表加速度;x代表距離;k表示彈簧彈性系數[5]。正是因為這樣,就可以借助于距離、質量和彈簧系數這三種量,精確地測量出加速度a的實際大小。文中,闡述了處于垂直位置關系的兩個加速度傳感器,獲得了單軸加速度。類似地,對于三軸加速度而言,其在本質上就是基于三個相互垂直單軸加速度傳感器而得出的。
2.1.2 傾斜角測量原理
根據圖2可以進一步得出,二維加速度傳感器在傾斜角測量中應用到的原理。此時,可以將傾斜角表示為:
式中ax和ay分別代表了在x軸和y軸這兩個不同方向上的加速度大小。
當單軸加速度傳感器放置在物體上方,也能夠進行傾斜角的測定工作。但是需要注意的是,針對微機電系統傳感器而言,其在實際運用的過程中具有一定的局限性,如果工作環境中存在噪聲,則會大大影響最終的應用效果?;谶@樣的考慮,選取了二維加速度傳感器,從而達到減少噪聲干擾的目的,保障最終測定結果的精確性。
二維加速度傾角測量如圖3所示。基于三軸加速度和重力,能夠得出θ,ψ和φ這三類傾斜角。其中,θ,ψ分別是
X'軸,Y'軸與地面投影的夾角,而φ則代表Z'軸與垂直軸Z的夾角。因此可以進一步得出以下的數學表達式:
可以得出這樣的結論:姿態角的確定是基于三軸加速度計的輸出。所以,借助于這一特點,可以有效地減少工作環境中噪聲的干擾。但是需要注意的是,針對微機電系統而言,其在實際運行中必然會受到環境噪聲的影響,所以最終測定的結果往往不可避免存在細微的誤差。物體在三維空間中的姿態主要由三軸加速度的靜態或準靜態特性決定。若物體在三維空間處于高速移動的狀態,基于上述的表達式也難以精確地測定出物體的瞬時姿態[6]。三維加速度傾角測量如圖4所示。
2.2 微控制器設計
在該電路中,應用到的是Cortex-M0處理器。這一處理器在實際運用中具備較大的性能優勢,整體能耗較低,同時也能夠達到較強的節能效果。此外,該處理器能夠及時高效地完成對三軸加速度的數據處理,從三個方向獲得加速度計的偏移量,并通過串行端口將其發送到PC。
3 軟件設計
整體設計思想是通過ADXL345收集三軸加速值,通過Cortex-M0計算加速值并獲得偏移量,并通過串行端口將產生的偏移量傳遞給計算機,以控制鼠標光標的移動和其他必要的功能[7]。
該系統的鼠標驅動程序在微軟Win7平臺上實現。電腦接收從通用串行總線接口發送的數據,在此基礎上,借助于式(3)~式(5),把它進一步轉變成方位角[3-8]。此外,必須要利用鼠標動作,基于屏幕來調控方位角和鼠標控制的聯系。在此過程中,運用驅動程序來開啟虛擬鼠標設備文件。緊接著,利用掛鉤鼠標類驅動程序,借助于相關回調函數,把鼠標操作及時傳送到類驅動程序,具體的步驟如圖5所示[9]。
系統在完成了對USB數據的接收之后,基于按鈕值來判定此時的鼠標操作。在這一操作中,若測定的是傾斜角,就把其轉變為屏幕像素值,同時調整鼠標位置。此外,進一步明確按鈕的具體動作。 在此基礎上,判定電子穩定控制鍵是否存在,若已存在,那么指示退出。
4 系統測試
利用微機控制光標左右移動,光標上下移動,鼠標通過鼠標驅動程序使用x方向偏移量放大和縮小。基于x,y,z這三個方向的多維度定義,實現了三維運動的功能[6]。
根據圖5所示的流程可以發現,基于傳感器的處理,最終測定出鼠標的加速度。在一般的運行狀態下,如果鼠標處在x方向,此時加速度的大小處在-12g~12g,同時,其在y軸和z軸的加速度都處在-1g~1g;當沿y方向移動時,x軸的加速度范圍為-1g~1g,y軸的加速度范圍為-12g~12g,z軸加速度值范圍為-1g~1g;當在z方向上移動時,x軸加速度值范圍為-1g~1g,y軸加速度值范圍為-1g~1g,z軸的加速度值范圍為-12g~12g。
圖6為在加速度值被處理之后傳輸到個人計算機的三維方向數據的偏移。
針對微機而言,其應用的是視窗操作系統。PC運用USB模擬串行信道,并及時接收三個不同方向發生的偏移。 而借助于可視化VC 6.0++,編寫出的驅動程序,繼而使得該設計可在三個方向達到基于偏移控制的目的。
5 結 語
文中利用ADXL345來獲取三軸加速度值,同時借助Cortex-M0獲得偏移量。基于串行口,把偏移量傳送至計算機,從而實現了鼠標光標移動控制的功能。該設計已在計算機鼠標的應用中全面運行,具有良好的可操作性。另外,基于微機電系統技術的計算機輸入設備的研究,接收端數據處理方法的改進設計具有更好的三維使用和擴展空間,可以開發一系列專用虛擬現實設備,具有良好的三維體驗。
參 考 文 獻
[1]孫在尚,劉凡齊.無線空中鼠標[J].電子測試,2017(19):12-13.
[2]張鵬飛,李亞,蔣亞飛,等.一種可適用于虛擬現實的3D無線鼠標的探討與設計[J].電子世界,2016(7):148-149.
[3]陶志成,張海.MPU6050和STM32L152的微功耗三維無線鼠標設計[J].單片機與嵌入式系統應用,2015,15(12):1-4.
[4]李佰財,寧偉勛.基于三軸加速計的三維鼠標設計探索[J].計算機光盤軟件與應用,2013,16(9):122-123.
[5]周獲.基于MEMS技術的無線空中鼠標的研究[D].廈門:華僑大學,2013.
[6]江朝強,石睿,王云飛.基于MEMS指環式低功耗無線三維鼠標的設計[J].自動化與儀表,2013,28(9):12-14.
[7]陳建新,臧晶,楊璐璐.基于MEMS傳感器的三維鼠標設計與實現[J].計算機工程,2012,38(24):274-278.
[8]朱文杰.高速數控加工中心虛擬現實教學系統的開發[D].西安:陜西科技大學,2015.
[9]朱曉林,黃敏純.基于三維鼠標的X3D虛擬場景人機交互技術研究[J].機電技術,2014(6):25-28.
[10]張曉亮,王炳愷.基于移動終端的VR技術在汽車檢測與維修專業中的應用[J].時代農機,2018(11):210.