public class LineObserver { public static void main(String[] args) {
LightSensor light = new LightSensor(SensorPort.S3); while (!Button.ESCAPE.isPressed()) { if (/* line is found*/) {
LCD.drawString("Line seen", 0, 0);
} else {
LCD.drawString("Line lost", 0, 0);
}
}
}
}
LineFollower (page 64)
import lejos.nxt.*;
public class LineFollower implements Action { private LightSensor light; private Action lost, found;
public void act() { while (!Button.ESCAPE.isPressed()) { if (/* line is found */) {
found.act();
} else {
lost.act();
}
}
}
}
LineSpinner (page 65)
import lejos.nxt.*;
public class LineSpinner { public static void main(String[] args) {
LightSensor light = new LightSensor(SensorPort.S3);
Action found = new SpinLeftMove();
Action lost = new SpinRightMove();
LineFollower controller = new LineFollower(light, lost, found);
controller.act();
}
}
LineWiggler (page 65)
import lejos.nxt.*;
public class LineWiggler { public static void main(String[] args) {
LightSensor light = new LightSensor(SensorPort.S3);
Action found = new ForwardMove();
Action lost = new BackwardMove();
LineFollower controller = new LineFollower(light, lost, found);
controller.act();
}
}
Searcher (page 67)
import lejos.nxt.*;
public class Searcher implements Action { private Condition finder; private Action lost, found;