張家田 許凱 嚴正國

摘 要: 設計一款基于空中運動/手勢控制接口技術的空中鼠標。通過MEMS傳感器采集三軸加速度,利用空中運動/手勢控制接口技術對三軸加速度進行解算,輸出為位移、姿態和動作。用“位移”控制鼠標指針移動;“姿態”和“動作”模擬多媒體播放快捷鍵和鼠標按鍵功能。突破了傳統鼠標必須在桌面上使用的限制,在鼠標按鍵功能的基礎上融入多媒體快捷鍵播放功能,實現空中無按鍵的全手勢/運動控制的空中鼠標。
關鍵詞: MEMS傳感器; 空中運動/手勢控制接口技術; 空中鼠標; 三軸加速度
中圖分類號: TN911?34; TP334.2 文獻標識碼: A 文章編號: 1004?373X(2016)06?0143?04
Design of air mouse based on interface technology of air motion and gesture control
ZHANG Jiatian, XU Kai, YAN Zhengguo
(MOE Key Laboratory of Photo Electricity Gas & Oil Logging and Detecting, Xian Shiyou University, Xian 710065, China)
Abstract: An air mouse based on the interface technology of air motion and gesture control was designed. The three?axis accelerations are acquired by MEMS sensor, and resolved by using the interface technology of air motion and gesture control to output the shift, posture and action. The “shift” is used to control the movement of mouse pointer, “posture” and “action” are used to simulate the functions of multimedia playing shortcut keys and mouse button. The limit that the traditional mouse must be used on the desktop was broken. The multimedia shortcut keys playing function is integrated on the basis of mouse button function to realize the full gesture and motion control of air mouse without buttons.
Keywords: MEMS sensor; air motion and gesture control interface technology; air mouse; three?axis acceleration
1968年鼠標的出現是人機交互領域一個重大突破,它為計算機的操作提供了快捷便利的條件。鼠標的發展經歷了機械、光電及當前廣泛運用的光學鼠標,這些鼠標的操作都離不開以桌面為使用的限制。然而,在很多苛刻的環境下無法提供桌面時(如車上、床上、野外的辦公等),那么傳統鼠標的使用就會受到極大的局限性。隨著微機電系統(Micro?Electro?Mechanical Systems,MEMS)的飛速發展,基于MEMS傳感器技術已被逐漸應用到日常生活需求中。目前,對基于MEMS傳感器的無線鼠標有一定的研究。密歇根大學很早就已經將雙軸加速度計應用到鼠標的領域[1],但是基于MEMS無線鼠標設計大部分都是測量位移特性控制鼠標移動[2]。然而,大量實驗表明:利用MEMS傳感器很難準確地測量位移[3]。而本文設計的MEMS傳感器空中鼠標應用了空中運動/手勢控制接口技術,利用運動矢量加速度在xOy平面投影的方向與模大小來控制鼠標指針的移動方向與速度;通過手勢姿態和動作來模擬空鼠標單/雙擊、滑輪鍵功能和部分快捷鍵功能。使空中鼠標突破了傳統鼠標必須在桌面上使用的限制,使用場合更加具有多元化。
1 系統方案設計
空中鼠標系統設計分為兩部分:手持端和主機端。手持端是由可充電鋰電池、升壓穩壓電路、電容式觸摸感應開關、C8051F311、MEMS傳感器ADXL343和發送藍牙模塊組成。空中鼠標手持端設計框圖如圖1所示。
圖1 空中鼠標手持端設計框圖
主機端是由接收藍牙模塊、UART轉USB橋接電路和PC上位機組成,空中鼠標主機端設計框圖如圖2所示。
圖2 空中鼠標主機端設計框圖
2 系統硬件設計
2.1 主控器與MEMS傳感器
本設計采用C8051F311單片機作為主控芯片,它具有增強型UART和增強型SPI串行接口,高速、流水線結構的8051兼容的 CIP?51 內核。ADXL343是一款多功能3軸、低功耗和具有I2C和SPI接口的數字輸出低g MEMS加速度計[4]。以高分辨率(13位)測量加速度,測量變化范圍達±16 g;內置運動檢測功能,可以檢測到活動、靜止和自由落體的運動,所有中斷可獨立映射至兩個外部中斷引腳;采用32級FIFO緩沖器存儲數據,將MCU的負荷降至最低,并降低了整體系統功耗。
2.2 鋰電池充電電路設計
鋰電池充電電路采用了恒定電流/恒定電壓充電芯片TP4056為充電器。空中鼠標的鋰電池可用USB進行充電,通過2管腳外接的電阻調節充電電流大小。鋰電池充電電路如圖3所示,紅色D1亮時表示正在充電,藍色D2亮時表示充電完成,當欠壓、電池溫度過高、過低時D1,D2都熄滅[5]。
圖3 充電電路
2.3 升壓穩壓電路設計
由可充電鋰電池給系統供電,長時間使用電池電壓會降低,不足以提供系統3.3 V正常工作電壓。現采用BL8530芯片將低電壓(低至0.8 V)升壓穩壓至3.3 V電壓。升壓穩壓電路如圖4所示,BL8530只需要電感、輸出電容和肖特基二極管3個外部元件就可以輸出3.3 V電壓。
2.4 電容式觸控開關
應用電容式觸控傳感器技術[6],使空中鼠標更加低功耗。手接觸電容式觸控開關(當空中鼠標正常使用時),使系統處于導通工作狀態;當手不接觸電容開關時,系統處于低功耗待機狀態。
圖4 升壓穩壓電路
2.5 藍牙通信
無線通信采用以CC2540為核心的低功耗藍牙4.0系列HM?11模塊,支持AT指令,可更改主、從模式以及串口波特率等參數。上位機與藍牙接收模塊之間應用Silicon Labs公司的USB轉UART橋接芯片CP2102,實現了MEMS三軸加速度與上位機通信。
3 系統軟件設計
3.1 主程序設計
接觸空中鼠標電容式觸摸鍵,使系統上電;系統初始化、配置UART、 SPI和使能中斷;對ADXL343寄存器進行參數設置,包括活動閾值(THRESH_ACT)、靜止閾值(THRESH_INACT)、靜止時間(TIME_INACT)、數據格式(DATA_FORMAT)以及中斷使能與中斷映射等;等待外部DATA_READY中斷獲取DATAX0,DATAX1,DATAY0,DATAY1,DATAZ0,DATAZ1寄存器數據;通過藍牙發送包含三軸加速度的8個字節數據,系統主程序流程框圖如圖5所示。
圖5 系統主程序流程框圖
3.2 上位機軟件設計
在VB上位機將接收到的8 B進行數據解析,如果沒找見第1個字節0xDD,返回值為1;第8個字節是對前7個字節CRC校驗,如果校驗錯誤,返回值為2;如果頭字節與CRC校驗尾字節都接收正確,返回值為0,繼續讀取中間6個字節的加速度,數據格式為Data[N].ax,Data[N].ay,Data[N].az。由于MEMS傳感器安裝存在方向性,利用旋轉矩陣調整坐標方向,使手勢運動方向與MEMS傳感器坐標方向相一致。數據接收流程圖見圖6。
圖6 數據接收流程圖
手勢姿態加速度Data[0]在xy,yz,xz三個平面的投影加速度為axy,ayz,axz。由于鼠標指針在xy平面運動,所以[axy]>閾值、[ayz]<閾值、[axz]<閾值,當某個平面的投影加速度小于閾值時,表示在該平面保持靜止狀態。利用xy平面投影加速度axy正負控制指針移動方向、 axy模大小控制指針移動速度。Data[0].ax、Data[0].ay按一定非線性對應關系得到相對位移dx和dy,驅動鼠標事件mouse_event(&H1,Int(dx),Int(dy),0,0)來控制鼠標指針移動。手勢控制空中鼠標傾斜角度越大,axy模越大,指針移動速度越快。空中鼠標指針移動流程框圖如圖7所示。
利用當前手勢姿態加速度Data[0],解析為ax,ay,az,axy,ayz,axz,手勢姿態流程框圖如圖8所示,比較各個分量加速度與設定閾值的關系和手勢姿態保持時間(Time) 的關系,得到六種空間姿態(靜態):上、下、左、右、前、后。六種姿態來驅動鍵盤事件(keybd_event),對鍵盤事件定義不同,實現不同的快捷鍵播放多媒體(PPT)功能,如F5,Alt+F4,Page_Up等快捷鍵。
通過手勢動作獲得N組加速度Data[N],通過數據篩選法得到x,y,z三軸加速度的最大值與最小值,對應三軸最值作差得到dx,dy,dz,記錄出現最大值時三軸對應的N值ax_t1,ay_t1,az_t1和最小值時N值ax_t2,ay_t2,az_t2,當dz>dx與dz>dy時,因為雙擊時會出現四次極值,所以在一定時間內比較連續極值的次數,判斷是否發生雙擊。手勢動作流程框圖如圖9所示,通過比較識別出七種動作(動態):向左、向后、向前、向后、向下(左擊)、向上(右擊)與雙擊。各種手勢動作驅動不同事件來模擬鼠標按鍵和媒體播放功能。
圖7 空鼠指針移動流程框圖
圖8 手勢姿態流程框圖
4 實驗分析
隨機抽取20個人對空中鼠標指針移動、PPT播放和鼠標單/雙擊功能的準確率做100次實驗數據次數統計與分析,實驗測試結果如表1所示。
圖9 手勢動作流程框圖
表1 基于空中運動/手勢控制接口技術空中鼠標實驗測試
實驗證明本文設計的空中鼠標功能準確率在96%以上。鼠標指針移動失誤源于傾斜角度過大或過小導致偏離指定目標;控制PPT播放失誤源于手勢姿態(靜態)不夠標準;鼠標單/雙擊操作的失誤是未能向正確的方向做出對應動作(誤動作),如向下動作一次是單擊,實驗者不是向下動作,而是向右下方動作。通過給實驗者指導使用空中鼠標姿態與動作后再次實驗統計,準確率高達99%以上。
5 結 論
本文設計的空中鼠標在具有傳統鼠標功能的基礎上又融入了多媒體播放快捷鍵功能,更主要的是突破了傳統鼠標必須放在桌面使用的限制,實現了空中無按鍵全手勢/運動控制。實驗證明:空中運動/手勢控制接口技術對手勢姿態與動作的識別率高,準確的控制鼠標指針移動、模擬鼠標按鍵功能和遙控多媒體播放。在空中運動/手勢控制接口技術的基礎上,為進一步開發人機體感交互設備提供參考。
參考文獻
[1] DRAKE A J, KIM H, CHAE J, et al. Two?dimensional position detection system with MEMS accelerometer for MOUSE applications [C]// Proceedings of 2001 IEEE Conference on Design Automation. [S.l.]: IEEE, 2001: 852?857.
[2] 陳建新,卜翔,王榮,等.基于MEMS加速度的三維無線鼠標設計與實現[J].無線互聯科技,2011(8):22?25.
[3] 陳建新,王榮,章韻.MEMS加速度傳感器的距離測量性能分析[J].電腦與電信,2011(11):30?32.
[4] Analog Devices. ADXL343: 3?Axis, ±2 g/±4 g/±8 g/±16 g digital MEMS accelerometer datasheet [R]. US: Analog Devices, 2012.
[5] 丁學用,王玲玲,何彥廷.便攜式太陽能手機充電器設計[J].中國科技信息,2014(16):190?192.
[6] 孫俊杰.用電容式觸控技術觸摸生活[J].中國電子商情·基礎電子,2010(7):28?29.