ラダーペダルの製作 フライトシミュレータ用
はじめに
私はマイクロソフトのフライトシミュレータで遊ぶ事があるのですが、ラダーの
コントロールは今までオートコーディネートに設定していました。
これだと特に操作しなくても調和の取れた飛行ができるのですが、それなりにリアリ
ティーを出す為にはやはりペダルで操作したいと常々思っていました。しかしラダー
ペダルって(特に熊本では)売ってるところを見かけないし、通販で調べても結構高
いので、まずは自力でできるところまで製作してみる事にしました。
計画
まずはUSBでの通信をどうするかですが、PICマイコンの中にUSBインターフェースを
搭載したものが比較的安価にあるのでこれを使う事にしました。といってもPICマイコン
をこれまで使った事がないので、ここから始めなければなりません。
PICライター
最近のマイコン工作ではフラッシュ内臓のものを用いるのが当然になっており、PIC
も同様です。 そこで必要となるのはフラッシュライターですが、さすが世界中の
マニアに使われているだけあって簡単に作れるライターも多数公開されています。
この中から(たぶん)最も有名なJDMライターと呼ばれるものを、
このサイトを参考に製作しました。
それがこれ。当初は
ブレッドボードのままで、使っていました。
とりあえずこのライターで8ピンや16ピンのPICを幾つか試してみて少し慣れたので、
いよいよ本題のラダーペダルに取り掛かります。
PIC18F2550
ざっと見渡す限り最も安価にUSBを使えるマイコンがPIC18F2550です。秋月電子から
このマイコンを搭載したマイコンボードAE-2550が1000円で出ています。
PIC18F2550単体ならDIP24ピンパッケージで400円なのですが、とにかく初心者なので
確実な方を選びます。といいつつ後々の為、単体のDIP版も購入しておきました。
PICも18FXXXになるとC言語での開発が主流の様です。マイクロチップのサイトから
コンパイラやUSB関連ツール一式をダウンロードしました。
USBの処理
USB機器はPCに接続されると自分が何者であるかをPCに知らせる為の通信を行います。
この内容も何段階かに分かれていて、それぞれの内容を「ディスクリプタ」と呼びます。
USB機器を作成するにはこの「ディスクリプタ」を書いていく事が大きなステップです。
さてUSBでは扱う機器の種類によって「クラス」というもので分類がなされています。
この中でラダーペダルの様な機器はHIDクラス(Human Interface Device)に分類され
ます。HIDクラスはキーボードやマウス、ジョイスティック等のよく使われる機器
(そして主にHumanとのInterfaceを行うDevice)の為のクラスで、他のクラスでは必要
となるPC側のデバイスドライバを作成する必要がありません。
ドライバを作成する必要がない代わりに、接続する機器の詳細を示す「リポートディ
スクリプタ」なるものを作成する必要があります。ここには、たとえばジョイスティック
であればボタンが幾つついているだとか軸がX,Yの二つだとか、そういう詳細を記載します。
で、ここでハマりました。各種書籍等をあたってみたのですが、リポートディスクリ
プタの記述について詳しい資料が見当たりません。USBインプメンターズフォーラム
が発行する資料は詳細なのですが・・・全部英語なのです。それでも一応頑張って読ん
だんですよ。。これによるとフライトシミュレータ用のラダーペダルも定義されいて
る様なのですが、これを記述したつもりでPCに読ませても認識されません。もしかす
ると「Windows側がラダーペダルなんぞ知らん」のかもしれません。
結局のところ、ジョイスティック用のサンプルを流用して「1軸のみのジョイスティ
ック」として記述しました。PC側ではこの1軸ジョイスティックをラダーペダル
として割り当てることでとりあえずは問題なく使えています。(どなたか市販のラダー
ペダルがどういう扱いになっているのかご存知であれば教えてください)
実際のプログラム
参考までに今回製作したプログラムをアップしておきます。
再コンパイルする為にはマイクロチップ社の開発環境であるMTLABとMCC18
コンパイラ、およびUSB関係のライブラリ(USBフレームワーク)を使用します。
※このプログラムはメイントしていません(恐らく最新のMPLAB-IDEでビルドするには手直しが必要です)。
ラダーペダルやジョイスティックの製作を考えられている方は、軸やボタンの構成を自由に変更できるツールキット
OpenStickをオススメします。
※このプログラムはUSBフレームワーク一式に付属していたサンプルプログラム
を元に作成しています。また、あくまでも実験を目的としていますので本プログラム
を使用または参考にされた結果なんらかの損害が発生したとしても当方では責任は負い
かねます。
なおUSB機器を正式に使用する為にはUSBインプリメンターズフォーラムからベンダー
IDを取得し、デバイスディスクリプタに書き込む必要がありますが、本プログラムでは
マイクロチップ社のIDのままになっています。。
秋月のPIC18F2550マイコンボードに書込む
JDMライタとAE-2550ボードを接続した図です。
この後JDMの回路部分はユニバーサル基板上に作り直しましたがマイコンボードを指す
ソケットはブレッドボードのままです。
しかしブレッドボードって便利ですね。いろんなタイプのPICマイコンに対応する為に、
もしちゃんとしたソケットを使っていたら高価なZIFを使うか、又はいろんな種類のソ
ケットを搭載するか、とにかくお金がたっぷりかかるところなのですが、このブレッド
ボード(1つ150円の品)なら大抵のものが挿せてしまいます。
構造的な部分
ラダーペダルは右足と左足、それぞれにペダルがついていて、右を踏むとラダーが右に、
左を踏むと左に振れます。タキシングで使うブレーキの操作もできる様ですが、これに
ついては今後の課題とします。市販のペダルをみると実際にペダルが二つ付いていて、内
部のギアか何かで連動している様ですが、この構造を自作で作るのは難易度が高そうです。
そこで今回は写真の様な「シーソー式?」を採用しました。以前、戦闘機か何かの
コクピットの写真を見たらこんな構造になっていた様な気がします。
本体は「塗装合板」の切れ端を使用した木工工作です。
全体像。。。
ギア部分。。。
「シーソー」の中心軸をボリュームにつなぎ、マイコンのADコンーバータで角度を
検出します。 「シーソー」だけだと回転角が少ない気がしたのでギアで約2倍に増速
しました(しかしこれは無くても良かったかもしれません)。
マイコン部分

