You are on page 1of 45

LINE FOLLOWING AND OBSTACLE AVOIDING CAR

Manan Shaileshkumar Shah


B.E., Gujarat University, India, 2005

PROJECT

Submitted in partial satisfaction of


the requirements for the degree of

MASTER OF SCIENCE

in

ELECTRICAL AND ELECTRONIC ENGINEERING

at

CALIFORNIA STATE UNIVERSITY, SACRAMENTO

FALL
2010
LINE FOLLOWING AND OBSTACLE AVOIDING CAR

A Project

by

Manan Shaileshkumar Shah

Approved by:

__________________________________, Committee Chair


Jing Pang, Ph. D.

__________________________________, Second Reader


Preetham Kumar, Ph. D.

____________________________
Date

ii
Student: Manan Shaileshkumar Shah

I certify that this student has met the requirements for format contained in the University

format manual, and that this project is suitable for shelving in the Library and credit is to

be awarded for the Project.

__________________________, Graduate Coordinator ________________


Preetham Kumar, Ph. D. Date

Department of Electrical and Electronic Engineering

iii
Abstract

of

LINE FOLLOWING AND OBSTACLE AVOIDING CAR

by

Manan Shaileshkumar Shah

Robots are becoming important in various fields. Robots can help humans in places

where human access is limited, like deep-sea exploration, hazardous waste site, and

thermal/nuclear power plants. Path tracing and obstacle avoiding robots are intelligent

robots that can perform desired tasks in unstructured environments by finding and

avoiding them without any human guidance. The purpose of this project is to design

autonomously driven car, which can perform path tracing and obstacle avoiding

controlled by microcontroller. IR sensors track the path and ping ultrasonic sensor sense

the obstacle on the line path. If there is any obstacle, the car will automatically divert its

position to left or right. This project is very useful for industries where automated

supervision is required.

_______________________, Committee Chair


Jing Pang, Ph. D.

_______________________
Date

iv
ACKNOWLEDGMENTS

With all due respect, I would like to thank my project advisor, Dr. Jing Pang for

assigning me very interesting project of Line Following and Object avoiding Car. She has

always encouraged me to work hard. It would be impossible to finish this project without

her valuable time, help, timely guidance and moral support. Her timely advice helped me

reach my goal and finish this project on time.

I would also like to thank Dr. Preetham Kumar for spending his valuable time on

proof reading my project report and giving valuable suggestion.

I would like to thank all my friends especially Nayan Patel, Chandrasekhar

Chukka, Nishith Shah and Siddharth Shah.

In the end, I would like to thank my family members especially my parents for

supporting me during the time of project, and providing constant support and warmth for

me to continue and successfully finish the project.

v
TABLE OF CONTENTS

Page

Acknowledgments..................................................................................................................... v
List of Tables ........................................................................................................................ viii
List of Figures .......................................................................................................................... ix
Chapter
1. INTRODUCTION .............................................................................................................. 1
1.1 Introduction............................................................................................................ 1
1.2 Organization of the Report..................................................................................... 2
2. BASIC DESIGN AND REQUIREMENTS ........................................................................ 3
2.1 Block Diagram ....................................................................................................... 3
2.2 Line Following & Obstacle Avoiding Car structure .............................................. 4
2.2.1 I.R. LED & Phototransistor ................................................................... 4
2.2.2 DC Motors ............................................................................................. 8
2.2.3 Differential Drive Mechanism ............................................................. 10
2.2.4 H-Bridge .............................................................................................. 11
3. ATMEL ATMEGA168 MICROCONTROLLER ............................................................ 16
3.1 Overview.............................................................................................................. 16
3.2 Description ........................................................................................................... 16
3.2.1 Pin Descriptions ................................................................................... 17
3.3 Block Diagram ..................................................................................................... 19
3.4 ATmega168 CCP Modules .................................................................................. 21
4. PING ULTRASONIC RANGE SENSOR ........................................................................ 24
4.1 What is PING Ultrasonic Range Sensor? ............................................................ 24
4.2 Working of Ping Ultrasonic Range Sensor ......................................................... 24
4.3 Practical Applications and Limitations ................................................................ 25
5. DESIGN OF OBSTACLE AVOIDING CAR .................................................................. 27
5.1 Implementation of Obstacle Avoiding Car ......................................................... 28
5.2 Flowchart of the Design ...................................................................................... 28
5.3 Results ................................................................................................................. 30
vi
6. CONCLUSION ................................................................................................................. 34
References…............................................................................................................................ 35

