Complete Report

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 59

EE471: Design and development of robotic officemate “Ally”

[Pick the date]

Chapter 1: Introduction

1.1: Inspiration:

In this busy world, time is of the prime essence. Thus humans try to optimize the usage of
time. Also due to lack of resources, the optimum utilisation of resources is also very
important. Thus in order to use optimally the time and resources, robot is being made to
perform repetitive, redundant work with appreciable efficiency. Nowadays robots are also
used to perform tasks in various hazardous environments.

Just like any office, our department too consists of several official and administrative works
which requires the processing of various documents. These documents generally are needed
to be passed through different people either for notifications, signing etc. This passing of
documents from one person to another person sitting at a different table at a different location
is generally carried out by a human. But it really is a task which does not require the many
skills of a human being. It only needs to be transported. A human is resource is wasted to
perform this simple and unskilled job. Thus it struck our mind to replace this human resource
with an autonomous robot in order to save time as well as a precious human resource.

1.2: Overall aims of the Project :

1 To produce a robot platform for indoor use.


2 To design and build a sensor system allowing the robot to navigate around its environment.

The objective of this project is to build a robotic officemate for the purpose of carrying
documents from one table to another. In order to operate the proposed system in real
environment, it is very important for the officemate to be able to adapt to an environmental
changes that may occur in an indoor environment. While achieving its task it will also detect
obstacles on its way, avoid them, avoid falling off edges and also form a path from its present
location to its destination.

1.3: Overview:
The mobile robot is a three wheeled robot platform which employs the differential steering
mechanism for motion in given angles. Two DC geared motors have been used for the
driving wheels. The robot has an array of onboard infrared sensors which is mounted on the
robot chassis. The movement of the robot is controlled by the Atmega328 microcontroller.

Now before we get into the details of how it works we will be covering certain information
which I hope will further improve our understanding of the robot and its actions.

Page 1
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

1.4: What is Robotics?

Robotics is an interdisciplinary branch of engineering and science that includes mechanical


engineering, electrical engineering, computer science, and others. Robotics deals with the
design, construction, operation, and use of robots, as well as computer systems for their
control, sensory feedback, and information processing.

1.5: What is a Robot?


A Robot is a programmable mechanical device that can accomplish the task and interact
without the aid of human interference, i.e. they portray walking, lifting, speech recognition
and intrinsically anything that human can do.

1.6: Why robotics is important?

Because it is far easier to evolve a robot into something better at a job than it is to evolve a
human to be better at a job. So while a human might be able to do piecework at some speed,
it is almost certain a robot can be designed to do that same piecework better, faster, more
economically, even more environmentally friendly

The project is to develop a robot that will move according to the code assigned but find a free
space, navigating from any obstacle on its way. This kind of obstacle is very useful in
industries where automated supervision is needed, for example, in places where it might be
risky for humans to be. This robot can also be made by putting other sensors like light sensors
or line sensors depending on the need. However, putting camera in the robot will make it a
smart robot that this may help humans if needed.

The project also provides a guideline to the students who are new in the world of Arduino
and help them to understand about embedded system, IR sensors, microcontroller and how to
make a robot using Arduino.

1.7: Reason for naming the robot “Ally”:


The word Ally means a person who is trustworthy and is morally responsible. Ally also
means friend. We wanted to make the robot a friend to the office- environment. Also
sometimes the robot needs to carry documents, which often can be confidential or important
documents. Thus we wanted to name it such that it gives the sense of the robot being
trustworthy as well as friendly.

Page 2
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 2: Terminology

2.1: Obstacle avoidance:


The word obstacle means something that obstructs or hinders progress. In robotics, obstacle
avoidance is the task of satisfying non-intersection or non-collision position constraints. In
simpler terms, this means that the robot while in motion, will identify any obstacle in its path,
and then avoid it by either turning left or right.
Normally obstacle avoidance is considered to be distinct from path planning in that one is
usually implemented as a reactive control law while the other involves the pre-computation
of an obstacle-free path which a controller will then guide a robot along.

2.2: Edge detector:


The word edge means the outside limit of an object, area, or surface. Since our robot is a
three- wheeled robot, it can move only on a plane horizontal surface. Any wall or particle in
its way is an obstacle. But when there is no more path to travel along any direction i.e. there
is no surface underneath, that point will be detected as an edge.
Now, when we say that the robot will act as an edge detector, it means that while in motion, if
the robot moves to any edge, will sense it and change its path to prevent itself from falling
and damaging itself. It will move back and then move left or right, depending on where any
path is available.

2.3: Autonomous Robot:


The word autonomy means making your own decision which is mainly an informed decision.
An autonomous robot performs tasks with a high degree of autonomy, which is particularly
desirable in fields such as spaceflight, household maintenance (such as cleaning), waste water
treatment and delivering goods and services. One important area of robotics research is to
enable the robot to cope with its environment whether on land, underwater, air, underground,
or in space.
A fully autonomous robot can:
1. Gain information about the environment
2. Work for an extended period without human intervention
3. Move either all or part of itself throughout its operating environment without human
assistance
4. Avoid situations that are harmful to people, property, or itself unless those are part of
its design specifications
An autonomous robot may also learn or gain new knowledge like adjusting for new methods
of accomplishing its tasks or adapting to changing surroundings. Like other machines,
autonomous robots still require regular maintenance.

Page 3
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 3: Literature Survey

Paper 1: Design of Microcontroller based 4 in 1 Robot, by Alka Verma, Ruchi Gupta,


Prakhar Gupta, August 2012

This paper demonstrates a prototype development of a Microcontroller Based Line Follower


Robot (LFR), Edge Detector, Obstacle Avoider and Path Finder Robot (PFR) using IR
sensors. One of the basic and most fundamental concepts with this robot based upon
microcontroller chips is that it is preprogrammed. Due to this preprogramming, robot can
sensed the signal in real time from sensor and perform task according to the program which
are already fixed. The proposed prototype systems is designed and demonstrated to
recognize, understand and modify the actual performance and the movements of the robot
following and finding the path by getting information in real time from five IR sensors
connected to ATMEGA-168 microcontroller. A computer program is implemented in C-
language and also controls the robot autonomously according to the received signals. The
system has been tested successfully in indoors.

Paper 2: An optimal approach of document carrying robot on Arduino Platform by Adarsh


K, Nikitha R Patil, August 2017

Robotics has become the most evolving field with an exciting and accessible tool for teaching
and supporting in science, technology, engineering, mathematics, design principles etc. As
technology proliferated, automation has ingrained into our daily lives, allowing a complex
application to become a reality. By this we can extricate energy, materials, manpower and
time, thus emphasizing its importance. Robotics indulges more affordability and reusability
of equipment as compared to other prepackaged options. Hence the quality, accuracy and
precision are better. In this paper an institution assistant system which is fully automated has
been presented. This machine was designed in order to mitigate the human to human
interference. This also gives an agile work performance in an institution. The perpendicular
line we used to halt the robot will be replaced by the RF IDs in the future work. Unique codes
to each and every classroom help the robot to halt in front of it. In order to recognize the
authenticated user, mini camera can also be used which is added to our future work. The
GSM module helps out the user by avoiding the signing at the end of the circular.

Paper 3: Adaptive Navigation of Mobile Robots with Obstacle Avoidance by Atsushi Fujimori,
Peter N. Nikiforuk, and Madan M. Gupta, August 1997

Robot navigation problems can be generally classified as global or local, depending upon the
environment surrounding the robot. In global navigation, the environment surrounding the
robot is known and a path which avoids the obstacles is selected. In one example of the
global navigation techniques, graphical maps which contain information about the obstacles
are used to determine a desirable path. In local navigation, the environment surrounding the
robot is unknown, or only partially known, and sensors have to be used to detect the obstacles
and a collision avoidance system must be incorporated into the robot to avoid the obstacles.

Page 4
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Paper 4: RFID positioning robot: An indoor navigation system by Brian Olszewski,


Steven Fenton, Brian Tworek, Jiao Liang, Kumar Yelamarthi, May 2013

