6 votes

Valeurs maximales de l'accéléromètre Android

Alors j'ai cherché pendant environ 3 heures et je n'ai pas trouvé de bonne réponse/solution.

Ma question est : Pourquoi est-ce que j'obtiens une valeur d'accélération maximale d'environ 34 m/s^2 ou d'environ 3,5 Gs (34/9,81).

Est-ce à cause de restrictions matérielles ou de restrictions logicielles ? Si c'est une restriction matérielle, je sais que je ne peux rien y faire (ou du moins pas facilement). S'il s'agit d'une restriction logicielle, comment puis-je lever cette restriction, y a-t-il un moyen de le faire ? Comme une API ou autre chose ?

Je serais reconnaissant pour toute aide, Merci.

Remarque : J'utilise un Galaxy S, si cela fait une différence. J'ai également jeté un œil à cette question mais cela ne m'aide pas : Quelle est la plage minimale et maximale de l'accéléromètre Android

4voto

David Points 741

Jetez un œil à ceci : https://electronics.stackexchange.com/questions/11372/samsung-galaxy-s-accelerometer-details La question inclut ce qui semble être la fiche technique de l'accéléromètre utilisé dans le Galaxy S. Apparemment, il existe trois plages possibles, +/-2g, +/-4g et +/-8g. Je ne suis pas un expert en électronique, je ne fournirai donc pas plus d'interprétation que cela.

Selon developer.android.com, les lectures de l'accéléromètre dépendent uniquement du matériel : developer.android.com/guide/topics/sensors/sensors_motion.html Ainsi, vous auriez probablement plus de chances d'obtenir une réponse d'expert sur le forum Electrical Engineering stackexchange déjà référencé ci-dessus : electronics.stackexchange.com.

Bonne chance pour votre projet !

ÉDIT : En référence aux commentaires sur la question initiale : Je vois, parce qu'il est indiqué sur la page que vous référez -

"Je comprends que par défaut, les accéléromètres Android fonctionnent dans une plage prédéfinie de +-2g. Comment puis-je changer cette plage programmablement via une API publique? Il y a une méthode getMaximumRange(), mais pas de méthode setMaximumRange() correspondante."

Vous vous demandez s'il existe une méthode logicielle pour changer la plage prédéfinie. Encore une fois, je pense que la documentation de l'API Android en parlerait. Essayez de demander sur electronics.stackexchange.com ce que sont les "plages dynamiquement sélectionnables" et si elles sont définies par des commutateurs matériels physiques (ou quelque chose du genre) ou si elles peuvent être changées de manière programmable.

DEUXIÈME ÉDIT : J'ai lu la page vers laquelle je vous ai dirigé plus attentivement, et je remarque que la personne ayant posé la question initiale a vérifié l'API Google et a conclu qu'il n'est pas possible de changer la plage via celle-ci :

L'API ne permet pas de les changer. Je pense que je peux trouver ces données dans la source de l'API, mais ce n'est pas simple. Maintenant, je vais essayer. - MarcoBiagi 13 mars 2011 à 10h36

3voto

gregS Points 585

Étant donné que l'amplitude d'accélération maximale que vous lisez de votre Galaxy S est de 3,5 g, il semble que l'accéléromètre de votre Galaxy S soit configuré pour avoir une plage d'accéléromètre par axe de +/- 2g (c'est-à-dire sqrt(2.0*2.0 + 2.0*2.0 + 2.0*2.0) = 3.5). À titre de référence, voici les plages d'accéléromètre par axe de votre Galaxy S, du Moto G et des appareils Android Nexus :

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

La plage d'accéléromètre par axe n'est généralement pas indiquée dans la fiche technique d'un téléphone. Par conséquent, si d'autres lecteurs connaissent la plage maximale de l'accéléromètre de leur téléphone, n'hésitez pas à l'ajouter à cette liste.

Malheureusement, l'API Sensor.getMaximumRange() de l'accéléromètre est inconsistante : elle renvoie des valeurs "de zéro au pic" sur la plupart des appareils mais "de pic à pic" sur certains (par exemple, le Moto G) comme décrit dans cet problème suivi sous Android OS. Une approche pour savoir si un appareil particulier renvoie Sensor.getMaximumRange() comme "de zéro au pic" ou "de pic à pic" est d'exécuter une application gratuite de traçage des données de capteur comme ftNote et de secouer vigoureusement l'appareil pour voir où les lectures de l'accéléromètre s'écrasent dans les valeurs de capteur tracées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X