vii
LIST OF TABLES
Page

1. Table 2.1 DC Geared Motor Specifications.…….…………………………….. 9

2. Table 2.2 H-Bridge Operation Summary …………………………………...... 12

viii
LIST OF FIGURES
Page

1. Figure 2.1 Block Diagram of Line Following Car….……………………………. 3

2. Figure 2.2 IR Transmitter and Receiver..…………………………………..……. 5

3. Figure 2.3 Line Following with Only One Sensor Pair…………….……………. 6

4. Figure 2.4 Line Following with More than One Sensor Pair……………………. 7

5. Figure 2.5 Line Sensor Array………….…………………………………………. 8

6. Figure 2.6 DFRobot 6V DC Geared Motor...………………..…………………. 10

7. Figure 2.7 Differential Drive Mechanism………………………………………. 10

8. Figure 2.8 Ball Caster…………...…….…..……………………………………. 11

9. Figure 2.9 Basic Structure of a H-Bridge………………………………………. 12

10. Figure 2.10 Two Basic States of a H-Bridge……………………...……………. 13

11. Figure 2.11 Transistors as a Switch…..……………...…………………………. 13

12. Figure 2.12 L293D H-Bridge (Motor Driver)…………………………..………. 14

13. Figure 2.13 DC Motor Control with H-Bridge…………………………………. 15

14. Figure 3.1 ATmega168 Pin Configuration……..………………………………. 17

15. Figure 3.2 External Oscillator Configuration…..………………………………. 19

16. Figure 3.3 ATmega168 Block Diagram….……..………………………………. 20

17. Figure 3.4 16-bit Counter/Timer Diagram.……..………………………………. 21

18. Figure 3.5 TCCR0A Control Register..….……..………………………………. 22

19. Figure 3.6 TCCR1B Control Register...….……..…………………………...…. 22

ix
20. Figure 4.1 The Ping Sensor….……..………………………………………...…. 24

21. Figure 4.2 How the Ping Sensor Works……………………………………...…. 25

22. Figure 4.3 Limitations of Ping Ultrasonic Sensor…………………………...…. 26

23. Figure 5.1 Circuit Diagram of Obstacle Avoiding Car……………………...…. 27

24. Figure 5.2 Flowchart of the Design…………………..……………………...…. 29

25. Figure 5.3 Line Following Car I.……………………..……………………...…. 30

26. Figure 5.4 Line Following Car II……………………..……………………...…. 31

27. Figure 5.5 Object Avoiding Car..……………………..……………………...…. 31

x
1

Chapter 1

INTRODUCTION

1.1 Introduction

Line following car is a system that traces black lines on white surfaces. There are

various sensing methods available to sense these lines. The choice of these schemes

depends upon sensing accuracy and required flexibility. In my project, I have used 6 Tx

LEDs and 6 IR sensors to accurately calculate the position of the robot on the tape.

Sensors keep sensing the line and microcontroller system will keeps maneuvering the

robot to stay on the course. In addition, microcontroller constantly keep correcting wrong

moves using feedback from previous states, making it an effective closed loop system.

The core of the car is ATMEGA168 microcontroller from ATMEL. To detect the

line, 6 IR LEDS (Tx) and 6 IR sensors (Rx) are used with distance between each sensor is

25mm. The Tx will emit the light, this light will be reflected by the black line and Rx will

receive it. These signals will be sent to microcontroller comparator.

There are many ways to move a car [1]. In addition, I used differential steering

method. It relies on two back-wheels, DC motor is connected to each of the two wheels

on the back and front wheels were kept free for easy turning. For forward drive, both

motors are given same voltage. In addition, for right turn, the voltage on the right wheel

needs to be reduced to decrease the rotation of the wheel. Exact opposite is applied for

left turn.
2

1.2 Organization of the Report

Chapter two of the report explains the fundamentals of line following and

