摘? 要:傳統(tǒng)鼠標(biāo)在計算機領(lǐng)域應(yīng)用非常廣泛,但在某些特定環(huán)境下操作受到限制。為了克服依賴桌面完成操作的局限,以51單片機為控制核心設(shè)計一款無線體感鼠標(biāo),該設(shè)備由STC89C52控制模塊、MPU-6050運動處理模塊、無線發(fā)送模塊、無線接收模塊、按鍵及供電模塊等構(gòu)成。MPU-6050運動處理模塊通過解算識別運動姿態(tài),實現(xiàn)人在空間中控制鼠標(biāo)對屏幕指針的操控。經(jīng)制作及對比測試,它具備高精度和流暢性好的優(yōu)點,具有一定的實用價值。
關(guān)鍵詞:STC89C52單片機;MPU-6050運動處理模塊;無線發(fā)送模塊;無線接收模塊
中圖分類號:TP368.1;TP334.2? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2020)20-0047-04
Design and Implementation of Wireless Motion Sensing Mouse Based on
51 Single Chip Microcomputer
ZHAO Huafeng
(School of Physics and Electrical Engineering,Weinan Normal University,Weinan? 714099,China)
Abstract:Traditional mouse is widely used in the field of computer,but in some specific environment,its normal operation is limited. In order to overcome the limitation of relying on the desktop to complete the operation,a wireless motion sensing mouse is designed with 51 single chip microcomputer as the control core. It is composed of STC89C52 control module,MPU-6050 motion processing module,wireless transmission module,wireless receiving module,key and power supply module. The MPU-6050 motion processing module recognizes the motion posture by solving and recognizing,so that people can control the mouse on the screen pointer in space. After production and comparison test,it has the advantages of high precision and good fluency,and has certain practical value.
Keywords:STC89C52 single chip microcomputer;MPU-6050 motion processing module;wireless transmission module;wireless receiving module
0? 引? 言
1968年出現(xiàn)的世界上第一個鼠標(biāo)標(biāo)志著人機交互的一項重大突破。大多數(shù)傳統(tǒng)鼠標(biāo)都內(nèi)置有發(fā)光二極管,其發(fā)出的光經(jīng)鼠標(biāo)底部接觸面反射回來,有部分反射光經(jīng)過透鏡后感應(yīng)成像,再由STC89C52微處理器對鼠標(biāo)在桌面上的位移信息和鼠標(biāo)按鍵操作進(jìn)行分析處理,從而判別鼠標(biāo)的動作。傳統(tǒng)鼠標(biāo)的使用都依賴桌面作為平面來支持[1]。
為了解決在日常生活中(如車內(nèi)、床上、野外等)或者環(huán)境條件惡劣的情況下無法提供平面時傳統(tǒng)鼠標(biāo)操作受到限制的問題,新型鼠標(biāo)的設(shè)計和制作就顯得非常迫切,加之體感技術(shù)不斷地發(fā)展和應(yīng)用,因此作者對使用51單片機為控制核心的無線體感鼠標(biāo)做以設(shè)計、制作和測試,并和傳統(tǒng)鼠標(biāo)在使用效果上做了比較。
1? 無線體感鼠標(biāo)系統(tǒng)的設(shè)計方案
當(dāng)人將手持無線體感鼠標(biāo)發(fā)射端在三維空間內(nèi)移動時,顯示在電腦屏幕上指針也隨著發(fā)射端的移動精確快速地做出指令。在STC89C52微處理器中隨時不斷的解算到由MPU-6050運動處理模塊采集到的數(shù)據(jù),然后通過無線收發(fā)模塊發(fā)送到連接電腦的接收端。接收端收到信息后,立刻進(jìn)行處理和解算成為光標(biāo)位移信息和按鍵控制信息,通過MPU-6050運動處理模塊優(yōu)化后得到的最優(yōu)數(shù)據(jù)會被實時更新到電腦端,實時反饋是否有體感動作指令輸入,最后經(jīng)過USB協(xié)議編碼和信息交互完成電腦屏幕上光標(biāo)的移動和控制。
2? 無線體感鼠標(biāo)系統(tǒng)硬件設(shè)計與關(guān)鍵實現(xiàn)
無線體感鼠標(biāo)系統(tǒng)的組成方案:運動姿態(tài)采集組件通過I2C總線協(xié)議與發(fā)射端主控芯片進(jìn)行相互通信,從而將采集融合后的實時數(shù)據(jù)輸入;發(fā)射端主控芯片通過無線收發(fā)芯片NRF24L01將輸入的實時數(shù)據(jù)傳輸給接收端主控芯片;而發(fā)射端和接收端的主控芯片STC89C52均通過SPI總線協(xié)議和無線收發(fā)芯片NRF24L01進(jìn)行信息交互;最后由接收端主控芯片配合USB接口芯片PDIUSBD12經(jīng)USB協(xié)議編碼將信息流傳送至電腦端,實現(xiàn)鼠標(biāo)指針在電腦屏幕上的操作控制。無線體感鼠標(biāo)硬件系統(tǒng)主要分為兩大部分:主控?zé)o線發(fā)射端部分和無線接收端部分,無線體感鼠標(biāo)系統(tǒng)結(jié)構(gòu)圖如圖1所示。其中2.4 G無線發(fā)射和2.4 G無線接收是利用NRF24L01芯片的一套收發(fā)模塊的兩個部分。
2.1? 發(fā)射端硬件設(shè)計
發(fā)射端硬件的設(shè)計主要有STC89C52微處理器模塊、MPU-6050運動處理模塊、無線發(fā)送模塊、供電模塊和發(fā)射端復(fù)位模塊。供電模塊中的電池管理芯片主要負(fù)責(zé)將電池電能轉(zhuǎn)換為微處理器、傳感器等器件能夠使用的電源。
2.1.1? MPU-6050運動處理模塊
發(fā)射端設(shè)計方案中采用MPU-6050運動處理模塊,這是一種利用物理效應(yīng)的傳感器,能夠?qū)⒈粶y非電信號的微弱變化量轉(zhuǎn)換成為可被后續(xù)電路處理的電信號。在它的內(nèi)部將陀螺儀和加速度兩種傳感器集成,降低了分立元件組合陀螺儀和加速度傳感器時所帶來的軸間非正交誤差。并配置了硬件加速引擎——數(shù)字運動處理器DMP,能夠使用I2C協(xié)議的接口輸出整合后的數(shù)字量數(shù)據(jù),減少了STC89C52微處理器對運動處理的計算量。同時MPU-6050運動處理模塊具備自定義編程控制陀螺儀和加速度傳感器的檢測功能,從而準(zhǔn)確無誤的跟蹤物體實時動作[2]。
MPU-6050運動處理模塊中陀螺儀是檢測物體運動中角速度的傳感器,當(dāng)物體運動時帶動安裝在物體上的陀螺儀同步運動。陀螺儀就可以檢測出物體在空間中繞各個軸轉(zhuǎn)動的角速度,然后對角速度進(jìn)行積分運算,就可以得到物體運動的角度[3]。陀螺儀具有十分準(zhǔn)確的測量精度,但是也極容易受到震動等外界環(huán)境因素的影響而產(chǎn)生輸出漂移。積分運算后繼而產(chǎn)生較大的誤差。因此,陀螺儀只能用于物體運動的狀態(tài)的角度測量。
加速度傳感器通常用于檢測物體的位移,然后將檢測到的位移通過ADC(模/數(shù)轉(zhuǎn)換器)轉(zhuǎn)換為數(shù)字電信號便于進(jìn)行數(shù)據(jù)處理。加速度傳感器是由檢測單元捕獲產(chǎn)生的力而不是直接測量出加速度;原理上是通過測量作用在加速度傳感器軸向上的力間接的測量出物體運動的加速度,測量基礎(chǔ)是在某一時刻測量空間坐標(biāo)系中的加速度值在x、y、z方向上的分量。MPU-6050運動處理模塊中使用加速度傳感器測出重力加速度在空間坐標(biāo)系三個方向上的量,計算各分量與重力加速度的比,得出傾角的大概值。物體處于運動狀態(tài)的時候,加速度傳感器測出的結(jié)果總是有一定的誤差,因為它一直受地球引力的影響,垂直方向的重力加速度始終存在。所以加速度傳感器測出的結(jié)果是重力加速度與運動加速度合成得到的總加速度在三個方向上的分量[4]。
不難看出,陀螺儀傳感器和加速度傳感器具有互補性:陀螺儀可以檢測出運動中物體的角速度并且在短暫的時間內(nèi)具有較高的精確度;加速度傳感器可以十分精確的檢測物體在靜止時的傾角。方案中的運動處理模塊利用兩者的互補性來提高數(shù)據(jù)采集的精確性[5]。
2.1.2? 無線發(fā)射模塊
選用的無線收發(fā)模塊采用由NRF24L01單片無線收發(fā)器芯片。該芯片工作的ISM頻段在2.4 GHz~2.5 GHz之間,最高的工作速率2 Mbps,抗干擾性能好,為提高數(shù)據(jù)傳輸效率和可靠性,增加了CRC檢錯功能和通信地址精準(zhǔn)控制功能。NRF24L01芯片具有高效GMSK調(diào)制,抗干擾能力強,穩(wěn)定性高,支持SPI通信,通過SPI串口來實現(xiàn)配置和最大速度10 MHz的外部通信。
2.1.3? 發(fā)射端復(fù)位模塊
發(fā)射端復(fù)位模塊類似于臺式電腦的Reset復(fù)位按鍵。當(dāng)電腦在運行時出現(xiàn)異常甚至無法按鍵操作時,按下機箱上的復(fù)位按鈕讓電腦重啟就可以解決問題。在STC89C52單片機應(yīng)用系統(tǒng)中也是這樣,若STC89C52單片機系統(tǒng)受到外界干擾、程序跑飛等現(xiàn)象,復(fù)位系統(tǒng)重新運行即可。常見的復(fù)位電路有上電復(fù)位和按鍵復(fù)位兩種方式。方案采用的是按鍵復(fù)位。STC89C52單片機要復(fù)位只需在第9引腳接持續(xù)高電平即可。電容的大小取10 μF,電阻的阻值選10 kΩ,復(fù)位的時間為0.1 s(RST引腳要求輸入兩個機器周期以上的高電平時間才有效)。當(dāng)STC89C52單片機上電啟動后,電容兩端由于持續(xù)充電,電阻的端電壓非常接近0,RST維持低電平保證系統(tǒng)的正常工作。當(dāng)復(fù)位按鍵按下,電容釋放電能,RST引腳就收到高電平,高電平的持續(xù)時間會遠(yuǎn)大于兩個機器周期的時間保證STC89C52單片機系統(tǒng)的復(fù)位實現(xiàn),釋放了復(fù)位按鍵后,由于電源對電容持續(xù)充電,使RST維持在低電平。
2.2? 接收端硬件設(shè)計
接收端由STC89C52RC微處理器芯片作為控制模塊,無線收發(fā)芯片NRF24L01為接收模塊以及無線接收模塊構(gòu)成。
無線接收模塊選用PDIUSBD12進(jìn)行USB通信協(xié)議,實現(xiàn)與電腦端的信息交互。接收端STC89C52單片機通過CPU給PDIUSBD12發(fā)送數(shù)據(jù)和指令,實現(xiàn)與無線接收模塊的通信。該芯片符合USB 2.0版規(guī)范,內(nèi)部集成成像類、打印類、收發(fā)器、存儲器以及電壓調(diào)節(jié)器。對外部微控制器無要求,擁有多種中斷方式便于數(shù)據(jù)傳輸。它的性能優(yōu)越、功耗低且開發(fā)成本低廉[6]。當(dāng)USB接口配置成功后LED指示燈會根據(jù)通信的狀況間歇閃爍。
3? 無線體感鼠標(biāo)系統(tǒng)軟件設(shè)計
系統(tǒng)工作時,首先配置好發(fā)射部分的姿態(tài)采集模塊,設(shè)置控制芯片模式,建立無線模塊之間的通信連接,還要建立接收部分USB端和電腦端的通信連接。無線體感鼠標(biāo)系統(tǒng)流程圖如圖2所示。
常見描述空間三維的姿態(tài)方法主要有三類:四元數(shù)法、方向余弦法和歐拉角法。四元數(shù)法計算量小,易于操作,是實用的工程算法,實現(xiàn)中MPU-6050運動處理模塊中集成的數(shù)字運動處理單元即用四元數(shù)法處理計算得到歐拉角,并增加互補濾波算法的校正完成姿態(tài)解算,實現(xiàn)無線體感鼠標(biāo)控制功能。四元數(shù)到歐拉角的算法為:
四元數(shù)是一種四參數(shù)法,它由一個實數(shù)和三個虛數(shù)(i、j、k)所構(gòu)成。任何三維空間內(nèi)的矢量都可以看作實部為零的四元數(shù)??擅枋鰹椋?/p>
Q=q0+q1i+q2j+q3k
所以可以用四元數(shù)法來研究空間中的數(shù)據(jù)解算。如果矢量R圍繞固定坐標(biāo)系旋轉(zhuǎn),并且這個旋轉(zhuǎn)能夠用四元數(shù)Q描述,新矢量記為R1則R和R1之間的變換可以表示成四元數(shù)運算:
R1=Q×R×Q-1
當(dāng)R是一個標(biāo)量為0的四元數(shù),即:
R=0+Rxi+Ryj+Rzk
由此可得當(dāng)一個矢量V相對于x、y、z坐標(biāo)系固定表示為:
V=xi+yj+zk
當(dāng)坐標(biāo)系x、y、z轉(zhuǎn)動了Q,得到了一個新的坐標(biāo)系x1、y1、z1矢量V分解在新的坐標(biāo)系中表示為:
V=x1i1+y1j1+z1k1
兩個坐標(biāo)系之間的坐標(biāo)變換中:
V=xi+yj+zk
V1=x1i+y1j+z1k
則矢量V在新舊兩個坐標(biāo)系中的關(guān)系可以表示為:
V1=Q×V×Q-1
傳感器在靜止的狀態(tài)進(jìn)行測量中容易得到精準(zhǔn)的數(shù)據(jù),但是在運動狀態(tài)中傳感器產(chǎn)生較大的誤差,以此產(chǎn)生的積分誤差會導(dǎo)致歐拉角數(shù)據(jù)的不準(zhǔn)確。因此加速度傳感器要用濾波器濾除陀螺儀的噪聲,傾角不能僅僅采用MPU-6050運動處理模塊的加速度傳感器或者陀螺儀取得,需要進(jìn)行互補校正。由傳感器的特性建立起來的互補濾波器,采用低通濾波器后,能夠輸出更為準(zhǔn)確的角度值[7]。
4? 無線體感鼠標(biāo)和傳統(tǒng)有線光電鼠標(biāo)性能對比測試
通過用無線體感鼠標(biāo)和傳統(tǒng)有線光電鼠標(biāo)對比的方式來做一個性能測試。測試的內(nèi)容有:使用范圍、靈敏度、線性度、以及平滑性。
在使用范圍的對比實驗中,以電腦端為中心,無線體感鼠標(biāo)在半徑10米范圍內(nèi)可以正常工作,相比于傳統(tǒng)光電鼠標(biāo)大約1米左右連線,其適用范圍大;
在靈敏度的對比測試中,通過打開桌面圖標(biāo)和瀏覽網(wǎng)頁的體驗來測試。明顯地可以感覺到無線體感鼠標(biāo)在操作的靈敏度上不如傳統(tǒng)鼠標(biāo)在桌面上準(zhǔn)確快捷;
在線性度的對比測試實驗設(shè)置為在畫圖工具中以一條直線為基準(zhǔn)線,快速來回操作鼠標(biāo)以基準(zhǔn)線畫線,看出無線體感鼠標(biāo)在線性上優(yōu)于傳統(tǒng)有線光電鼠標(biāo);
在平滑性的對比測試實驗中,依然是利用畫圖工具做實驗。通過使用兩種鼠標(biāo)按字形8移動的方法來測試無線體感鼠標(biāo)和傳統(tǒng)有線光電鼠標(biāo)的平滑性性能,結(jié)果是無線體感鼠標(biāo)的平滑性性能優(yōu)于傳統(tǒng)有線光電鼠標(biāo)。
5? 結(jié)? 論
使用51單片機結(jié)合新型體感技術(shù)設(shè)計制作的體感無線鼠標(biāo),和傳統(tǒng)光學(xué)鼠標(biāo)對比測試后達(dá)到預(yù)期要求。它具備易操作、穩(wěn)定性高的性能,采用無線通信解放出雙手,讓鼠標(biāo)控制更加自然流暢,為人們提供體感技術(shù)和計算機交互的新體驗。隨著VR行業(yè)的發(fā)展,更多的體感技術(shù)將應(yīng)用到智能家居、醫(yī)療、教育、游戲中,這也意味著更多未知的新應(yīng)用等待著被探索。下一步的改進(jìn)從減小無線體感鼠標(biāo)的體積上進(jìn)行優(yōu)化,還要進(jìn)一步提高快速響應(yīng)功能。
參考文獻(xiàn):
[1] 鄭金存,邵平,周善東.多媒體教室的長距離無線鼠標(biāo)的設(shè)計與實現(xiàn) [J].廣西物理,2004(3):52-54+57.
[2] 葛海江,陶姍.姿態(tài)感知鼠標(biāo)指針的控制方法 [J].機電工程,2009,26(3):105-107.
[3] 邱云平,伍寶玉.MPU-6050模塊角度算法處理及在嵌入式中的應(yīng)用 [J].江西科技學(xué)院學(xué)報,2014,9(2):26-29.
[4] 黃得志,陳文元,楊華鋒,等.基于微加速度傳感器的無線鼠標(biāo)的設(shè)計 [J].傳感器與微系統(tǒng),2006(1):50-52+55.
[5] 周獲.基于MEMS技術(shù)的無線空中鼠標(biāo)的研究 [D].廈門:華僑大學(xué),2013.
[6] 宋方,郝保國,趙飛鵬.通用串行總線(USB)及其芯片的使用 [J].測控技術(shù),2000(10):58-59.
[7] 朱明茗,景紅.基于體感技術(shù)的手勢追蹤與識別 [J].計算機系統(tǒng)應(yīng)用,2014,23(8):228-232.
作者簡介:趙華峰(1970—),男,漢族,陜西渭南人,講師,碩士,研究方向:計算機應(yīng)用技術(shù)。