ジョイスティックモジュール
出典
ウィキメディア・コモンズ
現在、スポーツやロボティクスに関連するプロジェクトに取り組んでいますか?では、Arduinoのジョイスティックモジュールは聞いたことがあるけれど、どうやって作ればいいのかわからないという方も多いのではないでしょうか。
あるいは、Arduinoのジョイスティックモジュールの仕組みについて、もっと詳しく知りたいという方もいらっしゃるでしょう。
さて、あなたは正しい場所に来ました。
Arduinoジョイスティックの目的は、Arduinoに動きを伝えることです。また、2次元(2軸)で実装されているため、モーション、ロボティクス分野での応用に適しています。
そこで今回は、Arduinoのジョイスティックモジュールの仕組みと、簡単なArduinoのジョイスティック回路の作り方について、すべてご紹介します。
準備はいいですか?レッツ・ジャンプ!
ジョイスティックモジュールとは何ですか?
ジョイスティックを必要としないロボットプロジェクトはほとんどありません。 プロジェクトに適したコントローラーを見つけるのが難しい場合もありますし、高価になる場合もあります。 しかし、ジョイスティックモジュールは、同じ効果をより安価に実現する方法を提供します。
また、ジョイスティックモジュールは、アナログジョイスティックにおけるジョイスティックと同様の働きをします。 そのキーパーツは、90度の角度で傾けた2つのポテンショメーターです。 さらに、短いレバー(真ん中にバネがある)とポテンショメーターの間に接続部があります。
ポテンショメーター
出典
フリッカー
ジョイスティックモジュールは静止状態ではX軸、Y軸で約2.5Vを出力しています。さて、ジョイスティックを動かすと0V~5Vの間で出力が変化します。 ただし、これは方向性によるものです。
また、ジョイスティックモジュールを搭載したマイコンを使用する場合、静止位置の真値は512程度になるそうです。 ですから、ジョイスティックを動かすと、0から1023まで値が変化するのがわかりますが、これは位置によって変わります。
ジョイスティックモジュール-端子構成
ジョイスティックモジュールのピン配置は以下の通りです。
販売はしていません。 | 端子名 | 商品説明 |
1 | 接地 | モジュールのグランド端子 |
2 | + 5 v | モジュール正電源端子 |
3. | VRx | 電圧はX軸に比例する |
4 | VRy | 電圧はY軸に比例する |
5 | サウスウェスト | モジュールスイッチ |
特徴
ここでは、Arduinoジョイスティックモジュールの主な機能を紹介します。
各軸(XとY)に独立した2つのポテンショメータを搭載
重さを感じさせない
ほとんどのマイクロコントローラやArduinoインターフェースモジュールと簡単にインターフェースできます。
使用しないときは自動的にセンターポジションに戻ります
また、カップノブも装備しています
ジョイスティックモジュール-技術仕様
ロッカーモジュールの仕様は以下の通りです。
動作電圧は5V
内蔵ポテンショメーターの値は10k
動作温度は約0〜70℃。
ピンインターフェースのリードは2.54mm
ジョイスティックモジュールの寸法:外形寸法(4.0 cm x 2.6 cm x 3.2 cm)
5つのピンを備えている
2つのポテンショメーターで、モジュールの水平と垂直の向きをコントロールします。
ジョイスティックモジュール-原理図
下図は、ジョイスティックモジュールの完全な回路図です。 先にも述べたように、このモジュールにはX軸とY軸を制御する2つのポテンショメーターが搭載されています。
ジョイスティックモジュールの図
出典
ウィキメディア・コモンズ
また、2つのポテンショメーター(10k)はそれぞれ独立して動きます。 つまり、それぞれの方向に移動させることができるのです。 また、ボタンには内部でスイッチ(SW)端子が接続されています。
Arduinoインターフェース用ジョイスティック
ジョイスティックモジュールは、Raspberry PiやArduinoなど、多くのマイクロコントローラに対応しています。 さらに、インターフェースも簡単で、まずVRx軸とVRy軸のピンをマイコンのADCピンに接続する必要があります。
また、スイッチを使う予定であれば、ボタンをマイコンのデジタルピンに接続する必要があります。
ジョイスティックモジュールをどのようなマイコンに接続するかは、下の図で確認してください。
ジョイスティックモジュールをマイクロコントローラに
出典
ウィキメディア・コモンズ
下図は、ジョイスティックモジュールとArduinoの接続方法です。 この図で、Arduinoにモジュールを接続することができます。また、ジョイスティックのノブを動かす方向に応じた出力が得られます。
ジョイスティックモジュールとArduinoの接続
出典
ウィキメディア・コモンズ
インターフェイスを完成させると、各方向の出力範囲が決まっていることがわかります。 下図は、ジョイスティックモジュールの+X、-X、+Y、-Y方向の動きによって、X軸、Y軸の出力が変化します。 また、ノブを斜めに動かすと、アナログ値が表示されます。
移動の方向
出典
ウィキメディア・コモンズ
ジョイスティックのノブを押したタイミングを知りたい場合は、ArduinoのSWピンとデジタルピン8を接続することもできます。
また、ジョイスティックが正常に動作するためには、電源が必要です。 そのため、VCC端子をArduinoの5V端子に、GND端子をArduinoのGND端子に接続してください。
ジョイスティックモジュール-Arduinoのコード
このプログラムは、Arduino IDE上で簡単に書くことができます。 そこで、最良の結果を得るために、デジタル入力1端子とアナログ入力2端子からジョイスティックの動きを測定することになります。 すると、Arduinoはその影響をディスプレイに表示します。
これが一番いいところ
このプログラムを書くのにライブラリは必要ありません。 アナログ入力を読み取り、そこから得られた値を表示するだけです。 さらに、ボタンを押したときの出力も表示します。
コードの原画はこちらです。
Arduinoのコードを示す画像
地図作成
アナログ値を読み取るだけが全てではなく、モジュールをディスプレイや他のインターフェースにマッピングすることが必要な場合もあります。 そこで、上記のコードから8×8のLEDマトリックスに値をマッピングする方法を紹介します。
Arduinoマッピング
出典
ウィキメディア・コモンズ
その結果、ジョイスティックでディスプレイの画素を動かすことができるのです。 さらに、有機ELやグラフィックディスプレイに対応させるためのコード変更も容易です。
ArduinoとOLEDやグラフィックディスプレイをマッピングするのに必要なコードのイメージ図
注:上記のコードでは、map()関数を使って好みの範囲にマッピングすることができることを示しています。
つまり、すべてがうまくいけば、シリアルモニターには次のような出力が出るはずです。
ジョイスティックモジュール-アプリケーション
Arduinoのジョイスティックモジュールのアプリケーションを紹介します。
ジョイスティックモジュールをロボティクスで使用することができます
ロボット型ドローン
モバイルカメラの動きを制御することも可能です
モバイルカメラ
スポーツ用途に幅広く対応
ジョイスティックモジュール-ラウンドアップ
ジョイスティックと聞いてまず思い浮かぶのは、ゲーム用のコントローラーではないでしょうか。 しかし、DIY電子工作の場合、ジョイスティックモジュールは多くのエキサイティングな用途があります。
ゲームコントローラ
これらのモジュールは、主にArduinoをベースとしたDIYプロジェクトやロボット制御などに使用されます。 前述したように、ジョイスティックモジュールはまず、ジョイスティックの水平または垂直方向の動きに応じてアナログ入力を行うアナログ出力を解放する。
さて、これで今回の記事は終わりです。 ご質問やご意見がありましたら、お気軽にお問い合わせください。 私たちは喜んでお手伝いさせていただきます。