Obstacle avoiding car structure. It explains in detail about DC Motors, Differential Drive

Mechanism and H-Bridge.

Chapter three gives information about ATmega168 microcontroller. It

summarizes the features of ATmega168 microcontroller. It also explains about

timer/counter registers and specific application of those registers in this project.

Chapter four explains about Ping))) ultrasonic sensor used for object detecting

and avoiding. Use of this sensor in this project and the limitations are also discussed.

Chapter five contains information about the implementation of the algorithm for

object avoiding car. It discusses about various steps of algorithm in detail. Suitable

images are also provided to show output at different stages in applied algorithm.

Chapter six presents the result of the project, challenges, limitations and future

applications are discussed.


3

Chapter 2
BASIC DESIGN AND REQUIREMENTS

2.1 Block Diagram

This car it built using ATmega168, IR sensors, Motor Driver (LM293D) and

aluminum chassis [3]. At the bottom, it has line sensor array to detect the line and send

signal to microcontroller for accurate control and steering of motors. Microcontroller

ATmega168 and motor driver L293D are used to control the motors.

Figure 2.1 Block Diagram of Line Following Car


4

Basic operations for line following car are as follows:

1) Capture the black line with the help of mounted sensors on the car. The sensors used

are opto-couplers i.e. they consisting of transmitting and receiving LEDs.

2) Steer the car to track the line with differential steering method. This is achieved by

using two DC geared motors.

2.2 Line Following & Obstacle Avoiding Car Structure

Structure of the line following car can be divided into several parts as follows.

• I.R. LEDs and Phototransistor

• DC geared motors

• Motor Drivers

• ATmega168 microcontroller

• Chassis and body structure

2.2.1 I.R. LED and Phototransistor

Sensors are important components in the process of making line follower [3].

There are different types of sensors available to use for line following car. When

selecting sensors, three characteristics should be kept in mind: response time, sensitivity

and ambient light protection.

As I.R. LEDs have good response time [3], they are used as sensors in this

project. Moreover, they are less sensitive to ambient light. A photodiode has a p-i-n

structure. When an infrared photon of sufficient energy strikes on the diode, it excites an

electron and creates free electron and hole. Due to absorption in depletion region of the
5

junction, holes move toward the anode and electrons move toward the cathode, which

generates photocurrent [4]. The LED and detector have very narrow emission and

detection angles, so their placement is very important. Best method to place them is to

place them in parallel and also close to the track surface. In this case, they are placed

apart by 5-7 mm. Figure 2.2 shows a pair of similar type of I.R LED and sensor.

Figure 2.2 IR Transmitter and Receiver

To get accurate result for line tracing more than one Tx/Rx pairs are used. Use of

fewer numbers of pair will make the car wobble about the line and may not be fast

enough. Figure 2.3 & 2.4 describes this situation in detail.


6

Figure 2.3 Line Following with Only One Sensor Pair [3]

Figure 2.3 shows most basic algorithm of line following, which includes only one

sensor. The sensor is placed on the right. When sensor detects no line, it will move the

car to the left, after this, when sensor detects the line, it will move the car to right. As a

result, the car with algorithm will wobble along the line and the detection speed will also

be slow. [3]
7

Figure 2.4 Line Following with more than One Sensor Pair [3]

The modification of the method used as in Figure 2.3 is to use more number of

sensors. If the sensors are used on the both side of the line as shown in Figure 2.4, then
8

line detection will be less wavering along the line. So if left sensor senses the line then it

will move the car on the left and if right sensor sense the line then it will move the car on

the right [3]. To get more precise line tracing result, Line Sensor Array is used. In this

project, 7 sensors are totally used. They are placed in the form shown in Figure 2.5. The

sensors are mounted on a seperated board along with the biasing amplifiers and a power

is provided with 2 pin connector. Output of each sensor is connected to the main board

via an 8-pin connector to the comparators on the main board. To prevent the interference

among IR sensor, each receiving sensor is covered with black tape.

Figure 2.5 Line Sensor Array

2.2.2 DC Motors

DC motors are widely used, inexpensive, small and poweful for their size. They

are most easy to control. One DC motor requires only two singals for its operation. They

are non-polarized, means you can reverse the voltage without any damage to motor. DC

