6

したい

[1] 携帯電話の加速度センサーのサンプリング レートを上げます。(SENSOR_DELAY_FASTEST は、Xperia で最大100Hz/Nexus4 で 180Hz を提供します。私の仕事では、遅延を約 1ms 以下にしたいと考えています。

[2] [1] が不可能な場合、Rate constant を作成できますか

mSensorManager.registerListener(this, mAccelerometer,10000);//10000 in microsec

上記のコードでは、10ms の遅延は発生しません。私はそれがAndroidへの提案に過ぎないことを知っています。

電話内のこれらの加速度計は、はるかに小さな遅延を与えることができます. それは彼らのデータシートに記載されています。[1] または [2] を実行する方法またはドライバー/ADC プログラミングも同様です。ADT ツールを使用しています。これを行うための他のツールはありますか?

PS:読みました

Android:加速度センサーのサンプリングレートを上げる方法は?

加速度計の速度を変更することはできません

4

3 に答える 3

6

developer.android.comから:

データ遅延 (またはサンプリング レート) は、センサー イベントが onSensorChanged() コールバック メソッドを介してアプリケーションに送信される間隔を制御します。デフォルトのデータ遅延は、一般的な画面の向きの変化を監視するのに適しており、200,000 マイクロ秒の遅延を使用します。SENSOR_DELAY_GAME (20,000 マイクロ秒の遅延)、SENSOR_DELAY_UI (60,000 マイクロ秒の遅延)、または SENSOR_DELAY_FASTEST (0 マイクロ秒の遅延) など、他のデータ遅延を指定できます。Android 3.0 (API レベル 11) 以降では、遅延を絶対値 (マイクロ秒単位) で指定することもできます。

ただし、マイクロ秒単位で指定する絶対値は、Android への提案に過ぎないことを知っておく必要があります。

于 2014-01-29T09:56:46.070 に答える
4

私の経験から、あなたができることはここにあります。最も簡単なものから始めましょう:

[2] [要するに] (この) Android では、完全な精度(読み取り間の間隔) を持つことはできません。

[2] [長文] perfect を定義する必要があります。つまり、精度を定義する必要があります。これは決して完全な 0 ではないことに注意してください。想像できる最も重要なアプリケーションでさえ、決してそうではありません。私の経験から、Android では、これは本格的な 100 ミリ秒になることさえあります。

[1] アプリケーションが重要でない場合、つまり履歴データを分析したいだけの場合は、次のことを試すことができます。各読み取り値をタイムスタンプとともに保存します。次に、一定間隔で補間します。完璧な時間配分だけでなく、見積もりも得られます。

ご不明な点がありましたらお尋ねください。

于 2014-12-17T13:21:07.027 に答える