通过HTTP请求在Raspberry Pi上进行异步步进电机控制

时间:2018-06-26 09:20:47

标签: python raspberry-pi bottle gevent

我在这里摆姿势,并且正在寻找一些想法,以便在接受http请求时启动对树莓派上的步进电机的控制。

这是我所做的:

首先,我使用RPi.GPIO创建了一个函数。基本上,此函数将采用一个参数,即我希望它执行多少步骤。 然后,我用Bottle启动了一个可以接收HTTP请求的服务器。经过动态路由后,我可以使用变量调用前一个函数,该变量可以通过浏览器或本地网络中的vd.setOnCompletionListener(new android.media.MediaPlayer.OnCompletionListener() { @Override public void onCompletion(android.media.MediaPlayer arg0) { vd.start(); } }); 进行控制。

但这是我期望的结果:

我需要服务器发出一个请求,以顺时针方向旋转电动机,并再次请求停止电动机。考虑到我的服务器将要完成当前请求,直到它能够接受另一个请求,我的代码肯定不会这样做。

以下是我的一些想法:

从本质上讲,在请求转cw / ccw时,服务器需要启动无限循环以保持电动机运行。并且,当服务器发出停止请求时,它将停止该无限循环并断开所有极点以节省电源。

我的想法之一是将bottle与基于基顿的服务器或其他多线程服务器一起使用。它确实同时需要多个请求,但问题是我不知道如何向先前的请求发送消息并告诉它停止。

另一个想法是让瓶子服务器以工作模式(cw / ccw / idle)打开和写入JSON文件。然后运行另一个python脚本以定期读取此文件,并采取相应的措施。当然可以,但是我担心性能。我认为我不能让python脚本以很高的速率读取文件,而较低的速率会使请求响应速度不那么快。

感谢您阅读本文。我的问题是如何向基于gevent的服务器中正在运行的线程发送消息并使其停止。

0 个答案:

没有答案