motors have +ve and –ve leads. Connecting them to a DC voltage source moves motor in

one direction (clockwise) and by reversing the polarity, the DC motor will move in
9

opposite direction (counter clockwise). The maximum speed of DC motor is specified in

rpm (rotation per minute). It has two rpms: no load and loaded. The rpm is reduces when

moving a load or decreases when load increases. Other specifications of DC motors are

voltage and current ratings. Table 2.1 shows the specifications of the motor used in the

project.

Characterisitcs Value
Operating Voltage 3V to 6 V
Operating Current 3A Max.
Speed 180 RPM
Torque 30 gm-cm

Table 2.1 DC Geared Motor Specifications

Speed of the motor can be changed by changing the applied voltage across motor.

DC motors don’t have enough torque to drive the car directly by connecting wheels with

it. As noticed in table 2.1, the torque provide can hardly move 30 gm of weight. This is

not acceptable if requred load capacity is in Kgs. To achieve more torque by gears, the

speed will be reduced and effectively increase the torque. One more advantage of using

gearbox motors instead of DC motors is it has gears and an axle, so speed does not

change towards uphill or downhill. It is noteable that the more speed is, the less precesion

will be. Figure 2.6 shows the DC geared motor used in this project.
10

Figure 2.6 DFRobot 6V DC Geared Motor

2.2.3 Differential Drive Mechanism

This is the most common locomotion scheme used for building cars. It is a

method of controlling a car with only two polarized wheels. It is easy to build, easy to

control and permits the car to move in all directions. In this method two motors are

connected to each left and right wheels at car’s base. These two motors are responsible of

driving the car in desired direction. This system allows car to spin in its place [6].

Figure 2.7 Differential Drive Mechanism [7]


11

The term “differential” means that car’s turning speed is determined by the speed

difference between both wheels. Figure 2.7 shows in a simplified way the principle of

operation of differential drive. If both motors rotate in the same direction at equal speeds

the car will move forward or backwards based on the rotation of the wheel. If the speed

of one motor is faster then the other, the car will turn in the direction of the slower motor.

If both motor rotates in opposite directions, the car will spin in its place [7].

This kind of two wheel differential drive system needs one or more caster wheels

(free wheels) to support the rest of the chassis while freely following the movement of

the robt engaged by the two main drive wheels. In this perticular project, only one caster

was enough. It is shown in Figure 2.8.

Figure 2.8 Ball Caster

2.2.4 H-Bridge

H-Bridge is an electronic circuit which enables a voltage to be applied on either

side of the load and the H-bridge DC motors allow the car to run backwards or forwards.

H-Bridge is a configuration of 4 switches, which switch in a specific manner to control

the direction of the current through the motor. Figure 2.9 shows simplified H-bridge as

switches. The states of these four switches can be changed in order to change the voltage

across the motor, of the current flow and the rotation of motor [7] [8].
12

Figure 2.9 Basic Structure of a H-Bridge [8]

In Figure 2.9, all switches are open and the motor terminals are disconnected from

the circuit. This state allows the motor to spin freely. If we open switches S1 & S4 and

close S2 & S3 as in first part of Figure 2.10 there will be current flow across the circuit

and motor will run. But if S1, S4 are close and S2, S3 are open, the voltage across the

motor will switch around and that will cause the motor to rotate in the opposite direction.

Table 2.2 summarizes the basic operation of the H-bridge depending upon the voltage

applied across the switches [8].

S1 S2 S3 S4 Result
1 0 0 1 Motor moves right
0 1 1 0 Motor moves left
0 0 0 0 Motor free runs
0 1 0 1 Motor brakes
1 0 1 0 Motor brakes

Table 2.2 H-Bridge Operation Summary [9]


13

Figure 2.10 Two Basic States of a H-Bridge

To control the speed and direction of the DC motor from the microcontroller, this

simple H-bridge will be of no use. H-bridge which make use of transistors works best for

robotics projects. These transistors work as switch and they can control the current flow

in the motor easily. Figure 2.11 shows transistor as a switch.

Figure 2.11 Transistors as a Switch

The difference between the mechanical switch and the transistor switch is that

mechanical switch can be turned on or off mechanically but a transistors switch can be

