基本的にはSplatoon2で自動ドット打ちしてくれるやつをWindos10のWSLで使うと同じです.めっちゃ参考になりました(よんたさんありがとうございます)
1日くらいうまくいかなくて困ったポイントがあるのでまとめます.
この記事を元にGithubのSwitch-FightstickのREADMEの Compiling and Flashing onto the Arduino UNO R3
を読みながらやりました.
さて
teensyは持ってないけどArduinoならある!という人のための記事です.
teensy版と手順は同じなので,Arduinoでの異なる点を中心に書いていこうと思います.
注意点
- パソコンにUSB接続した時にArduinoとして認識されなくなるのでArduino IDEなどの機能が使えなくなります.戻し方を確認してから始めてください.
- 元記事では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した lufa
をLUFA
にします.
(もしくは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のこのピンをショートさせます
自分はピンセットとかドライバーで触っています.
ジャンパがある人は使ってください
ジャンパを刺す→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.0.0fだと動かない)
- dfu-programmerを使う
です.Arduinoを持っている人はTypeCにするやつを買うだけでできるのでとてもお手軽.ぜひやってみてください.
追記
png2c.py
に-p
オプションを付けると2値化した画像をプレビューできます.
高速版のプルリクが来てました https://github.com/shinyquagsire23/Switch-Fightstick/pull/18
上のほうが荒れるけどゆるふわ勢なのでよくわかりません.
→TypeCアダプタ無しでドックに直挿ししたら荒れなくなりました
接続後,使うコントローラを設定する時にLR同時押しします.それのタイミングがうまくいってなかったせいみたいです