我们需要蓝牙手柄,来进行控制机器人,所以接下来我们进行一些操作。
如果家里实在是没有
PS4手柄,则可以购买一个兼容的蓝牙手柄,测试时使用的是这个手柄:蓝牙手柄购买链接
在程序中相关的按键定义:
特别说明
蓝牙手柄控制机器人的程序逻辑,已经内置在 RoboTamerSdk4Qmini 代码库中:
- 使用 pygame 库自动识别蓝牙手柄
- Linux 系统配对后,pygame 会自动检测到手柄设备(
pygame.joystick.Joystick(0)) - 不需要额外的蓝牙配对代码,系统级配对即可
蓝牙手柄 → Linux 蓝牙驱动 → pygame → Python 模块 → C++ (通过 Python C API) → 机器人控制
安装依赖
bash'
sudo apt install -y python3-pygame bluetooth1
启动蓝牙服务:
bash
sudo systemctl start bluetooth
sudo systemctl enable bluetooth1
2
2
手柄配对
步骤1:将 PS4/5 手柄设置为配对模式:
同时按住手柄的 Share + PS 按钮 3 秒
指示灯条应开始快速闪烁(白色或蓝色)
步骤2:使用 bluetoothctl 进行配对 Wireless Controller 设备:
bash
# 进入蓝牙命令行
bluetoothctl
# 扫描周围设备
bluetooth> scan on
# 与手柄配对(将 MAC 替换为实际地址)
# 名字为:Wireless Controller
# 例如:pair A0:5A:5F:5C:67:74
bluetooth> pair XX:XX:XX:XX:XX:XX
# 信任设备
# 例如:trust A0:5A:5F:5C:67:74
bluetooth> trust XX:XX:XX:XX:XX:XX
# 连接设备
# 例如:connect A0:5A:5F:5C:67:74
bluetooth> connect XX:XX:XX:XX:XX:XX
# 手柄后面灯常量即是连接成功
# 退出
bluetooth> exit1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
配对一次之后,只要不删除相关的信息,每次双方开机都会自动连接。