Vous êtes sur la page 1sur 43

Submitted

by:-
Ankur
khurana
(07EI407)
Acknowledgement

It is our privilege to express our sincerest regards


to our
project coordinator, Mr Jitender Singh Saggu 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 teacher Dr Vishnu 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 ourfriends for their cooperation and
support.
FOREWORD:
The word robot was coined by the Czech writer Kapek in
his play ‘Rossum's Universal Robots’. Since then
countless devices have been created and have been
associated with the word ‘Robot’. The works of Isaac
Asimov have laid the foundation of sociology pertaining
to the use of robots instead of humans and the word
‘Robotics’ was also coined by him. In today’s world, work
on robots, that resemble and look almost human, and
others which don’t resemble humans in any way,
progresses in leaps and bounds. The world has
forerunners in this technology like MIT, CMU, Sony, Honda
etc. In this world of ASIMO, AIBO, Packbot etc., we have
made an attempt to create machines which we dare call
‘Robots’. In this era where organizations like ABU – Asia
Pacific Broadcasting Union are organizing robot contests
like Robocon we have made an attempt to make robotic
systems which could send and receive communication
signal amongst them and complete the task assigned to
them with coordinated efforts. Today when technology is
developing faster then a blink of an eye and the
competition is tough to win at any stage may it be
national or international, we have put in tireless efforts to
implement the technology in simpler and effective form
to compete against some of the best in field of robotics in
the country.
Table of contents:-
1: Introduction
2: Microcontroller
2.1: definition
2.2 ATMEL 89S52
2.3 FEATURES
2.4 DESCRIPTION
2.5 89S52 PROCESSOR
ARCHITECTURE
2.6 PIN DESCRIPTION
2.7 PIN DIAGRAM OF AT89S52
2.8 DESIGN OF INFRARED
SENSOR CIRCUIT
2.9 POSITIONING OF SENSORS
2.10 SENSOR ARRAY
2.11 MOTOR DRIVER:-L293D
2.12 COMPARATOR
2.13 DC MOTORS
2.14 BIPOLAR MOTOR DRIVER:-
2.15 PIN CONNECTIONS
2.16 Multipurpose Schematics
and PCB Designs
2.17 Line Following and Turning
2.18 WHAT IS ISP?
2.19 BLOCK DIAGRAM OF LINE
FOLLOWER ROBOT
2.20 ONBOARD PIN
CONNECTIONS
2.21 SOFTWARE

2.22 SOURCE CODE


2.23 HEX CODE GENERATED
FOR THE CODE

2.24 PROBLEMS ENCOUNTERED


2.25 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.
Assembly Programming Sheer interest, an innovative brain
and perseverance!

MICROCONTROLLER:-
2.1:-Defination
A Microcontroller is a single-chip microcomputer that
contains all the componentssuch as the CPU, RAM,
some form of ROM, I/O ports, and timers.
Unlike a generalpurpose computer, which also includes all of these
components, a microcontroller is designed for a very specific task -- to
control a particular system. Microcontrollers are sometimes called
embedded microcontrollers, which just means that they are part of
an embedded system. A microprocessor is a general-purpose digital
computer with central processing unit (CPU), which contains arithmetic
and logic unit (ALU), a program counter (PC), a stack pointer (SP),
some working registers, a clock timing circuit, and interrupts circuits.
The main disadvantage of microprocessor is that it has no on-chip
memory. So we are going for micro controller since it has on-board
programmable ROM and I/O that can be programmed for various
control functions

2.2:- ATMEL 89S52

AT89S52 MICROCONTROLLER
The microcontroller development effort resulted in the 8051
architecture, which
was first introduced in 1980 and has gone on to be arguably the most
popular
micro controller architecture available. The 8051 is a very complete
micro
controller with a large amount of built in control store (ROM &
EPROM) and
RAM, enhanced I/O ports, and the ability to access external memory.
The
maximum clock frequency with an 8051 micro controller can execute
instructions
is 20MHZ.
Microcontroller is a true computer on chip. The design incorporates
all of the
features found in a microprocessor: CPU, ALU, PC, SP and registers.
It also has
the other features needed to, make complete computer: ROM, RAM,
parallel I/O,
serial I/O, counters and a clock circuit.
The 89C51/89C52/89C54/89C58 contains a non-volatile FLASH
program memory
that is parallel programmable. For devices that are serial programmable
(In-System
Programmable (ISP) and In-Application Programmable (IAP) with a
boot loader)All
three families are Single-Chip 8-bit Microcontrollers manufactured in
advanced
CMOS process and are Derivatives of the 80C51 microcontroller family.
All the
devices have the same instruction set as the 80C51.

