フライトシムからデータを取出しアクチュエータを動かす。

フライトシミュレータでいつか実現したいものに、フォースフィードバックとモーションシミュレータがあります。
OpenStickのフォースフィードバック対応については私の技術力と英語力では苦戦している事を何度か書きました。
一方、モーションシミュレータはというと敷居が高そうで今まであまり検討しませんでした。置き場所も問題ですし。

でも今回急にやりたくなったんですよね。いきなり人間が乗れるものを作るのは大変なので、まずはシミュレータからデータを取出してラジコンサーボを動かしてみるというところから始めました。

使用するシミュレータはマイクロソフトのFlightSimulatorXです。ここからデータを取出すには、世の中ではFSUIPCという追加ソフトで取出すパターンが多い様です。これはこれで気になりますが、まずは今あるものを使ってみてから考えるという事で今回はFlightSimulatorXに標準で入っているSimConnectを使用してみます。(たぶんFSUIPCも内部でSimConnectを使っているのだと思います)。

SimConnect

SimConnectはFlightSimulatorXに標準で付いているSDK(ソフトウェア開発キット)の一部で、シミュレータ内の各種数値を読み書きする事で計器やコントローラ等を制御できるツールです。FlightSimulatorXのDVDにSDKのインストーラが含まれており、これをインストールしました(もしかするとFSXと共にインストール済なのに上書きインストールをしたのかもしれませんが今となっては判りません)。このSDKの中にはSimConnect以外にも色々な機能が含まれており、これらもいつか試してみたいと思います。
で、SimConnect の実体はSimConnect.hとSimConnect.libで、VisualStudioC++からインポート&リンクして使用します。

VisualStudio

ウチのPCにはVisualStudio2010 ExpressEdition(要はお金のかからないヤツね)がインストール済なのでこれを使います。SDKのマニュアルによるとVisualStuio2005以降に対応しているとの事なので大丈夫でしょう。

サンプルソース

SDKには多数のサンプルが付いています。この中の’Request Data’というサンプルを元にして必要な情報が取れる様に修正していきます。

プロジェクト作成/コンパイル

まずVisualStudioでWin32コンソールアプリケーションとしてプロジェクトを作成します。そしてSDKの説明に従いヘッダとライブラリを指定します。そしてコンパイルするとプリコンパイル済ヘッダのエラーが出たので安直にプリコンパイル済ヘッダを使用しない設定に変えてしまいました。これでとりあえずはコンパイルも通ってプログラムを実行できる様になりました。
→実験プログラム(VisualC++のプロジェクトツリー一式です。色々関係ないデータも取出していますが結局ロール、ピッチ、方位しか使っていません)

データ取得

‘Request Data’はシミュレータと通信し、高度、緯度、経度を取出してDOS窓に表示するサンプルプログラムです。これを変更して機体のピッチ、ロール、方位を取出し、カンマ区切りで出力します。これらの値は浮動小数点型で単位はラジアンですが、このままArduinoに送っても扱い辛いので単位を度数に変換し、更に数値を10倍して少数以下を切り捨てました。これによりArduino側では整数で扱えます。
また’Request Data’サンプルは一回データを出力したら終りでしたが、これを定期的に出力する様に変更しました。

データをArduinoに転送

これまた安直にDOS窓状で’コマンド名>COM3:’ を実行し、リダイレクトにより仮想シリアルポートに送ります。最終的にはもうちょっとマトモなやり方に変えたいと思いますが、まずは実験です。

Arduinoでの処理

カンマ区切りを分解してロールとピッチのデータを得ます(今回2軸なので方位データは捨てています)。 そして各値をサーボ用の値に変換してサーボライブラリに送ります。
→実験プログラム

サーボ

サーボは随分前にロボットを製作した時の残りのGWSのMicro2BBMGを使用しました。これはかなりトルクがあるサーボなので今回の用途にはちょっと無駄です。実は4グラムサーボも手持ちがありますが、こちらはラジコン飛行機に乗せたいので取っておきます。

リンケージ

サーボから釣り糸をリンケージに使って棒の上の円盤を傾けます。棒と円盤とは熱収縮チューブで接続しているので自由に傾ける事ができます。円盤の上には模型のセスナ172(ThingiVerseからダウンロードしてプリントしました)を乗せています。

Fusion360でレンダリングしてみました。

PlaneDisplay1

Fusion360で描いてみます。

そして実体化。動画です。

この後・・・

今回は機体の傾きをそのままサーボの角度で表していますがモーションシミュレータとなると体にかかる加速度(重力も含めて)を再現しなければなりません。SimConnectで取り出せる変数には加速度データもあるのですが、表示させると何だか思ったものと違う様です。もしかすると速度を微分して計算するしかないのかもしれません。また本当に人が乗れるヤツを作ろうと思ったらアクチュエータをどうするか、また置き場所をどうするかという大問題もあります。

