0% found this document useful (0 votes)
76 views56 pages

Project Obstactle Avoid

This document presents a project report on the design of an obstacle avoiding robot car based on an Arduino microcontroller. It was submitted by a group of four students at Haldia Institute of Technology in partial fulfillment of their Bachelor of Technology degree in electrical engineering. The report describes the objectives of designing an autonomous robot capable of moving and avoiding obstacles on its own in an unknown environment. It discusses the methodology used, including simulations and building the practical robot. The report is divided into five chapters covering the introduction and background, literature review, details of the Arduino microcontroller, the final project construction and testing, and conclusions.

Uploaded by

Mahendra Mistri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views56 pages

Project Obstactle Avoid

This document presents a project report on the design of an obstacle avoiding robot car based on an Arduino microcontroller. It was submitted by a group of four students at Haldia Institute of Technology in partial fulfillment of their Bachelor of Technology degree in electrical engineering. The report describes the objectives of designing an autonomous robot capable of moving and avoiding obstacles on its own in an unknown environment. It discusses the methodology used, including simulations and building the practical robot. The report is divided into five chapters covering the introduction and background, literature review, details of the Arduino microcontroller, the final project construction and testing, and conclusions.

Uploaded by

Mahendra Mistri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

DESIGN OF AN OBSTACLE AVOIDING

ROBOT CARBASED ON ARDUINO


MICROCONTROLLER
A Project Report
Submitted in Partial Fulfillment of the
Requirements for the Degree of
BACHELOR OF TECHNOLOGY
(Electrical Engineering)
By
GROUP I

DEPARTMENT OF ELECTRICAL ENGINEERING


Submitted By
Monoj Mondal(01619131)

Mahendra Mistri(01619129)

Umakanta Khatua(01619137)

Animesh Maity(01619127)

Under the Supervision of


AYANDEEP GANGULY
Associate Professor
Department of Electrical Engineering

HALDIA INSTITUTE OF TECHNOLOGY


(AN AUTONOMOUS INSTITUTION UNDER MAKAUT, WEST BENGAL)
ICARE COMPLEX, HIT, HALDIA, PURBA MEDINIPUR, WEST BENGAL 721657
DECLARATION

We hereby certify that the project entitled “DESIGN OF AN OBSTACLE AVOIDING

ROBOT CARBASED ON ARDUINO MICROCONTROLLER” in partial fulfilment of

requirements for the award of degree of B.Tech. submitted in the Department of Department of

Electrical Engineering at HALDIA INSTITUTE OF TECHNOLOGY under MAULANA

ABUL KALAM AZAD UNIVERSITY OF TECHNOLOGY, WEST BENGAL (Formerly

known as WEST BENGAL UNIVERSITY OF TECHNOLOGY), KOLKATA is an

authentic record of our own work carried out under the supervision of Mr. AYANDEEP

GANGULY, Associate Professor. The matter presented has not been submitted by me in any

other University / Institute for the award of B.Tech. Degree.

Monoj Mondal(01619131) Mahendra Mistri(01619129) Umakanta Khatua(01619137)


Animesh Maity(01619127)

This is to certify that the above statement made by the candidate is correct to the best of my
knowledge.

Signature Of Supervisor Signature of HOD


Mr. Ayandeep Ganguly (Associate Dr. Dilip Dey (Professor)
Professor) Department Of Electrical
Department Of Engineering
Date: Electrical Engineering H.I.T, West Bengal
H.I.T, West Bengal Date:
Date:
ABSTRACT
In today’s world ROBOTICS is a fast growing and interesting field. ROBOT has

sufficient intelligence to cover the maximum area of provided space.

Introduces the design and implementation of an autonomous obstacle -avoiding robot

car using ultrasonic wave sensor in this thesis. By sending pulses, the obstacle

avoidance distance can be measured. At the same time, we can control steering gear

to realize the obstacle avoidancefunction. The robot car uses front axle steering, rear

wheel drive arrangement. Two drive tires are driven by two DC motors with gear

reduction mechanisms. Using Arduino MCU chip as the control core of the Robot

car. Through the design of the hardware and software system, webuild the robot car

platform and obtain good experimental effect.

Keywords: Wheeled ROBOT, Autonomous, Intelligent, Arduino microcontroller,

ArtificialIntelligence
1 Chapter One: Introduction and Background

1.1 Introduction
Robotics is part of Todays communication. In today’s world ROBOTICS
is fast growingand interesting field. It is simplest way for latest technology
modification. Now a day’s communication is part of advancement of
technology, so I decided to work on ROBOTICSfield, and design
something which will make human life simpler in today aspect.

An autonomous robot is a robot that is capable of moving on its own in an


unknown and unstructured environment. An autonomous robot is equipped
with software intelligence to sense its environment, detect obstacles in its
path and move around an unknown environmentovercoming the obstacles.
There are many robotic designs that are employed in designing of
autonomous robots. These designs are usually developed considering the
physical environment in which the robot has to be deployed. There are
autonomous robots like snake robots, walking robots, autonomous drones
and autonomous robotic cars or rovers.

This ROBOT has sufficient intelligence to cover the maximum area of


provided space. It has an infrared sensor which are used to sense the
obstacles coming in between the path ofROBOT.
It will move in a particular direction and avoid the obstacle which is
coming in its path. The main motto of designing such type of Robot or the
technology is that this technology can be used in today’s very fast
transportation to avoid the accident generally happen in congested by
applying emergency break. If we use this technology in the car or any
vehicle,it will automatically sense the obstacles then it will take a side to the

1
available free space.
An obstacle may be a living things or any object.

Autonomous Intelligent Robots are robots that can perform desired tasks in
unstructured environments without continuous human guidance. Thus, by
using this technology in vehicleswe make the drive safe.

1.2 The main Objectives


The main objectives of the project are comprehended as follows:
 the obstacle avoidance robot is able to move around in an
unknown environmentwithout colliding with surrounding
objects.
 The robot would have the capacity to detect obstacles in its
