じゃがいもログ

脊髄性筋萎縮症(SMA)1型の息子と生活中

Xbox Controllerのふりをするスイッチインターフェース

ゲーム関連はXbox Adaptive Controllerのおかげで何不自由していませんが、あの大きさは出先に持っていくには難ありです。検査入院とかで病院でNintendo Switchをやろうと考えた時に、あれを持っていくのは少し気が引けます。そこで、ArudinoにXbox Controllerのふりをしてもらうことにしました。

回路自体は以前作ったこちらと同じで、今回はXInputライブラリを使ってArduinoXbox 360 Controllerになってもらいます。
jagaimolog.hatenablog.jp

今回のスケッチはこんな感じ。カプセル化とかDRY (Don't Repeat Yourself) とか全無視のベタベタコードです。

XInputライブラリを使うときは、あわせてXInputに対応するボードもArduino IDEにインストールする必要があります。私が使っているArduino Microであれば、ArduinoXInput_AVRをインストールします。実はこれが曲者で、一度スケッチをアップロードすると、それ以降そのArduinoXbox 360 Controllerのふりをするので、Arduino IDEから見えなくなってしまいます。対処方法はリンク先にも書いてあるのですが、次回以降スケッチをアップロードするときは、アップロードが始まったらすぐにArduinoのリセットボタンを2度押しします。

MAGIC-NS経由でNintendo Switchに接続して動作確認したところ、問題なく機能しているようでした。
youtu.be