5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【令和最新版】Switchのプロコンを連射パッド化してみた【スプラトゥーン2】

Last updated at Posted at 2021-12-28

※2022/01/09追記
 この連射パッドは数分に一回数秒間コントロールが効かなくなる現象が起きます。
※2023/01/10追記
 私が作ったこの連射パッドより高機能で、コントロールが効かなくなる現象が起きない物を @jiikko さんが作られました。以下のURLからご参照ください。
 https://github.com/splaplapla/procon_bypass_man
 jiikkoさんが作られた物も私のと同じくラズベリーパイ4を使用されているので、私の記事を見てラズベリーパイ4を買ってしまったという方も無駄にはならないことでしょう。

デモ動画

これのやり方を説明していきます。

用意するもの

  • 一般的なスプラトゥーン2をする為の環境
    • Switchをドックにセットして、外部ディスプレイを使用、
      コントローラーはProコントローラーを使用、ネットはWi-Fiまたは有線LANでスプラトゥーン2をプレイしているものとします。

連射パッドを作成するためにさらに必要なものを書きます。

  • パソコン(WindowsかMac)
    • MicroSDカードにラズパイ用OSをインストールするのに必要です。
    • 僕はWindowsなのでこの記事はWindows用の説明になります。
  • (パソコンにMicroSDカードスロットが無い場合は)MicroSDカードリーダー
  • Raspberry Pi 4 Model B
    • 僕はメモリ4GB版を使用しています。
  • MicroSDカード32GB
    • これにラズパイのOSをインストールします。
  • 3A(アンペア)、5V(ボルト)流せるUSB Type-A to Type-C ケーブル
    • ドックとラズパイを繋ぐ為のケーブルです。ラズパイとプロコンを繋ぐケーブルも必要です(つまりUSB Type-A to Type-Cケーブルは2本必要です)がプロコン付属の物がある事でしょう。USBのバージョンはUSB2.0のケーブルを使用していますが、多分USB3.0でも大丈夫でしょう。参考商品
  • ディスプレイ
    • ラズパイの画面を表示するためのディスプレイです。
    • HDMI接続ができるもの。コンセントから電力が取れるもの。
  • Micro HDMI端子を持つHDMIケーブル
    • ラズパイの映像出力ポートはMicro HDMIなのでこれが必要です。参考商品
  • キーボード
    • ラズパイに接続するためのものです。USB接続、有線接続のもの。
  • マウス
    • ラズパイに接続するためのものです。USB接続、有線接続のもの。

やり方

MicroSDカードにOSをインストールする

パソコンでの作業です。
MicroSDカードにインストールするOSは「Raspberry Pi OS」です。最近の公式的なインストール方法は「Raspberry Pi Imager」を使うことですが、僕がこれを使ってインストールしても、エクスプローラーを開いたり、パイソンコードを編集しようとしたりするとラズパイの電源が落ちてしまうなど不具合がありました。NOOBSを使ってインストールする方法もありますがこれも不具合がありました。
うまくいった方法はbuster版Raspberry Pi OSを「balenaEtcher」を使ってMicroSDカードにインストールする方法でした。その方法を書いていきます。

MicroSDカードをパソコンに接続する

MicroSDカードをパソコンに接続してください。パソコンにMicroSDカードのスロットがない場合、MicroSDカードに対応しているカードリーダーを使用してください。

「SDメモリーカードフォーマッター」をパソコンにダウンロードする

まずパソコンで↓このリンク先を開きます。
https://www.sdcard.org/ja/downloads-2/formatter-2/
0.jpg
Windowsの人は「Windows用ダウンロード」、Macの人は「Mac用ダウンロード」をクリックします。
(以下Windows用の説明になります)

1.jpg
「同意します」をクリックします。

2.jpg
パソコンにSDメモリーカードフォーマッターのzipファイルがダウンロードされたと思います。

3.jpg
そのzipファイルを展開するため、そのzipファイルを右クリックして「すべて展開」をクリックします。

4.jpg
「展開(E)」をクリック。

5.jpg
展開されたフォルダが生成されるのでそれをダブルクリックして中に入ります

6.jpg
このexeファイルをダブルクリック。SDメモリーカードフォーマッターをインストールする手順に入りますが、途中パソコン(Windows)の管理者のパスワードの入力を求められますので、入力してください。

7.jpg
Nextをクリック。

8.jpg
「I accept the terms in the license agreement」をクリックしてNextをクリック。

9.jpg
Nextをクリック。

10.jpg
Installをクリック。

