Arduino
Splatoon

Splatoon2で自動ドット打ちするやつをArduino UNO R3でやる

More than 1 year has passed since last update.

基本的にはSplatoon2で自動ドット打ちしてくれるやつをWindos10のWSLで使うと同じです.めっちゃ参考になりました(よんたさんありがとうございます)

1日くらいうまくいかなくて困ったポイントがあるのでまとめます.
ダウンロード.gif

この記事を元にGithubのSwitch-FightstickのREADMEの Compiling and Flashing onto the Arduino UNO R3 を読みながらやりました.

さて

teensyは持ってないけどArduinoならある!という人のための記事です.
teensy版と手順は同じなので,Arduinoでの異なる点を中心に書いていこうと思います.

注意点

  1. パソコンにUSB接続した時にArduinoとして認識されなくなるのでArduino IDEなどの機能が使えなくなります.戻し方を確認してから始めてください.
  2. 元記事ではWSLを使っていましたが自分はVMware上のUbuntuを使いました.それが原因となるトラブルについては調べてないです.

Switch-Fightstickをインストール

Arduinoだとバージョン1.0.0fでは動かないみたいです

なので非同梱版でやります

git clone https://github.com/abcminiuser/lufa.git
git clone https://github.com/shinyquagsire23/Switch-Fightstick.git

現時点での最新版ではコンパイル時に参照するLUFAのディレクトリが大文字なので,cloneした lufaLUFA にします.
(もしくはmake時に指定)

Arduinoへの書き込みの前に

teensy.exeを使わずにdfu-programmerをつかいますが,通常のArduinoの機能に戻せなくなると困ると思うので先に戻し方を説明します.(ただそこまで詳しくないので困った人は Arduino DFU とかでググってください)

ファームウェアのダウンロード

最新のファームウェアが https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/firmwares/atmegaxxu2 にあるので,その中の arduino-usbserial/Arduino-usbserial-uno.hex をダウンロードします.このデータがArduinoを戻すデータです

入れる
sudo apt-get install dfu-programmer

ArduinoをパソコンにUSB接続します

ここで,Arduinoのこのピンをショートさせます
IMG_20170911_031931.jpg
自分はピンセットとかドライバーで触っています.
ジャンパがある人は使ってください
ジャンパを刺す→USB接続→外すの順です.

hexファイルのあるディレクトリで,

sudo dfu-programmer atmega16u2 erase
sudo dfu-programmer atmega16u2 flash arduino-usbserial/Arduino-usbserial-uno.hex
sudo dfu-programmer atmega16u2 reset

とすると指定したHEXファイルが書き込まれます.

コンパイル

Makefile を一部修正します.MCUはマイクロコントロールユニットのことらしいです

MCU          = at90usb1286 # 変更前(Teensy2.0++)
MCU          = atmega16u2  # 変更後(Arduino UNO R3)

LUFAのディレクトリを大文字にしてない人はここの LUFA_PATH を書き換えてもいいみたいです

できた Joystick.hex を同様の方法で書き込みます.

まとめ

というわけでTeensy版とほぼ同じ内容の投稿になってしまいました.
つまづきポイントは

  1. 最新版を使う(1.0.0fだと動かない)
  2. dfu-programmerを使う

です.Arduinoを持っている人はTypeCにするやつを買うだけでできるのでとてもお手軽.ぜひやってみてください.

追記

png2c.py-p オプションを付けると2値化した画像をプレビューできます.

高速版のプルリクが来てました https://github.com/shinyquagsire23/Switch-Fightstick/pull/18

上のほうが荒れるけどゆるふわ勢なのでよくわかりません.
→TypeCアダプタ無しでドックに直挿ししたら荒れなくなりました
接続後,使うコントローラを設定する時にLR同時押しします.それのタイミングがうまくいってなかったせいみたいです

↓元画像
splatoonpattern.png

png2c.py したやつ
bilevel_splatoonpattern.png

↓実行したやつ
DJyHBcwV4AAUMlN.jpg