2.3 FEATURES
• 8K Bytes of In-System Reprogrammable Flash Memory
• Endurance: 1,000 Write/Erase Cycles
• Fully Static Operation: 0 Hz to 33 MHz
• Three-level Program Memory Lock
• 256 x 8-bit Internal RAM
• 32 Programmable I/O Lines
• Three 16-bit Timer/Counters
• Eight Interrupt Sources
• Programmable Serial Channel
• Low-power Idle and Power-down Modes
2.4 DESCRIPTION:
The AT89s52 is a low power, high performance CMOS 8-bit micro
computer with 8K
bytes 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 80c51 and 80C52 instruction set
and pin out.
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 AT89s52 Is a powerful
microcomputer
which provides a highly flexible and cost effective solution to many
embedded
control applications. The main advantages of 89s52 over 8051 are
Software Compatibility
Program Compatibility
Rewritability
The 89s52 microcontroller has an excellent software compatability, i.e.
the software used can be applicable to any other microcontroller. The
program written
on this microcontroller can be carried to any base.
Program compatibility is the major advantage in 89s52. The program
can be
used in any other advanced microcontroler. The program can be
reloaded and
changed for nearly 1000 times.

2.5:- 89S52 PROCESSOR ARCHITECTURE:


The AT89s52 provides the following standard features: 8K bytes of
Flash,
256 bytes of RAM, 32 I/O lines, three 16-bit timer/counters, a six-vector
two-level
interrupt architecture, a full-duplex serial port, on-chip oscillator, and
clock circuitry.
In addition, the AT89s52 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.

2.6:- PIN DESCRIPTION:

VCC
Supply voltage.

GND
Ground.

Port 0
Port 0 is an 8-bit open drain bi-directional I/O port. As an output port,
each pin
can sink eight TTL inputs. When 1s are written to port 0 pins, the pins
can be used as
high impedance inputs. Port 0 can also be configured to be the
multiplexed lower
order address/data bus during accesses to external program and data
memory. In this
mode, P0 has internalpullups.Port 0 also receives the code bytes during
Flash
programming and outputs the code bytes during program verification.
External pullups
are required during program verification.

Port 1
Port 1 is an 8-bit bi-directional I/O port with internal pull-ups. The Port
1 output
buffers can sink/source four TTL inputs. When 1s are written to Port 1
pins, they are
pulled high by the internal pull-ups and can be used as inputs. As inputs,
Port 1 pins
that are externally being pulled low will source current (IIL) because of
the internal
pull-ups. In addition, P1.0 and P1.1 can be configured to be the
timer/counter 2 external
count input (P1.0/T2) and the timer/counter 2

2.7:- PIN DIAGRAM OF 89S52


2.8:- DESIGN OF INFRARED
SENSOR CIRCUIT:
Pr inciple of operation of the I.R L.E.D . and
Phototransistor: -
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
2.9:- POSITIONING OF SENSORS:-
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.

2.10:- Infra-Red Sensor Array


2.11:- MOTOR DRIVER:-L293D
The L298 Motor Driver has 4 inputs to control the motion
of the motors and two enable inputs which are used for
switching the motors on and off. To control the speed of
the motors a PWM waveform with variable duty cycle is
applied to the enable pins. Rapidly switching the voltage
between Vs and GND gives an effective voltage between
Vs and GND whose value depends on the duty cycle of
PWM. 100% duty cycle corresponds to voltage equal to
Vs, 50 % corresponds to 0.5Vs and so on. The 1N4004
diodes are used to prevent back EMF of the motors from
disturbing the remaining circuit. Many circuits use L293D
for motor control, I chose L298 as it has current capacity
of 2A per channel @ 45V compared to 0.6 A @ 36 V of a
L293D. L293D’s package is not suitable for attaching a
good heat sink, practically you can’t use it above 16V
2.12:-COMPARATOR
2.13:- 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


2.14:- 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
2.15:-PIN CONNECTIONS
2.16:- Multipurpose Schematics and PCB
Designs
The Schematics and PCB Designs of the Electronic Circuits have been
done such that the PCBs are multipurpose and just with the minute
change in the number of components mounted on the PCB and some
change in the interconnections between the PCBs, they could be used for
all the robots. In fact the PCBs are made such that in most of the general
robotic applications these PCBs could be used.

