import machine import network import socket #A电机接小车左侧2个轮子电机,对应引脚号:D1(5号引脚,PWM调速)、D3(0号引脚,使用高低电平区分方向) #B电机接小车右侧2个轮子电机,对应引脚号:D2(4号引脚,PWM调速)、D4(2号引脚,使用高低电平区分方向) pin5 = machine.Pin(5, machine.Pin.OUT) #设置5号引脚为输出引脚 pin0 = machine.Pin(0, machine.Pin.OUT) #设置0号引脚为输出引脚 pin4 = machine.Pin(4, machine.Pin.OUT) #设置4号引脚为输出引脚 pin2 = machine.Pin(2, machine.Pin.OUT) #设置2号引脚为输出引脚 # 创建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": #判断,如果按下“前进”键 #驱动小车前进 #驱动A电机正转 pin5.value(1) #是否转动,0表示停止,1表示转动 pin0.value(0) #控制方向,0表示正转,1表示反转 #驱动B电机正转 pin4.value(1) #是否转动,0表示停止,1表示转动 pin2.value(0) #控制方向,0表示正转,1表示反转 elif recv_data_string=="E_DOWN": #判断,如果按下“后退”键 #驱动小车后退 #驱动A电机反转 pin5.value(1) #是否转动,0表示停止,1表示转动 pin0.value(1) #控制方向,0表示正转,1表示反转 #驱动B电机反转 pin4.value(1) #是否转动,0表示停止,1表示转动 pin2.value(1) #控制方向,0表示正转,1表示反转 elif recv_data_string=="B_DOWN": #判断,如果按下“左转”键 #驱动小车左转 #驱动A电机反转 pin5.value(1) #是否转动,0表示停止,1表示转动 pin0.value(1) #控制方向,0表示正转,1表示反转 #驱动B电机正转 pin4.value(1) #是否转动,0表示停止,1表示转动 pin2.value(0) #控制方向,0表示正转,1表示反转 elif recv_data_string=="D_DOWN": #判断,如果按下“右转”键 #驱动小车右转 #驱动A电机正转 pin5.value(1) #是否转动,0表示停止,1表示转动 pin0.value(0) #控制方向,0表示正转,1表示反转 #驱动B电机反转 pin4.value(1) #是否转动,0表示停止,1表示转动 pin2.value(1) #控制方向,0表示正转,1表示反转 else: #驱动小车停止A电机和B电机 pin5.value(0) #1高电平时全速行驶,0停止 pin0.value(0) #1高电平时全速行驶,0停止 pin4.value(0) #1高电平时全速行驶,0停止 pin2.value(0) #1高电平时全速行驶,0停止 |