?

姿態感知無線空中鼠標的開發與實現

2017-05-18 08:51方晨晨
電子科技 2017年5期
關鍵詞:光標慣導陀螺儀

方晨晨,邵 翔

(上海理工大學 光電信息與計算機工程學院,上海 200093)

姿態感知無線空中鼠標的開發與實現

方晨晨,邵 翔

(上海理工大學 光電信息與計算機工程學院,上海 200093)

針對傳統鼠標的使用受二維平面限制的問題,開發并實現了一種姿態感知無線空中鼠標。采用Arduino Nano作為主控制器,對JY-901慣導模塊采集的鼠標姿態數據進行處理,得到光標的位移量,通過藍牙發送到接收端。接收端為Arduino Leonardo微控制處理器,其從藍牙接收端獲得數據并解析,進而實現控制電腦光標的運動。經LabVIEW平臺測試的結果表明,鼠標運行穩定、移動平滑、用戶體驗良好,可滿足實際應用的需求。

姿態感知;無線;空中鼠標;慣導模塊

鼠標是使用最頻繁的計算機輸入設備之一,人機交互時代的到來使得人們對鼠標的穩定性、精確性以及靈活性等要求更高。傳統的鼠標需要基于二維平面操作,使得鼠標在某些特定場合的使用受到限制。隨著微電子技術及無線技術的進一步發展,無線空中鼠標以其新型的定位方式及高靈活性得到了廣泛關注,具有良好的研究前景和應用價值。本文提出一種采用九軸慣導傳感器和無線通訊的方式來實現鼠標的空中姿態感知和指針定位,最終完成了空中鼠標的開發。

1 方案論證

空中鼠標使用傳感器采集鼠標位移信號,硬件系統提供的信號采集器件一般有單陀螺儀,單加速度傳感器等。陀螺儀可感知空間的變化,與位置無關,能夠檢測運動過程中每個軸上旋轉的角速度[1-2]。文獻[3~5]介紹了三軸陀螺儀的空中鼠標定位算法,根據四元數計算出坐標值。但陀螺儀各項性能隨溫度的改變變化較大,會影響其零速率輸出和靈敏度系數,故單陀螺儀作為傳感器件的空中鼠標穩定性較差。加速度計能夠精確測量x,y,z軸方向的加速度,文獻[6~10]利用三軸加速度傳感器,通過積分算出位移,從而確定空中鼠標的位置。但加速度傳感器動態特性不高,對于運動變化較快的載體不能實現快速的跟蹤從而得到精準的輸出,所以加速度傳感器輸出測量值在短時間內參考價值不大[11]。文獻[12~13]利用三軸加速度傳感器測量出的傾斜角的變化表示鼠標位置的變化,這種方法并不能使噪聲完全消失。因此,本文提出了一種基于九軸傳感器的空中鼠標設計方法,采用九軸的高精度慣性導航模塊JY-901,即加速度計、陀螺儀和磁力計集成的模塊,模塊內部集成了姿態解算器,配合動態卡爾曼濾波算法,能夠達到高精度測量,彌補單加速度計、單陀螺儀的不足,也避免了數據融合的過程。

2 硬件設計

空中飛鼠主要分為手持無線發射和PC端USB接收兩大部分。硬件如圖1所示。慣導模塊采用JY-901,內部集成姿態解算器,配合動態卡爾曼濾波算法,能夠在動態環境下準確輸出模塊的當前姿態,姿態測量精度0.01°;主控制器為Arduino Nano,工作電壓5 V;電源模塊采用5 V獨立電源供電;按鍵采用3個普通按鍵,分別對應鼠標的左鍵、右鍵及enter鍵;接收端為Arduino Leonardo微控制處理器,工作電壓為5 V;無線通訊采用藍牙串口模塊,模塊采用CSR主流藍牙芯片,藍牙V2.0協議標準,串口模塊工作默認電壓 3.6~6 V。

其中,Arduino Nano通過I2C與JY-901慣性傳感器連接,通過串口和藍牙從機連接,I2C總線需通過4.7 kΩ的電阻上拉到VCC。Arduino Leonardo 通過串口和藍牙主機連接,通過板載Micro USB完成模擬鼠標、鍵盤等USB HID。藍牙串口為兩個相同的模塊,分別設置成主機和從機,主機用于接收無線鼠標發來的數據,并轉發給PC。

圖1 空中鼠標硬件結構圖

3 軟件設計

由慣導模塊讀取鼠標姿態信息,并由主控芯片將信息處理為鼠標位置的變化量,通過藍牙傳輸給控制端,經過數據處理利用USB HID控制電腦光標移動。

圖2 數據處理流程圖

圖3 鼠標驅動流程圖

數據處理流程,如圖2所示。軟件功能如下:

