3. 6wd-ps2遥控操作

您当前位置: 首页 > Arduino-6WD越野机器人 > 2. 遥控操作

6wd-PS2控制智能小车综合实验

一.PS2手柄介绍

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

本次实验我们使用的也是红灯模式。

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

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

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

1:接收器引脚输出

1

2

3

4

5

6

7

8

9

DI/DAT

DO/CMD

NC

GND

VDD

CS/SEL

CLK

NC

ACK


                      
图片1.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:数据意义对照表

顺序

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 之间,且摇杆按下的键值值 L3R3
效;

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

 二.PS2接收器连接方式(使用之前需要把PS2X_lib库、

Adafruit-PWM-Servo-Driver-Library-master库放到库文件中)


                  
图片2.png            

                            2-1 接收器引脚图       

                  图片3.png

               2-2 PS2手柄接收模块(数字为与接收器的引脚连接)

      

                       

接收器引脚

功能脚

Arduino


1

DI

A3

MOS

2

DO

A2

MIS

4

GND

GND

GND

5

VDD

VCC

VCC

6

CS

A0

CS

7