turned on or off by applying small current at the base. For an NPN transistor, when a

small current of 20mA is applied to the base of the transistor, current will flow from
14

collector to emitter. In case of, for PNP transistor, the current will flow from emitter to

collector. For transistor to work as switch, the applied voltage at base needs to be higher

than collector voltage for NPN transistor and lower than collector voltage for PNP

transistor [9].

In this project, the H-bridge IC used is L293D. “The L293D is a monolithic

integrated, high voltage, high current, 4-channel driver” [10]. The L293D supports two

DC motors. Pin 8 is voltage for the motors and pin 16 is the +5 voltage for the chip. First

motor is connected between pin 3 and 6. The motor is turned on by sending a high signal

to both the enable (pin 1) pin and one of the two direction pins, i.e. pin 2 or pin 7. To stop

motor, the enable pin is high and both pin 2 and pin 7 are low [11].

Figure 2.12 L293D H Bridge (Motor Driver)

The same goes for the other side of the chip. When using two motors, the best

practice is to connect pins 2 and 15 togather and pin 7 and 10. Figure 2.13 shows the

control of the DC motors with L293D and microcontroller signal [11].


15

Figure 2.13 DC Motor Control with H-Bridge [11]

Motor drivers are the simplest modules that provide power amplification for low-

level control singals like PWM and direction supplied by the user.
16

Chapter 3

ATMEL ATMEGA168 MICROCONTROLLER

3.1 Overview

ATmega168 is widely used because it supports wide range of system

development tools such as C Compliers, Macro assemblers, Program

Debugger/Simulators, In-circuit Emulators and Evaluation Kits [2].

Its features includes: 23 general purpose I/O lines, 32 general purpose working

registers, three flexible timer/counters with compare/capture/PWM mode, a SPI serial

port, 16K bytes of in-system programmable Flash with Read-while-Write capabilities.

512 bytes of EEPROM and 1K bytes SRAM. In Idle mode CPU stops working while

allowing the SRAM, timers/counters, USART, SPI port and interrupt system to continue

functioning. It also has 6 channel 10-bit ADC, a programmable watchdog timer with

internal oscillator [2].

3.2 Description

Following diagram shows the detailed pin diagram of the ATmega168.

The device is manufactured using Atmel’s high-density non-volatile memory technology.

“The on-chip ISP flash allows the program memory to be reprogrammed in-system

through an SPI serial interface, by a conventional non-volatile memory programmer, or

by an on chip boot program running the AVR core” [12].


17

Figure 3.1 ATmega168 Pin Configuration [12]

3.2.1 Pin Descriptions

VCC

Digital supply voltage.

GND

Ground voltage for the microcontroller chip.

PORT B (PB7:0)

Port B is an 8-bit bi-directional I/O Port with internal pull-up resistors. As Inputs,

Port B pins that are externally pulled low will source current if the pull-up resistors are

activated [12].

Depending on the clock selection fuse settings, PB6 can be used as input to the

inverting oscillator amplifier and input to the internal clock operating circuit [12].
18

Depending on the clock selection fuse settings, PB7 can be used as output from

inverting oscillating amplifier [12].

PORT C (PC5:0)

Port C is a 7-bit bi-directional I/O port with internal pull-up resistors. As inputs,

Port C pins that are externally pulled low will source current if the pull-up resistors are

activated [12].

PC6/RESET

If the RSTDISBL register is programmed, PC6 is used as I/O pin. Behavior of

PC6 is different from other Port C pins.

If RSTDISBL is not programmed, PC6 can be used as a Reset input. A low level

on this pin for longer than the minimum pulse length will generate a reset even without

the clock signal. Shorter pulses are not guaranteed to generate a Reset [12].

PORT D (PD7:0)

Port D is an 8-bit bi-directional I/O port with internal pull-up resistors. As inputs,

Port C pins that are externally pulled low will source current if the pull-up resistors are

activated. The Port D pins become tri-stated if the reset condition become active, even if

the clock is running [12].

AVCC

AVCC is the supply pin for the A/D Convertor, PC[5:0]. It should be externally

connected to VCC, even if the ADC is not used. If the ADC is used it should be connected

to VCC through low pass filter [12].


