作为我尝试学习python的第一个项目之一,我决定制作一辆遥控车。但是现在我长期以来一直困在同样的2个问题上,并且无法找到真正的好答案。在我的代码中,我通过手机上的蓝牙连接到我的覆盆子。当我发送简单的命令时,护理会移动。但我还添加了3个传感器,因此我可以构建某种自动驾驶仪,在这里,汽车可以躲避路径中的物体 我的代码:https://pastebin.com/ggUFcrpT
def serialread():
while True:
line = ser.read()
print line
if line == 's':
ser.write("Abandom ship! \n")
resetmotorpins()
elif line == 'f':
ser.write("Going forward, captain! \n")
resetmotorpins()
forward()
elif line == 'r':
ser.write("Dizzy! \r\n")
resetmotorpins()
right()
elif line == 'l':
ser.write("If nothing goes right, go left! \n")
resetmotorpins()
left()
elif line == 'b':
ser.write("nah fam, i'm out, f*ck this shiet. \r\n")
resetmotorpins()
reverse()
elif line == "t":
ser.write("autoPilot activate \n")
auto = 1
resetmotorpins()
while auto == 1:
line = ser.read()
if line == "y":
ser.write("autoPilot deactivated \n")
resetmotorpins()
auto = 0
else:
meet()
elif line == "m":
meet()
elif line == 'o':
servomotorright()
elif line == 'x':
servomotorleft()
elif line == 'q':
waardesVragen()
我认为它停留在line = ser.read()
并且需要一行来运行代码。但我不知道如何让它不断循环,并在发送信件/命令时进行一些中断。
最重要的是,我尝试初始化多线程,这样我就可以不断地从3传感器打印我的值,并在接近击中对象时进行中断。但是多线程似乎不起作用,一旦我进入传感器值打印,它就永远不会离开那个循环并且不再听我的蓝牙连接。 有什么建议?我希望我发布这个权利,这是我的第一个问题。 我在覆盆子pi B上使用python 2.7.5