tnksoftのアイコン画像
tnksoft 2021年02月20日作成 (2022年01月18日更新)
製作品 製作品 閲覧数 1893
tnksoft 2021年02月20日作成 (2022年01月18日更新) 製作品 製作品 閲覧数 1893

ジャンクXbox360とArduinoでパソコン用ゲームコントローラーレシーバを作る

ジャンクXbox360とArduinoでパソコン用ゲームコントローラーレシーバを作る

ゲーム機・Xbox360の初期モデルに組み込まれているゲームコントローラーのレシーバーモジュールはUSBとほぼ互換があるため、この部品を活用することで、Windowsで動作するXbox360ゲームコントローラーレシーバーを自作できます。

ジャンクXbox360

電源やDVDドライブが故障していて動作しない、いわゆるジャンク品を調達し、これを分解していきます。フリマサイトでなくても、「何でも買い取る」を謳っているリサイクルショップでなら、500円ほどで手に入ります。

上蓋の取り外し

ハードディスクを収納する部分の蓋を開け、外箱を固定している爪を外し、内側の箱を取り出します。

本体の分解

電源ボタンの真裏にある基板にレシーバーモジュールが組み込まれています。この基板の写真右下にあるコネクターがUSBにつながっているので、100円均一などで買ってきたUSBケーブルをはんだ付けしていきます。

レシーバーモジュールの取り出し

気をつけたいのが、モジュールに通すべき電圧は3.3Vで、USBの5Vよりも低いという点です。

モジュールのピン構成

3.3vツェナーダイオード(1N4728A)やレギュレーターを間に挟んで、必ず電圧を下げた状態で通電させましょう。

USBプラグの接続

これだけでパソコンからはUSB機器として認証することはできます。が、コントローラーとのペアリングにはさらに改造が必要です。

USB接続ピンの下は、シリアル通信のピンが割り当てられており、ここに信号を送ると電源ボタンのランプの制御や、ペアリングモードにすることができます。

モジュールのピン構成(2)

では、この信号をArduinoを使って送ってみましょう。下の回路図にように、電源ピンをArduinoのD2ピンに、その電源ピンの隣のピンをD3ピンに、5つあるうちの中央のピンをD4ピンに接続します。また、10kΩのプルアップ抵抗をシリアルピンに追加しておきます

回路図

Arudinoとの接続例

投稿者がGithub Gistで公開しているArduinoのスケッチをパソコンに保存して、このプログラムを書き込みます。

ペアリングの動作確認

レシーバーモジュールやArduinoに問題がなければ、電源ボタンを押すことで、Arduinoからペアリングのための信号が送信され、ペアリングができるようになります。

Windows 7や、少し古いWindows 10ならこのままいけるのですが、比較的新しいバージョンでは、OSによるデバイスドライバーの識別がより厳格になったことにより、正しいデバイスとして認識してくれないことがあります。

不明なデバイス

ハードウェア制作の範疇から外れてしまいますので、ドライバーを認識させる方法は別記事にまとめてあります。詳しくは投稿者のブログをご覧ください。

tnksoftのアイコン画像
ゴミ捨て場で拾ったPC-6001でプログラミングに出会った経緯もあり、電子工作においては、マイコンやRaspberry Piを使った機器の制作が中心です。
  • tnksoft さんが 2021/02/20 に 編集 をしました。 (メッセージ: 初版)
  • tnksoft さんが 2021/02/20 に 編集 をしました。
  • tnksoft さんが 2021/02/26 に 編集 をしました。
  • Opening
    TiagoBritoのアイコン画像 TiagoBrito 2021/08/05

    プロジェクトはある程度機能し、コントローラーがすでに接続されていれば正常に機能しますが、新しいコントローラーでは同期しません。プロジェクトでarduinonanoを使用しています。
    Purojekuto wa aruteido kinō shi, kontorōrā ga sudeni setsuzoku sa rete ireba seijō ni kinō shimasuga, atarashī kontorōrāde wa dōki shimasen. Purojekuto de arduinonano o shiyō shite imasu.

    0 件の返信が折りたたまれています
  • tnksoft さんが 2022/01/18 に 編集 をしました。
ログインしてコメントを投稿する