問題タブ [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-ndk - Android Invensense Motion Library をバイパスして、磁力計のカスタム キャリブレーションを作成する
I2Cインターフェイスから直接、未校正、未変更の磁力計チップから生の値を取得しようとしています。Android Java、ネイティブ ソース、および invensense コード API を HAL まで追跡したところ、Galaxy Nexus (Yamaha GMR 磁力計を使用) の場合、invensense が「適応フィルター」、しきい値フィルター (デッド ゾーン) を適用し、次にハードおよびソフトアイアンバイアスを補正するために、リアルタイムの磁力計キャリブレーションを実行します。そのキャリブレーション アルゴリズムをバイパスして、独自のものに置き換えたいと思います。
シリアル通信コードの後、キャリブレーションの前に磁力計のデータを傍受する方法はありますか? Android NDK から invensense ライブラリにアクセスできますか?
現在開発中: - Galaxy Nexus - Android 4.0 ICS - Eclipse IDE、Windows 環境
iphone - iPhoneの磁力計の値を使用して、壁のソケットからの電流の電圧値を計算するにはどうすればよいですか?
iphone を使用して壁のソケットに流れる電流を計算したい。CMMotionmanagerFramework を使用しており、その値を使用して X、Y、Z 値を取得した。これらの値を使用して周囲の磁場を計算でき、電圧レベルを計算したい。壁のソケットの。答えを教えてください。
iphone - CMCalibratedMagneticFieldは更新されません
CMCalibratedMagneticField常に戻ります0。
CMAcceleration値をCMMagnetometerData返し、値も返します。バイアスCMCalibratedMagneticFieldのない磁場なので、必要ありません。
私はiPhone4Sでテストしています。
android - グローバル座標での磁場値の取得
Androidアプリケーションの場合、グローバル(世界)座標系の軸全体の磁場測定値を取得する必要があります。これが私がこれを実装する方法(推測)です。必要に応じて訂正してください。また、質問はタスクのアルゴリズム部分に関するものであり、センサー用のAndroidAPIに関するものではないことに注意してください。私は後者の経験があります。
最初のステップは、TYPE_MAGNETIC_FIELDセンサーデータ(M)とTYPE_ACCELEROMETERセンサーデータ( )を取得することGです。2つ目は、Androidのドキュメントによると使用されることになっていますが、加速度計は純粋な重力を提供していないように見えるため、TYPE_GRAVITY代わりに使用すべきかどうかはわかりません(これも)。G
次のステップは、を介して回転行列を取得することです。getRotationMatrix(R, I, G, M)ここで、RとIはそれに対応する回転行列と傾斜行列です。
そして今、最も疑わしい部分に行きます:Mベクトルを世界の座標系に変換するために、私は乗算すると思います[R * I] * M。
これが磁場の読み取り値を別の基準に変換するための正しい方法かどうかはわかりません。また、上記のものに加えremapCoordinateSystemて使用するのか、それとも代替品として使用するのかわかりません。
すでにこのことを行うソースコードが存在する場合は、リンクを投稿していただければ幸いですが、この特定のタスクに大きな汎用ライブラリ(拡張現実サポートなど)を使用したくないのは、できるだけシンプルに保つのが好きです。
PS
わかりやすくするために、元の投稿にいくつかの情報を追加することにしました。
デバイスがテーブルの上に置かれ、その磁気センサーからデータを継続的に読み取ると仮定します。各測定値には3つの値が含まれ、デバイスのローカル座標系である軸X、Y、Zの磁場を示します。私は、環境フィールドの変動(ローパスフィルターによって平滑化される)を無視できると考えているので、この3つの値は、デバイスが所定の位置にある間はほぼ同じままである必要があります。デバイスを任意の軸を中心に回転させると、ローカル座標系が変更されるため、値が変更されます。ただし、フィールド自体は実際には変更されません。したがって、ローカルのX、Y、Zフィールド測定値をそのようなX'、Y'、Z'に変換して、デバイスがその場所から移動されない(回転するだけである)場合、デバイスの回転に関係なくそれぞれの値を保持するようにします。
上記のアルゴリズムを実装し、提案された変換によって取得された値X'、Y'、Z'に定期的で目立つ変化があったため、何か問題があります。
PPS
時折、SOで私の質問の正確な複製を見つけました-デバイスの回転とは関係なく、磁場ベクトルを取得するにはどうすればよいですか?-しかし残念ながら、答えには私の提案が含まれており、その質問のOPはそれらが機能しないことを確認しています。
android - Android磁力計の読み取り値を世界の座標空間に変換するには?
Android センサーに関するプログラミングを書いていますが、磁力計センサーの読み取り値に混乱しています。
磁力計は、電話の 3 つの軸の磁気強度を報告します。そして、同じ場所で、電話の向きが変わると、磁気の読みが劇的に変化することを観察しました。ただし、私の理解では、特定の場所での地球の磁場は、電話の配置ジェスチャーに関係なく、比較的安定している必要があります。
それで、私の質問は、生の読み取り値を 3 軸磁力計センサーから世界の座標系に変換する方法はありますか? 加速度計と方位データは、携帯電話でも利用できます。もしそうなら、電話の向きが変わっても、変換された磁気は同じであるべきだと思います.
Android のソース コード、特に getOrientation() 関数と getRotationMatrix() 関数を参照しました。彼らのコード実装から助けを得たいと思っていました。でもよくわからなかった。誰かがこれらの関数のアルゴリズム原理について説明できますか?
関数のコードへのリンク: http://www.netmite.com/android/mydroid/cupcake/frameworks/base/core/java/android/hardware/SensorManager.java
ありがとう!私はこの質問の解決策を本当に心配しています。
iphone - iOSの金属探知機アプリを実装するにはどうすればよいですか?
電話の周囲の磁場に反応する金属探知機アプリを実装したいと思います。
iPhoneの磁力計から磁場の読み取り値を読み取るにはどうすればよいですか?磁力計の測定値に直接アクセスするためのサンプルコードを持っている人はいますか?
ありがとう!
calibration - 永久磁場の存在下での磁力計の校正
私たちが開発しているカスタム Android デバイスでは、磁力計が内蔵スピーカーのすぐ近くに配置されています。スピーカーの永久磁石が磁力計の値に影響を与えています。x、y、z 値は、磁力計が報告できる最大値に達しています。
この問題は再キャリブレーションで解決できますか? これにはハード アイアン キャリブレーション手法を使用する必要がありますか? これは磁力計ドライバーで処理できますか、それともファームウェアでのみ行う必要がありますか?
android - 道順を取得するためのAndroidモバイルの磁力計センサー
これは、ある条件が真のときにAndroid携帯電話を振動させることを目的としたコードです。方位角(磁力計から取得)が所定の範囲内になくなるまで振動するはずです。
しかし、私が電話をどちらの方向に向けても、それは決して振動しません。ステートメントには入りますが、ifステートメントには入りませんwhile。そして、バイブレーション機能が機能しています(つまり、電話が壊れていません)。私の目的は、北東西を見つけることです。
私は何が間違っているのですか?
ios - ios磁力計:キャリブレーションビューの強制表示
機械式コンパスのユーザーとして、磁力計が提供する方位が45度以上ずれていることがよくありますが、その場合はキャリブレーション表示が表示されませんでした。
テストしたり、屋外でアプリを使用したりする場合、コンパスビューが表示されたときに磁力計を調整します。これはうまくいきます、これは必要なようです。
8の字の動きで頻繁にキャリブレーションを実行することで、多かれ少なかれ正確な見出しを実現できる場合は、アプリのユーザーに不正確な見出しを表示したくありません。
コンパスビューが表示されるたびに、磁力計のキャリブレーションビューを強制的に表示するための解決策を知っている人はいますか?
ここですべての(?)投稿を検索しました。同じような考えを持っていたのは1人だけでしたが、答えはありませんでした。