updated lcd printer and better low object avoidance behaviour
[des2015.git] / mart / ev3 / ex1 / nl / ru / des / AvoidLowObjectBehaviour.java
1 package nl.ru.des;
2
3 import lejos.hardware.motor.EV3LargeRegulatedMotor;
4 import lejos.hardware.sensor.EV3TouchSensor;
5 import lejos.robotics.SampleProvider;
6 import lejos.utility.Delay;
7
8 public class AvoidLowObjectBehaviour extends AvoidBehaviour {
9 private SampleProvider rightSample, leftSample;
10 private float[] samples;
11
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()];
18 }
19
20 @Override
21 public boolean takeControl() {
22 //Check if left sensor is pressed
23 leftSample.fetchSample(samples, 0);
24 boolean takeControl = false;
25 if(samples[0] == 1){
26 super.setAvoidDirection(false);
27 takeControl = true;
28 }
29
30 //Check if right sensor is pressed
31 rightSample.fetchSample(samples, 0);
32 if(samples[0] == 1){
33 super.setAvoidDirection(true);
34 takeControl = true;
35 }
36 return takeControl;
37 }
38
39 @Override
40 public void action() {
41 rightMotor.backward();
42 leftMotor.backward();
43 Delay.msDelay(200);
44 leftMotor.forward();
45 rightMotor.forward();
46 super.action();
47 }
48 }