鄧巧茵+陳婷華+劉少江+王鳳+萬(wàn)智萍



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