2010-03-02 94 views
2

我正在研究用于显示iPhone上移动车的当前G-Force值的应用程序。我不知道如何使用iPhone加速度计值计算G力值。另外,我必须使用这些值来计算距离和速度。如何使用iPhone加速度计值来计算移动车的G-Force值

有人能帮我解决这个问题吗?

在此先感谢

+0

当你说'g-force'时,你的意思是'skidpad'吗? – Zaid 2010-03-02 08:14:32

+0

你对速度和距离有什么样的准确度? – Zaid 2010-03-02 08:33:49

+0

这有什么好运?如果你想出了一个(合理)准确的方法来做到这一点,我会很感兴趣。 – Jerceratops 2011-04-19 23:37:39

回答

4

让你的类(视图控制器,或其他)实施UIAccelerometerDelegate协议。然后

-(void)startListening { 
    UIAccelerometer *meter = [UIAccelerometer sharedAccelerometer]; 
    meter.updateInterval = 1.0; // One second 
    meter.delegate = self; 
} 

您的委托可以再使用给了它UIAcceleration对象由UIAccelerometer做什么是你需要的。举例来说,如果你只需要iPhone的加速度的大小,你可以,用双accelMagnitude实例变量,有:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { 
    accelMagnitude = sqrt(acceleration.x * acceleration.x 
         + acceleration.y * acceleration.y 
         + acceleration.z * acceleration.z); 
    [self refreshDisplay: accelMagnitude]; 
} 

其中refreshDisplay没有任何显示需要。

+0

感谢您的回答。我可以做到这一点,但是,我想要计算正在移动的汽车的G力值。另外,我必须计算距离和速度。 – Vamshi 2010-03-02 08:03:47

+0

@Frank:iPhone加速度计是否会因重力自动否定加速度? – Zaid 2010-03-02 08:18:35

+0

@Zaid谢谢:)另外,Christian Severin回答了你的问题:首先用静止的汽车校准加速度计。 – 2010-03-02 08:42:51

1

如果您可以校准加速度计而汽车处于静止状态,您可以在以后通过简单的矢量算术取得水平分力:

Fhorizo​​ntal = Ftotal - Fvertical

+0

+1为校准提示。您需要全部三个组件:垂直加速度(:)以及水平面上的两个加速度来解释转弯。 – 2010-03-02 08:44:31

0

我已阅读加速度计不这是准确的,所以我认为经验微调是必要的。

一旦校准,meassure /过滤器(和转换为适当的单位)的加速度计数据,速度可以通过(梯形规则)

Speed_i+1 = Speed_i + (interval_time/2)* (Accel_i+Accel_i+1) 

相同的方式对距离aproximated。如果你想更准确的话,你可以尝试更高阶的积分公式(如辛普森的)。