2010-03-02 123 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。如果你想更準確的話,你可以嘗試更高階的積分公式(如辛普森的)。