MacBookAir.

WiiのClassicControllerをUSB接続に!


NESやPCSXでGameする時に、Mac用のGamePadが欲しいですね。 私の家にはWiiのClassicControllerがあるんです。これをMacにつないで兼用で使えたらいいのに。 それならば、AVR(小型マイコン)でUSB接続変換のアダプタを作ってみましょう。

V-USB

webで調べてみると、PSやWiiのコントローラを解析し、PICやAVRでUSB接続に変換するアダプタを作ってる人がいるんですね。

AVRの場合、V-USBというLibraryを使い、USBのI/Fが搭載されていない低価格AVRでも低速USB通信をさせちゃうんです。

ClassicControler

回路

回路は超シンプル。

Wiiのクラコンは3.3V動作。 なので3.3Vで12MHz動作が可能なATmega88P-20PUを使用します。

USBの5V電源から3.3Vを生成して変換器自体も3.3V動作で製作することにしました。

製作

部品点数が少ないので、簡単です。

コンデンサや抵抗は手持ちのモノで近い値のものを使いました。新たに買ったのは、

・ATmega88P-20PU--¥150/個
・12MHz------------¥200/5個入
・22pF--------------¥100/10個入

USBケーブルは廃マウスから再利用。新規部品代は500円以下です。

製作

接続

3.3VでAVRを動かすので、USBのD+、D-ラインにZ-Diは入れてません。ClassicControllerとも直結です。

3.3Vのレギュレータは200mA~500mAのものならなんでもOKでしょう。

コネクタ

Wiiコネクタ

残る問題はClassicControllerとの接続コネクタです。6ピンの特殊形状・・・

ん?FireWireのコネクタと似てるな。同じ6ピンだぞ? 試しにブッ挿してみた。

(笑) ピッタリだ!!

FireWire端子流用

完成

FireWireのオスコネクタを外囲をはずして使用。これでハード的には完成です。

さ、動くかな??

完成

デバック

そんな簡単には動きませんでした。解析資料や参考となるProgramをweb上でいろいろ検索。ふむふむ。USB通信はOKだ。

ClassicControllerとの通信手順とデコーダ、アナログスティックの初期化部分だな。

デバック

完成!

完成して動作確認
改良/デバック後、無事動きました! HIDデバイスとしてMacで認識します。アナログスティックもちゃんと使えます。システムを不安定にしかねないkextをインストールするUSB OverdriveとかWiijiとかは必要ないのです。

FRISKのケースに組み込んでみました。コンパクトです。実際のGameで使ってみましたが、反応速度の遅れなどは感じません。動作確認したのは以下。

・PCSX-Reloaded(PS)
・Snes9x(NES)
・sixtyforce(N64)
・D1X Rebirth(DESCENT1)

Windowsでも使えると思いますが・・・(未確認)

一応ソースと回路図公開しときます。先人達の解析や、世界のみなさんがそれぞれソースを公開してくれていたからこそできたんですよね。
(なので私も自分の成果は公開しときます。)

「USBWiiGamePad_K.zip」をダウンロード