path based on apredetermined threshold distance.
 After obstacle detection, the robot would change its course to a
relatively open pathby making autonomous decision.
 It would require no external control during its operation.
 It can measure the distance between itself and the surrounding objects in real-
time.
 It would be able to operate effectively in unknown environment.
 Obstacle avoiding robots can be used in almost all mobile robot navigation
systems
 They can be used for household work like automatic vacuum cleaning.
 They can also be used in dangerous environments, where human
penetration could befatal.

1.3 Methodology
 simulations of Obstacle-avoiding Robot will be performed
before and afteroptimization in Proteus Simulink, and
others tools if needed.
 The methodology may include research, surveys and other research
techniques, andcould include both present and historical
information.
 Prepare the required components to do a practical

2
simulation by Arduinomicrocontrollers to make the
Robot
 Start to design the final project

1.4 Project Layout


This project has been divided to five chapters as following:
chapter one is gives the introduction and the objective and methodology of
proposed ObstacleAvoiding Robot design. Chapter two consist of History
and Literature Review. Chapter threeshows the introduction to Arduino,
Overview, History, Development, Evolution, Arduino past and present,
Arduino Boards, Features of Arduino Boards. Chapter four shows The Final
Project Construction, Testing, Results.
Chapter five contains conclusion and recommendation.

3
2 Chapter Two: History and Literature Review

2.1 Artificial Intelligence


Artificial intelligence is the branch of computer science that develops
machines and softwarewith human-like intelligence. It is the intelligence
exhibited by software or machines. The central goals of artificial intelligence
research include knowledge, reasoning, learning, planning, perception, the
ability to manipulate and move objects and natural language processing.
The field was founded on the claim that a central property of humans is
intelligence, and thatit can be sufficiently well described to the extent that a
machine can simulate it.

2.2 Robotics and Robots


It is a branch of technology and deals with designing, construction, operation,
and applicationof robots. It also deals with the computer systems for their
sensory, control, information processing and feedback. These technologies
deal with automated machines that can replace humans in manufacturing
processes or dangerous environments. These robots resemble humans in
behavior, appearance, and/or cognition. Robotics requires a working
knowledge ofmechanics, electronics, and software [15].
Robots are machines and are of a wide range. The common feature of robots
is their capability to move. They perform physical tasks. Robots have many
different forms. They range from industrial robots, whose appearance is
dictated by the function they are to perform. Or they can be humanoid
robots, which mimic the human movement and our form.Robots can be
grouped generally as:
 Manipulator robots (for e.g. industrial robots)
 Mobile robots (for e.g. autonomous vehicles),
 Self-reconfigurable robots, the robots that can conform
themselves to the task athand.

Robots may act according to their own decision-making ability, provided by


artificial intelligence or may be controlled directly by a human, such as

4
remotely-controlled bomb- disposal robots and robotic arms; or. However,
the majority of robots fall in between theseextremes, being controlled by pre-
programmed computers [2].

2.3 Robot Working


Human beings on a basic level are made of five major components:

 A muscle system that can move the body structure


 A body structure itself
 A power source that can activate the muscles and sensors
 A sensory system which can receive information about
the body and thesurrounding environment
 A brain system which can process sensory information and tell
the muscles whatto do.

Robots are made up of the same components as above. A typical


autonomous robot has asensor system, a movable physical structure, a
power supply and a computer brain that controls all of these elements.
Basically, robots are man-made versions of the animal life.They are
machines that can replicate human and animal behavior.

2.4 The Actuator


All robots have a movable body (almost all). Some have motorized wheels
only, while othersmay have a dozen of movable parts (that are typically
made of plastic or metal). Like bones in a human body, the individual
segments are connected together with the help of joints.

Robots use actuators to spin wheels and jointed pivot. Some robots use
solenoids and electricmotors as actuators; others some use a pneumatic
system (a system driven by compressed gases); yet others use a hydraulic
system. A robot may even use all of these actuator types together.
Robots need a power source to be able to drive the actuators. Most robots
have a battery or they plug into an electricity source. Pneumatic robots need
air compressors or compressed airtanks and hydraulic robots need a pump
that pressurizes the hydraulic fluid. The actuators arewired to an electrical

5
circuit. The circuit powers these electrical motors and solenoids directly. It
also activates the hydraulic system by manipulating electrical valves. The
valves determine the pressurized fluid's path through the machine.

2.5 Robot Learning


Robot learning is an intersecting research field between robotics and machine
learning. It studies techniques that allow robots to acquire skills and adapt to
its environment by learningvarious algorithms. Learning can take place either
by self-exploration or through guidance (from a human teacher), like in robot
learning that learns by imitation

2.6 Autonomous Robot


Autonomous robots are independent of any controller and can act on their
own. The robot is programmed to respond in a particular way to an outside
stimulus. The bump-and-go robot isa good example. This robot uses bumper
sensors to detect obstacle. When the robot is turnedon, it moves in a straight
direction and when it hits an obstacle, the crash triggers its bumper sensor.
The robot gives a programming instruction that asks the robot to back up,
turn to the right direction and move forward. This is its response to every
bump. In this way, the robot can change direction every time, it encounters
an obstacle.

A more elaborate version of the same idea is used by more advanced robots.
Roboticists create new sensor systems and algorithms to make robots more
perceptive and smarter. Today, robots are able to effectively navigate a
variety of environments. Obstacle avoidancecan be implemented as a reactive
control law whereas path planning involves the pre- computation of an
obstacle-free path which a controller will then guide a robot along.

Some mobile robots also use various ultrasound sensors to see obstacles or
infrared. These sensors work in a similar fashion to animal echolocation. The
robot sends out a beam of infrared light or a sound signal. It then detects the
reflection of the signal. The robot locatesthis distance to the obstacles
depending on how long it takes the signal to bounce back.

6
Some advanced robots also use stereo vision. Two cameras provide robots
with depth perception. Image recognition software then gives them the
ability to locate, classify variousobjects. Robots also use smell and sound
sensors to gain knowledge about its surroundings.

