PS2手柄改造
PS2无线手柄的使用及改造
2013-07-20 22:47:50| 分类: DIY杂记 | 标签:ps2手柄 遥控 机器人 改造 |举报|字号 订阅
ps2手柄是索尼的PlayStation2游戏机的遥控手柄。索尼的psx系列游戏主机在全球很是畅销。不知什么时候便有人打起ps2手柄的主意,破解了通讯协议,使得手柄可以接在其他器件上遥控使用,比如遥控我们熟悉的机器人。这款手柄的特色一是非常常见和便宜(当然我说的是made in china),另外就是按键比较多,例如在一款游戏中的设定:
PS手柄针脚输出端(面对插头)
-----------------------------------------
PIN 1->| o o o | o o o | o o o |
\_______________________________________/
针脚 从左到右分别是 :
DATA:信号流向从手柄到主机。此信号是一个8 bit的串行数据,同步传送于时钟下降沿(输入输出信号在时钟信号由高 到低时变化,所有信号的读取在时钟前沿到电平变化之前完成。)
COMMAND :信号流向从主机到手柄。此信号和DATA相对,同样是一个8 bit的串行数据,同步传送于时钟下降沿。
N/C (9 Volts unused)
GND
VCC :电源电压从5V到3V原装的索尼手柄都可以工作。主机主板上装有
面安装的750mA 保险丝 ,用于防止外设过载 (750mA是包括左右手柄和记忆卡)。
ATT :用于提供手柄触发信号。信号在通信期间处于低电平。又有人将此针脚叫
做 Select, DTR 和 Command
CLOCK :信号流向从主机到手柄。用于保持数据同步。
N/C
ACK :从手柄到主机的应答信号。此信号在每个8 bits数据发送之后的最后一个时钟周期变低,并
且ATT 一直保低电 平。如果ACK 信号不变低约60微秒PS主机会试另一个外设。
PS手柄信号
所有通讯都是8 bit串行数据最低有效位先行。在PS 手柄总线的所有时码在时钟下降沿都是同步的。
传送一个字节的情况如下所示。
|BIT 0|BIT 1|BIT 2|BIT 3|BIT 4|BIT 5|BIT 6|BIT 7|
CLOCK -----___---___---___---___---___---___---___---___-----------
DATA -----000000111111222222333333444444555555666666777777--------
* * * * * * * *
CMND -----000000111111222222333333444444555555666666777777--------
ACK ----------------------------------------------------------__-
数据线的逻辑电平在时钟下降沿驱动下触发改变。数据的接收读取在时钟的前沿,在记号*处,到电
平变化之前完成。 在被选手柄接收每个COMMAND 信号之后,手柄需拉低ACK 电平在最后一个时钟。如果被选手柄没ACK 应答主机将假定没手柄接入。
当PS主机想读一个手柄的数据时,将会拉低ATT 线电平并发出一个开始命令 (0x01)。手柄将会回复它的ID (0x41=数字, 0x23=NegCon, 0x73=模拟红灯, 0x53=模拟绿灯). 在手柄发送ID 字节的同时主机将传送0x42 请求数据。随后命令线将空闲和手柄送出 0x5A 意思说:“数据来了”。
模拟手柄红灯模式发送的字节如下图
我在淘宝买了一个,研究了一下工作模式就是这种,16个按键加2个摇杆可用。
接下来就是改造接收端,一开始直接引线到六足的主控板上,程序里解码设置按键,但这样对程序不
好的用户来说显得麻烦些。既然要拆开接线,不如改造彻底点,直接做成傻瓜通用型的接收器,这样
使用在各类机器人上更方便一些。
左边是改造前,右边是改造后,过程很简单。
在壳子里面加个单片机做解码,同时引出新的通讯针脚。
壳子里容量还是蛮大的,说不定以后再加点其他功能。
装好后图赏
改造后的接收器设置了3种简单的通讯方式,串口,8位总线和电平触发。
连接舵机控制板的方式跟主控板一样,串口通讯。
随便拿起一个舵机试验了一下。
,图,
不主控板的连接,8位总线方式。
,图,
装在小六足上遥控。
装在小车上遥控。