The concept of utilizing RFID for indoor localization has been shown to be both technically
and economically feasible. The RFID positioning robot was successfully designed to provide
autonomous navigation for indoor applications. In the near future, we plan to improve the
localization and navigation algorithm to improve accuracy. Further analysis will be
performed to accurately identify a specified location by placing RFID tags at different
distances and orientations. While we are currently able to determine our location within
30cm, further analysis will provide improvement on the accuracy. Many different methods
have been proposed for localization of RFID system including Angle of Arrival (AOA),
Received Signal Strength Indicator (RSSI), and Time of Arrival (TOA). AOA measurement
determines the angle between the transmitter receiver line and the reference direction [13],
and the accuracy is dependent on number of receivers or the rotating device, and is more
suitable for operating outdoors. RSSI on the other hand uses signal strength to determine the
distance between the sender and receiver [13].

Page 5
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 4: Components Used

In order to make our autonomous robotic officemate “Ally” we used the following
components:

• Rechargeable 9V Ni-Mh Battery


• ATmega328 microcontroller (Arduino Uno)
• Infrared Sensors
• Motor Driver Circuit (L293D) [Dual H-Bridge]
• Geared DC motor
• Wheels
• Rotating wheel (castor wheel)
• Chassis
• Long range UHF integrated RFID reader and tag

4.1: Power Supply:

The power supply to the Arduino, the infrared sensors and the Motor driver circuit are
provided by the rechargeable 9V Nickel- Metal Hydride Battery. The Dc gear motors work
from the power provided by the motor driver.

4.2: 9V Nickel- Metal Hydride rechargeable battery:

The nine-volt battery, or 9-volt battery, is a common size of battery that was introduced for
the early transistor radios. It has a rectangular prism shape with rounded edges and a
polarized snap connector at the top. 9 Volt NiMH rechargeable batteries are ideal for
powering wireless microphones, remote controls, toys, electronic games, camping equipment,
tens units, metal detectors and so much more. The capacity of 9 Volt NiMH rechargeable
batteries ranges between 175 to 300 mAh (milli ampere hours). The higher the mAh rating
for the battery, the longer the run-time the battery will give you in one full charge.

Fig 1: 9V Ni-MH rechargeable battery

Page 6
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

There are many advantages to using a 9V Ni-MH cell of battery. These 9V Ni-MH battery
advantages include:

 High Energy Density: These have an average of 2200mAh (milliampere hours—the


amount of current in milliamperes that it can give multiplied by the time in hours.) This
is greater than the 1500mAh seen in Li-ion batteries. These are the standard numbers in
1.2v NiMHs and 3.7v Li-ions.

 Compatibility: If you have ten gadgets using an NiMH battery, you can use a single
pack to power them all. Not simultaneously of course. NiMH uses standard sizes so they
are compatible with all devices using sizes such as AAA or AA. Compared to Li-ions,
the sizes depend on the manufacturer or model of the device. I did see some AA size Li-
ions around the market so it may be worth checking them out.

 They Are Safer: They have less active materials compared to Li-ion batteries. NiMH
can pop if they are overcharged too much or short circuit but this is nothing compared to
a Li-ion which can potentially blow up.

 Can Be Completely Discharged: By this I mean they can be brought down to 0 charge,
if you can get it to reach that. They will still charge, just don't let it suffer from reverse
polarity or else they will be damaged.

There are certain disadvantages too of the 9V Ni-Mh batteries as follows:

 High Self Discharge Rate: NiMH lose a large percentage of their charge every month.
The number is around 5% on the first week after the charge and about 50% on the first
month. There are low-self discharge (LSD) rate types available. They are more reliable
than the standard NiMH but they have lower capacities, usually around 2000mAh.

 Unreliable for Low Load Devices: You should not use NiMH batteries for devices
such as clocks. They will lose charge faster through self-discharge rather than the load.
Use alkaline, Li-ion, or lithium batteries instead.

 Low Voltage Output: Each AA cell can only give 1.2v compared to Li-ion cells which
can give 3.7v.

 Long Charging Time: The standard charge time of a NiMH is 10-12 hours. Fast
charging these cells can result in damage. Li-ion cells can be charged at around 1-3
hours depending on capacity.

 Cannot Operate at Extreme Temperature: At extreme temperatures, NiMH voltage


output will drop. Li-ion batteries can tolerate these temperatures to some extent.

Page 7
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

4.3: DC geared motor:


Geared DC motors can be defined as an extension of DC motor. A geared DC Motor has a
gear assembly attached to the motor. The speed of motor is counted in terms of rotations of
the shaft per minute and is termed as RPM .The gear assembly helps in increasing the torque
and reducing the speed. Using the correct combination of gears in a gear motor, its speed can
be reduced to any desirable figure. This concept where gears reduce the speed of the vehicle
but increase its torque is known as gear reduction.
Working of the DC Geared Motor
 The DC motor works over a fair range of voltage. The higher the input voltage more
is the RPM (rotations per minute) of the motor. For example, if the motor works in the
range of 6-12V, it will have the least RPM at 6V and maximum at 12 V. In terms of
voltage, we can put the equation as: RPM= K1 * V, where, K1= induced voltage
constant V=voltage applied.
 The working of the gears can be explained by the principle of conservation of angular
momentum. The gear having smaller radius will cover more RPM than the one with
larger radius. However, the larger gear will give more torque to the smaller gear than
vice versa.

Fig 2: Geared Dc Motor

Page 8
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 5: Arduino

Arduino is an open source computer hardware and software company, project, and user
community that designs and manufactures single-board microcontrollers and microcontroller
kits for building digital devices and interactive objects that can sense and control objects in
the physical world.

Arduino board designs use a variety of microprocessors and controllers. The boards are
equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to
various expansion boards (shields) and other circuits. To the Arduino board, we can write
programs in personal computers and upload in it. The microcontrollers are typically
programmed using features from the programming languages C and C++. The Arduino
project provides an integrated development environment (IDE) in which the programs are
written into.

A program written with the IDE for Arduino is called a sketch. Sketches are saved on the
development computer as text files with the file extension .ino.

Fig 3: Arduino IDE

5.1: Arduino Uno:

Arduino Uno is a microcontroller board based on the ATmega328P. It has 14 digital


input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz
quartz crystal, a USB connection, a power jack, an ICSP header and a reset button. It contains
everything needed to support the microcontroller. We need to simply connect it to a computer
with a USB cable or power it with a AC-to-DC adapter or battery to get started. The power
source is selected automatically.

"Uno" means one in Italian and was chosen to mark the release of Arduino Software (IDE)
1.0. The Uno board and version 1.0 of Arduino Software (IDE) were the reference versions of

Page 9
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Arduino, now evolved to newer releases. The Uno board is the first in a series of USB
Arduino boards.

Fig 4: Arduino Uno board

Why chose Arduino Uno?

1. Arduino is widely available and is affordable in cost.


2. It has an fully open source software. Thus, we donot need to buy any software.
3. The programming interface is user friendly and is based mainly upon the basic
concept of C and C++. Thus it is easy to use and modify.
4. Can operate on any operating system.
5. It has lots of predefined library functions which can be used. Also by modifying the
codes of the library functions, we can create our own functions.
6. Since arduino is a complete package board including the microcontroller, we can
easily interface it to hardware, without worrying for complex connections.
7. It is the most widely used microcontroller board all around the world.

Page
10
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 6: Microcontroller:
A highly integrated chip that contains all the components comprises a controller. Typically
this includes a CPU, RAM, some form of ROM, I/O ports, and timers. Unlike a general-
purpose computer, which also includes all of these components, a microcontroller is designed
for a very specific task; to control a particular system. As a result, the parts can be simplified
and reduced, which cuts down on production costs. Microcontrollers are used in
automatically controlled products and devices, such as automobile engine control systems,
implantable medical devices, remote controls, office machines, appliances, power tools, toys
and other embedded systems.

6.1: ATMEGA328:

ATmega328 is a microcontroller chip found on Arduino Uno boards. ATmega328


microcontrollers are from the 8-bit AVR microcontroller family. The exact part number of
this chip is ATMEGA328P-PU as found printed on the top of the chip.

The ATmega328 plugs into a socket in the Arduino Uno as shown in the image below. There
are some Arduino Uno boards that have a surface mount ATmega328 chip. In this case it is a
small square chip soldered on top of the Arduino.

crocontroller Fig 6: Atmega328 microcontroller chip embedded


in Arduino Uno board

What the Microcontroller Does


On an Arduino, the microcontroller is the main component that does all of the work. When an
Arduino sketch is loaded to the Arduino it is actually loaded to memory inside the
microcontroller chip. The microcontroller then runs or executes the sketch when the Arduino
is powered up or reset after programming.

Specification of ATmega328:

The high-performance Microchip 8-bit AVR RISC-based microcontroller having the


