import RPi.CPIO as GPIO
from time import sleep
in1 = 24
in2 = 23
en = 25 # 定义输出引脚
temp1 = 1
GPIO.setmode(GPIO.BCM) # 定义树莓派gpio引脚以BCM方式编号
GPIO.setup(in1, GPIO.OUT)
GPIO.setup(in2, GPIO.OUT)
GPIO.setup(in3, GPIO.OUT)
GPIO.setup(in4, GPIO.OUT)
GPIO.setup(en, GPIO.OUT) # 使能gpio输出
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
GPIO.output(in3, GPIO.LOW)
GPIO.output(in4, GPIO.LOW)
p = GPIO.PWM(en, 1000) # 1000为输出频
p.start(25)
print("请输入相应指令控制车移动")
print("w是前进,s是后退,a是左转,d是右转,p是停止")
print("\n")
while (1):
x = input()
if x == 'w':
GPIO.output(in1, GPIO.HIGH)
GPIO.output(in2, GPIO.LOW)
GPIO.output(in3, GPIO.HIGH)
GPIO.output(in4, GPIO.LOW)
print("前进")
x = 'z'
elif x == 's':
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.HIGH)
GPIO.output(in3, GPIO.LOW)
GPIO.output(in4, GPIO.HIGH)
print("后退")
x = 'z'
elif x == 'a':
p.ChangeDutycle(5)
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.HIGH)
GPIO.output(in3, GPIO.HIGH)
GPIO.output(in4, GPIO.LOW)
print("左转")
x = 'z'
elif x == 'd':
p.ChangeDutycle(5)
GPIO.output(in1, GPIO.HIGH)
GPIO.output(in2, GPIO.LOW)
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.HIGH)
print("右转")
x = 'z'
elif x == 'p':
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
print("停")
x = 'z'
elif x == '1':
print("低速")
p.ChangeDutycle(25)
elif x == '2':
print("中速")
p.ChangeDutycle(50)
elif x == '3':
print("高速")
p.ChangeDutycle(75)
elif x == 'e':
GPIO.cleanup()
print("清除")
break
else:
print("<< 注意 >>")
print("请输入数据继续")