设为首页收藏本站

arduino 单片机机器人爱好者之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 16666|回复: 93

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

  [复制链接]

签到天数: 63 天

[LV.6]常住居民II

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

一、接收器线号
图片1.png
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",但不会影响使用),可以选择“红灯模式”、“绿灯模式”。
    有些用户反映,手柄和接收器不能正常配对!多数问题是,接收器的接线不正确,或程序有问题。
    解决方法:接收器只接电源(电源线一定要连接正确),不接任何数据线和时钟线,一般情况下手柄是能够配对成功。配对成功后灯常亮,说明手柄是好的。这时再检查接线是否正确,程序移植是否有问题。
三、时序及数据意义
时序图.png
通讯时序图
    在时钟下降沿时,完成数据(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解码通讯常见问题汇总》,看是否能够解决,如不能解决请回复或直接联系我。

PS2解码通讯及例程V1.8.zip (1.08 MB, 下载次数: 3469)

签到天数: 9 天

[LV.3]偶尔看看II

发表于 2015-5-28 16:43:09 | 显示全部楼层
来瞧瞧                              
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2015-6-11 20:49:05 | 显示全部楼层
老板给的舵机库有问题啊,编译过不去,有错误啊
回复 支持 反对

使用道具 举报

签到天数: 63 天

[LV.6]常住居民II

 楼主| 发表于 2015-6-12 08:25:30 | 显示全部楼层
wangyv 发表于 2015-6-11 20:49
老板给的舵机库有问题啊,编译过不去,有错误啊

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

使用道具 举报

签到天数: 162 天

[LV.7]常住居民III

发表于 2015-6-16 18:17:36 | 显示全部楼层
学习PS2的用法来制作东西
回复 支持 反对

使用道具 举报

签到天数: 8 天

[LV.3]偶尔看看II

发表于 2015-6-25 11:04:02 | 显示全部楼层
学习一下,买了俩个。
回复 支持 反对

使用道具 举报

签到天数: 63 天

[LV.6]常住居民II

 楼主| 发表于 2015-6-25 11:22:13 | 显示全部楼层
wdyong1971 发表于 2015-6-25 11:04
学习一下,买了俩个。

谢谢支持
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2015-6-29 11:56:39 | 显示全部楼层
这个需要 ps2+舵机的资料很少
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2015-6-29 11:59:26 | 显示全部楼层
老大  有没有arduino控制舵机的例程,很需要啊
回复 支持 反对

使用道具 举报

签到天数: 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,在这个文件夹中,您找一下
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|联系我们|YFRobot ( 苏ICP备13017135  

GMT+8, 2017-6-26 23:33 , Processed in 0.336774 second(s), 30 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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