モーション フライトシミュレーターのArduiono側ソースコードを見たいという書き込みを頂いたのでアップします。
中身が行き当たりばったりで恥ずかしいので載せていませんでした。
※温かい目で見てください。
(PC側のプログラムはもっとかっこ悪いのでまだ載せていませんが、もしこちらも見たい方がおられたらコメントください)
で、この中身は自分でも殆ど忘れていますが思い出しながら簡単に説明させていただきます。
- ジャイロ/加速度センサーのMPU6050へのアクセスライブラリは、たしか下記から貰ってきたと思います。→https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050
- PCからは”ピッチ,バンク<改行>”がテキストで送られてきます。
ピッチとバンクは角度の少数以下一桁までを10倍した値です(浮動小数点をさける為)。 - PCから送られるピッチとバンク角から目標とするリニアアクチュエータの目標長を算出します。
- MPU6050が示す加速度センサーの値でも同様にリニアアクチュエーターの現在長を算出します(加速度だけ使ってジャイロの値は使っていません)。
- ソース中の”//各ジオメトリ”に続く数行はモーションシミュレータの各寸法で、角度からリニアアクチュエーターの長さを算出するための情報です(これら値の詳しい説明は今できませんが当時は下の様な寸法図を書いていました。ソース中の値とは変わっているところもあると思います)。
- リニアアクチュエータの目標長と現在長から動かす方向と速度を決めてPWMの関数に送ります(速度の加減は試行錯誤で決めました)。
モーターを動きをもっとスムーズにするため、この次のバージョンでPID制御にしてみようと取り掛かりましたが放置状態です。
モーション・フライトシミュレーター関連の投稿一覧
フライトシムのモーションシミュレータ化~9~
Microsoft Flight Simulator 2020 + モーション機構
モーションフライトシミュレータ強化~2~
モーションフライトシミュレータ強化
Maker Faire Kyotoにモーションシミュレータを持っていきたい
フライトシムのモーションシミュレータ化~8~
フライトシムのモーションシミュレータ化~7~
フライトシムのモーションシミュレータ化~6~
フライトシムのモーションシミュレータ化~5~
フライトシムのモーションシミュレータ化~4~
フライトシムのモーションシミュレータ化~3~
フライトシムのモーションシミュレータ化~2~
フライトシムのモーションシミュレータ化
フライトシムからデータを取出しアクチュエータを動かす。