Example 31: PS2 joystick
About 2 min
Example 31: PS2 joystick
Synchronized Device Documentation
This page corresponds to the synchronized Chinese source. Commands, JSON examples, API paths, field names, and screenshots are kept aligned with the Chinese device-side source documentation.
What This Page Covers
- Overview
- Wiring
- JSON Configuration Example
- PeriphExec Linkage
- Notes
Source Reference
The detailed operational source is preserved below so implementation details stay exact while the English navigation, titles, and reading path remain available.
示例31:PS2摇杆
实验概述
PS2 摇杆模块提供两个方向的模拟输出(X/Y轴)和一个按键输出(Z轴按下),适用于游戏控制、云台控制、机械臂操控等场景。
硬件接线
| 开发板标识 | GPIO引脚 | 连接设备 |
|---|---|---|
| VRx | GPIO34 | X轴模拟输出 |
| VRy | GPIO35 | Y轴模拟输出 |
| SW | GPIO4 | 按键(按下低电平) |
X/Y轴居中时输出约 1.65V(ADC约2048),满偏时 0V 或 3.3V。
JSON 配置示例
{
"peripherals": [
{
"id": "joystick_x",
"name": "摇杆X轴",
"type": 15,
"enabled": false,
"pins": [34],
"params": {}
},
{
"id": "joystick_y",
"name": "摇杆Y轴",
"type": 15,
"enabled": false,
"pins": [35],
"params": {}
},
{
"id": "joystick_btn",
"name": "摇杆按键",
"type": 13,
"enabled": false,
"pins": [4],
"params": {}
}
]
}外设执行联动
场景:摇杆控制舵机(定时触发+脚本)
功能:通过摇杆X轴控制舵机角度(0-180°)
Web界面配置步骤
步骤1:确保已配置舵机外设
- 外设ID:
servo_01 - 类型:舵机
步骤2:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
摇杆控制舵机 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤3:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 定时触发 定时采样 定时模式 选择 固定间隔 按毫秒间隔 间隔时间 100100ms(快速响应)
步骤4:配置动作(脚本转换)
点击 添加动作 按钮
填写:
- 动作类型:选择 命令脚本
- 动作参数:
var x=analogRead('joystick_x'); var angle=Math.round(x*180/4095); servoWrite('servo_01',angle);点击 保存 按钮
PS2摇杆数值说明
| 状态 | ADC值 | 说明 |
|---|---|---|
| 居中 | ~2048 | 中间位置(死区±100) |
| 左/上极限 | 0 | 最小值 |
| 右/下极限 | 4095 | 最大值 |
注意事项
- 死区:摇杆居中时ADC值约2000-2100(非精确2048),建议设置±100死区
- 引脚选择:必须使用支持 ADC 的引脚(GPIO32-39)
- 采样频率:控制类应用建议 50-100ms 采样间隔
- 校准:首次使用建议记录居中值,作为偏移补偿基准
