4.1 ジョイスティックの切り替え

ビデオゲームをよくプレイするなら、ジョイスティックには非常に馴染みがあるでしょう。 このデバイスは主にキャラクターの移動や画面の回転などに使用されます。

ジョイスティックがコンピュータに対して私たちのアクションを読み取る仕組みは非常にシンプルです。 これは、直交する2つのポテンショメータから成り立っていると考えることができます。 これらのポテンショメータは、ジョイスティックの垂直および水平なアナログ値を測定し、平面直角座標系での値(x,y)を出力します。

このキットのジョイスティックには、ジョイスティックが押されたときに活性化するデジタル入力もあります。

必要なコンポーネント

このプロジェクトでは、以下のコンポーネントが必要です。

一式を購入するのは確かに便利です、リンクはこちら:

名前

このキットに含まれるアイテム

リンク

ケプラーキット

450以上

Kepler Kit

以下のリンクから個別にも購入可能です。

SN

コンポーネント

数量

リンク

1

Raspberry Pi Pico W

1

BUY

2

マイクロUSBケーブル

1

3

ブレッドボード

1

BUY

4

ジャンパーワイヤー

数本

BUY

5

抵抗器

1(10KΩ)

BUY

6

ジョイスティックモジュール

1

回路図

sch_joystick

SWピンは10Kのプルアップ抵抗に接続されています。その理由は、ジョイスティックが押されていないときにSWピン(Z軸)で安定した高レベルを得るためです。そうでないと、SWはサスペンド状態になり、出力値は0/1の間で変動する可能性があります。

配線

wiring_joystick

コード

注釈

  • kepler-kit-main/micropython のパスの下にある 4.1_toggle_the_joystick.py ファイルを開くか、このコードをThonnyにコピーしてから、「Run Current Script」をクリックするか、単にF5キーを押して実行します。

  • 右下隅にある「MicroPython(Raspberry Pi Pico)」のインタープリタをクリックするのを忘れないでください。

  • 詳細なチュートリアルについては、 コードを直接開いて実行する を参照してください。

import machine
import utime

x_joystick = machine.ADC(27)
y_joystick = machine.ADC(26)
z_switch = machine.Pin(22,machine.Pin.IN)

while True:
    x_value = x_joystick.read_u16()
    y_value = y_joystick.read_u16()
    z_value = z_switch.value()
    print(x_value,y_value,z_value)
    utime.sleep_ms(200)

プログラムを実行した後、Shellはジョイスティックのx, y, zの値を出力します。

  • x軸とy軸の値は、0から65535までのアナログ値です。

  • Z軸は、状態が1または0のデジタル値です。