Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Line Follower Using AT89c51

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 40

8 Th Semester

Electronics & Telecommunication Engineering

Acknowledgement
It is our privilege to express our sincerest regards to our
project coordinator, Ms. Madhusmita Nahak & Ms Geetanjali
Jena, for their valuable inputs, able guidance,
encouragement, whole-hearted cooperation and
constructive criticism throughout the duration of our project.

We deeply express our sincere thanks to our Head of


Department Dr Prof. K.C.Mohapatra for encouraging and
allowing us to present the project on the topic “Line
Follower Robot “at our department premises for the
partial fulfillment of the requirements leading to the award
of B-Tech degree.

We take this opportunity to thank all our lecturers who have


directly or indirectly helped our project. We pay our respects
and love to our parents and all other family members and
friends for their love and encouragement through out our
career. Last but not the least we express our thanks to our
friends for their cooperation and support.
EST D - 1999 - ISO 9001:2000
SE CT OR – 4, ROURK ELA – 7690 02
( AFF ILI ATE D T O BPU T , R OURKELA )

CERTIFICATE

This is to certify that Sonali Mishra, Balaram Panda,


Sanyasi Barad, Pulkeshu Dash and Gaurav Singhdeo
students of Padmanava College of Engineering,
Sector-4, Rourkela-002, have successfully completed a
project on “Line Follower Robot” in 8th semester at
Department of Electronics & Telecommunication
Engineering.

This report has not been submitted to any other


Organization & does not form part of any Course
undergone by then, for the award of B-Tech Degree.
Head of Dept (ETE)
Project Guide
Prof (Dr).K.C.Mohapatra
Ms Madhusmita Nahak

INDEX

1. INTRODUCTION

2. OVERVIEW

3. BLOCK DIAGRAM OF LINE FOLLOWER ROBOT

4. CIRCUIT DIAGRAM Of LINE FOLLOWER ROBOT

5. IMPLEMENTATION
a)Design of Microcontroller Programmer
b)What is ISP?

6. SENSORS
a) Design Of Infrared Sensor Circuit
b) Principle of operation of the I.R. L.E.D. and
Phototransistor
c) Positioning of sensors
d) Infra-Red Sensor Array
e) Analog to digital converter
f) LM339 Comparator
g) Pin Diagram Of LM339
h) Function Of the comparator

7. MICROCONTROLLER
a)Pin Diagram of AT89C51
b) Onboard Pin Connections

8. BIPOLAR MOTOR DRIVER


a)Pin Diagram of L293D
b) Pin Connections
c) Motor Driving
d)DC Motors

9. SOURCE CODE

10. HEX CODE GENERATED FOR THE CODE

11.PROBLEMS ENCOUNTERED

12. REFERENCES AND RESOURCES


INTRODUCTION
What is a line follower?

Line follower is a machine that can follow a path. The path can be
visible like a black line on a white surface (or vice-versa) or it can be
invisible like a magnetic field.

Why build a line follower?

Sensing a line and maneuvering the robot to stay on course, while


constantly correcting wrong moves using feedback mechanism forms a
simple yet effective closed loop system. As a programmer you get an
opportunity to ‘teach’ the robot how to follow the line thus giving it a
human-like property of responding to stimuli.

Practical applications of a line follower: Automated cars running on


roads with embedded magnets; guidance system for industrial robots
moving on shop floor etc.

Prerequisites:
Knowledge of basic digital and analog electronics.
C Programming Sheer interest, an innovative brain and perseverance!

OVERVIEW

Circuit model of Line Follower Robot

In the line follower robot project we have used 3 pairs of IR (infra-red)


emitter/sensor. The sensor on getting blocked or unblocked sends combination of
high/low signals to AT89C51 microcontroller which are processed and
appropriate signals are sent to L293D (motor driver chip) which switches on/off
the motors so as to keep the robot moving in one direction.

BLOCK DIAGRAM OF LINE FOLLOWER


ROBOT:-
CIRCUIT DIAGRAM OF LINE FOLLOWER
ROBOT:-
The microcontroller receives signals from the Infrared
Sensor circuit. The code burnt inside the EEPROM processes
the signal and send appropriate signals to the L293D and
turns on/off the motors shown in the figure above. The
program that processes the signals received from the
LM339 is given on the page later of this project report and
the code has been implemented using microcontroller
programming in assembly.

PICTURE OF THE DEVELOPMENT BOARD


IMPLEMENTATION
Design of Microc ontrolle r Programm er

Design of microcontroller programmer

The circuit shown above is microcontroller programmer (AT89CXXseries). It


burns the HEX code of the microcontroller program in the EEPROM of the
microcontroller using the parallel port of the computer.
The ISP programmer shown below sends the HEX code to the programmer
(hardware).

