はじめに
みなさんこんにちは!
香月です
今回は、ジョイスティックを「Raspberry Pi Pico」で使ってみました!
この記事を読めば「Raspberry Pi Pico W」でジョイスティックを使ったものを作れるようになります!
電子工作をするうえで、コントローラーなどを使うためにはジョイスティックを使います。
コントローラーが使えるようになると、「Raspberry Pi Pico W」でできることがぐっと広がります。
わからないことがありましたら、問い合わせページまたは公式ラインに連絡をください!
Youtubeもありますので、ぜひ見てみてください!
使うもの
この記事で使っているものを紹介します。
*このリンクは、アフィリエイトリンクです。
こちらのリンクから購入されると、投稿主にインセンティブが発生します。
より良い記事のために、ぜひ購入する際は以下のリンクよりお願いします。。
実際に投稿主が購入したキットを紹介します。
こちらのキットは、マイコンと電子工作に必要な部品がセットになったものです。
こちら購入すればすぐに電子工作始められます!
また、公式HPでモジュール、プログラムの解説もされているので、非常におススメです。
購入はこちらをクリック!
*画像はリンク先より引用
個別で購入したい方は、以下のリンクより購入ください。
購入はこちらをクリック!
*画像はリンク先より引用
購入はこちらをクリック!
*画像はリンク先より引用
購入はこちらをクリック!
*画像はリンク先より引用
購入はこちらをクリック!
*画像はリンク先より引用
ジョイスティックと回路の解説
まずはジョイスティックと回路について少しお話します。
下の画像を見てください!
ジョイスティックにはX軸方向とY軸方向に可変抵抗が取り付けられています。
イラストで書いてあるように、スティックを上方向に倒すと、Y軸の抵抗値が大きくなり
上に傾けられたと認識します。
これが、ジョイスティックの解説です
では、回路を組んでいきましょう!
↑の画像のように回路を作ってください
↓が実際に組んだ回路です
今回使う回路は、ジョイスティックが傾いた方向にLEDが光るという回路です。
ジャンパー線のつなぎ方には気をつけてください。
*この回路には抵抗は入っていません
わかりやすいようにユニバーサル基板を使って自作してみました。
↓の画像のように回路を組みます
これはイメージです
LED1つづつにジャンパー線をつなぎ、GNDは1箇所にまとめます。
動かしていこう!
では、実際にピコにコードを書き込んでいきましょう!
from machine import ADC, Pin
import utime
x = ADC(Pin(27))#x軸に流れる電流値を取得
y = ADC(Pin(26))#y軸に流れる電流値を取得
center=Pin(15,Pin.OUT)#以下でそれぞれのLEDに出力するピンの設定
x2=Pin(13,Pin.OUT)
x1=Pin(14,Pin.OUT)
y1=Pin(11,Pin.OUT)
y2=Pin(12,Pin.OUT)
push = Pin(28, Pin.IN, Pin.PULL_UP)#ジョイスティックの押し込みを検知するピン
while True:
#すべてのLEDをOFFにする
center.low()
x1.low()
x2.low()
y1.low()
y2.low()
#電流値を符号なしの16進数で取得(0〜65535)
x_value = x.read_u16()
y_value = y.read_u16()
#ジョイスティックの押し込みされたかを取得
button = push.value()
#以下のコードは、一定以上傾いたら、その方向のLEDを光らせる
if x_value>=50000:
x1.high()
elif x_value<=1000:
x2.high()
else:
pass
if y_value>=45000:
y2.high()
elif y_value<=15000:
y1.high()
else:
pass
if button==0:
center.high()
else:
pass
#取得した値をシェルに表示
print('x:'+str(x_value)+' y:'+str(y_value)+' button:'+str(button))
#0.1秒おきに上記の操作を繰り返す
utime.sleep(0.1)
以上がコードと解説になります。
LEDを光らせるIF文の値は、デバイスにより依存します。
最初から傾いて認識される場合は、調整してください。
以上のコードをコピペして「Thonny」でピコに書き込んでください!
では、実際にスティックを傾けてみましょう!
まずは、上下に傾けてみます、、、
ちゃんと光りました!!
では、左右にも傾けてみます
きちんと光りました!
最後は押し込んでみます、、、
きちんと光りました!
これで、ジョイスティックを使いな¥こなせるようになりましたね!
もし、動かない場合は、↓を確認してください!
動かない原因
もし動かない場合は以下の点を確認してください。
回路が間違っている
まずは回路です。
今回は入り組んだ回路を作ります。
ジャンパー線が正しいところにつながっているか?
LEDの向きはあっているか?
を確認してください。
LEDやジョイスティックが壊れている
部品が壊れている可能性があります。
他の部品で動くか確認してください。
どうしても動かない場合は
以上の項目でチェックしてもわからない場合は、問い合わせページより連絡ください。
時間に余裕のあるときに対応させていただきます!
さいごに
どうだったでしょうか?
今回は、ジョイスティックを用いて回路を作ってみました!
今回は十字に設置したLEDを光らせただけでした。
モーターを組み合わせるとクレーンゲームも作ることができます。
ぜひ!みなさんも様々な電子部品と組み合わせて動かしてみてください!