java - ev3超声波传感器在lejos基于行为的编程中的使用

标签 java behavior lego-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;
    }

但我认为这不是正确的方法。我怎样才能以正确的方式实现它?

感谢您的帮助,

最佳答案

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

但是,您可能需要确保不要过于频繁地向传感器请求新样本,因为这可能会因 ping 请求而使其过载。与程序运行的速度相比,声音可能会很慢。

关于java - ev3超声波传感器在lejos基于行为的编程中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30515898/

相关文章:

java - 为什么我在使用 JSch 时会看到乱七八糟的输出?

java - 哪种静态分析工具用于扫描从一种方法到另一种方法的数据流?

testing - 如何在测试中启用敏捷行为?

c - Bricx 命令中心出现奇怪的编译器错误

c - 如何用C语言编写LEGO Mindstorms EV3?

java - 类声明 - 公共(public)和默认

jquery - IE 上奇怪的 jquery .cycle 插件下一个/上一个按钮行为

tcp - 监听应用程序 (winsock2) 对端口扫描 (Syn Scan) 的行为

用于 Lego NXT 编程的 C++ OOP 库

java - 如何在 Android 中使用头文件 (.h)