ISP (IN SYSTEM PROGRAMMING) PROGRAMMER


PICTURE OF THE PROGRAMMER BOARD
WHAT IS ISP?
In-Sy ste m Pro gr am min g (abbreviated ISP) is the ability of some
programmable logic devices, microcontrollers, and other programmable
electronic chips to be programmed while installed in a complete system, rather
than requiring the chip to be programmed prior to installing it into the system.
The primary advantage of this feature is that it allows manufacturers of electronic
devices to integrate programming and testing into a single production phase,
rather than requiring a separate programming stage prior to assembling the
system. This may allow manufacturers to program the chips in their own system's
production line instead of buying preprogrammed chips from a manufacturer or
distributor, making it feasible to apply code or design changes in the middle of a
production run. Typically, chips supporting ISP have internal circuitry to
generate any necessary programming voltage from the system's normal supply
voltage, and communicate with the programmer via a serial protocol. Most
programmable logic devices use proprietary protocols or protocols defined by
older standards. In systems complex enough to require moderately large glue
logic.
DESIGN OF INFRARED SENSOR CIRCUIT:
Pr inc iple of o pe rat io n o f th e I .R. L. E.D . a nd
Ph ot ot ra ns is to r: -

A Photodiode is a p-n junction or p-i-n structure. When an infrared photon of


sufficient energy strikes the diode, it excites an electron thereby creating a mobile
electron and a positively charged electron hole. If the absorption occurs in the
junction's depletion region, or one diffusion length away from it, these carriers
are swept from the junction by the built-in field of the depletion region,
producing a photocurrent. Photodiodes can be used under either zero bias
(photovoltaic mode) or reverse bias (photoconductive mode). Reverse bias
induces only little current (known as saturation or back current) along its
direction. But a more important effect of reverse bias is widening of the depletion
layer (therefore expanding the reaction volume) and strengthening the
photocurrent when infrared falls on it. There is a limit on the distance between
I.R. L.E.D. and infrared sensor for the pair to operate in the desired manner. In
our case distance is about 5mm.

Infra-Red emitter sends out IR pulses.

Position calculation is done through


intensity of reflected light received by
the detector.
Ambient interference is negligible.
POS IT IONI NG OF SEN SOR S:-

EMITTER DETECTOR

0.5cm

The resistance of the sensor decreases when IR (infrared) light falls on it. A good
sensor will have near zero resistance in presence of light and a very large
resistance in absence of light. Whether the sensors are Light Dependent Resistors,
laser diode, Infrared Sensors, Ultrasonic Sensors or anything else,the outputs of
the sensor modules are fed to the Non-inverting input of a comparator . The
reference voltage of the comparator is fed to the inverting input of the
comparator by a trim pot or a tuning device connected between the supply lines.
LM339 is a comparator IC that digitizes the analog signal from the sensor array.
Since the output of LM339 is TTL compatible it can be directly fed to the master
microcontroller.
The generalized connection diagram of Sensor Interfacing with microcontroller is
shown below:-

CONNECTING INFRARED MODULE WITH MICROCONTROLLER MCS-51

When the sensor/emitter pair is on shining surface sensor is on i.e. in


low impedance mode which one can easily view as L.E.D. corresponding
to that sensor doesn’t glow. The output of the opamp is HIGH
SIGN AL and this HIGH SIGNAL is given to the microcontroller and
when the sensor is on normal non-reflecting surface it’s off i.e. in
HIGH IMPEDANCE state which one can easily view as L.E.D.
corresponding to that sensor glows up and LOW SIG NAL is given to
the microcontroller.

Infra-Red Sensor Array

Black Wire – Output Voltage


Red Wire - +5V
Brown Wire - Gnd
ANALOG TO DIGITAL CONVERTER:-

It is clear that the output of the potential divider is an analog voltage. But
Microcontroller does not accept the analog voltage. So we need to convert the
analog voltage to digital before we feed it to the microcontroller.
For this conversion we can use
1. Comparators
2. ADCs

COMPARATOR LM339

V0 = High when V+ > V-


+ V0 = Low when V+ < V-
V+
V0 V0 = High when V+ > V-
V0 = Low when V+ < V-

-
V-
LM339 COMPARATOR:-
PIN DI AGRAM OF LM339:-

PIN DIAGRAM OF LM339

This device consists of four independent precision voltage comparators with an


offset voltage specifications as low as 2mV. This comparator is designed to
specifically operate from a single power supply over a wide range of voltages.
Operation from split power supplies is also possible. This comparator also has a
unique characteristic which is that the input common-mode voltage range
includes ground even though operated from a single power supply voltage.

FUNCTION OF THE COMPARATOR:-

V+ + HIGH

V + > V-

