我用的是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;
}但我认为这不是正确的方法。我怎样才能正确地实现它呢?
谢谢你的帮助
发布于 2016-01-02 03:08:01
似乎你只从超声波传感器中提取了一次距离样本。从SampleProvider中获取一个getDistanceMode()对象,将其存储在一个全局变量中,并在每次需要新示例时调用fetchSample()。
但是,您可能需要确保不要太频繁地要求传感器提供新的样本,因为这可能会使其重载ping请求。与程序运行的速度相比,声音可能是慢的。
https://stackoverflow.com/questions/30515898
复制相似问题