GY-271/GY-273 磁気センサー 調べて見ました
3軸の磁気センサーとしてGY-271とGY-273が有ったので購入して調べて
見ました。結果的にはどちらも同じもので、電子磁気コンパスとして利用できる
事が判りました。
ただし、同一平面上に有るはずのXとY軸のセンサーの出力にも大きな差が有り、
利用するには、サンプルコードには記載されていない補正処理の追加が必要でした。
最後にiphoneのコンパスとの比較を行いましたが、回転位置によって誤差が
大きくなる部分も有り、メインチップにロットアウト品、あるいはチェック無しの
ものが利用されている事が想像できます。(そちらが安価な為)
それでも、精度を必要としない用途では十分実用可能で、私の個人的な利用では
全く問題の無いものでした。 以下が今回確認した内容です。
<磁気センサーの概要>
購入した磁気センサーは2種類の「Arduino」対応のもので、次の様なもの
でした。
1.型名 GY-271とGY-273
2.仕様
・電源電圧 3.3V~5V
・X,Y、Z軸の3軸磁気センサー
・I2Cインターフェイス
<関連資料>
センサーボード関連のデータシートは次のURLから入手可能です。
URL : https://www.dipmicro.com/store/GY271-MOD
http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-gy-273-hmc5883l-magnetometer-compass-tutorial/
センサーチップのデータシートは次のURLから入手可能です。
URL : https://cdn-shop.adafruit.com/datasheets/HMC5883L_3-Axis_Digital_Compass_IC.pdf
使用するライブラリーは次のURLから入手可能です。
URL : https://github.com/adafruit/Adafruit_HMC5883_Unified
<テスト内容>
センサーのテストは次の様な内容で、「磁気コンパスとして利用」する処理を
実行させる事にしました。
[目的と結果]
テストの確認目標は次のものでした。
1.購入したものの動作方法の確認
2.および、それが動作する事を確認
3.GY-271とGY-273の比較
結果としては、3軸のセンサーから出力される値にはバラツキが有る様で、
コンパスとして動作させる前にセンサーをグルグル回して各軸の座標の中心を
計算上のセンターとなる様な補正処理を付け加える事で磁気コンパスとして
動作させる事ができる様になりました。また、GY-271とGY-273との違いは、
電気的と物理的なもので、信号の出力結果は同じで有る事が判明しました。
(取り付け条件からどちらかを決定すれば良い)
[テストでの機器の接続]
[テストコード]
コードは上記ライブラリ内に有る examples\magsensor\magsensor.ino を
参考に、最初にグルブル回す事で、各軸のセンサー出力を計算軸のセンターに
補正する処理と、シリアルモニタへの出力をOLEDの画面上に表示する処理を
追加しました。具体的なコードに関してはここからダウンロードできる様に
して有ります。ご興味が有る場合はチェックして見て下さい。
また、同じ様にOLEDを使って表示をする場合は、この記事を参照して下さい。
(I2C対応でAdafruit_SSD1306 のライブラリーを使用)
[動作状況]
動作の確認は、4インチの iphone の磁気コンパスとの比較で行っています。
(北方向の矢印に注目) また、撮影は事前に本体をグルグル回して座標軸の
補正が行われた後に行っています。
なお、撮影は本体の回転が必要な為、単三x4本の電池ボックスで行って
います。
更に、iphone とOLED上の角度数値差には iphone の置き方を考慮しなかった
為180度の差が有ります。(北方向の矢印のみを注目してiphoneの置き位置
への配慮がされていません。)
見ました。結果的にはどちらも同じもので、電子磁気コンパスとして利用できる
事が判りました。
ただし、同一平面上に有るはずのXとY軸のセンサーの出力にも大きな差が有り、
利用するには、サンプルコードには記載されていない補正処理の追加が必要でした。
最後にiphoneのコンパスとの比較を行いましたが、回転位置によって誤差が
大きくなる部分も有り、メインチップにロットアウト品、あるいはチェック無しの
ものが利用されている事が想像できます。(そちらが安価な為)
それでも、精度を必要としない用途では十分実用可能で、私の個人的な利用では
全く問題の無いものでした。 以下が今回確認した内容です。
<磁気センサーの概要>
購入した磁気センサーは2種類の「Arduino」対応のもので、次の様なもの
でした。
1.型名 GY-271とGY-273
2.仕様
・電源電圧 3.3V~5V
・X,Y、Z軸の3軸磁気センサー
・I2Cインターフェイス
<関連資料>
センサーボード関連のデータシートは次のURLから入手可能です。
URL : https://www.dipmicro.com/store/GY271-MOD
http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-gy-273-hmc5883l-magnetometer-compass-tutorial/
センサーチップのデータシートは次のURLから入手可能です。
URL : https://cdn-shop.adafruit.com/datasheets/HMC5883L_3-Axis_Digital_Compass_IC.pdf
使用するライブラリーは次のURLから入手可能です。
URL : https://github.com/adafruit/Adafruit_HMC5883_Unified
<テスト内容>
センサーのテストは次の様な内容で、「磁気コンパスとして利用」する処理を
実行させる事にしました。
[目的と結果]
テストの確認目標は次のものでした。
1.購入したものの動作方法の確認
2.および、それが動作する事を確認
3.GY-271とGY-273の比較
結果としては、3軸のセンサーから出力される値にはバラツキが有る様で、
コンパスとして動作させる前にセンサーをグルグル回して各軸の座標の中心を
計算上のセンターとなる様な補正処理を付け加える事で磁気コンパスとして
動作させる事ができる様になりました。また、GY-271とGY-273との違いは、
電気的と物理的なもので、信号の出力結果は同じで有る事が判明しました。
(取り付け条件からどちらかを決定すれば良い)
[テストでの機器の接続]
[テストコード]
コードは上記ライブラリ内に有る examples\magsensor\magsensor.ino を
参考に、最初にグルブル回す事で、各軸のセンサー出力を計算軸のセンターに
補正する処理と、シリアルモニタへの出力をOLEDの画面上に表示する処理を
追加しました。具体的なコードに関してはここからダウンロードできる様に
して有ります。ご興味が有る場合はチェックして見て下さい。
また、同じ様にOLEDを使って表示をする場合は、この記事を参照して下さい。
(I2C対応でAdafruit_SSD1306 のライブラリーを使用)
[動作状況]
動作の確認は、4インチの iphone の磁気コンパスとの比較で行っています。
(北方向の矢印に注目) また、撮影は事前に本体をグルグル回して座標軸の
補正が行われた後に行っています。
なお、撮影は本体の回転が必要な為、単三x4本の電池ボックスで行って
います。
更に、iphone とOLED上の角度数値差には iphone の置き方を考慮しなかった
為180度の差が有ります。(北方向の矢印のみを注目してiphoneの置き位置
への配慮がされていません。)