Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed...

30
Workshop on Line Follower Robo-car Organized By: Telecom Club Presented By Mohammed Abdul Kader Assistant Professor, Dept. of EEE, IIUC Email:[email protected] Website: kader05cuet.wordpress.com

Transcript of Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed...

Page 1: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on Line Follower Robo-car

Organized By: Telecom Club

Presented By

Mohammed Abdul Kader

Assistant Professor, Dept. of EEE, IIUC

Email:[email protected] Website: kader05cuet.wordpress.com

Page 2: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 2

Line Follower Robo-Car

Line follower robo-car is a simple example of automated system with feedback.

Line follower robot is a robo car that can follow a path. The path can be visible like a black

line on the white surface (or vice-verse). It is an integrated design from the

knowledge of Mechanical, Electrical and Computer engineering.

Page 3: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Required Components

DC Motor

IR Sensor

Chassis Microcontroller

Motor Driver

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 3

Page 4: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Timer/ Counter

I/O Port

What is Microcontroller?

Micro-computer in a single chip.

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 4

Page 5: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Name of Some Microcontroller Manufacturer

ATMEL (AVR microcontroller)

Microchip (PIC microcontroller)

Texas Instruments (TI)

Freescale

Philips

Motorola ARDUINO

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 5

Page 6: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Crystal Oscillator Program Loader Microcontroller Linear Voltage Regulator

Advantages of Arduino: Reduces hardware complexity

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 6

Page 7: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Advantages of Arduino: Programming Easy

• Programming in C

• Lot of functions in the library.

• No need to learn internal

architecture of microcontroller.

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 7

Page 8: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Arduino UNO Digital I/O Pins

Vcc and GND Pins

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 8

Page 9: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Digital I/O Pins

Most of the important pins of microcontroller are digital input-output pins.

These pins are used to connect INPUT Device (i.e. Push Button, keypad, digital sensors

etc) and OUTPUT Device (i.e. LED, Display, Relay, Motor etc.) with microcontroller.

These pins can act as INPUT or

OUTPUT.

Digital Output pin means microcontroller

can make this pin HIGH or LOW state

(Write Operation).

Digital Input pin means microcontroller

can read HIGH or LOW state from other

devices (Read Operation).

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 9

Page 10: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Configuring Digital I/O Pins

digitalWrite(pin number, HIGH/LOW)

digitalWrite(13,HIGH)

digitalWrite(13,LOW)

pinMode(pin Number, OUTPUT)

An LED is connected with pin 13.

The pin should be an OUTPUT pin.

We can configure a pin as OUTPUT by

“pinMode” function.

pinMode(13, OUTPUT)

Configuring as OUTPUT

Making a Pin HIGH or LOW

Microcontroller can make a digital pin HIGH or LOW by

digitalWrite function.

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 10

Page 11: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Program Structure in ARDUINO

Verify Program

Load Program

Processor run the instructions

written here only once after

loading program or reset .

Serial monitor

Processor run the instructions written here

repeatedly after loading program or reset .

i.e. void loop() function creates an infinite

loop.

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 11

Page 12: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

void setup()

{

pinMode(13,OUTPUT);

}

void loop()

{

digitalWrite(13,HIGH);

delay(300);

digitalWrite(13,LOW);

delay(300);

}

LED Blinking

Note: To insert a time delay in the program use following function-

delay(time_in_ms);

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 12

Page 13: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 13

When IR falls in IR

photo diode

When IR doesn’t fall in

IR photo diode

How IR sensor works

Page 14: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 14

Sensing Line (Distinguishing Between Black and White Colors)

OUTPUT is LOW

when sensor gets

white surface

OUTPUT is HIGH

when sensor gets

Black surface

Page 15: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 15

Sensor Module

Page 16: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 16

Reading IR Sensor

Boolean a;

void setup()

{

pinMode(7,INPUT);

}

void loop()

{

a=digitalRead(7);

}

Page 17: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Moving a Robocar

Workshop on "Line Follower Robocar", By-Mohammaed Abdul

Kader,Assistant Prof, EEE, IIUC

