15、PS2手柄遥控(另购)

您当前位置: 首页 > > 编程语言教学

程序下载

PS2手柄遥控(另购)下位机程序源码.rar  点击下载

15、PS2手柄遥控(3节电池版本).rar  点击下载

实验十六:STM32平台-------PS2控制智能小车综合实验

 

一.PS2手柄介绍


       PS2 由手柄与接收器两部分组成,手柄主要负责发送按键信息。接通电源并打开手柄开关时,手柄与接收器自动配对连接,在未配对成功的状态下,接收器绿灯闪烁,手柄上的灯也会闪烁,配对成功后,接收器上绿灯常亮,手柄上灯也常亮,这时可以按“MODE键,选择手柄发送模式,

红灯模式:遥杆输出模拟值;

绿灯模式:遥杆对应上面四个按键,只有四个极限方向对应。

接收器和主机(单片机)相连,实现主机与手柄之间的通讯。

表1:接收器引脚输出

blob.png

`%862O{{4PJX56ZH{YM_(8L.png

1.1 接收器

DI/DAT信号流向,从手柄到主机,此信号是一个 8bit 的串行数据,同步传送于时钟
的下降沿。信号的读取在时钟由高到低的变化过程中完成。

DO/CMD信号流向,从主机到手柄,此信号和 DI 相对,信号是一个 8bit 的串行数据,同步传送于时钟的下降沿。
NC空端口;

GND电源地;

VDD接收器工作电源,电源范围 3~5V

CS/SEL用于提供手柄触发信号。在通讯期间,处于低电平;

CLK时钟信号,由主机发出,用于保持数据同步;

NC空端口;

ACK从手柄到主机的应答信号。此信号在每个 8bits 数据发送的最后一个周期变低并且 CS 一直保持低电平,如果 CS 信号不变低,约 60 微秒 PS 主机会试另一个外设。在编程时未使用 ACK 端口。当主机想读手柄数据时,将会拉低 CS 线电平,并发出一个命令“0x01;手柄会回复它的 ID0x41=模拟绿灯,0x73=模拟红灯”;在手柄发送 ID 的同时,主机将传送 0x42,请求数据;随后手柄发送出 0x5A,告诉主机“数据来了”。


表 2:数据意义对照表

blob.png


当有按键按下,对应位为0”,其他位为“1”,例如当键“SELECT”被按下时,Data[3]=11111110B

红灯模式时:左右摇杆发送模拟值,0x00~0xFF 之间,且摇杆按下的键值值 L3R3 效;

绿灯模式时:左右摇杆模拟值为无效,推到极限时,对应发送 UPRIGHTDOWNLEFT△、○、╳、□,按键 L3R3 无效。


 

二.PS2接收器连接方式


KH[9G{R38_Y%8$[V~T(S1GT.png

图2-1 接收器引脚图      


WA2R]8}39]Q5$YL[N0NFZ~D.png

图2-3 STM32主板原理图


表2-1 接收器与主板引脚对接


接收器引脚

功能脚

STM32


1

DI

PB14

MOS

2

DO

PB15

MIS

4

GND

GND

GND

5

VDD

VCC

VCC

6

CS

PA8

CS

7

CLK

PB13

SCK


接收头与扩展板连接图示




三.手柄按键定义

注:右侧摇杆暂未定义

image.png


图3-1 手柄正面图及功能

image.png

图3-2 手柄侧面图及功能

 

模拟值对应XY坐标图:

 

SO[I[3H8T3J`@N@G}%A4M_0.png

四.程序代码:

详细程序代码见源文件。