Raspberry Pi4でスプラトゥーン2, 3の自動ドット打ちをしてみた
概要
4年前くらいから存在していたマイコンを使った、自動ドット打ちと同じものを自作しました、という記事です。
次の2点のソフトウェアと、Raspberry Pi4を使用します。
-
https://pbm-cloud.herokuapp.com/
- WEBアプリケーション
-
https://github.com/splaplapla/procon_bypass_man
- Raspberry Pi4にインストールするアプリケーション
- 上記のWEBアプリケーションと連携済み
技術的な詳細
procon_bypass_man については https://zenn.dev/jiikko/articles/9bcbaac412a3f1 などリポジトリのREADMEを読んでみてください。
本自動ドット打ちツールは「WEBアプリケーション」から「Switch」へドット打ち相当のコマンドを送信します。全体のシステム図は次の通りです。
マイコン版との違い
マイコン版は、自分で画像を加工する必要があります。例えば、GIMPなどのソフトウェアを使って、画像を320x120に切り取って、白黒にして、コマンドラインでマイコンに書き込む必要があります。これはオフラインで動きます。
本ツールでは、WEBアプリという形態をとっているので、簡単な画像の加工に関しては、WEBアプリ側で行えます。つまり、画像をアップロードして、WEBアプリ上で切り取り範囲と白黒の閾値を入力するだけで準備は終わります。インターネット経由でドット打ちを行うので、オンラインである必要があります。また、何枚かを画像アップロードができるので、すぐに別の画像のドット打ちが可能です。
マイコン版の場合は、別の画像を書き込むまでの準備のコストが大きいと言えます。
- | マイコン版 | 本ツール |
---|---|---|
準備・学習コスト | 高い | 低い(ラズパイのインストール工程は除く) |
実行環境 | オフライン | オンライン |
使い方
PBMとWEBアプリを連携し、WEBアプリでアカウントを作成後、 https://pbm-cloud.herokuapp.com/feature/splatoon2/sketches/new を開いてください。
画像のアップロード画面
切り取り範囲の登録画面
Cropper.jsというライブラリを使いました。
白黒の範囲の設定画面
サーバ側でImageMagickというライブラリを使って白黒化をしています。
切り取り範囲と白黒化を適用後の様子
WEBアプリには、アップロードした元の画像を保存しているので、切り取り範囲と白黒具合は後から変更が可能です。
書き込む画面
「書き込む」を押すと1ドットずつ書き込みます。
打ち込んだ結果
ちゃんと書き込めました。書き込み速度に関しては、チューニングをしているところですが、40~50分くらいで書き込みができるようになっています。
元画像
書き込んだ結果
おわりに
これらツールのソースコードはすべて公開しています。試してもらえるとうれしいです。フィードバックを待っています。
ドキュメントには不明なところが多いと思いますが、discordのサーバも作っているので気軽に質問や要望をしてくれたらうれしいです。
おわり
Discussion