Python编程小车零基础开发教程(ESP32-NodeMCU-DevKit开发板)

PS2手柄遥控器编程-遥控ESP32开发板自带LED小灯

1. 课程介绍
2. ESP32开发板引脚号说明
3. Python编程软件Thonny安装与使用
4. Python编程给引脚设置数字值-点亮ESP32开发板自带LED小灯
5. Python编程给引脚设置数字值-点亮ESP32开发板外接LED小灯
6. sleep()暂停函数-实现LED小灯闪烁效果
7. while循环语句-LED小灯无限次闪烁
8. while循环语句-LED小灯有限次闪烁
9. for循环语句-LED小灯有限次闪烁
10. 程序代码保存到芯片上运行
11. Python编程驱动电机-L298N两路电机驱动板
12. Python编程手机WIFI遥控电机-L298N两路电机驱动板
13. Python编程手机WIFI遥控四轮小车接线-L298N两路电机驱动板
14. Python编程手机WIFI遥控四轮小车完整代码-L298N两路电机驱动板
15. PS2手柄遥控器编程-遥控ESP32开发板自带LED小灯
16. PS2手柄遥控器编程-遥控四轮小车-接线安装-L298N两路电机驱动板
17. PS2手柄遥控器编程-遥控四轮小车-完整程序代码-L298N两路电机驱动板
18. PS2手柄遥控器编程-摇杆使用
19. PS2手柄遥控器编程-使用摇杆和PWM脉冲信号控制小车行驶速度完整程序
20. I2C串行总线-LCD1602显示屏
21. I2C串行总线-LCD1602显示屏-文字动画
22. I2C串行总线-LCD1602显示屏-文字滚动动画
23. Python编程ESP32播放MP3
24. Python编程ESP32播放MP3-指令格式
25. Python编程MP3播放器-手机WIFI遥控播放

1. 课程目标

使用PS2手柄遥控器控制ESP32开发板自带LED小灯开关。

2. PS2手柄使用

图片.png 

PS2手柄和遥控信号接收器

 

(1)使用时打开手柄的电源开关,拨到ON”一侧。“OFF”表示关闭电源的意思。

(2)如果电源开关是开着,手柄长时间不使用,会自动进入睡眠省电模式,电源指示灯处于关闭状态,需要按下START”激活手柄。

3. 硬件接线

 

图片.png 

PS2手柄接收器转换板

图片.png 

PS2手柄接收器转换板引脚图(从右到左DATCOMGND3VATTCLK

图片.png 

PS2手柄信号接收器安装到转换板上的效果

 

接线说明:

图片.png 

(1)PS2信号接收器的DATDI)引脚接ESP32开发板26号引脚。

(2)PS2信号接收器的COMDO)引脚接ESP32开发板27号引脚。

(3)PS2信号接收器的GND引脚接ESP32开发板GND号引脚。

(4)PS2信号接收器的3V引脚接ESP32开发板3.3V引脚。

(5)PS2信号接收器的ATTCS/SEL)引脚接ESP32开发板14号引脚。

(6)PS2信号接收器的CLK引脚接ESP32开发板12号引脚。

4. PS2手柄遥控器按键指令

图片.png 

如上图,PS2手柄各键对应的指令说明。

按键位置

指令代码

1

SELECT

2

L3

3

R3

4

START

5

UP

6

RIGHT

7

DOWN

8

LEFT

9

L2

10

R2

11

L1

12

R1

13

TRIANGLE

14

CIRCLE

15

CROSS

16

SQUARE

5. 下载PS2模块文件并上传到ESP32芯片上

需要下载ps2.py”模块,下载地址:http://www.xiangdashuai.com

下载完毕后,保存到D:/xiangdashuai/”目录下。并上传到ESP32芯片上。

图片.png

 

6. 程序代码

PS2手柄遥控器控制ESP32开发板自带LED小灯开关完整程序如下。

按下UP”键,点亮LED小灯。

按下DOWN”键,关闭LED小灯。

import machine

import ps2

 

#LED小灯接到2号引脚

pin2 = machine.Pin(2, machine.Pin.OUT)

 

#设置PS2遥控器接收引脚号

ps2ctl = ps2.PS2Controller(di_pin_no=26, do_pin_no=27, cs_pin_no=14, clk_pin_no=12)

ps2ctl.init()

 

while True:

    key_str= ps2ctl.read_once()   # 接收指令,收到的指令字符格式为 keys:UP,RIGHT: pos(lx,ly):0,-1: pos(rx,ry): 0,-1:

    key_list= key_str.split(':')  # 用冒号来将字符串进行分割,写入数组key_list中,key_list[1]值为输入的按键,key_list[3]值为左摇杆坐标,key_list[5]值为右摇杆坐标

 

    if len(key_list)>=6 : #如果指令有效

        #判断按键事件

        if key_list[1]=="UP":

            pin2.value(1)

        elif key_list[1]=="DOWN":

            pin2.value(0)

7. 实验结果

参看实验结果视频。

 


附件:
ps2.py
ps2遥控ESP32开发板自带LED小灯.py
【象大帅】PS2手柄遥控器编程-遥控ESP32开发板自带LED小灯.pdf