見出し画像

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

Just Downloadを実行します

ダウンロードしたarduino-1.8.19-windows.exeを実行します

IAgreeを実行します
Nextを実行します
インストールボタンを実行します
何回か同じような画面が出ますがすべてインストールを実行します
インストールが完了しますのでCloseを実行します

PCにArduinoLeonardoを接続します

スタートメニューからArduinoIDEを起動します

ファイル->環境設定を実行します
設定でより詳細な情報を表示するで、コンパイル、書き込みにチェックを入れOKを実行します
ツールから書き込むボードにLeonardoを選択します
一度空のスケッチをLeonardoに書き込みます
ログの先頭部分にあるUsing boardにあるフォルダを参照します
boards.txtをエディタで開きます
285行目のvidを0x2341⇒0x0f0d
pidを0x8036⇒0x0092
に書き換えます
同じく311行目のvidを0x2341⇒0x0f0d
pidを0x8036⇒0x0092
に書き換えて保存します
再度空のスケッチをLeonardoに書き込みます
ボード情報を参照します※こちらはとても重要な部分なので毎回確認してください
BN: Arduino Leonardo VID: 0f0d PID 0092 SN:HIDGFになっていることを確認します

マイコン単体でのArudino Leonardoの導入とテスト

NintendoSwitchControllをダウンロードします

https://github.com/interimadd/NintendoSwitchControll

Code->Download ZIPを実行してダウンロードします
ArduinoIDEからスケッチ->ライブラリをインクルード->ZIP形式のライブラリをインストールを実行します
ダウンロードしたZIPファイルを参照します

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

https://cdn.discordapp.com/attachments/947422105383882752/1056239930348675145/Poke-ControllerForLeonardo.zip

解凍したフォルダのPoke-ControllerForLeonardo.inoをArduinoIDEから開きます

すぐPokeControllerを使いたい場合は下記手順でJoystick.hexを自分でコンパイルして使用してください(手順が複雑なのとキーボードが使えない為、ろっこく氏のプログラムの再公開を待った方が得策ですが・・・)
Poke-Controller Arduino Leonardo用 Joystick.hexの作成手順
https://note.com/poketsv/n/n3878d812e2fd

ライブラリをインクルードを実行します


HID-Project 2.8.4をインストールします(日本語対応版)

PCにArduino Leonardoを接続します

マイコンボードへの書き込みを実施し、ボードへの書き込みが完了することを確認します
ボード情報を取得します
BN: Arduino Leonardo VID: 0f0d PID 0092 SN:CHIDGFになっていることを確認します
※違う場合はboards.txtの書き換えを再実施してください
問題なければArduino LonardoをPCから外します

シリアルアダプターのドライバーの導入

シリアルアダプタをPCに接続します

下記のリンクからドライバーをダウンロードします

ダウンロードしたドライバを解凍し、適当なフォルダにコピーします。
この例ではD:\CDM v2.12.36.4 WHQL Certified

USBシリアルデバイスにドライバを適用します
USB Serial Portを右クリックしドライバの更新を実行します。
コンピュータを参照してドライバを検索を実行します。
先ほどダウンロードしたドライバのフォルダを参照して次へを実行します。

ドライバのインストールが完了しましたので閉じるで終了します。
ドライバーが更新されCOMx(xは数字)になっていることを確認します。
※このCOMxは後程使用しますので覚えておいてください。

接続図

シリアル通信のつなぎ方

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)下記リンク参照


インストーラーを実行しNextで進んでいき、途中のAddtional language data(download)でJapaneseを選択してインストールします

Poke-Controller-Modified/Poke-Controller-Modified-Extensionの導入で使用したps1スクリプトで導入した場合はpyocrが導入されていますが、別の手順でインストールした場合はコマンドプロンプトからpip install pyocrにて別途インストールしてください


いいなと思ったら応援しよう!

poketsv
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!