updated lcd printer and better low object avoidance behaviour
[des2015.git] / mart / ev3 / ex1 / nl / ru / des / AvoidBehaviour.java
1 package nl.ru.des;
2
3 import lejos.hardware.motor.EV3LargeRegulatedMotor;
4 import lejos.robotics.subsumption.Behavior;
5
6 public abstract class AvoidBehaviour implements Behavior {
7 protected EV3LargeRegulatedMotor rightMotor, leftMotor, avoidMotor;
8 private String audioFile;
9
10 public AvoidBehaviour(EV3LargeRegulatedMotor leftMotor, EV3LargeRegulatedMotor rightMotor, String audioFile){
11 this.rightMotor = rightMotor;
12 this.leftMotor = leftMotor;
13 this.avoidMotor = leftMotor;
14 this.audioFile = audioFile;
15 }
16
17 public void setAvoidDirection(boolean avoidLeft){
18 avoidMotor = avoidLeft ? leftMotor : rightMotor;
19 }
20
21 @Override
22 public void action() {
23 WavPlayer.playWav(audioFile);
24 avoidMotor.setAcceleration(6000);
25 avoidMotor.backward();
26 while(takeControl());
27 avoidMotor.forward();
28 avoidMotor.setAcceleration(1000);
29 }
30
31 @Override
32 public void suppress() {
33 avoidMotor.forward();
34 }
35 }