我使用的是 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/