鄧巧茵+陳婷華+劉少江+王鳳+萬智萍
摘要:提出一種能夠通過識別人的手勢動作進(jìn)而對家電設(shè)備進(jìn)行控制的系統(tǒng),改進(jìn)現(xiàn)有的智能家居控制方式。設(shè)計采用MPU6050姿態(tài)傳感器采集并處理人體手部動作信號,結(jié)合低功耗藍(lán)牙4.0模塊實時將信號傳送至STM32微處理器,然后STM32通過對獲取信號的解析發(fā)送相應(yīng)的命令控制家電設(shè)備的工作狀態(tài)。經(jīng)測試結(jié)果表明,系統(tǒng)運行穩(wěn)定,實時性好,可靠性高,能夠有效識別人體手部的動作,具有一定的實用性價值。
關(guān)鍵詞:手勢識別;MPU6050傳感器;藍(lán)牙4.0;STM32;智能家居
中圖分類號:TP274 文獻(xiàn)標(biāo)識碼:A
Abstract: A system that can control the household appliances by recognizing the gesture of human is proposed,which improved the existing smart home control method. This design uses the MPU6050 attitude sensor to acquisition and processing of human hand movements signal, combined with low power Bluetooth 4.0 module to real-time transmitted signal to the STM32 microprocessor, the STM32 then obtain signal analytical and send corresponding commands to control the household electrical appliance. The test results show that the system has stable operation, good real-time performance and high reliability. It can effectively identify the human hand movements, which has a certain practical value.
Keywords: Gesture recognition;MPU6050 Sensor;Bluetooth 4.0; STM32; Smart Home
0 引言
現(xiàn)有的家電設(shè)備控制方式可以大致分為設(shè)備自身開關(guān)控制、遙控器控制、移動終端控制、語音控制等,而科技的不斷進(jìn)步和人們生活質(zhì)量的提高,設(shè)備控制的便捷性和通用性更加得到人們的關(guān)注。人的肢體動作是最直觀、最自然、最靈活的交互方式[1],通過手部的動作直接與設(shè)備進(jìn)行交互,免除了終端設(shè)備的使用,真正解放了人的雙手,使得在控制家電設(shè)備時實現(xiàn)更自然的交互模式。
目前,手勢識別主要分為兩大形式,第一種是基于圖像實現(xiàn)手勢動作的識別,由于人的手部姿態(tài)較為復(fù)雜,肢體動作具有多樣性和差異性[2],通過攝像設(shè)備對手勢動作進(jìn)行捕獲只能夠局限在特定的范圍內(nèi),受環(huán)境、光線、顏色等影響較大,對設(shè)備的使用具有嚴(yán)格的要求[3];第二種是基于微慣性傳感器實現(xiàn)手勢的識別,通過獲取手部的姿態(tài)信號,與手勢庫進(jìn)行匹配,即可確定該手勢動作對應(yīng)的信息,能夠在較大的范圍內(nèi)使用[4]。
隨著微機(jī)電系統(tǒng)和計算機(jī)技術(shù)的不斷發(fā)展,推動了可穿戴設(shè)備的研發(fā),微型化、低功耗的MEMS慣性傳感器能夠嵌入到各類設(shè)備中[5],為手勢識別提供了實現(xiàn)的環(huán)境。本文采用整合了三軸加速度、三軸角速度、三軸姿態(tài)角的MPU6050模塊搭配低功耗藍(lán)牙模塊對人的手部動作信號進(jìn)行采集并進(jìn)行相應(yīng)的運算處理,然后通過藍(lán)牙模塊把信號發(fā)送至STM32微處理器進(jìn)行模數(shù)轉(zhuǎn)換,完成手勢比對并發(fā)送對應(yīng)的命令給家電設(shè)備實現(xiàn)手勢的控制。
1 系統(tǒng)的總體設(shè)計
系統(tǒng)的設(shè)計總共分為手勢分析、無線傳輸、設(shè)備控制三大部分,如圖1所示。
手勢分析部分包括Arduino Nano、MPU6050傳感器模塊和藍(lán)牙模塊,對電路進(jìn)行連接后制作成類似手表的模型,用戶佩戴于手腕上即可開始進(jìn)行操作。MPU6050傳感器采集手
勢的信號后在其內(nèi)部進(jìn)行姿態(tài)解算,并配合動態(tài)卡爾曼濾波算法,能夠在動態(tài)環(huán)境下通過藍(lán)牙發(fā)送當(dāng)前準(zhǔn)確的姿態(tài)信號。
無線傳輸部分采用的是短距離無線通信技術(shù)中的藍(lán)牙技術(shù),其工作在無需申請的2.4GHz頻段內(nèi),能夠在10m的范圍內(nèi)實現(xiàn)手勢信號的接收和發(fā)送、設(shè)備之間的通信、微處理器實現(xiàn)指令的發(fā)送等功能。
設(shè)備控制部分包括STM32微處理器、藍(lán)牙模塊、繼電器等,手勢信號通過藍(lán)牙的無線傳輸,發(fā)送到STM32進(jìn)行手勢的配對,經(jīng)過模數(shù)轉(zhuǎn)換后得到控制命令,微處理器把命令發(fā)送到設(shè)備實現(xiàn)對應(yīng)手勢的狀態(tài)控制。
1.1 MPU6050模塊
該模塊負(fù)責(zé)對用戶的手勢信號進(jìn)行采集,其體積為15.24mm*15.24mm*2mm,能夠方便地佩戴在用戶的手腕部位,當(dāng)傳感器檢測到手勢發(fā)生變化后,能夠?qū)崟r將獲取的手勢信息通過藍(lán)牙模塊發(fā)送到微控制器實現(xiàn)后續(xù)的處理。
考慮到硬件開發(fā)的簡便性,選用該模塊能夠通過串口輸出數(shù)據(jù),免除了使用I2C協(xié)議的開發(fā)過程,同時,該模塊內(nèi)部自帶穩(wěn)壓電路,能夠兼容3.3V/5V的嵌入式系統(tǒng);而且保留了I2C接口,方便用戶進(jìn)行開發(fā)模式的選取;模塊內(nèi)部采用先進(jìn)的數(shù)字濾波技術(shù),能夠有效降低環(huán)境的噪聲,提高測量精度;其內(nèi)部集成了姿態(tài)解算器,再配合動態(tài)卡爾曼濾波算法,就能動態(tài)輸出當(dāng)前姿態(tài),測量精度高達(dá)0.01度,數(shù)據(jù)輸出頻率在比特率為115200下達(dá)到100Hz;MPU6050傳感器模塊如圖2所示,圖3為模塊與單片機(jī)的電路連接示意圖。
從圖中可看出,MPU6050傳感器模塊的軸向為X軸向右,Y軸向上,Z軸垂直紙面向外;按照右手法則對旋轉(zhuǎn)方向進(jìn)行定義;該模塊Z軸方向角沒有絕對的參考,以上電時刻的角度為0度,X軸滾轉(zhuǎn)角和Y軸俯仰角是以水平面為絕對參考的,也就是水平放置時為0度。
1.2 藍(lán)牙傳輸模塊
在對手勢信號的采集和輸出,為了能實現(xiàn)系統(tǒng)的便捷性,低功耗的要求,選用搭載了TI公司CC2541芯片的低功耗藍(lán)牙4.0模塊進(jìn)行無線傳輸,該模塊具有成本低、體積小、功耗低、收發(fā)靈敏性高等優(yōu)點,具有8051內(nèi)核,其體積為26.9mm*13mm*2.2 mm,工作在2.4G的無線頻段。藍(lán)牙模塊能夠把接收到的數(shù)據(jù)發(fā)送到PC上,在上位機(jī)中記錄測量的數(shù)據(jù),然后通過MATLAB對數(shù)據(jù)進(jìn)行仿真[6];同時,微控制器通過藍(lán)牙模塊對數(shù)據(jù)進(jìn)行接收并發(fā)送命令控制相應(yīng)的設(shè)備。
1.3 STM32微處理器
數(shù)據(jù)處理部分采用意法半導(dǎo)體(ST)公司推出的基于Cortex-M4內(nèi)核的STM32F4系列高性能微處理器,其主頻高達(dá)168Mhz,可獲得210DMIPS的處理能力,使得STM32F4更適用于浮點運算和DSP處理;STM32F4具有更快的模數(shù)轉(zhuǎn)換速度、更低的ADC/DAC工作電壓、更多的接口資源,該芯片集成FPU和DSP指令,16通道DMA控制器、3個SPI、2個全雙工I2S、3個I2C、6個串口、2個USB(支持HOST/SLAVE)、3路12位ADC、2路12位DAC、1個10/100M以太網(wǎng)MAC控制器以及112個通用IO口等,自帶1M字節(jié)的FLASH,并外擴(kuò)1M字節(jié)的SRAM和16M字節(jié)的FLASH,滿足大內(nèi)存需求和大數(shù)據(jù)存儲的要求。如圖4為設(shè)備控制部分的硬件設(shè)計圖。
2 手勢識別數(shù)據(jù)解析
手部動作的識別是系統(tǒng)主要研究的核心,在環(huán)境、硬件配置、資金等條件的限制下,如何準(zhǔn)確獲得MPU6050傳感器測量的數(shù)據(jù)是整個系統(tǒng)的中心,考慮到對家電設(shè)備的控制可以簡單分為開、關(guān)、調(diào)節(jié)大小等控制操作,因此,本文對手勢的設(shè)計大致定義為向左、向右、向上、向下、左右旋轉(zhuǎn)等幾個基本動作[7]。
2.1 手部動作的分析
手勢分析部分佩戴于用戶手腕部分,如圖5所示,姿態(tài)角解算時所使用的坐標(biāo)系為東北天坐標(biāo)系,正確佩戴模塊后,以手腕為中心,向右為X軸正方向,向前為(手指方向)Y軸正方向,向上為Z軸正方向,歐拉角表示姿態(tài)時的坐標(biāo)系旋轉(zhuǎn)順序定義為Z-Y-X,即先繞Z軸方向轉(zhuǎn),再繞Y軸方向轉(zhuǎn),再繞X軸方向轉(zhuǎn)。滾轉(zhuǎn)角的范圍雖然是±180°,但由于坐標(biāo)軸選擇的順序在實際表示姿態(tài)時,俯仰角即Y軸的范圍只有±90°,若測得角度大于90°就會轉(zhuǎn)換為小于90°的數(shù)值,同時會使X軸的角度大于180°;由于三個軸是耦合的,在大角度的時候姿態(tài)角度會耦合變化,比如當(dāng)X軸接近90°時,即使姿態(tài)只繞X軸轉(zhuǎn)動,Y軸的角度也會跟著發(fā)生較大變化;而只有在小角度的時候姿態(tài)才會表現(xiàn)出獨立變化,這是歐拉角表示姿態(tài)的固有問題。
在操作的過程中,MPU6050傳感器獲取三軸加速度數(shù)據(jù),由于重力加速度的存在,手部靜止時Z軸的加速度等于重力加速度,X軸和Y軸的加速度都為0,以靜止時加速度的數(shù)值為閾值,當(dāng)Z軸的加速度數(shù)值大于閾值時可以判斷是在做向上加速度運動,反之則是在做向下的加速度運動;同理可得當(dāng)X軸的加速度值大于閾值時,手部向X軸正方向運動,小于時則向X軸負(fù)方向運動;Y軸也是如此;至于判斷手部是否在做旋轉(zhuǎn)運動,可以根據(jù)歐拉角的范圍空間進(jìn)行表示,以靜止時的角度為起點,采用標(biāo)志性的角度作為判別依據(jù),比如旋轉(zhuǎn)到90°時記為垂直方向旋轉(zhuǎn)[8]。
2.2 姿態(tài)的計算
2.3 手勢的識別
因為模塊對手勢信號的檢測是連續(xù)的,所以要在識別手勢前找到手勢的起始點,并對噪聲進(jìn)行過濾,如圖6為手勢識別的設(shè)計流程。
以加速度信號為例,三個軸向的加速度數(shù)據(jù)記為(x,y,z),在t時刻的加速度信號記為at=[x(t),y(t),z(t)],在手部運動的過程中固然存在靜止的信號,而此時的信號相比運動時信號的幅度小,為了有效的分辨出一個動作的開始和結(jié)束,式(10)表示通過門限閾值和信號查分進(jìn)行數(shù)據(jù)獲取[9],Begin和End分別表示起始和結(jié)束的兩個閥值(Begin>End),采集n個樣本數(shù)據(jù)進(jìn)行均值運算,提高算法的準(zhǔn)確性:
當(dāng)ai= 1/n ∑_(t=i)^(i+n)?Δat;ai≥Begin時,表示一個手勢的開始,當(dāng)ai= 1/n ∑_(t=i)^(i+n)?Δat;ai 在進(jìn)行手勢的識別時,濾除信號中相對較低的數(shù)據(jù),以此降低精度和靈敏度,簡化硬件的運算,再進(jìn)行平滑濾波的處理,更易于對信號進(jìn)行特征值的獲取[7]。 3 系統(tǒng)的測試 系統(tǒng)的設(shè)計是為了改進(jìn)已有智能家居系統(tǒng)的控制方式,采用手勢動作進(jìn)行識別控制。在戴上含有MPU6050傳感器的腕帶后,重復(fù)做設(shè)定好的幾個動作,圖7為各個動作的波形圖。 測試的環(huán)境是在室內(nèi)進(jìn)行的,處于10的范圍內(nèi),每一個手勢動作先進(jìn)行訓(xùn)練,獲得該動作的特征值,然后反復(fù)進(jìn)行20次的測試,動作完成后與手勢庫進(jìn)行識別對比,得到表1手勢識別精度,可以看出,向下和向左的識別率最高,其次是向上和向右,而向左向右旋轉(zhuǎn)識別率相對較低。 4 結(jié)論 基于手勢動作進(jìn)行家電控制為智能家居帶來一種更方便、更友好的操作界面,通過解析手部的動作信號,通過低功耗藍(lán)牙模塊的無線傳輸,由微處理器對數(shù)據(jù)進(jìn)行處理最后實現(xiàn)電器的開關(guān)等操作,不僅提高了人們的生活效率,省去了通過移動終端進(jìn)行選擇控制的步驟,而且讓整個操作的過程更加的自然、便捷。使用手勢實現(xiàn)設(shè)備的控制不僅僅適用于家居環(huán)境中,還能擴(kuò)展至各種工作、商店、教學(xué)等場所中,在手勢控制的部分能夠添加更多的感知設(shè)備,例如能夠測量心率、獲取睡眠狀態(tài)、獲取步數(shù)等人體信息,集成更多的功能。隨著人機(jī)交互和可穿戴設(shè)備技術(shù)的不斷更新,通過識別手勢實現(xiàn)控制具有一定的研究價值和廣闊的市場前景。 參考文獻(xiàn): [1] 王原, 湯勇明, 王保平. 基于加速度傳感器的大手勢集手勢識別算法改進(jìn)研究[J]. 傳感技術(shù)學(xué)報, 2013(10):1345-1351. [2] 謝澤奇, 張會敏. 基于MMA8452Q的肢體動作識別系統(tǒng)的設(shè)計[J]. 計算機(jī)技術(shù)與發(fā)展, 2014(2):198-201. [3] 肖茜, 楊平, 徐立波. 一種基于MEMS慣性傳感器的手勢識別方法[J]. 傳感技術(shù)學(xué)報, 2013, 26(05):611-615. [4] 董玉華, 孫炎輝, 徐國凱,等. 基于ZigBee和加速度傳感器的手勢識別研究[J]. 傳感技術(shù)學(xué)報, 2013, 26(07):961-965. [5] 劉蓉, 劉明. 基于三軸加速度傳感器的手勢識別[J]. 計算機(jī)工程, 2011, 37(24):141-143. [6] 杜波, 張卓, 劉垚. 卡爾曼濾波在人體姿態(tài)檢測中的應(yīng)用[J]. 長春工程學(xué)院學(xué)報:自然科學(xué)版, 2015(3):98-103. [7] 李國峰, 王錦, 張勇,等. 基于MEMS加速度傳感器的智能輸入系統(tǒng)[J]. 傳感技術(shù)學(xué)報, 2009, 22(05):643-646. [8] 蔡興泉, 郭天航, 臧坤,等. 基于無線數(shù)據(jù)手套的手勢識別方法研究[J]. 系統(tǒng)仿真學(xué)報, 2014, 26(01):72-75. [9] 陳鵬展, 羅漫, 李杰. 基于加速度傳感器的連續(xù)動態(tài)手勢識別[J]. 傳感器與微系統(tǒng), 2016, 35(01):39-42.