我正在使用我的Raspberry Pi上的GPIO引脚和PIR传感器来检测运动.当传感器检测到运动时,我想将软件移动到其他功能上.
此刻,为了检测运动,我的程序在等待运动被检测到的同时不断地循环运行.虽然目前这种方法有效,但在将来使用时,这将是非常低效的,我希望通过将其分配给一个事件来改进这一点.
有没有办法将我的GPIO输入绑定到程序检测到的事件,而无需手动运行循环.
这是我当前的检测运动循环:
var = 1
counter = 0
while var == 1:
if GPIO.input(7):
counter += 1
time.sleep(0.5)
else:
counter = 0
time.sleep(1)
if counter >= 3:
print "Movement!"
captureImage()
time.sleep(20)
Run Code Online (Sandbox Code Playgroud)
计数器和检测运动多次用于减少传感器拾取的误报数.
我是Java和Swing的新手,这也是我的第一篇文章,如果它没有多大意义,那就很抱歉.
我想要做的是当我点击JPanel时,我希望它在我点击的位置添加一个圆圈.目前,所有似乎都发生的事情就是当我点击时,我要添加的JPanel中会出现一个小的灰色方块,但我似乎找不到任何方法让它像圆圈一样绘制.
我有一个扩展JPanel的类叫做"Ball",这是我点击时添加的内容.目前,我并不担心它在正确的位置,只是为了正确地抽球.以下是我的"Ball"类的代码:
package paintsliders;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
class Ball extends JPanel{
private int x,y,w,h;
//I will use this constructor to put the ball in the correct location later.
Ball(){
/*this.w = 100;
this.h = 100;
this.x = 200;
this.y = 200;*/
}
//draw the ball
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(200,200,10,10);
g.setColor(Color.RED);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以猜测它与paintComponent方法有关,但我看到的任何地方似乎都没有解决方案.
任何帮助都会很棒,谢谢!