3 import lejos
.hardware
.motor
.EV3LargeRegulatedMotor
;
4 import lejos
.hardware
.sensor
.EV3TouchSensor
;
5 import lejos
.robotics
.SampleProvider
;
6 import lejos
.utility
.Delay
;
8 public class AvoidLowObjectBehaviour
extends AvoidBehaviour
{
9 private SampleProvider rightSample
, leftSample
;
10 private float[] samples
;
12 public AvoidLowObjectBehaviour(EV3LargeRegulatedMotor leftMotor
, EV3LargeRegulatedMotor rightMotor
,
13 EV3TouchSensor leftTouch
, EV3TouchSensor rightTouch
) {
14 super(leftMotor
, rightMotor
, "bump.wav");
15 rightSample
= rightTouch
.getTouchMode();
16 leftSample
= leftTouch
.getTouchMode();
17 samples
= new float[rightTouch
.sampleSize()];
21 public boolean takeControl() {
22 //Check if left sensor is pressed
23 leftSample
.fetchSample(samples
, 0);
24 boolean takeControl
= false;
26 super.setAvoidDirection(false);
30 //Check if right sensor is pressed
31 rightSample
.fetchSample(samples
, 0);
33 super.setAvoidDirection(true);
40 public void action() {
41 rightMotor
.backward();