ESP32 チュートリアル 26/55 - Arduino でのジョイスティックの使用 アクションを起こす | SunFounder の ESP32 IoT キット

ESP32 チュートリアル 26/55 - Arduino でのジョイスティックの使用 アクションを起こす | SunFounder の ESP32 IoT キット

このチュートリアルでは、SunFounderのESP32マイクロコントローラでXYジョイスティックをインターフェースする方法を学び、その位置を検出し、入力に基づいてアクションを取ることができるようになります。また、ジョイスティックが特定の位置に移動したときにアクティブになるブザーも統合します。この組み合わせにより、ユーザーの入力にリアルタイムで応答するインタラクティブなプロジェクトを作成できるようになります。

ESP32-26-xy-ジョイスティック-メイン

XY ジョイスティックは、X および Y 位置に対応する 2 つのアナログ出力と、アクションをトリガーするために押すことができるスイッチを提供します。ジョイスティックからの値を読み取ることで、ブザーを作動させたり、画面に値を表示したりするなど、プロジェクト内のさまざまな要素を制御できます。このプロセスを完全に理解するために、追加の洞察のために動画をチェックしてください(動画の 00:00 にて)。

ハードウェアの解説

このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラー、XYジョイスティック、およびブザーが含まれています。ESP32はWi-FiとBluetoothをサポートする汎用ボードであり、IoTプロジェクトに最適です。XYジョイスティックはX軸とY軸用の2つの可変抵抗器と追加入力用のプッシュボタンスイッチで構成されています。

空文字列
ESP32-26-xy-ジョイスティック回路図

ジョイスティックはその位置に対応するアナログ信号を出力し、ESP32のアナログピンによって読み取られます。プッシュボタンは押されたときにデジタル信号を提供します。ブザーはESP32のデジタル出力ピンに接続されており、ジョイスティックの位置に基づいてオンまたはオフにすることができます。

データシートの詳細

メーカー サンファウンダー
部品番号 XYジョイスティックモジュール
動作電圧 3.3 V - 5 V
抵抗値 10 kΩ(各軸)
最大電流 20 mA
スイッチタイプ 瞬時押しボタン
寸法 約50 mm x 50 mm

  • ジョイスティックがESP32と互換性があるように、3.3 Vで電源が供給されていることを確認してください。
  • スイッチにはプルアップ抵抗を使用して、フローティング入力を避けてください。
  • アナログ出力をESP32のADCピンに接続します(Xには34、Yには35)。
  • スイッチのためにデバウンス機構を使用して、誤発動を防ぎます。
  • 電圧レベルを監視し、安全な運転範囲内に保たれていることを確認してください。

配線指示

ESP32-26-xy-joystick-wiring

ジョイスティックをESP32に配線するには、最初にジョイスティックのグラウンドピンをESP32のグラウンドピンに接続します。次に、ジョイスティックのVCCピンをESP32の3.3 Vピンに接続します。ジョイスティックには2つのアナログ出力ピンがあります:X軸出力を接続します(ラベル付きでVRX) ピンで留める34ESP32とY軸出力(ラベル付けされている)VRY) ピンにする35.

スイッチ出力の場合、スイッチピンをピンに接続します。33ESP32上。このピンはボタンの押下をデジタル入力として読み取ります。接続が確実であることを確認し、断続的な問題を避けてください。配線がビデオ(ビデオの02:30)と異なる場合は、アナログとデジタル接続の同じ原則に従いながら適宜調整してください。

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

コードでは、まずジョイスティックのピンの定数を定義します。識別子xAxis,yAxis, とbtn設定されています34,35, と33それぞれ。このため、プログラム全体でこれらのピンを参照しやすくなっています。

#define xAxis 34
#define yAxis 35
#define btn 33

デンsetup()関数では、シリアル通信を初期化し、ボタンのピンモードを入力に設定します。これにより、ESP32はジョイスティックからデータを読み取り、それをシリアルモニターに送信する準備が整います。

void setup() {
  Serial.begin(115200);
  pinMode(btn, INPUT);  
}

内部のloop()、ジョイスティックのX軸とY軸のアナログ値を読み取ります。analogRead()そしてそれらを保存しますxValueyValueボタンの状態は次を使って読み取られます。digitalRead()と保存されているbtnValue最後に、これらの値をシリアルモニターに出力します。

void loop() {
  int xValue = analogRead(xAxis);
  int yValue = analogRead(yAxis); 
  int btnValue = digitalRead(btn);
  
  Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
  delay(300);  // Delay between reads
}

このループは、値を連続的に更新し、ジョイスティックの動きやボタン入力に関するリアルタイムのフィードバックを提供します。完全なコードについては、記事の下に読み込まれた完全なコードを参照してください。

デモンストレーション / 期待すること

セットアップが完了し、コードがアップロードされると、シリアルモニターにはXおよびYの値とボタンの状態が表示されるはずです。ジョイスティックを動かすと、その位置に応じて値が変化します。ボタンを押すと、その状態が高と低の間で切り替わります。

一般的な落とし穴には、誤った配線が含まれ、これによりフローティング入力やジョイスティックからの応答がないことがあります。正しいピンが使用されていること、スイッチのプルアップ抵抗が実装されていることを確認してください。これらの動作の実践的なデモンストレーションについては、ビデオを参照してください(ビデオ内の13:00)。

ビデオタイムスタンプ

  • 00:00 スタート
  • 1:47 XYジョイスティックの紹介
  • 7:32 ジョイスティックの値を測定しています
  • 8:40 配線の説明
  • 11:06 ESP32を使ったジョイスティックのArduinoコードの解説
  • 14:43 Arduino IDEでESP32ボードとCOMポートを選択しています
  • 16:24 ジョイスティックの簡単な使い方のデモンストレーション
  • 19:20 ブザーでジョイスティックコードの位置を検出しています
  • 21:16 位置検出のデモンストレーション

画像

joystick_schematic
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick
言語: C++
コピーしました!

リソースと参考文献

ファイル📁

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