SSブログ

電車でGoコントローラで、ー走ろう山手線ーを動かす。 [DCCコントローラ]

 さて、生存報告を兼ねてになります。少し前まで、RaspPiNanoを動かすのをコソコソとやっていました。しかし、Pythonはインタプリタなので、動かすと10msecレベルの時間がすぐにたってしまい、マイコンとしてどうなんだ?という感じで、C++で書くと、CMakeは必要だし、実行ファイルをダウンロードするためにいちいちUSBを抜き差ししないといけないしと、使い勝手が悪かったので、もう少し使い勝手の良いものが出るまで待つことにして、そっと押し入れにしまいました。
 で、本題の「電車でGo!コントローラで、走ろう山手線を動かす。」ですが、先週ぐらいにやっとスイッチ版が出るということを聞きつけて、古いPS用の電車でGoコントローラをスイッチに繋げないかをちょっとネットで調べていたら、Arduinoだと、Atmega32u4だと、スイッチに繫げるらしいことがわかり、そうなると、少し前に作った、Mascon2kbdがそのまま使えそうだなあと思って、早速、ネットのスイッチ操作自動化の記事を参考に作ってみました。で、今週発売日にソフトを買いました。発売日にソフト買ったのって何年ぶりだろう?というぐらい、買っていません。
re_DSC03440.jpg

 Arudinoをスイッチのコントローラとして認識させる用のライブラリは、以下を使用させていただきました。
https://github.com/celclow/SwitchControlLibrary

 で、もともとの電車でGoマスコンのほうは、Yaasan様のを流用した自分のスケッチがあるので、そこら辺を使って、電車でGoマスコン(PSコネクタ)→スイッチのUSBと変換するスケッチを作りました。一応中身がこちらです。 
 接続イメージはこれですね。
re_DSC03437.jpg

re_DSC03439.jpg

 で、今日一日ゲームし続けてみましたが、スイッチ版だけなのかどうか知りませんが、ロードが長いのがいまいちですが、ゲーム自体は面白いです。電車でGo!コントローラはワンハンドル版はNで止まりにくいので、加速とブレーキの境目が分かりづらく、パニックになると、運転がグダグダになります。きっと本物のマスコンはNできっちり止まるんだろうなあと思います。
 その点、2ハンドルタイプだと、加速と減速のレバーが分かれているので、上手に運転できます。ですので、E235だろうと、私は2ハンドルで運転します。
 あとは、マスコン操作(スタンダード)は最初E235とかなので、ワンハンドルの物のため、Lのアナログスティックの上下のみで操作なのですが、少しゲームが進むと、205系とかの2ハンドルタイプが出てきて、こちらはLの下押しで加速、Rの右押しで減速という、動きが違うそれっぽいものが出てきたので、PS→USBの変換部分もそれに対応するよう、ブレーキについては、Lの上側とRの右側を同時に出力するようにしておきました。加速や減速の段階のアナログ値がどれにあたるかは適当に現物合わせしております。
 また、電車でGoマスコンはボタンが5つしかありません。それに対して、スイッチのコントローラはボタンが16個+アナログスティック2個とそのボタン押し込み、などがあるようで(スイッチの操作をあまりわかってなかったりするんですが)、それをそのまま割り当てるのはボタン数的に無理なので、最低限の機能で作りました。なので、途中終了や、ホーム画面へ戻るなどは単体ではできないです。USBから引っこ抜くと、コントローラを探し始めるので、その時にもともとのコントローラで戻ってもらおうというコンセプトです。(手抜き)

動作説明ですが、
<通常操作時>・・・運転時に必要な操作
電車でGoコントローラ:スイッチの本体側のボタン割り付け
マスコン減速側:Lスティックの上側、Rスティックの右側、緊急停止はZLボタンを押すようにする
マスコン加速側:Lスティックの下側
Selectボタン:Shiftボタンとする。
Startボタン:Xボタン
Aボタン:Yボタン
Bボタン:Bボタン
Cボタン:Aボタン
 これは、画面上のボタン配置とワンハンドルマスコンの並びから考えて割り付けました。
次に、
<Selectボタンを押した状態(Shift状態)の時>・・・メニューでL,Rボタンとデジタルの上下左右の操作
電車でGoコントローラ:スイッチの本体側のボタン割り付け
マスコン減速側:目いっぱい動かしてRボタンを押す
マスコン加速側:目いっぱい動かしてLボタン押す
Selectボタン:Shiftボタンとする。
Startボタン:↑ボタン
Aボタン:←ボタン
Bボタン:↓ボタン
Cボタン:→ボタン

使い方としては、USB端子でスイッチに接続。
ホーム画面で、ボタンを適当に押して、1Pとして認識させて、Selectを押しながら、→↓←↑ボタンなどを駆使して、電車でGo!を起動させれば、行けると思います。
一応、ちゃんと動いたよという証拠に、動作の所だけこっそり動画を載せておきます。


コメント(0) 

コメント 0

コメントを書く

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

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

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。