Line Follower Robot




     This is my second Line Follower Robot and as its name suggest, it is a robot whose purpose is following a line. This robot can be used in contests where a robot must follow a route delimited by a black line on a white background in the shortest time possible.
     This robot is really simple to make and then you can use this platform for other purposes.
     Below is a video of the robot running on a track similar to one used in contests.

Step 1: The Mechanics


     The motors I used for this robot are 2 servomotors modified for speed. You can also use other motor if it' s good enough... I didn't have any so I modded 2 servomotors.

HOW TO MOD THE SERVOMOTORS (look at the pictures)

1. Remove the four screws from the servo and take it all apart.
2. Remove the electronics keeping only the wires from the motor (I kept the other 3 wires from the potentiometer but you don't have to).
3. Try to fit the gears except for one. I glued the big gear to the one beneath it so as to be high enogh to "get out" of the case. It isn't exactly a rule for how to do this... various servos will have various gears so you will need to try until you will find the best "combination".
4. Put everything toghether.

The BODY (look at the picture):

 The base of the robot is made of PCB cutted to the properly size.
You will also need 5 screws:
     - 2 for putting together the front and the base of the robot
     - one for lifting the sensors off the ground (you can use something else here, if you have)
     - 2 for lifting and fixing the microcontroller PCB

Step 2: The Electronics


I made my sensors using 5 SMD IR emiting diodes, 5 SMD phototransistors and 5 1k SMD resistors. Between the phototransistor and the IR I put some black silicone so the IR light would not come directly to the phototransistor. The PCB design is in the archive "line follower.rar". It is made in PROTEUS, but I have a word document including all the PCB designs which can be printed on glossy paper or Press and Peel, and then transfered to the PCB using the method of the iron.
If you don't want to make your own sensor you can buy one from here: .


The "heart" of this robot is an ATMEGA8 microcontroller which gets the information from the sensors and drive the L293D motor controller.
Parts list:

1x 28-pin socket (for ATMEGA8)
1x 14-pin socket (for L293)
1x ATMEGA8 - You can also use an ATMEGA 168 or 328. The program is made in Arduino , so if you have an arduino, you can program the microcontroller on it, then remove it from arduino and insert it in this PCB. Also you can program this microcontroller via the 6 pins with an ISP. You can buy an ATMEGA 328 to program it on your arduino from here:
1x L293D
1x 16MHz Crystal
2x 22pF (10-28pF)
1x LM7805
1x Push Button
1x 100nF
1x 100uF
1x 4.7 uF
6x LEDs
1x 1K resistor
1x 33R resistor
1x Break Away Header
1x Straight Female Header
1x Switch
Also you will need one 4 AA battery holder.     

     Everything you need for making the microcontroller pcb and the sensors PCB is in the "line follower.rar" archive. You will find the PCB design, and the schematics which are made in Proteus, but are also available in the Word document.
     Now all you have to do is take the soldering iron and start to solder all the parts.
     After you' ve assembled the robot, you need to program the microcontroller. The program is made is Arduino so you can upload it to Arduino and then put the microcontroller in this "motherboard". You also have the HEX file for an ATMEGA8 using 16Mhz crystal.

Step 3: Assembly

     After everything is done... all you need to do is assembling the robot. You can watch a video of me assembling it. Enjoy.

Step 4: Testing

     If you followed this tutorial and you got something like in the video below, then, CONGRATULATIONS you have succeeded in making your first LINE FOLLOWER ROBOT.

Microcontroller Contest

Participated in the
Microcontroller Contest

Toy Challenge

Participated in the
Toy Challenge

Make It Move Challenge

Participated in the
Make It Move Challenge



  • Fandom Contest

    Fandom Contest
  • Backyard Contest

    Backyard Contest
  • Growing Beyond Earth Maker Contest

    Growing Beyond Earth Maker Contest

38 Discussions


1 year ago


the dropbox link which you have commented below is expired, will you please help me for the code and the further queries?


4 years ago on Step 3

I have a question regarding the arduino program. I can't get it why are the values for p1 p2 p3 p4 p5 p6 set. I also don't know what are those for. I see that you are using analog sensor. And at last how can I modify the program to use digital sensors.


5 years ago on Step 4

I've built this, but without sucess. Did someone managed to get it working?

If i stick my finger in one of the sensors it does power both motors, but the steering does not react to anything else. Once that sensor goes of motors stop.


5 years ago on Introduction

cann u send me the eagle.sch and .brd files i want to add some things my email is


5 years ago on Step 4

I got L14G2. It is 3 terminal photo transistor....
Which photo diode did you use???


Reply 5 years ago on Introduction

bro i think #nbinest is not gonna reply for our queries soon i think it will be better for u to search the internet.....

i am also into making of this one....till now i have found everything i need to make this one just by surfing the net .....:) but still have many questions left to ask #nbibest>>>>>>>>>>:(


5 years ago on Introduction

how can i make this robot follow white lines on black background?


5 years ago on Introduction

Dear sir, i am school student.i am using atmega 328 ic.programme with arduino uno.sir Robot not working.Sir please worked arduino uno programme file.

my e-mail -

Sir please reply urgently....

Hello could you please tel whether i can use this

or should i use this

Please answer quickly thank you

1 reply

Well... you need to have a microcontroller that is compatible with arduino. One of the microcontrolers that are used in arduino. I think atmega328 is used in Arduino Uno maybe?


6 years ago on Introduction

what is the program you used to draw the pcb ?
Do you have the C or assembly code(for understanding the code) other than hex for atemega 8?