2

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

4

3 回答 3

4

让您的类(ViewController 或其他)实现 UIAccelerometerDelegate 协议。然后

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

然后,您的委托可以使用 UIAccelerometer 提供的 UIAcceleration 对象来执行您需要的任何操作。例如,如果您只需要 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 在哪里显示您需要的任何内容。

于 2010-03-02T07:22:47.310 回答
1

如果您可以在汽车静止时校准您的加速度计,您稍后可以通过简单的矢量算术获得水平力分量:

Fhorizo​​ntal = Ftotal - Fvertical

于 2010-03-02T08:10:54.780 回答
0

我读过加速度计不是那么准确,所以我认为需要进行经验微调。

校准、测量/过滤(并转换为适当的单位)加速度计数据后,速度可以近似为(梯形规则)

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

距离的时尚同样如此。如果您想获得更高的准确性,可以尝试更高阶的求积公式(如 Simpson 的)。

于 2010-03-02T09:49:59.270 回答