Arduino Uno でポケモンZAの作業を自動化する


はじめに

ポケモンZAではモミジリサーチにおいてトレーナー戦で1000勝する必要があります。
退屈なことは自動化しましょう。
世の中では連射コントローラーなどを使って自動化する方法が広まっていますが、今回は Arduino Uno を使った自動化を行いました。
Arduino Uno を使った自動化の方法は剣盾時代から存在しており、すでに多くの情報がネット上にありますが、2025年11月現在でも実施可能でしたので備忘録的に残しておきます。
今回は剣盾環境初期に流行ったポッ拳コントローラーを詐称した自動化を試しましたが、最近はプロコンを詐称した自動化が主流みたいです。時代の流れは速いですね。

使ったもの

  • Arduino Uno
  • USBケーブル
  • ジャンパーワイヤー(必要に応じて)

Arduino UNOのセットアップ方法

  1. USBケーブルをPCに接続します。

  2. ジャンパーワイヤーなどで、リセットピンとグランドを一時的に接続し16u2をリセットします。

    • ピンはUSBコネクタの近くにあります。参考写真は公式サイト参考 Arduino Uno 16u2 Reset Pin
  3. デバイスマネージャーを開き、 不明なデバイスが認識されていることを確認します。

  4. dfu-programmerをDLして展開します。0.9.0まではWindows版が提供されていました。

  5. デバイスマネージャーで「不明なデバイス」を選択し、ドライバーを更新します。

  6. コンピュータを参照してドライバーソフトウェアを検索」から、先ほど展開したdfu-programmer-win-0.9.0のフォルダを指定します。

  7. これでArduino UnoがDFUモードで認識され、Atmega16U2として認識されました。

    • 今後はUSBケーブルを接続する際に、リセットピンとグランドを一時的に接続し16u2をリセットするだけで、Atmega16U2として認識されます。

プログラムの書き込み

  1. AutoZAリポジトリをクローンし、READMEに従ってBuildします。

    • ※プログラムのBuildはWSL上で行い、書き込みはWindows上で行います。
    • ※プログラムは https://github.com/murufon/AutoRaid さんのものをベースに変更しました。
    git clone --recursive https://github.com/norikmb/AutoZA.git
  2. Buildして作成した Joystick.hex を前の章で展開したdfu-programmer-win-0.9.0のフォルダにコピーし、dfu-programmerで書き込みます。

    .\dfu-programmer.exe ATmega16U2 erase
    .\dfu-programmer.exe ATmega16U2 flash Joystick.hex
    .\dfu-programmer.exe ATmega16U2 reset
  3. 書き込みが完了したら、Arduino UnoをPCから取り外し、Nintendo Switchに接続します。

  4. プログラムの中身は単純にZLとAを連打するだけです。Aボタンの位置に設置技を覚えさせたポケモンを手持ちの先頭に置いておきます。

    • ゴツゴツメットを持たせて、ほのおのうずを覚えたリザードンが良い感じでした。
      { ZL,          5 },
      { A,          5 },
      { NOTHING,   30 },

感想

学生時代ぶりにArduino UNO を引っ張ってきて遊びました。このArduino UNO は中学生の時に大須の電気屋で買ったものなので思い出深いです。

参考文献・サイト