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

Python编程MP3播放器-手机WIFI遥控播放

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. MP3文件清单

TF卡中存放了如下MP3文件:

01_行人车辆请注意安全.mp3

02_倒车请注意.mp3

03_步枪.mp3

04_机关枪哒哒哒.mp3

05_大炮射击声.mp3

06_红军冲锋号.mp3

07_警车鸣笛.mp3

08_直升飞机.mp3

09_坦克移动.mp3

10_坦克大战前背景音乐.mp3

11_机器人行走.mp3

12_门铃.mp3

13_老大有情况.mp3

14_干饭人之歌.mp3

15_敢问路在何方.mp3

 

2. 硬件接线

图片.png 

MP3播放器引脚图

 

图片.png
ESP32引脚图

 

接线说明:

接线和上一节课接线类似,只是有一处不一样,把MP3转接板的V引脚接到ESP32开发板的5V引脚(如上图左下角红色框中的引脚)。因为使用了WIFI功能,需要更高的电压,原来接的是3.3V电源引脚,现在改成5V电源引脚。

图片.png 

接线效果图

 

3. 手机遥控

下载手机遥控APP地址:

http://xiangdashuai.com/xiangdashuai/download/index.html

扫描如下二维码安装:

图片.png 

安装完成手机遥控APP后,打开,界面如下:

图片.png 

手机APP界面

 

 


手机APP使用UDP协议发送指令,各按键按下和抬起发送的指令如下表。

指令表

按键

按下指令

抬起指令

1

1_DOWN

1_UP

2

2_DOWN

2_UP

3

3_DOWN

3_UP

4

4_DOWN

4_UP

5

5_DOWN

5_UP

6

6_DOWN

6_UP

7

7_DOWN

7_UP

8

8_DOWN

8_UP

9

9_DOWN

9_UP

A

A_DOWN

A_UP

B

B_DOWN

B_UP

C

C_DOWN

C_UP

D

D_DOWN

D_UP

E

E_DOWN

E_UP

 

4. 程序代码

完整程序代码如下:

import machine

import network

import socket

 

#创建串口对象

uart = machine.UART(2, baudrate=9600) #此语句可以使用,2号串口就是tx=17, rx=16,不指定波特率就不能用

 

# 创建AP模式的WIFI对象

apWLAN = network.WLAN(network.AP_IF)

apWLAN.config(essid='XDS',password='',authmode=0)

apWLAN.active(True)   

 

# 创建UDP套接字对象

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 绑定本地IP和端口

udp_socket.bind(("0.0.0.0", 8080))

 

# 接收数据

while True:

    recv_data_byte_array, sender_info = udp_socket.recvfrom(1024)

    recv_data_string = recv_data_byte_array.decode('utf-8') #接收的数据格式是字节数组,把字节数组转换成字符串

    if recv_data_string=="1_DOWN": #按下“1”按钮

        #发送播放第1首指令

        uart.write(bytearray(b'\x7E\xFF\x06\x03\x00\x00\x01\xFE\xF7\xEF'))

    elif recv_data_string=="2_DOWN": #按下“2”按钮

        #发送播放第2首指令

        uart.write(bytearray(b'\x7E\xFF\x06\x03\x00\x00\x02\xFE\xF6\xEF'))

    elif recv_data_string=="3_DOWN": #按下“3”按钮

        #发送播放第3首指令

        uart.write(bytearray(b'\x7E\xFF\x06\x03\x00\x00\x03\xFE\xF5\xEF'))

    elif recv_data_string=="4_DOWN": #按下“4”按钮

        #发送播放第4首指令

        uart.write(bytearray(b'\x7E\xFF\x06\x03\x00\x00\x04\xFE\xF4\xEF'))

    elif recv_data_string=="5_DOWN": #按下“5”按钮

        #发送播放第5首指令

        uart.write(bytearray(b'\x7E\xFF\x06\x03\x00\x00\x05\xFE\xF3\xEF'))

    elif recv_data_string=="6_DOWN": #按下“6”按钮

        #发送播放第6首指令

        uart.write(bytearray(b'\x7E\xFF\x06\x03\x00\x00\x06\xFE\xF2\xEF'))

                

5. 实验结果

参见实验结果视频。

手机上先连接XDSWIFI信号,然后打开遥控APP,开始操作测试。


附件:
【象大帅】Python编程MP3播放器-手机WIFI遥控播放.pdf
MP3播放器-手机WIFI遥控播放.py