11.jpg
Finishをクリック。

MicroSDカードをフォーマットする

12.jpg
SDメモリーカードフォーマッターが起動しますので、「カードの選択」でRaspberry Pi OSをインストールするためのMicroSDカードを正しく選択してください。
「カード情報」で種類がSDカードであることや、容量が(32GBのMicroSDカードを使う場合は)だいたい32GBであることを確認してください。
(USBで外付けハードディスク等がパソコンに接続されていると間違ってそれを選択してフォーマットしてしまうと大事なデータが消えてしまいますので間違えないようにして下さい)
フォーマットをクリックしてください。

13.jpg
はい(Y)をクリック。

14.jpg
OKをクリック。

これでMicroSDカードがフォーマットされて、ラズパイOSをインストールする準備ができました。

Raspberry Pi OSをパソコンにダウンロードする

↓このリンク先から「2021-12-02-raspios-buster-armhf.zip」をダウンロードするのでリンクを開いてください。
http://ftp.jaist.ac.jp/pub/raspberrypi/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2021-12-02/

36.jpg
「2021-12-02-raspios-buster-armhf.zip」をクリックしてダウンロードしてください。

balenaEtcherをパソコンにダウンロードしインストールする

↓このリンク先をパソコンで開いてください。
https://www.balena.io/etcher/

28.jpg
「Download for Windows (x86|x64)」をクリックしてダウンロードしてください。
(Macの方は「Download for MacOS」ボタンになっているんじゃないかと思います)

29.jpg
balenaEtcherをインストールする為のexeファイルをダブルクリックしてbalenaEtcherをインストール開始します。
(今回もパソコンの管理者パスワードの入力が必要になる場面があると思いますのでパスワードを入力してください)

30.jpg
同意するをクリック。

MicroSDカードにOSをインストールする

31.jpg
balenaEtcherがインストールされて、balenaEtcherが起動したので「Flash from file」をクリック。

39.jpg
先程ダウンロードした「2021-12-02-raspios-buster-armhf.zip」をクリックして選択し、「開く(O)」をクリック。

40.jpg
真ん中がSDカードで(32GBのMicroSDカードを使っている場合は)ほぼ32GBの物が選択されていることを確認し、右の「Flash!」をクリック。
MicroSDカードにRaspberry Pi OSがインストールされます。

41.jpg
MicroSDカードにRaspberry Pi OSがインストールされると、このようなものが表示されることがあると思いますが、「キャンセル」をクリックしてください。

42.jpg
右上の「×」をクリックしてbalenaEtcherを終了してください。
パソコンからMicroSDカードを取り出してください。

SwitchとSplatoon2の設定をする

Switchを起動してください。
con_usen.jpg
Proコントローラーの有線通信をONにしてください。

gyro_on.jpg
Splatoon2を起動してジャイロ操作をONにしてください。

con1.jpg
Switchは電源はつけたままこの画面で待機させておいてください。

Raspberry Piをセットアップする

先程Raspberry Pi OSをインストールしたMicroSDカードを「Raspberry Pi 4 Model B」のMicroSDカードスロットに差し込んでください。

razupai.jpg
ケーブルはこのように接続してください。
接続されずポートのそばに置かれているだけのケーブルは後ほどそのポートに接続することを示しているだけなので、まだ接続しないでください。

マウスとキーボードをUSB Type-Aポートに接続してください。
MicroHDMIケーブルでラズパイのHDMIポート0とディスプレイのHDMIポートを繋いでください。
プロコントローラーはまだUSB Type-Aポートに接続しないでください。(これからラズパイをセットアップするので、その際に電力不足によって電源が落ちるのが怖いので)

セットアップ作業の前にもう少し分かりやすくと思い模式図を作りました。こんな感じでケーブル類は接続してください。(模式図ではプロコンとラズパイが接続されていますが今はまだ接続しないでください。)
moshikizu.jpg

SwitchドックとラズパイUSB Type-Cポートを繋ぐケーブルは3A(アンペア)5V(ボルト)流せるケーブルを使ってください。そしてType-A側をドックに接続し、Type-C側をラズパイのUSB Type-Cポートに接続してください。するとラズパイが起動します。

ここからはラズパイでの作業になります。

DSC_0577.JPG
ラズパイの初回起動時にはこのようなウィンドウが表示されます。これを設定していってセットアップ作業を完了させます。
この画面ではNextをクリック。

DSC_0578.JPG
この画面ではCountryの右の逆三角形をクリックして、Japanをクリックします。
DSC_0579.JPG
Nextをクリック。