19

AREF

AREF is an analog reference pin for the A/D convertor.

XTAL1

It is an input to the inverting oscillator amplifier and the internal clock circuit [2].

XTAL2

It is an output pin from the inverting oscillator amplifier.

Oscillator Characteristics

As shown in Figure 3.2, XTAL1 is input and XTAL2 is output of an inverting

amplifier that can be configured for use as an on-chip oscillator. To use external

oscillator as clock source, XTAL2 should be left unconnected while XTAL1 is driven.

Quartz crystal or ceramic resonator can be used as oscillator.

Figure 3.2 External Oscillator Configuration

3.3 Block Diagram

Figure 3.2 shows the block diagram of the ATMEL ATmega168 microcontroller.

The AVR core has 32 general-purpose registers. All these registers are directly connected

to the Arithmetic Logic Unit (ALU), allowing two independent registers to be accessed in
20

one single instruction executed in one clock cycle. The resulting architecture is code

efficient [12]

Figure 3.3 ATmega168 Block Diagram

The device is manufactured using Atmel’s high-density non-volatile memory

technology. “The on-chip ISP flash allows the program memory to be reprogrammed in-

system through an SPI serial interface, by a conventional non-volatile memory

programmer, or by an on chip boot program running the AVR core” [12].


21

3.4 ATmega168 CCP Modules

Each CCP (Capture/Compare/PWM) module contains a 16-bit register which can

be operate as 16-bit capture register, as a 16-bit compare register or as a 16-bit PWM

master/slave duty cycle register. The CCP modules are identical in operation, with the

exception of the operation of the special event trigger [12].

Most registers and bit references for this IC are written in general form. For

example, a lower case “n” replaces the Timer/Counter number, and a lower case “x”

replaces the output compare unit channel. When these registers or bits are defined in a

program, they are declared as TCNT2 for accessing Timer/Counter2 counter value and so

on. Figure 3.3 shows a block diagram for the 16-bit Timer/Counter [12].

Figure 3.4 16-bit Counter/Timer Diagram [12]


22

3.4.1 Registers

TCCR1A – Timer/Counter1 Control Register A

Figure 3.5 TCCR0A Control Register

Bit [7:6] – COM1A1:0 Compare Output Mode for Channel A

Bit [5:4] - COM1B1:0 Compare Output Mode for Channel B

For this project, TCCR1A register value is changing many times. Main function

used was to drive the motor in forward and reverse direction. For forward direction,

TCCR1A is set to 0x81. As a result the value of WGM[13:10] is “0101”. With this value,

the timer/counter will work in 8-bit Fast PWM and the value of COM1A[1:0] value is set

to “10” to clear OC1A port upon the compare match. For reverse driving TCCR1A is set

to 0x21 with same 8-bit Fast PWM mode. To stop the motor TCCR1A is set to 0x00.

TCCR1B – Timer/Counter1 Control Register A

Figure 3.6 TCCR1B Control Register

Bit [0:2] – CS[10:12] Clock Select Bits

For this project, I did not use any scaling of the clock. CS[10:12] is set to “001”.
23

Bit [4:3] – WGM[13:12] Waveform Generation Mode

These bits are used in conjunction with TCCR1A Control Register bits

WGM[11:10] to set the timer/counter mode as 8-bit Fast PWM.


24

Chapter 4

PING ULTRASONIC RANGE SENSOR

4.1 What is PING Ultrasonic Range Sensor?

The Ping Sensor is a device to measure the distance between sensor and the

object. With a range of 3 centimeters to 3 meters, it is easy to use in most of the robotics

projects that involve distance measure or object avoiding. Its accuracy is half centimeter

that means it can easily detect the object’s distance. Figure 4.1 shows PING Ultrasonic

Sensor [13].

Figure 4.1 The Ping Sensor [13]

4.2 Working of Ping Ultrasonic Range Sensor

Figure 4.2 shows how the Ping sensor sends a brief chirp with its ultrasonic

speaker and makes it possible for the basic stamp to measure the time it takes the echo

from the object to reach the microphone of the sensor. Controller will send a signal to

Ping sensor to start the measurement. Then, the Ping sensor waits for the controller to

start the Pulsein command. At the same time, the sensor will chirp 40 kHz tone and sends

high signal to the controller.


25

Figure 4.2 How the Ping Sensor Works [13]

When ping sensor detects the echo with its ultrasonic microphone, it changes that

high signal back to low, and the controller will store the time signal high pulse

information. That time measurement tells how long it takes sound to travel to the object

and back. With this measurement, the speed of light can be considered as reference and

the distance of the object can be measured in the desired unit (centimeter, feet etc…)

[13].

4.3 Practical Applications and Limitations

Being an Ultrasonic range sensor, Ping is really useful in various applications

such as measuring the distance of the object, then based upon distance measuring or

detecting obstacle, object avoidance can be implemented too. It can use to implement

maze-solving car [13].

When using Ping ultrasonic range sensor, position of the target object is also

important. If the object is placed as shown in Figure 4.3, then Ping microphone will not

be able to hear the reflected signal and the object detection will be a problem. Also even

if the distance between object and receiver is more than 3 meters, the object detection
26

will be a problem. Also, if Ping detector is placed very low near the surface, then it may

detect sound reflecting off the floor [13].

Figure 4.3 Limitations of Ping Ultrasonic Sensor

Moreover, the target object material also plays an important role when using Ping

ultrasonic sensor. Sound absorbing objects, objects with soft or irregular surface such as

stuffed animals and pillows may not reflect the sound with enough intensity to make

detection easy. Ping detector should not be used outside in wet environment.

“Condensation on its transducers may reduce its lifespan” [13].


27

Chapter 5

DESIGN OF OBSTACLE AVOIDING CAR

This chapter describes the behavior and architecture of the obstacle-avoiding car.

In this project, the car follows the black track using line following sensors and it also

look for the objects/obstacles coming on the path. The car will choose its own path

whereby if it meets obstacle on the path. Ping ultrasonic sensor helps measuring the

distance between the object and help in making turn.

Figure 5.1 shows the circuit diagram for the obstacle-avoiding car, Ping ultrasonic

sensor will chirp the sound at 38 KHz, but it is inaudible to human ears. Once it sends the

sound signal out, it will send high signal to INT0 pin of the controller to set the interrupt

control bit “1”.

Figure 5.1 Circuit Diagram of Obstacle Avoiding Car


28

The microphone of the ping ultrasonic sensor waits for the reflecting signal from

the object. Once it receives the echo, it will send a signal to INT0 interrupt to set INT0 to

“0”. Next, the total time for which signal was high will give the distance between sensor

and the object. If that distance is less than 10 cm, then INT0 will send a signal to OC1A

and OC1B registers to change the speed of the motors and so that motor will turn

approximately 90° right. That means the right motor connected to OC1B will rotate at

lower speed then compared to left motor which allows differential drive with right turn.

5.1 Implementation of Obstacle Avoiding Car

Figure 5.1 shows the circuit diagram for the design. In that design Vout pin of the

ultrasonic sensor is connected to pin 4 (INT0) of the microcontroller via 330 ohm

resistor. I used 0.1 μF bypass capacitor on the output pin +5 V of the voltage regulator

L7805 to smooth out the supply voltage to microcontroller. PWM output from

microcontroller is given to pin 2 of the H-bridge. H-Bridge acts as a high power switch.

This H-Bridge switches on and off at PWM frequency and controls the speed of the

motors. There is a LED connected to Vout pin and microcontroller pin so that if there is a

signal then LED will glow and it will indicate the activity of the sensor.

5.2 Flowchart of the Design

Figure 5.2 shows flowchart of the design. When program executes the timer-

interrupt routine INT0 is initialized after reset. Ping ultrasonic sensor will transmit the

37Khz wave and it will send high signal to INT0 Interrupt Handler to start the counter.
29

Start

Timer-Interrupt Handler

Transmit Ultrasonic-wave at 37
Khz

No
Receive Echo

Yes

Get input from port C, copy to command


register

Calculate the distance of the Object

Yes Turn 90
Distance < 10
degrees
cm ?
RIght

No

Continue on Route

Figure 5.2 Flowchart of the Design

Now, ultrasonic microphone will scan for the echo from the object. Once echo is