(1)慣導模塊數據采集與處理。選擇歐拉角[14]作為鼠標的姿態變化量,定時采集每個軸的角度變化,當慣導模塊運動時,每個軸的角度會在基準角度上增加或減少,傳感器角度數據即偏航角Yaw、俯仰角Pitch、橫滾角Roll利用JY901.GetAngle()函數讀取,并調用calc_curser()函數計算一個采樣周期內鼠標角度的變化量。程序設計如下

void loop()

{JY901.GetAngle();

calc_curser(

(float)JY901.stcAngle.Angle[0]/32768*180,

(float)JY901.stcAngle.Angle[1]/32768*180, (float)JY901.stcAngle.Angle[2]/32768*180);

delay(100);}

(2)鼠標姿態解算。鼠標在空中的姿態變化轉換成鼠標指針的移動需要合適的姿態解算算法,本文使用慣導模塊x軸與z軸的輸出,即偏航角與俯仰角進行運算。JY-901模塊偏航角+180°與-180°相互重疊,故偏航角在該范圍變化時的角度差有誤,因此要對傳感器的輸出數據進行處理。處理方法如下:當前時刻的偏航角與上一時刻的偏航角差值>180°或<-180°時,將差值減去或加上360°得到實際差值,俯仰角差值無需類似處理。將偏航角實際差值與俯仰角差值數據分別乘以系數k1和k2得到鼠標偏移量,再與原位置數據相加即為鼠標當前位置信息,通過串口發送給藍牙。同時將當前位置角度數據寫入記錄上一位置角度數據的變量中,循環計算。角度誤差處理程序如下

if(yaw_now-yaw_last>180)

{dx = k1* (yaw_now-yaw_last-360);}

else if(yaw_now-yaw_last<-180)

{dx = k2 * (yaw_now-yaw_last+360);}

(3)PC端鼠標驅動設計。本文鼠標驅動在Windows 7平臺上實現。PC端接收到USB接口發送過來的數據,通過調用Mouse_keyboard函數控制鼠標光標動作。Mouse.move(),Mouse.press()用來實現光標的移動以及左右鍵的操作,Keyboard.write()用來實現回車鍵enter的操作。

系統通過接收USB的數據,判斷鼠標是否移動或按鍵是否按下,如果鼠標移動,則將鼠標的位移量轉化為對應的屏幕像素值,移動電腦光標的位置;如果按鍵按下,判斷為左鍵、右鍵或enter鍵,并執行相應的操作。

4 調試

基于LabVIEW搭建出鼠標姿態角映射到電腦光標位移的模型,利用光標在LabVIEW仿真桌面上的移動整定算法中的各項參數。

4.1 采樣周期的調整

在鼠標移動的過程中,JY-901慣導模塊綜合陀螺儀、加速度計、地磁場傳感器測量的數據得到準確的姿態變化角度,經運算得到鼠標的姿態信息,但鼠標移動過程中會產生測量噪聲,給實驗結果帶來一定誤差。因此需要確定出較好的采樣周期,使光標在電腦桌面移動時具有良好的穩定性和平滑性。

經LabVIEW測試,當采樣周期為10 ms,信號中存在過多的毛刺和脈沖干擾,這些干擾在數據處理過程中會被放大,嚴重時可導致信號失真。將采樣周期從10 ms開始增加,x、y軸變化量的波形明顯平滑。當調節采樣周期達到100 ms時,x、y軸的毛刺基本得以改善,大幅減少了脈沖干擾。繼續增大采樣周期,鼠標的靈敏度降低,其姿態角不能很好地對應到光標的位移上,因此得到較好的采樣周期為100 ms,既改善了測量噪聲對光標位移量的影響,又保證了鼠標靈敏度較高。圖4和圖5分別為鼠標移動過程中,當采樣周期為10 ms、時x、y軸的位移量,橫坐標為時間,單位ms;縱坐標分別為光標在x、y軸的位移量,單位10-4m。

圖4 采樣周期為10 ms時x、y軸位移變化量

圖5 采樣周期為100 ms時x、y軸位移變化量

4.2k1和k2參數整定

將解算后的鼠標姿態角進行映射處理,偏航角與俯仰角分別映射成光標的x軸和y軸,得到二維光標的位移量。在姿態角映射到光標位移量的過程中,參數k1、k2保證了映射水平的高低,即決定了光標移動時的連續性、平滑性。k1、k2過大則光標易產生跳幀現象,過小則光標移動范圍變小,造成移動困難。因此,利用LabVIEW平臺對k1、k2進行校正,通過光標在LabVIEW仿真桌面的移動情況調整k1、k2的大小,直至映射效果最佳。經調試得到k1、k2=4時,光標移動平滑,實時性較好,故最后整定參數k1,k2=4

4.3 零點漂移校正算法