・・・という事で、これまたぼちぼちやります(多分途中でくじけます)。

フライトヨークにミクスチャー、プロップレバーを付けてみる。-3-

今回フライトヨークに追加したレバーのノブを塗ってみました。
「ABS 塗装」で検索するとプラモデル系サイトが多くヒットし、そこではABSに塗装すると割れるとか脆くなるとか、あまりよろしくない事が書かれています。ちょっと躊躇しましたが今回のはプラモの様な細かい部品ではないし、もし壊れてももう一度プリントすれば良いので取り敢えずそのままタミヤカラーを塗ってみました。今のところ大丈夫そうです。

YOKEレバー塗り

青色が濃すぎたかも

 

フライトヨークにミクスチャー、プロップレバーを付けてみる。-2-

「フライトヨークにミクスチャー、プロップレバーを付けてみる。」のつづきです。
数年前に作成したフライトヨークですが、先日からまたイジり始めています。

レバー3本をベースに固定しました。止めねじの位置をボリューム直下にしてしまったので順番を間違えると取付けられない構造になってしまいました。

FlightYokeRev2

レバーとボリュームが付いていると止めねじを回せない。台座固定後にボリュームを取付ける順序で固定します。。

3本とも付きました。ノブにはまだ塗装をしていません。
スロットルに対しミクスチャーとプロップのレバーが大きすぎるので、いずれ改善したいと思います。

FlightYokeRev2_1

レバー3本取付け。

 

今回制御基板も変更します。
以前はこんな基板でしたが・・・

FlightYokeRev2_2

以前の制御基板。

配線をスッキリさせる為、OpenStick基板キット作成時の試作版(≒失敗作)プリント基板に変更します。
ボリューム、スイッチへは配電盤経由で接続しました(結局あまりスッキリした感じがしませんね)。

FlightYokeRev2_3

制御基板/配電盤

 

これでハードウェアは一応完成です。次にOpenStickConfigでコンフィグデータを作成します。
’HID Usage Tables’にはスロットルは定義されていますがプロップやミクスチャーが見当たらなかったので、プロップレバーを’Rx’、ミクスチャーを’Ry’として設定しました。

ヨークRev2のOpenStick設定

ヨークRev2のOpenStick設定

これをPIC18F2550に書き込んでWindowsのプロパティで動作を確認。
ちゃんと’X回転’、’Y回転’が増えています。

FlightYokeRev2_4

Windowsのプロパティで動作を確認。

 

早速Microsoft FlightSimulatorXでフライトしてみます。

FlightYokeRev2_5

Mooney Bravoで熊本上空を飛行。

スロットル、プロップ、ミクスチャー共、レバーに連動して画面上のレバーも前後に動くので正常動作している事が判ります。
機体はプロップレバーも試せる’MooneyBravo’です。
しかし・・・なんか違いが判りません。
プロップレバーはMicrosoftFlightSimulatorXのMooneyBravoの操縦方法のページに書かれた通り、巡行なら吸気圧34インチ/回転数2400RPMに調整しています。これはスロットルとプロップレバーで調整できています。しかしミクスチャーはTITの温度がピークになる様に調整するとの事ですが、変化させてもTITが殆ど変わりません(ところでTITはタービン温度との事ですがMooneyBravoはレシプロエンジンですし、どこのタービンなのでしょう?ターボチャージャーのタービンでしょうか?)。

レバーを追加してはみたものの、もっと勉強が必要な様です。

フライトヨークにミクスチャー、プロップレバーを付けてみる。

久々にフライトヨークをいじります。

スロットルレバーは今までこんな感じの一本だけでした。

スロットルレバー1

スロットルレバー

スロットルレバー2

適度な摩擦感を出すためフェルトを貼っています。

本物には混合気を調整するミクスチャーレバーや、機種によってはプロペラのピッチをコントロールするプロップレバー等があるそうです。
http://www.cfijapan.com/study/html/to199/html-to199/189-5-1-CSP_Operate.htm

これらのレバー搭載は製作当初から予定していたのですがそのままになっていました。それを何故か今思い立って再開です。

まずレーザーでレバーの側板を切りだします。
今まではレバーの片側だけを支えていましたが時々緩んでレバーが下がってくる事があったので今度は両側から挟み込む様に変更します。なので4枚作成です。

YOKEレバー側板1

レバーの側板切りだし。

と思ったのですが、やっぱりスロットルレバーの側板も更新する事にしたので6枚作りました。

