ファミコンコントローラのUSB化
Arduio Pro microを使う
以前ファミコンのArduino Pro microのボードを使って、ファミコンのコントローラをUSB化しました。
この改造によって、ファミコンの本物のコントローラを使って、エミュレータでファミコンのゲームができるようになりました。
前回の改造は、2コンのマイクは使えない状態の改造だったのですが、今回は、マイクにも反応するような改造をしたいと思います。
まずは1コンから改造
分解
コントローラ裏にあるネジを外すと、裏蓋が外れます。もともと繋がっていた、コントローラのケーブルを取り去ります。
配線
Arduino Pro microはサイズの小さいこれを使います。
コントローラの基板についているICのピンに、電源や各スイッチの配線が来ているので、ICのピンを利用してArduinoの電源、IOピンとを細いワイヤーで繋いでいきます。私は0.1mmのポリウレタン線を利用しています。
はんだごての熱で被覆が溶けるので、被覆を剥かなくていいので便利です。細くてしなやかなところも配線がしやすくていいですよ。
ピンの場所と、ArduinoのIOピンの番号はこのようになっています。
配線が終わりました。
マイクロUSBケーブルのコネクタ部分の厚みが邪魔で、蓋が閉まらないので、マイクロUSBのコネクタ周辺の樹脂を剥いて薄くします。
こんな感じに収まります。蓋をすればハードは完成です。
プログラム
Arduinoのプログラムを書き込みます。プログラムはこちらの物と同じです。
ここからダウンロードできます。fcpad1というのが1コンのプログラムになります。
Arduinoのジョイスティックのサンプルプログラムを、ちょっと変更した程度のプログラムです。
書き込むとゲームパッドとして認識されます。エミュレータでゲームができましたが。Iコントローラ完成です。
2コンを改造
次にメインの2コンを改造していきましょう。
分解
1コンと同じく、コントローラの背面のネジを外すと、裏蓋が外れます。ケーブルは不要なので取り外します。
Arduino Pro Microを5Vモードに
2コンのマイクのアンプ回路を利用するので、Arduinoの電源の電圧を3.3Vから5Vに変更します。ボードのJ1というジャンパーするパターンがあるので、ハンダでJ1をショートしておきます。
配線
1コンと同様に、ICのピンを利用して、Arduinoの電源とIOピンとを配線します。
マイクの音に反応する回路を追加
続いで、マイクの回路を改造します。2コンには、マイクとそのアンプを目的としたIC(NOTゲート)が載っています。マイクアンプの回路はこんな感じになっています。
NOTゲート1つでマイクの微弱な信号を約1Vppくらいに増幅しているようです。このままArduinoにつないでも、正しく音声に反応しないので、音がしたらLowレベルになるような、デジタル出力になるよう回路を追加します。
マイクアンプの代わりをしているICにはNOTゲートが6つ入っています。このうち5個は未使用のままです。この未使用のゲートを利用して、音がしたらLowになる回路を作りたいと思います。回路はこちらです。
未使用のNOTゲートちょうど5個で、いい感じの回路ができました。音を検出すると、LEDが光って、最終出力はLowになります。
NOTゲートのICのピンの周りに、チップ部品を使って回路を構築しました。もともとあった0.33uFの電解コンデンサは邪魔なので、チップ部品に交換してあります。
音に反応して、LEDが光るようになりました。動作は完璧です。
ポリイミドテープでArduino基板を絶縁して、ファミコンのコントローラのなかに収めます。
(ポリイミドテープ、今は安く買えるようになりましたねぇ。)
プログラム
Arduinoにジョイスティックのプログラムを書き込みます。1コンの時は、ボタンが4つでしたが、2コンの場合はAとBとマイクの3つのボタンのプログラムになります。プログラムはこちらからダウンロードできます。fcpad2というのが2コンのプログラムです。
動作確認
FCEUXというかなりメジャーなエミュレータを使います。このエミュレータは設定で、スタートボタンをマイクに設定することができます。
マイクテストのプログラムはnesdevにある「Famicom Microphone Test」を利用しました。ファミコンがマイクの音に反応すると、0から1に数字が変わるというプログラムです。
試してみると、LEDも光って、数字が0から1に変わっています。改造は大成功です。
マイク対応USBコントローラ完成!!
マイクにも対応した、本物ファミコンコントローラのUSBコントローラができました。
これで、どんなゲームもできちゃいます。
コメント