エンターキーを押すと本文へ移動します

HeartyLadder 9分割モード用スイッチ

HeartyLadder 9分割モード用のスイッチを作成します。
9分割モードはジョイパッドの9つのボタンを使います。Arduino Leonardo をジョイパッドとしてパソコンに認識させ9分割モード専用のスイッチにします。しかし、Arduino Leonardo をパソコンに接続しただけではジョイパッドと認識しません。ライブラリを追加しコードを転送します。
スイッチは4分割モードと同じようにして、9つ配置します。

参考:instructables Arduino Leonardo/Micro as Game Controller/Joystick

ライブラリのインストール

  1. https://github.com/MHeironimus/ArduinoJoystickLibrary へ移動する
  2. 「Clone or download」→「Download ZIP」をクリックして圧縮ファイルをダウンロードする
  3. ダウンロードしたファイルを解凍する
  4. 解凍してできたフォルダの中に「Joystick」フォルダがあるのでこれらを ドキュメント > Arduino > libraries にコピーする


Arduino 開発環境を起動しライブラリが追加されたか確認します。
「ファイル」メニュー > 「スケッチの例」サブメニューに「Joystick」があればライブラリの追加は完了です。

コード

Arduino の1番ピン〜9番ピンがジョイパッドのボタン1〜ボタン9に対応します。
押しボタンスイッチの片方の端子を Arduino のそれぞれのピンと接続、反対側の端子をGNDと接続します。
HeartyLadder とジョイパッドのボタンは下図のような対応になります。ケースに押しボタンスイッチを配置する際はご注意ください。

HeartyLadder 9分割

以下のコードを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);
}



© 一般財団法人岐阜県身体障害者福祉協会 福祉メディアステーション飛騨ブランチ