Arduinoを使用してSwitchのコントローラを操作できるため、カセキポケモンの受け取りを自動化させました。
ボタン連打でも受け取れますが、自動化するにあたってメッセージ終了後にボタンを押すようにしました。
使用機器
・MacBook Pro
Macでの設定
・Arduino IDEのインストール
・SwitchControlLibraryをGitHubからダウンロード
保存先は「/Users/user/Documents/Arduino/libraries」に保存する。
・Arduino IDEを起動、SwitchControlLibraryを使用する時にArduinoSTLが必要になるため、
「スケッチ⇨ライブラリをインクルード⇨ライブラリを管理」から「ArduinoSTL」をインストールする。
・ボードに書き込む際、VID=0x0f0d, PID=0x0092 に変更する必要があるため、
Arduino.appを右クリック、「パッケージの内容を表示」から
「/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/boards.txt」
のVID、PIDを変更します。
//使用機器がArduino Microの場合
micro.build.vid=0x0f0d //変更前:micro.build.vid=0x2A03
micro.build.pid=0x0092 //変更前:micro.build.pid=0x0037
ゲーム側の設定
連打だけでカセキポケモンを受け取れるようするため、
「手持ち/ボックス 自動で送る」、「ニックネーム登録 しない」に変更します。
Arduino IDE
最初の復元するカセキの選択時のみ、Aボタンそれ以外はBボタンを押すようにし、受け取り時に時間がかかる場合は待機時間を長くしています。
# include <SwitchControlLibrary.h>
void setup() {
}
void loop() {
for (int i=0; i < 5; i++) {
SwitchControlLibrary().PressButtonB();
delay(50);
SwitchControlLibrary().ReleaseButtonB();
delay(1000);
}
//話しかける
//ん? カセキ そろってんね この ウカッツに みせてみ? >はい
//ウカッツの 眼鏡に かなう カセキは どれかね? >カセキのサカナ
//ウカッツの 興味を そそる カセキは どれかね? >カセキのリュウ
//カセキのサカナと カセキのリュウで 復元? >それで よければ
for (int i=0; i < 5; i++) {
SwitchControlLibrary().PressButtonA();
delay(50);
SwitchControlLibrary().ReleaseButtonA();
delay(1000);
}
//おけー! 復元しちゃって カセキの ナゾに せまるゾ!
//待機
SwitchControlLibrary().PressButtonB();
delay(50);
SwitchControlLibrary().ReleaseButtonB();
delay(5000);
//次へ
//そーれ がっちゃんこ! よし! よし! よしっ!
//目標 達成! みごとな 復元 カモ
//太古の ガラルで 暮らしていた 様子が 目に 浮かぶ ようだネ!
//かわいがって くれたまえよ
for (int i=0; i < 5; i++) {
SwitchControlLibrary().PressButtonB();
delay(50);
SwitchControlLibrary().ReleaseButtonB();
delay(1000);
}
//〇〇〇は ウオノラゴンを もらった!
//待機
SwitchControlLibrary().PressButtonB();
delay(50);
SwitchControlLibrary().ReleaseButtonB();
delay(5000);
//次へ
SwitchControlLibrary().PressButtonB();
delay(50);
SwitchControlLibrary().ReleaseButtonB();
delay(1000);
//ウオノラゴンを 手持ちに 加えました! or ウオノラゴンを ボックスへ 転送しました!
SwitchControlLibrary().PressButtonB();
delay(50);
SwitchControlLibrary().ReleaseButtonB();
delay(1000);
}
待機時間30秒程度で受け取れます。
書き込み後に、「ツール⇨ボード情報を取得」からArduinoの情報を取得した時に
VIDとPIDが変更されていれば完了です。