2013-04-30 17 views
5

By event.accelerationIncludingGravity auf Android verwenden, gibt es einen Wert vonBeschleunigung mit Schwerkraft in reine Beschleunigung umrechnen?

x: -0.2 
y: +0.1 
z: +9.1 

, wenn auf einer flachen Oberfläche aufliegt. Ich möchte jedoch Beschleunigung ohne Schwerkraft erhalten, aber event.acceleration wird nicht unterstützt. Gibt es eine Möglichkeit, es durch Mathe zu konvertieren? In HTML5Rocks gibt es ein Beispiel, das den Schwerkraftfaktor entfernt, aber es scheint nicht zu funktionieren.

// Convert the value from acceleration to degrees acceleration.x|y is the 
    // acceleration according to gravity, we'll assume we're on Earth and divide 
    // by 9.81 (earth gravity) to get a percentage value, and then multiply that 
    // by 90 to convert to degrees.         
    var tiltLR = Math.round(((acceleration.x)/9.81) * -90); 
    var tiltFB = Math.round(((acceleration.y + 9.81)/9.81) * 90 * facingUp); 

Example script graphing acceleration values (nicht von HTML5Rocks)

Antwort

0

ich sehe. Sie haben Zahlen für die x- und y-Achse, die im Wesentlichen 0 sind, nehmen Sie die Messung des Geräts, das auf einer flachen Oberfläche ruht, und mitteln Sie alle Ihre x- bzw. y-Werte und Sie erhalten Ihren Fehlergrad in jeder Richtung. Die Beschleunigung wird in m/s^2 gemessen. (Meter pro Sekunde im Quadrat). Die Erdbeschleunigung an der Erdoberfläche beträgt 9,86 m/s^2. In einem idealen Physik-Problem müsste man nur diese Zahl subtrahieren und man erhält die Antwort. Wenn Sie versuchen würden, die Geschwindigkeit zu berechnen, wäre das ein komplexeres Problem, aber die Erdbeschleunigung beschleunigt sich nicht. Sie haben einen größeren Fehler in der Z-Achse, aber nicht, wenn Sie den Fehlergrad als Prozentsatz des tatsächlichen Werts berechnen. Oder Sie sind etwa 300 km über dem Meeresspiegel.

+0

Ich habe gerade getestet, dass '9.86 - e.acceleration.z' funktioniert gut, wenn das Gerät nach oben zeigt. Aber sobald ich es kippe, beeinflusst der Gravitationsfaktor auch andere Achsen. [Dieses Skript] (http://developer.android.com/reference/android/hardware/SensorEvent.html#values) Ich denke, ist hilfreich, weil es die Schwerkraft berücksichtigt, aber ich weiß nicht wirklich, wie man es benutzt . (und es ist in Java geschrieben) –

+0

Ja, die native Funktionalität für die Hardware scheint die mobile Entwicklung vorerst zu übertreffen. –