卞云松
【摘 要】基于手機(jī)傳感器的行為識(shí)別與手勢(shì)識(shí)別研究具有重要理論意義與實(shí)用價(jià)值,怎樣方便初學(xué)者對(duì)手機(jī)里的傳感器進(jìn)行學(xué)習(xí),本文介紹了一種方法。通過用APP Inventor編程,對(duì)智能手機(jī)里的陀螺儀、加速度傳感器進(jìn)行對(duì)比研究。
【關(guān)鍵詞】App Inventor;手機(jī);陀螺儀;加速度傳感器
中圖分類號(hào): TN929.53文獻(xiàn)標(biāo)識(shí)碼: A文章編號(hào): 2095-2457(2019)25-0041-003
DOI:10.19694/j.cnki.issn2095-2457.2019.25.019
Contrastive Study of Gyroscope and Acceleration Sensor Based on App Inventor
BIAN Yun-song
(Jianghai polytechnic, Yangzhou Jiangsu 225000, China)
【Abstract】The research of behavior recognition and gesture recognition based on mobile phone sensor has important theoretical significance and practical value.How to facilitate beginners to learn sensors in mobile phone is introduced in this paper.By programming with APP Inventor,the gyroscopes and accelerometers in smart phones are compared and studied.
【Key words】App Inventor;Mobile Phone;Gyroscope;Acceleration Sensor
0 概述
陀螺儀、加速度傳感器現(xiàn)在應(yīng)用越來越廣,智能手機(jī)上也有這兩種傳感器,如果在手機(jī)上通過編程APP程序來進(jìn)行研究,對(duì)于非計(jì)算機(jī)專業(yè)的人士難度較大。但App Inventor給我們提供了一個(gè)很好的解決方案,這是一款由麻省理工學(xué)院開發(fā)的開源的WEB應(yīng)用軟件,編程過程像搭積木一樣,可以輕松地編出APP應(yīng)用程序,且硬件購置零成本。本文介紹了用App Inventor編程,對(duì)這兩種傳感器進(jìn)行研究的結(jié)果。
1 陀螺儀、加速度傳感器簡(jiǎn)介
陀螺儀測(cè)量的是物體在轉(zhuǎn)動(dòng)時(shí)的轉(zhuǎn)動(dòng)角速度,廣泛用于飛行體運(yùn)動(dòng)的自動(dòng)控制系統(tǒng),比如飛機(jī)、導(dǎo)彈、四旋翼飛行器等的控制。隨著智能手機(jī)的普及,手機(jī)中也裝配了3軸陀螺儀傳感器,可以檢測(cè)相對(duì)X軸、Y軸、Z軸旋轉(zhuǎn)的角速度,用來作為游戲操作、拍照防抖等功能控制信號(hào)。
加速度傳感器又稱G-sensor,是一種能夠測(cè)量加速度的傳感器,傳感器通過對(duì)質(zhì)量塊所受慣性力來測(cè)量加速度。智能手機(jī)中為三軸加速度傳感器,可感應(yīng)x軸、y軸、z軸方向的加速度的變化信號(hào),當(dāng)手機(jī)相對(duì)于水平面傾斜,沿手機(jī)坐標(biāo)系方向重力加速度發(fā)生變化,這樣可以計(jì)算出手機(jī)傾斜角度,可以根據(jù)手機(jī)的位置來控制手機(jī)屏幕是否翻轉(zhuǎn)。
陀螺儀與加速度傳感器是不同的,加速度傳感器無法測(cè)量轉(zhuǎn)動(dòng)動(dòng)作,而陀螺儀可以對(duì)任意方向轉(zhuǎn)動(dòng)、偏轉(zhuǎn)的角速度可以精確測(cè)量,通過積分、卡爾曼濾波等數(shù)學(xué)方法,分析判斷出使用者的實(shí)際動(dòng)作,而后根據(jù)動(dòng)作,手機(jī)做出相應(yīng)的響應(yīng)。
2 APPINVENTOR簡(jiǎn)介
App Inventor,早期是谷歌公司提供的在線編程工具,目前為麻省理工學(xué)院(MIT)負(fù)責(zé)維護(hù)及運(yùn)營。
App Inventor的創(chuàng)建依據(jù)是結(jié)構(gòu)主義的學(xué)習(xí)理論,該理論強(qiáng)調(diào)主動(dòng)學(xué)習(xí),認(rèn)為編寫程序?qū)⒊蔀榧ぐl(fā)強(qiáng)大思想的有效工具。在此理論的影響下,從20世紀(jì)60年代開始,在MIT的Logo小組以及Logo語言發(fā)明人Seymour Papert的積極努力下,一系列與計(jì)算機(jī)及教育有關(guān)的活動(dòng)在整個(gè)美國相繼發(fā)展起來,并一直持續(xù)至今。
App Inventor是一個(gè)可視化,可拖拽的編程工具,用于在Android平臺(tái)上構(gòu)建移動(dòng)應(yīng)用。利用基于web的圖形化的用戶界面生成器,編程不需要面對(duì)復(fù)雜的代碼,而是像搭積木一樣來完成,這讓很多非專業(yè)的人士也能創(chuàng)造出自己的移動(dòng)APP應(yīng)用軟件。
3 傳感器檢測(cè)的手機(jī)APP編程介紹
編程步驟為先登錄服務(wù)器,新建工程后,進(jìn)入編程環(huán)境,主要有兩部分的設(shè)計(jì):一個(gè)是組件設(shè)計(jì),另一部分就是邏輯設(shè)計(jì)。
組件設(shè)計(jì)就是設(shè)計(jì)APP的外觀,在組件設(shè)計(jì)時(shí),主要用到以下幾部分組件:
(1)用戶界面:主要包括按鈕、標(biāo)簽、文本框、復(fù)選框、列表框等。
(2)界面布局:水平布局、表格布局、垂直布局等。
(3)繪圖動(dòng)畫:畫布、圖像精靈等。
(4)傳感器:包括陀螺儀、加速度傳感器、GPS位置傳感器等。
邏輯設(shè)計(jì)就是程序設(shè)計(jì),是用來為各個(gè)模塊編輯邏輯關(guān)系的,選擇模塊組中不同邏輯模塊,拖動(dòng)到工作區(qū),像搭積木一樣進(jìn)行組裝,就可以為為APP編寫代碼。圖3是本APP程序邏輯設(shè)計(jì)的一部分代碼。
通過編程,最后的手機(jī)APP界面如下圖4所示,有兩個(gè)屏幕,一個(gè)屏幕用于顯示陀螺儀輸出數(shù)據(jù),另一個(gè)屏幕用于顯示加速度傳感器數(shù)據(jù)輸出,兩個(gè)屏幕之間可以相互切換。
4 兩種傳感器對(duì)比研究
4.1 陀螺儀信號(hào)分析
圖5是手機(jī)陀螺儀數(shù)據(jù)輸出圖,三張子圖分別表示繞X、Y、Z軸旋轉(zhuǎn)時(shí),陀螺儀同一時(shí)間軸下,繞三個(gè)軸旋轉(zhuǎn)角速度變化的輸出波形圖,縱坐標(biāo)為繞各軸旋轉(zhuǎn)的角速度,輸出信號(hào)當(dāng)值為0時(shí),代表手機(jī)某個(gè)方向的轉(zhuǎn)動(dòng)角速度為0,橫坐標(biāo)為時(shí)間軸。
其中圖5-1,淺紅色曲線數(shù)值發(fā)生劇烈變化是手機(jī)繞X方向有轉(zhuǎn)動(dòng)時(shí)的信號(hào)輸出,也即是手機(jī)下短邊置于水平面上,如圖6所示,手機(jī)繞X軸前后轉(zhuǎn)動(dòng)。這一時(shí)刻時(shí)只有X方向轉(zhuǎn)動(dòng)角速度,其中正值為正方向角速度,負(fù)值為反方向轉(zhuǎn)動(dòng),由圖5可看到,此時(shí)繞Z軸、Y軸方向角速度波動(dòng)較小。
以上波形是分別繞單個(gè)坐標(biāo)軸輸出的波形,在實(shí)際使用手機(jī)過程中,經(jīng)常會(huì)有幾個(gè)方向的轉(zhuǎn)動(dòng)同時(shí)發(fā)生。
4.2 加速度傳感器信號(hào)分析
圖7是手機(jī)加速度傳感器同一時(shí)間軸,X、Y、Z方向的重力加速度變化波形圖。時(shí)刻0,手機(jī)水平放置,Z軸垂直于水平面向上,Z軸方向承受最大重力加速度,輸出約為9.8m/s2,此時(shí),X、Y方向重力加速度為0;時(shí)刻1,手機(jī)繞短邊(X軸)抬起,當(dāng)手機(jī)豎向垂直于水平面時(shí),Z軸方向輸出變?yōu)?,Y軸方向加速度最大;時(shí)刻2,繼續(xù)旋轉(zhuǎn)至Z軸指向垂直向下時(shí),Z軸方向?yàn)樨?fù)的最大值;時(shí)刻3,為手機(jī)橫向垂直于水平面,這時(shí)X方向重力加速度最大。
4.3 手機(jī)直線運(yùn)動(dòng)時(shí),兩種傳感器輸出比較
圖8左圖,為手機(jī)直線運(yùn)動(dòng)時(shí),陀螺儀輸出波形,由于相對(duì)各坐標(biāo)軸未發(fā)生轉(zhuǎn)動(dòng),陀螺儀輸出值基本為0;當(dāng)加速度傳感器在做直線勻速運(yùn)動(dòng)時(shí),傳感器也無輸出,但當(dāng)做加速、減速直線運(yùn)動(dòng)時(shí),有信號(hào)輸出,也可以觀察手機(jī)自由落體時(shí)輸出信號(hào)的變化。圖8右圖為手機(jī)分別在X、Y方向做直線方向做往復(fù)加減速運(yùn)動(dòng)時(shí),加速度傳感器輸出波形。如對(duì)比圖8。
4.4 手機(jī)繞垂直于水平面的坐標(biāo)軸作旋轉(zhuǎn)運(yùn)動(dòng)時(shí),兩種傳感器輸出比較
將手機(jī)平放在水平面上,Z軸垂直于水平面,繞Z軸來回旋轉(zhuǎn),兩種傳感輸出波形見圖9。左圖為陀螺儀輸出波形,繞Z軸旋轉(zhuǎn),可看到繞Z軸方向角速度的變化;右圖為加速度傳感器輸出波形,由于手機(jī)水平放置,繞Z軸旋轉(zhuǎn),X、Y、Z軸方向的直線加速度沒有變化。
5 總結(jié)
通過以上分析,陀螺儀傳感器可檢測(cè)手機(jī)繞三個(gè)坐標(biāo)軸旋轉(zhuǎn)的角速度,加速度傳感器可以感測(cè)三個(gè)坐標(biāo)方向的慣性加速度大小。兩種傳感器配合,可以較好的獲得手機(jī)的姿態(tài)信息,但對(duì)于測(cè)量手機(jī)直線方向的位移,及精確手機(jī)定位,還得要依靠GPS等手段。
本論文用App Inventor在線編程,可以充分利用手機(jī)里的硬件資源來學(xué)習(xí)、創(chuàng)新。比如,可以利用手機(jī)里的藍(lán)牙、WIFI等通訊工具來與單片機(jī)通訊,用手機(jī)里的陀螺儀、加速度傳感器等資源的信息控制電機(jī)、電器等,為創(chuàng)新創(chuàng)業(yè)打開一個(gè)新思路。
【參考文獻(xiàn)】
[1]寫給大家看的安卓應(yīng)用開發(fā)書:App Inventor 2快速入門與實(shí)戰(zhàn)[M].人民郵電出版社,沃爾貝(David Wolber),2018.
[2]黃仁祥.人人都能開發(fā)安卓App[M].機(jī)械工業(yè)出版社,2014.
[3]蔡艷桃.Android App Inventor項(xiàng)目開發(fā)教程[M].人民郵電出版社,2014.
[4]王向輝.可視化開發(fā)Android應(yīng)用程序[M].清華大學(xué)出版社,2014.
[5]盧劉斌,劉宏建,金笑天,國德峰.基于智能手機(jī)傳感器的人體活動(dòng)識(shí)別[J].計(jì)算機(jī)工程與應(yīng)用,2016(04).
[6]陸文英,胡海榮.基于手機(jī)多傳感器數(shù)據(jù)融合的測(cè)步長算法[J].電子科技,2018(12).
[7]陳雷,楊杰,沈紅斌,王雙全.基于加速度信號(hào)幾何特征的動(dòng)作識(shí)別[J].上海交通大學(xué)學(xué)報(bào),2008(02).