More advanced robots are able to analyze unfamiliar environments and adapt
to them. Theyeven work on areas with rough terrain. This kind of robots can
associate particular terrain patterns with particular actions.
For example, a rover robot constructs a land map with the help of its visual
sensors. If the map depicts a bumpy terrain pattern, the robot decides to
travel some other way. Such kinds of system are very useful for exploratory
robots and can be used to operate on other planets. Figure 2.1 shows the bot
developed by NASA called Urbie. It is designed for various militarypurposes
and is able to move through stairs and other such paths .

Figure 2.1 Autonomous Urbie developed by NASA, is designed for various urban
operations,including military reconnaissance and rescue operations.

An ant tries to get over an obstacle, it does not decide when it needs to get
over an obstacle. Itsimply keeps trying different things until it gets over the
obstacle. An alternative robot designtakes a similar less structured approach,
which can also be termed as a randomness approach.When the robot gets
stuck, it moves its appendages in every way until something works out. Force
sensors work very closely with the actuators, instead of the computer
directing everything based on a program.

7
3 Chapter Three: Introduction to Arduino

3.1 Arduino Overview


Arduino is a popular programmable board used to create projects. It
consists of a simple hardware platform as well as a free source code editor
which has a “one click compiles or upload” feature. Hence it is designed in
way that one can use it without necessarily being anexpert programmer
(Kushner 1987). Arduino offers an open-source electronic prototyping
platform that is easy to use and flexible for both the software and hardware.
Arduino is ableto sense the environment through receiving input from
several sensors.
It is also able to control its surrounding through controlling motors, lights and
other actuators.The Arduino programming language that is based on the
wiring and the Arduino development environment that is based on the
processing are used to program the microcontroller found on the board
(Banzi, 2005). Due to its open-source environment, one is able to easily
write and upload codes to the I/O board. It is also worth to note that Arduino
can be run on Linux, Mac OSX and Windows as its environment is written in
Java

3.2 Arduino History


Arduino was released in 2005 by students from the Interaction Design
Institute Ivrea (IDII) as a modest tool for Mac OSX and Windows. Since
then, Arduino has been able to initiate aninternational-do-it yourself
revolution at the electronics industry. The open source microcontroller
hardware has been designed in a way that it can easily interface with various

8
sensors (registering user inputs) and driving the behaviors and responses of
the external components such as speakers, motors, and LED (responding to
the user inputs). The most important feature of Arduino is the ease of
programmability hence users with little expertise are able to use it. This
aspect has made Arduino one of the most popular tools of choice for
designers and artists in creating interactive spaces and objects (Arduino
Team).

3.3 Arduino Development


While discussing the development of Arduino, it is worth introducing a brief
history of microcontrollers. A revolutionary leap in the computing industry
was seen in the 1960s following the development of solid state computers
(including the IBM 1401), that used transistors to process its operations and a
magnetic core memory for its storage (instead of vacuum tubes), and these
enabled an increase in the compactness of the computer hardware. In
addition, Jack Kilby’s invention of integrated circuits in 1959 enabled
circuits and transistors to be fused into tiny chips of semiconducting
materials (like silicon) as well as further miniaturization of the computer
component. The other crucial development made in the same decade was the
high-level computer programming languages, written in symbolic languages
such as plain English, and this made computer codes somehow easy to learn
and read than the earlier machine languages that consisted of letters and
numbers only. This development enabled individuals with few years of
expertise to carry out the basic operationson a computer.
FORTRAN (for the scientific calculators) and COBOL (for business
application) were thetwo main languages that were introduced in that
period.
The microprocessor was one of the greatest innovations in the history of the
modern computer in the 1970’s. Initially, the microprocessor miniaturized all
the hardware components of CPU to fit into one, tiny, integrated circuit,
popularly known as the microchip.The microchip became the major driving
component of the microcontrollers including Arduino which is made up of a
microchip, input/output hardware and memory storage hardware for sensors.

9
The microprocessor, due to the small form factor, was incorporated into a
surfeit of electronic devices ranging from personal computers to calculators
and are still used up to date. More programming languages were also
developed in the 1970s and 80s including C, C++ and Java for applications in
science and business. (Massimo, 2005)

3.4 Arduino Evolution


Having looked at the evolution of microcontrollers, there have been recent
incarnations of themicrocontrollers that have been designed in a way to
fulfill the needs of hobbyists and casual users who happen to have a limited
technical knowledge. In other words, the microcontrollershave moved from
the more complex requirements in the scientific, business or commercial
fields. Before the invention of Arduino, the PIC microcontroller board that
was introduced bygeneral instruments in 1985 was one of the most used
tools for the electronic enthusiasts. Thereasons as to why the PIC
microcontroller board was preferred were the speed and ease of its
programming through simple languages including PBASIC. An additional
reason was that it was able to store programs on a flash memory chip that
enabled the instructions on the boardto be reprogrammed or erased at will
with an infinite number of possibilities. It also supported output devices
such as LEDs and motors as well as input sensors. There are other popular
boards for the hobbyists including BASIC Stamp and wiring which are some
of the microcontroller boards that were designed for tangible media
explorations and electronic art.The two boards share the advantages of ease
of rapid prototyping and simplicity of programming.
It was in 2005 when the Arduino team was formed in Italy and it consisted of
Barragan Massimo, David Cuartielles, Gianluca Marino, Dave Mellis and
Nicholas Zambetti. The maingoal of this team was to develop an electronic
prototyping platform that would simplify the wiring platform and make it
accessible to the non-technical users especially in the creative fields. The
Arduino, therefore, incorporated several characteristics including a
programming environment that is based on the processing language that was
conceived by Casey Reas and Ben Fry and other artists and designers.

10
Arduino also incorporated the ability to program its board using a standard
USB connection with a low price point (Wheat, 2001).

3.5 Arduino Past and Present


