Poke-Controller導入 with Raspberry Pi Pico
はじめに
本手順はWindowsにPoke-Controller with raspberry pi pico を導入する手順です
多少導入が複雑ですが、上級者以上で安く済ませたい方にお勧めの構成です
試行錯誤しながら導入しましたので、picoの手順が抜けている可能性があります(コメントにてご指摘下さい)
(シリアル変換器は中華製で不良品が多少ありそうですが数で勝負する方向け)
初歩的なサポートはしかねますので自己責任での導入をお願いします
機器構成
amazonで執筆時に購入出来る、構成例は下記のとおりです
Raspberry Pi Pico RP2040
Micro USB Type-B(2.0)<-> USB Type-A 1本 通信可能なケーブル(充電専用ではない物)
USBSerial変換器
ジャンパーワイヤー
(20cm♂♀3種混合でもっと安いものがあるかもしれませんので探してみてください)
ブレッドボード
キャプチャーボード
所持済みの物があれば流用可能です
Poke-Controller-Modified/Poke-Controller-Modified-Extensionの導入
下記サイトから、PokeConModInstall.ps1をダウンロードしてC:¥配下に保存します。
https://drive.google.com/file/d/1H639xNnzUu49gv1ymziocR1pJfip-p47/view?usp=sharing
事前にメモ帳等でコードの中身を確認し、自己責任での実行をお願いします
PowerShellを管理者権限で実行します
上記の画像のように管理者権限のPowerShellにて次のコマンドを実行します
コマンド間違えをしないようコピー&ペーストをしてください
Powershell -ExecutionPolicy Bypass -File "C:\PokeConModInstall.ps1"
PokeConフォルダはC:¥配下に作成されます
プロンプトに沿って導入したいPoke-Controllerのバージョン1・2・3を選んでから、インストールするフォルダ名のみ(ドライブ名は除く)を入力します
Poke-Controllerを起動したい場合は、インストールフォルダのPokeCon.cmdをダブルクリックで実行します(管理者として実行は無し)
以上でPoke-Controllerのインストールは完了です
ArduinoIDEの導入
ArduinoIDEをダウンロードします(1.8.19を推奨)Win7 and newer
その他のバージョンは自己責任でのご使用お願いします
https://www.arduino.cc/en/software
ダウンロードしたarduino-1.8.19-windows.exeを実行しインストールします
スタートメニューからArduinoIDEを起動します
ファイルの環境設定を実行します
追加のボードマネージャのURLに次のサイトを入力します
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
ボード情報を取得し、インストールします
picoで検索すると出てきますので3.6.0をインストールします
raspberry pi picoの導入とテスト
下記サイトからpico用のファームウェアをダウンロードします
(執筆時のversionは0.2)
ダウンロードしたファイルのusb_descriptors.cを拡張子usb_descriptors.cppに変更してください
Arduino IDEでPokeControllerForPico.inoを開きます
Raspberry Pi PicoのBOOT SELボタンを押しながらPCと接続します
ツール->ボード->Raspberry Pi RP2040 Board(3.6.0)->Raspberry Pi Picoを選択します
ツール->USB Stack->Adafruit TinyUSBを選択します
ファイル->開くでスケッチ(PokeControllerForPico.ino)を開きます
スケッチ->マイコンボードへ書き込みを実行します
C:\Users\User\AppData\Local\Temp\arduino_build_453590\libraries\Adafruit_TinyUSB_Library\arduino\Adafruit_USBD_Device.cpp.o: In function `tud_descriptor_device_cb':
C:\Users\User\Documents\Arduino\libraries\Adafruit_TinyUSB_Library\src\arduino/Adafruit_USBD_Device.cpp:371: multiple definition of `tud_descriptor_device_cb'
C:\Users\User\AppData\Local\Temp\arduino_build_453590\sketch\usb_descriptors.cpp.o:C:\Users\User\Desktop\Poke-Controller-master\arduinoIDE\PokeControllerForPico-master\PokeControllerForPico/usb_descriptors.cpp:70: first defined here
collect2.exe: error: ld returned 1 exit status
上記のようなエラーが表示されるはずですので、表示されたエラーメッセージのcppファイルを編集し、extern Cを検索してextern Cの影響範囲をすべて/* */でコメントアウトします
クラスの定義がされているがCでは読めないコンパイルエラーのようなので
CPPファイルに変更したのですが、CPPファイルに変更した場合多重定義になっているようなので力業で編集しました
正確な直し方をご存じの方がいましたらコメントください
下記3つのファイルで競合しますAdafruit_USBD_Device.cpp
hid/Adafruit_USBD_HID.cpp
msc/Adafruit_USBD_MSC.cpp
書き込み完了後下記リンクのHardwareTesterでボード情報を取得し、
POKKEN CONTROLLER VID: 0f0d PID 0092に変わっていることを確認します
問題なければPCから外します
書き込みが終わったら、Raspberry Pi PicoとSwitchを接続します
シリアルアダプターのドライバーの導入
シリアルアダプタをPCに接続します
下記のリンクからドライバーをダウンロードします
ダウンロードしたドライバを解凍し、適当なフォルダにコピーします。
解凍したフォルダの内容です。
デバイスマネージャーを開き、USB Serialにビックリマークがついている場合下記手順を実施します。
USB Serialを右クリックしプロパティを実行します。
ドライバータブでドライバーの更新ボタンを実行します。
ドライバの検索を実行します。
ドライバを解凍したフォルダを参照して次へを実行します。
ドライバーがインストールされます。
USB-Serial CH340が認識され、ポート番号が表示されていることを確認します。
接続図
シリアル通信のつなぎ方
Raspberry Pi PicoのGPIO図
PC USB シリアルアダプタ TXD ⇒ RX raspberry pi pico GP2番ピン
シリアルアダプタ RXD ⇒ TX raspberry pi pico GP1番ピン
シリアルアダプタ GND ⇒ GND raspberry pi pico GP3番ピン
GPピンの接続は番号がややこしいので、上記図と照らし合わせて完全に理解してから実施してください(自己責任でお願いします)
HDMIキャプチャーボードの接続
PCのUSBポートに接続してください。
標準ドライバを使用するため、自動でインストールされます。
Poke-Controllerの起動と動作確認
Poke-Controllerの起動はC:¥ポケコン導入フォルダ¥PokeCon.cmdをダブルクリックで実行します
ディスプレイポート番号とシリアルポート番号を設定しreload portを実行しPoke-Controllerが認識することを確認します
仮想コントローラを起動し、Aなどを連打してSwitchが動くことを確認します
Switch本体の設定
□設定->テーマ ベーシックブラックに変更します(使うプログラムによって変更する場合有り)
□設定->テレビ出力->テレビの解像度 720pに変更します
□設定->テレビ出力->画面の大きさを調整 100%に変更します
SwitchとPoke-Controllerの入力テスト
Switchの設定->コントローラーとセンサー->入力デバイスの動作チェック->ボタンの動作チェック画面の状態で、Raspberry Pi PicoをSwitchのドックに接続し、Poke-Controllerのコントローラでボタンが自動で入力されることを確認します
動かない場合の確認事項
□ HardwareTesterでボード情報を取得し、PokkenControllerとして認識している事を確認します
□ USB HUBなどでつなげている場合はPCに直接接続します
□ PCのUSBポートを変更します
□ デバイスマネージャでシリアルアダプタのCOMポートの番号があっていることを確認します
□ シリアルアダプタとRaspberry Pi Picoの接続があっていることを確認します(GPの番号に注意)
□ Switchのドックに電源ケーブルが刺さっていて通電していることを確認します
□ Steamのソフト、NZXT CAMのソフトなどOS起動時に自動実行されるソフトウェアを停止します
2024/01/22 ポケコン導入スクリプトを自作の物に切り替えました
この記事が気に入ったらサポートをしてみませんか?