2.17:-Line Following and Turning


The autonomous robots are required to perform their respective tasks
without any manual guidance. Thus the technique used to make the
robots reach the desired locations in order to perform their tasks is the
white line following, cross detection and turning technique using the
optoelectronic sensors. These optoelectronic sensors are actually
developed during the project using light to voltage converter IC –
OPT101 and LED. These sensors work on the principle of
reflective light amplification. The IC – OPT101 comprised of a
photodiode and amplifier. The light of LED reflects from the surface and
falls on to the OPT101 which is amplified by the amplifier inbuilt the
IC. The intensity of the light falling onto the photodiode of IC
depends upon the color of the surface. Thus while the sensor is on the
white line it gives the saturated output voltage where as while not on the
white line it gives a low voltage. This voltage is converted into a digital
signal using an analog comparator IC TLC324 where the second input to
the IC is a fixed voltage. Thus when the output voltage of the sensor is
below certain level i.e. when the sensor is not on white line it gives ‘0’
as the output whereas if the output voltage of the sensor is above certain
level i.e. when the sensor is on the white line it gives ‘1’ as the output.
Using six such sensors divided into two rows on in front and one at the
rear side the white line following is achieved. To make the robot follow
the white line various sequences of the possible states of the sensors are
considered and depending upon the same, position of the robot and
correction required in the proper direction is analyzed. Finally on the
basis of the required correction, PWM signal is applied to the H-Bridge
drive circuit which uses LMD18200T IC, and the straight line is
followed by the robot. For the motion of the robot high torque Maxon
Motors are used with the gearbox having 1:18 ratio of gear reduction.
While the robot follows the white line it is also required for the robot to
take 90 degree turn in certain direction. For the same the cross detection
is used in which the robot counts the number of crosses in the grid it
passes and when this number matches with the number of cross where it
has to turn or stop, the robot stops the straight line motion and the by
rotating both the motors in the opposite directions it takes the turn in the
desired direction till the desired sensor in the front line of the sensors
come onto the white line.
2.18:- WHAT IS ISP?
In-Syste m Programming (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.

2.19:- BLOCK DIAGRAM OF LINE


FOLLOWER ROBOT
2.20:- CIRCUIT DIAGRAM OF LINE
FOLLOWER ROBOT:-
2.22:- ONBOARD PIN
CONNECTIONS
2.23:- SOFTWARE
The software programs for the microcontroller have been developed
using Assembly Level Programming language. Microcontroller used in
the project is 89S52 manufactured by atmel which is 8052 based
microcontroller. Thus for microcontroller software programming
Evaluation Version of Assembler – 8051IDE developed by AceBus has
been used to assemble, compile and simulate the software programs. The
benefit of using AT89S52 microcontroller is that the AT89S52 is a low-
power, high-performance CMOS 8-bit microcontroller with 8K
bytes of in-system programmable Flash memory. The device is
manufactured using Atmel’s high-density nonvolatile memory
technology and is compatible with the industry- standard 80C51
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 in-
system programmable Flash on a monolithic chip, the Atmel AT89S52 is
a powerful microcontroller which provides a highly-flexible and cost-
effective solution to many embedded control applications. The AT89S52
provides the following standard features: 8K bytes of Flash, 256 bytes
of RAM, 32 I/O lines, Watchdog timer, two data pointers, three 16-bit
timer/counters, a six-vector two-level interrupt architecture, a full duplex
serial port, on-chip oscillator, and clock circuitry. In addition, the
AT89S52 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 interrupt or hardware reset.
2.24:- 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
2.25:- HEX CODE GENERATED FOR
THE CODE
: 020000000150AD
: 1000500079FF7A0475A000A2909286A2919287E51A
: 10006000905403B4000ED283C285D281C28079FF3E
: 100070007A040157B4011ED283C285C281D280792D
: 10008000FF7A04E5905403B40306D904DA0201B8F8
: 100090002090F00157B4021EC283D285D281C28063
: 1000A00079FF7A04E5905403B40306D9E3DAE10159
: 1000B000B82091F00157D99FD283D285D281D280C6
: 0200C00001C07D
: 00000001FF
2.26:- 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.
2.27:- REFERENCES AND RESOURCES
Books :
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

Vous aimerez peut-être aussi