【ポケモンSV 自動化】連射コントローラーがないのでArduino UNOで代用してみた。【環境構築】

ゲーム
スポンサーリンク

前回投稿したポケモンSV自動化ではArduinoProMicro(Leonardo)を使用しました。

環境構築は複雑にはなりますがArduinoUNOでもSwitchの操作は可能なのでやり方を書いていきます。

こちらも試す際は自己責任でお願いいたします。

PCに詳しくない人には結構難しいので今から買うなら一つ前の記事のArduinoProMicro(Leonardo)
のほうでやったほうがいいと思います。

スポンサーリンク

必要なもの

  • ArduinoUNO 互換品でOK
  • USB (タイプA to タイプB) ArduinoUNO本体に付属してるかも
  • USBタイプAをタイプCに変換できるもの(Switch本体に直接つなぐ場合は必要、ドッグに接続する場合は不要)
    USB タイプC変換器 もしくは USBタイプCハブ (充電しながら使いたい場合ハブのほうがおすすめ)
  • PC (Windows or Macどちらでも可能ですが今回書く内容はWindowsの手順となります)
    Macで行う場合こちらの方の記事がわかりやすいです。

    ArduinoUNO本体とケーブル以外はArduinoProMicro(Leonardo)一緒です。

必要なソフトのダウンロード

スポンサーリンク

ArduinoUNOをATmega16U2として認識させる

先ほどダウンロードしたdfu-programmer-win-0.7.2は解凍して適当な場所に置いておいてください。

左下のWindowsマークを右クリックすると「デバイスマネージャー」があるので起動します。

ArduinoUNOとPCを接続します。
その後下記画像のように左上にある六本のピンのうち左二本を金属(私はイヤホンジャックで代用しました)と接触させる。接触させた時と離した時にシステム音が鳴ると思います。

正面から見て左上六本のピンの左二本をショートさせる。

その後デバイスマネージャーを見るとほかのデバイスの欄に「不明なデバイス」があると思います。

「不明なデバイス」を右クリックして「ドライバーの更新」を選択

ドライバーの更新を選択

「コンピューターを参照してドライバーを検索」を選択

コンピューターを参照してドライバーを検索を選択

その後、先ほどダウンロードした「dfu-programmer-win-0.7.2」を解凍してその中にある
「dfu-prog-usb-1.2.2」を選択してインストール。

このように表示されたら成功

上記画像のようにドライバーが正常に更新されたら成功。

再度デバイスマネージャーを確認すると「ATmega16U2」があると思います。

「ATmega16U2」があることを確認。

各種ファイルの確認

先ほどダウンロードしておいた
「AutoRaid-1.0.0aw」と「lufa-d6a7df4f78898957fa6d5b63e62015ce763560d4」解凍します。

「AutoRaid-1.0.0aw」の中を確認するとこのようになっていると思います。

ここにある「joystick.c」を書き換えてそれを「joystick.hex」に変換することでSwitchの自動操作が可能になります。

A連打だけする場合「joystick.c」のcommand stepsをこのように書き換えておきます。

static const command step[] = {
  // Setup controller
  { B,          0 },
  { A,          0 },
  // ここまでコントローラーを認識させるおまじない

  // Start

  // 初期設定など1回だけ動かしたいコードはここまで

  // loop Start
  { LOOP_START, 0 },
  // これより下を無限ループ


  { A,          5 },
  { NOTHING,   50 },
  
};

上から二番目の「lufa」フォルダの中に解凍した
「lufa-d6a7df4f78898957fa6d5b63e62015ce763560d4」の中身を入れます。

「AutoRaid-1.0.0aw」の「lufa」フォルダの中身はこのようになる

joystick.c を joystick.hex に変換

まずこの記事を参考にWSL(Windows Subsystem for Linux)をインストールしておきます。
ここでインストールするLinuxディストリビューションはUbuntuです。
MicroSoftStoreで「Ubuntu」と検索すると一番上に出てくると思います。

Ubuntuを起動して初期設定のユーザー名とパスワードを適当に入れます。

すると自由に操作できるようになるためコマンドを順番に実行していきます。

↓ パッケージの更新をしておきます。

sudo apt update
sudo apt upgrade

↓ gcc make というコマンドを実行できるようにするコマンドです。

sudo apt install build-essential

↓ 次にjoystick.cのあるフォルダまでcdコマンドで移動します

cd /mnt/c/ArduinoUNO/AutoRaid-1.0.0aw
cdコマンド ファイルを見る位置を変更するコマンド

