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 インスタンス変数を 2 つ使用すると、次のようになります。

- (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)

距離についても同じように。より正確になりたい場合は、高次の求積公式(シンプソンのような)を試すことができます。

于 2010-03-02T09:49:59.270 に答える