2022年10月10日月曜日

M5StickC Plus + Blender

姿勢の算出方法に目途がつきましたので、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 件のコメント:

コメントを投稿