秋月のボードは別の用途に使う為取り外しました。この写真はPIC18F2550のDIPパッケージ版
に変更した後です。 ICソケットをケチって必要ピンだけ付けています。
USBコネクタはmini-Bタイプを用いルーペを見ながら半田付けしましたが、これも
普通サイズのコネクタを使った方が良かったと思います。
回路
回路は下図の様なシンプルなものです。
VR1にてペダルの踏み加減を電圧レベルに変換し、マイコンのADコンバータで読みます。

PDFでみる
使ってみる
USBポートに接続するとデバイスとして認識されます。コントロールパネルの
ジョイスティックアイコン(ウチはまだWindows2000ですがXPだとゲームコントローラアイコン
かもしれません。)を選ぶとデバイスが表示されます。ここで今回作成したラダーペダルを
選択すると動作確認及び微調整が行えます。
次にフライトシミュレータを立ち上げてラダー操作に使用するデバイスとして今回の
ラダーペダルを選択し、オートコーディネートをOFFにします。
使用してみるとたしかにペダルの操作でラダーをコントロールできており気分は上々です。
しかし本物を使った事がないのでリアリティがどうなのかはわかりません。
関連ページ→フライトヨークの製作をこちらに掲載しています。
関連ページ→USBのフライトヨークやジョイスティックを手軽に作成するツールキットOpenStickをこちらに掲載しています。
Created by ez-HTML
トップページへ
ほいほい堂本舗