DSC_0580.JPG
パスワードを決めてくださいとのことです。使いどころは分かりませんがとりあえず決めて入力そしてNextをクリック。

DSC_0581.JPG
これもよく分かりませんがNextをクリック。

DSC_0582.JPG
Wi-Fiに接続してくださいとのことですが、今このセットアップ時に無駄に電力を消費することは避けたいのでSkipをクリック。

DSC_0583.JPG
アップデートも今はしません。Skipをクリック。

DSC_0584.JPG
セットアップが完了とのことでDoneをクリック。

DSC_0585.JPG
電力を使いたくないのでBluetoothをオフにします。右上のBluetoothマークをクリック。

DSC_0586.JPG
Turn Off Bluetoothをクリック。

DSC_0588.JPG
ラズパイをガジェットモードにするためにターミナルを開いて操作をします。
左上のターミナルアイコンをクリック。

DSC_0589.JPG
ターミナルが開きました。

DSC_0590.JPG
ターミナルに
echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
と入力してEnterキーを押します。

DSC_0591.JPG
こうなります。

DSC_0592.JPG
さらに
echo "dwc2" | sudo tee -a /etc/modules
と入力してEnterキーを押します。

DSC_0593.JPG
こうなります。

DSC_0594.JPG
そして
echo "libcomposite" | sudo tee -a /etc/modules
と入力してEnterキーを押しますとこうなります。

DSC_0595.JPG
以上の設定を有効にするために一旦再起動させるので、
sudo shutdown -r now
と入力しEnterキーを押します。するとラズパイが再起動します。

DSC_0596.JPG
再起動したら、Wi-Fiに繋ぐ為右上のネットのアイコンをクリックします。
(以下の作業でWi-Fiに繋げられなかったという方は、ラズパイのLANポートに有線LANケーブルを接続してネットに接続しても良いでしょう)
(有線LANも無いよ、繋がらないよという方も大丈夫。ラズパイがネットに繋がっていなくてもプロコン連射は出来ます)

DSC_0597.JPG
繋ぎたいアクセスポイントをクリック。

DSC_0598.JPG
アクセスポイントのパスワードを入力。OKをクリック。
パスワードはアクセスポイントであるルーターの裏側などに書かれている事でしょう。

DSC_0600.JPG
右上のネットのアイコンがネットに繋がっていることを示しています。

DSC_0602.JPG
とここで、プロコンをラズパイのUSB Type-Aポートに接続してしまいましょう。電力不足が怖いですが、
ラズパイの電源は落ちないはずです。僕の環境では落ちませんでした。

DSC_0603.JPG
プロコン連射化プログラムをダウンロードするために左上のウェブブラウザアイコンをクリックしてウェブブラウザを起動しましょう。

DSC_0604.JPG
ブラウザが起動しました。そしたら右上にLow voltage warningが出ました。ハラハラしながら作業を続けます。
URLを入力する欄に
https://gist.github.com/Bokuchin
と入力、Enterキーを押します。

DSC_0606.JPG
「adpg.sh」をクリック。

DSC_0610.JPG
右のほうの「Raw」を右クリックして「Save link as...」をクリック。

DSC_0611.JPG
デフォルトではDownloadsフォルダにadpg.shを保存しようとさせてきますが、「ホーム」をクリック。

DSC_0612.JPG
ホームフォルダが表示されますので、右下の「保存(S)」をクリック。

DSC_0613.JPG
/home/piフォルダに「adpg.sh」ファイルが保存されました。
(ラズパイがネットに繋がってないよって方は別のパソコンでファイルをダウンロードしてUSBメモリでラズパイにコピーしてください)

DSC_0614.JPG
ブラウザでhttps://gist.github.com/Bokuchin に戻り
「rapid.py」をクリック。

DSC_0615.JPG
先程と同じく右のほうの「Raw」を右クリック。

DSC_0617.JPG
「Save link as...」をクリック。

DSC_0618.JPG
「保存(S)」をクリックして、ホームフォルダに「rapid.py」を保存します。

DSC_0619.JPG
ホームフォルダ「/home/pi」に2つのプログラムが保存されました。これでプログラムは揃いました。

プロコンを連射パッド化する

DSC_0620.JPG
ブラウザは閉じてしまいましょう。
そして左上のターミナルアイコンをクリックしてターミナルを開きます。

DSC_0621.JPG
ターミナルが開きました。

DSC_0622.JPG
ターミナルに
chmod 755 adpg.sh
と入力しEnter。

