2012-10-05 10 views
5

So habe ich etwa 3 Stunden gesucht und ich habe keine gute Antwort/Lösung gefunden.Android Beschleunigungsmesser Max Werte

Meine Frage ist: Warum bekomme ich einen maximalen Beschleunigungswert von nur etwa 34 m/s^2 oder etwa 3,5 Gs (34/9,81).

Liegt es an Hardwareeinschränkungen oder Softwareeinschränkungen? Wenn es Hardware ist, weiß ich, dass ich nichts dagegen tun kann (oder zumindest nicht leicht). Wenn es Software-Beschränkung ist, wie kann ich dann diese Einschränkung entfernen, gibt es eine Möglichkeit, das zu tun? Wie eine API oder etwas?

Ich würde jede Hilfe, Vielen Dank.

Hinweis: Ich benutze ein Galaxy S, wenn das einen Unterschied macht. Ich habe auch einen Blick auf diese Frage nehmen, aber das mir nicht hilft nicht: What is android accelerometer min and max range

+0

Können Sie erklären, was Sie mit "Einschränkung" meinen? Das bedeutet, dass Sie einen höheren Wert erwarten. Vielleicht möchten Sie erwähnen, ob Sie die Gravitationskraft von 9,8m/s^2 einbeziehen oder ob Sie bereits den Hochpassfilter angewendet haben und welche Art von Bewegung Sie auf das Galaxy S anwenden Schließlich, warum Sie annehmen, dass die Zahl höher als 3.5G sein sollte. Ich sage nicht, dass Sie Recht oder Unrecht haben, aber warum gehen Sie davon aus, dass es "Einschränkungen" gibt? – David

+0

Für den Rekord ist Beschleunigungsmesser theoretisch rein hardwarebasiert: http://developer.android.com/guide/topics/sensors/sensors_motion.html – David

+0

@David gut nach [dies] (https://groups.google. com/forum/#! msg/android-kernel/2RRDvgJDsM/- uF40t3rU0J) Der Bereich sollte höher sein. Ich weiß nicht, ob das hilft oder nicht ... Auch 3,5 Gs klingt einfach zu niedrig und ich weiß, dass ich mein Handy härter schwinge. Deshalb denke ich, dass es sich um eine Art Einschränkung handelt. – 0gravity

Antwort

4

Werfen Sie einen Blick auf diese: https://electronics.stackexchange.com/questions/11372/samsung-galaxy-s-accelerometer-details Die Frage beinhaltet, was das Datenblatt für den Beschleunigungsmesser in der Galaxy S. verwendet zu sein scheint Anscheinend gibt sind drei mögliche Bereiche: +/- 2 g, +/- 4 g und +/- 8 g. Ich bin kein Elektronikexperte, deshalb werde ich keine Interpretation mehr liefern.

Nach developer.android.com sind die Beschleunigungsmesser Lesungen hardwareabhängig nur: developer.android.com/guide/topics/sensors/sensors_motion.html So werden Sie wahrscheinlich eine bessere Chance haben würde auf immer eine Expertenantwort auf das Stackexchange-Forum Elektrotechnik, auf das bereits oben verwiesen wurde: electronics.stackexchange.com.

Viel Glück mit Ihrem Projekt!

EDIT: In Bezug auf die Kommentare zu ursprüngliche Frage: ich sehe, weil es auf die sagt page Sie verweisen -

„Mein Verständnis ist, dass der Standard für Android-Beschleunigungsmesser ist zu arbeiten in einem vordefinierten Bereich von + -2 g. Wie kann ich programmgesteuert diesen Bereich über eine öffentliche API ändern? Es gibt eine getMaximumRange() Methode, aber keine entsprechende setMaximumRange() Methode. "

Sie fragen sich, ob es eine softwarebasierte Methode zum Ändern des vorausgewählten Bereichs gibt. Auch hier würde ich meinen, dass Android-API-Dokumente dies erwähnen würden. Versuchen Sie auf electronics.stackexchange.com zu fragen, welche "dynamisch auswählbaren Bereiche" sind und ob sie durch physikalische Hardware-Schalter (oder etwas Ähnliches) gesetzt werden oder ob sie programmgesteuert geändert werden können.

ZWEITE EDIT: Ich lese die Seite, die ich genannt Sie gründlicher, und beachten Sie, dass die ursprüngliche Frages die Google API überprüft und festgestellt, dass es nicht möglich ist, den Bereich durch, es zu ändern:

API dosen Ich darf sie nicht ändern. Ich denke, dass ich diese Daten in der API-Quelle finden kann, aber es ist nicht einfach. Jetzt werde ich es versuchen. - MarcoBiagi 13. März '11 bei 10:36

+0

+1 Danke für die Antwort. Es gab mir einige Ideen/Einsichten darüber, wonach gesucht werden sollte. – 0gravity

+0

Gern geschehen. Hoffe, Sie finden einen Weg, um Ihr Problem zu lösen. – David

2

Aufgrund des max Beschleunigungsgröße Sie von Ihrem Galaxy S lesen ist 3,5 g, Ihr Galaxy S Beschleunigungsmesser erscheint Setup zu sein, einen pro Achse haben Beschleunigungsmesser Bereich von +/- 2 g (dh sqrt (2,0 * 2,0 + 2,0 * 2,0 + 2,0 * 2,0) = 3,5).Als Referenz, hier sind die pro Achsen-Beschleunigungsbereiche Ihres Galaxy S, das Moto G, und die Nexus Android-Geräte:

Galaxy S: +/- 2g
Moto G: +/- 2g
Nexus 1: +/- 2g
Nexus S: +/- 2g
Nexus 4: +/- 4g
Nexus 5: +/-

Der pro Achsen-Beschleunigungsbereich wird typischerweise in einem 2g Telefon Spezifikation Blatt nicht gegeben. Wenn also andere Leser die maximale Reichweite des Beschleunigungsmessers ihres Telefons kennen, können Sie sie dieser Liste hinzufügen. Die Sensor.getMaximumRange() - API des Beschleunigungsmessers ist leider inkonsistent: gibt bei den meisten Geräten "Null-zu-Spitze" -Werte zurück, aber bei einigen (z. B. Moto G) "Peak-to-Peak", wie in dieser tracked Android OS issue beschrieben. Ein Ansatz, um zu wissen, ob ein bestimmtes Gerät Sensor.getMaximumRange() als "Null zu Spitze" oder "Spitze zu Spitze" zurückgibt, besteht darin, eine freie Sensordatenplot-Anwendung wie ftNote auszuführen und das Gerät kräftig zu schütteln, um zu sehen, wo die Beschleunigungsmesser einlesen die aufgetragenen Sensorwerte.

+0

ich habe lg g3, getMaximumRange() ist 39, was es ist meine maximale Reichweite 69G ist es real? –