ProMicroをXinputコントローラーとして動作させる


はじめに

ProMicroをXinput方式として認識させることができたのでその方法を残しておきます.

方法

こちら のライブラリを使用します
このボードパッケージが必要なのでArduinoIDEにインストールしていきます。

画像のthe latest versionと書かれた部分から最新版をダウンロードしていきます。

ArduinoXInput_AVR_V1.0.1.zipをダウンロードしてください。解凍するとxinputというフォルダーが出てくるのでArduinoIDEをインストールした場所のhardwareフォルダーに移動させます。
SparkFunのボードの場合はこちらのリポジトリのthe latest versoinと書かれた部分をクリックして最新版のソースコードをダウンロードしてください。解凍するとxinput_sparkfunというフォルダがあるので同じようにhardwareフォルダに入れます。

自分の環境ではフォルダーはこのようになりました。xinputとxinput_sparkfunフォルダーがあることを確認しましょう。
ArduinoIDEからボードが追加されているかを確認しましょう。追加されたボードには w/XInput が末尾に入っています。

いよいよライブラリをインストールしていきます。
Arduino XInput LibraryからリポジトリのzipファイルをダウンロードしてArduinoIDEの スケッチ→ライブラリをインクルード→.ZIP形式のライブラリをインストール からインストールします。
これでXInputライブラリを使用できるようになりました!!
追加したボードパッケージの中から自分のボードに合ったボードを選びましょう。
ライブラリと一緒に入れられたスケッチ例が参考になると思います。

コード例

#include <XInput.h>

void setup() {
    XInput.begin();
}

void loop() {
    XInput.press(BUTTON_A);
    delay(1000);

    XInput.release(BUTTON_A);
    delay(1000);
}

XInputのAボタンを押して一秒待ってから離して一秒待つことを繰り返すプログラムです。
Keyboardライブラリと同じように使うことができます。

HTML5 Gamepad Testerでコントローラーの情報を取得することができます。うまくいっているとXBox360コントローラーとして認識されているはずです。

注意点

追加したボードで書き込むとボードの自動リセットが機能しなくなります。なので新しいコードをアップロードする際にボードを手動でリセットする必要があります。書き込むには

  • マイコンボードにかきこむボタンを押す
  • マイコンボードに書き込んでいますと表示されるまで待つ
  • リセットボタンを二回押す

という手順で書き込むことができます。ボードにリセットボタンが無い場合はresetピンをGNDに接続することで対応できます。

参考サイト