Poke-Controller導入 with Arduino Leonardo
はじめに
本手順はWindowsにPoke-Controller with Arduino Leonardo を導入する手順です
機器構成
amazonで執筆時に購入出来る、推奨する構成例は下記のとおりです
※この内容でなくても動作は可能な場合がありますが自己責任で実施お願いします
Arduino Leonardo互換機
USBSerial変換器
ジャンパーワイヤー
キャプチャーボード
Poke-Controller-Modified/Poke-Controller-Modified-Extensionの導入
下記サイトから、PokeConModInstall.ps1をダウンロードしてC:¥配下に保存します。
https://drive.google.com/file/d/1H639xNnzUu49gv1ymziocR1pJfip-p47/view?usp=sharing
事前にメモ帳等でコードの中身を確認し、自己責任での実行をお願いします
PowerShellを管理者権限で実行します
windows10の場合
Windows11の場合
上記の画像のように管理者権限のPowerShellにて次のコマンドを実行します
コマンド間違えをしないようコピー&ペーストをしてください
Powershell -ExecutionPolicy Bypass -File "C:\PokeConModInstall.ps1"
PokeConフォルダはC:¥配下のインストール時に指定したフォルダに作成されます
プロンプトに沿って導入したいPoke-Controllerのバージョン1・2・3を選んでから、インストールするフォルダ名のみ(ドライブ名は除く)を入力します
※途中再起動の指示が出ますが再起動は不要です
Poke-Controllerを起動したい場合は、インストールフォルダのPokeCon.cmdをダブルクリックで実行します(管理者として実行は無し)
以上でPoke-Controllerのインストールは完了です
ArduinoIDEの導入とboards.txtの書き換え
ArduinoIDEをダウンロードします(1.8.19を推奨)Win7 and newer
その他のバージョンは自己責任でのご使用お願いします
https://www.arduino.cc/en/software
ダウンロードしたarduino-1.8.19-windows.exeを実行します
PCにArduinoLeonardoを接続します
スタートメニューからArduinoIDEを起動します
マイコン単体でのArudino Leonardoの導入とテスト
NintendoSwitchControllをダウンロードします
https://github.com/interimadd/NintendoSwitchControll
Arduino IDEで新規作成、下記コードを張り付けして、スケッチ->マイコンボードに書き込むを実行します
#include <auto_command_util.h>
void setup(){
//開始
pushButton(Button::A, 400, 3);
pushButton(Button::B, 400, 3);
pushButton(Button::A, 400, 3);
pushButton(Button::B, 400, 3);
pushButton(Button::A, 400, 3);
pushButton(Button::B, 400, 3);
pushButton(Button::A, 400, 3);
pushButton(Button::B, 400, 3);
pushButton(Button::A, 400, 3);
pushButton(Button::B, 400, 3);
pushButton(Button::A, 400, 3);
}
void loop(){
pushButton(Button::B, 10000, 1);
}
書き込み完了後ボード情報を取得しVID、PIDが変わっていることを確認します
BN: Arduino Leonardo VID: 0f0d PID 0092 SN:HIDGFになっていることを確認します
問題なければPCから外します
Switchの設定->コントローラーとセンサー->入力デバイスの動作チェック->ボタンの動作チェック画面の状態で、Arduino LeonardoをSwitchのドックに接続しボタンが自動で入力されることを確認します
※こちらはマイコン単体での動作確認になりますのでPokeControllerでは下記の別のプログラムを導入する必要があります
PokeControllerForLeonardoの導入
ろっこく氏のプログラムを下記リンクからダウンロードして解凍しておきます
※2024/2/24現在ディスコードの仕様でリンク切れの為入手不可です
ろっこく氏のツイフィールにて最新の情報をご確認ください
https://twpf.jp/Rokkoku_I
解凍したフォルダのPoke-ControllerForLeonardo.inoをArduinoIDEから開きます
すぐPokeControllerを使いたい場合は下記手順でJoystick.hexを自分でコンパイルして使用してください(手順が複雑なのとキーボードが使えない為、ろっこく氏のプログラムの再公開を待った方が得策ですが・・・)
Poke-Controller Arduino Leonardo用 Joystick.hexの作成手順
https://note.com/poketsv/n/n3878d812e2fd
PCにArduino Leonardoを接続します
シリアルアダプターのドライバーの導入
シリアルアダプタをPCに接続します
下記のリンクからドライバーをダウンロードします
ダウンロードしたドライバを解凍し、適当なフォルダにコピーします。
この例ではD:\CDM v2.12.36.4 WHQL Certified
接続図
シリアル通信のつなぎ方
PC USB シリアルアダプタ TXD ⇒ RX0 ArudinoLeonardo
シリアルアダプタ RXD ⇒ TX1 ArudinoLeonardo
シリアルアダプタ GND ⇒ GND ArudinoLeonardo
HDMIキャプチャーボードの接続
PCのUSBポートに接続してください。
標準ドライバを使用するため、自動でインストールされます。
Poke-Controllerの起動と動作確認
Poke-Controllerの起動はC:¥ポケコン導入フォルダ¥PokeCon.cmdをダブルクリックで実行します
ディスプレイポート番号とシリアルポート番号を設定しreload portを実行しPoke-Controllerが認識することを確認します
仮想コントローラを起動し、Aなどを連打してSwitchが動くことを確認します
Switch本体の設定
□設定->テーマ ベーシックブラックに変更します(使うプログラムによって変更する場合有り)
□設定->テレビ出力->テレビの解像度 720pに変更します
□設定->テレビ出力->画面の大きさを調整 100%に変更します
動かない場合の確認事項
□ boards.txtの編集がきちんと完了していることを確認します
□ USB HUBなどでつなげている場合はPCに直接接続します
□ PCのUSBポートを変更します
□ デバイスマネージャでシリアルアダプタのCOMポートの番号があっていることを確認します
□ シリアルアダプタとArduino Leonardoの接続があっていることを確認します(TXD-RX←0、GND-GND)
□ Switchのドックに電源ケーブルが刺さっていて通電していることを確認します
□ Steamのソフト、NZXT CAMのソフトなどOS起動時に自動実行されるソフトウェアを停止します
2023/09/17 更新
キャプチャーボードのリンクが間違っていましたので修正しました(USBtypeCだった為)
2024/01/22 更新
Poke-Controllerのインストールスクリプトを自作のPowerShellを使用する手順に変更しました
2024/02/28 更新
Poke-Controller Arduino Leonardo用 Joystick.hexの作成手順を追加
2024/11/13 更新
TessaractOCRのインストーラーリンクの追加
その他のプログラムの導入
DMA自動化などで使用するOCRの導入
TessaractOCR github
https://github.com/tesseract-ocr/tesseract
Windows用インストーラー (2024/11/13現在の最新5.5.0)下記リンク参照
Poke-Controller-Modified/Poke-Controller-Modified-Extensionの導入で使用したps1スクリプトで導入した場合はpyocrが導入されていますが、別の手順でインストールした場合はコマンドプロンプトからpip install pyocrにて別途インストールしてください