唯唯漂うただの海藻

本やゲームなどの感想とか好きなことを書いていく。

【ポケモン剣盾】マイコンで自動化しました

NXMacroController画像認識失敗

マイコンってなんだ・・・?ってレベルの知識でしたがめちゃくちゃ簡単でした。

私が現在まで回したのは、

自動ロトムくじ、自動孵化、自動W稼ぎ、自動乱数消費、自動レイド厳選(画像認識を使用)の5つです。探せばもっとできることたくさんあると思います。

特に乱数消費はすごく便利で、1時間4000か5000くらい消費してくれるので、数万の消費も可能になりました。

本当に簡単です。マイコンにプログラムを書き込むまでは手順一切つまづかず20分ほどでできましたし。

ただ乱数消費の消費数を書き換えるのは少し手間取りましたが。

プログラムのリンクなどは載せませんが軽く解説していきます。

 

 

必要なもの

マイコン

私はELEGOO Arduino用UNO R3コントロールボード ATmega328P ATMEGA16U2 +USBケーブルというものを購入しました。

このマイコンはたまに品切れしておりますが、他のマイコンでもatmega16u2を搭載しているものであれば殆どのものは大丈夫だと思います。ただできればUSBケーブルが付属しているものを購入したほうがいいです。

atmega32u4搭載のマイコンでも可能ですが、一気に難易度が上がりますので初心者の方にはおすすめできません。

 

・コンピューター

私の環境はWindows10Proです。

Windowsでしたら10以外でもプログラムを書き込むだけなら簡単だと思います。

 

ここから下はお好みで

・ジャンパーワイヤ(オス-オス、オス-メス)

下のUSBシリアル変換アダプタを使うなら必須です。

プログラム書き込みの際にも使用しますがマイナスドライバーやプラスドライバーなどの金属でも代用可能です。心配なら買っておくといいと思います。

・USBシリアル変換アダプタ

私はDSD TECH SH-U09C USB - TTLシリアルアダプター + FTDI FT232RLチップというものを買いました。

画像認識とかを使用するプログラムを使いたかったり、いちいちマイコンに書き込むのが面倒なら買うといいと思います。

ちなみに画像認識を使うには別にキャプチャーボードも必要なので注意。

【2020/1/29追記】

どうやらマイコンの売り切れ状態が続いているようなので他のものも紹介しておきます。

上のように、少しお高いですがマイコンと色々セットになっているものが他にもいくつかあります。

UNO R3で検索していただければ出てくるのでお好きなものを買うといいと思います。

他にもHiLetgoという会社の安価なものがありますが、ショートさせる用のピンが見当たらないのでやめておいたほうがいいかと思います。できれば私と同じようにELEGOOから出ているものにしておいたほうがいいかと。

セットのものを買う場合、ジャンパーワイヤはついてくるので買わなくて大丈夫です。

【2020/2/1追記】

コメント欄に他のマイコンの候補が2つあがっているのでよければどうぞ。

追記終わり。

【2020/2/5追記】

ATmega32U4搭載のマイコンはショートの方法などいろいろ変わってくるのでわかる人以外購入しないでください。私はわかりません。🤪

マイコンにプログラムを書き込む手順

書き込みたいプログラムとマイコンのドライバーを入手

書き込みたいプログラム(拡張子.hex)と、dfu_programmer_winを拾ってきます。

sourceforge.net

dfu_programmer_winは上のサイトから拾ってきて解凍。

プログラムは各自探してきてください。

パソコンにマイコンを認識させる

マイコンジャンパーワイヤ繋ぎ方

画像のようにジャンパーワイヤ(金属ならプラスドライバーでもイヤホン端子でもなんでもいい)を繋ぎ、その状態でPCにUSBで接続し、ジャンパーワイヤを抜く。

そうするとデバイスマネージャーに不明なデバイスが出現するはずです。

【2020/2/5追記】

ここで詰まる方がなぜか多いみたいなので追記します。

16u2なら画像のような場所のピンを2つ金属でショートさせた状態でPCに繋いでPCに繋いだらショートを解除します(ジャンパーワイヤなら抜く、カッターナイフ等なら離す)

32u4ならジャンパーワイヤか針金などでGNDとRSTを同じようにショートさせて解除する。

ドライバーのインストール