following:
 CPU type: 8 bit AVR
 Performance: 20 MIPS at 20 MHz
 Flash memory: 32 KB

Page
11
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

 SRAM: 2 KB
 EEPROM: 1 KB
 Pin count: 28 pins – 23 general purpose I/O lines, three flexible timers/counters with
different compare modes, internal and external interrupts, with 32 general purpose
working register.
 Number of channels: 16
 Maximum operating frequency: 20 MHz
 A/D converters: 6-channel, 10 bit

Advantage of Atmega328:

1. It has more flash memory than Atmega168 or Atmega88.


2. It executes faster than other microcontrollers.
3. It operates at very low power.

Page
12
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 7: Motor Driver L293D

A motor driver IC is an integrated circuit chip which is usually used to control motors in
autonomous robots. Motor driver ICs act as an interface between microprocessors in robots
and the motors in the robot. The most commonly used motor driver IC’s are from the L293
series such as L293D, L293NE, etc. These ICs are designed to control 2 DC motors
simultaneously. L293D consist of two H-bridge. H-bridge is the simplest circuit for
controlling a low current rated motor.
L293D has 16 pins, they are comprised as follows:
Ground Pins – 4, Input Pins – 4, Output Pins – 4, Enable pins - 2, Voltage Pins – 2

Why We Need Motor Driver IC?


Motor Driver ICs are primarily used in autonomous robotics only. Also most microprocessors
operate at low voltages and require a small amount of current to operate while the motors
require a relatively higher voltages and current. Thus current cannot be supplied to the motors
from the microprocessor. This is the primary need for the motor driver IC.

How Motor Driver Operates?


The L293D IC receives signals from the microprocessor and transmits the relative signal to
the motors. It has two voltage pins, one of which is used to draw current for the working of
the L293D and the other is used to apply voltage to the motors. The L293D switches it output
signal according to the input received from the microprocessor.
For Example: If the microprocessor sends a 1(digital high) to the Input Pin of L293D, then
the L293D transmits a 1(digital high) to the motor from its Output Pin. An important thing to
note is that the L293D simply transmits the signal it receives. It does not change the signal in
any case.

L293D And Its Working


The L293D is a 16 pin IC, with eight pins, on each side, dedicated to the controlling of a
motor. There are 2 INPUT pins, 2 OUTPUT pins and 1 ENABLE pin for each motor. L293D
consist of two H-bridge. H-bridge is the simplest circuit for controlling a low current rated
motor.

Fig 7: Motor Driver with


L293D embedded in it.

Page
13
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Working Of A H-bridge
H-bridge is given this name because it can be modelled as four switches on the corners of
‘H’. The basic diagram of H-bridge is given below:

Fig 8: H- Bridge

In the given diagram, the arrow on the left points to the higher potential side of the input
voltage of the circuit. Now if the switches S1 & S4 are kept in a closed position while the
switches S2 & S3 are kept in a open position meaning that the circuit gets shorted across the
switches S1 & S4. This creates a path for the current to flow, starting from the V input to
switch S1 to the motor, then to switch S4 and then the exiting from the circuit. This flow of
the current would make the motor turn in one direction. The direction of motion of the motor
can be clockwise or anti-clockwise; this is because the rotation of the motor depends upon the
connection of the terminals of the motor with the switches.

For simplicity, let’s assume that in this condition the motor rotates in a clockwise direction.
Now, when S3 and S2 are closed then and S1 and S4 are kept open then the current flows
from the other direction and the motor will now definitely rotates in counter-clockwise
direction
When S1 and S3 are closed and S2 and S4 are open then the ‘STALL’ condition will
occur(The motor will break).

Stall Condition:
When the motor is applied positive voltage on both sides then the voltage from both the sides
brings the motor shaft to a halt.

Page
14
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

7.1: L293D Pin Diagram :

Fig 9: L293D Pin diagram

In the above diagram we can see that,


Pin
Pin Characteristics
No.
Enable 1-2, when this is HIGH the left part of the IC will work and when it is low the
1
left part won’t work. So, this is the Master Control pin for the left part of IC
2 INPUT 1, when this pin is HIGH the current will flow though output 1
3 OUTPUT 1, this pin should be connected to one of the terminal of motor
4,5 GND, ground pins
6 OUTPUT 2, this pin should be connected to one of the terminal of motor
7 INPUT 2, when this pin is HIGH the current will flow though output 2
VC, this is the voltage which will be supplied to the motor. So, if you are driving 12 V
8
DC motors then make sure that this pin is supplied with 12 V
16 VSS, this is the power source to the IC. So, this pin should be supplied with 5 V
15 INPUT 4, when this pin is HIGH the current will flow though output 4
14 OUTPUT 4, this pin should be connected to one of the terminal of motor
13,12 GND, ground pins
11 OUTPUT 3, this pin should be connected to one of the terminal of motor
10 INPUT 3, when this pin is HIGH the current will flow though output 3
Enable 3-4, when this is HIGH the right part of the IC will work and when it is low the
9
right part won’t work. So, this is the Master Control pin for the right part of IC

Page
15
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 8: Sensors
Sensors are sophisticated devices that are frequently used to detect and respond to electrical
or optical signals. A Sensor converts the physical parameter (for example: temperature,
blood pressure, humidity, speed, etc.) into a signal which can be measured electrically. Let’s
explain the example of temperature. The mercury in the glass thermometer expands and
contracts the liquid to convert the measured temperature which can be read by a viewer on
the calibrated glass tube.

Criteria to choose a Sensor


There are certain features which have to be considered when we choose a sensor. They are as
given below:
1. Accuracy
2. Environmental condition - usually has limits for temperature/ humidity
3. Range - Measurement limit of sensor
4. Calibration - Essential for most of the measuring devices as the readings changes with
time
5. Resolution - Smallest increment detected by the sensor
6. Cost
7. Repeatability -The reading that varies is repeatedly measured under the same
environment

In our project the main function is of the sensors. Without the presence of the sensors, we
cannot make the robot autonomous. Thus in order to give any kind of “intelligence” to an
autonomous robot, sensors coupled with the correct programming is essential.

The different sensors which can be used to perform the duties of obstacle avoidance and edge
detection are proximity sensors. The two most widely used proximity sensors are: Infrared
sensors and Ultrasonic sensors. The working principle of both the sensors is similar.

8.1: Ultrasonic sensor:

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 the distance
between the sonar sensor and the object.

sensor Fig 11: Working principle of Ultrasonic sensor

Page
16
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

8.2: Infrared sensor:

IR Sensors work by using a specific light sensor to detect a select light wavelength in the
Infra-Red (IR) spectrum. By using an LED which produces light at the same wavelength as
what the sensor is looking for, you can look at the intensity of the received light. When an
object is close to the sensor, the light from the LED bounces off the object and into the light
sensor. This results in a large jump in the intensity, which we already know can be detected
using a threshold. Since the sensor works by looking for reflected light, it is possible to have
a sensor that can return the value of the reflected light. This type of sensor can then be used to
measure how "bright" the object is. This is useful for tasks like line tracking.

Why use infrared?


Infrared sensors are mainly used because it can perform the function of both obstacle
avoidance as well as edge detection while the ultrasonic sound can be effectively used for
only obstacle avoidance.
Also some objects might not be detected by ultrasonic sensors. This is because some objects
are shaped or positioned in such a way that the sound wave bounces off the object, but are
deflected away from the Ultrasonic sensor. It is also possible for the object to be too small to
reflect enough of the sound wave back to the sensor to be detected. Other objects can absorb
the sound wave all together (cloth, carpeting, etc), which means that there is no way for the
sensor to detect them accurately.

Fig 13: Infrared Sensor Module

Fig 12: Working principle of Infrared Sensor

Page
17
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 9: RFID System

What is RFID?

RFID is an acronym for “radio-frequency identification” and refers to a technology whereby


digital data encoded in RFID tags or smart labels (defined below) are captured by a reader via
radio waves. RFID is similar to bar-coding in that data from a tag or label are captured by
a device that stores the data in a database.

RFID or Radio Frequency Identification System is a technology based identification system


which helps identifying objects just through the tags attached to them, without requiring any
light of sight between the tags and the tag reader. All that is needed is radio communication
between the tag and the reader. A tag can be read from up to several feet away and does not
need to be within direct line-of-sight of the reader to be tracked.

Concept of RFID Technology:

RFID belongs to a group of technologies referred to as Automatic Identification and Data


