Splatoon3で自動ドット打ちした!
よくスプラには写真のような絵を描いているイカくんがいます。
そんなイカはどうやって書いているのかと思ったら、Arduinoで書いているではないか。クッソ初心者でPythonもいじったことなかったが、頑張ってやったらできたのでその手順を備忘録として残します。
参考にさせていただいたブログ様
スプラトゥーン3のイラスト投稿自動ドット打ち|あらB|note
必要なもの
・Arduino UNO R3
・USB-B⇔USB-Aケーブル
・USB-A⇔USB-Cコネクター
・パソコン
コネクターは100均にあるやつで大丈夫です。
Arduinoは4000円くらいしますが、壊さなければ何度でも使えるしそれ以外はお金かからないので思い切って買いましょう。もちろん画像生成、ファイルができてからでも遅くないです。
環境
Windows10
まっさらでプログラミング系は何も入ってません
WebからDLしなきゃいけないもの
・dfu-Programmer
・Python2.7
まずは・・・
プログラミングするための基盤をつくります。
(すでに環境がある方は読み飛ばしてくださいませ。)
MicrosoftストアでUbuntuと検索し、入手します。
そして開くと、「Enter new UNIX username:」と出るので、
自分の好きなユーザー名を入れましょう。(半角英字で)
その後「New Password」と出るので、パスワードをいれ、
「Retype ~」と出るので同じものを入力。
Successful!と出たら、いろいろ出て
<PCのユーザー名>@~:~$
と緑文字で表示されるはずです。
そしたらUbuntuのバージョンのリストを次のコマンドで確認します。
sudo apt update
(sudo:管理者が実行するという意味。インストールとかの時は使います。)
するとこのようになるので
sudo apt upgrade
と入力し、「Do you want to continue?[Y/n]」と聞かれるので、
キーボードの「y」を押します。色々でてまた
<PCのユーザー名>@~:~$
になったらアップデート完了したということなので次は、日本語化します。
sudo apt -y install language-pack-ja
すると沢山なんか出て収まったら、
sudo update-locale LANG=ja_JP.UTF8
と入れます。※何も出ません
そのあと
locale
といれると、「~~=”C.UTF-8”」になってるはずなのでなってればおkです。
インストール終了です。
Tips
コピーしたものを貼り付けたいとき、右クリックもしくは
Ubuntuの左上のマークの上で右クリックをしてプロパティから
「Ctrl+Shift+C/Vでコピペ」にチェックを入れるとコピーしやすくなります。
また過去にいれたコマンドを矢印の上下キーで呼び出せます。
次はPythonを入れていきます。
この度はPython3ではなく2を使うので、2をインストールしていきます。
これをDL&インストールしてください。
参考にしたブログ様
ubuntu:コマンド’python’が見つかりません。を解決│Webells
次にUbuntu上で
sudo apt-get install python
と入力。
そのあと
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
と入力してPython2を登録。「自動モードでPython2を使います。」と出れば成功。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 7
と入力してPython3を登録。
この際、エラーがでたら一番後ろを公式サイトを見て最新版の奴に書き換えてください。EX:Python3.10 7から3.11.1とか
そのあと
sudo update-alternatives --config python
をおして選択肢の中からpython2.7の選択肢の番号を押してください。
次はPillowをインストールします。
sudo pip3 install Pillow
と打ちます。するとなんか色々出てインストールされます。
確認は
pip show Pillow
でできます。
その他のインストール
sudo apt install -y git gcc-avr avr-libc
と入力してインストール
画像を作ろう
このドット打ちをするためには「320*120」の画像サイズである必要があります。
GIMPなどを使うのもよしですがめんどいので、
CanvaというWeb上で画像編集できるやつを使います。
適当に会員登録して「ホーム」の「カスタムサイズ」からこうしてください。
で、こんな感じに作ればいいです。
人の顔は大きいほうが出やすいです。
文字とかはあまり斜めにしないほうがいいです。
画像は共有からダウンロードで保存できます。
保存したら、ここで
画像をモノクロ2色(二階調)にする - 無料WEBアプリ - DataChef | TechLagoon
モノクロに変換します。濃さはスライドバーで面白くしてください。
- そしてファイル名は半角英数字のみの短めのものが良いです。
これができたら次からが激ムズです。
ドット打ち用のファイルの製作
まず、
mkdir -p ~/repos
cd ~/repos/
と入力します。mkdirの時は何もでず、cdをすると
<PCのユーザー名>:~/repos$
のようになると思います。
(mkdir:新しくディレクトリを作るコマンド cd:~に移動する)
次に
git clone https://github.com/abcminiuser/lufa.git LUFA
git clone https://github.com/Sp4rkR4t/splat3draw.git
cd splat3draw
と順番にいれていきます。
<PCのユーザー名>:~/repos/splat3drow/$
となっていればOK
次に
cp /mnt/{画像のパス}/<作った画像の名前>.png ./
ls -al <作った画像の名前>.png
と打って作った画像をコピーしてきます。(cp:コピーコマンド)
作った画像の名前が「spla3.png」でダウンロードフォルダに入っていたら
cp /mnt/c/Users/<PCのユーザー名>/Downloads/spla3.png ./
となります。画像のパスは画像を右クリックして一番下のプロパティを押すと
C:¥Users¥ユーザー名¥デスクトップ
のように出てきますが、「¥」の部分を「/」に変えて打つ必要があります。
次に
vim makefile
と打ってください。(Vim:ファイルを開くモード)
するとmakefileの中身が見れます。
こんな画面に写るので、キーボードの「i」を押して編集モードに切り替え
「MCU=at90usb1286」のところをマウスでクリックし
上の画像のように「atmega16u2」に書き換えてください。
そしたら「Esc」キーを押して、「:wq」と押してこのメニューを閉じてください。(:wq→編集を保存して戻る :q→保存せず戻る)
そしたら、
python3 png2c.py <作った画の名前>.png
と打って「image.c」を生成します。
そしたら
make
と打ってビルドします。
そしたらJoystick.hexというファイルが出力されるので
cp Joystick.hex /mnt/c/Users/<PCのユーザー名>/Downloads/
と打って好きなところにJoystick.hexをコピーします。
これでファイルの生成は終わりました。
もしimage.Cが作れなかったら・・・
No named PILと出てきたら
pip install Pillowと打ってみてください。
Arduinoへの書き込み
これで最後です。
まず
https://sourceforge.net/projects/dfu-programmer/files/dfu-programmer/0.7.0/
ここから「dfu-Programmer」をダウンロードします。
怪しさ満点ですが大丈夫です。
ZIPファイルを解凍したら解凍したファイルの中に「Joystick.hex」をコピーします。
そしたら認識させるところはこの記事を参考にしてください
~あらすじ~
PCにArduinoをUSBでつないだらピンを3秒くらいショートさせてから
デバイスマネージャーを開きます。
そしたら「不明なデバイス」とあるのでそこで右クリックし、
「ドライバーの更新」をクリック、プログラムを参照してさっき解凍した「dfu-programmer.exe」を選択します。すると「ATmega16U2」として認識されます。
認識されたらあとは
ここのファイルを開いて「Shift」キーを押しながら右クリックをして
「PowerShellウィンドウをここで開く」を選択してください。
そしたら
./dfu-programmer.exe ATmega16U2 erase
と入れてArduinoの中をクリアにし
./dfu-programmer.exe ATmega16U2 flash Joystick.hex
と入力してArduinoの中に書き込み、特に何もせずUSBを外します。
Switchの設定に行きます
スイッチの設定>コントローラーとセンサー
のなかの「コントローラーの有線接続」をONにします。
これをONにしないと動きません。
ついにSwitchに繋ぎます。
スプラ内のポストに行き、ペンを最小にしてからつなぎます。
すると・・・・
動きました!!!4800ドット打たせるわけですから30分~かかります。
充電がなくならないように画面を暗くしたり色々工夫がいります。
途中、ラグでずれてしまったりしてもあとで修正できます。
僕自身、初めての時は12時間以上かかりました。。ハハハハ・・・・( ´∀` )
(これを書いたときは1発でできました!)
PythonやUbuntu自体触るのは初めてだったけどできたので頑張ってください
完