問題タブ [magnetometer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Sensor.TYPE_ORIENTATION (現在は非推奨) を適切に置き換える方法は?
SensorManager.getOrientation()- 関連するディスカッションで、インターネット上で見つかったいくつかのコード スニペットを試しました。磁気方位を確実に与えるものはありSensor.TYPE_ORIENTATIONません。Sensor.TYPE_ORIENTATIONエミュレーション用の動作コードを共有できる人はいますか?
android - Androidコンパスベアリング
次の方法を使用して、コンパスの方位を度(0〜360)で取得しようとしています。
方位角の値(つまりorientation[0])は0 <=方位角<360である必要がありますが、デバイスを回転させたときに-3から3までの値しか取得できません。誰かが問題が何であるか教えてもらえますか?
android - デバイスからの磁場X、Y、Z値をグローバル参照フレームに変換します
TYPE_MAGNETOMETERセンサーを使用すると、デバイスの向きに関連する磁場強度のX、Y、Z値が得られます。私が取得したいのは、これらの値をグローバル参照フレームに変換し、明確にすることです。ユーザーはデバイスを取得し、これらの値を測定します。次に、デバイスを任意の軸を中心にある程度回転させて、同じ値を取得します。以下の同様の質問を見つけてください。 グローバル座標での磁場値の 取得デバイスの回転に関係なく、磁場ベクトルを取得するにはどうすればよいですか。 この回答では、サンプルソリューションが説明されています(線形加速用ですが、問題ではないと思います):https ://stackoverflow.com/a/11614404/2152255 私はそれを使用し、3つの値を取得しました。Xは常に非常に小さく(正しいとは思わない)、YとZは問題ありませんが、デバイスを回転させると少し変化します。どのように調整できますか?そして、それはすべて解決できるでしょうか?単純なカルマンフィルターを使用して測定値を概算します。これを使用しないと、デバイスがまったく移動/回転していなくても、静かな異なる値が得られるためです。以下の私のコードを見つけてください:
この投稿を読んで、問題について事前にいくつかの考えを投稿してくれたすべての人に感謝します。
ios - iOSでは、コアロケーションフレームワークとコアモーションフレームワークの磁場値の違いは何ですか?
iOSデバイスの磁力計を使用して磁場(強度、x、y、z)を取得する方法は2つあります。
1)コアの場所メソッド
からのCLHeadingを使用しました。これは、AppleのTeslameterサンプルアプリに似ています。 CLLocationManagerDelegatelocationManager:didUpdateHeading:
2)のから
使用されるコアモーション。 CMMagneticFieldCMMotionManagermagnetometerData.magneticField
質問:
a)2つの違いは何ですか?両方から異なる値を取得しています。私はそれらが同じ値を返すことを期待していました。
この違いは、アプリを静止位置(テーブルで上向き)から起動してから、デバイスを空中に持ち上げたときに最も顕著になります。
b)違いがある場合、コアロケーションの見出しからの磁場をいつ使用する必要がありますか?コアモーションからの磁場をいつ使用する必要がありますか?
注:コアの位置とコアの動きの「磁場」が異なる磁場の概念を参照しているかどうかもわかりません。
注:両方のアプローチについて、強度を(x ^ 2 + y ^ 2 + z ^ 2)の平方根として計算しました。
android - スマートフォンからのセンサー読み取り値の後処理-重力計から計算された重力
私は今、加速度計、ジャイロメーター、磁力計の出力を記録するAndroidアプリからMatlab情報を抽出しようとしています。線形加速度を求める必要があるので、重力を考慮して加速度計から計算できると思いました。磁力計の出力(地磁気)で電話の向きを確認することで見つけられるはずだと思いました。しかし、どの式でも正しい結果を得ることができません。磁力計のおかげで重力ベクトルを見つけることができるのは正しいですか?もしそうなら、センサーの読み取り値をどのように解釈する必要がありますか?
android - ランダムな値を返すAndroid磁力計
デバイスのコンパスの角度をファイルに記録するAndroidアプリケーションを構築しています。この学位を取得するには、次の2つの方法があります。
方法1:
方法2:
デバイスを北方向(約360度)に配置して、両方の方法を試しました。
方法1は完全な結果を返しますが、残念ながらこの方法は非推奨です。
- 359.6567
- 359.5034
- 359.859
- 359.76212
- 359.8878
- 359.87048
- 359.8356
- 359.80356
- 359.81192
- 359.7671
- 359.84668
- 359.88528
方法2も良好な結果を返しますが、場合によっては(ランダムに)誤った次数を返します。
- 359.91495
- 359.83652
- 263.67697
- 359.67993
- 359.70038
- 359.688
- 359.71155
- 359.70276
- 359.6984
- 359.6429
- 270.6323
- 359.62302
- 359.49954
- 359.44757
- 359.47803
- 359.4947
- 359.39572
ご覧のとおり、2番目の方法では、いくつかの誤った度がランダムに返されます。デバイスはキャリブレーションされており、最初の方法では完璧な結果が返されるため、問題は2番目の方法にあると思います。助けてくれませんか?
android - 非滑らかなデータを返す Android 磁力計
デバイスのコンパスの度数をファイルに記録する Android アプリケーションを作成しています。この度数を取得するには、次の 2 つの方法があります。
方法 1:
方法 2:
デバイスを北方向に配置し、時計回りに 360 度サイクル全体を実行して、再び北方向に戻ることで、両方の方法を試しました。

方法 1は、ログに記録された次の JSON データを返します。
方法 2では、次の JSON データがログに記録されます。
ご覧のとおり、2 番目の方法の結果は最初の方法ほどスムーズではありませんが、北から北へ 1 回転しました。私は最初の方法を使用することを好みますが、問題はそれが推奨されていないことです。一方、2 番目の方法では、滑らかなデータはログに記録されません。皆さんの意見では、私は何をすべきですか?
android - Android磁力計は高度を計算します
Android磁力計を使用して自分の位置の高度を取得することはできますか? はいの場合、どのように高度を計算できますか? 私が理解したように、Android API から x、y、z の 3 つの座標とテスラの磁場強度を取得します。これらの座標をオイラー角に変換して位置を特定することはできますが、高度を計算できるかどうかはわかりません。誰かがそれについて知っていて、GPSを使用せずに高度を把握するのを手伝ってくれますか?