Capture (AIDC). AIDC methods automatically identify objects, collect data about them, and
enter those data directly into computer systems with little or no human intervention.RFID
belongs to a group of technologies referred to as Automatic Identification and Data Capture
(AIDC). AIDC methods automatically identify objects, collect data about them, and enter
those data directly into computer systems with little or no human intervention.

A Basic RFID System:


3 Main Components of a RFID System

• A RFID tag: It consists of a silicon microchip attached to a small antenna and


mounted on a substrate and encapsulated in different materials like plastic or glass
veil and with an adhesive on the back side to be attached to objects.

Fig 14: RFID Tag (inner circuit) Fig 15: RFID Tag (Passive Inlays)

Page
18
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

• A reader: It consists of a scanner with antennas to transmit and receive signals and is
responsible for communication with the tag and receives the information from the tag.

Fig 16: RFID Antenna

 A Processor or a Controller: It can be a host computer with a Microprocessor or a


microcontroller which receives the reader input and process the data.

Working principle of RFID:


A RFID system is made up of two parts: a tag or label and a reader. RFID tags or labels are
embedded with a transmitter and a receiver. The RFID components on the tags have two
parts: a microchip that stores and processes information, and an antenna to receive and
transmit a signal. The tag contains the specific serial number for one specific object.
To read the information encoded
on a tag, a two-way radio transmitter-
receiver called an interrogator or
reader emits a signal to the tag
using an antenna. The tag responds
with the information written
in its memory bank. The interrogator will
then transmit the read results to an
RFID computer program.

Page
19
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Types of RFID Systems:


Active RFID system: These are systems where the tag has its own power source like any
external power supply unit or a battery. The only constraint is the life time of the power
devices. These systems can be used for larger distances and to track high value goods like
vehicles.

Fig 18: Active RFID tag

Passive RFID system: These are systems where the tag gets power through the transfer of
power from a reader antenna to the tag antenna. They are used for short range transmission.

Fig 19: Different types of Passive RFID tag

Page
20
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

9.1 Factors affecting the read range of RFID system:


Frequency:
The frequency of the emitted radio waves affects the read range capacity of the RFID reader.
Generally speaking, more is the frequency of the radio wave, more is the read range capacity
of the reader. As of now, The popular read frequencies used and their maximum read ranges
are:

 125 kHz and 134.3 kHz Low Frequency (LF) Passive RFID Tags -read distance of 30
cm (1 foot) or less.
 13.56 MHz High Frequency (HF) Passive RFID Tags - maximum read distance of
1.5 meters
 860 ~ 960 MHz Ultra High Frequency (UHF) Passive RFID Tags - minimum read
distance of over 1 meter or 3 feet. Gen2 tags can have a read range of up to 12 meters
 Active tags use a frequency of 433 MHz or 2.4GHz.

Antenna Gain:
A higher gain antenna increases the power received from the reader. For a longer read
range, an antenna having a gain of 9 dbi or higher is required. Thus, higher the gain, the
higher is the range of the antenna, and vice-versa.

Antenna Polarization:
Polarization refers to type of electromagnetic field the antenna is generating.

 Linear Polarization refers to radiation along a single plane. A very simple way to
think of a linearly polarized RFID antenna‘s beam is to imagine swinging a sword
straight up and down or side to side.
 Circular Polarization refers to antennas that split the radiated power across two
axes and then “spins” the field so as to cover as many planes as possible. A simple
way to imagine a circularly polarized RFID antenna‘s field is to imagine a
“tornado” emitting from surface of the antenna.

Since the power is not split across more than one axis, a linear antenna’s field will extend
farther than a circular antennaFig
with
20: comparable gain, polarization
Linear and Circular thus allowing for longer read range
when aligned with the RFID tag. But to get a overall superior read range in terms of area

Page
21
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

covered, circular polarized antenna are preferred.

Environmental factors:
Different environmental conditions can affect the performance of UHF RFID systems.
Water, metal, florescent lighting, large machinery, and competing frequencies (other
radio waves) may adversely affect UHF RFID read ranges.

9.2 ISM bands (industrial, scientific and medical radio bands ):


The industrial, scientific and medical (ISM) radio bands are radio bands (portions of the
radio spectrum) reserved internationally for the use of radio frequency (RF) energy for
industrial, scientific and medical purposes other than telecommunications. Examples of
applications in these bands include radio-frequency process heating, microwave ovens, and
medical diathermy machines. The powerful emissions of these devices can create
electromagnetic interference and disrupt radio communication using the same frequency, so
these devices were limited to certain bands of frequencies.

In India, for the usage of RFID instruments, the ISM band is:
Frequency Band: 865-867 MHz
Low power RFID equipments or any other low power wireless devices or equipments
Power: Maximum transmitter output power of 1 Watt ( 4 Watts Effective Radiated Power)
Carrier Bandwidth: 200 KHz

Page
22
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 9: Working of “Ally”

9.1: Concept of the working of the robot “Ally”:

1. Placing the document and entering the destination: First the document will be
placed on the document holder placed on the robot chassis. Then the destination point
will be entered into the robot via a keyboard mounted on the robot chassis.

2. Identifying the destination: The destination will be marked by an RFID tag. The
robot will identify the destination via its IR sensors.

3. Path planning: Then it will plan a path to reach its destination. This path planning
will be done using an appropriate path planning algorithm.

4. Movement of the robot: The robot after forming its path plan will follow the path.
While moving linearly in the forward direction, the robot will move with a linear
speed. When encountering any turns, it will move via differential speed mechanism.

5. Obstacle detection: While moving in its path if the robot comes in contact with any
obstacle (stationary or moving), it will detect it using the IR sensors. After detecting
the obstacle it will move right and avoid the obstacle. This will occur every time the
robot comes in contact with any obstacle.

6. Adjustment of the path: Since it had avoided the obstacle, its pre-planned path has
been distorted. It will then try to return to its planned path. After returning to its
planned path, it will then continue on its path to the destination.

7. Edge detection: This will be done by continuously monitoring the underground


surface in the front of the robot. If there is no surface underneath the front, it means
that it is near an edge. Then the robot will move backward, then move right and then
adjust its path.

8. Reaching the destination: After reaching the destination, the robot will stop.

Fig 21: Example diagram showing the


function of the robot

Page
23
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

9.2: Logical working of the IR sensors:


In this system five sensors are place at the front and lower side of a robot. A is the
sensor on Front right, B in the front middle below, C in the Front right, D in the lower
left, and E in the lower right.
• Normally, when the IR sensor is unblocked (no object in front of it), the sensor will
output a HIGH signal (about 3.5 V i.e. Logic 1 ) on its signal line.
• When an object blocks the sensor so that the sensor can read back the infrared beams,
then the sensor will output a LOW signal ( 0V i.e. Logic 0) on its signal line.

The logic tables for the operation of the IR sensors are as follows:

Table 1: Logic table for Edge Detector and Obstacle avoidance:

B- Front left C-Front middle Below D-Front right Direction of robot


1 0 1 Forward
1 0 0 Left
0 0 1 Right
- 1 - Backward and left

Table 2: Logic Table for Edge Detector:

A- Side left E-Side right Direction of robot


1 1 Forward
1 0 Left
0 1 Right

Page
24
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 10: Progress Check - I

10.1: Work done:

1. Our objective was determined, i.e. what we wanted to make, why we wanted to make
it, what was the source of inspiration, whether there was any practicality towards it etc
were discussed. A lot of brainstorming as well as internet surfing was done in order to
get the inspiration.

2. Next the concept of the robot, specifically what are the functions are to be performed
were determined. Thus a concept of the working of the robot was developed. The next
steps taken were keeping this concept in mind.

3. The majority of the time was spent for literature survey. A lot of literature was studied
to understand the working of the various parts of the robot architecture.

4. A market survey was done to learn the cost of the different components that are to be
used for the hardware realization of the conceptual robot.

5. The budget estimate for the project was done.

6. The different approaches possible towards each function of the robot were debated
along with the advantage and disadvantage of using each approach was done. Finally,
for performing each function, a specific approach was selected upon its merits. For
example:

a. Out of all the approaches possible, we zeroed in on using the IR sensors as the
proximity sensors due its concise structure as well as its flexibility.

b. It was debated whether to use an embedded system approach or to use Arduino. It


was finally decided to use the Arduino for its sheer simplicity and flexibility.

c. From the Arduino family, from among the different boards, the Uno was finalised
for using, due to its simplicity, wide availability, and optimum number of pins.

