YFROBOT创客社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 93132|回复: 114
打印 上一主题 下一主题

PS2无线手柄单片机应用,PS2解码,PS2控制舵机,PS2遥控小车stm32,arduino的PS2库

  [复制链接]

签到天数: 63 天

[LV.6]常住居民II

跳转到指定楼层
楼主
发表于 2015-5-28 16:32:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    ps2手柄是索游戏机的遥控手柄,索尼的系列游戏主机在全球很是畅销。不知什么时候便有人打起ps2手柄的主意,破解了通讯协议,使得手柄可以接在其他器件上做遥控使用,比如遥控我们熟悉的四轮车与机器人。突出的特点是现在这款手柄性价比极高。按键丰富,方便扩展到其它应用中。

移步优酷观看:http://v.youku.com/v_show/id_XMTQ5MzM0NjMyMA==.html


一、接收器线号

1
2
3
4
5
6
7
8
9
DI/DAT
DO/CMD
NC
GND
VDD
CS/SEL
CLK
NC
ACK  
    批次不同,接收器的外观会有所区别,一个上有电源灯红灯,一个上没有电源灯,但使用方法是一样的,引脚定义是一样的。
  • DI/DAT:信号流向,从手柄到主机,此信号是一个8bit的串行数据,同步传送于时钟的下降沿。信号的读取在时钟由高到低的变化过程中完成。
  • DO/CMD:信号流向,从主机到手柄,此信号和DI相对,信号是一个8bit的串行数据,同步传送于时钟的下降沿。
  • NC:空端口;
  • GND:电源地;
  • VDD:接收器工作电源,电源范围3~5V;
  • CS/SEL:用于提供手柄触发信号。在通讯期间,处于低电平;
  • CLK:时钟信号,由主机发出,用于保持数据同步;
  • NC:空端口;
  • ACK:从手柄到主机的应答信号。此信号在每个8bits数据发送的最后一个周期变低并且CS一直保持低电平,如果CS信号不变低,约60微秒PS主机会试另一个外设。在编程时未使用ACK端口。
二、手柄的使用、连接配对说明
    PS2手柄由手柄和接收器两个部分组成,手柄需要两节7号1.5V供电,接收器的电源和控制器使用同一电源,电源范围为3~5V,不能接反,不能超电压,过压和反接,都会使接收器烧坏
    手柄上有个电源开关,ON开/OFF关,将手柄开关打到ON上,在未搜索到接收器的状况下,手柄上的灯会不停的闪,在一定时间内,还未搜索到接收器,手柄将进入待机模式,手柄上的灯将灭掉,这时,按下“START”键,唤醒手柄。
    接收器供电,在未配对的状况在,绿灯闪。
    手柄打开,接收器供电,手柄和接收器会自动配对,这时灯常亮,手柄配对成功。按键“MODE”(手柄批次不同,上面的标识有可能是"ANALOG",但不会影响使用),可以选择“红灯模式”、“绿灯模式”。
    有些用户反映,手柄和接收器不能正常配对!多数问题是,接收器的接线不正确,或程序有问题。
    解决方法:接收器只接电源(电源线一定要连接正确),不接任何数据线和时钟线,一般情况下手柄是能够配对成功。配对成功后灯常亮,说明手柄是好的。这时再检查接线是否正确,程序移植是否有问题。
三、时序及数据意义

通讯时序图
    在时钟下降沿时,完成数据(1bit))的发送与接收。
    当主机想读手柄数据时,将会拉低CS线电平,并发出一个命令“0x01”;手柄会回复它的ID“0x41=模拟绿灯,0x73=模拟红灯”;在手柄发送ID的同时,主机将传送0x42,请求数据;随后手柄发送出0x5A,告诉主机“数据来了”。
    idle:数据线空闲,该数据线无数据传送。
    一个通讯周期有9个字节(8位),这些数据是依次按传送的。
顺序
DO
DI
Bit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7
0
0X01
idle

1
0x42
ID

2
idle
0x5A

3
idle
data
SELECTL3R3STARTUPRIGHTDOWNLEFT
4
idle
data
L2R2L1R1、△、○、╳、□
5
idle
data
PSS_RX0x00=left0xFF=right
6
idle
data
PSS_RY0x00=up0xFF=down
7
idle
data
PSS_LX0x00=left0xFF=right
8
idle
data
PSS_LY0x00=up0xFF=down
当有按键按下,对应位为“0”,其他位为“1”,例如当键“SELECT”被按下时,Data[3]=11111110B,
红灯模式时:左右摇杆发送模拟值,0x00~0xFF之间,且摇杆按下的键值L3、R3有效;
绿灯模式时:左右摇杆模拟值为无效,推到极限时,对应发送UP、RIGHT、DOWN、LEFT、△、○、╳、□,按键L3、R3无效。
详细手册说明及例程请下载附件,线的连接方式根据您的程序进行正确连接
在这里我们提供一个附件,里面的内容包括:
1、PS2例程(PS2解码例程(主控stm32,c语言编写解码例程)、PS2控制小车程序、PS2控制舵机例程);
2、PS2-Arduino-lib(Arduino例程);
3、PS2解码通讯手册.pdf;
4、PS2解码通讯常见问题汇总.pdf。
打开文件后请首先阅读ReadMeFirst.txt,提高您浏览的效率。
如果您遇到问题,先先打开《PS2解码通讯常见问题汇总》,看是否能够解决,如不能解决请回复或直接联系我。

本帖子中包含更多资源

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

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

签到天数: 63 天

[LV.6]常住居民II

推荐
 楼主| 发表于 2015-6-30 08:50:26 | 只看该作者
kingson3721 发表于 2015-6-29 11:59
老大  有没有arduino控制舵机的例程,很需要啊

在arduino库中是有的,有对应的例程,ArduinoIDE-1.5.4\libraries\Servo\examples,在这个文件夹中,您找一下
回复 支持 0 反对 1

使用道具 举报

该用户从未签到

推荐
发表于 2015-6-11 20:49:05 | 只看该作者
老板给的舵机库有问题啊,编译过不去,有错误啊
回复 支持 1 反对 0

使用道具 举报

签到天数: 9 天

[LV.3]偶尔看看II

地板
发表于 2015-5-28 16:43:09 | 只看该作者
来瞧瞧                              
回复 支持 反对

使用道具 举报

签到天数: 63 天

[LV.6]常住居民II

5#
 楼主| 发表于 2015-6-12 08:25:30 | 只看该作者
wangyv 发表于 2015-6-11 20:49
老板给的舵机库有问题啊,编译过不去,有错误啊

没有呀,都是验证好后再发布的。用keil3打开的。
回复 支持 反对

使用道具 举报

签到天数: 698 天

[LV.9]以坛为家II

6#
发表于 2015-6-16 18:17:36 | 只看该作者
学习PS2的用法来制作东西
回复 支持 反对

使用道具 举报

签到天数: 63 天

[LV.6]常住居民II

7#
 楼主| 发表于 2015-6-25 11:22:13 | 只看该作者
wdyong1971 发表于 2015-6-25 11:04
学习一下,买了俩个。

谢谢支持
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

8#
发表于 2015-6-29 11:56:39 | 只看该作者
这个需要 ps2+舵机的资料很少
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

9#
发表于 2015-6-29 11:59:26 | 只看该作者
老大  有没有arduino控制舵机的例程,很需要啊
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2015-6-30 15:43:09 | 只看该作者
感谢分享感谢分享感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 00:18 , Processed in 0.059086 second(s), 27 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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