亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android平臺(tái)傳感器技術(shù)的運(yùn)動(dòng)監(jiān)測(cè)應(yīng)用

        2017-03-24 06:07:21劉小安彭濤賈杉杉
        電腦知識(shí)與技術(shù) 2017年1期

        劉小安+彭濤+賈杉杉

        摘要:隨著Android手機(jī)的普及和研究者對(duì)其在日常生活中功能的拓展挖掘,Android手機(jī)的功能已經(jīng)不再是單純用于通話,而漸漸滲透到人們?nèi)粘I畹母鱾€(gè)方面。該文以運(yùn)動(dòng)監(jiān)測(cè)作為切入點(diǎn),利用Android平臺(tái)提供的傳感器接口,設(shè)計(jì)了一款基于Android平臺(tái)傳感器技術(shù)的運(yùn)動(dòng)監(jiān)測(cè)應(yīng)用,從而實(shí)現(xiàn)計(jì)步,俯臥撐計(jì)數(shù)等運(yùn)動(dòng)數(shù)據(jù)記錄功能。

        關(guān)鍵詞:Android;傳感器技術(shù);運(yùn)動(dòng)監(jiān)測(cè)

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)01-0063-04

        1 背景

        隨著基于Android平臺(tái)的手機(jī)的普及和研究者對(duì)其在日常生活中功能的拓展挖掘,以及基于Android平臺(tái)的手機(jī)所配備的硬件(如:光線傳感器、壓力傳感器)日益豐富,Android手機(jī)的功能已經(jīng)不再是單純用于通話,而漸漸滲透到人們?nèi)粘I畹母鱾€(gè)方面,例如:家居控制、運(yùn)動(dòng)監(jiān)測(cè)。在運(yùn)動(dòng)監(jiān)測(cè)功能中,需要充分利用Android平臺(tái)給開發(fā)者提供的接口以及手機(jī)本身所配備的豐富的硬件,獲取用戶的運(yùn)動(dòng)基礎(chǔ)數(shù)據(jù),并通過相關(guān)算法進(jìn)行加工和處理,從而實(shí)現(xiàn)通過手機(jī)對(duì)用戶運(yùn)動(dòng)進(jìn)行監(jiān)測(cè)和數(shù)據(jù)記錄。

        本文將簡(jiǎn)要介紹Android平臺(tái)為開發(fā)者所提供的傳感器接口以及簡(jiǎn)單的調(diào)用方法,并在此基礎(chǔ)上設(shè)計(jì)一款運(yùn)動(dòng)監(jiān)測(cè)應(yīng)用,實(shí)現(xiàn)對(duì)用戶計(jì)步、俯臥撐計(jì)數(shù)等運(yùn)動(dòng)記錄功能。

        2 Android平臺(tái)傳感器

        在Android2.3 gingerbread系統(tǒng)中,Google公司提供了11種傳感器供應(yīng)用層使用。分別是:

        #define SENSOR_TYPE_ACCELEROMETER 1 //加速度傳感器

        #define SENSOR_TYPE_MAGNETIC_FIELD 2 //磁力傳感器

        #define SENSOR_TYPE_ORIENTATION 3 //方向傳感器

        #define SENSOR_TYPE_GYROSCOPE 4 //陀螺儀傳感器

        #define SENSOR_TYPE_LIGHT 5 //光線感應(yīng)傳感器

        #define SENSOR_TYPE_PRESSURE 6 //壓力傳感器

        #define SENSOR_TYPE_TEMPERATURE 7 //溫度傳感器

        #define SENSOR_TYPE_PROXIMITY 8 //距離傳感器

        #define SENSOR_TYPE_GRAVITY 9 //重力傳感器

        #define SENSOR_TYPE_LINEAR_ACCELERATION 10//線性加速度傳感器

        #define SENSOR_TYPE_ROTATION_VECTOR 11//旋轉(zhuǎn)矢量傳感器

        2.1 傳感器分類

        以上11種傳感器可分為3類:

        1)位移傳感器,這些傳感器測(cè)量沿三個(gè)軸線測(cè)量加速度和旋轉(zhuǎn)。(包含加速度、線性加速度、重力、陀螺儀和旋轉(zhuǎn)矢量傳感器)

        2)環(huán)境傳感器 ,這些傳感器測(cè)量各種環(huán)境參數(shù),例如周圍的空氣溫度和壓力,光線,和濕度。(包含壓力,光線和溫度傳感器)

        3)位置傳感器,這些傳感器測(cè)量設(shè)備的物理位置。(包含距離、方向和磁力傳感器)

        2.2 傳感器使用

        以上11種傳感器使用方法類似,本文僅以加速度傳感器為例。

        1)Android所有的傳感器都?xì)w傳感器管理器 SensorManager 管理,首先獲取傳感器管理器

        SensorManager SensorManager = (SensorManager)getSystemService(Context,SENSOR_SERVICE);

        2)從傳感器管理器中獲取需要的傳感器

        Sensor Speed = SensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

        3)實(shí)現(xiàn)傳感器監(jiān)聽方法

        private SensorEventListener speedListener = new SensorEventListener(){

        @Override

        public void onAccuracyChanged(Sensor arg0, int arg1) {}

        @Override

        public void onSensorChanged(SensorEvent event) {

        float x = event.values[SensorManager.DATA_X];

        float y = event.values[SensorManager.DATA_Y];

        float z = event.values[SensorManager.DATA_Z];

        };

        4)注冊(cè)傳感器

        SensorManager.registerListener(speedListener,Speed,SensorManager.SENSOR_DELAY_NORMAL);

        5)注銷傳感器監(jiān)聽

        SensorManager.unregisterListener(speedListener);

        3 運(yùn)動(dòng)監(jiān)測(cè)應(yīng)用設(shè)計(jì)

        應(yīng)用的整體架構(gòu)如圖1所示:

        3.1 客戶端

        采用Fragment+Viewpager作為基本UI框架,通過異步任務(wù)和多線程技術(shù)來實(shí)現(xiàn)訪問服務(wù)器;通過Handler、BroadcastReceiver動(dòng)態(tài)更新UI;通過Content Provider來實(shí)現(xiàn)不同Activity以及線程中數(shù)據(jù)的共享;通過Service來定時(shí)更新用戶的位置信息。在運(yùn)動(dòng)監(jiān)測(cè)的過程中,根據(jù)不同運(yùn)動(dòng)的特點(diǎn),運(yùn)用不同的傳感器接口來實(shí)現(xiàn)運(yùn)動(dòng)監(jiān)測(cè)。

        3.2 服務(wù)端

        采用Servlet+MySQL的基本框架,使用阿里云服務(wù)器作為應(yīng)用的服務(wù)器,來實(shí)現(xiàn)與客戶端的交互、數(shù)據(jù)訪問以及操作處理。數(shù)據(jù)存儲(chǔ)采用MySQL開源數(shù)據(jù)庫,通過JDBC來實(shí)現(xiàn)Servlet與MySQL數(shù)據(jù)庫之間的數(shù)據(jù)傳輸。

        服務(wù)端和客戶端的數(shù)據(jù)交互通過JSON來進(jìn)行封裝,從而便于解析處理。

        3.3 運(yùn)動(dòng)檢測(cè)算法設(shè)計(jì)

        1)計(jì)步監(jiān)測(cè)

        考慮到用戶在運(yùn)動(dòng)過程中運(yùn)動(dòng)速度相對(duì)規(guī)律,本文采用加速度傳感器來實(shí)現(xiàn)計(jì)步功能。首先通過Android加速度傳感器接口獲取到運(yùn)動(dòng)過程中所產(chǎn)生的基礎(chǔ)數(shù)據(jù);然后對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行其可視化,繪制x-y-z加速度與時(shí)間的圖像,如圖2、圖3所示:

        由于篇幅限制,上兩張圖展示的是運(yùn)動(dòng)過程中較為典型的兩張圖像,其中圖2和圖3的最大差別在于圖2中X軸的曲線特征較為清晰的表現(xiàn)出了跑步的特征,而在圖3中y軸的特征較為清晰的表現(xiàn)了運(yùn)動(dòng)的特征。而造成這一差別的原因在于用戶在跑步過程中,手機(jī)所放置的位置。

        經(jīng)過一系列不同速度、不同手機(jī)放置位置的測(cè)試和圖像對(duì)比后,發(fā)現(xiàn)不管用戶的手機(jī)如何放置,在運(yùn)動(dòng)過程中,X\Y\Z軸的圖像總有至少一個(gè)是表現(xiàn)為近似周期性震蕩曲線,并且曲線的峰值基本和用戶跑步的步數(shù)是一致的。但是在用戶以不同速度跑步時(shí),這個(gè)峰值的大小是有區(qū)別的。

        因此,為了實(shí)現(xiàn)計(jì)步監(jiān)測(cè)功能,筆者需要找到一個(gè)閾值,用于過濾出反應(yīng)運(yùn)動(dòng)步數(shù)特征的有效值。為此筆者進(jìn)行了一些測(cè)試,選取了展現(xiàn)相對(duì)靜止時(shí)x-y-z加速度與時(shí)間的典型圖像,如圖4、圖5所示:

        通過對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行對(duì)比分析,筆者最終選定閥值如表1所示:

        算法實(shí)現(xiàn):

        float x = event.values[SensorManager.DATA_X];

        float y = event.values[SensorManager.DATA_Y];

        float z = event.values[SensorManager.DATA_Z];

        if(Math.abs(x)>14.3||Math.abs(x)>14.2

        ||Math.abs(x)>14.5)

        stepCount++;

        //一段計(jì)錄結(jié)束后

        stepCount = stepCount/2;

        2)俯臥撐監(jiān)測(cè)

        通過對(duì)俯臥撐運(yùn)動(dòng)特點(diǎn)的分析,筆者發(fā)現(xiàn),在做俯臥撐的過程中,胸部位置所對(duì)應(yīng)的地面位置光線強(qiáng)度變化明顯,因此選擇采用光線傳感器來實(shí)現(xiàn)俯臥撐計(jì)數(shù)。示意圖如圖6、7所示:

        確定放置位置之后,筆者采集了做俯臥撐過程中光線傳感器的基礎(chǔ)數(shù)據(jù)值,并繪制了光線強(qiáng)度與時(shí)間的圖像,如圖8所示:

        通過光線強(qiáng)度與時(shí)間的圖像可以看出,俯臥撐運(yùn)動(dòng)過程中,光線傳感器的變化是非常規(guī)律的并且能夠很清晰的反應(yīng)光線俯臥撐的個(gè)數(shù),即在停止過程中光線強(qiáng)度不變;在俯臥撐下降過程中,光線強(qiáng)度逐漸減小到特定值;在俯臥撐上升過程中逐漸增加到特定值。這種清晰的曲線特點(diǎn)使得俯臥撐計(jì)數(shù)變得相對(duì)簡(jiǎn)單。

        通過對(duì)圖像的分析,發(fā)現(xiàn)和計(jì)步監(jiān)測(cè)類似的,也需要從數(shù)據(jù)中找到一個(gè)閥值,用于區(qū)分是否觸發(fā)記錄一個(gè)俯臥撐。經(jīng)過一系列的實(shí)驗(yàn),綜合考慮了外界光照環(huán)境及人體區(qū)別,本文最終選定閥值為5。

        算法實(shí)現(xiàn):

        //整型處理

        light= (int) event.values[0];

        if(light<5){

        pushUpCount++;

        }

        //記錄結(jié)束后,Count除2

        pushUpCount = pushUpCount/2;

        3.4 界面設(shè)計(jì)

        為了給用戶以更好的體驗(yàn),本運(yùn)動(dòng)監(jiān)測(cè)應(yīng)用采用簡(jiǎn)潔清晰的界面設(shè)計(jì)風(fēng)格,突出主體,簡(jiǎn)單易用。圖9、圖10為應(yīng)用部分效果圖。

        4 安裝及測(cè)試

        本運(yùn)動(dòng)監(jiān)測(cè)應(yīng)用是基于Android 2.1及以上版本平臺(tái)的手機(jī)應(yīng)用軟件。本文將該應(yīng)用安裝在了Nexus5、三星s5等型號(hào)的手機(jī)上,并進(jìn)行了測(cè)試。經(jīng)過測(cè)試,俯臥撐數(shù)量監(jiān)測(cè)誤差在正負(fù)兩個(gè)以內(nèi);步數(shù)監(jiān)測(cè)效果穩(wěn)定性一般,在慢跑狀態(tài)下誤差較小,在步行條件下誤差不穩(wěn)定。

        5 結(jié)束語

        本應(yīng)用基于Android平臺(tái)所提供的傳感器API以及Android手機(jī)上常用的加速度傳感器和光線傳感器,通過對(duì)傳感器數(shù)據(jù)進(jìn)行分析,實(shí)現(xiàn)了記步監(jiān)測(cè)以及俯臥撐監(jiān)測(cè)。隨著手機(jī)傳感器的日益豐富,可以用于監(jiān)測(cè)用戶行為的傳感器將日益增加,因此傳感器選擇以及算法都可以進(jìn)一步改進(jìn),使得監(jiān)測(cè)結(jié)果更加準(zhǔn)確。

        參考文獻(xiàn):

        [1] 陳曦, 梁曄. 基于Android的“樂動(dòng)我心”手機(jī)應(yīng)用軟件設(shè)計(jì)與實(shí)現(xiàn)[J]. 科技廣場(chǎng), 2013(10): 239-243.

        [2] 馬小軍, 王滿. 基于Android平臺(tái)的手機(jī)學(xué)吉他軟件的開發(fā)[J]. 北京聯(lián)合大學(xué)學(xué)報(bào): 自然科學(xué)版, 2012, 26(1): 28-32.

        [3] 孫富宗, 梁曄. 基于Android平臺(tái)的人性化超市輔助系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 科技廣場(chǎng), 2013(9): 234-238.

        [4] 丁玨. 基于Android微心理App系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 電腦知識(shí)與技術(shù), 2016, 12(8): 56-57.

        一二区成人影院电影网| 99国产超薄丝袜足j在线观看| 无码熟熟妇丰满人妻啪啪| 精品熟女少妇免费久久| 人妻中文字幕一区二区二区| 日本老熟妇五十路一区二区三区| 成人自拍一二在线观看| 亚无码乱人伦一区二区| 丰满熟女高潮毛茸茸欧洲视频| 双乳被一左一右吃着动态图| 国产高潮刺激叫喊视频| 精品无码AⅤ片| 人妻系列无码专区久久五月天| 日本国主产一区二区三区在线观看 | 亚洲国产精品一区二区第四页| av大片在线无码永久免费网址| 国产色婷亚洲99精品av网站| 亚洲综合网国产精品一区| 国产不卡视频一区二区三区| 国产如狼似虎富婆找强壮黑人| 日日摸夜夜添无码无码av| 一区在线播放| 色综合久久人妻精品日韩| 国产激情视频在线观看大全| 综合色区亚洲熟妇另类| 欧美日韩国产成人高清视| 亚洲成人av一区二区三区| 农村国产毛片一区二区三区女| 亚洲国产精品成人av网| 天天天天躁天天爱天天碰2018| 国农村精品国产自线拍| 亚洲AV永久天堂在线观看| 国产精品女同久久久久久| 女同在线视频一区二区| 国产伦一区二区三区色一情| 少妇私密会所按摩到高潮呻吟| 中文字幕精品无码一区二区| 无码AⅤ最新av无码专区| 亚洲第一黄色免费网站| 欧美成人片在线观看| 麻豆国产成人av高清在线观看|