jrt92 created page: home authored by Josephine Raun Thomsen's avatar Josephine Raun Thomsen
......@@ -49,17 +49,24 @@ For demonstration af dette program se videoen nedenfor
Programmet BlackWhiteSensor.java kan potentielt set også bruges til at læse og reagere på andre farver end sort og hvid. I programmet ThreeColorSensor.java har vi implementeret en klasse der også kan detektere grøn.
```Java
if (sensor.green()) {
greenCount++;
if (greenCount > 30) {
break;
}
} else {
greenCount = 0;
}
public void calibrate()
{
blackLightValue = read("black");
whiteLightValue = read("white");
greenLightValue = read("green");
// The threshold is calculated as the median between
// the two readings over the two types of surfaces
blackWhiteThreshold = (blackLightValue+whiteLightValue)/2;
greenDetectionRange = Math.abs(blackLightValue - whiteLightValue) / 2;
}
```
Grøn udregnes som.. Ved at afprøve programmet står det også klart, at programmet detektere grøn som en threshold mellem sort og hvid. På opsætning nedenfor oplevede vi derfor også at programmet yieldede grøn, selvom
```Java
public boolean green() {
return Math.abs(greenLightValue - ls.readValue()) < (greenDetectionRange / 2);
}
```
Ved at afprøve programmet står det også klart, at programmet detektere grøn som en threshold mellem sort og hvid. På opsætning nedenfor oplevede vi derfor også at programmet yieldede grøn, selvom
![reader](http://gitlab.au.dk/uploads/group-5/group-5-lesson-4/04b289af5d/reader.JPG)
......@@ -68,6 +75,59 @@ Grøn udregnes som.. Ved at afprøve programmet står det også klart, at progra
### Exercise 4 - Line Follower that stops in a Goal Zone
```Java
import lejos.nxt.*;
import lejos.util.Delay;
public class LineFollowerCal {
public static int greenCount = 0;
public static void main(String[] aArg) throws Exception {
final int power = 80;
ThreeColorSensor sensor = new ThreeColorSensor(SensorPort.S1);
sensor.calibrate();
LCD.clear();
LCD.drawString("Press ENTER", 0, 0);
LCD.drawString("to start!", 0, 1);
while (Button.ENTER.isDown()); // Wait till the button is released.
while (!Button.ENTER.isDown()); // Wait till the button is pressed again.
while (!Button.ESCAPE.isDown()) {
LCD.drawInt(sensor.light(), 4, 10, 2);
LCD.refresh();
if (sensor.green()) {
greenCount++;
if (greenCount > 30) {
break;
}
} else {
greenCount = 0;
}
if (sensor.black())
Car.forward(power, 0);
else
Car.forward(0, power);
Thread.sleep(10);
}
Car.stop();
LCD.clear();
LCD.drawString("Program stopped", 0, 0);
LCD.refresh();
}
}
```
*Video 2: Demonstration af programmet *
[![image alt text](http://img.youtube.com/vi/u0Iddyub2Z0/0.jpg)](http://www.youtube.com/watch?v=u0Iddyub2Z0)
......
......