ev3 超声波传感器在基于 lejos 行为的编程中的使用
usage of ev3 ultrasonic sensor in lejos behavior based programming
我使用的是 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 请求过载。与程序运行的速度相比,声音可能会很慢。
我使用的是 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 请求过载。与程序运行的速度相比,声音可能会很慢。