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

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

3天内不再提示

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

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

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

    文章

    512

    浏览量

    38078
  • 树莓派
    +关注

    关注

    113

    文章

    1641

    浏览量

    104765

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    树莓Pico迷你开发板及所使用的RP2040 MCU芯片有哪些特性

    Raspberry Pi Pico是什么?树莓Pico迷你开发板及所使用的RP2040 MCU芯片有哪些特性?
    发表于 09-14 06:50

    树莓pico如何入门?

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

    怎么实现树莓Pico电机运动控制MicroPython+pioasm编程?

    怎么实现树莓Pico电机运动控制MicroPython+pioasm编程?
    发表于 10-27 06:37

    树莓Pico的相关资料分享

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

    使用树莓Pico开发板的一些思考与应用实践资料分享

    本博文根据树莓基金会2021年1月21日公开的两部最新官方英文技术文献[1]、[2]以及博主最近使用树莓Pico开发板的一些思考与应用实
    发表于 11-12 06:07

    使用树莓Pico做了一个自动驾驶小车

    树莓Pico做了一个自动驾驶小车,连接上蓝牙,可以用手机控制它的移动了。
    发表于 01-05 07:32

    树莓Pico的相关资料推荐

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

    树莓Pico实现怀旧的AppleII仿真

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

    基于树莓pico的FM接收器

    描述Pico 收音机是一个简单的基于树莓 pico 的 FM 接收器,它使用 rda5807m 调谐到 FM 频道。可以通过在 SMA 连接器中连接 FM 天线和在音频插孔中连接 3
    发表于 07-08 07:56

    树莓Pico分线板V2.0资料分享

    描述树莓 Pico 分线板 V2.0展示了具有改进性能的流行 Pi Pico Breakout Board Rev 1.0 的修订版。更多功能,更好的实用性和优化的成本。特征:Ras
    发表于 07-28 07:54

    基于树莓pico移植LVGL软件包的设计如何去实现呢

    今天领导交给我一块树莓pico,让我移植 u8g2,正好手上有树莓的拓展板,于是顺带着吧 lvgl 移植上去了:)废话不多说直接开搞!硬
    发表于 09-22 11:26

    请教大神树莓pico项目创建后,rtthread文件夹没有文件是何原因?

    请教大神树莓pico项目创建后,rtthread文件夹没有文件是何原因?
    发表于 09-28 09:56

    树莓PICO:使用rt-thread micropython软件包联网获取天气

    1、在树莓PICO实现http请求demo  项目描述  本项目使用树莓
    发表于 11-14 16:19

    如何让树莓Pico支持LoRaWAN?

    Mistry,最近为树莓Pico搞定了LoRa和以太网支持。   目前他的库能让Semtech SX1276无线电模块更好的工作在Pico和其它RP2040芯片的开发板
    发表于 05-11 10:44