5 import lejos
.hardware
.Button
;
6 import lejos
.hardware
.motor
.EV3LargeRegulatedMotor
;
7 import lejos
.hardware
.sensor
.EV3UltrasonicSensor
;
8 import lejos
.robotics
.SampleProvider
;
10 public class AvoidHighObjectBehaviour
extends AvoidBehaviour
{
11 private SampleProvider ultrasoneSample
;
12 private float[] samples
;
15 public AvoidHighObjectBehaviour(EV3LargeRegulatedMotor leftMotor
, EV3LargeRegulatedMotor rightMotor
,
16 EV3UltrasonicSensor ultraSone
) {
17 super(leftMotor
, rightMotor
, new File("detect.wav"));
18 ultrasoneSample
= ultraSone
.getDistanceMode();
19 samples
= new float[ultrasoneSample
.sampleSize()];
23 private void calibrate(){
24 LCDPrinter
.print("Calibrate ultrasone...");
25 LCDPrinter
.print("Place object in");
26 LCDPrinter
.print(" turn radius");
27 Button
.waitForAnyPress();
28 ultrasoneSample
.fetchSample(samples
, 0);
30 LCDPrinter
.print("Limit: " + limit
);
34 public boolean takeControl() {
35 ultrasoneSample
.fetchSample(samples
, 0);
36 return samples
[0] < limit
;