SSブログ

DCC/MM2基板をジョイスティックで操作(DirectInputのところ) [ジョイスティック]

 せっかく単線に複数電車を置けるようになったので、子供と一緒に遊べるようにジョイスティックで操作できるようにしようと考えた。
 Aruduino単独でやるのはきっと難しそうなので、PCを介することにした。
 やらなければいけないことは、
(1)PCへのジョイスティック入力(Win32APIかDirectInput)
(2)DCC/MM2基板への通信(COMポート制御)
(3)全体のソフトを何で作るか?
ぐらい。

 (1)ジョイスティック入力だが、Win32APIとDirectInputがあるようだが、Win32APIは遅延するとか書いてあるのでDirectInputにした。
 DirectInputのライブラリはC++で動くのだが、MSDNとか説明が宇宙語でわからない・・・。
 ということでいくつかのページを見た後、nanoblogさんのページを参考にC#で作ることにした。C#はやったことなかったが、C#入門のページで言うとおりに勉強すると、どうやら、使い勝手はVBのようで、言語がC++っぽいということがわかり、(3)の全体のソフトはC#でつくることに決めた。
で、DirectInputはnanoblogさんのところの言うとおりにやってみた。
ただし、私の環境は、
---------------------
OS:Win7 x64
開発環境:VS2013 Community
---------------------
とちょっと異なっている。
それでなのか、「.Net Frameworkのバージョンを3.5にして」も実行時にエラーが出た。
エラーを検索したら、Yahoo知恵袋に解決策があり、コンパイルはx64ではなく、x86でやると実行時エラーも出なくなった。(プロジェクト タブ→○○プロパティ→ビルド→プラットフォームターゲットのところ)
とりあえず、これでジョイスティックの入力をとれるようになった。
ジョイスティックは家に余っていたものを使ったのでPS2用のDualShock2が2個と、PCへの変換アダプタの「USB GAMEPAD CONVERTER JY-PSUAD2」というPSのコントローラ二つを入力できるもの。
コントロールパネル→デバイスとプリンター→「4axes 16keys Gamepad」を右クリックして「ゲームコントローラの設定」を開いてプロパティを開くと、どのボタンが何番かがわかる。今回は難しいことはしたくないので、
------------------
(1)加速
(2)減速
(3)正方向
(4)逆方向
------------------
のボタンだけで動くようにした。
dualshock2.jpg
なんか、とても制御しづらい。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0