Within its first 2 years of existence, Arduino achieved rapid success where
more than 50, 000boards were sold. By 2009, Arduino had more than 13
different incarnations with each having a specialized application. For
instance, Arduino Mini was a miniature to be used in small interactive
objectives, Arduino BT was built with Bluetooth capabilities, and Arduino
Lilypad for wearable technologies projects. Today, the Arduino
microcontroller is a popular prototyping platform across the world and it is a
good example of how software and hardware technologies that were
originally created for business, military or scientific applications have been
repurposed so as to serve the needs of people developing projects in new
media and arts and design.

3.6 What are Arduino Boards?


Arduino board is an open-source platform used to make electronics projects.
It consists of both a microcontroller and a part of the software or Integrated
Development Environment (IDE) that runs on your PC, used to write &
upload computer code to the physical board. Theplatform of an Arduino has
become very famous with designers or students just starting out with
electronics, and for an excellent cause.

11
Figure 3.1 Types of Arduino Boards

3.7 Why Arduino Boards?


Arduino board has been used for making different engineering projects and
different applications. The Arduino software is very simple to use for
beginners, yet flexible adequatefor advanced users. It runs windows, Linux
and Mac.
Teachers and students in the schools utilize it to design low cost scientific
instruments to verify the principles of physics and chemistry. There are
numerous other microcontroller platforms obtainable for physical
computing. The Netmedia’s BX-24, Parallax Basic Stamp,MIT’s
Handyboard, Phidget and many others present related functionality.

Arduino also makes simpler the working process of microcontroller, but it


gives someadvantages over other systems for teachers, students and
beginners.
 Inexpensive
 Cross-platform
 Simple, clear programming environment
 Open source and extensible software
 Open source and extensible hardware

12
3.8 Features of Arduino Boards.

Arduino System
Processor Memory Digital I/O Analogue I/O
Board Voltage

Arduino Uno

16Mhz 2KB SRAM, 6 inputs, 0


5V 14
ATmega328 32KB flash output

Arduino Due
84MHz
96KB SRAM, 12 inputs, 2
3.3V AT91SAM3X 54
512KB flash outputs
8E

Arduino
Mega 16MHz 8KB SRAM, 16 inputs, 0
5V 54
ATmega2560 256KB flash output

Arduino
Leonardo 2.5KB
16MHz 12 inputs, 0
5V SRAM, 32KB 20
ATmega32u4 output
flash

Arduino
LilyPad
ATmega 168v 1KB SRAM, 6 inputs, 0
2.7-5.5 V 14
or 328v 16KB Flash output

Arduino
Nano
Atmel
2KB SRAM, 8 inputs, 0
5V ATmega328 14
32KB Flash output

13
Arduino FIO
3.3KB
ATmega328P 8 inputs, 0
3.3V SRAM, 32KB 14
output
Flash

Arduino
Mini
2KB SRAM, 8 inputs, 0
5v ATmega328 14
32KB Flash outputs

Arduino Pro
Mini
2KB SRAM, 6 inputs, 0
3.3V or 5V ATmega328 14
16KB Flash output

14
4 Chapter Four: The Final Project Construction, Testing,
Results

4.1 Block Diagram (Hardware Implementation)


Figure 4.1 below shows the block diagram that describes the process for
the designing anddevelopment of the hardware.
The hardware implementation phase is divided into
six components.The components are:
 HC-SR04 Ultrasonic Sensor
 BO Motor
 Arduino nano R3
 L293D Motor Driver IC
 Power Supply
 Left DC Motor and Right DC Motor

Each component has been explained below along with their circuital
representation as used inthe building of the robot. The software
implementation is included in the microcontroller phase

Figure 4.1 Block diagram depicting the Hardware Implementation for the project

15
4.1.1 HC-SR04 Ultrasonic Sensor

Figure 4.3 Diagram of the basic ultrasonic sensor operation

4.1.1.1 HC-SR04 Ultrasonic Sensor – Overview


 What is an ultrasonic?
 ULTRA = BEYOND
 SONIC = SOUND The sound beyond human hearing
range(20000Hz) is knownas ultrasonic.
 What is Ultrasonic sensor?
 Ultrasonic sensors are sensors that convert ultrasound waves to
electrical signalsor vice versa.

An Ultrasonic sensor is a device that can measure the distance to an object by


using sound waves. It measures distance by sending out a sound wave at a
specific frequency and listening for that sound wave to bounce back. By
recording the elapsed time between the sound wave being generated and the
sound wave bouncing back, it is possible to calculate thedistance between the
sonar sensor and the object.

The HC-SR04 ultrasonic sensor uses sonar to determine distance to an


object like bats do. Itoffers excellent non-contact range detection with high
accuracy and stable readings in an easy-to-use package. From 2cm to 400
cm or 1” to 13 feet. Its operation is not affected by sunlight or black
material like sharp rangefinders are (although acoustically soft materials
like cloth can be difficult to detect). It comes complete with ultrasonic
transmitter and receiver module.

16
Since it is known that sound travels through air at about 344 m/s (1129 ft/s),
you can take the time for the sound wave to return and multiply it by 344
meters (or 1129 feet) to find the total round-trip distance of the sound wave.
Round-trip means that the sound wave traveled 2 times the distance to the
object before it was detected by the sensor; it includes the 'trip' from the
sonar sensor to the object AND the 'trip' from the object to the Ultrasonic
sensor (after thesound wave bounced off the object). To find the distance to
the object, simply divide the round-trip distance in half.

4.1.1.2 HC-SR04 Ultrasonic Sensor – Features


 Power Supply: +5V DC
 Quiescent Current: <2mA
 Working Current: 15mA
 Effectual Angle: <15°
 Ranging Distance: 2cm – 400 cm/1″
– 13ft
 Resolution: 0.3 cm
 Measuring Angle: 30 degrees
 Trigger Input Pulse width: 10uS
 Dimension: 45mm x 20mm x 15mm

4.1.1.3 HC-SR04 Ultrasonic Sensor Pin Configuration

17
Figure 4.4 Ultrasonic Sensor Pins

Pin Number Pin Name Description

