2013/06/29

秋月 小型圧電振動ジャイロモジュール AE-GYRO-SMD/ENC-03R の使い方

秋月電子通商で売っている小型圧電振動ジャイロモジュール AE-GYRO-SMD(ENC-03R) はお安くてとても良いのだが、使うのに非常に苦労した。
いろいろなサイトで使用報告があがっている。
ジャイロの出力する角速度から角度を求めたい訳だが、ENC-03Rの村田製作所の回路例からハイパスフィルタ用のコンデンサ(C6、C7)をショートさせ

ステップ2 ジャイロセンサの使い方 - PF-X.NET


でのドリフト補正方法を試してみるも、得られる角度の積分誤差をゼロにはできず、ある程度の時間静止状態を保った場合にオフセットをリセットする処理が必要となる。
移動平均で試したりもしたが、大した改善はなかった。
ENC-03Rの場合、温度ドリフトの他に、動かすとドリフトしたり、長時間静止状態で放置した場合も(階段状に)ドリフトしている。どういう原因でドリフトするか推定するのが困難だ。

kunizoの電子工作memo

は、非常に詳しく調査されていて、頭が下がる思いだ。やはり、ENC-03Rで角度を求めることは困難のようだ。



あれこれ、信号処理的になんとかできないか思案して、ああ、カルマンフィルタってものがあったよなぁ、arduinoで使えるライブラリないのかなと、ググってみると、ありました。

しかも、ジャイロと加速度センサーで角度を得るために作られている。センサのモジュールはENC-03Rとは違うものを使っているけど、YouTube動画を見るとうまく動いているようだ。

という訳で、ENC-03R用にスケッチを書くことに。併用する加速度センサーは、秋月の3軸加速度センサモジュール KXR94-2050を使用した。
ブレッドボードにENC-03RとKXR94-2050をさすと、x、yの対応が90°ずれるので、スケッチ側で入力ピンを整合させなくてはならない。また、入力値の補正もセンサーにあわせる必要がある。カルマンフィルタを使用する場合、ENC-03Rのハイパスフィルタはそもままで使えるので、コンデンサのショートは必要ない。



ということで、出来上がったスケッチは
に置いておきました。

さて、加速度センサーと併用すれば、角度を得ることができるようになった訳ですが、ジャイロ単体でなんとかできないものですかねぇ。