周濤,郝英杰,盛慶華
(杭州電子科技大學(xué),浙江杭州,310018)
越來越多的場景需要遠(yuǎn)程使用鼠標(biāo),例如多媒體教學(xué)、集體會議、體感游戲、工程應(yīng)用控制、移動(dòng)電視盒等。傳統(tǒng)的光學(xué)鼠標(biāo)由于二維平面的限制不能夠方便的對電腦指針進(jìn)行遠(yuǎn)程控制。因此,人們迫切地希望擁有一款擺脫二維平面的束縛、并且能夠在三維空間中自由使用的可穿戴式無線空中鼠標(biāo)。隨著微機(jī)電系統(tǒng)的快速發(fā)展,陀螺儀與加速度傳感器的出現(xiàn)促使產(chǎn)生了新一代的空中鼠標(biāo)[1]。本文提出了一種新型的可穿戴式空中鼠標(biāo)設(shè)計(jì)方案,用戶可以自由地在三維空間中操控電腦指針。
可穿戴式無線空中鼠標(biāo)的由兩個(gè)設(shè)備組成:主控制無線發(fā)射設(shè)備和無線USB接受設(shè)備。主控制無線發(fā)射設(shè)備主要由四個(gè)模塊組成,分別是電源管理模塊、STM32核心控制模塊、NRF24L01無線通信模塊和MPU6050傳感器模塊。示意圖如圖1所示。首先MPU6050六軸傳感器不斷接受用戶的手勢信息,由STM32微控制處理器利用中斷查詢的方式接受六軸傳感器的數(shù)據(jù),經(jīng)過補(bǔ)償濾波算法之后,通過NRF24L01通訊芯片將數(shù)據(jù)發(fā)送出去。無線USB接受設(shè)備主要由兩個(gè)模塊組成,STM32控制模塊與NRF24L01無線通信模塊。示意圖如圖2所示。無線USB接受設(shè)備捕獲主控制無線發(fā)射設(shè)備發(fā)送的數(shù)據(jù),再按照USB2.0協(xié)議進(jìn)行編碼,通過USB接口完成和電腦的交互通信。此時(shí)完成用戶控制電腦指針的全部過程。主控制無線發(fā)射設(shè)備和無線USB接受設(shè)備的電路圖如圖3,圖4所示。
圖1 主控制無線發(fā)射設(shè)備組成框圖
圖2 無線USB接受設(shè)備
圖3 無線USB接受設(shè)備的電路圖
圖4 主控制無線發(fā)射設(shè)備的電路圖
系統(tǒng)的慣性測量單元采用MPU6050六軸傳感器作為手勢運(yùn)動(dòng)的信息采集元件。MPU6050六軸傳感器中既有陀螺儀與加速度傳感器,更在內(nèi)部嵌入了數(shù)字運(yùn)動(dòng)處理器DMP。數(shù)字運(yùn)動(dòng)處理器可以通過融合算法解出傳感器的姿態(tài)和四元數(shù),因此使用者不需要額外進(jìn)行數(shù)字運(yùn)算[2]。由數(shù)字運(yùn)動(dòng)處理器實(shí)現(xiàn)融合算法后,單片機(jī)便釋放了大量的運(yùn)算資源。單片機(jī)只需要設(shè)置好外部中斷等待數(shù)字運(yùn)動(dòng)處理器傳送數(shù)據(jù)即可,這些數(shù)據(jù)即是用戶的手勢運(yùn)動(dòng)初始的信息。這樣以來,單片機(jī)有更多的資源與更多的時(shí)間來完成補(bǔ)償濾波算法濾波以及其他控制邏輯。
主控制無線發(fā)射設(shè)備使用的是STM32F401CCU型號微型控制單元,它擁有168MHz的主頻和高達(dá)210MIP的整數(shù)運(yùn)算能力。完全符合空中鼠標(biāo)實(shí)時(shí)控制的要求,可以有效實(shí)現(xiàn)對初始手勢數(shù)據(jù)的實(shí)時(shí)處理。無線USB接受設(shè)備采用小型并且廉價(jià)的STM32F103C8T6型號微控制處理器。它接受NRF24L01發(fā)送的數(shù)據(jù)并通過USB協(xié)議將處理的數(shù)據(jù)發(fā)送給電腦來是實(shí)現(xiàn)對電腦的控制。
NRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4GHz全球開放ISM頻段免許可證使用,最高工作頻率2Mbps,高效GFSK調(diào)制,抗干擾能力強(qiáng),適于工業(yè)控制場合,126頻道,滿足多點(diǎn)通信和調(diào)頻通信需求;內(nèi)置硬件CRC檢錯(cuò)和點(diǎn)對多點(diǎn)通信地址控制。NRF24L01通過SPI通信總線驅(qū)動(dòng),而STM32F103具備SPI接口,可直接通過其SPI1接口對NRF24L01進(jìn)行驅(qū)動(dòng),設(shè)置無線收、發(fā)模式,實(shí)現(xiàn)對監(jiān)控?cái)?shù)據(jù)的無線傳輸。STM32微控制器與NRF24L01的引腳連接關(guān)系如表1所示。
表1 STM32微控制器與NRF24L01的引腳連接關(guān)系
電源管理模塊是主控制無線發(fā)射設(shè)備的核心,它直接決定了成品的體積、重量以及用戶的使用體驗(yàn)。我們采用XT582728型號的可充電鋰電池,它集成了過充保護(hù)電路,所以在設(shè)計(jì)電源電路時(shí)無需考慮過充電[2]的情況。電源管理模塊由三部分組成,充電電路、降壓電路與電源電壓采集電路。電源管理模塊原理圖如圖5所示。降壓電路利用CAT6219低壓差穩(wěn)壓電路,避免使用分立的元器件,包括電感、電容、二極管和MOS管,搭建傳統(tǒng)的降壓斬波電路。CAT6219的額定電流達(dá)到500mA,在負(fù)載電流和線電壓變化期間提供快速響應(yīng)時(shí)間。具有快速啟動(dòng)特性,可以通過外接旁路電容來降低總輸出噪聲,同時(shí)又不會影響150μs的啟動(dòng)時(shí)間。是設(shè)計(jì)低成本、輕重量設(shè)備的良好選擇。充電電路使用的是TP4507電源管理芯片。它是一款完整的單節(jié)鋰離子電池充電器,由于內(nèi)部采用了PMOSFET架構(gòu),加上防倒沖電路,所以不需要外部檢測帶你路和隔離二極管。因此,小型的SOT封裝與較少的外部元件使得TP4507特別適合用于便攜式設(shè)備。
本系統(tǒng)軟件設(shè)計(jì)的核心利用STM32完成對MPU6050六軸傳感器發(fā)送數(shù)據(jù)的處理。MPU6050六軸傳感器包含加速度計(jì)與陀螺儀兩個(gè)期間。加速度計(jì)用來檢測物體的加速度,但是取瞬時(shí)值計(jì)算傾角誤差比較大,捕獲一段時(shí)間的數(shù)據(jù)有助與降低傾角誤差;另一方面,陀螺儀在檢測物體的方位角信息時(shí)是不受物體加速度的影響,但是積分漂移和溫度漂移會隨著使用時(shí)間的增加而增大誤差。兩個(gè)傳感器的性質(zhì)是互補(bǔ)的,我們利用這樣的性質(zhì)設(shè)計(jì)出了補(bǔ)償濾波算法。
圖5 電源管理模塊原理圖
補(bǔ)償濾波算法是指以陀螺儀瞬時(shí)檢測的角度作為基準(zhǔn),定時(shí)對加速度采樣。采集數(shù)據(jù)的過程中,加速度計(jì)的高頻信號與陀螺儀的低頻信號是無關(guān)信號,需要在數(shù)據(jù)處理時(shí)濾除。之后通過平均處理來達(dá)到最終校正陀螺儀檢測到角度的目的[3]。
在實(shí)際設(shè)計(jì)的過程中,需要額外考慮按鍵中斷程序與數(shù)據(jù)發(fā)送中斷程序。相比于查詢的方式,中斷處理令單片機(jī)暫停正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的服務(wù)處理程序;當(dāng)服務(wù)處理程序運(yùn)行完畢之后,CPU再返回到暫停處繼續(xù)執(zhí)行原來的程序。因此它保證了中斷程序運(yùn)行的實(shí)行性,減少了主程序運(yùn)行的負(fù)擔(dān)。
軟件的設(shè)計(jì)框圖如圖6所示。
圖6 軟件設(shè)計(jì)流程圖
本文在充分考慮到可穿戴式無線空中鼠標(biāo)體積、成本、精確度、平滑性等因素的基礎(chǔ)上,做了細(xì)致的研究、論證、設(shè)計(jì)、驗(yàn)證和調(diào)試的工作。根據(jù)前期的調(diào)研和分析,結(jié)合空中鼠標(biāo)的特點(diǎn),確定了系統(tǒng)硬件的總體設(shè)計(jì)方案。在Keil uVision4 MDK3.8A開發(fā)環(huán)境上進(jìn)行了軟件系統(tǒng)的各個(gè)模塊設(shè)計(jì)。該方案實(shí)現(xiàn)的可穿戴式無線空中鼠標(biāo)具有較高的平滑性和穩(wěn)定性,能夠方便用戶在無距離的三維空間對電腦指針進(jìn)行操作。在電腦指針的操控上還有一些需要改進(jìn)的地方。電腦指針的移動(dòng)的曲線呈現(xiàn)折線或是直角。因此,如何提高鼠標(biāo)指針移動(dòng)的動(dòng)態(tài)性能將是穿戴式無線空中鼠標(biāo)后續(xù)的研究方向。