CH552-MCUでSplatoon3の自動ドット打ちを実現する
今年はもう記事を書かないであろうと私自身も思っていました。ゲーム好きの和菓子です。
今回はN番煎じですが、Splatoon3の自動ドット打ちに挑戦した記事となります。
Splatoonの自動ドット打ちには今でもArduino UNOやleonardoを使っている人が多いかと思うのですが、情報が古くなっていたり、最近はチップの高騰で値段が上がってしまっていてあまりよろしくないな(抽象的)と思っています。
なので今回は、ぼんじりさんが800円で販売されているCH552-MCUでドット打ちに挑戦してみようと思います。
導入手順
以下のものをダウンロード・インストールします。
・Arduino IDE
・WCHISPTool
https://cdn.discordapp.com/attachments/671698808140464158/1044979116572680262/WCHISPTool_Setup.exe
ボード・前提ライブラリのインストール
こちらから抜粋します。
ボードのインストール
① ファイル→環境設定を開き、「追加のボードマネージャのURL」に以下のURLを追加してください。
https://raw.githubusercontent.com/DeqingSun/ch55xduino/ch55xduino/package_ch55xduino_mcs51_index.json
② ツール→ボード→ボードマネージャを開き、検索窓で「ch55xduino」を検索し、インストールします。
③ ツール→ボードから、CH552を選択します。
④ ツール→USB Settingsから、「USER CODE w/ 148B USB ram」を選択します。
ライブラリのインストール
Arduino IDEのライブラリマネージャーの検索窓で「CH55xSwitchControl」を検索し、インストールします。
画像の変換・コンパイル
以下からch552spl3printer.zipをダウンロード・解凍します。
解凍すると、フォルダの中はこのようなファイルが入っています。
(画像は320×120で二値化した物を用意してください。paint.netなどのツールで簡単に作成できます。)
コマンドプロンプトを開きpng2c.exe、画像、image.hの順でドラッグアンドドロップします。
Enterで実行し、「converted with original colormap and saved to…」という文言が出たら成功です。
ch552spl3printer.inoをArduino IDEで開き、スケッチ→「コンパイル済みのバイナリをエクスポート」を実行します。
成功すると(旧IDEだと)解凍したフォルダに直接.hexが、新IDE(v2.0)ではbuildフォルダ内に.hexが生成されます。
CH552-MCUに書き込む
(ぼんじりさんの記事がとてもわかりやすいのでほぼ抜粋です)
続いてWCHISPToolを開き、画像赤枠のとおり設定を行います(User Fileに先程の.hexを指定します)。
CH552-MCUのスライドスイッチをBootloaderに設定してPCに接続し、WCHISPTool側に「MCU model:CH552」といった表示がされたら、その下のDownloadボタンを押します。
特にエラーが出なければ書き込みは成功です。
実行
CH552-MCUのスライドスイッチは「Run Program」側に、switchはカーソル最小で左上に合わせてこの画面を出しておきます。
あとはCH552-MCUを接続すればドット打ちが始まります。お疲れさまでした。
描画がズレる…
これはSplatoon3側の問題のはずなのですが、ゲーム自体が処理落ちからか一瞬フリーズするような挙動を起こして描画がずれるのを観測しています。
ボタン押下時間を増やしたり、回避処理を入れてはいますが完全に解決できてはいないので、改善できた方は是非プルリクエストを送ってください。
おわりに
イ カ が で し た で し ょ う か ?
最新かつ800円で自動ドット打ちができる環境を紹介したかったので取り急ぎで記事を書いてみました。
これから自動ドット打ちを始めたい方は是非ともCH552-MCUでやってみてください。
それでは。