1 VCC The VCC pin powers the sensor, typically with +5V

Trigger pin is an Input pin. This pin has to be kept high


2 Trigger
for 10us to initialize measurement by sending US wave.

Echo pin is an Output pin. This pin goes high for a


3 Echo period of time which will be equal to the time taken for
the US wave to return back to the sensor.

4 Ground This pin is connected to the Ground of the system.

4.1.1.1 HC-SR04 Ultrasonic Sensor – Work

Figure 4.5 Block Diagram of Ultrasonic Sensor work


The ultrasonic sensor uses sonar to determine the distance to an object.
Here’s what happens:
 the transmitter (trig pin) sends a signal: a high-frequency sound
 when the signal finds an object, it is reflected and
 the transmitter (echo pin) receives it.

18
For example, if the object is 10 cm away from the sensor, and the speed of
the sound is 340 m/s or 0.034 cm/µs the sound wave will need to travel about
294 u seconds. But what we willget from the Echo pin will be double that
number because the sound wave needs to travel forward and bounce
backward. So, in order to get the distance in cm we need to multiply the
received travel time value from the echo pin by 0.034 and divide it by 2 as
shown above.

4.1.1.2 HC-SR04 Ultrasonic Sensor - Applications


 Used to avoid and detect obstacles with robots like biped robot,
obstacle avoiderrobot, path finding robot etc.
 Used to measure the distance within a wide range of 2cm to 400cm
 Can be used to map the objects surrounding the sensor by rotating it
 Depth of certain places like wells, pits etc. can be measured
since the waves canpenetrate through water

4.1.2 L298N Motor Driver Shield

Figure 4.6 L298N Motor Driver Shield

4.1.2.1 L298N Motor Driver Shield – Overview

19
L298N module is a high voltage, high current dual full-bridge motor driver
module for controlling DC motor and stepper motor. It can control both the speed
and rotation direction of two DC motors. This module consists of an L298 dual-
channel H-Bridge motor driver IC. This module uses two techniques for the
control speed and rotation direction of the DC motors. These are PWM For
controlling the speed and H-Bridge For controlling rotation direction.

4.1.2.2 L298N Motor Driver Shield – Features

 Input Voltage: 3.2V~40Vdc.


 Driver: L298N Dual H Bridge DC Motor Driver
 Power Supply: DC 5 V – 35 V
 Peak current: 2 Amp
 Operating current range: 0 ~ 36mA
 Control signal input voltage range :
 Maximum power consumption: 20W (when the temperature T = 75 ℃).
 Storage temperature: -25 ℃ ~ +130 ℃.
 On-board +5V regulated Output supply (supply to controller board i.e. Arduino)

4.1.2.3 L298N Motor Driver Shield – Application


 It is used in Robotics projects requiring stepper motor interface.
 Multiple DIY projects.

4.1.3 SG-90 Servo Motor

Figure 4.7 SG-90 Servo Motor

4.1.3.1 Servo Motors – Overview


A servo motor is an electrical device which can push or rotate an object with
great precision. If we want to rotate and object at some specific angles or
distance, then we use servo motor. Itis just made up of simple motor which run
through servo mechanism. If motor is used is DC powered then it is called DC

20
servo motor, and if it is AC powered motor then it is called AC servo motor.
We can get a very high torque servo motor in a small and light weight
packages.Doe to these features they are being used in many applications like
toy car, RC helicopters andplanes, Robotics, Machine etc. The position of a
servo motor is decided by electrical pulse andits circuitry is placed beside the
motor.

Now day’s servo system has huge industrial applications. Servo motor
applications are also commonly seen in remote controlled toy cars for
controlling direction of motion and it is alsovery commonly used as the
motor which moves the tray of a CD or DVD player. Beside these there are
other hundreds of servo motor applications we see in our daily life. The main
reason behind using a servo is that it provides angular precision, i.e. it will
only rotate as much we want and then stop and wait for next signal to take
further action. This is unlike a normal electrical motor which starts rotating
as and when power is applied to it and the rotation continues until we switch
off the power. We cannot control the rotational progress ofelectrical motor;
but we can only control the speed of rotation and can turn it ON and OFF.

4.1.3.2 Servo Mechanism


It consists of three parts:
 Controlled device
 Output sensor
 Feedback system

It is a closed loop system where it uses positive feedback system to control


motion and finalposition of the shaft. Here the device is controlled by a
feedback signal generated by comparing output signal and reference input
signal.

21
Figure 4.8 diagram of Servo Closed Loop System
Here reference input signal is compared to reference output signal and the
third signal is produces by feedback system. And this third signal acts as
input signal to control device. Thissignal is present as long as feedback signal
is generated or there is difference between reference input signal and
reference output signal. So, the main task of servomechanism is to maintain
output of a system at desired value at presence of noises.

4.1.3.3 Servo Motors - Working principle


A servo consists of a Motor (DC or AC), a potentiometer, gear assembly and
a controllingcircuit.
First of all, we use gear assembly to reduce RPM and to increase torque of
motor. Say at initial position of servo motor shaft, the position of the
potentiometer knob is such that thereis no electrical signal generated at the
output port of the potentiometer. Now an electrical signal is given to
another input terminal of the error detector amplifier. Now difference
between these two signals, one comes from potentiometer and another
comes from other source, will be processed in feedback mechanism and
output will be provided in term of errorsignal. This error signal acts as the
input for motor and motor starts rotating. Now motor shaftis connected with
potentiometer and as motor rotates so the potentiometer and it will generate
a signal. So as the potentiometer’s angular position changes, its output
feedback signal changes. After sometime the position of potentiometer
reaches at a position that the output of potentiometer is same as external
signal provided. At this condition, there will be no output signal from the
amplifier to the motor input as there is no difference between external

22
appliedsignal and the signal generated at potentiometer, and in this situation
motor stops rotating.

4.1.3.4 Servo Motors – Controlling

Figure 4.9 Position of motor shaft when PWM is generated.


