小编Ste*_*oth的帖子

Raspberry Pi- GPIO GP事件

我正在使用我的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)

计数器和检测运动多次用于减少传感器拾取的误报数.

python events motion gpio raspberry-pi

19
推荐指数
2
解决办法
4万
查看次数

JPanel无法正确绘制

我是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方法有关,但我看到的任何地方似乎都没有解决方案.

任何帮助都会很棒,谢谢!

java geometry swing jpanel paintcomponent

4
推荐指数
1
解决办法
1483
查看次数

标签 统计

events ×1

geometry ×1

gpio ×1

java ×1

jpanel ×1

motion ×1

paintcomponent ×1

python ×1

raspberry-pi ×1

swing ×1