摘要:本文介绍游戏手柄模块JoyStick Shield的使用方法
前边已经实现了麦克纳姆轮四驱小车、循迹、避障、追光等几种智能小车,这些小车都是实现设定好规则来自动行进的,那么有人就想能不能做个遥控器,来遥控小车的行进呢?当然是可以的,从今天开始就来扩展这方面的功能。今天就来看一个游戏摇杆扩展模块,看看如何是使用这个模块来接受我们的控制指令。
市场上的游戏摇杆模块有很多种,有不同数量的摇杆和按键的组合,我在这里选择的是一个带按钮的PS2十字摇杆,4颗圆形按钮,2个小按键的游戏摇杆模块,这个只有几块钱的成本,如下图所示。
这个游戏摇杆模块的可扩展性很强,除了十字摇杆和按键外,还增加了以下这些接口:
- 添加了连接nRF24L01模块的RF接口
- 添加了Nokia 5110 LCD接口,这样连接Nokia 5110 LCD后可以直接实现一些游戏的开发,或者作为手柄的显示屏幕使用。
- 添加了蓝牙模块的接口,方便蓝牙无线串口通讯。不过,如果我们使用ESP32模块作为核心处理器,因为处理器自带蓝牙功能,这个接口就用不到了。
- 添加了I2C通讯接口,方便I2C设备的连接。
另外,模块还提供了3.3V和5V的切换开关,方便与不同系统的连接。这些扩展接口和器件在板子上都有明确的说明,可以很清晰的知道每一个接口的定义和作用。
要使用这个游戏摇杆模块来控制之前开发的小车,那么重点就是怎样读取PS2摇杆和按钮的状态了,在板子的右上方,是关于摇杆和按键的接口。如下图所示:
左下边绿色框中的文字就是黄色排针接口的说明,两者之间是一一对应的关系。坐标第一列是电源正极和地,A、B、C、D、E、F分别对应游戏摇杆模块上的6个按键,在按键旁都有明确的标识,很好找到。K对应的是PS2摇杆中心按键,最后的X、Y则是PS2摇杆的水平和竖直位置的输出引脚。
PS2摇杆的位置是如何获取的呢?PS2的内部是两个滑动变阻器,一个是横向(X轴方向)一个是纵向(Y轴方向)。当我们波动滑动端的时候,滑动变阻器的滑动端就是随着手柄而滑动。在使用的时候,我们给游戏摇杆模块接通电源后,滑动变阻器的两端是接到电源两端的,这样我们通过检测滑动端的电压,就可以计算出滑动端所在的位置,也就可以获得摇杆的位置了。对于按键则是通过上拉电阻连接到了电源正极,这样,当按键按下时,按键的引脚会变成低电平,按键没有按下时,引脚为高电平。这两部分的原理如下图所示:
所以,在连接摇杆的引脚需要具有ADC功能,要能够得到引脚的电压值。下面就来把这个游戏摇杆模块与ESP32扩展板连接起来,具体的连接方法如下所示:
ESP32 |
+3.3 |
GND |
P13 |
P14 |
P26 |
P27 |
P25 |
P33 |
P34 |
P32 |
P35 |
摇杆模块 |
V |
G |
A |
B |
C |
D |
E |
F |
K |
X |
Y |