Servo motor is controlled by PWM (Pulse with Modulation) which is
provided by the controlwires. There is a minimum pulse, a maximum pulse
and a repetition rate. Servo motor can turn 90 degrees from either direction
form its neutral position. The servo motor expects to seea pulse every 20
milliseconds (MS) and the length of the pulse will determine how far the
motor turns. For example, as shown above Figure 4.9 a 1.5ms pulse will
make the motor turnto the 90° position, such as if pulse is shorter than 1.5ms
shaft moves to 0° and if it is longer than 1.5ms than it will turn the servo to
180°. Servo motor works on PWM (Pulse width modulation) principle,
means its angle of rotation is controlled by the duration of applied pulse to its
Control PIN.

Basically, servo motor is made up of DC motor which is controlled by a


variable resistor (potentiometer) and some gears. High speed force of DC
motor is converted into torque byGears. We know that WORK= FORCE
X DISTANCE, in DC motor Force is less and distance (speed) is high and
in Servo, force is High and distance is less. Potentiometer is connected to
the output shaft of the Servo, to calculate the angle and stop the DC motor
onrequired angle.
To recap, there are two important differences between the control pulse of
the servo motor versus the DC motor. First, on the servo motor, duty cycle
(on-time vs. off-time) has no meaning whatsoever—all that matters are the
absolute duration of the positive-going pulse, which corresponds to a

23
commanded output position of the servo shaft. Second, the servo hasits own
power electronics, so very little power flows over the control signal. All
power is draw from its power lead, which must be simply hooked up to a
high-current source of 5 volts.

4.1.3.5 Servo Motors – Applications


 Robotics
 Animatronics
 Radio Control Cars/Boats/Planes

4.1.3.6 Servo Motors – Advantages


 Low cost - (RC Servos) Smaller sized servos can be purchased for just a few
dollars.
 Variety - There is a wide range of sizes and torque ratings
 Simple to control - using logic level pulses from a
microcontroller or a dedicatedservo controller

4.1.4 DC motor

Figure 4.10 DC Motors

4.1.4.1 DC Motor – Overview


A Direct Current (DC) motor is a rotating electrical device that converts
direct current, of electrical energy, into mechanical energy. An Inductor
(coil) inside the DC motor produces amagnetic field that creates rotary
motion as DC voltage is applied to its terminal. Inside the motor is an iron
shaft, wrapped in a coil of wire. This shaft contains two fixed, North and
South, magnets on both sides which causes both a repulsive and attractive
force, in turn, producing torque.

24
4.1.4.2 DC Motor – Types
These types of motors are powered by direct current (DC).
 Brushed Motors
 Brushless Motors
 Planetary Gear Motors
 Spur Gear Motors
 Stepper Motors
 Coreless & Coreless Brushless Motors
 Servo Motors
 Gear heads Motors
4.1.4.3 DC Motor – Gear Motor

Figure 4.11 DC Motor – Gear Motor


Gear Motors – The most common electrical motors convert electrical energy
to mechanicalenergy.
A gear motor is an all-in-one combination of a motor and gearbox. The
addition of a gearhead to a motor reduces the speed while increasing the
torque output. The most importantparameters in regards to gear motors are
 Speed (rpm)
 Torque (lb.-in)
 Efficiency (%)

In order to select the most suitable gear motor for our application we must first compute:
 Load
 Speed
 Torque requirements for our application

25
4.2 robot working principle
The robot uses the Ultrasonic distance sensor to measure the distance in front
of it. When thisdistance reduces to a particular level, the robot interprets it to
mean the presence of an obstacle in its path. When the robot detects an
obstacle in its path, it stops, goes backward fora few cm, looks around (right
and left) then turn towards the direction that shows more free space in front
of it.

Figure 4.12 Block diagram of Robot working principle

4.3 Hardware components:


1. 1x Arduino Nano
2. 1x Robot Chassis as designed
3. 1x Arduino Motor Driver Shield L293N Model
4. 1x HC-SR04 Ultrasonic Sensor
5. 1x Micro Servo 9g (SG90)
6. 4x DC Motor + Gearbox
7. 4x Wheels
8. 1x Caster wheel
9. 2x
9v
Battery
10.1x
9v
Battery

26
Clip
11.Jumper
Wires as
required12.1x
ON/OFF
Switch

4.4 Necessary Tools and Machines:


 1x Soldering Iron (generic)
 Solder as required
 1x Hot Glue Gun (generic)
 Hot Glue as required
 Arduino IDE (Integrated Development Environment)
 Proteus 8 Pro Simulation Software

4.5 Constructing the Chassis


To begin, we start by coupling the chassis of the robot. The robot kit,
contains the chassis, two geared DC motors, the wheels, the front wheel,
battery holder, some screws, and wires.

Figure 4.14 Chassis Robot Components

27
 Step 1. Connect the motor and wheels to the chassis.
 To complete this step, we start by soldering the thick red
and black wires tothe positive and negative terminals of the
motors as shown in the image below.

Figure 4.16 Soldering the DC Motors

 attach the front wheel as shown in the image below.

Figure 4.17 attach the front wheel

28
 attach the rear wheels to the chassis

Figure 4.18 attach the rear wheels to the chassis

 Step 2. Prepare the Switch and connect the Power Source

we add a switch to the battery holder so that we will be able to turn the robot
on or off. The switch is connected according to the schematics shown below
and attached to the case using ahot glue. The Battery case is attached to the
chassis using a double-sided tape to ensure everything sticks together.

Figure 4.19 schematic circuit diagram of the switch and the power source

29
Figure 4.20 Soldering the ON/OFF Switch

 Step 3. installation the others parts of the robot

This step is to mount other parts of the robot before we start connecting their
wires. The motor shield is stacked on the Arduino and it is mounted on the
chassis using a double-sided tape. The current requirements of the motors are
often higher than what the Arduino can provide, that is why it’s important to
use the motor shield as it is equipped with additional circuitry to provide up
to 600mA current to each of the motors. This shield provides power tothe
motors and the servo motor and ultrasonic sensor and makes it much easier.
The Ultrasonic sensor is also mounted on the top of the servo motor which is
then mounted on thechassis using some screws.

