学习目标:了解PS2手柄,学习PS2手柄通讯协议,串口打印通讯手柄按键信息。
一、注意事项
1.本次的PS2手柄使用的是PS2X_lib库协议,请与配套的手柄和接收器一起使用,不一定匹配其他类似的手柄。
2.omniduino小车主板内置一个PS2手柄接收器底座,接收器与底座具有一定防反插功能,请对准接口插入即可。
二、引脚说明
1.PS2手柄总共有六个引脚需要连接,可以查看硬件速查表里面的引脚对应关系。
VDD连接3.3V,GND接地。
三、运行应用实例
1.打开PS2X_lib库的应用实例。File->Examples->PS2X_lib->PS2X_Example,库文件里的实例都是只读,点击Save As保存到其他位置。
2.根据硬件速查手速修改PS2手柄引脚对应关系。
3.修改波特率为9600,并且打开右上角的串口助手。
4.按照经验第一次这样是无法连接成功的,会提示找到未知控制器。此时遥控也是无法正常输出数据。
5.解决方法:按一下小车的复位按键,然后不停得按PS2手柄的START按键,直到弹出正确信息。
6.现在按键就可以在串口上弹每一个按键的调试信息,可以查看里面的源码看看每一个操作的功能是如何实现的,下一节课我们将来定义小车的控制功能,实现PS2手柄控制omniduino全向小车。
四、主要代码解释
1.PS2初始化函数,前面四个参数输入对应的引脚,pressures设置为true则按下方向键有输出模拟值,rumble设置为true,则按下X按键时,手柄会震动。
2.ps2x.readType函数,主要读取连接的控制器类型,我们使用的手柄需要type=1才可以正常遥控。
3.loop函数里检测按钮是否按下,按下则打印数据。
4.要输出摇杆的数据,要先按住L1或者R1按键。