スロットルレバー側板2

6枚切りだし完了。

次にレバーを作ります。2mm厚ステンレス版(これも以前ハンズマンのガラクタ市でかった素材)からレバーを切りだします。そしてこれまたハンズマンのドリルストッパー6mmを溶接します。

レバー

レバー。今までのと新しいの二つ。
溶接が上達しません。

ドリルストッパーには六角レンチで回す3mmのイモネジが付いていますが、溶接の際に穴を潰してしまったので開け直して3mmナベネジに変更しました。

そして台座を作ります。
今までスロットルレバーで使っていたのと同じ金具が見つからなかったのでアルミアングルを切って3つ共作り直しました。

スロットル台座

スロットル台座

仮組みして並べてみます。

レバー仮組み

レバー仮組み

スロットルレバーのノブはまだ3Dプリンターを持っていなかった時代だったので「自由樹脂」というお湯で温めて成型する樹脂で作ってあります。
新しいレバーのノブはプリントパーツにしようと思いますが、色付けをどうしましょうかね。ミクスチャーは赤、プロップレバーは青と決まっている様なのでこれに従いたいのですが、普段使っているフィラメントはABSの白です。PLAなら赤と青のフィラメントを持っているのですが樹脂変更はノズルが詰まりやすくなるという話もあるのでやっぱりABSでプリントして塗装しようと思います(ABSの塗装が難しいという話も聞きますが)。

・・・つづく

ベビースターラーメン 創味シャンタン味

いつもと毛色の違う話題ですが・・・

ベビースターラーメンには基本の「チキン味」以外にも「ソース味」や「うましお味」等、様々な種類があります。しかし私の場合、他の味を試しても結局は「チキン味にしとけばよかった」という事になります(個人的な感想です)。

しかし最近ドンキホーテで見つけた「創味シャンタン味」。

BabyStar1

ベビースター ドデカイラーメン 創味シャンタン味

創味シャンタンってちょっと前まで味覇(ウェイパー)だったアレですよね。
食べてみたところ、これ旨いです。「チキン味」に引けを取りません(あくまで個人的感想です)。

旨かったのでスーパーに寄ったついでにもう一度買おうと思ったのですが、あまり売っている店を見かけないんですよね。で、結局またドンキホーテに行きました。そしたら・・・

BabyStar2

ベビースター
創味のつゆ味

「創味のつゆ味」ってのもありました。これも買ったけどまだ食べてません。
どんな味か楽しみです。

MakerFaire TOKYO 2017

MFT2017、今日からなんですね。
今回は出展も参加も出来なくてさみしい限りです。
盛り上がってるんだろうなー。
来年は息子の入試も終わって思う存分楽しめる事を願っています。

ところで、熊本でヘボコンやるみたいですね。
しかし8月27日は用事があり、これも参加できないのです。

順番からすると今年は山口ミニメイカーフェアがあると予想しており、これがあるならぜひ参加したいと思っています。

真夏の車の換気~その2~

梅雨が明け熊本は猛暑日が続いています。そこで先日作成したベンチレータを使ってみましたが、今ひとつファンが元気に回ってくれません。
直射日光に正対すると問題なく回るのですが車の窓ガラスを通すとパワーが落ち、さらに角度がずれると止まってしまいます。やはりもう少し負荷の軽いファンにすべきでしょうか。

色々探して良さそうなものが見つからなかったのに意外と身近なところにいいのがありました。→秋月電子のこれ(¥200-)
大定格27.5Vですが6Vから回り始めるとの事。これなら前回の様な電圧クランプは外して良さそうです。また12Vの時に50mAなので前回のファン(180mA)よりかなり低負荷となります(その分パワーは落ちるでしょうけど)。

早速購入して付け替えてみました。

CarVentirator2

秋月電子で購入したファンに交換。
金属のガードは前のファンから外して取り付けました。

 

そして助手席の窓に取付け。

CarVentilator2-2

取付けました。

だいぶ改善していて窓に日光が当たっているとよく回ります。が、パネルが少し下向きになる分がロスになっており、パネルを上に向けると回転数が上がります。
またパネルがやはり重くてダクトの接着部分に力が加わるのが気になります。

そこで構造を変更し、ソーラーパネルとダクト+ファンを分離して電線で接続する事にします。
これだとフロントウィンドウとか、日当たりの良い場所にパネルを設置できます。

CarVentilator2-3

ダッシュボードにソーラーパネルを設置。

これだとだいぶ元気よく回る用になりました。
猛暑日の炎天下に設置したところ暑さがマシになった気がします。
(本当だろうか?どれだけ効果があるのか確かめるのは難しそうです)。