d. The Atmega328 microcontroller was used due to its memory, which was enough
for our requirement.

7. The mechanical design for the robot was determined. According to the design what
are the basic mechanical components required were listed.

Page
25
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

10.2: Problems faced:


1. Our initial motive was to develop a drone, which would have served a similar
purpose. But we could not do so for the following reasons:

a. Nascent technology: In the technology universe, drones are still a new concept. In
that, autonomous drones are still in their nascent stage. Thus it is still in the
research domain. It is a field where not much significant literature and references
can be found.

b. Mechanical knowledge: Making a drone requires a very sound understanding of


not only the electrical circuitry but the mechanical design as well. Its takeoff,
flight stabilization, dynamic balancing, aerodynamics etc are hardcore mechanical
concepts. Thus the mechanical design of a drone proved to be a test for us as
electrical engineers having only a limited idea about mechanical design.

c. Programming Complexity: Flying of a drone autonomous requires proper and


complex programming. It proved to be a challenge for us, the electrical engineers
having a limited knowledge and totally out of depth in complex programming. To
it, the additional features such as path planning, and obstacle avoidance proved to
be a tougher challenge.

d. Financial problem: Also a significant problem was the economic feasibility. Cost
of the components for drones is high. Being students, our budget for the project
was limited having to pay for it ourselves. Our budget seemed to be inadequate for
the proper implementation of the drone.
We were also unable to get any kind of financial help from the department as well.
Thus the project was infeasible in our limited budget.

Thus as a solution we switched over to robotic vehicle. The robotic vehicle too has its own
share of problems. They are:
2. Determination of the path planning algorithm: A proper path planning algorithm has
not yet been decided due to time crunch, complexity of the programming and actual
hardware implementation.

3. Actual optimum programming: While programs for obstacle avoidance and edge
detection are available individually, but out real challenge lies in integration of the
two programs along with the very complex program of path planning.

4. Actual hardware implementation: Most our work has been the theoretical research
and concept building. Now the main challenge is to actually implement them in
hardware and get the actual result.

5. Optimization: Since no hardware implementation has been done yet, we haven’t been
able to conduct any test runs of our robot. Until any test runs are being conducted we
will not be able to understand the affectivity of our robot as well as any practical
hurdles arising. Thus the optimization of the program is not possible and thus our
desired results are not been achieved.

Page
26
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

6. Time limitation: Since our initial plan of making the drone failed, with the robot
vehicle, we are way behind schedule. Thus it is a very big challenge for us to
complete the mammoth task of programming and hardware implementation of the
project and completing the task on time.

10.3: Work to be done:


Our main target now is to overcome the problems we have come across now as well as those
which shall arise in the future. Thus the works that need to be done are:
1. Determining a path planning algorithm: We need to conclude on a path planning
algorithm which will serve our purpose as well as will be easy to implement in terms
of programming as well as in hardware.

2. Programming: We need to finally write the program for the robot taking all its
functions into account.

3. Hardware implementation: We need to actually make the robot prototype and conduct
test runs on it.

4. Optimize: After the building of the prototype and conducting test runs, we need to
tweak the programs wherever needed (if required).

5. Completing the project on time: Since we are already way behind schedule, we need
to overcome the challenge of completing the project on time.

Page
27
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Hardware implementation and Testing:

Testing and the hardware implementation consist of 3 parts:

1. Testing and calibration of IR sensors


2. The testing of RFID reader and tags
3. Building of the prototype for obstacle avoidance

Page
28
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 11: Infrared Modules - Testing and Calibration (FC-51):


The basic concept of IR(infrared) obstacle detection is to transmit the IR signal(radiation) in a
direction and a signal is received at the IR receiver when the IR radiation bounces back from
a surface of the object.The Infrared Module we are using is FC-51.

Features:

 There is an obstacle, the green indicator light on the circuit board


 Digital output signal
 Detection distance: 2 ~ 30cm
 Detection angle: 35 ° Degree
 Comparator chip: LM393
 Adjustable detection distance range via potentiometer:
o Clockwise: Increase detection distance
o Counter-clockwise: Reduce detection distance

Specifications:

 Working voltage: 3 - 5V DC
 Output type: Digital switching output (0 and 1)
 3mm screw holes for easy mounting
 Board size: 3.2 x 1.4cm

Fig 22: Schematic diagram of IR module FC-51

Table 3: Pin-out of IR module (FC-


51):

Pin, Control Indicator Description


Vcc 3.3 to 5 Vdc Supply Input
Gnd Ground input
Out Output that goes low when obstacle is in range
Power LED Illuminates when power is applied
Obstacle LED Illuminates when obstacle is detected
Adjust detection distance. CCW decreases distance. CW increases
Distance Adjust
distance.
IR Emitter Infrared emitter LED
IR Receiver Infrared receiver that receives signal transmitted by Infrared emitter.
11.1 Circuit diagram:

Page
29
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Fig 24: Circuit diagram for Interfacing of IR module with Arduino


Uno for calibration

11.2 Procedure:
1. We moved our hand towards the IR module.
2. As soon as we reach within the maximum range of the IR module, the Output LED
on the module and the LED for pin 13 on your Arduino will illuminate.
3. We will open the serial monitor and vary the distance of your hand while viewing the
serial monitor. The output should show "Clear" to "OBSTACLE!!, OBSTACLE!!".
4. To increase the range of the IR module according to our needs we turn the
potentiometer or the calibration pin (the pin in the small blue box) clockwise. To
decrease the range, we turn the calibration pin counter clockwise. It is to be kept in
mind that the sensor should not get short circuited.

11.3 Arduino Program:


// IR Obstacle Collision Detection Module

int LED = 13; // Use the onboard Uno LED


int isObstaclePin = 7; // This is our input pin
int isObstacle = HIGH; // HIGH means NO OBSTACLE

void setup() {
pinMode(LED, OUTPUT);
pinMode(isObstaclePin, INPUT);
Serial.begin(9600);
}

void loop() {
isObstacle = digitalRead(isObstaclePin);
if (isObstacle == LOW) {
Serial.println("OBSTACLE!!, OBSTACLE!!");

Page
30
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

digitalWrite(LED, HIGH);
}
else {
Serial.println("clear");
digitalWrite(LED, LOW);
}
}

Output of Arduino Serial Monitor:

Page
31
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Calibration Process:

Fig 25: Obstacle not detected by Fig


IR sensor (distance = 9 cm)

Fig 27: Reflective Obstacle detected


by IR sensor (distance = 7 cm)

Page
32
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 12: IND8002 (Integrated Reader-Writer module):

Brief overview:

The RFID reader that we are using is the model IND8002 by Shenzhen Innod Technology
Co. Ltd., Shenzhen, China. It is a long range integrated UHF RFID Reader having a read
range of 1-10 metres with 9.2 dbi circular polarised antenna.

Fig 28: RFID Reader (IND8002) Fig 29: RFID Reader (IND8002)
Front side Rear side

Specification:

Model IND8002
Dimension 260mm*260mm*40mm
Frequency 902MHz – 928 MHz; 865MHz – 868MHz (Optional)
Reading Distance 1-10 meter (depend on application and tag)
Weight 1.25kg
Connector RS-232 /Wiegand 26 /Wiegand 34
Baud rate 115200 bps (default and recommended) 38400bps
Supply Voltage DC 9V
Air Interface Protocol EPC global UHF Class 1 Gen 2 / ISO 18000-6C
Output Power 0-26 dBm
Read multi-tag 1- 50 Tag/Second
Tag cache 200 Tags@ 96 bit EPC

Page
33
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Standby Mode Current <80mA (EN pin set to high)


Sleep Mode Current <100uA (EN pin set to low)
Startup Time <80mS
Operating Temperature - 20 °C - + 70 °C
Storage Temperature - 20 °C - + 85 °C
Humidity < 95% ( + 25 °C)
Output Power Precision +/- 1dB
Output Power Flatness +/- 0.2dB
Receiver Sensitivity < -70dBm
Tag RSSI Supported
Heat Dissipation No heat sink required

Fig 30: Interfacing wires of IND8002

Interface Description:

Definition Pins Remark

Page
34
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Power supply pins + 9V External + 9V power supply.


GND Connect to external power supply’s ground.
RS232 pins RS-232 TXD RS-232 data output.
RS-232 RXD RS-232 data input.
GND Connect to RS-232’s ground.
Wiegand 26/34 pins GPIO3 GPIO3 or Wiegand Data 0.
GPIO4 GPIO4 or Wiegand Data 1.
GND Connect to Wiegand data ground.

