ev3超声波传感器在lejos行为编程中的应用

时间:2015-05-28 19:51:21

标签: java behavior mindstorms lejos-nxj

我使用ev3超声波传感器。我正在写一个基于行为的lejos代码。当超声波传感器检测到一个不超过30厘米的物体时,我想做一些任务。这是我的代码:

public UltrasonicSensor(Port port)
    {
        sonar = new EV3UltrasonicSensor(port);
        sonar.getDistanceMode().fetchSample(value, 0);
    }

    @Override
    public boolean takeControl() {
        // TODO Auto-generated method stub
        return value[0] < 0.3;

    public void action() {
        ....
    }

    @Override
    public void suppress() {
        // TODO Auto-generated method stub
        suppressed = true;
    }

但我认为这不是正确的方法。我该如何以正确的方式实现它?

感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

看起来您只是从超声波传感器获取一次距离样本。从SampleProvider获取getDistanceMode()对象,将其存储在全局变量中,并在每次需要新样本时调用fetchSample()

但是,您可能希望确保不要经常向传感器询问新样本,因为这可能会使ping请求超载。与程序运行速度相比,声音可能会很慢。