YFROBOT创客社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 17390|回复: 6
打印 上一主题 下一主题

PS2无线手柄,配对解码通讯常见问题汇总

[复制链接]

签到天数: 63 天

[LV.6]常住居民II

跳转到指定楼层
楼主
发表于 2016-7-13 09:08:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Q1:接收器用多少伏供电?
A:3.3V~5V都是可以的,但是如果电源接感性负载时(如舵机),因电源拨动大,接收器易被烧坏。现在我们提供PS2转接板,这样大大降低了因接感性负载而被烧坏的可能。
Q2:如何判断,手柄和接收器是好的,能够正常配对?   
A:主要确定手柄能否正常配对,即只给接收器接VCC和GND,不接其它数据线,都通电时,接收器灯一直闪,说明配对不成功。灯不闪,说明手柄接收器配对成功,说明手柄和接收器是好的。
Q3:使用UNO和PS2通讯时,串口输出失败提示,怎么回事?
A:提示未检测到控制器,或其它信息,多数是由于接线问题而导致的。首先确定手柄能否正常配对,看问题2(Q2),这时多数都是因为接线问题而导致的手柄配对不成功,或提示错误信息。这时需要仔细检查接线是否正确。请看《PS2解码通讯手册》中第1节,接收器引脚顺序及定义,再结合自己的程序看一下。
Q4:使用UNO和PS2通讯时,如何使手柄震动?  
A:我们提供的例程,默认不震动。Arduino例程20行左右有如下图所示程序;

将注释的部分调换一下,
#define pressures   true
//#define pressures   false
#define rumble      true
//#define rumble      false
这样就可以通过按X键的速度,输出不同的震动幅度,并可以通过按左侧“上下左右”按键的力度,输出不同的模拟值(0~255)。
Q5:使用UNO和PS2通讯时,程序配置正确,但还是无法输出摇杆模拟值?   
A:拨动摇杆时,需同时按L1或R1,这样才能输出摇杆模拟值。
Q6:移植STM32程序后,按MODE键,MODE指示灯无反应?   
A:这是由于程序的设定,看文件pstwo.c中第200行左右,函数
void PS2_TurnOnAnalogMode(void),在此函数中修改参数,就可以设定MODE键。
Q7:使用Arduino库时,无法选择MODE灯,是不是手柄有问题?
A:手柄没有问题。库在初始化的时候已经对手柄进行了配置,使手柄无法进行模式选择。
Q8:MODE灯的意义?
A:因手柄的供应商不同,模式灯有所区别,但无外乎就两种模式。现有手柄MODE灯意义如下:
1、模式灯是“绿灯模式”和“灭灯模式”;
2、ID值没有改变,“0x41=灭灯模式,0x73=绿灯模式”;
3、绿灯模式时:左右摇杆发送模拟值,0x00~0xFF之间,且摇杆按下的键值L3、
                       R3有效;
     灭灯模式时:左右摇杆模拟值为无效,推到极限时,对应发送UP、RIGHT、   
                       DOWN、LEFT、△、○、╳、□,按键L3、R3无效。
Q9:PS2在使用过程中会无缘无故的断线,重新连接?
A:手柄和接收器重新连接的原因是多种的。1:接收器的电源不稳定,系统受负载的变化,导致电源不稳定;接线不牢靠,小车颠簸,导致的接线松动,使得小车从新连接。2:手柄中的电池电量不足所导致的,尤其是再使手柄震动的时候,手柄和接收器会断开连接。
Q10:手柄和接收器过一段时间会断开连接?   
A:这时由于手柄和接收器长时间(大约5分钟)未进行按键通讯,导致手柄和接收器断开连接,这时手柄进入休眠状态,因产品的批次不同,这时候手柄接收器的POWER灯有可能是电亮状态,按START,恢复配对状态。
Q11:程序里如何判断连接状态,而不是通过看led灯状态认为判断?   
A:看《ps2解码通讯手册》中,第一节,数据顺序及意义这一段内容,看在通讯时检测手柄是否发送来"0x5A",来判断是否连接成功。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对

该用户从未签到

沙发
发表于 2016-7-27 21:15:18 | 只看该作者
程序里面有没有可以读连接状态的,而不是通过看led灯状态认为判断
回复 支持 反对

使用道具 举报

签到天数: 63 天

[LV.6]常住居民II

板凳
 楼主| 发表于 2016-7-28 08:19:34 | 只看该作者
lostage0xff 发表于 2016-7-27 21:15
程序里面有没有可以读连接状态的,而不是通过看led灯状态认为判断

是可以的,看《ps2解码通讯手册》中,第一节,数据顺序及意义这一段内容,看在通讯时检测手柄是否发送来"0x5A",来判断是否连接成功。
回复 支持 反对

使用道具 举报

该用户从未签到

地板
发表于 2016-8-1 10:52:37 | 只看该作者
aosini 发表于 2016-7-28 08:19
是可以的,看《ps2解码通讯手册》中,第一节,数据顺序及意义这一段内容,看在通讯时检测手柄是否发送来" ...

谢谢啊,马上去试下
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2018-5-7 10:48:07 | 只看该作者
我用的ARDUINO,手柄可以配对,绿灯亮,接线也没问题,但是程序提示手柄模式不匹配或者没找到手柄,打开调试看接收的数据全是FF,这是什么问题
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2020-5-8 15:49:33 | 只看该作者
human239 发表于 2018-5-7 10:48
我用的ARDUINO,手柄可以配对,绿灯亮,接线也没问题,但是程序提示手柄模式不匹配或者没找到手柄,打开调 ...

不断重启Arduino板子,基本重启四五次就能匹配到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|联系我们|YFROBOT ( 苏ICP备20009901号-2  

GMT+8, 2024-4-19 21:33 , Processed in 0.073674 second(s), 25 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表