Python编程小车零基础开发教程(MAKER-ESP32电机驱动一体化开发板)

手机遥控四轮小车完整程序

1. 课程介绍
2. 安全注意事项
3. 安装MicroPython编程软件Thonny
4. 点亮ESP32开发板自带LED小灯
5. 给引脚设置数字值-点亮ESP32开发板外接LED小灯
6. 电机驱动-驱动M1电机转动
7. 手机遥控四轮小车完整程序

如果文中图片不清晰,请从附件中下载PDF格式文件阅读。

1. 课程目标

图片.png 

MAKER-ESP32电机驱动一体化开发板

MAKER-ESP32开发板集成有ESP32芯片及电机驱动芯片,一块板即可实现4路电机驱动,无需使用额外电机驱动板。

电机驱动口对应的ESP32引脚号,开发板上有标注。

M1电机驱动口对应ESP32引脚号:2713

M2电机驱动口对应ESP32引脚号:42

M3电机驱动口对应ESP32引脚号:1712

M4电机驱动口对应ESP32引脚号:1514

只要编程给电机驱动口对应的引脚号设置一高一低电平,则可使得电机转动。如果两个引脚都设置为低电平,则电机停止转动。

    手机遥控APP的按钮发送指令如下:

(1)按下A键(指令:A_DOWN),前进。抬起A键(指令:A_UP),停止。

(2)按下B键(指令:B_DOWN),左转。抬起B键(指令:B_UP),停止。

(3)按下C键(指令:C_DOWN),前进。抬起C键(指令:C_UP),停止。

(4)按下D键(指令:D_DOWN),前进。抬起D键(指令:D_UP),停止。

图片.png 

 


手机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

2. 硬件接线

     1左前方电机两根线接开发板上的M1驱动口

2左后方电机两根线接开发板上的M2驱动口

3右前方电机两根线接开发板上的M3驱动口

4右后方电机两根线接开发板上的M4驱动口

3. 程序代码

可在附件中下载完整代码。

完整代码如下:

import machine

import network

import socket

 

'''

1M1电机驱动口对应2713号引脚,M1接小车左前方电机。

2M2电机驱动口对应42号引脚接,M2接小车左后方电机。

3M3电机驱动口对应1712号引脚,M3接小车右前方电机。

4M4电机驱动口对应1514号引脚,M4接小车右后方电机。

'''

#电机1,创建27号引脚和13号引脚对象

pin27 = machine.Pin(27, machine.Pin.OUT)

pin13 = machine.Pin(13, machine.Pin.OUT)

 

#电机2,创建4号引脚和2号引脚对象

pin4 = machine.Pin(4, machine.Pin.OUT)

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

 

#电机3,创建17号引脚和12号引脚对象

pin17 = machine.Pin(17, machine.Pin.OUT)

pin12 = machine.Pin(12, machine.Pin.OUT)

 

#电机4,创建15号引脚和14号引脚对象

pin15 = machine.Pin(15, machine.Pin.OUT)

pin14 = machine.Pin(14, machine.Pin.OUT)

 

# 创建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=="A_DOWN": #按下前进按钮

        #电机M1,左前方电机,向前转

        pin27.value(1)

        pin13.value(0)

        #电机M2,左后方电机,向前转

        pin4.value(1)

        pin2.value(0)

        #电机M3,右前方电机,向前转

        pin17.value(1)

        pin12.value(0)        

        #电机M4,右后方电机,向前转

        pin15.value(1)

        pin14.value(0)

    elif recv_data_string=="B_DOWN": #按下左旋转进按钮

        #电机M1,左前方电机,向后转

        pin27.value(0)

        pin13.value(1)

        #电机M2,左后方电机,向后转

        pin4.value(0)

        pin2.value(1)

        #电机M3,右前方电机,向前转

        pin17.value(1)

        pin12.value(0)        

        #电机M4,右后方电机,向前转

        pin15.value(1)

        pin14.value(0)

    elif recv_data_string=="D_DOWN": #按下右旋转进按钮

        #电机M1,左前方电机,向前转

        pin27.value(1)

        pin13.value(0)

        #电机M2,左后方电机,向前转

        pin4.value(1)

        pin2.value(0)

        #电机M3,右前方电机,向后转

        pin17.value(0)

        pin12.value(1)        

        #电机M4,右后方电机,向后转

        pin15.value(0)

        pin14.value(1)

    elif recv_data_string=="E_DOWN": #按下后退按钮

        #电机M1,左前方电机,向后转

        pin27.value(0)

        pin13.value(1)

        #电机M2,左后方电机,向后转

        pin4.value(0)

        pin2.value(1)

        #电机M3,右前方电机,向后转

        pin17.value(0)

        pin12.value(1)        

        #电机M4,右后方电机,向后转

        pin15.value(0)

        pin14.value(1)

    else : #抬起按钮

        #电机M1,左前方电机,停止

        pin27.value(0)

        pin13.value(0)

        #电机M2,左后方电机,停止

        pin4.value(0)

        pin2.value(0)

        #电机M3,右前方电机,停止

        pin17.value(0)

        pin12.value(0)

        #电机M4,右后方电机,停止

        pin15.value(0)

        pin14.value(0)

 

打开Python的编程软件Thonny。点击右下角文字,选择“MicroPython ESP32 USB ******”。

图片.png 

如下图,把上面的完整代码复制到如下1”处的代码编写区。

图片.png 

如下图,点击工具栏上的“保存”按钮:

图片.png 

如下图,选择MicroPython设备”:

图片.png 

如下图,输入main.py”,然后点击“确认”。输入后仔细检查,一定不能输错!

图片.png 

如下图,保存完毕后,程序文件名会出现在左下角MicroPython设备”窗口中:

图片.png 

4. 下载并安装手机遥控APP

访问如下网址:

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

使用手机浏览器扫描如下图中的二维码,即可下载安装手机遥控APP

图片.png 

5. 实验结果

按如上步骤做好后,按如下步骤进行测试:

(1)“硬件接线”一节,给开发板接好电机。

(2)给开发板接上电池。

(3)手机连接到开发板发射的WIFI热点“XDS”。

(4)在手机上打开“象大帅”APP,点击上箭头测试电机是否转动。

具体操作可参看实验结果视频。


附件:
【象大帅】手机遥控四轮小车完整程序.pdf
手机遥控四轮小车完整程序.py