我最近用我的覆盆子pi 3和锉刀拉伸构造了一辆小型机器人车。我目前处于可以使用插入pi USB端口的xbox360控制器驱动汽车的地方。我的问题是我不喜欢ssh进入pi并运行我编写的脚本以便使用机器人(robot.py)。
我想要做的是在后台运行一个脚本,其工作原理如下:
#while true
#if joystick is detected
#robotoffflag=true
#if startup button is pressed on the joystick && robotoffflag
#robotoffflag=false
#run robot.py to control the robot
#robot.py already has controls for shutting down the robot
#which disables the motors and sets robotoffflag to true
这样,如果我的pi通电,我可以随时按下控制器上的按钮并开始使用机器人。然后,当我完成后,按控制器上的另一个按钮以禁用机器人。
我的问题是,我是否以正确的方式解决这个问题?在后台运行脚本基本上是一个带有条件的无限循环对我来说似乎很愚蠢。有更多事件驱动会更好吗?
答案 0 :(得分:0)
这是我可能会做的事情,想到有点黑客。将python代码放入循环中,在每个循环结束时添加一个非常短的睡眠以限制cpu使用。然后在tmux的会话中运行python脚本,当然是分离的。然后python脚本将运行,直到tmux会话被终止,即使你的ssh会话退出也是如此。顺便说一句,tmux只是一个示例实用程序。还有其他人。 当然,你可以在一个信号和等待机制中获得花哨和实现循环,这将等待来自你的控制器的信号,然后从操作系统守护进程启动它。取决于你想要的深度......