1 package nl
.ru
.des
.behaviours
;
3 import lejos
.hardware
.Button
;
4 import lejos
.hardware
.motor
.EV3LargeRegulatedMotor
;
5 import lejos
.robotics
.SampleProvider
;
6 import lejos
.robotics
.subsumption
.Behavior
;
7 import nl
.ru
.des
.LCDPrinter
;
9 public class AvoidHighObjectBehaviour
extends ReactiveBehaviour
implements Behavior
{
10 private static final long TURNTIME
= 250;
12 private EV3LargeRegulatedMotor leftMotor
;
13 private EV3LargeRegulatedMotor rightMotor
;
16 public AvoidHighObjectBehaviour(EV3LargeRegulatedMotor leftMotor
, EV3LargeRegulatedMotor rightMotor
,
17 SampleProvider ultraSone
) {
19 this.leftMotor
= leftMotor
;
20 this.rightMotor
= rightMotor
;
21 LCDPrinter
.print("Place object in turn radius and press a key");
22 Button
.waitForAnyPress();
28 public boolean takeControl() {
30 return samples
[0] < limit
;
34 public void action() {
36 rightMotor
.backward();
38 long time
= System
.currentTimeMillis();
39 while (!suppressed
&& System
.currentTimeMillis() - time
> TURNTIME
) {
43 rightMotor
.stop(true);