計步演算法
Ⅰ 手機怎麼計算步數
第一點:根據陀螺儀計算
可能很多的用戶都了解這個陀螺儀,在我們現在玩兒的比較多的吃雞游戲中,有一種操作就是使用陀螺儀,通過手機的角度來進行操作。那麼手機中存在的這一種陀螺儀也是跟游戲中的陀螺儀一樣,利用檢測手機的角度來進行判斷我們人體重心的偏移。因為我們人在走路的時候身體是一個活動的狀態,不管手機是放在手機裡面還是口袋裡面,都是會隨著走路的步伐而變動的,所以這也是一個計算我們每天行走多少步數的一個關鍵。如果說你的手機沒有辦法計算步數的時候,那麼很有可能就是手機中的這個陀螺儀壞掉了。
第二點:根據加速度感測器計算
在很多低端的手機中使用的就是這一個來計算我們平時行走的步數,這是根據我們平時在走路的時候位置的變化以及速度的變化來測試走路的步數,因為我們人在走路的時候,是以一個相對比較均勻的速度行走,手機就是通過這樣的硬體配置來感知我們活動的時間從而計算出頻率,以此形成步數,這一種計算方式還是較為准確的,就比如說我們在走路的時候和在跑步的時候,甚至是騎車的時候,這個時間長短形成的速度和頻率是完全不一樣的,就根據這樣來進行判斷。
第三點:根據壓電陶瓷材料的加速度感測器計算
這一中種感測器跟上面的一種是不一樣的,雖說也是加速度的感測器,但是它採用的原理是根據作用力的大小導致電壓的變化來進行測量,也就是我們在走路的時候速度以及變換的方位會影響電壓的大小變化,以此來判斷我們行走的頻率機型一個步數的多少測量。准確度跟上面的一種一樣,只是利用的方式原理不相同罷了。
總結:以上的三種方式,說白了就是一種是根據手機的角度變化來進行測試,另外兩種是根據運動的頻率來進行測試,三個方法對於當前計算步數來說,都是相當的准確的,有所偏差也只會是一兩步,很多的網友覺得兩個手機的步數不一樣,但是都是一樣的行走,其實就是因為使用的測試方法不一樣,但是大概的數據是不會改變的。
Ⅱ 微信運動是如何計算步數的
1.手機內置了振動感測器或協助處理器,比如陀螺儀,重力感應等,根據這些設備的震動頻率來儲存數據。就是人在步行時重心都有一點上下移動,感測器和協作器感應到這種重心移動並進行記數。
2.物理原理:看似勻速的閑庭信步,對我們攜帶的設備來說(如手機、運動手環),每一步都經歷了過山車般的加速度變化。
3.一般來說,抬腿邁出一步的時候,加速度是最大的。我們把它放到一個坐標軸上,加速度的變化看起來就像一個cos波形。
4.兩個波峰之間,可以被認為是一步,如果連續出現了8個波峰,就可以基本確定這個人在運動狀態。設備就開始把這些前面的波動以及後面的波動,算成步數,這就是最基本的計步原理了。
(2)計步演算法擴展閱讀:
記步功能是由一個採集器(加速度感測器)和一個處理器(Sensor Hub,協處理器)共同完成的。
採集器採集加速度信息,並提供給處理器進行分析。目前iPhone 5s及以上的蘋果手機和部分安卓手機都集成了這個採集、分析的框架。而運動手環等外接設備,也是基於類似框架對數據採集和分析後,通過藍牙傳給手機。
在關注微信運動時,系統提示想要訪問活動記錄記得選擇好,如果不允許的話,則會無法記錄運動步數的。
Ⅲ 計步器是怎樣來記步數的
計步器使用的是振動感測器來記步數的。
Ⅳ 運動計步數
現在主流的計步軟體(以微信運動計步數為例),是通過手機內置的陀螺儀、重力感應器和加速器度感測器等組合完成的,根據這些設備的震動頻率來儲存數據,從而計算出每天走路的步數。
其中陀螺儀可以測量出手機的角度,從而檢測到人體的重心偏移。當人在行走時,手機會隨著運動出現角度偏移。陀螺儀檢測到持續且有規律的角度偏移時,手機就會開始判斷用戶正在走路。
陀螺儀還可以判斷用戶是在走路還是在騎自行車。由於騎車過程相對走路時,人體姿態更加平穩,重心偏移量很小,陀螺儀收集到的角度變化也很小。
當我們攜帶手機走路時,每一步都經歷了過山車般的加速度變化。抬腿邁出第一步的時候,加速度是最大的。我們把它放到一個坐標軸上,加速度的變化看起來就像一個cos波形。兩個波峰之間,可以被認為是走了一步。
如果連續出現幾個波峰,就可以基本確定用戶是在走路的狀態。感測器設備就把這些前面的波動以及後面的波動算成步數,記錄到手機里。
在實際場景中,演算法還要去掉一些「干擾項」。比如我們走路時,手機放兜里會上下抖動,產生不同方向的加速度。這時演算法就要判斷並過濾掉無用的干擾項,只留下最主要的運動特徵。
手機里的壓電陶瓷也會根據力的大小產生不同的形變,從而產生不同的電壓變化,通過作用在上面的力測量出加速度,計算用戶在走路時的頻率大小。
其實就是手機硬體的重力感應,比如我們看電影轉動手機時,屏幕會自動跟著轉,就是它感應到向下重力作出的反應。
更加精確的計步軟體還會輔助利用GPS來定位用戶的運動路線,然後計算出平均時速。
上述的這些工作是由採集器(加速度感測器等)和處理器(Sensor Hub,協處理器)共同完成的。
Ⅳ 小米手環計步原理
簡單來說:小米手環能夠精準計步由硬體和軟體演算法兩方面組成,缺一不可。
硬體是指小米手環里內置的那枚強悍的三軸加速度感測器ADXL362 (注1),軍用級,大家知道想要達到軍用級,這得有多苛刻。其實三軸加速度感測器不神秘,在大多數中高檔手機里都有配備加速度感測器,只是在偵測精度上達不到到小米手環的級別。
三軸加速度感測器(注2)的三軸是指空間中的X,Y,Z三個維度,有了這3個維度,手環就可以捕捉到手環在使用中的加速度變化,從而生成數據。重力加速度大家初中物理課上都學過,在此就不多說了。
軟體演算法:華米程序猿根據三軸加速度實時捕捉到的三個維度的各項數據,經過濾波、峰谷檢測等過程,使用各種演算法和科學縝密的邏輯運算,最終將這些數據轉變成手環APP端的可讀數字,步數、距離、消耗的卡路里數值等呈現在最終用戶面前。
望採納,回答不易!
Ⅵ 我要用計步功能,如何實現
計步器讀取手機感測器(讀取三軸陀螺儀數據)收集的數據,進行二次解讀和演算法的過程。因為行走時人體做垂直運動,就會有個加速度,檢測加速度峰值從而記步。至於准確與否取決於感測器靈敏度及軟體分析 重力感測器: 原理:利用壓電效應實現,感測器內部一塊重物和壓電片整合在一起,通過正交兩個方向產生的電壓大小,來計算出水平方向。 用途:手機橫豎屏智能切換、拍照照片朝向、重力感應類游戲(如滾鋼珠)。 加速度感測器 原理:與重力感測器相同,也是壓電效應,通過三個維度確定加速度方向,但功耗更小,但精度低。 用途:計步、手機擺放位置朝向角度。 個人使用過魅族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不會繼續工作,估計是為了省電,現在項目裡面華為手機全部為模擬計步了。
Ⅶ 微信運動怎麼計算步數
微信運動工作原理:
微信運動的基本原理是走路時會先有一個向前的加速度再有一個向後的加速度,根據身高體重調整這兩次加速度大小和時間間隔的閾值就能統計步數,當然還有很多優化的細節。
手機內置了振動感測器或協助處理器,根據這些設備的震動頻率來儲存數據。簡單地說,就是人在步行時重心都有一點上下移動,感測器和協作器感應到這種重心移動並進行記數。
(7)計步演算法擴展閱讀:
微信運動確實是計算步數,與距離無關,也與步伐大小無關。
計步數據不會受地形影響。無論是走路還是爬樓梯,都是走一步記一步,誤差基本在2步以內。
來回甩動手機或是手環確實能增加步數,「作弊」一說確實可行。
不想別人看到自己的步行數據?這也是有辦法的。以iPhone6為例,只要取消公眾號里「加入排行榜」的選項,或是在手機的設置中,找到「隱私」一欄,點擊進入,找到「運動與健身」一欄,點擊關閉即可。
參考資料:微信運動_網路
Ⅷ 手機計步app的實現原理是怎樣的精確度如何
原理最主要通過加速度感測器來感知水平垂直左右方向的加速度變化。手環的優勢是位置固定在手上,做計步應用場景時相對來說演算法比較好寫,缺點在於低功耗,CPU計算能力和內存大小限制了演算法的復雜度。手機和手環比較起來是位置不固定,所以計步演算法相對要復雜的多,優點是CPU強大,內存容量以G為單位,所以演算法復雜度要強大很多,另外可以結合GPS來綜合判斷。另外想說大多數手環是沒有GPS的。
Ⅸ 微信運動,小米手環等都是怎麼實現計步的
小米手環的計步是通過將手環內置的加速度感測器以及專用的計步演算法進行計步,只需要將手環佩戴在手上並選擇正確的佩戴習慣,即可進行准確的計步,小米手環經過演算法優化,會將刷牙等小幅度重復動作通過演算法進行過濾。