ジョイスティック KY-023の制御
2022.10.24
前回はロータリーエンコーダを調査しましたが、
今回はジョイスティックです。
良く使われるパーツはKY-023とよばれるもの。
2次元の座標を読み取れるだけでなく、
スティックを押し込むとスイッチとしての機能もあります。
とても安いので扱いやすいパーツです。
接続するにあたって、デュポンコネクタのケーブルを作成しました。
5V、GND、VRx、VRy、SW
の5本。
VRxとVRyは倒している量を計測したいのでアナログピンに接続。
SWはスイッチなのでデジタルピンに接続します。
ただし、SWのデジタルピンはインプットプルアップにします。
テストプログラムはこんな感じ。
世に出回っている一般的なソースを少し改造したものです。
このジョイスティックという部品は、
X方向とY方向の可変抵抗の値を読み取って傾斜量と向きを判別しています。
X軸、Y軸それぞれで0~1023までの値を読み取ることができ、
ニュートラル状態ではその中央値である512を返します。
512より小さければ左か上方向、大きければ右か下方向を示すわけですね。
ところが、そうはうまくいかないのが世の常で、
個体差が必ずありニュートラル位置でキレイに512を返すことは稀です。
道具として組み込むならその誤差を修正する機能が必要になるので、
その部分だけ付け足しています。
実行してみました。
成功のようです。
シリアルモニタで状況を見ていると、
±1は頻繁にブレることがわかります。
逆にスティックを少々傾けても値は大きく変化しないことがわかりました。
検知に遊びがあるんですね、触った感じゆっくり倒しても100刻みくらい?
丁寧に倒せば50刻みくらいできる? そんな感じです。
プレステとかSwitchのコントローラーはどれくらいの感度なんでしょうかねぇ・・