要約
- Bluetooth コントローラをエミュレートすることでPC からNintendo Switch の操作が可能です
- いくつかOSS が公開されていますがSwitch のバージョンアップに追従する必要があるらしく、2022年12月現在はNXBT というソフトウェアで動作に成功しました
- Bluetooth は内蔵のものではなく外付けのUSB ドングルを使用します
- MAC アドレスの先頭をNintendo 製品レンジの
94:58:CB:
に変更しておく必要があります - Raspberry Pi でも動作したためここに備忘録として残します
Raspberry Pi のセットアップ
- 本体初期設定は本題ではないため飛ばします
- pip の最新かとBT 周りのutility のインストール
sudo apt update
sudo apt install -y python3-pip
sudo apt install -y git
sudo apt install -y python3-dbus
sudo apt install -y libhidapi-hidraw0
sudo apt install -y libbluetooth-dev
sudo apt install -y bluez
- 参考: joycontrol-pluginloaderの紹介ブログ
- ※ 私の環境ではpluginloader は動作しませんでした
Bluetooth モジュールのMAC アドレスを変更する
- Raspberry Pi に外付けBluetooth ドングルを接続
- 今回は家に転がっていたこちらを使用しました(一発で動いたため相性問題があるかどうかは不明)
- Nintendo Switch にコントローラとして認識されるために、
MAC アドレスの先頭をNintendo 製品のMAC アドレスレンジに合わせて
94:58:CB:
に書き換えておく必要があるそうです - (気持ちの問題ですが)変更前の値を確認
hciconfig
- 下記コマンドを実行してMAC アドレスを書き換え
sudo bccmd psset -s 0 bdaddr 0x44 0x00 0x66 0x55 0xCB 0x00 0x58 0x94
sudo bccmd warmreset
sudo systemctl restart bluetooth.service
- もう一発MAC アドレス表示してみて変更されたことを確認
hciconfig
NXBT の導入
- NXBT のインストール
sudo pip3 install nxbt
Nintendo Switch を操作して、
コントローラの持ち方/順番を変える
の画面を起動試しにTUI を起動してみます
sudo nxbt tui
しばらく待つとPROコントローラとしてSwitch にペアリングされます
早い時はすぐ繋がるのですが、不安になるくらい待たされることもあるので心穏やかに待ちましょう
接続成功したらキーボード入力でSwitch が操作できるようになります
すごい!
NXBT Web アプリの起動
めちゃくちゃ綺麗なGUI も用意されています
すごすぎません?
ローカルでweb サーバが建ち上がるので別PC からでも
http://{Raspberry Pi のローカルIP}:8000
で表示できますControll Macro 欄にコマンドを入力して実行すればお手軽に作業の自動化も出来ます
頑張ってセットアップしておいてなんですが、どうせやりたいことはA ボタン連打とかその程度なので例として載せておきます
LOOP 1000000
A 0.1S
0.3S
まとめ
- 科学の力ってすげー!