姿勢の算出方法に目途がつきましたので、M5StickC Plus をパッド代わりに Blender を操作します。いくつか、必要なライブラリ等をインストールして準備します。
Pyserial
Blender の modules フォルダに serial フォルダをコピー。
C:\Program Files\Blender Foundation\Blender *.*\*.*\scripts\modules
Blender 側
Pyrhon スクリプト。
M5StickC Plus 側
姿勢算出方法を書き込んだ M5 から、Bluetooth 経由で Win に Sertial 通信。ワイヤレスの方が動かしやすいかなと思いましたので、BTを選択しました。
XYZ の回転角をコンマ区切りで投げると、Blender に角度が入りました。M5 を90度傾けると Blender 内の矩形モデルが約45度傾斜します。Blender 側の Python スクリプト内の係数を2倍に設定すると M5 とモデルがシンクロするようになりました。OK、これで完成です。
Blender に地形やバイクの3Dモデルを取り込んで動かしてみました。が、テスト時の矩形と異なり安定性がイマイチでした。原点がずれている、あるいは大きなモデルだと、ビビりが目立ちます。マウスの方が安定して動かせるので、不自由ささえ感じます。制御が甘かったようです。
その点、ゲームはよくできていると改めて感心。さすがプロですね。そういえば、近年のドローンではジャイロも使って制御していたはずです。MEMSセンサーやGPSセンサー、小さなセンサーを組み合わせて姿勢や位置を制御しているのでしょう。
今回、M5 と Blender で実用的なモノは作れませんでしたが、制御技術の一端に触れることができました。また、一連の作業でセンサーの特性だけでなく、その利用法、接続の仕方、コードの書き方なども(浅いなりに)学ぶことができました。仕事で触っていた MEMS センサーに対しても理解が進みました。
やはり手は動かすべきです。今後も続けましょう。
やはり手は動かすべきです。今後も続けましょう。
0 件のコメント:
コメントを投稿