Fig 31: RFID Kit


Fig 31: Sample tags provided by the
company

Manufacturer Details:

Company name: Shenzhen Innod Technology Co. Ltd.


Address: NO.333,3F,Building B,Qinghu Technology Park,Qingxiang Road, Baoan Longhua
District, Shenzhen , China.

Bought via: www.aliexpress.com

Price: $130 (Cost price) + $ 47.7 (Shipping charges) = total $ 177.7


= INR 12,500 approx.

Customs duty: Rs. 1441.09


Total: Rs. 13940 approx.

Page
35
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 13: Testing of RFID System

Testing of RFID reader writer module with passive tags consists of three parts:

1. Testing of the reader and tag using the demo software provided by the company
(Shenzhen Innod Technology Co. Ltd)

2. Interfacing the RFID reader with Arduino Uno:


 Reading the RFID tag number (EPC number) and data stored in them
 Being able to both read and write in the tags

13.1 Testing of the Reader using the Demo Software:

A demo software was provided by the company in order to use the RFID reader. We used the
software to check whether the reader was in working condition or not.

We adjusted the settings as per the user manual of the software and set the rates required
according to our requirement. For example, we set the Baud rate at 38400 and the frequency
range of the RF Spectrum from 856MHz to 857MHz.

Fig 32: Connecting RFID reader to the demo software

Page
36
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Fig 33: Setting the frequency in the demo software

After all the setting is done, we bring the given sample tags near to the RFID reader and get
the tag detected by it. Since the reader is a long range reader having a read range of 1-10
meters (depending upon the application and tag), the tag is kept at a distance from the reader.
This also helps us in checking the read range of the tag.

The tag chosen for this testing is at random from the sample tags provided by the company.

Fig 34: Bringing the tags near to the RFID reader

Page
37
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

The tag numbers (EPC number) as detected by the demo software are shown in the window
below:

Page
38
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Fig 35: Inventory when no tags detected

13.2 Interfacing the RFID reader with Arduino Uno:


Since the output given by the RFID reader here is of RS232 protocol and Arduino does not
understand it, we need a logic converter. The converter used is a dual way RS232-to-TTL
converter module (having the IC MAX3232).

Fig 37: RS232-to-TTL converter module

Fig 36: Inventory when tags are detected


13.2.1 Block Diagram:

Fig 38: Block diagram of interfacing


the Arduino with the RFID reader

13.2.2 Circuit Diagram:

Page
39
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

13.2.3 Arduino Program:

Program 1:
// Program to check whether RFID reader successfully interfaced with Arduino or not.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9);
void setup()
{
mySerial.begin(38400); // Setting the baud rate of Software Serial Library
Serial.begin(38400); //Setting the baud rate of Serial Monitor
}
void loop()
{
if(mySerial.available()>0)
{
Serial.write(mySerial.read());
}
}

Output of Serial Monitor:

Page
40
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Program 2:
//Program to read and write tags

#include <SoftwareSerial.h>
#include <SeeedRFID.h>
SoftwareSerial mySerial(10, 11);
void setup()
{
mySerial.begin(38400); // Setting the baud rate of Software Serial Library
Serial.begin(38400); //Setting the baud rate of Serial Monitor
}