received, INT0 interrupt pin will be set low. Now the total time difference between the

signal was high will be stored in the register. And the distance between the sensor and
30

object will be calculated in reference to the speed of the light. If the calculated distance is

less than 10 cm, then controller will set OC1A to low which is connected to right motor.

So now the car will take right turn on its axis. Car has successfully avoided the obstacle

and car will continue tracing the path and keep looking for the obstacle.

5.3 Results

Figure 5.3 shows the first part of the project. Sensor array is attached at the

bottom of the car to sense the black line. Breadboard on the top of the car contains the

microcontroller and front part of the car has sensors.

Figure 5.3 Line Following Car I


31

Figure 5.4 Line Following Car II

Figure 5.4 shows the working model of the line following car. The glowing LEDs

shows that the IR sensors have detected the black tape on the floor and these sensors send
32

the data to microcontroller and microcontroller controls the motor speed of the left and

right wheel. It works on the principal of differential drive mechanism.

Figure 5.5 Object Avoiding Car

Figure 5.5 shows the second part of the project, obstacle-avoiding car. Ping

ultrasonic sensor was drawing more power, so instead of giving one 9V DC power supply

to whole car, each part were given different power supply. The code includes the

calculation of the object with the average value calibration because Ping ultrasonic sensor

is calculating distance very rapidly and there may be fluctuation is the result. The time it

took for the ultrasonic wave to travel back from the object will be in microsecond. To

calculate the distance in centimeter I took the median of the sample data taken from the

test. For every 40 cm, it took 2150 microsecond for the ultrasonic wave to comeback.
33

Therefore, distance in centimeter is calculated from the time in microsecond divided by

55.
34

Chapter 6

CONCLUSION

Line following and object avoiding car is successfully completed. Many efforts

were put into design, implementation and days of toil in front of computer writing and

debugging the code. During the project, I did a lot of research work on the architecture

and development with Atmel microcontroller. Also, I became proficient in

microcontroller programming.

In the future, more complicated control of the car can be explored. More

advanced sensors may also be utilized to control the care more accurately.
35

REFERENCES

[1] Callahan, R, "Types of steering systems used on Robots.", (2010, 09),


http://www.ehow.com/list_7374953_types-steering-systems-used-robots.html

[2] David Cook, “Robot Building for Beginners”, 2nd ed., Apress, pp 247-250, January,
2010.

[3] Alexander Stoytchev, "Some Basic Principles of Developmental Robotics", IEEE


Transactions on Autonomous Mental Development, Vol. 1, No. 2, August 2009.

[4] Newport Inc., “Optical Meters and Detectors”, User Guide, pp 1-7, Sept 2009

[5] Pakdaman, M, Sanaatiyan, M.M., “Design and Implementation of Line Follower


Robot”, Proceedings of IEEE conference, pp 2-4, Dec. 2009.

[6] Ikalogic.com, “Robot Driving Mechanism”, Retrieved on November 18, 2010 From
the World Wide Web:
http://www.ikalogic.com/tut_mech_1.php

[7] Icreator.wordpress.com, “Differential Driving Mechanism”, Retrieved on November


10, 2010 From the World Wide Web:
http://icreator.wordpress.com/

[8] Vibhor Gupta, "Working and Analysis of the H – Bridge Motor Driver Circuit
Designed for Wheeled Mobile Robots", IEEE, 2010.

[9] Ikalogic.com, “Robot Driving Mechanism”, Retrieved on November 18, 2010 From
the World Wide Web:
http://www.ikalogic.com/h_bridge_old.php

[10] Luckylarry.co.uk, “DC Motor & H-Bridge Connections”, Retrieved on November


18, 2010 From the World Wide Web:
http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/

[11] Claudio Miklo, “DC Motor & H-Bridge Connections”, Retrieved on November 18,
2010 From the World Wide Web:
http://www.miklos.blog.br/2009/11/controlar-motores-dc-com-l293d.html

[12] Atmel Corporation, “8-bit Microcontroller with 8K Bytes In-System Programmable


Flash”, pp 1- 6, 109-137, 245-260, September 2007.

[13] Parallax Inc., “PING))) Ultrasonic Sensor”, pp 1- 6, September 2007.

You might also like