在信號采集過程中,當鼠標系統處于靜止狀態時輸出信號卻不為零,這種輸出信號是隨機噪聲產生的,對于數據的計算沒有意義,這種在系統輸入為零時的系統輸出稱為零點漂移[15]。零點漂移的存在使得傳感器輸出信號不精確,也給數據計算與處理帶來一定的誤差,因此,在算法中設置“閾值”,對小幅度的抖動誤差進行濾波處理,防止鼠標在移動過程中造成光標快速回漂。在一個采樣周期內,當傳感器輸出的角度變化量大于閾值時,認為鼠標處于運動狀態,通過計算得到光標的位移量;當角度變化量小于閾值時,認為鼠標處于靜止狀態,即輸出的位移量dx,dy為零。通過反復試驗,將閾值設置為2.2效果較為理想,光標移動比較平滑。

5 結束語

本文使用Arduino Nano作為核心處理器,JY-901慣導模塊作為信號采集系統,慣導模塊測出的加速度、角速度、磁場經過模塊內部的姿態解算和卡爾曼濾波,以融合后得到的歐拉角表示鼠標當前的姿態角,僅使用偏航角Yaw和俯仰角Pitch表示鼠標在空中的運動姿態,最后將運動軌跡轉換成鼠標指針的移動,完成了基于九軸傳感器的空中鼠標的開發與實現,實物如圖6所示。

圖6 無線空中鼠標發射端和電腦接收端實物

[1] 谷慶紅.微機械陀螺儀的研制現狀[J].中國慣性技術學報,2003,11(5):67-72.

[2] 葛海江,陶姍.姿態感知鼠標指針的控制方法[J].機電工程,2009,26(3):105-107.

[3] 陳莉莉.三軸陀螺儀的空中鼠標定位算法研究[J].信息與電腦,2015(1):57-59.

[4] 曹青,歐陽紅林,胡彪,等.基于角速率陀螺儀的無線鼠標的設計與實現[J].微計算機信息,2008,24(12):230-232.

[5] 葛海江,張雪娟,沈海娟.兩軸模擬陀螺儀的空中鼠標指針控制方法研究[J].電子技術應用,2010(11):132-134.

[6] 王鵬,黃冰,陳婷.基于MMA7455L加速度鼠標的研究[J].傳感技術學報,2010(7):1044-1048.

[7] 錢莉,陳文元,黃得志,等.基于MEMS技術的無線鼠標[J].北京電子科技學院學報,2005,13(4):76-78.

[8] 黃得志,陳文元,楊華峰,等.基于微加速度傳感器的無線鼠標的設計[J].傳感器與微系統,2006,25(1):50-53.

[9] 岳高銘,楊濤,胡莉.基于微加速度計的低功耗無線慣性鼠標的設計[J].微計算機信息,2006,22(10):310-312.

[10] 王海江.三維鼠標的設計及其在虛擬現實中的應用[D].蘇州:蘇州大學,2011.

[11] 周獲.基于MEMS技術的無線空中鼠標的研究[D].廈門:華僑大學,2013.

[12] 湯堅,陳文元,姜曉波,等.基于微加速度計的鼠標系統設計[J].計算機工程與設計,2008,29(23):6136-6138.

[13] 姜曉波.基于微加速度計的AIR-MOUSE的研究[D].上海:上海交通大學,2008.

[14] 劉星.多維MEMS慣性傳感器的姿態解算算法研究[D].哈爾濱:哈爾濱工業大學,2013.

[15] 彭意.空中鼠標指針定位信號采集與處理的研究[D].武漢:武漢理工大學,2013.

歡迎訂閱《電子科技》

郵發代號:52-246

Development and Implementation of Posture Sensing Wireless Air Mouse

FANG Chenchen, SHAO Xiang

(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

A posture sensing wireless air mouse is developed and implemented to remove the restriction of the traditional mouse to the two-dimensional surface. With the Arduino Nano as the master controller, the mouse position data collected by the inertial navigation module JY-901 are processed to obtain the displacement of cursor, which is sent by Bluetooth to the receiving end, that is, the micro control processor Arduino Leonardo, for analysis to control the movement of cursor. Labview test result indicates stable operation and smooth movement of mouse with good user experience.

posture sensing; wireless; air mouse; inertial navigation module

2016- 06- 24

方晨晨(1994-),女,本科。研究方向:控制科學與工程。邵翔(1991-),男,碩士。研究方向:機器視覺等。

10.16180/j.cnki.issn1007-7820.2017.05.050

TP212

A

1007-7820(2017)05-184-04

猜你喜歡
光標慣導陀螺儀
UUV慣導系統多線譜振動抑制研究
基于EMD的MEMS陀螺儀隨機漂移分析方法
無人機室內視覺/慣導組合導航方法
我國著名陀螺儀專家——林士諤
基于Bagging模型的慣導系統誤差抑制方法
微機械陀螺儀概述和發展
MEMS三軸陀螺儀中不匹配干擾抑制方法
導航算法對捷聯慣導系統精度的影響分析
陳光標吃剩飯倒了誰的胃口
陳光標:巴菲特先生,我要裸捐!
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合