我的想法是,我想使用覆盆子pi和Python作为编程语言制作带有传感器的汽车,以避免障碍。
因此,我想为传感器制作一个单独的线程,以便继续监控传感器,当它检测到障碍物时,它应该直接中断主程序(将运动命令发给电机),并让汽车停止
如果您可以给我代码示例或仅使用虚拟传感器进行模拟。
如果有更好的做法请咨询。
答案 0 :(得分:1)
因为没有人能够帮助我,我找不到解释这个概念的教程。 最后我想办法做到这一点,我会分享它,以便其他人可以充分利用它,或者如果有一个更好的做法,建议我。
import time
from threading import Thread, current_thread
def monitorSensorThread(arg1):
print "started sensor montiring"
while True:
if(thereisobstacle):
current_thread().interrupt()
def thereisobstacle():
## just virtual sensor to tell if there is an obstacles
time.sleep(5)
return True
def stopMovmentAndLookfornewdirection():
##the interrupt fuction
## in this function i will write somthing to stop the motor and look for another way
print "stoped"
sensorThread = Thread(target=monitorSensorThread, args=(1,))
sensorThread.daemon=True
sensorThread.start()
try:
moveforward()
except KeyboardInterrupt:
print "the main thread interrupted"