注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

hellorobot

全民机器人,零起步实现你童年的梦想

 
 
 

日志

 
 

PS2无线手柄的使用及改造  

2013-07-20 22:47:50|  分类: DIY杂记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
ps2手柄是索尼的PlayStation2游戏机的遥控手柄。索尼的psx系列游戏主机在全球很是畅销。不知什么时候便有人打起ps2手柄的主意,破解了通讯协议,使得手柄可以接在其他器件上遥控使用,比如遥控我们熟悉的机器人。这款手柄的特色一是非常常见和便宜(当然我说的是made in china),另外就是按键比较多,例如在一款游戏中的设定:
PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
 


 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是包括左右手柄和记忆卡)。 Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com
ATT :用于提供手柄触发信号。信号在通信期间处于低电平。又有人将此针脚叫做 Select, DTR 和 Command


CLOCK :信号流向从主机到手柄。用于保持数据同步。

 

N/C


ACK :从手柄到主机的应答信号。此信号在每个8 bits数据发送之后的最后一个时钟周期变低,并且ATT 一直保低电 平。如果ACK 信号不变低约60微秒PS主机会试另一个外设。 Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com


PS手柄信号Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com
所有通讯都是8 bit串行数据最低有效位先行。在PS 手柄总线的所有时码在时钟下降沿都是同步的。传送一个字节的情况如下所示。 Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com
               |BIT 0|BIT 1|BIT 2|BIT 3|BIT 4|BIT 5|BIT 6|BIT 7|Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com
    CLOCK -----___---___---___---___---___---___---___---___----------- 

    DATA  -----000000111111222222333333444444555555666666777777--------Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com
                  *     *     *     *     *     *     *     *Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com
    CMND  -----000000111111222222333333444444555555666666777777-------- 

    ACK   ----------------------------------------------------------__-Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com
    Dm)ux-4)to$`%VwJ1W:[XV~JH-38'<AZdfbEiq%to5/1Mu/md|BuN|FyIx5d$/x(3giPRTvg文章来源:vgsky.com
数据线的逻辑电平在时钟下降沿驱动下触发改变。数据的接收读取在时钟的前沿(在记号*处)到电平变化之前完成。 在被选手柄接收每个COMMAND 信号之后,手柄需拉低ACK 电平在最后一个时钟。如果被选手柄没ACK 应答主机将假定没手柄接入。 

当PS主机想读一个手柄的数据时,将会拉低ATT 线电平并发出一个开始命令 (0x01)。手柄将会回复它的ID (0x41=数字, 0x23=NegCon, 0x73=模拟红灯, 0x53=模拟绿灯). 在手柄发送ID 字节的同时主机将传送0x42 请求数据。随后命令线将空闲和手柄送出 0x5A 意思说:“数据来了”。 


模拟手柄红灯模式发送的字节如下图


PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
我在淘宝买了一个,研究了一下工作模式就是这种,16个按键加2个摇杆可用。
PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
 

接下来就是改造接收端,一开始直接引线到六足的主控板上,程序里解码设置按键,但这样对程序不好的用户来说显得麻烦些。既然要拆开接线,不如改造彻底点,直接做成傻瓜通用型的接收器,这样使用在各类机器人上更方便一些。

PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
左边是改造前,右边是改造后,过程很简单。

PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
  在壳子里面加个单片机做解码,同时引出新的通讯针脚。

PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
 壳子里容量还是蛮大的,说不定以后再加点其他功能。

PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
装好后图赏

PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
改造后的接收器设置了3种简单的通讯方式,串口,8位总线和电平触发。

PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
连接舵机控制板的方式跟主控板一样,串口通讯。
 
PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
 
 随便拿起一个舵机试验了一下。

(图)
与主控板的连接,8位总线方式。

(图)
装在小六足上遥控。

PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
 
PS2无线手柄的使用及改造 - 懒猫侠 - hellorobot
 
装在小车上遥控。
  评论这张
 
阅读(11176)| 评论(21)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017