しょのんのブログ

主に趣味について書いていきます

【ポケモン剣盾】マイコンへのプログラムの書き込み方と使い方

前回はマイコンの選び方について解説をしました。

sinonis826.hatenablog.com

 

今回はマイコンへの自動化プログラムの書き込み方を詳しく解説したいと思います。

 

 

 

 

用意するもの

まずは以下の2つをダウンロードします。

dfu-programmerは自動化プログラムをマイコンに書き込むためのソフトです。

今回は分かりやすいようにデスクトップに「マイコン」フォルダを作り,そこにダウンロードして説明していきます。

 

 

dfu-programmerのダウンロード

dfu-programmerは以下のサイトからダウンロードすることができます。

dfu-programmer.github.io

 

リンク先の少し下にあるDownloadsのproject fileをクリックするとダウンロードサイトに飛ばされます。

 

f:id:sinonis826:20200212030202p:plain

 

ダウンロードサイトの緑色になっているDownload Latest Versionをクリックするとdfu-programmer-winのzipファイルがダウンロードされます。

f:id:sinonis826:20200212030209p:plain

 

これを分かりやすいところ(例えばデスクトップのマイコンフォルダ)に解凍します。

f:id:sinonis826:20200212030256p:plain

 

 

自動化プログラムのダウンロード

ポケモン剣盾のマイコン自動化プログラムは色々な方々が作ったものを公開してくれています。

今回はか_かさんのロトムIDくじ自動化のプログラムを利用させてもらおうと思います。

 

 

リンク先からプログラムをダウンロードし解凍すれば準備は終わりです。

 

 

プログラムの書き込み方

では準備ができましたのでマイコンにプログラムを書き込んでいこうと思います。

プログラムに書き込むための手順を以下に示します。

  1. マイコンをPCに接続する。
  2. マイコンをDFUモードにする。
  3. ドライバを更新する
  4. 使いたいプログラムと同じフォルダにdfu-programmer.exeをコピーする。
  5. PowerShellを使ってプログラムを書き込む

 

 

1.マイコンをPCに接続する

まずはマイコンを付属のUSBケーブルを使ってWindowsPCに接続します。

そして左下のWindowsマークを右クリックしデバイスマネージャーを立ち上げます。

f:id:sinonis826:20200212030538p:plain

 

f:id:sinonis826:20200212031127p:plain



 

2.マイコンをDFUモードにする

DFUモードにするためにはAtmega16u2のRESET_2ピンとGNDピンをショートさせる必要があります。

f:id:sinonis826:20200212030941j:plain

参照元https://riptutorial.com/ja/arduino/example/15314/arduino-uno-r3

 

なので以下の画像のように2つのピンをジャンパ線でつなぐ,または僕のようにカッターを使ってちょんと接触させてショートさせます。

f:id:sinonis826:20200212152442j:plain
f:id:sinonis826:20200212152429j:plain

 

そしてカッターをピンから外します。

するとPCからUSB機器が取り外されたときと接続されたときの音がするはずです。

初めての方(ドライバを更新していない方)はデバイスマネージャーの「他のデバイス」の中に「不明なデバイス」が表示されます。

(「Atmel USB Devices」の中に「ATmega16U2」と表示される方もいるかもしれません…)

表示がされない方はもう一度ショートさせてみてください。

表示がされたらマイコンはDFUモードになっているはずです。

 

 

3.ドライバの更新

 表示された不明なデバイス(またはATmega16U2)を右クリックし「ドライバーの更新」をクリックします。

f:id:sinonis826:20200212033348p:plain

 

ドライバーの検索方法は下の「コンピューターを参照してドライバーソフトウェアを検索」を選びます。

f:id:sinonis826:20200212033531p:plain

 

参照からダウンロードした「dfu-programmerのdfu-prog-usb.1.2.2」のフォルダを選びます。

f:id:sinonis826:20200212033534p:plain

 

ドライバーが正常に更新されました」と表示されたらデバイスマネージャーを閉じます。

f:id:sinonis826:20200212033555p:plain

 

 

4.使いたいプログラムのフォルダにdfu-programmer.exeをコピーする

ダウンロードしたdfu-programmer.exeを自分が使いたいプログラムが入っているフォルダにコピーします。

 

 

5.PowerShellを使ってプログラムを書き込む

自分が使いたい自動化プログラムの入っているフォルダを開きます。

エクスプローラ内の何もないところで「Shftキー+右クリック」をし,「PowerShell ウィンドウをここで開く」をクリックします。

f:id:sinonis826:20200212035309p:plain

 

すると青いWindows PowerShellの画面が出てきます。

f:id:sinonis826:20200212031745p:plain

 

次に下記の文をコピペしてエンターキーを押します。

.\dfu-programmer.exe ATmega16U2 erase

 

f:id:sinonis826:20200212031748p:plain

 

「Success」と表示されたらもともと書き込まれていたプログラムが削除されます。

さらに次の文をコピペしてエンターキーを押します。

.\dfu-programmer.exe ATmega16U2 flash Joystick.hex

 

f:id:sinonis826:20200212031751p:plain

 

これも同様に「Success」と表示されれば無事マイコンに自動化プログラムを書き込むことができました。

 

書き込むプログラムは「.hex」になっているプログラムです。

なので例えばトーナメントループ用のプログラムの名前が「LoopTournament.hex」なら「Joystick.hex」のところを「LoopTournament.hex」にしてからエンターキーを押します。

 

【2/29追記】元のファームウェアへの戻し方です

sinonis826.hatenablog.com

 

 

プログラムの使い方

基本的にはプログラムを作ってくれた人がフォルダ内に「Readme.txt」を用意してくれているのでその通りにすることで自動化プログラムを実行できます。

(例えばランクマッチを一回してロトミの前に立ってからマイコンを繋ぐなど)

 

 

他のプログラムへの書き換え方

二回目以降の書き込みではドライバーの更新は必要ありません。なので3番の手順を省略して,

  1. マイコンをPCに接続する。
  2. マイコンをDFUモードにする。
  3. ドライバを更新する省略する
  4. 使いたいプログラムと同じフォルダにdfu-programmer.exeをコピーする。
  5. PowerShellを使ってプログラムを書き込む

 

これらを同様に行うことで他のプログラムを書き込むことができます。

 

 

さいごに

 

次回はプログラムの編集をするための環境構築を詳しく解説したいと思います。

質問などありましたら答えられる範囲で答えますのでコメント欄またはTwitterにてお願いします。

 

twitter.com

 

【2/15追記】

今回の方法で書き込んだマイコンの販売やそれをするために金銭を要求することは違法です。

メルカリのアカウントがBANされたり任天堂などから法的措置を取られたとしても僕は一切の責任を取りません。

 

【2/13追記】プログラム編集方法環境準備編です。

sinonis826.hatenablog.com