こんにちわ、なるるです!
ポケモン剣盾の孵化作業自動化するプログラムできた!
arduinoを使って、卵を受け取って孵化するのを無限界繰り返す
これで明日から仕事に行ってる間も厳選ができるようになるというわけ pic.twitter.com/ev2RylxHrS— みがわり (@interimadd) January 13, 2020
みがわりさんより教わりました、ポケモン剣盾におけるタマゴ孵化厳選作業の自動化を試してみましたので、詳しくやり方等を紹介していきたいと思います!
これにより、孵化作業が仕事に行ってる時でも寝ている時でも自動で行ってくれるので、色違い厳選がとっても捗ります(*^^*)。
必要な物
・PC(コード書き込みする為)
・Arduino Leonardo マイクロコントローラーボード
下記のボードはArduino Leonardo 互換のあるボードですが、検証しておりませんので、自己責任においてお試しくださいm(_ _)m
・Switch直挿しの場合は⇒TypeCオス-microBオスのUSBケーブル
ドック挿しの場合は⇒TypeAオス-microBオスのUSBケーブル
両方使いの方は、どちらか一方を変換して使ってもOK!
やり方
PC側設定
1、『Arduino IDE』のインストール
Arduino公式HPより『Arduino IDE』をダウンロード&インストールします。
※任意のOSバージョンを選んでダウンロードしてください。
2、ライブラリのインストール
こちらにアクセスして『code』(緑ボタン)をクリックし、
ZIP形式ダウンロードをクリック。
ファイル名:NintendoSwitchControll-master.zip
ダウンロード後解凍し、それらファイル郡をdocumentフォルダの\Arduino\librariesに置く。
3、ID書き換え
Arduino IDE本体がインストールされているフォルダ(C:\Program Files (x86)\Arduino\hardware\arduino\avr)
の中の『boards.txt』283~290行目と、311~312行目vidとpidの=からの英数字を下記に書き換え、上書きをする。
leonardo.~vid=0x0f0d leonardo.~pid=0x0092
下記の赤枠部分が書き換える部分。(下図はもう書き換えられている状態)
4、ボードにスケッチ(コード)を書き込む
・PCとボードをつなぐ。(通常、ドライバーは自動でインストールされる)
・ドライバーインストールを終えたら、『Arduino IDE』を起動。
・ファイル⇒開く⇒auto_hatching.ino(場所:SwitchController\examples\pokemon\auto_hatching\auto_hatching.ino)
・開いたら、コード中の『const int TIME_TO_HATCHING_SEC 』の秒数を、孵化するまでの秒数+10秒ほどの数値にしておく。(ポケモンによって異なるので、予め調べておく)
下記の場合、『モグリュー』設定でやっていて、孵化するまでに約60秒かかるので、+10秒の70秒設定にしている。
・ツール⇒ボード⇒『Arduino Leonardo』を選択。
・ツール⇒シリアルポート⇒『Arduino Leonardo』
・下図の矢印を押し、ボードにスケッチ(コード)を書き込む。
・下図のように左下に『ボードへの書き込みが完了しました。』を出たら、ボードを抜いてOK。
これでPC側とボード側の設定は終了になります。
次にSwitchの設定です。
Switch側の設定
ポケモン剣盾を起動し、以下の準備をします。
1、ハシノマはらっぱに行く。
2、自転車に乗る。
3、育て屋で孵化対象のポケモンを預ける。
4、手持ちを「ほのおのからだ」持ちの一匹だけにする。
5、 Xボタンを押したときに「タウンマップ」が左上にあるようにする。そして「ポケモン」がその右にあること。
6、ボックスを、その次以降のボックスも含めて空にする。(ポケモンにもよりますが、だいたい7~8ボックスくらい続けて開けておけば、定時までまたは学校終わりまで回せます!)
そうしたら、スケッチの書き込みが終わったボードをSwitch本体かドックに差し込みましょう!
完全自動化が始まります!!!
行っているループは次の通りです。
- 空飛ぶタクシーでハシノマはらっぱに移動(初回だけぐるぐるして、もう一回ハシノマはらっぱへ移動👈タマゴを産ませる為)
- 自転車を降りる
- 育て屋さんの方を向く
- 育て屋さんまで向かう
- 自転車に乗る。
- 育て屋さんからタマゴを貰う
- 空飛ぶタクシーでハシノマはらっぱに移動
- 設定時間ぐるぐる回る
- ポケモンが生まれる
- 1~8を手持ち分(5匹)が一杯になったら、縦の範囲でボックスに預ける。
- 1ボックス一杯になったら次のボックスへ移動。
- また最初から~ループ
です!
ポケモン自動リリースコードとの併用がオススメ!
ああ・・・今回も色違いは出なかった・・・それに、自動孵化でボックスが一杯・・・全部手動で逃がすんか・・・オレ乙・・・。
と、悩んでいるあなたに朗報です!
スケッチ(コード)集の中には、1ボックス分のポケモン逃しが自動でできるコードがあります!(スケッチ名:release_pokemons.ino)
これを余りのボードに書き込み、自動孵化によってパンパンになったボックスを開放してあげましょう!
ボックス替えを手動でしなければなりませんが、手動でやるより格段に楽。
ちなみにドックを使っている方はもっと楽になります!
自動化が終わったあとに本体を持ち上げボックス替えし、そのまま本体をドックに戻せばまた自動化が始まります!
USBを抜く必要無し!(ループが止まっているため)
いやー!すばらしいです!
乱数調整や無限IDクジも自動化できるぞ!
なんと!
このマイコンを使えば、気だるい日付変更が自動化できます!
みがわりさんの作ってくださったスケッチ集の中に一緒に入っていますので、乱数調整が面倒で面倒で仕方がないとか、マスターボールを999個手に入れたいんじゃい!って方はぜひ使ってみてくださいね(^o^)
さいごに
ポケモンセンターオリジナル しわしわ顔のぬいぐるみ 映画「名探偵ピカチュウ」ピカチュウ
コメント
はじめまして。記事を参考にマイコンに挑戦している初心者なのですが、毎回書き込み時にエラーが「コンパイル時にエラーが発生しました。」と出てしまいます。
理由がわからず調べ回った結果、boads.txtのvidとpidをスイッチ用に書き換えると必ず出ることがわかりました。エラーの出ない書き換え方・もしくは対処法をご存知でしたら教えて頂けないでしょうか?
使用ボードは純正品Arduino leonardoで
vidとpidを変えて保存する時、「アクセスが拒否されました」と出るのでプロパティからフルコントロールの権限を付与して上書き保存しています。
あすてーるさん>
記事閲覧ありがとうございます!
さてエラーの改善方法として考えられることは以下だと思います。
・一度arduino ideを再起動しないと反映されない
・別の行にもvid、pidを設定するところがある
leonardo.build.vid
leonardo.build.pid
の部分も変える。
・boards.txtの場所が違う(AppDataフォルダの下とか。サンプルスケッチのあるフォルダの上の階層
コメント送信が隠れてしまったので、前の回答の続きになります・・・
ちなみに私の場合は権限により上書きできなかったので、違う場所に同名ファイルで保存し、それを戻して上書きしました!
少しでも参考にされて、改善されること願っています。
改善しましたら連絡ください!
ご丁寧に回答をくださりありがとうございました。
実は作者のみがわり様にもご質問したところ、
「メモ帳を使用せずテキストエディターをいれて試して欲しい」という旨の回答を頂き
試してIDの書き換えを行ったところ無事書き込みと動作を確認できました!!
複数の原因を提示してくださり原因を特定するのにすごく役立ちました。
本当にありがとうございます。
今後マイコンで悩んでいる方に少しでもお役に立てれば幸いです。
あすてーるさん>
無事動作確認とれたとのことなりよりです(*^^*)。
今後とも当ブログをよろしくおねがいします。
はじめまして.
記事を参考に作業を進めていたのですが,IDEでコンパイルを行うと,
switch_controller.h:48:1: error: expected class-name before ‘{‘ token
このようなエラーメッセージが出ます.
対処法等をご存知でしたら教えていただきたいです.
ちなみにですが,Arduino Leonardoではなく,Unoでも動作可能かもご存知でしたら教えていただきたいです.
よろしくお願いします.
kmさん>
記事閲覧ありがとうございます!お返事遅くなり申し訳ありません。
質問の件ですが、一つ目に関しては現状お使い環境等がわかりかねるのでなんとも言えません。コンパイルに失敗する場合はID書き換えが上手く行っていないケースが見受けられます。2つ目のUnoでは動くかいうことですが、乗っているマイコンが違う為、本記事内容ではできないと思われます。よろしくおねがいします。
返信ありがとうございます.参考にさせていただきます.
windows10施行しています。
プログラムファイルにArduinoのフォルダがありません
保存先はCドライブになっているのですが、、
siさん>
記事閲覧ありがとうございます。
C:\Program Files (x86)には入っていませんでしょうか?32ビット版のソフトウエアはこちらに入ってきます。
はじめまして。
初心者にも分かりやすく紹介していただいて、助かりました。
手順の通りに行ったのですが、書き込みすると完了にはなるのですが、
下の画面にexamplesにヘッダファイルがありませんというような表示が出て使えませんでした。
srcフォルダ内のhファイルをexamplesフォルダ内に移したら無事に動きました。
もし同じ症状が出ている方がいたら試してみてください。
たまに、ボックスの中がたまごだらけになってることがあります。
これは、次のボックスへ移動するときの挙動が早すぎるから起こっているのでしょうか?
またそうだとして修正箇所はどこになりますか?
前提としてボックスは全て空の状態です
Mental nelLさん>
記事をごらんくださりありがとうございます!
考えられることとして、タマゴを孵化させるまでの時間が短すぎて、タマゴが割れず、次のタマゴを受け取りをループして一杯になるということがあります。
該当のポケモンの孵化時間をしっかりと計り、それ+α秒(約10秒くらい)追加した時間を”const int TIME_TO_HATCHING_SEC =”に入れてみてはどうでしょう。
お返事、ご回答ありがとうございます。
記事の通り、+10秒の余剰時間はとってあります。
また、手持ちを開くためのAボタン、ボックスを開くためのRボタンについても1.5秒程足しているのでやはりダメでした。
2ボックス目から卵にになっていることや、5ボックス目から卵になっていることを鑑みるにループ等がおかしいというより何かの待ち時間が足りないという想定ではあります。
初めまして
記事参考にさせて頂きました
書き込み完了しましたとなるのですが
繋いでも全く動いてくれないのですがこれはどういった原因が考えられるのでしょうか?
ぐるぐるぐるさん>
記事閲覧ありがとうございます!
どのような時に動いてくれないのかはわからないですが、原因または解決となることを予想してみました。
・Switchの優先接続がOFFになっている。
⇒設定>コントローラとセンサー>Proコントローラーの有線通信>ON
・Switch自体と再起動してみる
・USBケーブルを変える
等
他にもあるかもしれませんが思いつく限りを書いて見ました。
初めまして、記事を参考にさせてもらっているものです。Windows10で施行しております、ホームページでArduino IDEのアプリケーションをダウンロードしたのですが、Program Files (x86)にArduinoのフォルダがありません。何が原因でしょうか?
すみません、コメント送れているか不安なのでもう一度送ります、Arduino windows app をホームページでダウンロードしましたが、Program Files (x86)にarduinoのファイルが見当たりません、解決方法などはありますでしょうか?
Kazuki Ihara>
記事閲覧ありがとうございます。
インストール時にダウンロード先を指定できると思います。デフォルトでのdownload先が違うところにあるのではないでしょうか?それかフォルダかファイル検索で『Arduino』を検索してはいかがでしょうか?
アカウントの”Kazuki Ihara”とはるちゃん未来から来た人は同一人物です。間違えて違うアカウントで送りました
私もぐるぐるぐるさんと同じ現象ですね。私はスウィッチライトしかないのですが、それが原因なのかな?って悩み中ですね。他の記載を見る限りは皆さんライトではないし。理由がわからないから対処に悩んでます。
▼繋いでも全く動いてくれない。
メモ帳編集ではなく、Visual Studio Codeをつかい、
Windows(C:)ユーザー>ユーザー名>AppData>Local>Ardunion15>packages>arduino>hardware>avr>1.8.1
のなかのboadsを285行目、311行目、312行目を書き換える。
以上の事にたどり着くまで時間がかかりましたが、誰かのQをしらみつぶしに調べ試すことで書き決することが出来ました。
初めまして。記事を参考にさせて頂いているのですが手順3のID書き換えの所でアクセス許可がないと言われて書き換える事が出来ません。どうすれば良いでしょうか…
わかりやすい解説で無事に出来ました!
試しで孵化秒数を60秒で設定したのですが
孵化させたいポケモンを変えたい場合
は再度マイコンへの上書きが出来ません。
マイコンの初期化等調べてみましたが
分かりませんでした…
MOON SALTさん>
記事をご覧下さりありがとうございます!
さて、質問の件ですが、マイコンがPCそしてArduino IDEに認識されていますでしょうか?
Arduino IDEのツール⇒ボード⇒Arduino leonardoを選択。
シリアルボード⇒最初に設定されたCOMに設定。もしくはArduino IDE右下端にあるCOM番号。(普通はUSBを指すだけで最初に設定したCOM番号に接続されます。)
を試してください。
もしくは、USBケーブルを変えてみるなどですかね?
今の所これくらいしか思いつかないですが、解決の一旦となることを願います。
初めまして!vidとpidを書き換え、保存する際に上書き保存をしようとすると「このファイルを開くためのアクセス権限がありません」と表示され、保存ができないのですが、どうすればよいでしょうか?
しもちゃさん>
記事閲覧ありがとうございます。
私もなるのですが、そんな場合は一旦別場所で同ファイル名で「名前をつけて保存」をし、そのファイルを該当場所に持ってきて上書きすればOKです。
初めまして。コメント失礼します。
borards.txt内の8行目~15行目と、37~38行目と、281行目~288行目と、309~310行目を
leonardo.build.vid=0x0f0d
leonardo.build.pid=0x0092 に変更したのですが、switchと繋いでも動きませんでした。
その他に変更する行、間違っている行があれば教えていただきたいです。
失礼しました。8~15行目と281~288行目は
leonardo.vid=0x0f0d
leonardo.pid=0x0092 に変更していました。
ぎゃらさん>
記事をごらんくださりありがとうございます。
私の書き方が悪かったですね。
leonardo.vid=0x0f0d
leonardo.pid=0x0092
と直すのではなく、leonardo.vidの所を=0x0f0dに、leonardo.pidの所を=0x0092にするのです。(283行~290行)
あと、312~312行をleonardo.build.vid=0x0f0d、leonardo.build.pid=0x0092と書き換えでOKなはずです。
ということで書き直す所の塊はこの2箇所です。
訂正311~312行でした。
なるほど~!!
試してみます!
無事動きました!ありがとうございました!!
ぎゃらさん>
無事起動したとのこと、よかったです(^o^)。
マイコンが届き、実践したのですが、無事に動作しました!
一つ質問なのですが、他のポケモンを孵化したいとき時間を書き換えなければならないと思うのですが、その際の書き換えはどのようにすればよいですか?
しもちゃさん>
Arduinoを開き、ファイル⇒開く⇒『auto_hatching.ino』開く⇒14行目の『const int TIME_TO_HATCHING_SEC = ※;』※の部分に任意の時間(秒)を入れて、再度マイコンに書き込みしてください。
ありがとうございます!書き換えできました!
マイコンの内容を別のものにしたいのですが、そのときはここにある工程をもう一度やればよいのですか?
となりのルシファーさん>
記事をご覧下さりありがとうございます。
書き込みたいプログラムを、該当マイコンに上書き(もう一度書き込み)すればOKです。
はじめまして。
ご質問をさせて下さい。
Arduino IDEをインストールしてもProgram Filesには入らず、
C:\Program Files\WindowsAppsの中に
「ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt」という名前のフォルダが入っておりました。
ID書き換えはこの中のboardsを変更すれば宜しいのでしょうか?
またその場合、ファイルを上書きor別な場所に作成したものを置き換えようとしても、対象のフォルダーへのアクセスは拒否されましたとなってしまいます。
アクセス権を変更しても同じポップアップが出てしまいます。
対処法をお教え頂けますでしょうか。
宜しくお願い致します。
メタメタさん>
記事をご覧下さりありがとうございます。
質問についてですが、メタメタさんはWINDOWS8.1以上なのでWindowsAppから入手したと思います。
当記事はWindowsAppからの方法を記載しておらず、当方でためしていないのでなんとも言えないですが、
Windowsのzipファイル(上から2番目)をダウンロードして解凍して試して見てください。
先程こちらでダウンロードして、中身を確かめましたが、記事のファイル構成になっていましたので、
おそらく当記事の書き換え方法がうまくいくかと思います。
わざわざご調査頂き、誠にありがとうございました。
記載を忘れていましたが、OSはwindows7からバージョンアップしたwindows10を使っております。
ご指摘頂いた方法にて一度ダウンロード致します。
不明点がございましたら、再度ご連絡させて頂ければと思います。
宜しくお願い致します
なるる様
ご指摘頂いた通りやってみたところ、自動で動き始めました。
このまま一度様子を見てみます。
ありがとうございました。
またこの自動孵化は、例えば
①卵を永遠に受け取る
や
②手持ち卵が5個孵化したらボックスの卵と交換する
のみの機能も使えたりするのでしょうか
孵化した場所を、ハノシマ原っぱではなく、別な場所にしたいが為の質問です。
お忙しい所申し訳ございません。
おわかりになるようであれば、お教え頂ければと思います。
なるる様
度々申し訳ございません。
不明点がありましたので、続けて投稿致します。
①1ボックス終わる前に中断(ボードを抜くなどして)した場合、ループはどこから再開されるのでしょうか?
②縦一列5匹で出来ている場合と、3匹や4匹ど終わっている時があるのですが、これはコードがどこかで失敗しているのでしょうか?
連続ど申し訳ございません。
お時間がありましたら、ご教授頂ければと思います。
宜しくお願い致します。
メタメタさん>
無事に動いたとのこと。よかったです。
さて、不明点について最初に申し上げておきたいのですが、私はこの記事で紹介しているコードのコーディングをしているわけではなく、
紹介させてもらっているだけに過ぎないので、コードに関しての中身詳細についてはわからないというのが本音です。
コードに関しての質問は開発者に相談ください。申し訳ありません。
それを踏まえ、この中で答えられる質問についてのみ答えさせていただきます。
Q1、卵を永遠に受け取るはできるか
A1、ポケモンが孵化しない時間(se)に設定すれば可能です。
Q2、孵化した場所を、ハノシマ原っぱではなく、別な場所に~
A2、コードを変更すれば可能だとは思いますが・・・前述。
Q3、1ボックス終わる前に中断(ボードを抜くなどして)した場合、ループはどこから再開されるのでしょうか?
A3、最初からです。
Q4、縦一列5匹で出来ている場合と、3匹や4匹ど終わっている時があるのですが、これはコードがどこかで失敗しているのでしょうか?
A4、誰しもありえます。わたくしもそのような状態です。おそらくタマゴを受け取るときに、少し育て屋さんからズレてしまうことがどうしてもある為に起こり得ることだと思います。
コードの問題ではなく、仕様と思われます。
以上になります。
すべて完璧にお答えすることができず申し訳ありません。
なるる様
全てのご質問にお答え頂き、誠にありがとうございました。
今回挑戦した分については、無事色違いが生まれたことをご報告させて頂きます。
重ねて、ありがとうございました。
コードの部分については、せっかくなので自分でも試行錯誤していきたいと思います。
はじめまして、ブログを読みやってみようと思い紹介されていたArduino Leonardoマイクロコントローラーボードを購入しました。
ブログ内容のようにVisual Studio Codeを使ってID書き換えをしてArduinoIDEを起動して内容を書き込んでツール⇒ボード⇒Arduino Leonardを選択しまして、
シリアポートがCOM3しかなかったのでそれで書き込んでみたらエラーが表示されました。
#include にエラーが出ました。
auto_gain_watt:8:10: fatal error: auto_command_util.h: No such file or directory
compilation terminated.
exit status 1
auto_command_util.h: No such file or directory
エラーが出たので#include の部分を消してやってみたらpushButtonでエラーが表示されました。
auto_hatching:81:5: error: ‘pushHatButtonContinuous’ was not declared in this scope
auto_hatching:82:19: error: ‘Hat’ has not been declared
auto_hatching:82:5: error: ‘pushHatButton’ was not declared in this scope
auto_hatching:83:16: error: ‘Button’ has not been declared
auto_hatching:84:16: error: ‘Button’ has not been declared
auto_hatching:86:19: error: ‘Hat’ has not been declared
auto_hatching:87:19: error: ‘Hat’ has not been declared
auto_hatching:89:16: error: ‘Button’ has not been declared
C:\Users\名前\Desktop\フォルダ名\NintendoSwitchControll-master\examples\pokemon\auto_hatching\auto_hatching.ino: In function ‘void setup()’:
auto_hatching:113:16: error: ‘Button’ has not been declared
auto_hatching:113:5: error: ‘pushButton’ was not declared in this scope
exit status 1
‘Button’ has not been declared
まだ表示はありますが一部分を載せます。
デバイスマネージャーから確認したところ、Arduino Microと表記され、このデバイスは正常に動作しています。との事です。
ArduinoIDEのツール⇒ボード⇒Arduino Microでやってみても上で書いたエラーが出ます。
もうどうしたらいいのか分からないのでコメントをさせていただきました。
どうか解決方法を教えて下さい。お願いします。長文失礼しました。
もう一度ブログを確認しながらやりましたら、書き込みができたので解決しました。
どうやらファイルの展開場所が間違っていて書き込みができなかったみたいです。
お手数をおかけして申し訳ありませんでした。
初めまして! コメント失礼します。
マイコン初心者なのですが、ブログを見てやってみたいと思いArduino Leonardoを購入しました。
そしてこのページを読んで設定しようとしたところ、上のたんぽぽさんと全く同じことになっています。
かなりの回数再試行したのですが、ずっとエラーがでてしまいます。
僕も #include “auto_command_util.h” にエラーが出て、消してみると
pushButton(Button::B, 500, 5); にエラーがでます。
Arduino:1.8.13 (Windows Store 1.8.42.0) (Windows 10), ボード:”Arduino Leonardo”
auto_hatching:12:10: fatal error: auto_command_util.h: No such file or directory
compilation terminated.
exit status 1
auto_command_util.h: No such file or directory
このようなエラーが毎回出ます。
パソコンにもあまり詳しいわけではないので、おそらくどこかで間違っているのだろうとは思うのですが、もしなにか分かれば教えてくれると嬉しいです。
よろしくお願いします。
ここの情報とても参考にさせてもらいました。
これまで、ここの情報を基にマイコン使用していたのですが、最近、SWICHがマイコンを認識しなくなり、動作しなくなってしまいました。
これまで問題無く動いていたのに、ある日上書きをしたところで動かなくなりました。
Arduinoを再インストールしたりして1からやりなおしてみたのですがダメでした。
SWICH側で何か対策がされたのでしょうか。他に同様の問題が起きている人はいないでしょうか。
考えられる対策があれば教えてください。よろしくお願いいたします。