Advertisement
Guest User

Andrew

a guest
Dec 1st, 2015
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package linefollower;
  2.  
  3. import lejos.nxt.Button;
  4. import lejos.nxt.LCD;
  5. import lejos.nxt.LightSensor;
  6. import lejos.nxt.MotorPort;
  7. import lejos.nxt.SensorPort;
  8.  
  9. public class LineFollower {
  10.  
  11.    
  12.    
  13.     /**
  14.    
  15.      * The light sensor should be connected to port 3. The
  16.      * left motor should be connected to port C and the right
  17.      * motor to port B. thanks to  Ole Caprani for some bits of code
  18.      
  19.      */
  20.    
  21.        
  22.         public static void main (String[] aArg)
  23.         throws Exception
  24.         {
  25.        
  26.            
  27.             LightSensor light = new LightSensor(SensorPort.S3);
  28.             final int blackWhiteThreshold = 50;
  29.                final int sampleInterval = 10;  // ms
  30.            
  31.             final int forward = 1;
  32.             final int stop = 3;
  33.             final int flt = 4;
  34.             final int power = 80;
  35.            
  36.        
  37.             light.setFloodlight(true);
  38.        
  39.            
  40.             // Follow line until ESCAPE is pressed
  41.             LCD.drawString("Press ESCAPE", 0, 2);
  42.             LCD.drawString("to stop ", 0, 3);
  43.             while (! Button.ESCAPE.isDown())
  44.             {
  45.                
  46.                 if (light.readValue() > blackWhiteThreshold)
  47.                 {
  48.                     // On white, turn right
  49.                    
  50.                     MotorPort.B.controlMotor(0,stop);
  51.                     MotorPort.C.controlMotor(power, forward);
  52.                 }
  53.                 else
  54.                 {
  55.                     // On black, turn left
  56.                            
  57.                     MotorPort.B.controlMotor(power, forward);
  58.                     MotorPort.C.controlMotor(0,stop);
  59.                 }
  60.                 LCD.drawInt(light.readValue(), 3, 9, 0);
  61.  
  62.                 Thread.sleep(sampleInterval);
  63.                
  64.             }
  65.            
  66.             // Stop car gently with free wheel drive
  67.             MotorPort.B.controlMotor(0,flt);
  68.             MotorPort.C.controlMotor(0,flt);
  69.            
  70.             LCD.drawString("Program stopped", 0, 0);
  71.             Thread.sleep(2000);
  72.         }
  73.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement