Instructables
I made a line follower robot with PIC16F84A microprocessor equipped with 4 IR sensors. This robot can run on the black and white lines.

 
Remove these adsRemove these ads by Signing Up

Step 1: First Step

Before everything you must know how to make a Printed Circuit Board and how to solder components on it. You also need to know how to program a PIC16F84A IC.
Here are the links to good instructables about making a PCB and Soldering:

Step 2: Things You Need

To make this robot you need the following things:
  • Some copper board
  • Printed circuits
  • Saw
  • Sandpaper
  • Iron
  • Circuit board acid
  • 1mm drill
  • Soldering oil
  • Soldering wire
  • Soldering iron
  • Wire cutter
  • Some wire
  • 2x Plastic wheels
  • 1x Spherical front wheel
  • Glue
Circuit boards components:
  • A 4 AA battery holder
  • U1 = PIC16F84A Microcontroller + Socket
  • U2 = 7805 = 5V Voltage Regulator
  • U3 = LM324 Comparator
  • U4 = L298 Motor Driver + Aluminum Radiator
  • XT = 4MHz Crystal
  • C1 = C2 = 22pF Ceramic Capacitors
  • C3 = 100uF Electrolyte Capacitor
  • C4 = C5 = 100nF Ceramic Capacitors (104)
  • D = 8 x 1N4148 Diodes
  • R1 = 4.7K Resistor
  • R2 = R3 = 10K Resistors
  • R4 = R5 = R6 = R7 = 1K Resistors
  • R8 = 10K Resistor
  • R9 = 1K Resistor
  • R10 = R11 = 47K Resistors
  • R12 = R13 = R14 = R15 = 100ohm Resistors
  • R16 = R17 = R18 = R19 = 10K Resistors
  • RP = LP = MP = FP = 10K Potentiometers
  • L Motor = R Motor = 60rpm MiniMotors with Gearbox (6V)
  • R Sensor = L Sensor = M Sensor = F Sensor = TCRT5000 Infrared Sensors
  • ModeLED = LBLED = RBLED = Small Red LEDs
  • LFLED = RFLED = Small Green LEDs
  • Mode = Left = Right = Small Buttons
  • SW = Toggle Switch = On/Off Switch
  • J = Jumper = A piece of wire
PCB.pdf(595x842) 101 KB

Step 3: Making the Circuit Boards

Print the circuits on a glossy paper with a laser printer. Cut copper boards, clear them with sandpaper and put the printed circuits on them. After pressing the hot iron on the boards remove the papers and soak boards in acid, wait till visible copper disappears. Wash the boards, drill the holes and clear them with sandpaper.

Step 4: Soldering Components

Picture of Soldering Components
Solder all parts on the boards.
Be careful of the correct direction of components.
Use a socket for PIC16F84A IC.
Solder motors and battery holder on the back side of the Bottom board and put some pieces of paper around motors to avoid unexpected contacts in the circuit.
Solder C4 and C5 right on the motors.
Put a piece of paper among potentiometers legs to avoid contacts.

Step 5: Soldering All Together

Picture of Soldering All Together
Connect terminals with same name on the boards together by some piece of wires (You can use the extra legs of the other components).
Solder the Back board to the Top board.
Solder the Front board to the Top board.
Bend the wires and put three boards on the battery holder and solder Front board and Back board to the Bottom board (Use some long flexible wires to contact terminals of the Back and Bottom boards).
Connect + terminal on the Top board to the battery holders + pole.

Step 6: Wheels

Connect 2 plastic wheels to the motors and cover them with a rubber band.
Attach a wheel to the Back board in front of the robot with some glue, I used a dead LED as front wheel but it makes the robot move slow and I recommend to use a spherical wheel.
Cover the gearboxes with sheets of thin plastic.

Step 7: Programming the Robot

Picture of Programming the Robot
Download the robot program (Code.hex) and program the PIC16F84A IC.

Step 8: RUN

Picture of RUN
Put 4 AA batteries into the battery holder, make a path, and turn on the robot.
If the robot does not work check soldering carefully.
Now you must adjust potentiometers to robot be able to detect black and white areas. Turn all potentiometers to leftmost position then turn back about 90 degrees to the right. Hold the robot on the line, move it over a turning if the motors state does not changed change the potentiometers value.
Now put the robot on the path to follow it.

Step 9: Custom Movement

You can define a custom movement for the robot by pressing the Mode button.
When the Mode LED is off the robot is on its default state.
After pressing the Mode button the Mode LED turns on, now you can hold the robot in different states and change the state of the motors depend on their default state by Left and Right buttons.
After pressing the Mode button again the Mode LED starts blinking, now you can hold the robot in different states and change the state of the motors depend on values of the sensors by the Left and Right buttons.
To switch to default state, press Mode button again.
There are four states for the motors:
  1. Default state
  2. Forward (Green LED is on)
  3. Backward (Red LED is on)
  4. Stop (Both Green and Red LEDs are on)

Step 10: How it works?

This robot has 4 IR sensors that scan the path.
If the Right and Left sensors has same values and the values of them are different from the Middle or Front sensors the robot is on the line and motors running forward. Else the robot is out of line so the robot keeps moving till one of  the side sensors value changes then it turns to the direction that its sensor value changed.
You can read the program source code (Code.bas) to understand it better.
1-40 of 121Next »
tave031 month ago