30
 Step 4. Wire up the components

To simplify the connections, below is a pin map of how the components


connect, one to theother.
Wire up the components together as shown in the image below.

Figure 4.22 Schematics Block Diagram of wire up the components

 Ultrasonic Sensor ▶ Motor Shield


 VCC ▶ 5v
 Gnd ▶ Gnd
 Trig ▶ A4
 Echo ▶ A5

Figure 4.23 connect ultrasonic sensor Pins to the Motor Shield

31
Figure 4.24 Block Diagram of connect ultrasonic sensor Pins to the Motor
Shield
 Servo ▶ Motor Shield (Servo_2 port)
 Signal (yellow wire) ▶ S
 Vcc(Red wire) ▶ +
 Gnd(Blow wire) ▶ -

Figure 4.25 Wire up the Servo Motor to Motor Shield (Servo _ port 2)

 DC motors ▶ Motor Shield


 Left Motor ▶ M1
 Right Motor ▶ M2

32
Figure 4.26 Wire up the DC motors to Motor Shield

4.2 programing the robot code


The controller board is used to communicate with the PC using serial
communicator (USB connection). The data is transferred between them bit
by bit. An adaptor is used to supply power to the controller board and a
USB programmer is used to burn the hardware program(written in Arduino
IDE) into the Arduino board.
The Arduino integrated development environment (IDE) is a cross-platform
application (for Windows, macOS, Linux) that is written in the programming
language Java. It originated from the IDE for the languages Processing and
Wiring. It includes a code editor with featuressuch as text cutting and pasting,
searching and replacing text, automatic indenting, brace matching, and syntax
highlighting, and provides simple one-click mechanisms to compile and
upload programs to an Arduino board. It also contains a message area, a text
console, a toolbar with buttons for common functions and a hierarchy of
operation menus. The source code for the IDE is released under the GNU
General Public License, version 2.
The use of Artificial Intelligence in the designing of the robot is introduced
in the programming phase of the robot. The programming for the Obstacle
Detecting and AvoidingRobot is done in C Language and uses various pre-
defined header file.

33
Figure 4.27 Arduino integrated development environment (IDE)

34
4.7.1 Processes and flow of program

Figure 4.28 The Algorithm/ Flowchart Diagram of The Obstacle-avoiding


Robot Car Basedon Arduino
Microcontroller

35
4.7.2 Arduino Coding

The code uses three libraries. Two of them must be downloaded in order
for the program tocompile. The first one is the motor shield driver from
Adafruit. The second library is the NewPing library for the supersonic
distance sensor.
The first thing we do in the code is to include the libraries that have been
downloaded intothe code.

 Motor Shield Library


 New Ping Library
 Servo Motor Library

#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h>
Next, we declare the pins to which or ultrasonic sensor is connected to, and some
variables
which will be used to store info as the code runs then we set the speed of the
motors. We canset the motors speed in any value up to 255.
#define TRIG_PIN A4 // Arduino pin tied to trigger pin on the ultrasonic

sensor.

#define ECHO_PIN A5 // Arduino pin tied to echo pin on the ultrasonic sensor.

#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in

centimeters). Maximum sensor distance is rated at 250cm.

#define MAX_SPEED 200 // sets speed of DC motors

#define MAX_SPEED_OFFSET 20
Next, we Initialize the servo motor by creating an object of the servo library. We Also
initialize the Motors to which the wheels are connected using the AF library.
AF_DCMotor motor1(1, MOTOR12_1KHZ);
AF_DCMotor motor2(3, MOTOR12_1KHZ);

Servo myservo;
We then move into the void setup () function where we initialize the servo motor and we
set it to “look” straight. In my case, this was at 115 degrees angle. Next, we read the
distance a few times in order to get a valid distance measurement as shown below

36
void setup() {

myservo.attach(9); // Attaches the servo on pin 9 to servo object.

myservo.write(115);
delay(2000); // Wait for 2s.

distance = readPing(); // Get Ping Distance.

delay(100); // Wait for 100ms.

distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
}

Now we go to the loop function which executes every 40 Ms. If the distance
we measured isless than or equal to 15 cm, we stop the motors, reverse for
300ms, stop, look right and left and measure the distance in each direction. If
the distance in one direction is greater than theother we turn the robot to the
direction with the farthest/greatest distance and instruct it to move forward as
shown below.
void loop() {
int distanceR =
0;int distanceL
= 0;delay(40);

if(distance<=15)
{
moveStop();
delay(100);
moveBackward();
delay(300);
moveStop();
delay(200);
distanceR =
lookRight();
delay(200); 37
distanceL = lookLeft();
delay(200);

if(distanceR>=distanceL)
{
turnRight();
moveStop();
}else
{
turnLeft();
moveStop();
}
}else
{
moveForward();
}
distance = readPing();
}

4.7.3 Servo System

this autonomous robot (auto mode) has 5 statuses: move forward, stop, move
backward, scanright and left, and turn right or left. Since only 1 distance
sensor used in this project, the sensor must have the capability to turn around
to scan for alternative way to move so it must attach together with servo.
The servo shaft can be turn in 180 degrees to help the sensor scanthe
obstacle around and choose the clear path to move along. A homemade
bracket used to attach the sensor to the servo.

38
Figure 4.29 Turning function by servo motor to detect obstacles

4.7.3.1 Servo System Coding


int lookRight()

myservo.write(50);

myservo.write(170);

return distance;

39
4.7.4 Sensor System

The obstacle sensor is used avoiding the robot from the clash to any
external devices or thatis like walls, any obstacle which comes in its way.
Here I used the Ultrasonic Sensor as shown below.

Figure 4.30 Ultrasonic Sensor

4.7.4.1 Sensor System Coding

4.7.5 Driving system

we will be using the following rotation of wheel for steering and straight motion:

MOTION RIGHT Wheel Left Wheel


