Vertikaler Bewegungssensor

Ich arbeite an einer Android-App, die die Erkennung vertikaler Bewegungen erfordert. Wenn Sie das Tablett nach oben bewegen, geben die Sensoren für Gyroskop, Beschleunigungsmesser und lineare Beschleunigung einen entsprechenden Wert an, der die Aufwärts- oder Abwärtsbewegung anzeigt.

Das Problem, das ich habe, ist, dass diese Sensoren auch eine Aufwärts- / Abwärtsbewegung anzeigen, wenn Sie das Tablet zum Benutzer hin oder vom Benutzer weg kippen. Beispielsweise repräsentiert der x-Wert im Gyroskop die vertikale Ebene. Wenn Sie das Gerät jedoch nach vorne neigen, ändert sich der x-Wert. Wenn ich diese Bewegung mache, liest derselbe Sensor, der die vertikale Bewegung liest, einen Wert dafür.

Gleiches gilt für die restlichen Sensoren. Ich habe versucht, Orientierung in Verbindung mit dem Kreisel zu verwenden, um die bedingte Aussage zu treffen. Wenn sich die Tonhöhe nicht ändert, aber die x-Variable nach oben / unten geht, haben wir vertikale Bewegung. Das Problem dabei ist, dass es nicht mehr funktioniert, wenn der Benutzer es nach oben bewegt, aber leicht geneigt. Ich habe auch versucht, es so zu machen, dass es keine vertikale Bewegung gibt, wenn sich die Neigung ändert. Es iteriert jedoch so schnell, dass sich die Neigung möglicherweise für 1/100 Sekunde ändert, für die nächste jedoch nicht.

Kann ich nur vertikale Änderungen und keine Änderungen in der Tonhöhe des Geräts lesen?

Folgendes möchte ich erkennen:

bearbeiten:

"Bitte überlegen Sie sich eine mathematisch fundierte Definition dessen, was Sie als 'Aufwärtsbewegung' betrachten." Dies war meine ursprüngliche Frage: Wie kann ich eine Funktion schreiben, um zu definieren, wann sich das Tablet aufwärts oder abwärts bewegt? Ich betrachte eine vertikale Übersetzung, die sich nach oben bewegt. Wie erkenne ich das jetzt? Ich weiß einfach nicht, wo ich anfangen soll, danke.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage