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