1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Arduinoでジョイスティックを作ってみる

Last updated at Posted at 2023-03-21

Arduinoを使用して自分だけのジョイスティックを作成する。
何番煎じかはわからないが,自分なりにまとめる

環境

  • Arduino Pro micro
  • Mac版 Arduino IDE 1.8.9

1.Arduino Pro micro について

今回使用するArduino Pro microはATmega32u4チップを搭載したもので、USB deviceとして使うこともできるArduinoである。
ATmega32u4チップを搭載したArduinoには他にもArduino Leonald , Arduino Microがある。
今回はArduino Pro microを使用する

価格は秋月電子で3000円ほど。互換機など安い物も多く存在している

Arduino Pro micro Arduino Leonald Arduino Micro
 
https://www.switch-science.com/products/3914 https://akizukidenshi.com/catalog/g/gM-07384/ https://akizukidenshi.com/catalog/g/gM-08286/

2.ArduinoIDEの下準備

Joystickのライブラリを入れる

下記のGitからzip ファイルをDLしてArduinoIDEに読み込ませる

3.配線

使用する部品

スイッチ
ボリューム

回路図

部品とArduino Pro microをつなぐ
スイッチをD7
アナログをA0に接続

4.ジョイスティックとして認識させる

コードの実装

ライブラリの追加とピンの定義

#include <Joystick.h>

#define SW_PIN 7
#define ANALOG_PIN_1 A0

Joystickの有効無効を切り替える構造体
今回はスイッチ1個 ボリューム1個なので

Joystick_ Joystick(//有効無効を切り替える
  0x03, //hid report id
  JOYSTICK_TYPE_GAMEPAD, //joystick type
  1, //button count   <- 使用するスイッチの数
  0, //Hsw 0-2
  true, //x   <- ボリュームを使用するためここをtrue
  false, //y
  false, //z
  false, //rx
  false, //ry
  false, //rz
  false, //rudder
  false, //throttle
  false, //accelerator
  false, //brake
  false//steeing;
);

setup内ではGPIOピンとJoystickライブラリの初期設定
GPIOスイッチはプルアップさせる

void setup() {
  pinMode(SW_PIN, INPUT_PULLUP); //ピンの設定
  pinMode(A0, INPUT); //ピンの設定
  Joystick.begin();//Joystickライブラリを使用するため必須
  Joystick.setXAxisRange(0,1023);//あたいの入れる範囲を設定。
}

loop関数内では、analogRead,digitalReadで読み取った値をJoystickにセットする

void loop() {
    Joystick.setXAxis(analogRead(ANALOG_PIN_1)); //ボリュームの値を読み取りセット
    Joystick.setButton(0, digitalRead(SW_PIN)); //スイッチの値を読み取りセット
}

Windowsで認識するか確認

Arduino に書き込んでWindowsにさしJoystickとして認識することを確認する

コントロール パネル\ハードウェアとサウンド\デバイスとプリンターからArduino Leonald名のデバイスを確認
ゲームコントローラの設定

ボリュームを回すとx軸の+が左右に動作する
スイッチを押すとボタン1が点灯するのを確認できる

5.まとめ

1個のボリュームとスイッチをJoystickとしてPCに取り込むことができた。
複数増やすことにより多くの操作をシミュレータに取り込むことができるだろう

参考サイト

Arduino を複数使用する場合フライトシミュレータから見ると同じデバイスが複数あるように見えるため、設定が変更される可能性がある
名前の変更やIDを変更して対応すると設定が変わることが減る。
https://kohacraft.com/archives/1072655339.html

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?