All pastes #1240514 Raw Edit

LineFollowerCal.java

public java v1 · immutable
#1240514 ·published 2008-10-30 11:40 UTC
rendered paste body
import lejos.nxt.*;/** * A simple line follower for the LEGO 9797 car with * a light sensor. Before the car is started on a line * a BlackWhiteSensor is calibrated to adapt to different * light conditions and colors. *  * 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. *  * @author  Ole Caprani * @version 23.08.07 */public class LineFollowerCal{  public static void main (String[] aArg)  throws Exception  {     final int power = 100;	 //final int turnPower = 100;	 final int leftBlackValue = 23;	 final int leftWhiteValue = 34;	 final int rightBlackValue = 24;	 final int rightWhiteValue = 35;	 	 final int blueValue = 29;	       BlackWhiteSensor rightSensor = new BlackWhiteSensor(SensorPort.S2,rightBlackValue,rightWhiteValue);	 BlackWhiteSensor leftSensor = new BlackWhiteSensor(SensorPort.S3,leftBlackValue,leftWhiteValue);	      // leftSensor.calibrate();	 // rightSensor.calibrate();	 	 DataLogger dlRight = new DataLogger("BWRight.txt");	 DataLogger dlLeft = new DataLogger("BWLeft.txt");     LCD.clear();     LCD.drawString("Light: ", 0, 2); 	 	 LCD.drawString("Press ENTER to start", 0, 0);	 	 while (! Button.ENTER.isPressed()){}	     while (! Button.ESCAPE.isPressed())     {		 	 		 int rightLight = rightSensor.light();		 int leftLight = leftSensor.light();		 		 	     LCD.drawInt(rightLight,4,10,2);		 LCD.drawInt(leftLight,4,10,3);	     LCD.refresh();	     	     // if ( sensor.black() )	         // Car.forward(power, 0);	     // else	         // Car.forward(0, power);		boolean leftBlack = leftSensor.black();	 		boolean rightBlack = rightSensor.black();				boolean leftWhite = leftSensor.white();	 		boolean rightWhite = rightSensor.white();		 				if ( leftWhite && rightWhite)	         Car.forward(power, power);	    else if(leftBlack && !rightBlack)		{	         Car.forward(0,power);			 Car.backwardLeft(power/2);		}		else if(rightBlack && !leftBlack)		{			 Car.forward(power,0);			 Car.backwardRight(power/2);		}		else 		{			Car.forward(power,power);		}				     //dlRight.writeSample(rightLight);		 //dlLeft.writeSample(leftLight);	     Thread.sleep(1);     }          Car.stop();     LCD.clear();     LCD.drawString("Program stopped", 0, 0);     LCD.refresh();   }}