5

だから私は約3時間探していましたが、良い答え/解決策を思いつきませんでした。

私の質問は次のとおりです。最大加速度値が約34m/ s ^2または約3.5Gs(34 / 9.81)になるのはなぜですか。

ハードウェアの制限またはソフトウェアの制限によるものですか?それがハードウェアの場合、私はそれについて何もできないことを知っています(または少なくとも簡単ではありません)。それがソフトウェアの制限である場合、どうすればその制限を取り除くことができますか、それを行う方法はありますか?APIか何かのように?

助けていただければ幸いです、ありがとう。

:違いが生じる場合は、GalaxySを使用しています。私もこの質問を調べましたが、それは私を助けません:アンドロイド加速度計の最小および最大範囲とは何ですか

4

2 に答える 2

4

これを見てください: https://electronics.stackexchange.com/questions/11372/samsung-galaxy-s-accelerometer-details 質問には、Galaxy S で使用されている加速度計のデータシートと思われるものが含まれています。 +/-2g、+/-4g、および +/-8g の 3 つの可能な範囲。私は電子機器の専門家ではないので、それ以上の解釈は提供しません。

developer.android.com によると、加速度センサーの測定値はハードウェアに依存するだけです : developer.android.com/guide/topics/sensors/sensors_motion.html上記で既に参照されているエンジニアリング スタックエクスチェンジ フォーラム: electronic.stackexchange.com

あなたのプロジェクトで頑張ってください!

編集:元の質問へのコメントを参照して:参照するページに記載されているため、わかりました-

「私の理解では、Android 加速度センサーのデフォルトは、定義済みの範囲 +-2g で動作することです。パブリック API を介してこの範囲をプログラムで変更するにはどうすればよいですか? getMaximumRange() メソッドはありますが、対応する setMaximumRange() メソッドはありません。 "

事前に選択された範囲を変更するためのソフトウェアベースの方法があるかどうか疑問に思っています. 繰り返しますが、Android API のドキュメントでそれについて言及されていると思います。electronic.stackexchange.comで、「動的に選択可能な範囲」とは何か、それらが物理的なハードウェア スイッチ (またはそのようなもの) によって設定されているかどうか、またはプログラムで変更できるかどうかを尋ねてみてください。

2 番目の編集: ご紹介したページをさらに詳しく読みましたが、元の質問者が Google API をチェックし、それを介して範囲を変更することはできないと結論付けていることに気付きました。

API はそれらを変更することを許可しません。このデータは api ソースで見つけることができると思いますが、単純ではありません。今、私は試してみます。— マルコビアギ

于 2012-10-05T04:08:35.400 に答える
3

Galaxy S から読み取っている最大加速度の大きさが 3.5 g であるとすると、Galaxy S 加速度センサーは、軸あたりの加速度センサーの範囲が +/- 2 g (つまり、sqrt(2.0*2.0 + 2.0*2.0 + 2.0) になるように設定されているようです。 *2.0) = 3.5)。参考までに、Galaxy S、Moto G、および Nexus Android デバイスの軸ごとの加速度センサーの範囲を以下に示します。

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

軸ごとの加速度計の範囲は、通常、電話機の仕様書には記載されていません。したがって、他の読者がたまたま携帯電話の加速度計の最大範囲を知っている場合は、遠慮なくこのリストに追加してください。

残念ながら、加速度計の Sensor.getMaximumRange() API には一貫性がありません。ほとんどのデバイスでは「ゼロからピーク」の値が返されますが、一部のデバイス (Moto G など) では「ピークからピーク」の値が返されます (この追跡された Android OS の問題で説明されています) 。特定のデバイスが Sensor.getMaximumRange() を「ゼロからピーク」または「ピークからピーク」として返すかどうかを知る方法の 1 つは、ftNoteのような無料のセンサー データ プロット アプリケーションを実行し、デバイスを激しく振って、加速度計の読み取り値がクリップインする場所を確認することです。プロットされたセンサー値。

于 2013-11-14T15:10:11.683 に答える