導航:首頁 > 源碼編譯 > 安卓計步演算法

安卓計步演算法

發布時間:2022-06-21 06:03:36

Ⅰ 手機是如何計步的

一些比較古老的測量記不清部署的工具通常都是一些機械的計步器,而這些計步器的工作原理有些類似於我們的老的擺錘,在人們走路的時候記不記得擺錘就晃,系不系就會記錄下走到這一步而隨著後來科學的發展,智能手機裡面用的計步器已經比這種擺錘先進了不少。

同時現在這些基本軟體的另一個好處就是可以讓你和你的朋友之間產生一個競爭,同時這種良性競爭也可以幫助你們更好的在每天上下班的路上多走一些路,可以起到鍛煉身體的作用,並且還可以在社交網站上上傳自己的成績,促進了人們運動的積極性。

Ⅱ 我要用計步功能,如何實現

計步器讀取手機感測器(讀取三軸陀螺儀數據)收集的數據,進行二次解讀和演算法的過程。因為行走時人體做垂直運動,就會有個加速度,檢測加速度峰值從而記步。至於准確與否取決於感測器靈敏度及軟體分析 重力感測器: 原理:利用壓電效應實現,感測器內部一塊重物和壓電片整合在一起,通過正交兩個方向產生的電壓大小,來計算出水平方向。 用途:手機橫豎屏智能切換、拍照照片朝向、重力感應類游戲(如滾鋼珠)。 加速度感測器 原理:與重力感測器相同,也是壓電效應,通過三個維度確定加速度方向,但功耗更小,但精度低。 用途:計步、手機擺放位置朝向角度。 個人使用過魅族MX4、PRO6,兩款都支持計步。華為P7不支持計步。從參數上看,計步功能是霍爾感測器的功勞? P7:重力感應器,光線感測器,距離感測器,陀螺儀 MX4:重力感應器,光線感測器,觸摸感應器,環境色溫感應器,霍爾磁感應器,紅外距離感應器,陀螺儀,電子羅盤 PRO6:霍爾磁感應、 重力感應、紅外距離感應、陀螺儀、環境光度感應、觸摸感應、電子羅盤、氣壓計(支持高度) 拿陀螺儀計步的是比較低級的計步功能,具體表現就是把手機拿在手裡搖一搖也會計步。 高級一些的是拿「加速度計」來採集數據,准確度會有所提高。當然最好的還是兩者結合使用,單獨使用各有利弊。 多說一點:安卓手機因為系統原因,鎖屏的時候可能將後台的進程(應用)殺死,所以有時候鎖屏的時候,沒有計上就是這個原因。 其實手機計步器也沒有什麼特殊的,它只是在手機中作為一類感測器進行使用,下面給你列出計步演算法相關的感測器: 1、Sensor_ TYPE_ACCELEROMETER 加速度感測器,單位是m/s2,測量應用於設備X、Y、Z軸上的加速度 感測器類型值(Sensor Type):1 (0x00000001) 2、Sensor_ TYPE_STEP_DETECTOR 步行檢測感測器,用戶每走一步就觸發一次事件 感測器類型值(Sensor Type):18 (0x00000012) 3、Sensor_ TYPE_STEP_COUNTER 計步感測器 感測器類型值(Sensor Type):19 (0x00000013) 一般來說,如何判斷某款手機是否支持自帶計步器,一個方法即可實現: /** * Returns true if this device is supported. It needs to be running android KitKat (4.4) or * higher and has a step counter and step detector sensor. * This check is useful when an app provides an alternative implementation or different * functionality if the step sensors are not available or this code runs on a platform version * below Android KitKat. If this functionality is required, then the minSDK parameter should * be specified appropriately in the AndroidManifest. * * @return True iff the device can run this sample */public static boolean isKitkatWithStepSensor(Context cxt) { // Require at least Android KitKat int currentApiVersion = android.os.Build.VERSION.SDK_INT; // Check that the device supports the step counter and detector sensors PackageManager packageManager = cxt.getPackageManager(); return currentApiVersion >= android.os.Build.VERSION_CODES.KITKAT&& packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_STEP_COUNTER) && packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_STEP_DETECTOR); } 根據Google官方發布的Androd版本,在Android4.4以後的版本應該要封裝StepListener,至於為什麼有的國產手機在測試時出現的種種問題,我只在實事求是的這里說明一下,並不針對某個品牌! 測試結果: 華為P9:不帶計步器,不能使用Sensor_DETECTOR或者Sensor_COUNTER進行計步,並不知道為什麼華為手機裡面自帶的計步軟體為何使用正常,估計是把介面封死了,只能自己的應用使用! 魅族MX4-Pro:雖然自帶計步器,但是Sensor_DETECTOR中去取vales[0]時,正常應返回1.0,代表正常走一步,但是測試時一直返回0.0,注意:這不是表情,這是0,一直為0!現象比較奇怪吧,所以我又換成Sensor_COUNTER,返回值有時為:第100步,返回100;第101步,返回90;第102步,返回91,然後又恢復正常累加。 三星S7-Edge:自帶計步器,且計步相對准確,兩種計步方式都可以使用,一直以它為其他手機的參考。 Google Nexus6:自帶計步器,准確度與三星的基本保持一致,未出現特殊錯誤。 以上為手機的測試結果,因為手裡就這幾塊手機,所以測試的寬容度有點低,也希望大家能夠了解計步器這個東東也沒有什麼特殊的,只是一個感測器而已,裡面專門對走路的數據進行封裝最後傳遞出來,不用我們自己通過三軸陀螺儀測波峰波谷來判斷是否為一個有效的一步,這就大大簡化了我們開發者的工作。 還是希望全部的手機廠商能夠按照Google的設計來,如果把某些介面封了,你可以給一個說明什麼的吧,什麼也不說,什麼也不給,這種態度有點問題 再次確認:華為P9隻攜帶StepCounter,沒有StepDetector。而且在屏幕關閉後StepCounter不會繼續工作,估計是為了省電,現在項目裡面華為手機全部為模擬計步了。

Ⅲ Android 微信運動中的的步數是怎麼實現的

工具:安卓手機、微信

  1. 首先安卓手機的版本最好在4.4版本以上,可以在手機的 設置->關於手機中查看,沒有升級的建議升級系統;


Ⅳ 華為手機計步工作原理

工作原理是工作核心就是震動感測器,一般根據感測器的形式可分為2D計步器和 3D 計步器。 按功能分又可以分為單功能計步器, 計步器手錶, 脂肪測量計步器等等。

手機型就是使用手機內的應用或微信內工具進行記步。用戶可以不用購買任何計步器設備,直接手機就能使用計步器功能。跑步愛好者可以通過手機設置自己的身高、體重、年齡等數據,直接通過菜單功能開啟計步器,就能統計跑步的步數了。

計步器一種計量工具,是通過統計步數、距離、速度、時間等數據,測算卡路里或熱量消耗,用以掌控運動量,防止運動量不足,或運動過量。計步器主要由震動感測器和電子計數器組成,人在步行時重心都要有一點上下移動,以腰部的上下位移最為明顯,所以記步器掛在腰帶上最為適宜。

(4)安卓計步演算法擴展閱讀:

計步器注意事項:

合格判斷:

1、判斷一款機械式振動感測計步器計步是否准確,需保持計步器機身同水平面垂直,並輕輕的用力使計步器上下擺動,擺動距離大約為3~5厘米最為合適。此時計步器需百分百正確才為合格。

2、判斷一款3D振動感測(重力加速度感測)計步器計步是否准確,捏住機身,使機身最為扁平的平面同水平面平行,並輕輕的用力使計步器上下擺動,觀察計數。

參考資料來源:網路-計步器

Ⅳ 哪位技術大神能分析微信運動Android版本計步演算法嗎

在知乎上引用答案 我再自己理解一下
是根據水平陀螺儀、重力感應器等硬體根據一定演算法算出來的。

資料來源https://www.hu.com/question/19808224

Ⅵ 手機計步app的實現原理是怎樣的精確度如何

原理最主要通過加速度感測器來感知水平垂直左右方向的加速度變化。手環的優勢是位置固定在手上,做計步應用場景時相對來說演算法比較好寫,缺點在於低功耗,CPU計算能力和內存大小限制了演算法的復雜度。手機和手環比較起來是位置不固定,所以計步演算法相對要復雜的多,優點是CPU強大,內存容量以G為單位,所以演算法復雜度要強大很多,另外可以結合GPS來綜合判斷。另外想說大多數手環是沒有GPS的。

Ⅶ 為什麼安卓系統每一個軟體的步數都是不同的

每個計步軟體,他們用的計步演算法都是不一樣的模式

Ⅷ 手機計步器的原理是什麼

電子計步器的工作核心就是振動感測器,一般根據感測器的形式可分為2D計步器和 3D 計步器。 按功能分又可以分為單功能計步器, 計步器手錶, 脂肪測量計步器等等。由於機械運動是物質運動的最簡單的形式,因此人們最先想到的是用機械方法測量振動,從而製造出了機械式測振儀(如蓋格爾測振儀等)。

感測器的機械接收原理就是建立在此基礎上的。相對式測振儀的工作接收原理是在測量時,把儀器固定在不動的支架上,使觸桿與被測物體的振動方向一致,並借彈簧的彈性力與被測物體表面相接觸。

當物體振動時,觸桿就跟隨它一起運動,並推動記錄筆桿在移動的紙帶上描繪出振動物體的位移隨時間的變化曲線,根據這個記錄曲線可以計算出位移的大小及頻率等參數。



(8)安卓計步演算法擴展閱讀

手機型計步器使用手機內的應用或微信內工具進行記步。用戶可以不用購買任何計步器設備,直接手機就能使用計步器功能。跑步愛好者可以通過手機設置自己的身高、體重、年齡等數據,直接通過菜單功能開啟計步器,就能統計跑步的步數。

由於人體無時無刻不在動的狀態,而每一次稍大的動作或者乘坐的交通工具的震動都會觸發計步器內的運動感測器。計步器為了盡量減少記錄這些人體的無效移動,採用了緩存技術。

就是從靜止狀態開始記錄的人體動態次數都放置在計步器的臨時緩存中,如果連續動態次數超過設定值,則開始記錄步數。 反之計步器在若干秒鍾之後會將緩存中的步數清零。

一般2D計步器由於寄存器的局限通常採用5步緩存, 3D計步器一般採用10步緩存, 計步器手錶也一般採用10步緩存技術並加入了手工暫停計步模式以達到最佳糾錯效果。

Ⅸ 手機計步器不計步了,解決久法!

不一定是手機壞了。
計步演算法可以分為四大類,一是峰值檢測演算法,二是變換域演算法,三是濾波演算法,四是模式識別演算法。根據所設計的計步器在人體上布放的位置不同,如腕部、腰部、鞋底等,可以選擇不同的計步演算法。

峰值檢測類演算法原理簡單,易於實現,應用較為廣泛。這里簡單介紹峰值檢測類演算法。用戶在運動中,可能把設備放置於口袋或者包中,亦或拿在手中。所以設備的放置方向不確定。那麼首先,我們通過計算三個加速度的矢量長度,可以獲得一條步行運動的正弦曲線軌跡。

第二步就是峰值檢測,我們記錄了上次矢量長度和運動方向,通過矢量長度的變化,可以判斷當前加速度的方向,並和上一次保存的加速度方向進行比較。如果是相反的,即是剛過峰值狀態,則進入計步邏輯進行計步,否則就舍棄這段。通過對峰值次數的累加,那我們就可得計算得到用戶步行的步數。

最後,就是去噪音(干擾)。手機或智能手錶等手持設備會有一些低幅度和快速的抽動狀態,即我們俗稱的手抖,或者某個用戶想通過短時快速反復搖動設備來模擬人走路,這些干擾數據如果不剔除,會影響記步的准確值,對於這種干擾,我們可以通過給檢測加上閥值和步頻判斷來過濾。目前人類最快的跑步頻率為5HZ(當然不排除人類藉助其它設備跑步頻率超過這個頻率),也就是說相鄰兩步的時間間隔的至少大於0.2秒,如圖中的計步時間,若兩次計步之間的時間間隔小於0.2秒,則不計步。這樣我們就過濾了高頻雜訊,即步頻過快的情況。同時我們通過和上次加速度大小進行比較,設置一定的閥值Threshold來判斷運動是否屬於有效(如圖中的綠線),有效運動才可進行記步。

如果已知步行和跑步的步數,那麼再通過人體身高,體重及性別就可以大致知道此人的步長,改進後即可變成一個測距離及測速計。通過三軸加速度感測器,我們可以知道用戶的運動狀態。除了計步,還可以利用加速度感測器與陀螺儀及磁感測器融合進行步行航跡推算。

Ⅹ 手機上的計步功能是怎麼實現的

封閉期最後半個月由於特殊原因,工作比較繁忙,更新比較慢了。讓大家久等了!

昨天(4月23日)是世界讀書日,也是大同市高三學生解除一個月的封閉學習的日子,值得紀念。

手機是如何實現計步的?

昨天指揮學生撤離等工作中,我居然走了35347步,前天也走了25595步連續兩天蟬聯自己朋友圈微信運動第1名。





手機是如何實現計步功能的,其中的基礎原理是什麼呢?用中學物理知識能解釋一二嗎?

有時我們乘坐飛機、火車、汽車以很高的速度走很遠的路,手機也記錄不了多少步數,這是怎麼回事呢?

人的行走

通常中學物理中描述人走步或者跑步等運動都按「勻速直線運動」處理的。因為中學階段研究的運動主要是平動,把人看成了質點。但是要研究手機計步這個問題,人的高矮,走路的姿態在所研究的問題中就是主要因素,這樣人就不能看成質點了。



人走步時身體的重心在不停的變化著,而且人在走步時也不是嚴格的勻速運動,而是不停的加速減速運動。人在開始邁步時可以近似地看做加速運動,當腳落地時,又可以看做減速運動,深究細節是很復雜的運動。

手機測量哪個物理量呢?

現在的智能手機裡面有一個非常小的晶元,叫三軸加速度感測器,通過這個感測器可以測量手機在三個不同的方向上(三維坐標系)的加速度,然後通過這個加速度的值進行一些演算法的運算(要想了解這一步,那得進行深度學習啦),最後進行統計就可以測出來走步的大約步數了。

當然這里最後的結果會存在一些誤差的。



在加速度感測器中有一種特殊的材料,叫壓電陶瓷材料,根據作用在上面的力的大小產生不同的形變,就可以產生不同的電壓的變化,就可以通過作用在上面的力來測量出加速度,然後通過加速度能夠判斷出這個人是走路的時候,他是在哪個方向進行運動,或者說頻率大概是多少。

怎麼避免人站在原地拿著手機時晃動,誤測步數呢?

人走路的時候,頻率一定是在某一個范圍之內的,比方說一秒鍾跨出多少步,或者說一分鍾只能走出多遠。如果是人的手拿著手機在晃的話,第一晃的頻率會非常的快,第二拿著手機晃的時候,加速度變化是比人在走路的加速度變化要大的多的,基本上通過這兩個方面,能夠判斷出來到底是人拿著手機在晃,還是真正的一個人在走。

當然利用手機檢測人走路的步數,終究會有偏差,微信運動剛開始流行時,有人為了刷步數,到了晚上「騙」手機,模擬走步姿態晃手機,確實可以增加步數。現在某些網路平台還售賣專門給懶人設計的刷步數的神器。



我很好奇什麼人願意為此買單,為此我還專門看了看評論,頓時感覺世界真大,無奇不有,不能以自己的想法去想這個世界。

閱讀全文

與安卓計步演算法相關的資料

熱點內容
伺服器出現兩個IPV4地址 瀏覽:844
宜興雲存儲伺服器 瀏覽:221
如何開放遠程伺服器上的埠號 瀏覽:67
大規模單片機廠家供應 瀏覽:952
3dmax編輯樣條線快捷命令 瀏覽:708
怎麼獲得音樂的源碼 瀏覽:249
郭麒麟參加密室完整版 瀏覽:318
單片機排線怎麼用 瀏覽:483
java字元串太長 瀏覽:868
python變數計算 瀏覽:115
網銀pdf 瀏覽:134
iponedns伺服器怎麼設置復原 瀏覽:405
深圳電力巡檢自主導航演算法 瀏覽:436
十二星座的布娃娃怎麼買app 瀏覽:321
反編譯打包地圖不顯示 瀏覽:92
沒有壓縮的圖片格式 瀏覽:468
斯維爾文件需不需要加密狗 瀏覽:300
柱加密區范圍在軟體中設置 瀏覽:706
紙質音樂壓縮教程 瀏覽:33
安卓手機健康碼快捷方式怎麼設置 瀏覽:477