1 package nl
.ru
.des
.behaviours
;
3 import lejos
.hardware
.motor
.EV3LargeRegulatedMotor
;
4 import lejos
.robotics
.subsumption
.Behavior
;
5 import nl
.ru
.des
.sensors
.TouchSensor
;
7 public class AvoidLowObjectBehaviour
implements Behavior
{
8 private static final long BACKWARDSTIME
= 250;
9 private static final long TURNTIME
= 250;
10 private TouchSensor rightTouch
, leftTouch
;
11 private boolean avoidDirection
;
12 private boolean suppressed
;
13 private EV3LargeRegulatedMotor leftMotor
, rightMotor
;
15 public AvoidLowObjectBehaviour(EV3LargeRegulatedMotor leftMotor
, EV3LargeRegulatedMotor rightMotor
,
16 TouchSensor leftTouchSensor
, TouchSensor rightTouchSensor
) {
17 rightTouch
= rightTouchSensor
;
18 leftTouch
= leftTouchSensor
;
19 this.leftMotor
= leftMotor
;
20 this.rightMotor
= rightMotor
;
24 public boolean takeControl() {
25 if(leftTouch
.getCurrentStatus()){
26 avoidDirection
= false;
29 if(rightTouch
.getCurrentStatus()){
30 avoidDirection
= true;
37 public void action() {
39 int leftacc
= leftMotor
.getAcceleration();
40 int rightacc
= rightMotor
.getAcceleration();
41 leftMotor
.setAcceleration(10000);
42 rightMotor
.setAcceleration(10000);
44 rightMotor
.backward();
45 long time
= System
.currentTimeMillis();
46 while (!suppressed
&& System
.currentTimeMillis() - time
> BACKWARDSTIME
) {
55 rightMotor
.backward();
57 time
= System
.currentTimeMillis();
58 while (!suppressed
&& System
.currentTimeMillis() - time
> TURNTIME
) {
63 leftMotor
.setAcceleration(leftacc
);
64 leftMotor
.setAcceleration(rightacc
);
68 public void suppress() {