模擬二軸拇指操縱桿(俗稱搖桿)是一種模擬操縱桿,相比于「方向」操縱桿更加準確和靈敏,它帶有一個「按下選擇按鈕」。因為它是模擬的,所以需要使用樹莓派 Pico 上支持模擬輸入的引腳來讀取,下面我們選擇的是 GP26 和 GP27。分別來讀取 X 和 Y。而按鈕按下狀態(tài)可使用數(shù)字引腳 GP22 來讀取。
硬件連接
搖桿的 GND 接 Pico 的 GND。
搖桿的 +5V 接 Pico 的 VSYS。
搖桿的 VRX 接 Pico 的 GP27。
搖桿的 VRY 接 Pico 的 GP26。
搖桿的 SW 接 Pico 的 GP22。
具體代碼如下。其中當(dāng)讀取到的模擬量不超過 600 時判定為「左」或者「下」,而當(dāng)讀取到的模擬量大于或等于 60000 時判定為「右」或者「上」,介于這中間時判定為「中」。這個標(biāo)準也可以微調(diào)來控制搖桿的靈敏度。
import machine import utime X_axis = machine.ADC(26) Y_axis = machine.ADC(27) press = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_UP) while True: X_axis_value = X_axis.read_u16() Y_axis_value = Y_axis.read_u16() if X_axis_value <= 600: print("X: "+"Left ", end='') elif X_axis_value >= 60000: print("X: "+"Right ", end='') elif 600 < X_axis_value < 60000: print("X: "+"Middle ", end='') if Y_axis_value <= 600: print("Y: "+"Down") elif Y_axis_value >= 60000: print("Y: "+"Up") elif 600 < Y_axis_value < 60000: print("Y: "+"Middle") if press.value() == 0: print("Pressed") utime.sleep(0.5)
運行之后,上下左右撥動搖桿,可以看到 Shell 窗口輸出的方向變化。按下?lián)u桿,會看到 Shell 窗口輸出「Pressed」。
審核編輯:劉清
-
GND
+關(guān)注
關(guān)注
2文章
529瀏覽量
38653 -
樹莓派
+關(guān)注
關(guān)注
116文章
1698瀏覽量
105524
原文標(biāo)題:在樹莓派 Pico 上使用搖桿
文章出處:【微信號:趣無盡,微信公眾號:趣無盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論