前面我们学了倾斜传感器、震动传感器、温度传感器——ESP32能感知姿态、震动和温度了。但还有一种非常直观的交互方式还没玩过:摇杆

游戏手柄、无人机遥控器、机器人控制……这些设备的核心交互就是摇杆。它能把你的手指动作转换成电信号,让设备理解“往上推”、“往下拉”、“往左拨”这些指令。

今天这节课,我们就用PS2摇杆模块,让ESP32拥有“手感”!

第一步:找到课程,看看成品效果

打开逗脑IDE,点击顶部 “文档”,在 “课程” → “ESP32” →“ESP32 + MicroPython” 分类下,找到PS2摇杆

在这里插入图片描述

打开课件,你会看到本节课的最终效果:推动摇杆时,终端实时打印出X轴、Y轴和按键的数值——往上推数值变小,往下推数值变大,按下摇杆按键会显示按钮状态。

在这里插入图片描述

在这里插入图片描述

第二步:什么是摇杆?什么是ADC?

PS2摇杆其实就是游戏手柄上用的那种摇杆,内部由两个滑动电阻(X轴和Y轴)和一个按键组成。

滑动电阻的原理:

在这里插入图片描述

核心知识点:ADC(模数转换)

摇杆输出的是模拟电压信号(0~3.3V连续变化),但ESP32只能理解数字信号(0和1)。所以需要一个桥梁——ADC(模数转换器)

模拟量(电压) → ADC → 数字量(数值)

ESP32的ADC可以将 0~3.3V 的电压映射为 0~4095 的数值:

  • 电压越低,数值越小(接近0)
  • 电压越高,数值越大(接近4095)

在这里插入图片描述

ESP32支持ADC的引脚:
0、2、4、12、13、14、15、25、26、27、32、33、34、35、36、39

⚠️ 注意: 有些开发板0、2、4引脚不能使用,推荐使用32、33、34、35、36、39

第三步:动手接线——5根线搞定

PS2摇杆有5个引脚:

摇杆引脚 连接ESP32 说明
GND GND 电源地
VCC 3.3V 电源正极
X GPIO32 X轴模拟输出(ADC)
Y GPIO33 Y轴模拟输出(ADC)
SW GPIO15 按键输出(数字)

在这里插入图片描述

第四步:代码——读取X、Y和按键

from machine import Pin, ADC
import time


ps2_y = ADC(Pin(33))
ps2_y.atten(ADC.ATTN_11DB)  # 这里配置测量量程为3.3V
ps2_x = ADC(Pin(32))
ps2_x.atten(ADC.ATTN_11DB)  # 这里配置测量量程为3.3V


btn = Pin(15, Pin.IN)

while True:
    val_y = ps2_y.read()  # 0-4095
    val_x = ps2_x.read()  # 0-4095
    print("x:{} y:{} btn:{}".format(val_x, val_y, btn.value()))
    time.sleep(0.1)

代码逻辑:

变量 范围 含义
val_x 0 ~ 4095 X轴位置(左→右)
val_y 0 ~ 4095 Y轴位置(上→下)
btn.value() 0 或 1 按键是否按下

第五步:保存运行,推动摇杆看数据!

Ctrl + S 保存,选择ESP32开发板设备,给文件命名(比如ps2.py),点击保存。

在这里插入图片描述

点击运行按钮,终端开始不断打印数据。

试试看:

  • 摇杆居中 → x≈2000,y≈2000(中间值)
  • 摇杆往上推 → y值变小(接近0)
  • 摇杆往下推 → y值变大(接近4095)
  • 摇杆往左推 → x值变小(接近0)
  • 摇杆往右推 → x值变大(接近4095)
  • 按下摇杆 → btn变成1(或0,取决于模块)

PS2摇杆能做什么?

应用场景 用途
游戏手柄 控制游戏中角色的移动方向
无人机遥控 控制飞行姿态和方向
机器人控制 控制机器人前进、后退、转向
智能家居控制 摇杆代替按钮,控制灯光亮度、音量大小
菜单选择器 上下左右选择菜单项,按下确认

全程回顾

步骤 操作 效果
找到课程 文档→课程→ESP32→ESP32+MicroPython→PS2摇杆 了解PS2摇杆
认识ADC 理解“模拟量→数字量”的转换 知道0~4095的含义
动手接线 GND→GND, VCC→3.3V, X→GPIO32, Y→GPIO33, SW→GPIO15 硬件就位
打开代码 点击“打开”按钮 代码进入编辑器
保存运行 Ctrl+S → 选择ESP32 → 运行 终端实时打印数据
推动摇杆 上下左右推动,按下按键 数值实时变化!

如果你对本节课感兴趣,去官网(www.dounao.cn)下载逗脑IDE,准备好相关配件,跟着课件走一遍。

有任何问题或建议,欢迎在评论区留言告诉我们。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