李文豫
(河南省實(shí)驗(yàn)文博學(xué)校,河南鄭州,450000)
體感交互技術(shù)屬于最前沿的科技之一,一經(jīng)問(wèn)世便引起了諸多企業(yè)巨頭的注意,吸引了大量人才進(jìn)入該領(lǐng)域。它用手勢(shì)或肢體動(dòng)作來(lái)代替?zhèn)鹘y(tǒng)的控制方式來(lái)遙控各種軟件和機(jī)器,從而達(dá)到增強(qiáng)用戶體驗(yàn)感、便利生活等目的,給生活帶來(lái)了重要影響。它是繼個(gè)人計(jì)算機(jī)、互聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)之后的第五次信息技術(shù)領(lǐng)域的重大技術(shù)革命。在不久的將來(lái),它將成為計(jì)算機(jī)各種軟件及智能機(jī)器的標(biāo)配,發(fā)展?jié)摿o(wú)窮之大,預(yù)計(jì)將打開(kāi)數(shù)億級(jí)美元市場(chǎng)空間,實(shí)現(xiàn)物質(zhì)世界與虛擬網(wǎng)絡(luò)的完美融合。
該裝置采用安裝在手套內(nèi)的三軸加速度計(jì)和三軸陀螺儀等慣性傳感器采集手臂在空間中三個(gè)維度運(yùn)動(dòng)的數(shù)據(jù),上傳至手臂上主控MCU1,MCU1對(duì)接收到的數(shù)據(jù)進(jìn)行濾波、姿態(tài)結(jié)算,隨后通過(guò)藍(lán)牙將運(yùn)動(dòng)控制指令發(fā)送給小車,小車上MCU2根據(jù)接收到的控制指令驅(qū)動(dòng)小車電機(jī)運(yùn)動(dòng),從而達(dá)到通過(guò)手臂可穿戴裝置遠(yuǎn)程控制小車運(yùn)動(dòng)的目的。
該項(xiàng)目創(chuàng)新性設(shè)計(jì)有以下幾點(diǎn):
(1)通過(guò)三軸加速度計(jì)和三軸陀螺儀獲得手臂三維運(yùn)動(dòng)數(shù)據(jù),并通過(guò)將傳感器安裝在手套內(nèi)實(shí)現(xiàn)可穿戴,方便靈活;
(2)通過(guò)卡爾曼濾波等算法對(duì)獲得的傳感器數(shù)據(jù)進(jìn)行濾波處理,使數(shù)據(jù)更為準(zhǔn)確;
(3)通過(guò)藍(lán)牙收發(fā)數(shù)據(jù)達(dá)到手臂遠(yuǎn)程控制小車的目的;
(4)通過(guò)在小車上安裝機(jī)械臂等執(zhí)行機(jī)構(gòu)可以使小車代替人完成危險(xiǎn)的任務(wù),以減少人員傷亡的風(fēng)險(xiǎn)。
該系統(tǒng)硬件主要包括兩部分:手臂可穿戴裝置和小車。手臂可穿戴裝置包括三軸加速度計(jì),用于獲取手臂平動(dòng)數(shù)據(jù);三軸陀螺儀,用于獲取手臂轉(zhuǎn)動(dòng)數(shù)據(jù);MCU1,用于處理加速度計(jì)和陀螺儀的數(shù)據(jù)并發(fā)出控制小車指令;藍(lán)牙,用于發(fā)送小車運(yùn)動(dòng)指令。小車包括藍(lán)牙,用于接收小車運(yùn)動(dòng)指令;MCU2,用于處理藍(lán)牙接收到的數(shù)據(jù)并控制小車運(yùn)動(dòng);電機(jī)驅(qū)動(dòng)模塊,用于驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)動(dòng)。
圖1 硬件原理框圖
(1)加速度計(jì)
加速度計(jì)是用來(lái)測(cè)量加速度的一種傳感器。加速度計(jì)中有一質(zhì)量塊,可以通過(guò)牛頓第二定律來(lái)測(cè)量加速過(guò)程中獲得的加速度大小。根據(jù)傳感器檢測(cè)機(jī)理和敏感元件的不同,常見(jiàn)的加速度傳感器包括壓阻式、電感式、電容式、壓電式、應(yīng)變式等。此處采用的是三軸加速度計(jì),可以獲得手臂在三個(gè)維度平動(dòng)的信息數(shù)據(jù),從而更加全面的感知手臂的運(yùn)動(dòng)。
(2)陀螺儀
陀螺儀是一種用來(lái)測(cè)量角度的檢測(cè)裝置。這里采用光纖陀螺儀,即從同一點(diǎn)分別沿順時(shí)針?lè)较蚝湍鏁r(shí)針?lè)较虬l(fā)射兩道光,當(dāng)角度發(fā)生偏轉(zhuǎn)時(shí),兩束光到達(dá)時(shí)間就會(huì)有差異,通過(guò)探測(cè)這個(gè)時(shí)間差異來(lái)計(jì)算角度。采用三軸陀螺儀可以獲得手臂的三個(gè)維度的轉(zhuǎn)動(dòng)數(shù)據(jù)。
(3)主控MCU
主控MCU采用的是Arduino,Arduino是一種適用范圍廣,操作簡(jiǎn)單,功能強(qiáng)大的開(kāi)源電子原型平臺(tái)。板上集成有微控制器,可用自帶的編程語(yǔ)言來(lái)編寫(xiě)程序,經(jīng)過(guò)編譯器從原有的十進(jìn)制編譯成二進(jìn)制文件,進(jìn)而燒錄進(jìn)Arduino微控制器。編程語(yǔ)言建議采用C++或匯編語(yǔ)言。用Arduino IDE簡(jiǎn)單清晰,有很強(qiáng)的靈活性。
(4)藍(lán)牙
一種支持設(shè)備短距離通信的無(wú)線電技術(shù),通信距離一般在十米以內(nèi),這里采用藍(lán)牙實(shí)現(xiàn)小車與手臂間遠(yuǎn)程無(wú)線通信,避免了導(dǎo)線的使用,具有簡(jiǎn)單靈活的優(yōu)點(diǎn)。
(5)電機(jī)驅(qū)動(dòng)模塊
通過(guò)通電導(dǎo)體在磁場(chǎng)中受力的作用而制作而成的電動(dòng)機(jī),能將電能轉(zhuǎn)化為動(dòng)能。在MCU2接收到從手臂上傳輸?shù)乃{(lán)牙數(shù)據(jù)后,通過(guò)電機(jī)驅(qū)動(dòng)模塊控制電機(jī)的運(yùn)動(dòng),從而控制小車的運(yùn)動(dòng)。
(6)顯示模塊
這里采用LED顯示屏。即由若干個(gè)結(jié)構(gòu)上獨(dú)立的顯示像素(發(fā)光二極管)組成LED顯示屏。通過(guò)控制電路和驅(qū)動(dòng)電路控制每個(gè)像素點(diǎn)的明暗和發(fā)光程度實(shí)現(xiàn)展示效果。顯示模塊可以用來(lái)顯示電池的電量、數(shù)據(jù)的收發(fā)等信息,以便實(shí)時(shí)監(jiān)測(cè)整個(gè)系統(tǒng)的工作情況。
該系統(tǒng)的軟件設(shè)計(jì)主要包括對(duì)采集的加速度計(jì)和陀螺儀的數(shù)據(jù)進(jìn)行濾波、姿態(tài)結(jié)算,通過(guò)控制步進(jìn)電機(jī)旋轉(zhuǎn)的速度和方向控制小車的運(yùn)動(dòng),以及對(duì)數(shù)據(jù)藍(lán)牙收發(fā)、小車運(yùn)動(dòng)信息的顯示等。
圖2 軟件工作流程圖
(1)濾波
濾波方法主要有三種。
第一種:中位值平均濾波
每次均采集n個(gè)數(shù)據(jù),通過(guò)查找將n個(gè)數(shù)據(jù)中的最小值和最大值找出并刪掉,將剩下的所有數(shù)據(jù)作算術(shù)平均運(yùn)算作為最新的數(shù)據(jù),即n-2個(gè)值的平均值。這種濾波所濾出的值最平緩、準(zhǔn)確,所以一般采用中位值平均濾波。
第二種:遞推平均濾波
該濾波方法是連續(xù)采集數(shù)據(jù),將采集到的數(shù)據(jù)視為一個(gè)長(zhǎng)度為n的隊(duì)列,當(dāng)采集到新數(shù)據(jù)時(shí),自動(dòng)將隊(duì)首的數(shù)據(jù)踢掉,其他所有數(shù)據(jù)往前移動(dòng)一位,采集到的新數(shù)據(jù)補(bǔ)充至隊(duì)尾,即先進(jìn)先出,隨后將隊(duì)列中的所有數(shù)據(jù)作算術(shù)平均運(yùn)算,運(yùn)算的平均值即為最新的數(shù)據(jù)。
第三種:一階慣性濾波
該濾波是用軟件編程來(lái)代替硬件電路中的RC低通濾波。一階低通濾波法是采用上次濾波輸出的值與本次采樣的值進(jìn)行加權(quán)后作為實(shí)際的有效濾波值,從而使得輸出對(duì)輸入具有反饋?zhàn)饔?。一階低通濾波的公式如下所示:
α為一濾波系數(shù)(取值范圍為,0-1);Xn新采樣值;Yn-1為上次濾波結(jié)果;Yn本次濾波結(jié)果。
為了選取最佳的濾波算法,我分別采用了三種濾波算法對(duì)獲得的加速度計(jì)的數(shù)據(jù)進(jìn)行濾波。通過(guò)對(duì)三種濾波算法的比較,可以看出經(jīng)過(guò)中位值平均濾波法濾波后的數(shù)據(jù)更加的平穩(wěn),因此最后我采用中位值平均濾波法對(duì)采集到的傳感器數(shù)據(jù)進(jìn)行濾波。
圖3 三種不同濾波方法的比較(紅色是遞推中位值平均濾波法,黃色是一階慣性濾波法,藍(lán)色是遞推平均濾波法)
圖4 三種姿態(tài)結(jié)算比較(紅色線條為MPU6050內(nèi)部DMP解算數(shù)據(jù),綠色線條為卡爾曼濾波法解算數(shù)據(jù),黃色線條為互補(bǔ)濾波法解算數(shù)據(jù))
(2)姿態(tài)結(jié)算
本論文利用加速度計(jì)、陀螺儀等慣性傳感器,結(jié)合Arduino微控制器、藍(lán)牙模塊等設(shè)計(jì)了一種基于手臂體感交互技術(shù)的可穿戴裝置。本論文采用的濾波算法和姿態(tài)解算算法結(jié)合,滿足了三維運(yùn)動(dòng)數(shù)據(jù)無(wú)漂移誤差輸出的要求,后期可以優(yōu)化濾波算法和姿態(tài)結(jié)算算法以使結(jié)算的數(shù)據(jù)與實(shí)時(shí)數(shù)據(jù)無(wú)時(shí)延?;隗w感交互技術(shù)的可穿戴裝置將會(huì)是未來(lái)一大發(fā)展主流,期望本論文的設(shè)計(jì)能為基于體感交互技術(shù)的可穿戴裝置提供一定的思考與借鑒。