如何编程传感器来中断python中的主线程或程序

时间:2018-01-23 12:45:05

标签: python multithreading raspberry-pi python-multithreading autonomy

我的想法是,我想使用覆盆子pi和Python作为编程语言制作带有传感器的汽车,以避免障碍。

因此,我想为传感器制作一个单独的线程,以便继续监控传感器,当它检测到障碍物时,它应该直接中断主程序(将运动命令发给电机),并让汽车停止

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

如果有更好的做法请咨询。

1 个答案:

答案 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"