問題タブ [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.
iphone - iPhoneでコンパスを作成するにはどうすればよいですか?
グーグルで検索した後、私は自分自身に尋ねます:
iPhone 3GのGPSセンサーでコンパス(機首方位/方向を簡単に表示)を作成することは可能ですか?
これは、デバイスが動いている場合にのみ可能であると私は疑っています。
どんなアイデアでも大歓迎です。
iphone - xyz磁力計から磁北を取得する(iPhone 3.0)
私は実際にiphone開発ボードからの質問を再投稿しています。私はそれを尋ねませんでした、しかし私はその答えを見つけようとしたときにそれを見つけました。まだ誰も返答していないので、ここに投稿してみようと思いました。
助けてくれてありがとう!
CLHeadingの生のxyz値から磁気方位を計算するアルゴリズムの詳細を知っている人はいますか?さまざまな磁力計でも機能する、これに対する一般的なアプローチが必要だと確信しています。
accelerometer - 絶対方位の決め方
私はxyz加速度計と磁力計を持っています。ここで、両方を使用してデバイスの向きを決定したいと思います。私が見ている問題は、デバイスの向きによっては、センサーを異なる順序で使用する必要があることです。
例を挙げましょう。デバイスを自分の方に向けると、ロールとピッチの両方の変化を加速度計で判断できます。ヨーには磁力計を使用します。
しかし、デバイスを水平に置いた場合 (つまり、天井に向けて 90 度回転させた場合)、加速度計が変化を検出しないため、アップ ベクトル (現在は水平) の変化は通知されません。これは、磁力計で検出できるようになりました。
したがって、問題は、どちらをいつ使用するかをどのように決定するかです。両方のセンサーでこれで十分ですか、それとも他に何か必要ですか?
ありがとう
iphone - iPhoneで動きの加速度を振動やノイズと区別する方法
スタックオーバーフローの皆さん、こんにちは。
短縮版 :)
iPhone の動きのみに関連する (x,y,z) 加速度値を使用する必要があります。明確にするために、車のような環境を考えてください。iPhone の加速度計は非常に敏感です。加速度値を 100Hz の周波数でログに記録すると、ノイズ、車の振動、および iPhone の動きのように方向付けられていないその他の加速度ベクトルに関連する非常に多くの値が存在します (たとえば、ダンパーの振動により、z 軸に沿った加速度ベクトルが発生します)。
言い換えれば、モーション方向と同じ方向 (特定のオフセット内) の加速度を分離できる方法で、加速度検出をフィルタリングする必要があります。
より深い考察 :'(
明らかに、y 軸が移動方向と重なるように iphone の位置を固定できます (前の車の環境では、これは iphone の y 軸を正面方向に平行に固定することを意味します)。問題は、iPhone の相対モーメントを許可する必要があることです。iPhoneの位置が固定できません。
まず最初に、ノイズと振動によって生成される値を分析し、その大きさが通常の車の加速度よりも非常に大きいことが多いことを突き止めました。大きさをフィルタリングすることは、問題を緩和するための良い考えですが、解決策ではありません。一方では、大きさが範囲内にあるため、多くの不要なノイズ加速度がフィルタリングされません。他方では、多くの必要なモーション加速度が範囲外であるため、フィルタリングされます。範囲。
iPhone 3GS では、磁力計を使用して磁北に対する方位角を測定できます。これを使用して動きの方向を見つけることができますが、問題はまだ残っています。magneticHeading の値は、常にデバイスの上部に対して相対的に測定されます。そのため、iPhone は正面方向に沿って固定する必要があります。
他の解決策は考えられません。アイデア?タンク・ユー!
android - Android の磁力計のソフト リセット
電話(SE Xperia x10 mini)を数回振ったりタップしたりすると、磁力計が再調整されることに気付きました。これをより制御された方法でソフトウェア的に行う方法はありますか?
accelerometer - 生の加速度計と磁力計のデータを使用して磁気方位を計算する
私は加速度計と磁力計を持っており、それぞれが生のX、Y、Zの読み取り値を生成します。これから、オブジェクトの磁気方位を決定する必要があります。
私は三角法はそれほど得意ではありませんが、デバイスの回転に非常によく反応するだけでなく、そのようなデバイスの角度など、関連性がないと思われる動きにも反応する式をまとめました。指し示す方向に影響を与えない方法。平らに置いたり、デバイスを「回転」させたりします。
磁気方位を計算するための式は正しいと思いますが、入力のピッチとロールのラジアンは間違っていると思います。
ですから、私の質問の核心は(誰かが実際にこれを行う式を持っていない限り)、ピッチとロールに加速度計を使用して、ラジアンで角度を計算する方法です。
次に、見出しの数式自体に関する情報があれば便利です。
android - Android-getOrientationのSensorManagerの奇妙な動作
電話の向きを取得する必要があります。現時点で私はこれを書いた:
このコードを使用すると、電話を平らな面に置いたまま、表面上で回転させた場合に、電話の向きを取得できます。
私が理解していなかったのthis.actual_orientation[0]
は、[ここ] [1]で説明したように、電話をzed軸の回転であるの値を上に動かすと、回転がないのに値が増加する理由です。
誰かが何が起こるか知っていましたか?
編集
もう一つの奇妙なこと..
職場のオフィスでアプリケーションを試しましたが、前に説明した奇妙な動作がありました。同じオフィス(同じ状況)で、市場から入手したコンパスアプリを試しましたが、同じ動作をしています。電話を上に動かすと、値が一貫して変化しました。同じオフィス(同じ状況)でi-phoneコンパスを試しましたが、そのような奇妙な動作はありませんでした。
それから家に着いたら、Android携帯のアプリとコンパスアプリの両方を試してみましたが、動作しました!!携帯を上に動かしても値は安定しています...
どうもありがとう。
[1]:http://developer.android.com/reference/android/hardware/SensorManager.html#getOrientation(float []、float [])
rotation - getRotationMatrix()およびgetOrientation()を使用して方向を見つける
磁北を基準にして、カメラの外を指すベクトルの方向を取得しようとしています。getOrientation()から返された値を使用する必要があるという印象を受けていますが、それらが何を表しているのかわかりません。getOrientation()から取得した値は、電話の向きを変更しても予想どおりに変化しません(90度回転しても値は90度変化しません)。getOrientation()によって返される値が何を意味するのかを知る必要があります。私がこれまでに持っているものは以下に書かれています:
私はsensorManagerクラスのドキュメントを見てきましたが、これを解決するのに役立ちませんでした。誰かが私がこれから意味を得るのを手伝ってくれるなら、私はそれを本当に感謝します。Android2.1を実行しているNexusOneでテストしています
android - Androidの方位センサーと磁場センサーの違いは?
Androidの方位センサーと磁場センサーの違いを知っている人はいますか?
私の理解:
- 向き => デジタルコンパス
- 磁場 => 磁力計
磁力計はデジタルコンパスと同義であると読んだので、少し混乱しています。彼らは本当に何ですか?
android - ラグの原因となる磁力計?
磁石を電話に近づけたり遠ざけたりすることで、相互作用に磁力計データを使用するアプリケーションを開発しています。これで問題なく (十分) 動作しますが、磁石を電話に近づけすぎると、顕著な遅延が発生し、これらのメッセージがログに吐き出されているようです。
Tag Message AK8973 HRET = AKSC_HOF_DSS_START AK8973 HRET = AKSC_HOF_DSS_REQUEST AK8973 HRET = AKSC_HOF_DSS_REQUEST AK8973 HRET = AKSC_HOF_DSS_REQUEST AK8973 HRET = AKSC_HOF_DSS_REQUEST AK8973 HRET = AKSC_HOF_DSS_REQUEST AK8973 HRET = AKSC_HOF_DSS_REQUEST AK8973 HRET = AKSC_HOF_DSS_REQUEST AK8973 HRET = AKSC_HOF_DSS_COMPLETE
これは、たとえばマーケットで入手できるアプリ「Compass 3D」でも実証できます。ヘッドフォンを電話に直接接触させて動かすだけで十分です。少なくとも 4 ~ 500 ミリ秒の遅延が発生し、上記のメッセージが Logcat に出力されます。これは私のHTCヒーローにあります。
この遅延の原因、または回避方法についてのアイデアはありますか? これは他の電話モデルでも発生しますか?
すべてのアイデアや理論が役に立ちます!