我正在做一个有关制作可控地面储罐的家庭项目。我正在使用RPi 3B +和电动机驱动器控制器板来驱动电动机。我一直在使用tightvnc服务器通过wifi与手机连接,但是,我计划迁移到临时网络。当然,我可以为希望电机旋转的每个方向输入一行代码,但这是不便且无效的。我以前见过人们这样做,但是,我没有足够的经验来编写这种代码。我需要一个程序,在运行该程序时,它会在python中打开虚拟触摸屏拨动杆。上下移动此代码还需要发送相同(或非常相似)的代码行。我将显示当前用于运行电动机的代码。谢谢。
我一直在尝试谷歌搜索,并在GitHub上查找此源代码,但是,到目前为止还算运气。
import RPi.GPIO as gpio
import time
def init(): #setup for the gpio pins being used
gpio.setmode(gpio.BCM)
gpio.setup(17, gpio.OUT)
gpio.setup(22, gpio.OUT)
gpio.setup(21, gpio.OUT)
gpio.setup(20, gpio.OUT)
def forward(tf):
init()
gpio.output(22, False) #Low
gpio.output(17, True) #High
gpio.output(21, False)
gpio.output(20, True)
time.sleep(tf)
gpio.cleanup()
def reverse(tf):
init()
gpio.output(22, True) #High
gpio.output(17, False) #Low
gpio.output(21, True)
gpio.output(20, False)
time.sleep(tf)
gpio.cleanup()
def alternate(tf):
init()
gpio.output(22, True) #Clockwise Motor 1
gpio.output(17, False) #Counter-Clockwise Motor 1
gpio.output(21, False) #Clockwise Motor 2
gpio.output(20, True) #Counter-Clockwise Motor 2
time.sleep(tf)
gpio.cleanup()
def RunPWM(tf):
init()
pwm_22 = gpio.PWM(22,100) #setting up PWM for gpio pin 22 & 21 out of 100%
pwm_21 = gpio.PWM(21,100)
pwm_22.start(20) #runs the gpio pins 22 & 21 at a pulse width of 20/100
pwm_21.start(20)
time.sleep(tf)
gpio.cleanup()
print("forward")
forward(2)
print("reverse")
reverse(2)
print("alternate")
alternate(2)
print("PWM")
RunPWM(2)
此代码运行良好,并且是一种很好的测试方法,可确保代码运行良好且所有硬件均处于良好状态并且可以正常工作。除非我在RPi上打错了打字的字样,否则它始终可以完美地运行以进行测试,但是,您无法使用触摸屏拨动杆使用此代码来控制地板箱。如果有人对我可以采用的其他方法有任何想法,或者有人可以编写一些符合此要求的代码,将不胜感激,谢谢!