フライトシムのモーションシミュレータ化~9~

モーション フライトシミュレーターのArduiono側ソースコードを見たいという書き込みを頂いたのでアップします。

FlightMotion6.zip

中身が行き当たりばったりで恥ずかしいので載せていませんでした。
※温かい目で見てください。
(PC側のプログラムはもっとかっこ悪いのでまだ載せていませんが、もしこちらも見たい方がおられたらコメントください)

で、この中身は自分でも殆ど忘れていますが思い出しながら簡単に説明させていただきます。

  • ジャイロ/加速度センサーのMPU6050へのアクセスライブラリは、たしか下記から貰ってきたと思います。→https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050
  • PCからは”ピッチ,バンク<改行>”がテキストで送られてきます。
    ピッチとバンクは角度の少数以下一桁までを10倍した値です(浮動小数点をさける為)。
  • PCから送られるピッチとバンク角から目標とするリニアアクチュエータの目標長を算出します。
  • MPU6050が示す加速度センサーの値でも同様にリニアアクチュエーターの現在長を算出します(加速度だけ使ってジャイロの値は使っていません)。
  • ソース中の”//各ジオメトリ”に続く数行はモーションシミュレータの各寸法で、角度からリニアアクチュエーターの長さを算出するための情報です(これら値の詳しい説明は今できませんが当時は下の様な寸法図を書いていました。ソース中の値とは変わっているところもあると思います)。
  • リニアアクチュエータの目標長と現在長から動かす方向と速度を決めてPWMの関数に送ります(速度の加減は試行錯誤で決めました)。
モーション計算用寸法図

モーターを動きをもっとスムーズにするため、この次のバージョンでPID制御にしてみようと取り掛かりましたが放置状態です。

フライトシムのモーションシミュレータ化~9~” への2件のコメント

  1. こんばんは! 今回ダメもとでリクエストさせて頂きましたが解説まで書いて頂き本当にありがとうございます。早速ダウンロードさせて頂きソースを拝見しましたが、非常に整理され見やすく、個々の動作も丁寧に解説されていて感激です。たまたまなんですが昔同じセンサーでマウスの動作をさせるというのをやっていてなんとかなるだろうと思ってましたが撃沈。
    しかたなく3Dプリンターの制御のように一度リミットスイッチにぶつけて原点として計算しようかと思ってましたがステッピングモーターじゃないのでダメかと行き詰ってました。
    まだまだゴールは見えませんがおかげさまで光がみえました。
    今後もよろしくお願いします!

    • 野島さん こんばんは。
      つたないプログラムですが参考になれば嬉しいです。
      面白いものが出来たら是非ご紹介ください。
      今後ともよろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*