X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2Fsensors%2FSensorCollector.java;h=64a26b4728a6d5e389367a03caf008d274089962;hb=HEAD;hp=db10870145250774d61c89401acc35476f978677;hpb=f92a71770aa8fc8abe3a60660df2965ec18cb479;p=des2015.git diff --git a/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java b/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java index db10870..64a26b4 100644 --- a/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java +++ b/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java @@ -3,15 +3,17 @@ package nl.ru.des.sensors; import java.util.HashSet; import java.util.Set; +import lejos.hardware.Button; import lejos.hardware.sensor.EV3GyroSensor; import lejos.robotics.SampleProvider; +import lejos.utility.Delay; public class SensorCollector implements MessageHandler{ public static final int DELAY = 200; - private static final float DANGER_DISTANCE_FRONT = 0.175f; - private static final float DANGER_DISTANCE_BACK = 0.035f; - private static final float DANGER_LIGHT = 0.40f; + private float DANGER_DISTANCE_FRONT = 0.175f; + private float DANGER_DISTANCE_BACK = 0.035f; + private float DANGER_LIGHT = 0.40f; private Set variables; @@ -39,6 +41,7 @@ public class SensorCollector implements MessageHandler{ gyroSamples = new float[gyro.sampleSize()]; leftLightSamples = new float[leftLight.sampleSize()]; rightLightSamples = new float[rightLight.sampleSize()]; + ultraTime = System.currentTimeMillis(); leftLightTime = System.currentTimeMillis(); rightLightTime = System.currentTimeMillis(); @@ -51,6 +54,36 @@ public class SensorCollector implements MessageHandler{ variables = new HashSet(); } + + public void calibrate() { + System.out.println("Put left light on Blue"); + Button.waitForAnyEvent(); + leftLight(); + DANGER_LIGHT = leftLightSamples[0]; + System.out.println("Light limit: " + Float.toString(DANGER_LIGHT)); + + Delay.msDelay(350); + System.out.println("Put left light on Black"); + Button.waitForAnyEvent(); + leftLight(); + DANGER_LIGHT = (leftLightSamples[0]+DANGER_LIGHT)/2.0f; + System.out.println("Light limit: " + Float.toString(DANGER_LIGHT)); + + Delay.msDelay(350); + System.out.println("Place back ultra safe"); + Button.waitForAnyEvent(); + backDistance(); + DANGER_DISTANCE_BACK = ultraSamples[0] + 0.05f; + System.out.println("Back ultra limit: " + Float.toString(DANGER_DISTANCE_BACK)); + + Delay.msDelay(350); + System.out.println("Place front ultra in danger"); + Button.waitForAnyEvent(); + DANGER_DISTANCE_FRONT = frontUltra; + System.out.println("Calibration done"); + System.out.println("Front ultra limit: " + Float.toString(DANGER_DISTANCE_FRONT)); + } + //Local sensors public boolean backDistance(){ if(System.currentTimeMillis()-ultraTime>DELAY){