void loop()
{
if(mySerial.available()>0)
{
Serial.print("RFID card number: ");
Serial.println(RFID.cardnumber());
Serial.println("Input 1 to read data and 2 to write data");
int count=mySerial.read();
if (count==1)
{
Serial.println("RFID data: ");
Serial.println(RFID.readData());
for(int i=0; i<tag.dataLen; i++)
{
Serial.print(tag.raw[i], HEX);
Serial.print('\t')
}
}
if (count==2)
{
Serial.println("Enter the data to write: ");
mySerial.write(Serial.read());
RFID.writeData():
Serial.println("Data entered: ");
Serial.println(RFID.readData());
for(int i=0; i<tag.dataLen; i++)
{
Serial.print(tag.raw[i], HEX);
Serial.print('\t')
}
}
}

Page
41
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Output of serial monitor:

Page
42
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 14: Hardware Implementation (Overview)


The components used for our hardware implementation are as follows:

1. Infrared sensor :
2 sensors are used for obstacle detection while 3 sensors are used for edge detection.
Among the edge detection sensors, 2 i.e. the left and right sensors are allotted to
detect the edge of the obstacles, while 1 sensor is allotted to sense the ground
underneath to prevent falling off the ground surface.
2. Arduino Uno:
It is the microcontroller which controls the majority of the logical decisions taken for
the working of the Autonomous Robot.
3. Breadboard:
It is used to ease the electrical connections by providing a common node from where
connections can be easily be connected for prototyping. It is very useful when
multiple numbers of connections are to be done to a singular point.
4. L 293D Motor driver module:
The L293D motor driver module is used to supply the required power for the proper
functioning of the DC gear motors. It does not perform any control action by itself but
carries forward the control action of the Arduino.
5. Dc gear motors:
We are using DC gear motors to rotate the wheels. We are using DC gear motors
because of its gear ratio, it provides much more torque in comparison to the power
consumed by it. Also since Dc gear motor is used, we can obtain higher torque by
reducing the speed of the motor. This is because for DC motor Torque is inversely
proportional to the Speed.
6. Wheels and bovine wheel:
The wheels are used for the movement for the robotic car. A rotatory bovine wheel is
also used to provide both mechanical support as well as to ease the rotation of the
robot.
7. RFID Reader and Tag:
To read and mark destination.

Fig 42: Components Used

9v rechargeable Ni-Mh Battery cap


battery (300mAh)
Arduino Uno

Page
43
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

module
L293D motor driver module Dc gear motor and wheels

Jumper wire Breadboard

FID Reader (IND8002) RS232 to TTL converter

Chassis Front Chassis Back

Page
44
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 15: Building of Obstacle Avoidance Robot

ototype 1 Fig 44: Prototype 2

15.1 Circuit Diagram:

Fig 45: Circuit diagram of Obstacle avoidance and edge detecting robot

15.2 Arduino Program:


// Arduino program for obstacle avoiding and edge detecting robot car using IR sensors
having left priority
const int LM_1 = 3; // Left motor connection
const int LM_2 = 5;

Page
45
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

const int RM_1 = 6; // Right motor connection


const int RM_2 = 11;
const int LS = A0; // Left sensor connection
const int FLS = A1; // Front left sensor connection
const int FES = A2; // Front edge sensor connection
const int FRS = A3; // Front right sensor connection
const int RS = A4; // Right sensor connection

void setup() {
pinMode (LM_1, OUTPUT); // declaring input output pins
pinMode (LM_2, OUTPUT);
pinMode (RM_1, OUTPUT);
pinMode (RM_2, OUTPUT);
pinMode (LS, INPUT);
pinMode (FLS, INPUT);
pinMode (FES, INPUT);
pinMode (FRS, INPUT);
pinMode (RS, INPUT);
Serial.begin (9600);
Serial.println("Car ready to operate"); // Initializing car
}

void loop() {
int LS_val = digitalRead(LS);
int FLS_val = digitalRead(FLS);
int FES_val = digitalRead(FES);
int FRS_val = digitalRead(FRS);
int RS_val = digitalRead(RS);

if (FLS_val == LOW && FRS_val ==LOW) {


reverse();
}
else if ( FES_val == LOW) {
reverse();
}
else if (FRS_val == LOW) {
left();
}
else if (RS_val == LOW) {
left;
}
else if (FLS_val == LOW) {
right();
}
else if (LS_val == LOW) {
right();
}
else
forward();
}
void forward() { // Robot moves in forward direction

Page
46
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

digitalWrite(LM_1, HIGH);
digitalWrite(LM_2, LOW);
digitalWrite(RM_1, HIGH);
digitalWrite(RM_2, LOW);
}

void reverse() {
digitalWrite(LM_1, LOW);
digitalWrite(LM_2, HIGH); // Reverse
digitalWrite(RM_1, LOW);
digitalWrite(RM_2, HIGH);
}

void right() {
digitalWrite(LM_1, LOW); // Right
digitalWrite(LM_2, HIGH);
digitalWrite(RM_1, HIGH);
digitalWrite(RM_2, LOW);
}

void left() {
digitalWrite(LM_1, HIGH); // Left
digitalWrite(LM_2, LOW);
digitalWrite(RM_1, LOW);
digitalWrite(RM_2, HIGH);
}

Testing Prototype:

g forward Fig 46: Robot approaching obstacle

Fig 45: Robot


avoiding obstacle

Page
47
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 16: Building of Obstacle avoidance robot


with RFID Reader

16.1 Circuit diagram:

Fig 46: Circuit diagram for Obstacle avoidance and edge detection robot using RFID reader

16.2 Arduino Program:


#include <SoftwareSerial.h>
#include <SeeedRFID.h>
int ledPin = 13;
const int LM_1 = 3; // Left motor connection
const int LM_2 = 5;
const int RM_1 = 6; // Right motor connection
const int RM_2 = 9;
const int LS = A0; // Left sensor connection
const int FLS = A1; // Front left sensor connection
const int FES = A2; // Front edge sensor connection
const int FRS = A3; // Front right sensor connection
const int RS = A4; // Right sensor connection
const int RFID_Tx = 10; // RFID Transmitter is Arduino Receiver

Page
48
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

const int RFID_Rx = 11; // RFID Receiver is Arduino Transmitter


SoftwareSerial mySerial(10, 11);
void setup()
{
mySerial.begin(38400); // Setting the baud rate of Software Serial Library
Serial.begin(38400); //Setting the baud rate of Serial Monitor
pinMode (ledPin, OUTPUT);
pinMode (LM_1, OUTPUT); // declaring input output pins
pinMode (LM_2, OUTPUT);
pinMode (RM_1, OUTPUT);
pinMode (RM_2, OUTPUT);
pinMode (LS, INPUT);
pinMode (FLS, INPUT);
pinMode (FES, INPUT);
pinMode (FRS, INPUT);
pinMode (RS, INPUT);
Serial.println("Car ready to operate"); // Initializing car

if(mySerial.available()>0) // checks whether RFID reader is on or not


{
Serial.print("RFID card number: ");
Serial.println(RFID.cardnumber());
int dest_temp = (RFID.cardnumber(),char); // Identifies the tag

if (dest_temp == 'E20000158506018627600737'){ // compares it with our set destination


ledPin = HIGH; // indicates tag detection sucessful
destination = RFID.readData(); // marks the destination distance
}
}

void loop()
{
int LS_val = digitalRead(LS);
int FLS_val = digitalRead(FLS);
int FES_val = digitalRead(FES);
int FRS_val = digitalRead(FRS);
int RS_val = digitalRead(RS);

while (destination > 0)


{
while((FLS_val == HIGH && FRS_val == HIGH)||(FES_val == LOW)) {
unsigned long start = micros();
reverse();
unsigned long end = micros();
unsigned long delta = end - start;
for (int i=0; i<delta; i++){
left();
}
}

Page
49
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

while((FRS_val == HIGH)|| (RS_val == HIGH)){


unsigned long start = micros();
left();
unsigned long end = micros();
unsigned long delta = end - start;
for (int i=0; i<delta; i++){
right();
}
}

while((FLS_val == HIGH)||(LS_val == HIGH)){


unsigned long start = micros();
right();
unsigned long end = micros();
unsigned long delta = end - start;
for (int i=0; i<delta; i++){
left();
}
}
else
forward();
destination = destination--;
}

void forward() { // Robot moves in forward direction


digitalWrite(LM_1, HIGH);
digitalWrite(LM_2, LOW);
digitalWrite(RM_1, HIGH);
digitalWrite(RM_2, LOW);
}

void reverse() {
digitalWrite(LM_1, LOW);
digitalWrite(LM_2, HIGH); // Reverse
digitalWrite(RM_1, LOW);
digitalWrite(RM_2, HIGH);
}

void right() {
digitalWrite(LM_1, LOW); // Right
digitalWrite(LM_2, HIGH);
digitalWrite(RM_1, HIGH);
digitalWrite(RM_2, LOW);
}
void left() {
digitalWrite(LM_1, HIGH); // Left
digitalWrite(LM_2, LOW);
digitalWrite(RM_1, LOW);
digitalWrite(RM_2, HIGH); }

Page
50
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Page
51
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

Chapter 17: Progress Check - II


17.1: Work done:
Our main target was to overcome the problems we had come across before. Overcoming the
hurdles, the work done by us were:
1. Determination of path planning algorithm: We zeroed in on a path planning
algorithm. This is based on the Elastic band theory. Here the robot initially marks its
destination as a straight line from its starting point. Then as it tackles obstacles it
keeps avoiding the obstacle and then corrects its path to come back to its straight line
path.

2. Programming: We wrote the program for the robot in phases, taking all its
functions into account. First we wrote the program for only obstacle avoidance. Then,
we wrote the program for edge detection. Then we wrote the program for interfacing
the RFID. Finally we combined all the three to get our desired program.

3. Hardware implementation: We made 2 robot prototypes and conducted test runs on it.

4. Optimization: After the building of the prototype and conducting test runs, we
tweaked the programs wherever needed.

17.2: Problems faced:


In the course of the project, especially during hardware implementation, many problems were
faced by us. The problems were as follows:

1. Non-availability of RFID reader in India:


RFID technology although has been around for almost 5-6 years, but it is still in its
nascent stage in terms of development. India, being far behind in terms of
advancement of RFID technology, do not have many manufacturers of RFID
equipments. Most of the manufacturers, generally manufacture RFID tags. They
heavily depend upon imports for the RFID readers.

2. Business-to-business:
Of the couple of companies those who do manufacture RFID readers in India were
unwilling to sale to us students. They only deal between business-to-business.

3. Non-availibility of Long range RFID reader:


Our project demanded the need of a long range RFID reader in order to fulfil its
objective. But, most of the commercially available and affordable RFID readers
available in the market have very low read range capacities of only 5-10 cm.

4. Non-native speaking interaction:


in order to buy the RFID reader, we had to look outside of India. Mostly we had to
talk to sellers from the USA and China. We needed to speak to the seller to make
them understand our requirement. While this was not a hassle for English speaking
American sellers, but it was very difficult interacting with the Chinese sellers due to
language barrier.

Page
52
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

5. Non-availibity of Arduino compatible RFID readers:


Most of the long range readers available were not directly compatible with Arduino.

6. Financial Problem:
One of the most significant problem faced by us was that RFID readers of long range
capacity are very expensive. Since our project was self –funded and was very low, we
had to pass many RFID readers which were Arduino compatible as well as were
having long read ranges.
No funding was received from the department.

7. Difficulty in interfacing of RFID reader with Arduino:


Since the RFID bought by us was not Arduino compatible and gave a RS232 protocol
output. In order to interface it with Arduino, we had to first interface the RFID reader
with a RS232-to-TTL converter module. Then we had to interface this converter with
the Arduino board. Since this is a two step process, and RS232 protocol is now
becoming obsolete, we had difficulty in interfacing. We had a success rate of only
30%.

8. Non-availability of compatible Arduino Library:


The RFID reader we were using was a UHF reader, operating at a frequency of 856-
857MHz. There were almost no Arduino libraries available for such frequencies.
Also since we are not much knowledgeable at computer programming and software
development, we could not develop our own library.

9. Programming difficulty:
Programming for the path planning was very difficult.

10. Damaged components:


Due to repeated testing and travelling, some of the hardware components either got
damaged physically or lost their efficiency.

17.3: Problems overcome:

We overcame most of the problems. Some of them are as follows:

1. We were finally able to find a RFID reader with was long range, having a read range
of 1-10 metres and yet was still affordable for us (although it was out of budget). It
was very expensive, but we had no choice.

2. We finally found a RFID library belonging to Seeed RFID which seemed to be


compatible with our reader and worked for us.

3. Finally we were able to build the prototype in hardware and was able to conduct tests
with it.

Page
53
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

4. References:

Papers:
1. B. Olszewski, S. Fenton, B. Tworek, J. Liang and K. Yelamarthi, "RFID positioning
robot: An indoor navigation system," IEEE International Conference on Electro-
Information Technology , EIT 2013, Rapid City, SD, 2013, pp. 1-6.

2. Adarsh K ,Nikitha R Patil , (2017 ) " An Optimal Approach of Document Carrying


Robot on Arduino Platform " ,International Journal of Management and Applied
Science (IJMAS) , pp. 72-76, Volume-5,Issue-8

3. Alka Verma, Ruchi Gupta, Prakhar Gupta “Design of Microcontroller Based 4 in 1


Robot” ,MIT International Journal of Electrical and Instrumentation Engineering,
Vol. 2, No.2, Aug. 2012, pp. (98-101), ISSN 2230-7656 (c) MIT Publications

4. Rakesh Chandra Kumar, Md. Saddam Khan, Dinesh Kumar, Rajesh Birua, Sarmistha
Mondal, ManasKr. Parai, “OBSTACLE AVOIDING ROBOT – A PROMISING
ONE” , International Journal of Advanced Research in Electrical, Electronics and
Instrumentation Engineering Vol. 2, Issue 4, April 2013

5. Travis Deyle, Matt Reynolds and Charles C. Kemp, “Finding and Navigating to
Household Objects with UHF RFID Tags by Optimizing RF Signal Strength.”
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2014.

6. D. Hahnel, W. Burgard, D. Fox, K. Fishkin and M. Philipose, "Mapping and


localization with RFID technology," Robotics and Automation, 2004. Proceedings.
ICRA '04. 2004 IEEE International Conference on, 2004, pp. 1015-1020 Vol.1.

7. Takashi Gomi and Koh-ichi Ide, “Vision Based Navigation for an Office Messenger
Robot”, Intelligent Robots and Systems '94. 'Advanced Robotic Systems and the Real
World', IROS '94. Proceedings of the IEEE/RSJ/GI International Conference on,Date
of Conference: 12-16 Sept. 1994

8. Moon B.H., Kim S.R., Ryu J.T. (2011), “Tag Recognition Distance for a Medical
Service Robot Using RFID.”,In: Kim T., Adeli H., Robles R.J., Balitanas M. (eds)
Advanced Computer Science and Information Technology. Communications in
Computer and Information Science, vol 195. Springer, Berlin, Heidelberg

9. S. Park and S. Hashimoto, "Autonomous Mobile Robot Navigation Using Passive


RFID in Indoor Environment," in IEEE Transactions on Industrial Electronics, vol.
56, no. 7, pp. 2366-2373, July 2009.

10. W. Gueaieb and M. S. Miah, "An Intelligent Mobile Robot Navigation Technique
Using RFID Technology," in IEEE Transactions on Instrumentation and
Measurement, vol. 57, no. 9, pp. 1908-1917, Sept. 2008.

11. P. Mandal, R. K. Barai, M. Maitra and S. Roy, "Path planning of autonomous mobile
robot: A new approach," 2013 7th International Conference on Intelligent Systems

Page
54
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

and Control (ISCO), Coimbatore, Tamil Nadu, India, 2013, pp. 238-243.

12. V. Kulyukin, C. Gharpure, J. Nicholson and S. Pavithran, "RFID in robot-assisted


indoor navigation for the visually impaired," 2004 IEEE/RSJ International
Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566),
2004, pp. 1979-1984 vol.2.

13. Vikas Bakshi, Rajnish Katarne, Dr. Sanjay Purkar, “Navigation Technique for
industrial robot with the help of RFID TAG”, International Journal of Latest Trends
in Engineering and Technology (IJLTET)

14. O. Khatib, “Real time obstacle avoidance for manipulators and mobile robots”,
Robotics and Automation. Proceedings. 1985 IEEE International Conference on In
Robotics and Automation. Proceedings. 1985 IEEE International Conference on, Vol.
2 (1985), pp. 500-505

15. Sunhong Park and Shuji Hashimoto, "An approach for mobile robot navigation under
randomly distributed passive RFID environment," 2009 IEEE International
Conference on Mechatronics, Malaga, 2009, pp. 1-6.

16. M. Hossain1, M. M. Rashid, M.M.I. Bhuiyan, S. Ahmed, and M. Akhtaruzzaman, “A


Qualitative Approach to Mobile Robot Navigation Using RFID”, 5th International
Conference on Mechatronics (ICOM’13), 2013, IOP Conf. Series: Materials Science
and Engineering 53 (2013) 012064 doi:10.1088/1757-899X/53/1/012064

17. P.Karthika, J. Harriet Rathna Priya , A. Rathinavel Pandian, International Journal of


Engineering Research and Reviews, Vol. 3, Issue 1, pp: (73-80), Month: January -
March 2015, ISSN 2348-697X (Online)

Page
55
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

APPENDIX A: Motor Driver IC L293D Details:

Pin Diagram:

L293D Pin Configuration

Pin
Pin Name Description
Number
1 Enable 1,2 This pin enables the input pin Input 1(2) and Input 2(7)
2 Input 1 Directly controls the Output 1 pin. Controlled by digital circuits
3 Output 1 Connected to one end of Motor 1
4 Ground Ground pins are connected to ground of circuit (0V)
5 Ground Ground pins are connected to ground of circuit (0V)
6 Output 2 Connected to another end of Motor 1
7 Input 2 Directly controls the Output 2 pin. Controlled by digital circuits
8 Vcc2 (Vs) Connected to Voltage pin for running motors (4.5V to 36V)
9 Enable 3,4 This pin enables the input pin Input 3(10) and Input 4(15)
10 Input 3 Directly controls the Output 3 pin. Controlled by digital circuits
11 Output 3 Connected to one end of Motor 2
12 Ground Ground pins are connected to ground of circuit (0V)
13 Ground Ground pins are connected to ground of circuit (0V)
14 Output 4 Connected to another end of Motor 2
15 Input 4 Directly controls the Output 4 pin. Controlled by digital circuits
16 Vcc2 (Vss) Connected to +5V to enable IC function

Page
56
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

APPENDIX B: Atmega328/ P Datasheet:

Configuration Summary:

Atmega328/P supports a real Read-While-Write Self-Programming mechanism. There is a separate


Boot Loader Section, and the SPM instruction can only execute from there.

Pin Dagram:

Page
57
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

APPENDIX C: Arduino Uno Pin out:


The Arduino Uno can be programmed with the (Arduino Software (IDE)). Select
"Arduino/Genuino Uno from the Tools > Board menu (according to the microcontroller
on your board).

Power

The Arduino Uno board can be powered via the USB connection or with an external
power supply. The power source is selected automatically.

External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or
battery. The adapter can be connected by plugging a 2.1mm center-positive plug into
the board's power jack. Leads from a battery can be inserted in the GND and Vin pin
headers of the POWER connector.

The power pins are as follows:

 Vin . The input voltage to the Arduino/Genuino board when it's using an external
power source (as opposed to 5 volts from the USB connection or other regulated
power source). You can supply voltage through this pin, or, if supplying voltage via
the power jack, access it through this pin.

 5V .This pin outputs a regulated 5V from the regulator on the board. The board can
be supplied with power either from the DC power jack (7 - 12V), the USB connector
(5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins
bypasses the regulator, and can damage your board. We don't advise it.

Page
58
EE471: Design and development of robotic officemate “Ally”
[Pick the date]

 3V3 . A 3.3 volt supply generated by the on-board regulator. Maximum current
draw is 50 mA.
 GND . Ground pins.
 IOREF . This pin on the Arduino/Genuino board provides the voltage reference with
which the microcontroller operates. A properly configured shield can read the IOREF
pin voltage and select the appropriate power source or enable voltage translators on
the outputs to work with the 5V or 3.3V.

Memory

The ATmega328 has 32 KB (with 0.5 KB occupied by the bootloader). It also has 2 KB
of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM
library ).

Each of the 14 digital pins on the Uno can be used as an input or output,
using pinMode() ,digitalWrite() , and digitalRead() functions.

In addition, some pins have specialized functions:


 Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial
data. These pins are connected to the corresponding pins of the ATmega8U2 USB-
to-TTL Serial chip.
 External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt
on a low value, a rising or falling edge, or a change in value. See the
attachInterrupt() function for details.
 PWM: 3, 5, 6, 9, 10, and 11 . Provide 8-bit PWM output with the analogWrite()
function.
 SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI
communication using the SPI library.
 LED: 13. There is a built-in LED driven by digital pin 13. When the pin is HIGH
value, the LED is on, when the pin is LOW, it's off.
 TWI: A4 or SDA pin and A5 or SCL pin . Support TWI communication using the
Wire library.
The Uno has 6 analog inputs, labeled A0 through A5 , each of which provide 10 bits of
resolution (i.e. 1024 different values).

There are a couple of other pins on the board:

 AREF . Reference voltage for the analog inputs. Used with analogReference().
 Reset . Bring this line LOW to reset the microcontroller. Typically used to add a
reset button to shields which block the one on the board.

Page
59

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy