0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在树莓派Pico上使用摇杆?

jf_zGNBEhbi 来源:趣无尽 2023-11-28 09:20 次阅读

interwetten与威廉的赔率体系 二轴拇指操纵杆(俗称摇杆)是一种模拟操纵杆,相比于「方向」操纵杆更加准确和灵敏,它带有一个「按下选择按钮」。因为它是模拟的,所以需要使用树莓派 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」。

a1844e38-8d85-11ee-939d-92fbcf53809c.png







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GND
    GND
    +关注

    关注

    2

    文章

    539

    浏览量

    38712
  • 树莓派
    +关注

    关注

    116

    文章

    1707

    浏览量

    105631

原文标题:在树莓派 Pico 上使用摇杆

文章出处:【微信号:趣无尽,微信公众号:趣无尽】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何在树莓Pico用PWM实现LED呼吸灯呢?

    树莓 Pico 的模拟-数字转换器只能以一种方式工作,它将模拟信号转换为微控制器可以理解的数字信号。
    发表于 10-07 17:46 1388次阅读
    如<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呼吸灯呢?

    树莓pico入门学习笔记(一)相关资料推荐

    树莓pico入门学习笔记选择自己熟悉的编程语言树莓pico提供C/C++和micropyth
    发表于 07-01 09:28

    树莓pico如何入门?

    树莓pico如何入门?
    发表于 10-13 08:11

    树莓Pico的相关资料分享

    关注、星标公众号,直达精彩内容1月22日,树莓基金会最新发布一款低成本、高性能的微控制器开发板Raspberry Pi Pico,新产品相比普通树莓
    发表于 11-03 08:44

    树莓Pico的相关资料推荐

    1月22日,树莓基金会最新发布一款低成本、高性能的微控制器开发板Raspberry Pi Pico,新产品相比普通树莓体积更小,售价仅4
    发表于 02-07 07:37

    树莓Pico实现怀旧的AppleII仿真

    树莓Pico采用他自己的处理器RP2040,双核M0,133MHz。为了体验它的双核编程环境和性能,我用它来实现一个AppleII仿真,当然是在AppleWin代码基础移植改造的。
    发表于 05-24 20:58

    远程控制树莓3b的pi pico

    树莓pi pico树莓4相比差别很大,但是pi pico有一些特点是
    的头像 发表于 03-05 17:23 3987次阅读

    树莓也出MCU了?树莓Pico来了!

    关注、星标公众号,直达精彩内容1月22日,树莓基金会最新发布一款低成本、高性能的微控制器开发板Raspberry Pi Pico,新产品相比普通树莓
    发表于 10-28 10:36 11次下载
    <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>来了!

    树莓Pico:仅4美元的MCU

    1月22日,树莓基金会最新发布一款低成本、高性能的微控制器开发板Raspberry Pi Pico,新产品相比普通树莓体积更小,售价仅4
    发表于 12-04 13:06 13次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:仅4美元的MCU

    树莓pico入门学习笔记(一)

    树莓pico入门学习笔记选择自己熟悉的编程语言树莓pico提供C/C++和micropyth
    发表于 12-17 18:42 21次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入门学习笔记(一)

    距离检测报警使用树莓Pico

    电子发烧友网站提供《距离检测报警使用树莓Pico.zip》资料免费下载
    发表于 11-09 11:49 0次下载
    距离检测报警使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    基于树莓pico的可编程游戏手柄设计

    方案介绍组件12x12x7.3mm 瞬时触觉按钮按钮树莓Pico通用 D1286464 OLED 显示屏操纵杆模块 PS210 欧姆电阻 组装将树莓
    发表于 12-26 15:10 0次下载

    树莓PICO pio使用

    树莓 Pico 小小的板子总是能让我们发现一些惊喜。其所使用的RP2040芯片还具备8个可编程I/O(PIO)状态机,用于自定义外围设备
    的头像 发表于 10-18 15:17 1667次阅读

    树莓Pico Flash驱动踩坑记录

    树莓 pico 带有 2MB 的 Flash 资源,以下是我基于官方 Pico C/C++ SDK 对接 Flash 驱动时踩到的一些坑和解决办法。
    的头像 发表于 10-20 11:44 1528次阅读

    何在树莓Pico使用红外线接收模块?

    树莓 Pico 使用红外线接收模块(HX1838 型),我们采用开源的 pico_ir 库。
    的头像 发表于 11-30 09:08 2213次阅读
    如<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>使用红外线接收模块?