Splatoon3で自動ドット打ちした!

よくスプラには写真のような絵を描いているイカくんがいます。

そんなイカはどうやって書いているのかと思ったら、Arduinoで書いているではないか。クッソ初心者でPythonもいじったことなかったが、頑張ってやったらできたのでその手順を備忘録として残します。

 

参考にさせていただいたブログ様

qiita.com

error-astray.hatenablog.com

teityura.com

スプラトゥーン3のイラスト投稿自動ドット打ち|あらB|note

必要なもの

Arduino UNO R3

・USB-B⇔USB-Aケーブル

・USB-A⇔USB-Cコネクター

・パソコン

 

ネクターは100均にあるやつで大丈夫です。

Arduinoは4000円くらいしますが、壊さなければ何度でも使えるしそれ以外はお金かからないので思い切って買いましょう。もちろん画像生成、ファイルができてからでも遅くないです。

 

環境

Windows10

まっさらでプログラミング系は何も入ってません

 

WebからDLしなきゃいけないもの

・dfu-Programmer

・Python2.7

Ubuntu

 

まずは・・・

プログラミングするための基盤をつくります。

(すでに環境がある方は読み飛ばしてくださいませ。)

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をインストールしていきます。

www.python.org

これを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上で画像編集できるやつを使います。

https://www.canva.com/

適当に会員登録して「ホーム」の「カスタムサイズ」からこうしてください。

で、こんな感じに作ればいいです。

人の顔は大きいほうが出やすいです。

文字とかはあまり斜めにしないほうがいいです。

画像は共有からダウンロードで保存できます。

保存したら、ここで

画像をモノクロ2色(二階調)にする - 無料WEBアプリ - DataChef | TechLagoon

モノクロに変換します。濃さはスライドバーで面白くしてください。

  1. そしてファイル名は半角英数字のみの短めのものが良いです。

これができたら次からが激ムズです。

ドット打ち用のファイルの製作

まず、

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」をコピーします。

error-astray.hatenablog.com

そしたら認識させるところはこの記事を参考にしてください

~あらすじ~

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分~かかります。

充電がなくならないように画面を暗くしたり色々工夫がいります。

途中、ラグでずれてしまったりしてもあとで修正できます。

youtube.com

 

僕自身、初めての時は12時間以上かかりました。。ハハハハ・・・・( ´∀` )

(これを書いたときは1発でできました!)

PythonUbuntu自体触るのは初めてだったけどできたので頑張ってください