当运行两个在Raspberry Pi上使用python gpio引脚的程序时,一个变慢。 一个是磁传感器,另一个是温度和湿度传感器。后者是减速的。它不是每2秒打印一次温度,而是每隔5到10秒打印一次。如果它在磁传感器操作中运行得更快。
答案 0 :(得分:1)
看起来你的问题不是Python,而是IO差距。即使您使用不同的引脚,Raspberry的GPIO也使用相同的总线处理所有引脚,因此一个进程需要等待其他用途而不是时间。
你可以通过解决方案解决这个问题,但所有这些都可能类似于统一程序。
基本意识:将这两个程序混合在一起。用于统治所有读取的单一进程/线程。
改进了ideia:将代码分为三个进程。其中两个将只读/写一个数组并使用该值来自GPIO。其中一个过程将是您的主要过程,并将SharedArray来处理GPIO数据。请记住,从RAM读取比从GPIO读取更好/更快,因此只需使用Array来更新IO的状态。您可以使用一个数组来设置新值,使用另一个数组来存储实际值。
前段时间我使用了一些Sockets来通过某些线程广播一些IO数据,并可以获得更新的数据(来自摄像头的图片)并与线程共享,间隙为100ms,只是避免了IO间隙。所以你可以使用SocketServer lib和一些workers来获得类似的结果来传播信息。
答案 1 :(得分:0)
不要同时运行程序,而是尝试一个接一个地运行它们。显然,Raspberry Pi由于其尺寸和成本而具有硬件限制。我建议的是一次只能运行一个程序。您可以将它们放在运行程序1的基本循环中,然后运行程序2,然后返回循环的开头。