LINE FOLLOWER ROBOT
USING
Micro-Controllers
WALCHAND INSTITUTE OF TECHNOLOGY,SOLAPUR
Robo Club
BY
WASI QAZI
What is a uC ?
In simple words -- a single chip Computer
Computer
• uP• RAM
• HDD
• Clock
• Ports (Serial/USB)
• Ports (Parallel)
• Mic/Headphone Jack (ADC/ DAC)
• Power Supply Unit
• Reset
• Mother-board
uC
• uP• Flash Memory
• EEPROM
• Clock Unit
• SPI / UART Controllers
• Digital I/O Ports
• ADC
• Power Supply Unit
• Reset
• IC
THE BLOCK DIAGRAM
Microcontroller H - Bridge DC Motor Control Left Motor Right Motor Clock 12Mhz Main Power Supply Motor Power Supply HEX Inverter Sensor Array Analog Comparators Threshold Voltage Priority Encoder NOR GateSensors
• A sensor is a device which measures a physical
quantity and converts it into a signal which can
be read by an observer or by an instrument.
• They are used to provide feedback from the
external environment
IR Sensor Pair
Transmitter (Tx)
Receiver (Rx)
IR sensor Pair Object / Line
Transmitter = LED( Light Emitting Diode) Receiver = Photodiode
Principle of Operation
R1< R2 WHITE surface Maximum reflection T1 is turned ON Vout is LOW BLACK surface Minimum or No Reflection T1 is turned OFF Vout is HIGHADC BY OP-AMP:
G N D
Line Follower : Design
The bot has two IR sensors
facing downwards (towards the
floor).
The separation between the
sensors is such that in normal
(correct) position of the bot , both
the sensors are on white
surface. ie separation > strip
width
The bot is driven by two wheel
differential drive ie the two back
wheels
are
driven
by
independent motors.
Sleft
Line Follower : Algo
When the bot is in correct pos,
both sensors are on white & read
LOW. The robot should move
forward in this case.
Sleft Sright Movement
LOW LOW Forward Sleft
Line Follower : Algo
When the bot is over line from
right side, left sensor is on white
& reads LOW whereas right
sensor is on black & reads HIGH
The robot should take a right turn
in this case to come back in
correct pos.
Sleft Sright Movement
LOW HIGH Right Turn Sleft
Line Follower : Algo
When the bot is over line from
left side, right sensor is on white
& reads LOW whereas left
sensor is on black & reads HIGH
The robot should take a left turn
in this case to come back in
correct pos.
Sleft Sright Movement
HIGH LOW Left Turn
S
left
S
Line Follower
Sleft Sright Movement Left Motor Right Motor
LOW LOW Forward Forward Forward LOW HIGH Right Turn Forward Back HIGH LOW Left Turn Back Forward
Atmega16L :
An Overview
8-bit Micro-cotroller 40-pin DIP
32 Programmable I/O Lines Operating Voltages 2.7 - 5.5V Speed Grades 0 - 8 MHz
16K Bytes of In-System Self-programmable Flash program memory 512 Bytes EEPROM
Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
8-channel, 10-bit ADC
Programmable Serial USART
Master/Slave SPI Serial Interface
Programmable Watchdog Timer with Separate On-chip Oscillator On-chip Analog Comparator
Simplified Diagram
Port Architecture
P O R T A D D R A P I N A uC External worldComplete Program
A program to o/p 33 (hex) on PortD and configure and read pins 2 and 7 of Port A
#include <mega16.h> void main( )
{
unsigned int x,y;
DDRD=0xFF; // all pins o/p
DDRA=0b01111011; // pin 7 & 2 i/p rest immaterial
PORTD=0x33; x=PINA.2;
y=PINA.7; }
Similarly other 2 o/p are connected /disconnected by I/p 3 & I/P 4
All the O/p’s operate independently, ie if all I/p 1-I/p 4 are 1, all O/p1 – O/p4 will be connected to +VPP
L298 can provide 1A current / Output channel , therefore total of 4A. But heat sinks should be installed for such high
currents .
VPP can be anything in the range 2V- 46V , therefore any
A T M E G A MOTOR DRIVER MOTOR 4 Inputs 4 Outputs
I/p 1 ( O/p from uC) I/p 2 I/p 3 I/p 4 O/p 4 O/p 3 O/p 2 O/p 1
If uC send ‘1’ to I/p 1, O/p is conn
to + VPP GND
+VPP
If uC send ‘0’ to I/p 1, O/p is conn to GND
I/p 1 ( O/p from uC) I/p 2 I/p 3 I/p 4 O/p 4 O/p 3 O/p 2 O/p 1
If uC send ‘1’ to I/p 2, O/p is conn
to + VPP GND
+VPP
If uC send ‘0’ to I/p 1, O/p is conn to GND
I/p 1 ( O/p from uC) I/p 2 I/p 3 I/p 4 O/p 4 O/p 3 O/p 2 O/p 1
If uC send ‘1’ to I/p 2, O/p is conn
to + VPP GND
+VPP
If uC send ‘0’ to I/p 1, O/p is conn to GND
I/p 1 ( O/p from uC) I/p 2 I/p 3 I/p 4 O/p 4 O/p 3 O/p 2 O/p 1
If uC send ‘1’ to I/p 2, O/p is conn
to + VPP GND
+VPP
If uC send ‘0’ to I/p 1, O/p is conn to GND