LoginSignup
5
6

More than 3 years have passed since last update.

Raspberry PiでNintendo Switchのプロコンを使う

Last updated at Posted at 2020-12-10

Raspberry PiでNintendo Switchのプロコンと、PlayStation3のコントローラを使う方法を説明します。
PS3は多くの解説記事がありますが、自分の忘備録として記載します。

環境

  • Raspberry Pi 4 Model B or Rasberry Pi 3 Model B++
  • Ubuntu Server 18.04
  • Nitendo Switch プロコン
  • PlayStation3 コントローラ

Raspberry Piのセットアップ

こちらの記事でUbuntu ServerでBluetoothを有効化する方法を記載したので、記事に従ってRaspberry Piをセットアップし、Bluetoothを有効化します。

プロコンの接続

プロコンをRaspberry Piに接続します。プロコンはBluetoothデバイスとして認識されるので、接続は簡単です。

Bluetoothサービスの起動

$ sudo systemctl status bluetooth
$ sudo systemctl start bluetooth

# もし実行できなかった場合は、以下ファイルに実行権限を付与して再度起動
$ sudo chmod +x /usr/lib/bluetooth/bluetoothd
$ sudo systemctl start bluetooth

一般ユーザでbluetoothデバイスが使えるように権限を付与

$ sudo usermod -a -G bluetooth {使用しているユーザアカウント}
$ sudo reboot

プロコンのペアリング

$ bluetoothctl
$ [bluetooth] scan on
{プロコンが認識されるはずなので、MACアドレスをコピー}

$ [bluetooth] pair {MACアドレス}
$ [bluetooth] trust {MACアドレス}
$ [bluetooth] connect {MACアドレス}
$ [bluetooth] exit

上記の手順でプロコンのペアリングが完了です。

デフォルトだとdev/input/js0が生成され、これがプロコンになります。ただし、rootユーザでしか使用できないので、一般ユーザで使えるように権限を付与します。

$ sudo chmod a+rw /dev/input/js0 

以上でプロコンが使用可能になります。jstest /dev/input/js0などで確認ができます。
また、Raspberry Piを再起動した後も、bluetoothサービスが有効になっていれば、プロコンのキーを押すだけで再ペアリングされます。

PlayStation3 コントローラの接続

こちらは検索すると多くの記事が見つかるので、それらも参考にしてください。

はじめにlibusbをインストールします。

$ sudo apt install libusb-dev

次に、sixpairとqtsixaというソフトウェアを使用するのでインストールします。

sixpairのインストール

$ mkdir sixpair
$ cd sixpair
$ wget "https://help.ubuntu.com/community/Sixaxis?action=AttachFile&do=get&target=sixpair.c" -O sixpair.c
$ gcc -o sixpair sixpair.c -lusb

qtsixaのインストール

必要なライブラリのインストール

$ sudo apt install python-qt4 pyqt4-dev-tools qt4-designer
$ sudo apt install libjack-jackd2-dev
$ sudo apt install libbluetooth-dev

qtsixa

$ git clone https://github.com/falkTX/qtsixa.git
$ cd qtsixa
$ make
$ sudo make install

ペアリング

まず、USBケーブルでコントローラを接続し、PSボタンを押します。正しく認識されるとlsusbコマンドでコントローラが表示されます。
次に、sixpairを実行します。

sudo ./sixpair

USBケーブルを外し、以下コマンドを実行します。

$ sudo sixad -start &

すると、sixad started, press the PS button nowというようなメッセージが表示されるので、PSボタンを押します。
接続に成功した旨のメッセージが表示され、またコントローラの4つのランプのうち1つが点灯していれば接続成功です。

こちらも$ sudo jstest /dev/input/js0でキー入力が確認できます。

参考

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6