Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package linefollower;
- import lejos.nxt.Button;
- import lejos.nxt.LCD;
- import lejos.nxt.LightSensor;
- import lejos.nxt.MotorPort;
- import lejos.nxt.SensorPort;
- public class LineFollower {
- /**
- * The light sensor should be connected to port 3. The
- * left motor should be connected to port C and the right
- * motor to port B. thanks to Ole Caprani for some bits of code
- */
- public static void main (String[] aArg)
- throws Exception
- {
- LightSensor light = new LightSensor(SensorPort.S3);
- final int blackWhiteThreshold = 50;
- final int sampleInterval = 10; // ms
- final int forward = 1;
- final int stop = 3;
- final int flt = 4;
- final int power = 80;
- light.setFloodlight(true);
- // Follow line until ESCAPE is pressed
- LCD.drawString("Press ESCAPE", 0, 2);
- LCD.drawString("to stop ", 0, 3);
- while (! Button.ESCAPE.isDown())
- {
- if (light.readValue() > blackWhiteThreshold)
- {
- // On white, turn right
- MotorPort.B.controlMotor(0,stop);
- MotorPort.C.controlMotor(power, forward);
- }
- else
- {
- // On black, turn left
- MotorPort.B.controlMotor(power, forward);
- MotorPort.C.controlMotor(0,stop);
- }
- LCD.drawInt(light.readValue(), 3, 9, 0);
- Thread.sleep(sampleInterval);
- }
- // Stop car gently with free wheel drive
- MotorPort.B.controlMotor(0,flt);
- MotorPort.C.controlMotor(0,flt);
- LCD.drawString("Program stopped", 0, 0);
- Thread.sleep(2000);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement