2

我的想法是,我想用树莓派和 Python 作为编程语言来制造带有避障传感器的汽车。

因此,我想为传感器创建一个单独的线程以继续监控传感器,当它检测到障碍物时,它应该直接中断主程序(向电机发出运动命令),让汽车停下来

如果您可以给我代码示例或仅使用虚拟传感器进行模拟。

或者如果有更好的做法请指教。

4

1 回答 1

2

因为没有人能帮助我,而且我找不到解释这个概念的教程。最后我想出了一种方法来做到这一点,我会分享它,以便其他人可以有希望地使用它,或者如果有的话建议我一个更好的做法。

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"
于 2018-02-03T14:47:47.200 回答