¿Cómo puedo representar este robot en un diagrama de flujo?


saurabh_955 months ago

sir please send me the circuit diagram

my email id is : saurabh1995@rediffmail.com

thanks in avdance

devilmanred5 months ago

how i can open the (.wmf) file ??

vahid_you2004 (author)  devilmanred5 months ago

wmf (windows metafile) is an image file. you can open it with image viewer or editors. BTW you did not need to open them, they are all in the pdf file too, just print the pdf.

Sir, I just came across this project, and its the best line follower i have seen.
I tried to make it but having some doubts. Can you tell me where to connect the motor terminals, the bottom board terminals or back board terminals? or both?
having trouble . Please help
vahid_you2004 (author)  aneeshprasobhan8 months ago

Both boards.

phenomx9010 months ago
dear sir.
do u just change the LED to the DC motor with gearbox?
http://www.instructables.com/files/orig/FMS/1ZXP/GE7LEZ89/FMS1ZXPGE7LEZ89.jpg

and can i use [30:1 Micro Metal Gearmotor] ?..it look like yours..but free-run RPM 440..


thank sir.
aprasad141 year ago
Dear sir please Line Follower Robot .asm and .inc files...

my e-mail - fast.aruna@gmail.com

Sir please reply urgently....
vahid_you2004 (author)  aprasad141 year ago
You can find all files related to the robot program on step 7. There is no inc file. I used "PicBasic Pro" for programming.
aprasad141 year ago
Dear sir, i am school student.When Mode LED is off robot is in default mode working right motor. Not work left motor ??Motor mode and Sensors mode working left motor and right motor . Sir please default mode worked hex file….

my e-mail - fast.aruna@gmail.com

Sir please reply urgently....
vahid_you2004 (author)  aprasad141 year ago
The robot works fine in default mode. No extra hex file needed all the program is that you can find on step 7. I advise you to check your board, sensors, wires, ... then do step 8 again.
thank you sir..
aprasad141 year ago
Dear sir Please Line Follower Robot .asm file.

my e-mail - fast.aruna@gmail.com

Sir please reply urgently..
aprasad141 year ago
sir plz Circut schematic diagram
vahid_you2004 (author)  aprasad141 year ago
I have just a simple (not complete) diagram you can find it in older comments.
rkancharla1 year ago
are outlines of the copper print are also the conducting traces ?
vahid_you2004 (author)  rkancharla1 year ago
No, They are just outlines.
rkancharla1 year ago
i could only get 12v motors here, which supply should be increased ?? 3v or 1.5 v ?? :-/
vahid_you2004 (author)  rkancharla1 year ago
Just connect - to -3V and + to +3V and + terminal on the top board.
rkancharla1 year ago
(removed by author or community request)
vahid_you2004 (author)  rkancharla1 year ago
Yes, No changes to circuit is needed but you need a 12V supply.
mazedm801 year ago
Great robot.
polkijain1 year ago
good
can i do this with an arduino(avr only)-and without sheilds(motor,etc...)
vahid_you2004 (author)  polkijain1 year ago
Yes, the most important part of this project is its algorithm.
robo103021 year ago
wow this robot rocks its sooo easy to make!!thanks for posting.
gautamuv1 year ago
i mean in track some object is kept , it should detect and change it's dirrection. for that i
need to add one more sensor in front dirrection . were can i add and how can i change
the program??
vahid_you2004 (author)  gautamuv1 year ago
There is only one pin free on PIC you can connect your sensor to A4 and add you code to the program before "Operate" part and change the value of lmb (left motor backward), lmf (left motor forward), rmb (lright motor backward) and rmf (right motor forward) variables.
gautamuv1 year ago
what should be done to robot so that it should detect obstacle, for this robo? is it possible?
is there any change in programming?
vahid_you2004 (author)  gautamuv1 year ago
As you can see in the path I made, this robot can pass through white or black area by moving forward on a straight line.
ikrizzy1 year ago
can you give me a progam of this using micro c
vahid_you2004 (author)  ikrizzy1 year ago
Converting a program from Basic to C is a simple work and is very good for you to improve your programming skills.
psantos91 year ago
sir i have a question i can't find a TCRT5000 Infrared Sensors in the market what is the replacement to this component thanks and godbless
vahid_you2004 (author)  psantos91 year ago
You can use any thing that is made of one IR transmitter beside one IR receiver, you can also make it yourself (see older comments).
Have a look at a different concept - A wall Following Robot
vahid_you2004 (author)  GeniusDevils1 year ago
Good Idea
heraldbaby1 year ago
is this circuits right...this programme will be compatable ryt? now i just wanna ground the ports?
vahid_you2004 (author)  heraldbaby1 year ago
Yes, thats right and it works fine. You have not to ground the ports.
heraldbaby1 year ago
CAN I USE L293D motor driver.Also can i get a ciricuit diagram please
vahid_you2004 (author)  heraldbaby1 year ago
Yes, You can use any dual (or more) motor driver.
I have not drawn a complete circuit diagram for this robot but you can find a simple symbolic diagram in older comments.
what are its applications????????????????????????
1-40 of 121Next »