編輯點評:走路賺錢新項目
剛上線的一款計步軟件,藍鯨計步器app是一個可以讓你的每一步都變得有價值的平臺,只需要輕松的設置就可以提醒你每天健康運動數,還可以根據身體情況來跟蹤你的卡路里,非常的智能。
藍鯨計步器app特色
-每天打卡一萬步改善健康!
-輕松設置和調整你的目標步
-根據您的身體狀況跟蹤卡路里!
藍鯨計步器app功能
1、全天候自動記錄走路、跑步數據,還支持GPS精確統計;
2、群組排行榜,快為你的微信群和公眾號加入運動排行榜吧;
3、計步打卡,與你每夜有約;
3、勛章系統,可追蹤各項數據的變化和最好成績;
4、樂活動,好玩兒活動聚集地;
5、樂福利,獎勵天天有,驚喜不間斷;
6、超強的省電優化,無需擔心電池續航。
軟件優勢
搭載了功能,幫助步行的備案申請。它記錄了運載安裝此應用程序的終端的數量和位置信息。的詳細功能內容如下。
計步器這個計算步驟,并顯示時間,距離和卡路里。這將啟動一個記錄在第10步,以避免不必要的計數。
但是,這證實在睡眠時經常步行的狀態。因此,它不是這個限度。您可以通過關閉主屏幕的“伯爵”按鈕停止計數。此次收購的位置信息關聯起來的計數。這就是為什么當您關閉“伯爵”的“位置”按鈕變為關閉。
手機的計步器軟件原理是什么
1、變量的定義//存放三軸數據 float[] oriValues = new float[3]; final int valueNum = 4; //用于存放計算閾值的波峰波谷差值 float[] tempValue = new float[valueNum]; int tempCount = 0; //是否上升的標志位 boolean isDirectionUp = false; //持續上升次數 int continueUpCount = 0; //上一點的持續上升的次數,為了記錄波峰的上升次數 int continueUpFormerCount = 0; //上一點的狀態,上升還是下降 boolean lastStatus = false; //波峰值 float peakOfWave = 0; //波谷值 float valleyOfWave = 0; //此次波峰的時間 long timeOfThisPeak = 0; //上次波峰的時間 long timeOfLastPeak = 0; //當前的時間 long timeOfNow = 0; //當前傳感器的值 float gravityNew = 0; //上次傳感器的值 float gravityOld = 0; //動態閾值需要動態的數據,這個值用于這些動態數據的閾值 final float initialValue = (float) 1.3; //初始閾值 float ThreadValue = (float) 2.0; private StepListener mStepListeners;</span>
2. 代碼,結合注釋看 檢測步子就是檢測波峰,但是要濾除無效的波峰,
主要采用了如下三種措施
a、規定曲線連續上升的次數
b、波峰波谷的差值需要大于閾值
c、閾值是動態改變的 另一個是一些參數的初始值,比如initialValue 以及ThreadValue 的初始值,以及averageValue函數的梯度化范圍值 需要結合各種場景的波形圖來統計,還有幾十實際的測試來調試參數,這些參數大概前后調了兩個星期,其實總體思路不復雜。
下面貼出核心代碼以及一些注釋
注冊了G-Sensor后一只會調用這個函數
對三軸數據進行平方和開根號的處理
調用DetectorNewStep檢測步子
**/
@Override public void onSensorChanged(SensorEvent event){
for(int i = 0;i< 3;i++){
orivaluesil = event.valuesi;gravityNew =(float)Math.sgrt(oriValues[0]*oriValues[01
+ oriValues[1]*oriValues[1]+ oriValues[2]*oriValues[2]);DetectorNewStep(gravityNew);
*檢測步子,并開始計步
*1.傳入sersor中的數據
*2.如果檢測到了波峰,并且符合時間差以及闊值的條件,則判定為1步
*3.符合時間差條件,波峰波谷差值大于initialVvalue,則將該差值納入閾值的計算中
**/
public void DetectorNewStep(float values)
if(gravityOld ==0){
gravityOld = values;
}else{
if(DetectorPeak(values,gravityOld)){
timeOfLastPeak = timeOfThisPeak;timeOfNow = System.currentTimeMillis(O;if(timeOfNow-timeOfLastPeak >= 250
&&(peakOfWave-valleyOfWave >=ThreadValue)){
timeOfThisPeak = timeOfNow;
*更新界面的處理,不涉及到算法
*一般在通知更新界面之前,增加下面處理,為了處理無效運動:
*1連續記錄10才開始計步
*2.例如記錄的9步用戶停住超過3秒,則前面的記錄失效,下次從頭開始
*3.連續記錄了9步用戶還在運動,之前的數據才有效
點評
幫助你成為更好的自己,每天打卡步數,提醒你的健康生活飲食,簡單的操作,豐富有趣的設定,參加活動還能贏獎勵,讓你的每一步都變得更有價值的一個軟件。
熱門評論
最新評論