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

フライトシミュレータのモーションシミュレータ化、まだくじけずに続けています。

アクチュエータ連結部のガタ減らし

リニアアクチュエータの連結部分の上側が特にガタが大きいので対策しました。この部分もキャスターの車輪を外したものを流用していて、元々の車輪の軸がΦ8でした。しかしリニアアクチュエータの取り付け穴はΦ6です。アクチュエータの穴を広げるか細い軸を用いる必要がありますが穴を広げると強度が落ちそうなので細軸を採用し、M6の半ねじボルト(のねじを切っていない部分)で連結しています。
Φ8の穴にΦ6の軸なので遊びが多くてガタつきます。何かいい方法はないかと物色していたらモノタロウでこんなものを発見。バイクのパーツを取付ける部品らしいです。

MositonSim3-1

キタコ ツバ付カラー

内径がΦ6.2、外形がΦ8.2。これを軸受けに挟み込んでみます。

MotionSim3-2

こんな感じ。外形Φ8.2はちょっと固いけど押し込めば入りました。

これで少しガタが減りました。まぁそもそもキャスター自体のガタもあり、こちらは改善できないんですが。

モータードライバー

そしてラダーペダルやフライトヨーク、PCモニターの取付け方法も考えねばなりませんが、これらは置いといて電気的なところを進めます。

モータードライバーは瞬間最大で4.5A流せるTB6643KQを用います。リニアアクチュエータは定格4Aという事になっていますが、実測すると(私が座った状態で)1Aちょっとしか流れてなかったので余裕だと思います。

MotionSim3-3

TB6643KQ。秋月電子で購入。

これを用いてドライバー基板を作っていきます。

MotionSim3-4

基板を削って・・・

MotionSim3-5

実装しました。

MotionSim3-6

放熱を兼ねて金属部分にねじ止めします。

フィードバック系

今回使用するリニアアクチュエータはDCモータに電流を流すだけの制御です。端まで行くとストップする仕組みは内蔵していますが、RCサーボやステッピングモータの様にオープンループで制御する訳にはいかず、何らかの方法で動作量を検出してフィードバックしなければなりません。 大体こういう時はボリューム(可変抵抗)を使いますが、今回の構造でボリュームを取付けるのは結構面倒に思えます。そこでこれを使ってみることにしました。

MotionSim-6

GY-521(6軸ジャイロMPU6050搭載)

だいぶ前にAliExpressで140円くらいで買ったジャイロ3軸+加速度3軸のセンサーです。座席に貼付けて加速度から傾きを検出しようという魂胆です(ジャイロは使いません)。

このセンサー、マイコンとはI2Cで接続します。センサー自体は3.3V系なので電源には降圧レギュレータが入っていて5V電源を接続できますが信号は3.3Vのままです。マイコンにはArduinoを使おうと考えていますがUNOだと5V系です。ProMiniなら3.3V版を保有していますが今回の用途はPCと常に通信するためFT232RL等のUSBシリアル変換回路を外付けする必要があり面倒です。

ところでArduinoのI2Cの使い方を調べていると5V系Arduinoを3.3VのI2Cデバイスに接続する場合はレベル変換回路を入れろとあちこちに書いてあります。でも本当にレベル変換が必要なのでしょうか?
I2Cはバス全体をプルアップしておき、各デバイスはオープンドレインでLに落とすことにより通信を行います。ならば3.3Vでプルアップしておけば少なくともデバイスを壊す事はない様に思えます。問題は5V系Arduinoが3.3VをHと認識してくれるかどうかですが、ATmea328Pのマニュアルを見ると入力のVIHは0.6VCCとなってるのでVCC=5Vの場合は3V以上ならHと認識してくれる筈です。H=3.3Vで通信すると0.3Vしか余裕が無いのは気持ち悪いですが実力はもう少し余裕があるでしょうし、実用上はイケるんではないでしょうか(今のところイケてます)。
実際の回路ではGY-521モジュール内で4.7KΩを経由して3.3V電源に接続されています。一方ArduinoUNOもデフォルトでは20K~60KΩで5V電源に接続されている様です。Arduinoのプルアップは切り離しもできる様ですが仮にそのまま動作させた場合、Arduino側を最悪値の20KΩで考えると・・・「3.3V—4.7KΩ—バス—20KΩ—5V」という接続にないります。この時バスには3.7Vが加わる事になりますがMPU6050の入力最大定格はVDD+0.5V(=3.8V)となっており、これもギリギリですが規格内です(それに実際に定格を大きく超えようとするとデバイス内の保護ダイオードが順方向になって電流が流れるので20Kのプルアップではそれ以上電圧を上げる事ができなくなり助かるはずという目論みもあります)。
・・・という事で5V系のUNOを使ってレベル変換無しでやってみようと思います(真似してトラブっても責任負えませんけどね)。

取付け

という事でArduino UNOとセンサーを取り付けたところです。まだブレッドボードなので、うまく行く様ならしっかりした基板に変更しようと思います。

MotionSim-8

Arduiono他一式、仮止めの図。

MotionSim-9

念のための非常停止スイッチ。どこに固定しましょう?

簡単なプログラムでモーターの制御とセンサーの読み出しが確認できたのであとは実際にPCから指定した角度に座席が動くプログラムを作っていきます。

コメントを残す

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

*


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>