Spybot LF
This is a line follower made from a Spybot
Spybot LF is a very simple robot made from the Spybot "Shadowstrike" to follow a black line on a white background.

Most of the required instructions are in the NQC program file listed below.
Sample Spybot Line Follower
/*
Spybot Line Follower written in NQC
Steve Hassenplug

http://www.geocities.com/stevehassenplug/


The Spybot should have the light sensor and the red light
  pointed towards the line (directly or using the fiber optic cables)

Like this: 
http://www.brickshelf.com/cgi-bin/gallery.cgi?f=28583

To use:
1) Build Spybot Line follower
2) Download this program to Spybot using BricxCC
  (
http://hometown.aol.com/johnbinder/bricxcc.htm )
3) Place Spybot on line & press run
4) Move Spybot over line & background
5) Press Touch sensor on Spybot to start it running

The red & green LEDs will show the value read from the light sensor. 
The red = 1,2,4 (outside to inside) and the green = 8,16,32 (outside to inside)

This program has 3 ranges.
1) Below min = black = turn right
2) Between min & max = grey = go forward
3) Above max = white = turn left


GreyPercent is the Percent of area defined as between min + max
Increasing this number will speed-up spybot.  However it may not follow the line as well.

*/

#define GreyPercent 10


task main()
{

  int Min;    // low range for moving
  int Max;    // high range for moving
  int tMin;   // min light reading
  int tMax;   // max light reading

  SetSensorMode(SENSOR_2,SENSOR_MODE_PERCENT);
  SetLight(LIGHT_ON);

  tMin = 100;
  tMax = 0;
 
  SetDirection(OUT_A+OUT_B,OUT_REV); // change this based on gearing
//  SetDirection(OUT_A+OUT_B,OUT_FWD);
 
  // calibrate light sensor
  while(SENSOR_1==0) // wait until button is pressed
  {
    SetLED(LED_MODE_ON,SENSOR_2); // show sensor value on display
    if(SENSOR_2<tMin) tMin = SENSOR_2;
    if(SENSOR_2>tMax) tMax = SENSOR_2;
  }
 
  // set min/max movement values
  Min = (tMax-tMin) * (50 - GreyPercent / 2) / 100 + tMin;
  Max = (tMax - Min + tMin) ;

  while(SENSOR_1==1);  // wait until button is released

  while(true)
  {
    SetLED(LED_MODE_ON,SENSOR_2); // show sensor value on display
     if (SENSOR_2>=Min)
      On(OUT_A);
     else
      Off(OUT_A);
     if (SENSOR_2<=Max)
      On(OUT_B);
     else
      Off(OUT_B);
  }
}
1