デバイスマネージャー画面

その不明なデバイスを右クリックし、ドライバーの更新をクリック、コンピューターを参照。

そこでさっきダウンロードしたdfu_programmer_winフォルダの中にあるdfu_prug_usbを選びインストールします。

マイコンにプログラムを書き込む

マイコンフォルダ

dfu_programmer_winフォルダの中にあるdfu-programmer.exeと書き込みたいプログラム(拡張子.hex)をこんな風に同じフォルダに入れます。

このファイルの空いている場所でshift押しながら右クリックし、Powershellウインドウをここに開くを選択します。

パワーシェル画面

dfu-programmer.exeをPowershellにドラッグ&ドロップし、その後ろにスペースを入れてATmega16U2 eraseと書き(ATmega32U4ならおそらくATmega32U4 erase)、エンターキーを押します。

successと出たら、再びdfu-programmer.exeをPowershellにドラッグ&ドロップし、その後ろにスペースを入れてATmega16U2 flash ○○○○○(書き込みたいプログラム名).hexと書き(ATmega32U4ならおそらくATmega32U4 flash ○○○○○.hex)、エンターキーを押します。

successと出たら書き込み完了ですのでパソコンから外し、拾ってきたプログラムの指示通りのタイミングでSwitchにマイコンを挿せば動いてくれるはずです。

 【2020/2/6追記】

 ATmega32U4は少し書き込み方法が違うそうなので追記。

Switch版DEAD OR ALIVE Xtreme3 Scarlet (DOAX3S) 自動プレイ

こちらのサイトの3.(1)③④を参考にしてください。

たぶんWinAVRじゃなくてPowershell上でavrdude -c avrdude.conf -v -patmega32u4 -cavr109 -PCOMX -Uflash:w:Joystick.hex:iのコマンドでもできると思いますがATmega32U4を所持していないのでわかりません申し訳ないです。

 

ね?簡単でしょう?

別のプログラムを使いたくなったらまた書き込み直さなければいけないのが少し面倒ですが。(2回目以降はドライバーのインストールの項目は飛ばしていい)

プログラムの編集方法やシリアル通信のやり方も書こうと思いましたが長くなるのでまた別の機会に書こうと思います。

いちいち書き込み直すの面倒なのでマイコン5枚くらい欲しいですね…

【2020/1/21追記】

プログラムの編集方法とmake方法、シリアル通信のやり方について書きました。

hijikichi.hatenablog.com

【2020/2/1追記】

自動レイド配布プログラム作りました。

プログラムのリンクはこの記事の最後に貼ってあります。

【2020/2/10追記】※2/24にファイル上げ直しました。

マイコン単体用とNXMacro用の自動レイド配布プログラム詰め合わせ置いておきます。

マイコン単体用の3日後バージョンは書けるプログラムの限界が来てあれですので詳しくはreadme読んでください。

不具合や改善案ありましたらコメントかTwitterへ。

 

【2020/2/27追記】

よくある質問とかを下の記事に少しまとめました。

自動レイドプログラムの最新版リンクもこっちに貼っていきたいと思ってます。

バックアップデータを使用した配布プログラムも下の記事のリンクに入れておきました。

hijikichi.hatenablog.com

【2020/12/3追記】

記事を少しだけ修正しました。(期限切れのリンクの削除など)

ここしばらくポケモン界隈から離れていたのであまりついていけてませんが、レジエレキレジドラゴやダイマックスアドベンチャーで画像認識の需要が高まってるみたいですね。

NXMacroControllerよりもPokeControllerのほうが主流みたいですし、機会があればPokeControllerの導入法も書こうかと思います。

といってもNXMacroControllerとほとんど変わりませんけどね。

私は試していませんが、こんなふざけた値段のキャプチャーボードでも画像認識は可能だと話題になっていたのを目にしました。

以下自動レイド配布プログラムについて。

自動レイド配布プログラム3日後版をSwitch本体Ver.11.0.0に対応させました。

ma-kn@ppzz_yymmさんからご提案いただいた方法で少し効率は落ちてしまいますが安定性を上げたプログラムも追加いたしました。

一部のプログラムは修正後の試運転をしておりませんのでなにか問題がありましたらご報告ください。

whitecats.dip.jp

プログラムのパスワードはraidhaihuです。