模拟二轴拇指操纵杆(俗称摇杆)是一种模拟操纵杆,相比于「方向」操纵杆更加准确和灵敏,它带有一个「按下选择按钮」。因为它是模拟的,所以需要使用树莓派 Pico 上支持模拟输入的引脚来读取,下面我们选择的是 GP26 和 GP27。分别来读取 X 和 Y。而按钮按下状态可使用数字引脚 GP22 来读取。
硬件连接
摇杆的 GND 接 Pico 的 GND。
摇杆的 +5V 接 Pico 的 VSYS。
摇杆的 VRX 接 Pico 的 GP27。
摇杆的 VRY 接 Pico 的 GP26。
摇杆的 SW 接 Pico 的 GP22。
具体代码如下。其中当读取到的模拟量不超过 600 时判定为「左」或者「下」,而当读取到的模拟量大于或等于 60000 时判定为「右」或者「上」,介于这中间时判定为「中」。这个标准也可以微调来控制摇杆的灵敏度。
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 窗口输出的方向变化。按下摇杆,会看到 Shell 窗口输出「Pressed」。
审核编辑:刘清
-
GND
+关注
关注
2文章
540浏览量
38929 -
树莓派
+关注
关注
117文章
1711浏览量
105930
原文标题:在树莓派 Pico 上使用摇杆
文章出处:【微信号:趣无尽,微信公众号:趣无尽】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
如何在树莓派Pico上用PWM实现LED呼吸灯呢?
![如<b class='flag-5'>何在</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b><b class='flag-5'>上</b>用PWM实现LED呼吸灯呢?](https://file1.elecfans.com/web2/M00/A8/B8/wKgZomUhKX6ATyAWAAATdJ2sUKQ398.jpg)
树莓派Pico的相关资料分享
树莓派Pico的相关资料推荐
在树莓派Pico上实现怀旧的AppleII仿真
树莓派也出MCU了?树莓派Pico来了!
![<b class='flag-5'>树莓</b><b class='flag-5'>派</b>也出MCU了?<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>来了!](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
树莓派Pico:仅4美元的MCU
![<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:仅4美元的MCU](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
评论