PR

Arduino+Processing+6軸センサーで姿勢指示器

記事内に広告が含まれています。

 航空計器にある姿勢指示器風に6軸センサーの情報をProcessingで可視化してみました。

 6軸センサーはArduino101の内蔵センサーを使用してます。Arduinoで情報を処理、シリアル通信でprocessingへ情報を送信して姿勢指示器風に可視化してます。

 ▼姿勢指示器動画▼

 画質の悪い動画ですみません・・・・。

 roll軸をpitch軸は相補フィルターでドリフト補正した値を可視化。yaw廻りに関しては、6軸センサーのみでのドリフト補正のやり方が分からない(できない?)のでダミー(yaw廻り角速度)の値を入れてます。

ジャイロドリフト補正

 Processing側のソース全体を紹介しようと思っていたのですが、見難い大きなプログラムとなってしまったので概要のみを紹介します。

 基本的にPGraphicsを利用して、それぞれのパーツをレイヤーのイメージで描画させています。rollとpitchを表現しているコンパスはマスクを使用して表現してます。

▼イメージはこんな感じです▼
Processing マスク
 円形のマスク処理をすることでコンパスの水平線を表現しています。最初「arc」を使用していたのですがpitch計算する三角関数が割と複雑になってしまったのでマスク処理することにしました。

 pitchのスケールも別のPGraphicsを準備して表現しています。裏で180度分のスケールを配置しておき、描画範囲のみ表示させるイメージです。

 この要領でプログラムを作成しています。これだけの内容であればそれほど大きなボリュームではないのですが、なるべく最適化(高速化)したかったので、ダミー変数を多用したり、ループ処理を展開したりしていたら、ものすごく見難いソースになってしまいました。

コメント

タイトルとURLをコピーしました