劉浩宇,侯政旭,郝白東
(黑龍江科技大學 電子與信息工程學院,哈爾濱 150022)
嵌入式系統(tǒng)的多維藍牙HID激光鼠標設計*
劉浩宇,侯政旭,郝白東
(黑龍江科技大學 電子與信息工程學院,哈爾濱 150022)
系統(tǒng)基于嵌入式ARM Cortex-M3系列芯片,采用激光感應器件、加速度計、二維操作桿等對數據進行實時采集。激光感應器件對平面移動數據采集,結合了加速計對手部姿態(tài)計算,計算的移動數值通過藍牙HID發(fā)送到PC機,省去不便攜帶的接收器。其可實時更新到電腦的屏幕上,光標會跟隨人手部移動的方向而移動,實現(xiàn)鼠標辦公、演講多平面維度使用。
多維鼠標;激光傳感器;BlueCore-04;HID;Cortex-M3
隨著通信網絡及控制技術的提高,新興技術也逐漸融入到日常生活之中。一直以來,電腦鼠標的存在具有普遍性,但普通的有線光電鼠標對平面要求高,無法在任意平面使用,在需要教學等空間中操作不便,在一定程度上限制了人們對電腦的操縱范圍,不能給更多電腦用戶提供更方便的服務。與普通2.4 GHz鼠標相比,使用藍牙HID接口,可省去接收器的硬件接口,可輕松與PC、平板電腦、智能手機等藍牙設備連接。由于常見空中鼠標定位難,因此將激光傳感器融合參與加速度校偏,能得到較好數據值。
在移動辦公的時代,人們早已將移動PC設備作為日常輕辦公的首選,隨著電子設備的成本降低,在硬件上提供豐富的外設接口,如藍牙、紅外等基礎接口。并且隨著3D行業(yè)的發(fā)展,人們對顯示效果的追求不斷提高,要求身臨其境,傳統(tǒng)的鼠標控制器已不能滿足人們對真實體驗的追求了[1]。人們在玩游戲時常常會隨著游戲畫面的更迭而左右搖擺、擺動手腳,此時,人們便把手中的鼠標當成一個實體操控器,盡情娛樂[2]。
本文首先研究了藍牙協(xié)議棧相關內容,討論了藍牙HID的實現(xiàn)方式;通過不斷修改激光感應器件,實現(xiàn)空中鼠標應用激光輔助加速度矯正,平面鼠標使用加速計對位移值矯正,空中鼠標采用搖動替換滾輪編碼器。經過產品需求分析,常見空中鼠標具有位移飄、定位難等人工操作缺陷,因而本文設計采用空中鼠標差速操作模式,在精準點擊時使用慢速搖桿進行精準移動,大幅度跨越平面使用陀螺儀輕松跨越大幅平面,對相關嵌入式系統(tǒng)技術進行了研究,完成了系統(tǒng)總體方案的設計。
圖1 系統(tǒng)軟硬件框圖
新一代ARM Cortex-M3的32位處理器性價比非常高,有很廣闊的應用前景。[3]系統(tǒng)分為數據處理和發(fā)送兩部分,數據處理端又分為平面控制和空間控制兩部分,平面控制使用激光傳感器采集平面偏移值,融合移動速度影響的偏移干擾。空間控制使用加速計解算手部轉動姿態(tài),激光傳感器對圖像偏移量融合,減少位置偏移量。結構圖如圖1所示。
1.1 激光傳感器
激光傳感器選用的是Avago Technologies(安華高科技)的ADNS-9500,它是一款高性能激光導航傳感器,通過比較兩圖片使用STM32F103的內部高速DMA外設,可以訪問ADNS-9500的數值變化。
ADNS-9500擁有功能強大的導航處理引擎,可以提供超高速移動檢測和高達150 ips(1 bps=inches per second 英寸/秒)的高速運動檢測,ADNS-9500可以使用SPI串行外設接口進行數據通信,而 STM32F103內部集成高速SPI協(xié)議,數據傳輸速率最快可達18 Mbps;可對 X 軸 Y 軸進行獨立的分辨率設置,可以對不同場景進行編程處理,如ATM取款機,降低相應使用軸的分辨率,從而減少主控負載,降低功耗。
使用Motion_Burst突發(fā)模式可提高通信時延時時常,極大程度地提高傳輸速率;且激光傳感器響應速度優(yōu)于傳統(tǒng)光學鼠標,激光對平面處理能力優(yōu)于傳統(tǒng)光學傳感器,平面兼容性測試如圖2所示。
圖2 ADNS-9500平面兼容性圖示
1.2 加速度計及陀螺儀
美國Invensense公司的MPU-6050為整合性6軸運動處理組件,MPU-6050可以使用I2C總線進行讀取,自帶DMP高速運動引擎直接輸出四元數,降低微處理器的工作負擔,數據轉化后會產生中斷信號通知CPU從而降低CPU采集次數,提高轉換速率,且具有成本低、市場應用廣等特點[4]。MPU-6050對人的手部轉動進行結算,經芯片使用DMP庫處理分析,得到優(yōu)化降噪的原始數據,轉換成為可讀的移動數據。使用手腕擺動的數據及多姿態(tài)角度融合后,可適應不同握姿,結合藍牙HID無線傳輸直接傳送到PC端及安卓智能終端。利用差速搖桿運動,可實現(xiàn)高低速定位轉換,同時實現(xiàn)單擊雙擊及空中翻頁等功能。設計具有體積小 、重量輕、功耗低、可靠性高、易于集成和實現(xiàn)智能化等特點[5]。
本文設計的多維鼠標對不同平臺進行二維三維兩用變換,通過DSP高速處理器融合算法,在不同表面均可自適應。
1.3 藍牙HID基礎簡介
藍牙無線技術是一種短距離的連接便攜且可固定電子設備的傳統(tǒng)線纜替代技術。這種技術的特點是高效、低功耗、低成本[6]。The Human Interface Device (HID)協(xié)議規(guī)范是專為USB人機交互設備開發(fā)的[7]。HID協(xié)議定義了藍牙在人機接口設備中的協(xié)議、特征和使用規(guī)程。典型的應用包括藍牙鼠標、藍牙鍵盤、藍牙游戲手柄等藍牙鏈路控制器,其有2個主要狀態(tài):待機(STANDBY)和連接(CONNECTION)狀態(tài)[8],以英國Cambridge SiliconRadio(簡稱CSR)公司生產的BlueCore-04藍牙芯片作為研究對象,以藍牙1.2協(xié)議棧為設計指導,提出基于藍牙HID協(xié)議棧的鼠標讀取數據采集實現(xiàn)[9]。HID是藍牙設計中人性化接口設備的簡稱,基于BlueCore-04芯片,更改協(xié)議棧實現(xiàn)方式,本設計基于CSR公司芯片所提供的藍牙HID解決方案,底層源碼及固件庫均由廠家提供,自主設計完成上層應用設計。
2.1 系統(tǒng)工作原理
本設計采用STM32F103芯片負責數據融合及姿態(tài)結算,通過藍牙HID將數據發(fā)送到PC機或智能設備。在桌面時,STM32F103將SROM固件下載進入ADNS-9500傳感器,然后發(fā)送指令喚醒激光傳感器,將傳感器數據讀回,同時讀回加速計平面加速度,將回執(zhí)數據融合處理后,通過藍牙HID協(xié)議發(fā)送至移動端。在空中使用時,用MPU-6050使用DMP庫引擎快速讀取四元數,通過內置高速FIFO濾波器及互補濾波器后,通過四元數的AHRS航角姿態(tài)解算法換算得到最優(yōu)姿態(tài),發(fā)送至移動端。
通過對不同數據的實時處理,實現(xiàn)空中平面兩用鼠標設計,同時設計可疊形3D打印工學折疊外殼,在應用于不同平面時使用不同握姿過渡。
2.2 藍牙HID協(xié)議實現(xiàn)
藍牙設計采用CRS公司的BlueCore-04,采用Bluelab-SDK開發(fā)包專門對上層應用進行開發(fā)。符合藍牙3.0+EDR標準并遵守HID Profile 1.1規(guī)范,將藍牙HID設置為默認主設備,直接連接無需加密。
主要對協(xié)議說明如下:
① HID_Init_RC:在收到消息說明之后,初始化自定義的HID結構體,并嘗試重新連接上次連接的主機;
② HID_Connect_CMD:連接請求位,收到消息后,判斷是否處于空閑狀態(tài),若空閑則接受連接請求;若已有主機連接,則拒絕請求。
③ HID_Connect_RM:回執(zhí)連接確認消息,收到此消息后,判斷連接是否成功,若正確對接,則保存主機藍牙地址,設置為連接狀態(tài)。
④ HID_Data_RC和HID_Data_RM:由主機發(fā)送的消息,接收定義幀速度和鼠標中斷返回信息。
⑤ HID_Disconnect_MS:斷開連接信息,當主機與藍牙連接超出范圍或一方斷開時,會收到這條斷開信息回執(zhí)。收到消息后,設置為Idle態(tài),并啟動Idle timeout定時器。
“不錯。一開始我只是把他當作棋子,故意把照片泄露給他。只是,我沒有想到他乘虛而入,騙得雪螢同他結婚。我當然不會坐視不管,就收買那個看守公廁的老頭兒,讓他誣陷夏冰,并讓你來推波助瀾。這樣,我就可以一箭雙雕?!狈秷詮姲咽掷锸O碌膸最w魚飼料投到魚缸里,抽出一張濕巾紙擦手。
⑥ HID模塊上報用戶按鍵、鼠標、轉動數據都是通過調用Bluelab-SDK中的HID庫函數接口。
HID發(fā)送流程如圖3所示。
圖3 HID發(fā)送流程圖
2.3 DMP四元數全角轉換歐拉角
Invensense公司官方提供的姿態(tài)解算算法、陀螺儀標度因數、安裝誤差系數以及零偏移值的計算與處理方法[8]由DMP 實現(xiàn)姿態(tài)解算算法處理,等待DMP (數字運動處理器)解算完成后產生的外部中斷,在外部中斷里去讀取姿態(tài)解算的結果??傮w不但提高了系統(tǒng)的實時性,還增強了系統(tǒng)的可靠性和單片機處理能力[10]。所得到的四元數通過STM32F103內置轉換處理后,得到Roll、Pitch及Yaw角。所需要注意的是,Yaw角在地磁影響下輸出值偏移量急劇增大,所以針對Yaw角偏航使用地磁計HMC-5883進行矯正,得到去磁偏影響,以有效避免歐拉角任意一軸轉動90°時均會與其他軸相重合導致重合旋轉軸失去作用的萬向軸鎖問題(Gimbal Lock)。[11]
2.4 四元數轉換
(1)
其中E3×3為單位陣,HX定義為
(2)
展開式(1)可得:
(3)
設方向余弦矩陣AΦ的元素為aij,旋轉特征向量Η的元素可表示為:
(4)
四元數由矢量和標量部分組成,可寫成如下形式:
(5)
根據旋轉特征向量和旋轉角,定義四元數矢量部分和標量部分如下:
(6)
式(6)滿足:
(7)
根據4式和6式,方向余弦可用四元數表示:
(8)
式(8)中:
(9)
將式(9)代入式(8)中可得:
(10)
顯然,方向余弦矩陣與歐拉角轉動順序有關,以Z-Y-X轉動順序為例,即先繞偏航軸轉動ψ,其方向余弦矩陣為A3(ψ);接著繞俯仰軸轉動θ,其方向余弦矩陣為A2(θ);最后繞滾動軸轉動φ,其方向余弦矩陣為A1(φ)。[1-2]則Z-Y-X轉動的方向余弦矩陣為:
(11)
設Z-Y-X轉動的四元數為q,用四元數表示,Z-Y-X轉動的方向余弦矩陣即為式(10)。
俯仰角為-180°~-90°或+90°~+180°時,滾動角和偏航角取值范圍為-180°~180°。通過數據采集,將數據融合校驗得到數據真實偏差,為了保證不不失一般性,因此原則上選擇超過90°角,免正切值趨近無窮。
如表1所列,歐拉角到四元數的轉換顯示是正確的,同時,3個軸取值范圍在±90°之間的全角度四元數到歐拉角的轉換顯然能正確輸出結果。
表1 偏移量數據融合校驗表
本設計硬計相對簡單,由主控電路、傳感器電路及藍
牙HID發(fā)射端組成。藍牙模塊采用英國CSR公司的BC417芯片,并與MX公司的8 MHz的Flash芯片29LV800C構成了模塊。藍牙模塊電路如圖4所示。
圖4 CRS-BC147串口HID模塊設計電路
通過STM32F103系列32位處理器內置SPI接口及I2C通信高速接口[11],可以實現(xiàn)對移動傳感器的數據采集,高速濾波融合通過協(xié)議擬合后發(fā)送到藍牙接收端,藍牙接收端通過在應用層的搭建并遵守HID Profile 1.1規(guī)范[12],將偏移量數據發(fā)送至接收機。整體實現(xiàn)方式說明如圖5所示。
圖5 整體功能實現(xiàn)說明
[1] 王康.多功能藍牙遙控器的設計與實現(xiàn)[D].武漢:武漢理工大學,2012.
[2] 戴明.可穿戴遠程健康監(jiān)測預警系統(tǒng)研究及設計[D].南昌:南昌航空大學,2015.
[3] 丁華峰. 基于HID協(xié)議的工控自定義鍵盤接口設計[J].電子設計工程,2013(24):2-3.
[4] 杜麗敏.基于力矩陀螺的高分敏捷小衛(wèi)星姿態(tài)機動控制研究[D].北京:中國科學院研究生院,2012.
[5] 張海鵬,房建成. MEMS陀螺儀短時漂移特性實驗研究[J].中國慣性技術學報,2007(1):101-103.
[6] 劉錦偉.智能手機模擬藍牙鍵盤——基于Android平臺的實現(xiàn)[J]. 電腦知識與技術,2013,13(9):2-3.
[7] 彭孝東.MEMS三軸數字陀螺儀標定方法研究[J].傳感器與微系統(tǒng), 2013,32(6):6-8.
[8] 韓鵬. 藍牙無線鍵盤鼠標的研制 [D].西安: 西北工業(yè)大學, 2004.
[9] 魏剛. 基于HID協(xié)議的串口藍牙鍵盤鼠標設計[D].西安:西安科技大學,2005.
[10] 張穎,邢玉秀.淺析鏈路無關HID驅動程序[J].學術交流,2014,14(1):1-2.
[11] 田亮亮,王國發(fā),臧家偉,等.3D無線射頻鼠標的設計與實現(xiàn)[J].機電產品開發(fā)與創(chuàng)新, 2011(3).
[12] ASK.三位一體 藍牙悄然進入4.0時代[J].電腦迷,2012(1):20.
[13] 張鵬飛,李亞,蔣亞飛,等.一種可適用于虛擬現(xiàn)實的3D無線鼠標的探討與設計[J].電子世界, 2016(7):1-2.
劉浩宇(學生),主要研究方向為嵌入式系統(tǒng)、無線通信等。
參考文獻
[1] 王科俊,丁宇航.基于靜脈識別的身份認證方法研究[J].科技導報,2005,35(3):35-37.
[2] 余成波,秦華鋒.生物特征識別技術:手指靜脈識別技術[M].北京:清華大學出版社,2009.
[3] 王元鉑,何玉青,侯雨石,等.基于DSP的靜脈識別系統(tǒng)[J].光學技術,2009,35(5):739-741.
[4] 李鋼鐵.靜脈識別算法研究[M].長春:吉林大學出版社,2007.
[5] 王躍宗,劉京會.TMS320DM642 DSP應用系統(tǒng)設計與開發(fā)[M].北京:人民郵電出版社,2009.
(責任編輯:楊迪娜 收稿日期:2016-09-01)
Multi-dimensional Bluetooth HID Laser Mouse Based on Embedded System
Liu Haoyu,Hou Zhengxu,Hao Baidong
(College of Electronics and Information Engineer,Heilongjiang University of Science and Technology,Harbin 150022,China)
The system uses the laser sensor device,accelerometer and two-dimensional joystick to collect the data in real-time,which is based on ARM Cortex-M3.The laser sensor is used to collect the moving data of the plane,the system uses the accelerometer to calculate the hand pose,the value is sent to the PC via Bluetooth HID,which eliminates the receiver carrying.The data can be updated in real-time to the computer screen,the cursor will follow the unit direction of the movement of our hands.The design can solve the difficulties of multi-planar dimension.
air mouse;laser sensor;BlueCore-04; Bluetooth; Cortex-M3
* 黑龍江省級大學生創(chuàng)新創(chuàng)業(yè)訓練計劃省重點項目(項目編號:201510219006)。
TN24
A
?迪娜
2016-09-14)