V- - 0V
V+ + LOW

V+ < V-

V- - 0V

MICROCONTROLLER:-

PI N D IA GRA M OF AT 89C 51: -


PIN DIAGRAM OF AT89C51
The AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer
with 4Kbytes of Flash Programmable and Erasable Read Only Memory (PEROM).
The device is manufactured using Atmel’s high density nonvolatile memory
technology and is compatible with the industry standard MCS-51Ô instruction set
and pinout. The on-chip Flash allows the program memory to be reprogrammed
in-system or by a conventional nonvolatile memory programmer. By combining a
versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a
powerful microcomputer which provides a highly flexible and cost effective
solution to many embedded control applications. The AT89C51 provides the
following standard features: 4Kbytes of Flash, 128 bytes of RAM, 32 I/O lines, two
16-bit timer/counters, five vector two-level interrupt architecture, a full duplex
serial port, on-chip oscillator and clock circuitry. In addition, the AT89C51 is
designed with static logic for operation down to zero frequency and supports two
software selectable power saving modes. The Idle Mode stops the CPU while
allowing the RAM, timer/counters, serial port and interrupt system to continue
functioning. The Power down Mode saves the RAM contents but freezes the
oscillator disabling all other chip functions until the next hardware reset.

PICTURE OF THE MICROCONTROLLER


ONBOARD PIN CONNECTIONS:-
BIPOLAR MOTOR DRIVER:-

L293D is a bipolar motor driver IC. This is a high voltage, high current pushpull
four channel driver compatible to TTL logic levels and drive inductive loads. It
has 600 mA output current capability per channel and internal clamp diodes.
The L293 is designed to provide bidirectional drive currents of upto 1 A at
voltages from 4.5 V to 36 V. The L293D is designed to provide bidirectional drive
currents of up to 600-mA at voltages from 4.5 V to 36 V. Both devices are
designed to drive inductive loads such as relays, solenoids, dc and bipolar stepping
motors, as well as other high-current/high-voltage loads in positive supply
applications. All inputs are TTL compatible. Each output is a complete totem-pole
drive circuit, with a Darlington transistor sink and a pseudo-Darlington source.
Drivers are enabled in pairs, with drivers 1 and 2 enabled by 1,2EN and drivers 3
and 4 enabled by 3,4EN. When an enable input is high, the associated drivers are
enabled, and their outputs are active and in phase with their inputs. When the
enable input is low, those drivers are disabled, and their outputs are off and in the
high-impedance state. With the proper data inputs, each pair of drivers forms a
full-H (or bridge) reversible drive suitable for solenoid or motor applications.
PIN DIAGRAM OF L293D:-

VCC1- LOGIC
SUPPLY= 5V 16 8
L_IN1 1 3 LM+ OUTPUT FOR
MOTOR1
L_IN2 2 14 LM-
INPUT
L_EN 15
LINES
L293D
R_IN1 7 6 RM+ OUTPUT FOR
R_IN2 9 11 RM- MOTOR2

R_EN 10
4 5 12 13

GND
PIN DIAGRAM OF L293D

The Device is a monolithic integrated high voltage, high current four channel
driver designed to accept standard DTL or TTL logic levels and drive inductive
loads (such as relays solenoides, DC and stepping motors) and switching power
transistors. To simplify use as two bridges each pair of channels is equipped with
an enable input. A separate supply input is provided for the logic, allowing
operation at a lower voltage and internal clamp diodes are included. This device is
suitable for use in switching applications at frequencies up to 5 kHz.
The L293D is assembled in a 16 lead plastic packaage which has 4 center pins
connected together and used for heatsinking The L293DD is assembled in a 20
lead surface mount which has 8 center pins connected together and used for
heatsinking.

PIN CONNECTIONS:-

CONNECTION DIAGRAM FOR DRIVING BIPOLAR DC MOTOR


MOTOR DRIVING:-

EN IN 1 IN 2 Motor
Status
0 X X Stopped

1 0 0 Stopped

1 1 1 Stopped

1 1 0 CW

1 0 1 CCW
PICTURE OF BIPOLAR MOTOR DRIVER
DC MOTORS:-
These are very commonly used in robotics. DC motors can rotate in both
directions depending upon the polarity of current through the motor. These
motors have free running torque and current ideally zero. These motors have
high speed which can be reduced with the help of gears and traded off for torque.
Speed Control of DC motors is done through Pulse Width Modulation techniques,
i.e. sending the current in intermittent bursts. PWM can be generated by 555
timer IC with adjusted duty cycle. Varying current through the motor varies the
torque.

PICTURE OF DC MOTOR USED


SOURCE CODE:-

PROGRAM FOR LINE FOLLOWER


=======SYSTEM REGISTERS==============

