卞云松



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