#概要
Arduinoを用いたリーグ周回自動化のプログラムを作成しました
おおよそ8分30秒で周回することが可能で,効率的にガンテツボールやかえんだま等を集められます
#きっかけ
・ワット稼ぎを自動化する記事をみて,リーグ周回自動化に応用できそうだと感じた
・マクロコンを買うより安上がりだった
#準備
・Arduino Leonardもしくはその互換機
これとか 安いものなら一個およそ900円程度
・typeAオス-typeCオスのケーブル
switchとArduinoを接続するために必要
#環境構築
##Arduino IDEのインストール
公式サイトからJUST DOWNLOADしてインストール
##switch操作用ライブラリのインストール
このページで,clone or download からDownload ZIP を選択し保存する
ファイルを解凍し,SwitchControlLibrary-masterを[Arduinoがインストールされたディレクトリ]/libraries
に配置する
##boards.txtの編集
・[Arduinoがインストールされたディレクトリ]/hardware/arduino/avr/boards.txt
を開き,285,286行目を以下のように変更する
leonardo.vid.1=0x0f0d
leonardo.pid.1=0x0092
・また,311,312行目を以下のように変更する
leonardo.build.vid=0x0f0d
leonardo.build.pid=0x0092
#自動化の手順
##Arduino IDEの準備
・usbケーブルを用いてArduinoをpcに接続する
・Arduino IDEを起動し,ツール→ボードからArduino Leonardを選択,シリアルポートはArduinoを接続したポートを選択する
##スケッチの書き込み
作成したスケッチを以下に記す
#include<SwitchControlLibrary.h>
void setup() {
// put your setup code here, to run once:
//コントローラーを認識させるための処理。LR連打してるだけ
SwitchControlLibrary().PressButtonR();
delay(50);
SwitchControlLibrary().ReleaseButtonR();
delay(500);
SwitchControlLibrary().PressButtonL();
delay(50);
SwitchControlLibrary().ReleaseButtonL();
delay(500);
SwitchControlLibrary().PressButtonR();
delay(50);
SwitchControlLibrary().ReleaseButtonR();
delay(500);
SwitchControlLibrary().PressButtonR();
delay(50);
SwitchControlLibrary().ReleaseButtonR();
delay(500);
SwitchControlLibrary().PressButtonL();
delay(50);
SwitchControlLibrary().ReleaseButtonL();
delay(500);
SwitchControlLibrary().PressButtonR();
delay(50);
SwitchControlLibrary().ReleaseButtonR();
delay(2000);
// 斜め上入力しっぱなし
SwitchControlLibrary().MoveLeftStick(158,256);
}
void loop() {
// put your main code here, to run repeatedly:
//7回A,1回Bの繰り返し
SwitchControlLibrary().PressButtonA();
delay(50);
SwitchControlLibrary().ReleaseButtonA();
delay(500);//1
SwitchControlLibrary().PressButtonA();
delay(50);
SwitchControlLibrary().ReleaseButtonA();
delay(500);//2
SwitchControlLibrary().PressButtonA();
delay(50);
SwitchControlLibrary().ReleaseButtonA();
delay(500);//3
SwitchControlLibrary().PressButtonA();
delay(50);
SwitchControlLibrary().ReleaseButtonA();
delay(500);//4
SwitchControlLibrary().PressButtonA();
delay(50);
SwitchControlLibrary().ReleaseButtonA();
delay(500);//5
SwitchControlLibrary().PressButtonA();
delay(50);
SwitchControlLibrary().ReleaseButtonA();
delay(500);//6
SwitchControlLibrary().PressButtonA();
delay(50);
SwitchControlLibrary().ReleaseButtonA();
delay(500);//7
SwitchControlLibrary().PressButtonB();
delay(50);
SwitchControlLibrary().ReleaseButtonB();
delay(500);//B
}
このコードを書き込むことで自動化を行えます
##実行
・剣盾を起動し,リーグの受付の目の前にいる状態にしておく
・スケッチを書き込んだArduinoをケーブルを用いてswitchに接続することで自動でリーグ周回を行うことができる
#補足
・delayの値は適当なので各自で調整してください
・ボタンを押す間隔を0.5秒にしているが,もっと短くすれば一周にかかる時間を短くすることが可能,ただしどの程度まで大丈夫かは不明
・setup中のLRボタンを押す回数が何回以上ならいいかは未調査,もっと少なくてもよさそう
#おわりに
switch自動化に関する記事が増えてきたため,比較的簡単に実装することができた
今後は,孵化厳選の自動化などに挑戦していきたい