SONY无线PS2遥控手柄与stm32单片机通信
SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制协议已被全球创客破解,可以方便用于机器人控制器,作为遥控输入设备。
这款手柄价格便宜,性价比极高。
原理
PS2无线手柄按键比较多,例如在一款游戏中的设定:
PS手柄无线接收器,针脚输出端(面对插头)
-----------------------------------------
PIN 1->| o o o | o o o | o o o |
\___________________________________/
针脚 从左到右分别是 :
1-DATA:信号流向从手柄到主机。此信号是一个8 bit的串行数据,同步传送于时钟下降沿(输入输出信号在时钟信号由高 到低时变化,所有信号的读取在时钟前沿到电平变化之前完成。)
2-COM, COMMAND :信号流向从主机到手柄。此信号和DATA相对,同样是一个8 bit的串行数据,同步传送于时钟下降沿。
3-N/C (9 Volts unused)
4-GND
5-VCC :电源电压从5V到3V原装的索尼手柄都可以工作。主机主板上装有表面安装的750mA 保险丝 ,用于防止外设过载 (750mA是包括左右手柄和记忆卡)。
6-ATT :用于提供手柄触发信号。信号在通信期间处于低电平。又有人将此针脚叫做CS(ChipSelect), DTR
7-CLOCK :信号流向从主机到手柄。用于保持数据同步。
8-N/C
9-ACK :从手柄到主机的应答信号。此信号在每个8 bits数据发送之后的最后一个时钟周期变低,并且ATT 一直保低电平。如果ACK 信号不变低约60微秒PS主机会试另一个外设。
PS手柄信号,所有通讯都是8 bit串行数据最低有效位先行。在PS 手柄总线的所有时码在时钟下降沿都是同步的。传送一个字节的情况如下所示。
数据线的逻辑电平在时钟下降沿驱动下触发改变。数据的接收读取在时钟的前沿(在记号*处)到电平变化之前完成。 在被选手柄接收每个COMMAND 信号之后,手柄需拉低ACK 电平在最后一个时钟。如果被选手柄没ACK 应答主机将假定没手柄接入。
当PS主机想读一个手柄的数据时,将会拉低ATT 线电平并发出一个开始命令 (0x01)。手柄将会回复它的ID (0x41=数字, 0x23=NegCon, 0x73=模拟红灯, 0x53=模拟绿灯). 在手柄发送ID字节的同时主机将传送0x42 请求数据。随后命令线将空闲和手柄送出 0x5A 意思说:"数据来了"。
本文只针对 "模拟手柄红灯模式"进行破解,字节定义如下。
============================================================================
SONY无线PS2遥控手柄与stm32单片机通信相关推荐
- 对PS2遥控手柄与stm32单片机通信的理解(结合平衡小车之家的说明和程序)
为了更好地应用PS2遥控手柄,我想尽可能理解一下它与stm32单片机间通信控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接 ...
- 单片机右摇杆c语言函数英文,对PS2遥控手柄与stm32单片机通讯的理解(结合平衡小车之家的说明和程序)...
为了更好地应用PS2遥控手柄,我想尽量理解一下它与stm32单片机间通讯控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接下 ...
- PS2无线遥控手柄与STM32单片机通信
PS2无线遥控手柄 接下来要做一个小车玩玩,在网上淘了一个PS2无线遥控手柄,用于控制小车的前进.后退等功能. 实物图如下: 其中有两个PS2游戏摇杆,对应的驱动原理参见下文: PS2游戏摇杆原理及控 ...
- python实现STM32单片机通信
python实现STM32单片机通信 注意事项 注意事项 Python3中的encode('unicode-escape')和encode('raw_unicode_escape')区别与联系 htt ...
- 超详细OpenMV与STM32单片机通信 (有完整版源码)
目录标题 1.前言(闲话) 2.硬件连接 3.软件代码---OpenMV端 4.软件代码---STM32端 5.利用PC端测试数据数据是否发送接收正常 6.学习补充 (代码看不懂的时候可以来看一下) ...
- STM32F4 高主频引起的PS2遥控手柄协议移植问题
在STM32F103主板上运行正常的PS2手柄驱动协议,平移到STM32F405的板子上,遇到板子收不到手柄按键信号的情况.各种查找资料,各种测试之后,终于在这篇博文的启发下找到了问题.关于使用STM ...
- 485通讯线是几芯的_RS485协议 电脑与stm32单片机通信 keil编程 在485的硬件错误中徘徊...
学习于:野火stm32视频教程 CAN是用在汽车总线中,RS485是用在工业现场环境中.特定是传输距离远,抗干扰能力强. 485由232协议改进而来,协议层不变,只是改进了物理层,因此保留了串口通讯协 ...
- Arduino单片机(五).基于OpenWrt模块的无线视频遥控小车设计
1.功能介绍 本项目所设计的机器人需要实现的功能为:操作员在操作终端(手机或PC端)通过Wi-Fi连接到小车上Wi-Fi模块所在的网络中,向其发出相关操作指令,在Wi-Fi模块接收相关的数据指令并通过 ...
- stm32 温湿度_基于STM32单片机大棚温湿度检测无线蓝牙APP控制设计
本设计由STM32单片机+风扇控制电路+温湿度传感器电路+1602液晶显示电路+蓝牙模块电路+电源电路组成. 通过温湿度传感器检测温湿度,并在液晶上和APP上实时显示. 当湿度超过75度,APP发出报 ...
- STM32单片机智能语音温控摇头电风扇落地扇可红外遥控可PWM调速定时温度显示
实践制作DIY- GC0074-智能语音温控摇头电风扇 一.功能说明: 基于STM32单片机设计-智能语音温控摇头电风扇 功能介绍: 硬件组成:STM32单片机+语音识别模块+DS18B20温度传感器 ...
最新文章
- 关于Jquery中ajax方法data参数用法的总结
- python接口测试demo_python http接口自动化测试简单demo
- 上交大博导:写给不想做学术的你
- 南大用“推荐算法”分宿舍666,新生配好舍友美滋滋
- linux 硬盘繁忙,icinga2 借助check_iostat.sh抓取linux服务器的diskIO(硬盘繁忙度)
- mysql 日期函数大全_MYSQL 日期函数大全
- allure报告---动态显示模块名和用例标题
- 创建前缀一样的文件_Win10更快速创建或重命名仅扩展名文件
- R实现地理位置与经纬度相互转换
- 常用游戏分析工具 之 PChunter 及 procexp 使用心得
- C# ajax上传图片
- 阿里第一轮电话面试面经
- PSPICE 仿真石英晶体振荡电路
- 交换机和集线器的区别是什么?
- 如何用python爬取股票数据选股_用python爬取股票数据
- unity3D原生声音系统
- 2021-08-11好奇心
- copypng emitted errors
- 基于ASAM ODS标准的试验数字化平台-WDP
- [禅悟人生]疑问是成长的标志
热门文章
- 【codecademy笔记1】
- 20 行代码编写一个简单的端口扫描器
- html修改progress背景色,html5 progress标签如何更改进度条颜色?progress进度条详解...
- 详解区块链P2P网络
- 大一计算机专业选修课,大学计算机类开什么公选课好?
- Spring框架初学习
- 计算机接口接触不良,如何处理电脑耳机插口接触不良
- ilm 和dlm差异_价值观异质性对团队绩效的影响机制研究 ———团队互动的中介作用与DLMX的调节效应(上)...
- windows 7家庭版升级为旗舰版 序列
- P5144 蜈蚣 (线性DP)