如果加速度计x,y,z和陀螺仪x,y,z的条件给我一个非常快速的结果,我认为它更真实

时间:2013-08-29 19:17:26

标签: ios objective-c accelerometer gyroscope threshold

我正在使用推送方法收集加速度计和陀螺仪数据(startDeviceMotionUpdatesToQueue:withHandler:和startGyroUpdatesToQueue:[NSOperationQueue mainQueue]  我将这些原始数据与某些阈值进行比较,如果它满足阈值,我确实将标签计数器增加1,我的问题是当我开始检测即读取方法并将其与阈值进行比较时,计数器增加得如此之快,我已阅读in(Simple iPhone motion detect)"如果条件对于每一个动作都会变为真两次" ,如果这就是我发生的事情,我该如何解决问题,我的代码很简单

checkData {

if ( (  acc_2 >= 0.03885) &&  (gyro_3  >= 0.0003)  && (gyro_3 <= 0.00838))
{
    i=i+1;
    //then Label data
    _Counter.text=[NSString stringWithFormat:@"%d",i];

}

else if (( acc_2>= 0.01103) && ( gyro_3 >= 0.00851))
{
    /

    //update the counter
    i=i+1;
    _Counter.text=[NSString stringWithFormat:@"%d",i];

}

...... same other conditions

}

然后我在startDeviceMotionUpdatesToQueue:withHandler:block中调用此方法。

[self checkData];

我该怎么做才能解决问题,你能指导我吗? }

1 个答案:

答案 0 :(得分:0)

我不是百分之百确定这是否是您所要求的,但是如果您想要更改从硬件接收更新的速率,那么这会降低标签更新的速度(并节省电池),您可以使用CMMotionManager的setGyroUpdateInterval:setDeviceMotionUpdateInterval:来调整刷新率。值为1每秒更新一次。

[_myMotionManager setDeviceMotionUpdateInterval:1];
[_myMotionManager setGyroUpdateInterval:1];