弱者の研鑽

かつてポケモンのブログだったが、記事を大量削除し、遊戯王のブログとする予定だったが、ぼっちじゃ続かず、ポケモンSVにハマったのでポケモンのブログとする

【ポケモン剣盾】自動ワット稼ぎを作成したよって話【自動化】

0.はじめに

初めまして、ポケモン剣盾を年末に購入した無名のトレーナーです。

今回、この記事を書くに至った経緯としては、マクロ付きコントローラーによる自動化をしているらしき人物をツイッターで発見。

自分もぜひやりたく、google先生にご教授いただいたところ、コントローラーの話も見つけましたが、マイコンでなんやかんやする話も見つけた。

どうやら、Nintendo SwitchからはUSBポートがあり、そこからPGを流し込んで悪さ自動化ができるということだった。しゅごいい!!

 

っと、そんな経緯がありまして、今回はその後に自動化を達成するまでのことを紹介しようと思います。

ぶっちゃけネット上の記事に転がっている情報です。

なので、無断ではありますが、まずは偉大なる先駆者様たちのブログから紹介です。

----------------------ここから----------------------

qiita.com

初心者にも分かるような説明を心掛けていることが分かる説明で、その内容がスプラトゥーンに依存していなければ1,2を争う良さだった。

ただし、ポケモン剣盾に転用するのは難度が高く思え、参考程度に収めた。

 

error-astray.hatenablog.com

 「用意するもの」の説明が商品リンクありきの説明だが商品リンクが見当たらない。

これさえなければ文句なしに一番の記事だった。

購入するマイコンを間違えなければ一番難易度の低い方法を紹介してあるので、超おすすめ。

※自分はどうやら乗っているマイコンの種類を間違えたらしいです。

  

qiita.com

自分が成功させた方法が書かれている記事。

意図しているのか、単なるミスなのか、所々に不備がある。

記事にあるコメントを見て補完すればうまくいった。

  

blog.feelmy.net

ほぉ~んの少しだけ知識のあった自分に多大な混乱を招いた元凶。

記事の内容としては精通している人が分かるように説明したんだろうなという内容。

ブレッドボードやはんだという単語が登場し、一応どんなものか知っていたので、必須なのか!?と混乱した。

結局必須ではなく、ブレッドボードの買い損であった。

  

randdtips.com

心躍る画像認識が登場。

これを最終目標として頑張りたいと奮起したものだ・・・。(過去形)

マイコン購入の段階では、こちらを目標に据えており、ある程度なんでもいいという話だったため、ここのマイコンを購入。

初心者がやってはいけない典型的な暴挙だったと思う。

内容的には図が分かりやすく、画像認識という単語のおかげで好評価。

ただし、マイコン周りの話が皆無なところが、初心者には辛かった。

----------------------ここまで----------------------

 

このように、素晴らしい記事の数々があり、そこに加えて記事を投稿する必要はないと思っていますが、自分が苦戦したことを中心にブラッシュアップするので、暇な人、他の記事を読んでも分からなかった人は読んでみてください。

てか、需要のあるなしではないんです。記事は書きたいことを書けばいいんです!

 

1.必要なもの

マイコン 

※このブログの方法では「ATmega32U4」がのっているものを買ってください。

↓私はこれを購入しました。 

 ↓私は購入してないですが、ケーブル買う値段を考えると一番安価だと思います。 

 ↓これも安いですね。

02/03現在、Amazonだと安いマイコンは軒並み売れちゃってますね・・・。

恐るべし、ポケモン効果!!

私もちょっと安い奴(2台目)を買いましたが、特に初期不良とかもなかったので「安けりゃよし」な気がします。※保証はしないですが

 

※「at90usb1286」「atmega16u2」「atmega32u4」が乗っていればいいらしいですが、初心者は基本的に紹介されているマイコンを買いましょう

 

買うマイコンが間違っていると記事の説明通りに操作することが叶わず、何時間も格闘することとなります。

最悪、買い損になることもあります。これは実体験です。

 

・パソコン

・micro USBケーブル

 ↓私はこれを買いました

 ※マイコンに付属しているやつもある。その場合は不要。

・USB変換コネクタ(USB⇔TYPEC)

 ※Liteのみ必須

 Switch1台、Lite1台の環境なので、これが必要かと思いましたが、未購入です。

 正規品はないはずですが、Lite用のドックを買えばいいと思います。

 この方法であれば、充電しながら放置できるので、無限に放置できます。

↓私はこれを買いました。

 【不要なもの】

・ブレッドボード

・はんだごて

※中途半端に知識があったせいで、必要なのでは?と困惑した。

 マイコンを購入してみれば、はんだ付けもブレッドボードも不要だった。

 

2.DLやインストール

あちこちサイトに飛んで、DL、インストールして環境を整えるだけ。

 

Arduino IDEのインストール

※ほかの記事ではLinuxをインストールして、pythonでプログラミングするような手順になっているものもあるが、初心者がそこまでする必要はない。(と感じた)

Arduino IDEがあれば事足ります。

↓ここのページを開く

https://www.arduino.cc/

↓DOWNLOADSのページへ移動

f:id:go-go-poke:20200123001428j:plain

 

↓自分のOSにあったものをDOWNLOAD(ほとんどの人は上から3番目のはず)

f:id:go-go-poke:20200123001640j:plain

↓お金かかりそうな雰囲気だが、気にしない「JUSTDOWNLOAD」

