我正在做一个可以使用树莓和python远程控制的机器人。
我有一个Flask Rest API在服务器上运行,当用户按下按钮时,它会向机器人发送命令。假设我按下按钮向前移动,只有当所有传感器都没有检测到任何附近的物体时,机器人才能移动。机器人继续运行,直到按下停止按钮或任何传感器到达物体。
我的疑问是:如何让API代码监听任何请求,并让传感器同时测量距离?如果机器人正在运行,我想我应该做一个"while True",直到传感器到达一个物体,但它会锁定程序,如果我按下停止按钮,它不会停止,因为有无尽的循环。。。
每当机器人向任何方向移动时,我都需要传感器处于活动状态,同时API也在监听。
我搜索了关于多处理和子处理模块的内容,但并不完全是我需要做什么
有什么建议吗?
感谢
多线程可能是您想要的。
下面是一个非常简单的示例,您可以首先在屏幕上看到线程2打印的"2"。
import threading
import time
def loopfunc1():
time.sleep(3)
print('1')
def loopfunc2():
print('2')
# launch thread 1
t = threading.Thread(target=loopfunc1)
t.start()
# not waiting thread 1 finish
# launch thread 2
# thread 2 print '2' on screen first
t = threading.Thread(target=loopfunc2)
t.start()