摘? 要:傳統(tǒng)鼠標(biāo)在計(jì)算機(jī)領(lǐng)域應(yīng)用非常廣泛,但在某些特定環(huán)境下操作受到限制。為了克服依賴桌面完成操作的局限,以51單片機(jī)為控制核心設(shè)計(jì)一款無線體感鼠標(biāo),該設(shè)備由STC89C52控制模塊、MPU-6050運(yùn)動(dòng)處理模塊、無線發(fā)送模塊、無線接收模塊、按鍵及供電模塊等構(gòu)成。MPU-6050運(yùn)動(dòng)處理模塊通過解算識(shí)別運(yùn)動(dòng)姿態(tài),實(shí)現(xiàn)人在空間中控制鼠標(biāo)對屏幕指針的操控。經(jīng)制作及對比測試,它具備高精度和流暢性好的優(yōu)點(diǎn),具有一定的實(shí)用價(jià)值。
關(guān)鍵詞:STC89C52單片機(jī);MPU-6050運(yùn)動(dòng)處理模塊;無線發(fā)送模塊;無線接收模塊
中圖分類號:TP368.1;TP334.2? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: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)的世界上第一個(gè)鼠標(biāo)標(biāo)志著人機(jī)交互的一項(xiàng)重大突破。大多數(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)的動(dòng)作。傳統(tǒng)鼠標(biāo)的使用都依賴桌面作為平面來支持[1]。
為了解決在日常生活中(如車內(nèi)、床上、野外等)或者環(huán)境條件惡劣的情況下無法提供平面時(shí)傳統(tǒng)鼠標(biāo)操作受到限制的問題,新型鼠標(biāo)的設(shè)計(jì)和制作就顯得非常迫切,加之體感技術(shù)不斷地發(fā)展和應(yīng)用,因此作者對使用51單片機(jī)為控制核心的無線體感鼠標(biāo)做以設(shè)計(jì)、制作和測試,并和傳統(tǒng)鼠標(biāo)在使用效果上做了比較。
1? 無線體感鼠標(biāo)系統(tǒng)的設(shè)計(jì)方案
當(dāng)人將手持無線體感鼠標(biāo)發(fā)射端在三維空間內(nèi)移動(dòng)時(shí),顯示在電腦屏幕上指針也隨著發(fā)射端的移動(dòng)精確快速地做出指令。在STC89C52微處理器中隨時(shí)不斷的解算到由MPU-6050運(yùn)動(dòng)處理模塊采集到的數(shù)據(jù),然后通過無線收發(fā)模塊發(fā)送到連接電腦的接收端。接收端收到信息后,立刻進(jìn)行處理和解算成為光標(biāo)位移信息和按鍵控制信息,通過MPU-6050運(yùn)動(dòng)處理模塊優(yōu)化后得到的最優(yōu)數(shù)據(jù)會(huì)被實(shí)時(shí)更新到電腦端,實(shí)時(shí)反饋是否有體感動(dòng)作指令輸入,最后經(jīng)過USB協(xié)議編碼和信息交互完成電腦屏幕上光標(biāo)的移動(dòng)和控制。
2? 無線體感鼠標(biāo)系統(tǒng)硬件設(shè)計(jì)與關(guān)鍵實(shí)現(xiàn)
無線體感鼠標(biāo)系統(tǒng)的組成方案:運(yùn)動(dòng)姿態(tài)采集組件通過I2C總線協(xié)議與發(fā)射端主控芯片進(jìn)行相互通信,從而將采集融合后的實(shí)時(shí)數(shù)據(jù)輸入;發(fā)射端主控芯片通過無線收發(fā)芯片NRF24L01將輸入的實(shí)時(shí)數(shù)據(jù)傳輸給接收端主控芯片;而發(fā)射端和接收端的主控芯片STC89C52均通過SPI總線協(xié)議和無線收發(fā)芯片NRF24L01進(jìn)行信息交互;最后由接收端主控芯片配合USB接口芯片PDIUSBD12經(jīng)USB協(xié)議編碼將信息流傳送至電腦端,實(shí)現(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ā)模塊的兩個(gè)部分。
2.1? 發(fā)射端硬件設(shè)計(jì)
發(fā)射端硬件的設(shè)計(jì)主要有STC89C52微處理器模塊、MPU-6050運(yùn)動(dòng)處理模塊、無線發(fā)送模塊、供電模塊和發(fā)射端復(fù)位模塊。供電模塊中的電池管理芯片主要負(fù)責(zé)將電池電能轉(zhuǎn)換為微處理器、傳感器等器件能夠使用的電源。
2.1.1? MPU-6050運(yùn)動(dòng)處理模塊
發(fā)射端設(shè)計(jì)方案中采用MPU-6050運(yùn)動(dòng)處理模塊,這是一種利用物理效應(yīng)的傳感器,能夠?qū)⒈粶y非電信號的微弱變化量轉(zhuǎn)換成為可被后續(xù)電路處理的電信號。在它的內(nèi)部將陀螺儀和加速度兩種傳感器集成,降低了分立元件組合陀螺儀和加速度傳感器時(shí)所帶來的軸間非正交誤差。并配置了硬件加速引擎——數(shù)字運(yùn)動(dòng)處理器DMP,能夠使用I2C協(xié)議的接口輸出整合后的數(shù)字量數(shù)據(jù),減少了STC89C52微處理器對運(yùn)動(dòng)處理的計(jì)算量。同時(shí)MPU-6050運(yùn)動(dòng)處理模塊具備自定義編程控制陀螺儀和加速度傳感器的檢測功能,從而準(zhǔn)確無誤的跟蹤物體實(shí)時(shí)動(dòng)作[2]。
MPU-6050運(yùn)動(dòng)處理模塊中陀螺儀是檢測物體運(yùn)動(dòng)中角速度的傳感器,當(dāng)物體運(yùn)動(dòng)時(shí)帶動(dòng)安裝在物體上的陀螺儀同步運(yùn)動(dòng)。陀螺儀就可以檢測出物體在空間中繞各個(gè)軸轉(zhuǎn)動(dòng)的角速度,然后對角速度進(jìn)行積分運(yùn)算,就可以得到物體運(yùn)動(dòng)的角度[3]。陀螺儀具有十分準(zhǔn)確的測量精度,但是也極容易受到震動(dòng)等外界環(huán)境因素的影響而產(chǎn)生輸出漂移。積分運(yùn)算后繼而產(chǎn)生較大的誤差。因此,陀螺儀只能用于物體運(yùn)動(dòng)的狀態(tài)的角度測量。
加速度傳感器通常用于檢測物體的位移,然后將檢測到的位移通過ADC(模/數(shù)轉(zhuǎn)換器)轉(zhuǎn)換為數(shù)字電信號便于進(jìn)行數(shù)據(jù)處理。加速度傳感器是由檢測單元捕獲產(chǎn)生的力而不是直接測量出加速度;原理上是通過測量作用在加速度傳感器軸向上的力間接的測量出物體運(yùn)動(dòng)的加速度,測量基礎(chǔ)是在某一時(shí)刻測量空間坐標(biāo)系中的加速度值在x、y、z方向上的分量。MPU-6050運(yùn)動(dòng)處理模塊中使用加速度傳感器測出重力加速度在空間坐標(biāo)系三個(gè)方向上的量,計(jì)算各分量與重力加速度的比,得出傾角的大概值。物體處于運(yùn)動(dòng)狀態(tài)的時(shí)候,加速度傳感器測出的結(jié)果總是有一定的誤差,因?yàn)樗恢笔艿厍蛞Φ挠绊?,垂直方向的重力加速度始終存在。所以加速度傳感器測出的結(jié)果是重力加速度與運(yùn)動(dòng)加速度合成得到的總加速度在三個(gè)方向上的分量[4]。
不難看出,陀螺儀傳感器和加速度傳感器具有互補(bǔ)性:陀螺儀可以檢測出運(yùn)動(dòng)中物體的角速度并且在短暫的時(shí)間內(nèi)具有較高的精確度;加速度傳感器可以十分精確的檢測物體在靜止時(shí)的傾角。方案中的運(yùn)動(dòng)處理模塊利用兩者的互補(bǔ)性來提高數(shù)據(jù)采集的精確性[5]。
2.1.2? 無線發(fā)射模塊
選用的無線收發(fā)模塊采用由NRF24L01單片無線收發(fā)器芯片。該芯片工作的ISM頻段在2.4 GHz~2.5 GHz之間,最高的工作速率2 Mbps,抗干擾性能好,為提高數(shù)據(jù)傳輸效率和可靠性,增加了CRC檢錯(cuò)功能和通信地址精準(zhǔn)控制功能。NRF24L01芯片具有高效GMSK調(diào)制,抗干擾能力強(qiáng),穩(wěn)定性高,支持SPI通信,通過SPI串口來實(shí)現(xiàn)配置和最大速度10 MHz的外部通信。
2.1.3? 發(fā)射端復(fù)位模塊
發(fā)射端復(fù)位模塊類似于臺(tái)式電腦的Reset復(fù)位按鍵。當(dāng)電腦在運(yùn)行時(shí)出現(xiàn)異常甚至無法按鍵操作時(shí),按下機(jī)箱上的復(fù)位按鈕讓電腦重啟就可以解決問題。在STC89C52單片機(jī)應(yīng)用系統(tǒng)中也是這樣,若STC89C52單片機(jī)系統(tǒng)受到外界干擾、程序跑飛等現(xiàn)象,復(fù)位系統(tǒng)重新運(yùn)行即可。常見的復(fù)位電路有上電復(fù)位和按鍵復(fù)位兩種方式。方案采用的是按鍵復(fù)位。STC89C52單片機(jī)要復(fù)位只需在第9引腳接持續(xù)高電平即可。電容的大小取10 μF,電阻的阻值選10 kΩ,復(fù)位的時(shí)間為0.1 s(RST引腳要求輸入兩個(gè)機(jī)器周期以上的高電平時(shí)間才有效)。當(dāng)STC89C52單片機(jī)上電啟動(dòng)后,電容兩端由于持續(xù)充電,電阻的端電壓非常接近0,RST維持低電平保證系統(tǒng)的正常工作。當(dāng)復(fù)位按鍵按下,電容釋放電能,RST引腳就收到高電平,高電平的持續(xù)時(shí)間會(huì)遠(yuǎn)大于兩個(gè)機(jī)器周期的時(shí)間保證STC89C52單片機(jī)系統(tǒng)的復(fù)位實(shí)現(xiàn),釋放了復(fù)位按鍵后,由于電源對電容持續(xù)充電,使RST維持在低電平。
2.2? 接收端硬件設(shè)計(jì)
接收端由STC89C52RC微處理器芯片作為控制模塊,無線收發(fā)芯片NRF24L01為接收模塊以及無線接收模塊構(gòu)成。
無線接收模塊選用PDIUSBD12進(jìn)行USB通信協(xié)議,實(shí)現(xiàn)與電腦端的信息交互。接收端STC89C52單片機(jī)通過CPU給PDIUSBD12發(fā)送數(shù)據(jù)和指令,實(shí)現(xiàn)與無線接收模塊的通信。該芯片符合USB 2.0版規(guī)范,內(nèi)部集成成像類、打印類、收發(fā)器、存儲(chǔ)器以及電壓調(diào)節(jié)器。對外部微控制器無要求,擁有多種中斷方式便于數(shù)據(jù)傳輸。它的性能優(yōu)越、功耗低且開發(fā)成本低廉[6]。當(dāng)USB接口配置成功后LED指示燈會(huì)根據(jù)通信的狀況間歇閃爍。
3? 無線體感鼠標(biāo)系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)工作時(shí),首先配置好發(fā)射部分的姿態(tài)采集模塊,設(shè)置控制芯片模式,建立無線模塊之間的通信連接,還要建立接收部分USB端和電腦端的通信連接。無線體感鼠標(biāo)系統(tǒng)流程圖如圖2所示。
常見描述空間三維的姿態(tài)方法主要有三類:四元數(shù)法、方向余弦法和歐拉角法。四元數(shù)法計(jì)算量小,易于操作,是實(shí)用的工程算法,實(shí)現(xiàn)中MPU-6050運(yùn)動(dòng)處理模塊中集成的數(shù)字運(yùn)動(dòng)處理單元即用四元數(shù)法處理計(jì)算得到歐拉角,并增加互補(bǔ)濾波算法的校正完成姿態(tài)解算,實(shí)現(xiàn)無線體感鼠標(biāo)控制功能。四元數(shù)到歐拉角的算法為:
四元數(shù)是一種四參數(shù)法,它由一個(gè)實(shí)數(shù)和三個(gè)虛數(shù)(i、j、k)所構(gòu)成。任何三維空間內(nèi)的矢量都可以看作實(shí)部為零的四元數(shù)??擅枋鰹椋?/p>
Q=q0+q1i+q2j+q3k
所以可以用四元數(shù)法來研究空間中的數(shù)據(jù)解算。如果矢量R圍繞固定坐標(biāo)系旋轉(zhuǎn),并且這個(gè)旋轉(zhuǎn)能夠用四元數(shù)Q描述,新矢量記為R1則R和R1之間的變換可以表示成四元數(shù)運(yùn)算:
R1=Q×R×Q-1
當(dāng)R是一個(gè)標(biāo)量為0的四元數(shù),即:
R=0+Rxi+Ryj+Rzk
由此可得當(dāng)一個(gè)矢量V相對于x、y、z坐標(biāo)系固定表示為:
V=xi+yj+zk
當(dāng)坐標(biāo)系x、y、z轉(zhuǎn)動(dòng)了Q,得到了一個(gè)新的坐標(biāo)系x1、y1、z1矢量V分解在新的坐標(biāo)系中表示為:
V=x1i1+y1j1+z1k1
兩個(gè)坐標(biāo)系之間的坐標(biāo)變換中:
V=xi+yj+zk
V1=x1i+y1j+z1k
則矢量V在新舊兩個(gè)坐標(biāo)系中的關(guān)系可以表示為:
V1=Q×V×Q-1
傳感器在靜止的狀態(tài)進(jìn)行測量中容易得到精準(zhǔn)的數(shù)據(jù),但是在運(yùn)動(dòng)狀態(tài)中傳感器產(chǎn)生較大的誤差,以此產(chǎn)生的積分誤差會(huì)導(dǎo)致歐拉角數(shù)據(jù)的不準(zhǔn)確。因此加速度傳感器要用濾波器濾除陀螺儀的噪聲,傾角不能僅僅采用MPU-6050運(yùn)動(dòng)處理模塊的加速度傳感器或者陀螺儀取得,需要進(jìn)行互補(bǔ)校正。由傳感器的特性建立起來的互補(bǔ)濾波器,采用低通濾波器后,能夠輸出更為準(zhǔn)確的角度值[7]。
4? 無線體感鼠標(biāo)和傳統(tǒng)有線光電鼠標(biāo)性能對比測試
通過用無線體感鼠標(biāo)和傳統(tǒng)有線光電鼠標(biāo)對比的方式來做一個(gè)性能測試。測試的內(nèi)容有:使用范圍、靈敏度、線性度、以及平滑性。
在使用范圍的對比實(shí)驗(yàn)中,以電腦端為中心,無線體感鼠標(biāo)在半徑10米范圍內(nèi)可以正常工作,相比于傳統(tǒng)光電鼠標(biāo)大約1米左右連線,其適用范圍大;
在靈敏度的對比測試中,通過打開桌面圖標(biāo)和瀏覽網(wǎng)頁的體驗(yàn)來測試。明顯地可以感覺到無線體感鼠標(biāo)在操作的靈敏度上不如傳統(tǒng)鼠標(biāo)在桌面上準(zhǔn)確快捷;
在線性度的對比測試實(shí)驗(yàn)設(shè)置為在畫圖工具中以一條直線為基準(zhǔn)線,快速來回操作鼠標(biāo)以基準(zhǔn)線畫線,看出無線體感鼠標(biāo)在線性上優(yōu)于傳統(tǒng)有線光電鼠標(biāo);
在平滑性的對比測試實(shí)驗(yàn)中,依然是利用畫圖工具做實(shí)驗(yàn)。通過使用兩種鼠標(biāo)按字形8移動(dòng)的方法來測試無線體感鼠標(biāo)和傳統(tǒng)有線光電鼠標(biāo)的平滑性性能,結(jié)果是無線體感鼠標(biāo)的平滑性性能優(yōu)于傳統(tǒng)有線光電鼠標(biāo)。
5? 結(jié)? 論
使用51單片機(jī)結(jié)合新型體感技術(shù)設(shè)計(jì)制作的體感無線鼠標(biāo),和傳統(tǒng)光學(xué)鼠標(biāo)對比測試后達(dá)到預(yù)期要求。它具備易操作、穩(wěn)定性高的性能,采用無線通信解放出雙手,讓鼠標(biāo)控制更加自然流暢,為人們提供體感技術(shù)和計(jì)算機(jī)交互的新體驗(yàn)。隨著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è)計(jì)與實(shí)現(xiàn) [J].廣西物理,2004(3):52-54+57.
[2] 葛海江,陶姍.姿態(tài)感知鼠標(biāo)指針的控制方法 [J].機(jī)電工程,2009,26(3):105-107.
[3] 邱云平,伍寶玉.MPU-6050模塊角度算法處理及在嵌入式中的應(yīng)用 [J].江西科技學(xué)院學(xué)報(bào),2014,9(2):26-29.
[4] 黃得志,陳文元,楊華鋒,等.基于微加速度傳感器的無線鼠標(biāo)的設(shè)計(jì) [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ù)的手勢追蹤與識(shí)別 [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(8):228-232.
作者簡介:趙華峰(1970—),男,漢族,陜西渭南人,講師,碩士,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。