唯唯漂うただの海藻

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

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

NX Macro Controller画像認識失敗

昨日の記事の続きです。

hijikichi.hatenablog.com

自動化プログラムの編集方法、makeする方法、シリアル通信のやり方について書いていきます。

自動乱数消費のプログラムの乱数消費数をいじったり、自動くじや自動ワットなどの待機時間を調整したりするときに編集→makeという作業が必要になってきます。

この作業はシリアル通信をするためにも必要になります。

以下に自動化プログラムの編集方法、makeする方法、最後にシリアル通信のやり方について書いていきますが、うる覚えなので間違っていたら指摘してください。

 

 

自動化プログラムの編集方法

拾ってきた自動化プログラムのフォルダの中に、joystick.c makefileというふたつのファイルがあるものがあると思います。

それらをメモ帳でもなんでも適当なテキストエディタで開いて書き換えるだけです。

joystick.cは動かす内容(乱数消費数やら待機時間やら)、makefileはatmega16u2かatmega32u4か、プログラムがわからない私が書き換えてるのはそれくらいですね。

この2つのファイルともともとあった他のファイルを使用して.hexをmakeします。

.hexのmake

Ubuntuのインストール

Windows10前提で書いていきます。

Ubuntuのインストールについては説明するの面倒なので以下のサイトの「まずはWSLとディストリビューションをインストールしよう」の項目を見てください。

www.atmarkit.co.jp

初期設定のパスワードについてですが、画面に表示されなくて適当に打ってたらわからなくなって再インストールする羽目になったのでわかりやすいパスワードでいいと思います。

Ubuntuにmakeするために必要なパッケージをインストール

私はここで詰まって色々インストールしてしまって最小限のものはわからないのですが、おそらくgcc-avr avr-libcのふたつがあれば大丈夫だと思います。

Ubuntuを起動し、ユーザー名とパスワードを入力し、以下のコマンドを一つずつ入力します。(一行ごとにエンター押してインストールしてから次のインストール)

sudo apt-get install -y gcc-avr

sudo apt-get install -y avr-libc

たぶんこの2つでいけると思いますが、無理でもmake時に出るエラーを見れば何が足りないかわかるはずです。

【2020/2/3追記】

上記の2つで無理でしたら、

sudo apt-get update

sudo apt-get install -y avr-gcc

このあたりのコマンドを打ってみてください。

それでも無理ならエラー内容でググってください。

.hexのmake

joystick.cとmakefileがあるフォルダの空いているところでshift押しながら右クリックし、Linuxシェルをここに開くを選択します。

Linuxシェルが開いたら、makeと入力しエンター押すだけです。

成功したら.hexファイルがjoystick.cとmakefileがあるフォルダの中にできているはずです。

以下注意事項

make時にエラーが出ましたら、他のファイルやらubuntuのパッケージやらが足りてないのでエラーを見て判断してください。

makeしたプログラムが動きませんでしたら、makefileのatmega16u2かatmega32u4かの項目が違っている可能性があります。

joystick.cとmakefileだけでできるわけではないので、色々なファイルがある元のフォルダの中で作業してください。

joystick.cしか配布されていない場合、適当に揃っているプログラム(私は面倒なので全部乱数消費プログラムでやってますがゼルダの伝説BotWの雪玉プログラムとかでもいいと思います)を拾ってきてその中に入れて作業すればいけると思います。

シリアル通信のやり方

ここまで出来ていればシリアル通信はめちゃくちゃ簡単ですのでシリアル通信のやり方も書いておきます。

以下のサイトからシリアル通信用のプログラムSwitch-Fightstickを拾ってきて、そのままmakeしてマイコンに書き込み、マイコンとUSBシリアル変換アダプタを繋ぎ、PCとSwitchに接続するだけです。

github.com

Switch-FightstickはDownloadZIPではlufaファイルだけDownloadできなかったので、後でlufaファイルも選択してDownloadする必要がありました。

マイコンとUSBシリアル変換アダプタの繋ぎ方はちょっと調べたら出てくると思います。※記事最後の【2020/1/29追記】に載せました。

USBシリアル変換アダプタはPCに初めて繋いだときにドライバーをインストールする必要があると思いますが自動でされるので問題ありません。

シリアル通信を使って何をするかですが、簡単に言うとPCでコードを書いてSwitchを動かすことができます。

私はNX Macro Controllerというものを使用しています。

bzl.hatenablog.com

画像認識を使用するためにはキャプチャーボードが必要ですけどね。

私が使ってるのはこれです。

SKNET MonsterXX2 1080 60p対応フルHDビデオキャプチャーボード SK-MVXX2

SKNET MonsterXX2 1080 60p対応フルHDビデオキャプチャーボード SK-MVXX2

  • 発売日: 2015/03/15
  • メディア: Personal Computers
 

画像認識いろいろ試してみましたが、公式画像をいじった画像や適当に拾ってきた画像では認識せず、NX Macro Controllerの右クリックで直接キャプチャした画像じゃないと安定しない感じでした。

 

【2020/1/29追記】

マイコンとシリアル変換アダプタの繋ぎ方で躓いていた方がおりましたので実際に繋いだ画像を追記しておきます。

マイコンシリアル変換アダプタ繋ぎ方

【2020/2/3追記】

白と黒のジャンパーワイヤなので見づらいと思うので追記しておきます。

GND-GND、TXD-TX→1です。

 

あとおまけで私が10分くらいで適当に組んだNX Macro Controller用の自動レイド配布マクロを置いておきます。

中身見ていただければわかりますがガバガバです。ID厳選マクロ作ってくれとお願いしてきた方がいましたが、これを見たら私がID厳選マクロなんてもの組めるわけないってわかりますよね。

ついでにもう一つ、Ubuntuのパッケージの項目、おそらくあの2つじゃ足りません。というかたぶんそのままだとインストール出来ないかもです。アップデートとかが必要かと思います。忘れたのでそこは他のサイト見てください(追記しました。それでも駄目ならググってください。)

【2020/2/1追記】

3日時渡りした後にレイド配布するマクロ組みました。

【2020/12/14追記】

期限切れのリンクを削除。

最新版はこちらです。

whitecats.dip.jp

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