Arduinoコードとビデオ:二軸ジョイスティック

Arduinoコードとビデオ:二軸ジョイスティック

このチュートリアルでは、Arduinoで二軸(X-Y)ジョイスティックを活用する方法を解説します。このジョイスティックはゲームコントローラとしてやロボットアームの制御など、さまざまな用途に利用できます。主にジョイスティックの位置とプッシュボタンの状態を検出し、それをシリアルモニタに表示する方法に焦点を当てます。

XY-Dual access joystick

チュートリアル全体を通して、ジョイスティックのX軸とY軸の位置を読み取り、それらをArduinoシリアルモニターに表示する簡単なプログラムを実装します。ジョイスティックが押されたときは、スイッチの状態も検知されます。コードの詳細な説明は、指定されたタイムスタンプ(動画の00:00)で必ずご覧ください。

ハードウェアの解説

このプロジェクトの主な構成要素は、二軸(デュアル軸)ジョイスティックモジュールとArduinoボードです。ジョイスティックモジュールは、X軸用とY軸用の2つの可変抵抗(ポテンショメータ)で構成されており、ジョイスティックの位置に応じたアナログ値を提供します。ジョイスティック上のプッシュボタンスイッチは、押されたことを検出するために使用されます。

ジョイスティックを動かすとポテンショメータの抵抗が変化し、それが0から1023までの値に変換されます。これによりジョイスティックの位置を正確に判定できます。プッシュボタンスイッチはArduinoのデジタル入力ピンに接続されており、内部プルアップ抵抗機能を使うことで外部抵抗なしでその状態を読み取ることができます。

データシートの詳細

製造者一般的
部品番号二軸ジョイスティックモジュール
ロジック/IO電圧5 V
電源電圧5ボルト
出力電圧範囲0〜5 V
解像度10ビット(0-1023)アナログ
スイッチの種類プッシュボタン
パッケージ標準モジュール

  • ジョイスティックモジュールに適切な電源(5 V)を供給してください。
  • ジョイスティックのXおよびY出力をそれぞれアナログピンA0とA1に接続してください。
  • ジョイスティックのスイッチにはデジタルピン6を使用してください。
  • スイッチピンにはプルアップ抵抗を使用してください。
  • 出力値を監視して、0から1023の範囲にあることを確認してください。

配線手順

Arduino wiring for XY-Dual access joystick
Arduino wiring for XY-Dual access joystick
Arduino X-Y-Joystick wiring
Arduino X-Y-Joystick wiring

デュアル軸ジョイスティックをArduinoに配線するには、まずジョイスティックのグラウンドピンをブレッドボードのグラウンドレールに接続します。次に、ジョイスティックの5Vピンをブレッドボードのプラス(正)レールに接続します。XおよびYとラベル付けされたジョイスティックの2つの可変ピンはアナログピンに接続する必要がありますA0そしてA1それぞれArduino上で。

ジョイスティックのプッシュボタンスイッチはデジタルピンに接続してください6Arduino上で。この接続は内部プルアップ抵抗機能を利用しているため、外部の抵抗は必要ありません。最後に、スイッチの状態をLEDで監視したい場合は、LEDの長い脚をデジタルピンに接続してください13短い脚を680Ωの抵抗を介して接地する。

コード例とウォークスルー

Arduinoのコードでは、スイッチ用のピンを定義し、ジョイスティックの値をマッピングするための画面サイズを指定します。setup関数はシリアル通信を初期化し、スイッチ用ピンのモードを設定します。

void setup() {
  Serial.begin(9600); // initialize serial communication
  pinMode(sw, INPUT_PULLUP); // setting pin sw as input
  pinMode(13, OUTPUT); // LED pin
}

loop関数では、XおよびY位置のアナログ値を読み取り、それらを定義した画面サイズにマッピングします。スイッチの状態も読み取り、シリアルモニタに出力します。

void loop() {
  int x = analogRead(A0); // read analog value for X
  int y = analogRead(A1); // read analog value for Y
  int sStat = digitalRead(sw); // read switch state
  // Print values to Serial Monitor
  Serial.print("X: ");
  Serial.print(xPos);
  Serial.print(" Y: ");
  Serial.println(yPos);
}

最後に、コードはスイッチが押されているかどうかを確認し、スイッチの状態に応じてLEDをオンまたはオフにします。これにより、ジョイスティックのボタンが押されたときに視覚的なフィードバックが得られます。

if(sStat == LOW) {
    Serial.println("Switch pressed");
    digitalWrite(13, HIGH); // Turn LED ON
  } else {
    digitalWrite(13, LOW); // Turn LED OFF
  }

ジョイスティックの値がリアルタイムでどのように変化するかを確認するには、コードをArduinoにアップロードしてシリアルモニタを開いてください。値は0.5秒ごとに更新され、現在のXおよびYの位置とスイッチの状態が表示されます(動画の01:30)。

デモンストレーション/当日の流れ

ジョイスティックを動かすと、XとYの値がそれに応じて変化し、0から1023の範囲になります。ジョイスティックのボタンを押すと、ピン13に接続されたLEDが点灯してスイッチが有効であることを示します。ジョイスティックが中央にある場合は、キャリブレーションによりますが、両軸ともおおむね512前後の値が表示されるはずです。

動画のタイムスタンプ

  • 00:00- 二軸ジョイスティックの紹介
  • 01:30- コードの説明と機能
  • 02:45- 配線手順
  • 午前03:15- 期待される出力とテスト

画像

Arduino wiring for XY-Dual access joystick
Arduino wiring for XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
Arduino X-Y-Joystick wiring
Arduino X-Y-Joystick wiring
58-This is the Arduino code for a dual-axis joystick.
言語: C++
コピーしました!

必要かもしれないもの

リソースと参考文献

まだリソースはありません。

ファイル📁

ファイルは利用できません。