P0 EQU 080H
P1 EQU 090H
P2 EQU 0A0H
P3 EQU 0B0H

TH1 EQU 08DH


TL1 EQU 08BH
TCON EQU 088H
TMOD EQU 089H
IE EQU 0A8H
SP EQU 081H
FLAG1 EQU 0D0H

;======= PORT PIN DEFINITIONS ========


SENSOR1 EQU P1.0
SENSOR2 EQU P1.1
LED_RED EQU P0.6
LED_GREEN EQU P0.7
L_EN EQU P0.2
R_EN EQU P0.4
L_MO1 EQU P0.1
L_MO2 EQU P0.0
R_MO1 EQU P0.3
R_MO2 EQU P0.5
;XXXXMXLR

; X X X X 1 X 0 0 - FWD -- 03
; 0 1 - TR 01
; 1 0 - TL 02
; 00 - STOP 00

;========== HERE THE MAIN PROGRAM STARTS ==========

ORG 0000H
AJMP START

ORG 0050H
START: MOV R1,#0FFH
MOV R2,#004H
MOV P2,#000H

LOOP: MOV C,SENSOR1


MOV LED_RED,C
MOV C,SENSOR2
MOV LED_GREEN,C

MOV A,P1
ANL A,#003H

CJNE A,#000H,CHECK_LEFT ;////// GO FORWARD /////////


SETB R_MO1
CLR R_MO2
SETB L_MO1
CLR L_MO2
MOV R1,#0FFH
MOV R2,#004H
AJMP LOOP

CHECK_LEFT:
CJNE A,#001H,CHECK_RIGHT ;////// TURN LEFT ///////////
SETB R_MO1
CLR R_MO2
CLR L_MO1
SETB L_MO2
MOV R1,#0FFH
MOV R2,#004H

HERE_LEFT:
MOV A,P1
ANL A,#003H
CJNE A,#003H,LEFT_CONT
DJNZ R1,LEFT_CONT
DJNZ R2,LEFT_CONT
AJMP STOP

LEFT_CONT:
JB P1.0,HERE_LEFT
AJMP LOOP

CHECK_RIGHT:
CJNE A,#002H,CHECK_STOP ;/////// TURN RIGHT ///////
CLR R_MO1
SETB R_MO2
SETB L_MO1
CLR L_MO2
MOV R1,#0FFH
MOV R2,#004H
HERE_RIGHT:
MOV A,P1
ANL A,#003H
CJNE A,#003H,RIGHT_CONT
DJNZ R1,LEFT_CONT
DJNZ R2,LEFT_CONT
AJMP STOP
RIGHT_CONT:
JB P1.1,HERE_RIGHT
AJMP LOOP
CHECK_STOP:
DJNZ R1,LOOP
STOP: SETB R_MO1
SETB R_MO2
SETB L_MO1
SETB L_MO2

HERE_STOP:
AJMP HERE_STOP

END
HEX CODE GENERATED FOR THE CODE:-

: 020000000150AD
: 1000500079FF7A0475A000A2909286A2919287E51A
: 10006000905403B4000ED283C285D281C28079FF3E
: 100070007A040157B4011ED283C285C281D280792D
: 10008000FF7A04E5905403B40306D904DA0201B8F8
: 100090002090F00157B4021EC283D285D281C28063
: 1000A00079FF7A04E5905403B40306D9E3DAE10159
: 1000B000B82091F00157D99FD283D285D281D280C6
: 0200C00001C07D
: 00000001FF
PROBLEMS ENCOUNTERED:-
• The ISP programmer requires dedicated supply of 9V from the USB of your P.C.
Extern supply of other than 9V generates error while writing the HEX code to the
Microcontroller. The programmer was soldered 3 times before it could
successfully program the chip.
• The program was difficult to implement as it was our first encounter with
microcontroller programming in assembly.
• The large number of interconnections in the circuit made it too difficult to
solder.
• The IR sensors burnt up on soldering so we have to use temperature controlled
soldering iron.
• In the model designed to show line follower robot, electric motors ought to be
bidirectional and of low wattage i.e. should draw lesser current otherwise the
motor can draw current to such a level to burn up the entire circuit.
REFERENCES AND RESOURCES:-
Boo ks :
1) The 8051 Microcontroller and Embedded Systems Using
Assembly and C By Muhammad Ali Mazidi, Janice Gillispie
Mazidi & Ro lin D. McKinlay

Webs ite s r ef er re d:
1) Atmel Corp. Makers of the AVR microcontroller
www.atmel.com
2) One of the best sites AVR site www.avrfreaks.net
3) One of the best site for Microcontroller projects
www.kmitl.ac.th
4) Keil™, the developer of Keilμvision www.keil.com
5) Information from www.wikipedia.com

You might also like