17

Page 18: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Direction control of DC Motor

+

-

+

-

HIGH

LOW

2.7 to 5V

0 to 0.5V

40 mA

P=VI = 5 X 40 mA = 200 mW= 0.2 W

Not enough power to drive a DC motor.

The DC motor used in our project

needs voltage of 6 to 12 V and 300-

1000 mA current. Minimum of

(6X300) =1800 mW or, 1.8 W power

So, OUTPUT pins of microcontroller can not

drive the DC motor required in our project.

How can we control the direction of DC motor

by microcontroller? Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC

18

Page 19: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

H-Bridge Motor driver

HIGH

LOW

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE,

IIUC 19

Page 20: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

HIGH

LOW

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof,

EEE, IIUC 20

H-Bridge Motor driver

Page 21: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

LOW

HIGH

ON

ON

OFF

OFF

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 21

H-Bridge Motor driver

Page 22: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

HIGH

LOW

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 22

H-Bridge Motor driver

Page 23: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Motor Driver IC (L298N)

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 23

Page 24: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 24

Speed Control of DC Motor

In ARDUINO,

duty cycle of PWM is set by the function

analogWrite(pin_no, duty_cycle)

Where, duty_cycle = 0 to 255 (0 to 100%)

Page 25: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

L298 Motor Driver Module

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 25

Page 26: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 26

Tracking Algorithm (Principle of line tracking):

Page 27: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 27

Start

Left_Sensor==HIGH and

right_sensor==HIGH

Read left_sensor

and right_sensor

Rotate both

motor in

forward

YES

A

Left_Sensor==LOW and

right_sensor==HIGH

Stop left motor

and rotate right

motor in forward

A

YES

NO

Left_Sensor==HIGH and

right_sensor==LOW

Stop right motor

and rotate left

motor in forward

A

YES

NO

Stop both motors

NO

A

END

Flow-Chart

Page 28: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 28

Circuit Diagram

Page 29: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 29

Program

int rightsensor=6;

int leftsensor=7;

int rightmotorP=12;

int rightmotorN=11;

int leftmotorP=10;

int leftmotorN=9;

void setup() {

pinMode(rightsensor,INPUT);

pinMode(leftsensor,INPUT);

pinMode(rightmotorP,OUTPUT);

pinMode(rightmotorN,OUTPUT);

pinMode(leftmotorP,OUTPUT);

pinMode(leftmotorN,OUTPUT);

analogWrite(5, 100);

analogWrite(3,100);

}

void loop() {

boolean rs=digitalRead(rightsensor);

boolean ls=digitalRead(leftsensor);

if(rs==HIGH && ls==HIGH)

{

digitalWrite(rightmotorP,HIGH);

digitalWrite(rightmotorN,LOW);

digitalWrite(leftmotorP, HIGH);

digitalWrite(leftmotorN, LOW);

}

else if(rs==HIGH && ls==LOW)

{

digitalWrite(rightmotorP,LOW);

digitalWrite(rightmotorN,LOW);

digitalWrite(leftmotorP, HIGH);

digitalWrite(leftmotorN, LOW);

}

else if(rs==LOW && ls==HIGH)

{

digitalWrite(rightmotorP,HIGH);

digitalWrite(rightmotorN,LOW);

digitalWrite(leftmotorP, LOW);

digitalWrite(leftmotorN, LOW);

}

Page 30: Workshop on Microcontroller - · PDF file2 Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC Line Follower Robo-Car Line follower robo-car is

Workshop on "Line Follower Robocar", By-Mohammaed Abdul Kader,Assistant Prof, EEE, IIUC 30

else

{

digitalWrite(rightmotorP,LOW);

digitalWrite(rightmotorN,LOW);

digitalWrite(leftmotorP, LOW);

digitalWrite(leftmotorN, LOW);

delay(50);

digitalWrite(rightmotorP,LOW);

digitalWrite(rightmotorN,HIGH);

digitalWrite(leftmotorN, HIGH);

digitalWrite(leftmotorP, LOW);

delay(50);

}

}