如何使用iPhone加速计值计算移动汽车的重力值
我正在开发一个应用程序,该程序用于在iPhone上显示移动汽车的当前重力值。我不知道如何使用iPhone的加速度计值计算重力值。此外,我必须使用这些值计算距离和速度 让您的类(ViewController或其他)实现UIAccelerometerDelegate协议。然后如何使用iPhone加速计值计算移动汽车的重力值,iphone,accelerometer,uiaccelerometer,Iphone,Accelerometer,Uiaccelerometer,我正在开发一个应用程序,该程序用于在iPhone上显示移动汽车的当前重力值。我不知道如何使用iPhone的加速度计值计算重力值。此外,我必须使用这些值计算距离和速度 让您的类(ViewController或其他)实现UIAccelerometerDelegate协议。然后 -(void)startListening { UIAccelerometer *meter = [UIAccelerometer sharedAccelerometer]; meter.updateInterval
-(void)startListening {
UIAccelerometer *meter = [UIAccelerometer sharedAccelerometer];
meter.updateInterval = 1.0; // One second
meter.delegate = self;
}
然后,您的代理可以使用UIAccelerator提供的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可以根据需要进行任何显示。如果您可以在车辆静止时校准加速计,您可以稍后通过简单的矢量算法获得水平力分量:
Fhorizontal=Ftotal-Fvertical我读到加速度计不是那么准确,所以我认为需要进行经验微调 校准后,测量/过滤(并转换为适当的单位)加速计数据,速度可通过(梯形规则)近似
距离也一样。如果您想获得更高的精度,可以尝试使用高阶求积公式(如辛普森公式)。谢谢您的回答。我可以这样做,但我想计算一辆正在移动的汽车的重力值。此外,我还必须计算距离和速度。@Frank:iPhone加速计会自动抵消重力加速度吗?@Zaid谢谢:)此外,Christian Severin回答了你的问题:首先在汽车静止时校准加速计。@Zaid加速计不会抵消重力加速度,你会得到原始值。你必须自己减去它。还要记住,你只会得到加速。如果汽车以恒定的速度和方向行驶,则不会发生加速,只会记录重力。你说的“g-force”是指“skidpad”吗?你要求的速度和距离精度是多少?幸运吗?如果你能找到一个(合理的)准确的方法,我会很感兴趣的。校准提示+1。您将需要所有三个组件:用于减速带的垂直组件(:)和用于转弯的水平平面中的两个组件。
Speed_i+1 = Speed_i + (interval_time/2)* (Accel_i+Accel_i+1)