用重力感应器来记步,由于人走路时竖直方向是一个变加速和变减速的状态,通过记录手机收到的合力变化是否超过某个值的次数可测出步数。为了防止几个连续的合力都超出这个值,可以加一个条件(t==0或t==1)来防止连续合力都超值时只加多次次;
heli = v[0] * v[0] + v[1] * v[1] + v[2] * v[2];//heli每时每刻重力感应传回来的值的平方和
if (heli > lingmindu_1 && t == 0 && yigezhouqiyuzhuancishu >= 8) {//(为防止几个连续heli>lingmindu_1)用t来控制zongpaopinshu加一的另一个条件;
zongchaopincishu++;
lucheng = buchang_1 * zongchaopincishu / 100.0/chaohelicishu_1*2;
sudu = buchang_1 * 2 / (yigezhouqiyuzhuancishu / 38.0 * chaohelicishu_1) / 100;
yigezhouqiyuzhuancishu = 0;
t = 1;
} else {
yigezhouqiyuzhuancishu++;
}
if (heli < lingmindu_1 && t == 1) {
t = 0;
}
代码已经过检测,记步准确。
由于本人也是新手,大神勿喷