Categories: 音ゲー

【IIDX】専コンをArduino Leonardoを使ってUSBコンバーターを作る話

INFINITASが出てきた辺りで、Arduino Leonardoを使って専コンをPCと接続し、INFINITASで使えるようにする!みたいなのが地味に流行ってましたよね。それのようなモンを作りました。

厳密には、友人に頼まれて、「専コンを現存のPS2コンバーターではマトモにプレイできない」との事だったので、Arduinoでコンバーターを自作してしまおう!といったものです。

最初に作ろうとしたモノ

まず、PSコントローラーの端子から信号を取得し、Arduino Leonardoを使って作ろうと考えておりました。
その際に参考にしたサイト達。

そんでもって、Arduino Leonardoを購入したり、ジャンク屋でプレステ購入・ぶっ壊してコネクタを入手したりなどなどを実施。

上記サイトよりソースコードをお借りして、完成しました。

実際作ってみまして、友人に確認してもらったところ、

「めっちゃ空POOR出るんだけど」

と言われました。
実際、二重反応がポツポツでており、かなり空POORが出てしまう代物となってしまいました。

原因は恐らく、

①雑な配線
②ソースコードの不備
③PSコンの端子から取得することによる変換時の障害

と、思われます。いやー、光ってるんだけどねぇ。

じゃあどうするか?ということで、専コンの基盤から直接信号を拾ってきた方が早いのでは?!という結論に至りました。

新しい奴を作る

本当は、前回の友人の奴を改造する予定だったんですが、なかなか会える機会が無く、約三ヶ月ほど放置されていました。

そんな中、別の知り合いが、「専コン送るからUSBアダプタ作ってくれませんか!!」という依頼が来ましたので、その専コンで新しい構想を試みました。

参考サイト

専コンの配線を把握するために、こちらの記事にある回路図を参考にしました。

スクラッチの信号はこちらの記事を参考にしました。

ということでトライ。

必要及びあると便利な機材

IIDX専用コントローラー

[amazonjs asin=”B0002M2UAO” locale=”JP” title=”ビートマニア2 DX専用コントローラ”]

そもそもこれないと始まらないですし。

Arduino Leonardo

[amazonjs asin=”B00CO07PNY” locale=”JP” title=”サインスマート(SainSmart) レオナルド 互換 Leonardo R3 ケーブル付 ブラック”]

Leonordoと互換性のあるボードでもOK。
これは他のサイトでもよく使われてるサインスマートのボードです。

配線

[amazonjs asin=”B00P9BVKOK” locale=”JP” title=”ブレッドボード・ジャンパーワイヤ(メス-オス)(20cm)40本”]

ピンコネクタのタイプがお勧め

ドライバーとかニッパーとか

そこらへんの量販店とかで買って来て下さい

半田やら半田ごてやら

[amazonjs asin=”B01J9KPROU” locale=”JP” title=”goot 電子工作用はんだこて セット 安定感抜群の大型コテ台付き 半田こて はんだ吸い取り線 はんだ 40W BM-40S”]

持ってない人は、色々とセットになってる奴がお勧め。

色々と苦戦する

まず専コンの裏箱を開けます。

 

ぱかり。とりあえずこんな感じで本体側の基盤があるのでネジを外す。

左側に半田付けされてる箇所がある。ここは鍵盤側と連結しているコネクタ部分。
私は、ここのハンダに、

このような形で配線を半田付けしていきます。

半田付けするときは、フラックスがあると半田が乗りやすいのでお勧め。

[amazonjs asin=”B000TGJTUW” locale=”JP” title=”ホーザン(HOZAN) フラックス 鉛フリーハンダ対応 便利なハケ付きキャップ付 容量30mL H-722″]

しかしこの半田付けの作業、あまりにも半田付けする場所が狭い為、非常に難易度が高い。
半田付けした配線が、隣で半田を溶かす際に一緒に溶けて、半田付けした配線が取れてしまう。
また、隣同士がくっついてしまい、誤反応が発生してしまう状況に。

そんな苦労もあって、完成しました。

配線は謎端子のあった穴から通して、そこからArduino Leonardoを外から接続するといった構造。
ピンコネクタとか使わなければ、恐らく内臓することも可能だと思います。
私はArduino側で半田するのが面倒だったので、ピンコネクタでの接続を採用しました。

配線としては、内臓のプルアップ抵抗をしようしてます。(INPUT_PULLUPを使えば、いちいち抵抗をつけなくても良いので非常に楽。)

しかし発生する問題

いざテスト!しかし問題が二点ほど発生しました。

①スクラッチが反応しない
②半田付けしたところが衝撃などで取れてしまう

何故だ!
半田付けは俺の技術が未熟故の問題。何度つけても取れちゃうところは取れる。いやもう面倒くせえなコレ!!

ということで下記のように解決をしました。

スクラッチの反応は信号の配線がそもそも違う件

色々と調べてたらこの動画を見つけました。

自分がやりたいことがもうそのまんま動画にありました。
前の紹介した記事で、スクラッチの信号は1と5で取るみたいな事を書いてあったのでそのように配線をしたのですが、実際は1と4が必要だった。なんだって…

ということで上記を参考に5から4に半田し直しをして、ソースコードも上記を参考にしました。

ただ、INFINITASで使う前提の配列で、STARTがENTARになっています。
LR2で使うには、ENTERはキーコンフィグ上で設定できないので、適当に別のキーを割り当てました。

配線の見直し

あと、配線を見直しました。

上の動画では、専コンのケーブル自体をぶった切って、圧着端子とキボシ端子を使って分配させる方法を採用していました。
最初はケーブルを非破壊でやるつもりでしたが、安定性を取るために、そっちを採用しました。

ただ、圧着端子は手元にないので、半田と電気絶縁テープを使って分配しました。そっちの方が接触不良の心配が無いですからね。

配線のビニールをニッパなんかで剥いたら、中の線を指で捻ってバラバラにならないようにします。
その後、結合する同士の線を捻ってから半田付けをします。右の写真の通りです。

最後にテープ貼り付けて完了。前の半田付けと比べてなんと楽で安定したやり方なんだ!
最初からこっちを採用すれば良かったよ。

完成 あと使用上の注意点

そんでもって無事に完成しました。

ただ、上記動画のソースコードと配線をした場合、
必ずPSコン側の端子をUSBコンバーターもしくは電源の着いたPSやPS2などに接続してる状態で使う必要があります。

スクラッチ側はPSコンのコネクタから電気を取る仕組みだそうで、接続してないと皿が反応しないようです。

逆に、PS2で遊ぶときは、Arduino LeonardoをPS2側のUSBなどに挿して、電源を確保しないといけないようです。

空POORもほぼ?出ないようなコンバーターが感性しました。いやーここまでたどり着くのに地味に時間かかりました。こういったトライアンドエラーを繰り返す作業は大好きです。

この記事が参考になれば幸いです。それでは。

 

L.SMK

小さい頃からネットの海を泳ぎ続けている。仕事は社内SE。趣味は音ゲーとIT関連の情報収集。