「AutoRaid-1.0.0aw」を Shift + 右クリック すると「パスをコピー」という項目があると思うので
それでパスをコピーして「¥」のマークを「 / 」に変更後、頭に「/mnt/」をつけ、余分な部分を消して
貼り付けると辿り着けると思います。

lsコマンドで中身を確認すると

lsコマンド ファイルの中身を確認するコマンド

各種ファイルが確認出来たら

sudo apt-get install avr-libc gcc-avr

とコマンドを打ち、さらにパッケージをインストールしていきます。

完了したら次は

make

とコマンドを入力し実行します。

たくさんメッセージが表示されますがエラーが出てなければ成功です

joystick.cのビルドが完了したメッセージ

AutoRaid-1.0.0awの中身の「joystick.hex」を確認してみて
更新日時が現在の日付になっていればビルド成功です。

更新日時が現在の日付になっていればビルド成功
スポンサーリンク

ArduinoUNOに書き込む

ArduinoUNOをATmega16U2として認識させる手順と同じように

ArduinoUNOをPCと接続した後下の画像のようにピンに金属を接触させます。(DFUモードにする)

正面から見て左上六本のピンの左二本をショートさせる。

その後 Windowsキー + Rキー を同時に押し「cmd」と入力しコマンドプロンプトを開く。

cd コマンドで「dfu-programmer.exe」がある階層まで移動

解凍したdfu-programmer-win-0.7.2の中にあります

移動したらコマンドプロンプトで以下のコマンドを実行。

dfu-programmer.exe atmega16u2 erase
このメッセージが出たら成功

次に「dfu-programmer.exe」がある階層に先ほどビルドした「joystick.hex」をコピーします。

「dfu-programmer.exe」がある階層に先ほどビルドした「joystick.hex」をコピー

コピー出来たら以下のコマンドを実行。

dfu-programmer.exe atmega16u2 flash Joystick.hex
ArduinoUNOに書き込むメッセージがでます

上の画像の成功と表示されたら大丈夫です。

ArduinoをPCから抜きます。

あとはSwitchに挿すだけでA連打が始まります。

動作させる際の注意点

前の記事でも書きましたがドッグを介してUSBを差し込む際は、ArduinoをSwitchに差し込んだ時Proコンが接続されている場合、反応しないためProコンを接続解除しておいてください。
その後、Joyコンでマクロを実行したい場面の直前まで持っていき、JoyコンをSwitchにしまった後に
USBでArduinoとSwitchを接続すると動作すると思います。
Switch本体にタイプC変換器を用いて差し込む場合もProコンの接続解除は必要です。

学生最強大会の場合この場面までJoyコンでもっていきJoyコンをSwitchにしまった後ArduinoをSwitchに接続する。

感想

前の記事のArduinoProMicroなどと比べると難易度が一気に上がり、環境構築も面倒なため
あまりお勧めはできませんが一応こちらのやり方でも可能です。
自分もやっててよくわかりませんでした。

まとめ

ネットにあるSwitch自動化のコードはArudinoUNO用に書かれたものもあるため、両方持っておいて損はないと思いますが簡単なマクロを組むくらいならArduinoProMicroなどを使えばいいと思います。

スポンサーリンク

コメント

  1. dfu-programmer-win-0.7.2をダウンロードしたいのですが、上手くいきませんでした。緑のダウンロードボタンを見つけられていません。今もあるでしょうか?

    • 現在、このプロジェクトはGitHubに移行されたそうです。
      最新バージョンがGithubにて公開されています。
      https://github.com/dfu-programmer/dfu-programmer/releases/tag/v1.0.0
      こちらのページからダウンロード可能です。バージョンは1.0.0と書かれておりまだ試していないのでわかりませんがおそらく代用可能かと思われます。
      Windows64bitの場合「dfu-programmer-x64-1.0.0.zip」を選択してください。

  2. お早い返信ありがとうございました。「dfu-programmer-x64-1.0.0.zip」も試してみたのですが、いくつか手順を経る必要があるようで、ちょっと自分にはレベルが高かったようです。記事は大変参考になりました。家にあった古いArduinoを使ってみようと思っていたのですが、Arduinoの別バージョンを購入して試してみようと思います。本当にありがとうございました。

  3. お早い返信ありがとうございました。「dfu-programmer-x64-1.0.0.zip」も試してみたのですが、いくつか手順を経る必要があるようで、ちょっと自分にはレベルが高かったようです。記事は大変参考になりました。家にあった古いArduinoを使ってみようと思っていたのですが、Arduinoの別バージョンを購入して試してみようと思います。本当にありがとうございました。

スポンサーリンク
タイトルとURLをコピーしました