DSC_0624.JPG
sudo sh adpg.sh
と入力しEnter。(これをすると/devフォルダにhidg0ファイルが生成されます)

DSC_0626.JPG
ls /dev
と入力しEnter。

DSC_0627.JPG
「hidg0」ファイルが存在することを確認してください。

DSC_0628.JPG
sudo dmesg | grep -A7 057e
と入力しEnter。

DSC_0629.JPG
hidrawの文字の次の数字を確認してください。この画像の場合hidraw3がプロコンを表すファイルです。

DSC_0630.JPG
rapid.pyをダブルクリックしてソースコードを開いてください。

DSC_0631.JPG
rapid.pyのソースコードの13行目のhidraw3と書いてあるところの数字を先程確認したhidrawの数字に書き換えてください。(この記事では先程確認して3だったので書き換える必要はありませんでした)
書き換えた方は、上のSaveアイコンをクリックしてソースコード変更の保存をしてください。
このソースコードを表示しているThonnyというエディタは×をクリックして閉じちゃってください。

DSC_0632.JPG
いよいよプロコンが連射パッド化します。
ターミナルに
sudo python3 rapid.py
と入力してEnterを押してください。
連射パッド化プログラムが実行されます。
すると写真を撮るのを忘れましたが、白い直方体のカーソルが一段下に行って、何も起きてないように見えますが、rapid.pyは実行され続けています。

usb_ok.jpg
Switchの画面を見てください、プロコンの電池マークの上に「USB」と表示されていれば成功です。
(先程のsudo python3 rapid.pyを実行してから「USB」と表示されるまでに2,3秒程かかります)
プロコンは連射パッド化されています。

tameshiuchi.jpg
プロコンを操作して、Splatoon2でボトルガイザー等を装備し試し撃ちをしてみてください。
ZR長押しでボトルの長射程モードが連射され、Lボタンで短射程モードができるはずです。


連射プログラムを終了するには

DSC_0633.JPG
連射プログラムを終了するにはrapid.py実行中のターミナルでCtrl + zCtrlキーを押しながらzキーを押す)をして下さい。
連射プログラムが終了します。


再び連射パッド化するには

DSC_0634.JPG
再び連射パッド化するにはsudo python3 rapid.pyを単に実行してもエラーが出て連射できませんでした。
一度プロコンをUSBケーブルから外し、Switchに無線で接続後、再びプロコンをUSBケーブルに繋げ、ラズパイと接続、そしてsudo dmesg | grep -A7 057eをターミナルに入力しEnter。
DSC_0635.JPG
hidrawの数字を確認してください。ほぼ確実にはじめとは数字が変わっています。ほとんどの場合、数字が1つ大きくなっている事でしょう。

DSC_0636.JPG
そして、rapid.pyの13行目のhidrawの値を書き換えて、Save。エディタを閉じる。

DSC_0638.JPG
ターミナルで
sudo python3 rapid.py
を入力、Enterで再びプロコン連射パッド化できることでしょう。

Raspberry Piのシャットダウンのしかた

DSC_0639.JPG
ラズパイの電源を消す時、USB Type-Cポートのケーブルを引っこ抜いて電源を落とすのはMicroSDカードのデータが壊れることがあるので、電源を消す時は、左上のラズベリーのアイコンをクリック。
DSC_0640.JPG
ログアウトをクリック。
DSC_0641.JPG
Shutdownをクリック。これでラズパイの電源を消せます。
その後は、Type-Cポートに繋がれているケーブルを引っこ抜いてください。

再びプロコン連射パッド化するには今までの工程を再び全部しないといけないのか?

いいえ、そんなことはありません。今までの工程の一部だけを行えばよいです。

・Switchを起動する。
・ドックとラズパイをケーブルでつないでラズパイを起動する
・ターミナルを開く
sudo sh adpg.shを実行
sudo dmesg | grep -A7 057eを実行、hidrawの数字を確認。
・「rapid.py」の13行目のhidrawの数字を上で確認した数字に書き換え。
sudo python3 rapid.pyを実行

・連射パッド化プログラムを終了するにはCtrl + zCtrlキーを押しながらzキーを押す)

参考

https://www.mzyy94.com/blog/2020/03/20/nintendo-switch-pro-controller-usb-gadget/
https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering
https://github.com/splaplapla/procon_bypass_man/blob/master/docs/setup_raspi.md
https://mtosak-tech.hatenablog.jp/entry/2020/08/22/114622

5
7
22

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
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?