HeartyLadder 9分割モード用のスイッチを作成します。
9分割モードはジョイパッドの9つのボタンを使います。Arduino Leonardo をジョイパッドとしてパソコンに認識させ9分割モード専用のスイッチにします。しかし、Arduino Leonardo をパソコンに接続しただけではジョイパッドと認識しません。ライブラリを追加しコードを転送します。
スイッチは4分割モードと同じようにして、9つ配置します。
参考:instructables Arduino Leonardo/Micro as Game Controller/Joystick
ライブラリのインストール
- https://github.com/MHeironimus/ArduinoJoystickLibrary へ移動する
- 「Clone or download」→「Download ZIP」をクリックして圧縮ファイルをダウンロードする
- ダウンロードしたファイルを解凍する
- 解凍してできたフォルダの中に「Joystick」フォルダがあるのでこれらを ドキュメント > Arduino > libraries にコピーする
Arduino 開発環境を起動しライブラリが追加されたか確認します。
「ファイル」メニュー > 「スケッチの例」サブメニューに「Joystick」があればライブラリの追加は完了です。
コード
Arduino の1番ピン〜9番ピンがジョイパッドのボタン1〜ボタン9に対応します。
押しボタンスイッチの片方の端子を Arduino のそれぞれのピンと接続、反対側の端子をGNDと接続します。
HeartyLadder とジョイパッドのボタンは下図のような対応になります。ケースに押しボタンスイッチを配置する際はご注意ください。
以下のコードをArduino へ転送します。
// Simple example application that shows how to read four Arduino // digital pins and map them to the USB Joystick library. // // by Matthew Heironimus // 2015-11-20 //—————————————————————————————————— /* https://github.com/MHeironimus/ArduinoJoystickLibrary 上記のライブラリ、サンプルコードを利用しています。 */ #include <Joystick.h> void setup() { // Initialize Button Pins pinMode(1, INPUT_PULLUP); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(4, INPUT_PULLUP); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); pinMode(8, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); // Initialize Joystick Library Joystick.begin(); } // Constant that maps the phyical pin to the joystick button. const int pinToButtonMap = 1; // Last state of the button int lastButtonState[9] = {0,0,0,0,0,0,0,0,0}; void loop() { // Read pin values for (int index = 0; index < 9; index++) { int currentButtonState = !digitalRead(index + pinToButtonMap); if (currentButtonState != lastButtonState[index]) { Joystick.setButton(index, currentButtonState); lastButtonState[index] = currentButtonState; } } delay(50); }