FORWARD Counter Clockwise Clockwise
BACKWARD Clockwise Counter Clockwise
Rotate RIGHT Counter Clockwise Counter Clockwise
Rotate LEFT Clockwise Clockwise

40
Figure 4.31 Robot Driving System

4.7.5.1 Driving system Coding

motor1.run(RELEASE);
motor2.run(RELEASE);

motor1.run(FORWARD);
motor2.run(FORWARD);

41
{
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet+MAX_SPEE
D_OFFSET); delay(5);
}
}
}

void moveBackward() // Move Backward Function for Motor Driver.

{
goesForwar
d=false;
motor1.run(
BACKWARD);
motor2.run(
BACKWARD);
for (speedSet = 0; speedSet < MAX_SPEED; speedSet
+=2) // slowlybring the speed up to avoid loading down the batteries

too quickly

{
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet+MAX_SPEE
D_OFFSET); delay(5);
}
}

void turnRight() // Turn Right Function for Motor Driver.

{
motor1.run(F
ORWARD);
motor2.run(BA
CKWARD);
delay(300);
motor1.run(F
ORWARD);

42
motor2.run(F
ORWARD);
}

void turnLeft() // Turn Left Function for Motor Driver.

{
motor1.run(BA
CKWARD);
motor2.run(F
ORWARD);

delay(300);
motor1.run(FORWARD);
motor2.run(FORWARD);
}

43
5 Chapter five: Conclusion and Recommendation.

5.1 Conclusion
Today we are in the world of robotics. Knowingly or unknowingly, we
have been usingdifferent types of robots in our daily life.
The project is “obstacle detection and the avoidance robot” is practically
proved by using the Ultrasonic sensor for sensing the robot, Motor Shield
Driver for the driving the dc motors, dcmotor is used for the movement of the
robot with the help of the Arduino Microcontroller.
A lot of factors determined the accuracy of the robot we designed. These
factors were the environmental phenomenon in which the robot was tested,
the number of obstacles present making the test space crowded or
relatively less crowded the type and shape of the obstacle(the robot is
designed for a uniform shaped obstacle).
These factors majorly affected the sensors. The accuracy of the robot is
dependent on thesensors used. Thus, the nature of the sensor and its
accuracy defined the accuracy of my robot.

5.2 Future Recommendations


 Adding a Camera: If the current project is interfaced with a camera
(e.g. a Webcam)robot can be driven beyond line-of-sight & range
becomes practically unlimited as networks have a very large range.
 Use as a fire fighting robot: By adding temperature sensor, water
tank and makingsome changes in programming we can use this
robot as firefighting robot.
 We can extend this project with wireless technology by IR (or) RF (or) ZIGBEE.
 We can use the DTMF receiver by using the mobile phone.
 This robot can be used for pick and place the required object by
giving directions tothe robot but ultrasonic sensor should be
replaced depending upon the application.

5.3 Future Works


To enable robots to be able to adapt to its environment is an important
domain of roboticsresearch. Whether this environment be underwater, on

44
land, underground, in the air or in space.
A fully autonomous robot has the ability to
 Work for an extended period of time without intervention from
human or a need forpower supply.
 Avoid situations that are harmful.

 Move either all or part of itself throughout its operating environment.

The most effective method to increase the accuracy of my robot is the


inclusion of better sensors, although the project cost might increase but the
accuracy will definitely increase as well as the problem space where the robot
can be used. Better actuators will result in a fasterand more efficient robot.

5.4 Advantages
 Collision control.
 It provides Safe Navigation.
 This is the basic of all robot and has a wide scope of extensions

5.5 Limitations
The performance of this robot mainly depends on the sensors and
number of sensors. The ultrasonic sensor used here is of commercial
application so it may easily undergointerference.

5.6 Problems Faced


Although the concept and design of the project seemed perfect, there were
some problemsfaced while actual implementation:
The sensor cannot accurately measure distance to an object if:
 Object > 3 meters
 Too shallow of angle
 Object is too small
 object surface is not reflective

45
Figure 5.1 Ultrasonic Sensor Problems Faced

46
BIBLIOGRAPHY

47
APPENDIX:

48
void loop() {
int distanceR = 0;int distanceL = 0; delay(40);

if(distance<=15)
{
moveStop(); delay(100); moveBackward();delay(300);
moveStop(); delay(200);
distanceR = lookRight();delay(200);
distanceL = lookLeft();delay(200);

if(distanceR>=distanceL)
{
turnRight();moveStop();
}else
{
turnLeft(); moveStop();
}
}else
{
moveForward();
}
distance = readPing();
}

49
int lookRight()
{
myservo.write(50);delay(500);
int distance = readPing();delay(100); myservo.write(115); return
distance;
}

int lookLeft()
{
myservo.write(170);delay(500);
int distance = readPing();delay(100); myservo.write(115); return
distance; delay(100);
}

int readPing() {delay(70);


int cm = sonar.ping_cm();if(cm==0)
{
cm = 250;
}
return cm;
}

void moveStop() { motor1.run(RELEASE);


motor2.run(RELEASE);

50
}

void moveForward() {if(!goesForward)


{
goesForward=true; motor1.run(FORWARD);
motor2.run(FORWARD);
for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) //
slowly bring the speed up toavoid loading down the batteries too
quickly
{
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet+MAX_SPEED_OFFSET);delay(5);
}
}
}

void moveBackward() { goesForward=false;


motor1.run(BACKWARD);motor2.run(BACKWARD);
for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) //
slowly bring the speed up toavoid loading down the batteries too
quickly
{
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet+MAX_SPEED_OFFSET);delay(5);
}
}
void turnRight() { motor1.run(FORWARD);
motor2.run(BACKWARD);

51
delay(300); motor1.run(FORWARD);motor2.run(FORWARD);
}
void turnLeft() { motor1.run(BACKWARD);
motor2.run(FORWARD); delay(300); motor1.run(FORWARD);
motor2.run(FORWARD);
}

52

You might also like