f:id:go-go-poke:20200123002034p:plain

↓ここまでくればフィーリングで行けると思うので、インストールしてください

f:id:go-go-poke:20200123002647p:plain

 ・Switch操作用ライブラリのダウンロード

 ↓ここに行く

https://github.com/celclow/SwitchControlLibrary

↓Clone or download → Dpwnload ZIP

f:id:go-go-poke:20200123225826p:plain

 

ダウンロードした「SwitchControlLibrary-master.zip」を解凍する。

解凍後の「SwitchControlLibrary-master」を先程インストールした「Arduino IDE」のフォルダ内にある「libraries」フォルダの中に格納する。

Arduino IDE」のフォルダ内ってどこだよ!?ってなった人、そこを説明します。

※環境によって保存場所が変わる可能性があるため

 

まずは、インストールした「Arduino IDE」を起動します。

※「Arduino IDE」はスタートメニュー(でわかります?左下のWindowsマーク)を押下すると、上のほうにある「最近追加されたもの」という一覧にいると思います。

 

f:id:go-go-poke:20200123230655p:plain

 

起動したら、ファイル → 環境設定を選択。

  

f:id:go-go-poke:20200123230759p:plain

 

スケッチブックの保存場所が、インストールしたフォルダです。

これをコピーしてください。

f:id:go-go-poke:20200123231155p:plain

 

エクスプローラーを開いて、アドレスバーにコピーしたパスを貼り付け。

f:id:go-go-poke:20200123231502p:plain

 

 

エンターで移動。

 

f:id:go-go-poke:20200123231628p:plain

 

「libraries」フォルダがいるので、その中に「SwitchControlLibrary-master」を保存してください。(移動、コピー何でも可。)

 

・ArduinoSTLのDL

↓に行き、「Release Date」が一番新しいものをDL

https://www.arduinolibraries.info/libraries/arduino-stl

 

バージョンは異なるかもしれませんが、「ArduinoSTL-1.1.0.zip」がDLできたと思います。

これを解凍し、先程と同じように解凍した「ArduinoSTL-1.1.0」を「libraries」フォルダ内に保存してください。

 

3.Arduino IDEの設定

Arduino IDEの画面に戻ります。

ツール → ボード → Arduino Leonardo を選択。

f:id:go-go-poke:20200123233424p:plain

 

 ツール → ボード →ボードマネージャ を選択。

Arduino Leonard」で検索をかけてから、ヒットしたものをインストール。

※これで多分、後に出てくる「boards.txt」が作られるはず。

f:id:go-go-poke:20200203220459p:plain

 

ツール → シリアルポート → COM1(例) でシリアルポートを確認する。

f:id:go-go-poke:20200123233706p:plain

 

マイコンをPCのUSBに挿入。

認識したら、ツール → シリアルポート →COM9(例) を選択。

選択するCOMは上でシリアルポートを確認したときになかったCOM。

f:id:go-go-poke:20200123233900p:plain

 

4.プログラミング

下記URLに作成したコードを貼ったのでコピペでOK。

(ソースを張るのにこのブログは適していなかった・・・。)

https://qiita.com/pokezaresu/items/56c9296e161586b6819a

 

boards.txtの編集。

Arduino IDE」のフォルダ(正しくは「Arduino」フォルダ)の一つ上へ移動する。

↓画像の場合は、アドレスバーにあるドキュメントを押下。

f:id:go-go-poke:20200124000326p:plain

 

ArduinoDataができている?はずなので、そこをダブルクリック。

※このフォルダがどのタイミングでできたか分かっていないので、もしなかったら、

プログラムをマイコンに書き込んだ後にもう一度確認してください。

f:id:go-go-poke:20200124000431p:plain

 

packages → arduino → hardware → avr → 1.8.2の順で移動

※1.8.2はおそらくバージョンなので違う可能性あり

boards.txtがあるはずなので、ダブルクリック。

※なければマイコンに書き込んだ後にもう一度確認してください。

 

285行目を「leonardo.vid.1=0x0f0d」に修正。※修正箇所は=の右側のみ

286行目を「leonardo.pid.1=0x0092」に修正。※修正箇所は=の右側のみ

311行目を「leonardo.build.vid=0x0f0d」に修正。※修正箇所は=の右側のみ

312行目を「leonardo.build.pid=0x0092」に修正。※修正箇所は=の右側のみ

 

最後に、Arduino IDEの→ボタンを押してマイコンにプログラムを書き込みます。

f:id:go-go-poke:20200124001139p:plain

 

シリアルポートを認識しないといったおかしな事象が発生したら、1回マイコンをリセット(ショート)してみてください。

RSTとGNDって書いてある穴のふちにある鉄?を電気的につなげばリセットです。

※電気を通すので自分の体に電気がいかにように注意してください。

 (危険があるかは定かではないですが、常識的に考えて危険です。)

 自分は、コードとかを束ねてる針金の先端をハサミで剥がしてつなげてました。

 

これで、Switchにマイコンをつなげればうまくいくはずです。

ただし、以下注意点があります。

・Switchのコントローラーの接続を切った状態でマイコンを接続してください。

 接続済みだったコントローラーが優先されマイコンが使用するコントローラーとなりません。→つまり、動きません

・日付を1月1日にして開始してください。(年数は不問)

 1月1日でない場合、途中でレイドバトルに入ってしまい、ワットを稼げなくなります。

 

それでは、良き自動化ライフを!!