ジャイロセンサを試してみる
まず、ジャイロセンサのキットを秋月で買ってきました。完成品モジュールの方が安いですが、チップ部品なので実験には不向きです。説明書通りに組み立てて写真のように実験用ロボに取り付けました。
今回は左右への旋回時の角度を計測する目的なので、念のため、超信地旋回での旋回中心に近い場所を狙いました。
村田のジャイロセンサのデータシートは大変あっさりしたものです。メーカーがこのようなデータしか公開していないということは、おそらく使用に際してのノウハウが多く、顧客の要望に応じて個別に技術対応しているのではないかと思います。
アマチュアはアマチュアらしくお座敷実験でノウハウをつかむのが良さそうです。
データシートにはこんな参考回路が載っています。
秋月のキットも基本的には同じです。ネット上でたくさんの方が議論している通り、入力に微分回路が入っているので、検出できるのは角加速度のように思われます。
ともかく計測してみたいと思います。
計測方法は、ロボットを1秒ほど超信地旋回で旋回させ、そのときのジャイロセンサモジュールの出力(オペアンプの出力)をオシロで確認します。
■微分回路ありの場合
データシートどおりの回路の場合、波形はこんな風になります。時間軸は500ms/div 電圧軸は500mV/divです。
見たところ、角加速度らしいプロットです。下側のチャンネルBはモーターの駆動期間を示しています。Hレベルのときにモーターを駆動しています。
駆動時間のほとんどは、ほぼ等角加速度運動をし、モーター駆動停止近くになると角加速度が小さくなっているのがわかると思います。その後はブレーキによる急速な角加速度が発生し、おそらく下側のピーク(モーターonから1400msほど)で車体が停止しているのだと思います。
問題は、その後速やかに無信号時の電圧に戻らないことです。微分回路の時定数が大きいのでやむを得ません。
これだと、手ぶれ補正やラジコンヘリのテール制御などには使えますが、「ジャイロコンパス」は無理でしょう。角速度を直接読む必要があります。
■ダイレクト接続の場合
微分回路の4.7uFのコンデンサをショートし、ジャイロセンサのVoutを直接アンプに入れます。
このときの波形はこんな感じです。
こんどは角速度を表しているのがわかると思います。前の測定結果と突き合わせると、よく適合しているのがわかります。駆動開始近くはほぼ等角加速度運動、終了近くになると角加速度が小さくなってます。モーター駆動停止と同時に角速度は直線的に低下し、開始から1400msほどでゼロに戻ります。
問題は、無信号時の電圧が0.5V程度と低いことです。これは当たり前です。センサに電圧オフセットをかけていないからです。
オペアンプの出力のスイング電圧は、レールツーレールのような特殊なものを使わない限り、よくても電源電圧の8割ぐらい(この回路は5Vだからスイングは0.5Vから4.5Vくらい)ですから、下側の角速度計測値は当てになりません。
この辺をなんとかした回路を設計することにします。
« PICでPSDの測定結果を距離に変換 | トップページ | ジャイロセンサの実用回路を考える »
「ロボット作ろう」カテゴリの記事
- Raspberry Pi3でturtlebotを動かしたいのだけど(2016.06.11)
- STM32F4のAD変換トラブル(その2)(2013.03.29)
- TrueSTUDIOからEclipseへ乗り換える(拾遺)(2012.07.14)
- TrueSTUDIOからEclipseへ乗り換える(その3)(2012.07.13)
- TrueSTUDIOからEclipseへ乗り換える(その2)(2012.07.07)
コメント