Ice Encoded & Controlled Tweek Operational Robot: Electronics & Communication Engineering
Ice Encoded & Controlled Tweek Operational Robot: Electronics & Communication Engineering
OPERATIONAL ROBOT
Report submitted in partial fulfillment of the
requirement for the degree of
B.Tech in
Electronics & Communication Engineering
Under the Supervision of
By
SUDHANSHU OJHA
TUSHENDRA MISHRA
RESHAM RASTOGI
RAHUL SRIVASTAVA
SAUMYA SENGAR
B.Tech in
Electronics & Communication Engineering
Under the Supervision of
TUSHENDRA MISHRA
SUDHANSHU OJHA
RESHAM RASTOGI
SAUMYA SENGAR
RAHUL SRIVASTAVA
Lucknow
May 2018
DECLARATION
This is to certify that Report entitled “VOICE ENCODED & CONTROLLED TWEEK
OPERATIONAL ROBOT” which is submitted by us in partial fulfillment of the
requirement for the award of degree B.Tech in Electronics & Communication Engineering
to Pranveer Singh Institute of Technology, Kanpur Dr. A P J A K Technical University,
Lucknow comprises only my own work and due acknowledgement has been made in the
text to all other material used.
Sudhanshu Ojha
Tushendra Mishra
Rahul Srivastava
Saumya Sengar
Resham Rastogi
HOD
Approved By: Electronics & Communication Engineering
PSIT, Kanpur
iii
CERTIFICATE
iv
ACKNOWLEDGEMENT
It gives us a great sense of pleasure to present the report of the B.Tech project
undertaken during B.Tech Final Year. We owe special debt of gratitude to our guide
Mr. Shailendra Sinha, Assistant Professor of Department of Electronics &
Communication Engineering, Pranveer Singh Institute of Technology, Kanpur
(U.P.) for his constant support and guidance throughout course of our work. His
sincerity, thoroughness and perseverance have been a constant source of inspiration for
us. It is only his cognizant efforts that our endeavours have been light for the day.
We also take opportunity to acknowledge the contribution of Dr. Y.M. Dubey, Head
of Department of Electronics & Communication Engineering, Pranveer Singh
Institute of Technology, Kanpur (U.P.) for his full support and assistance during the
development of the project.
We would also want to acknowledge the contribution of Mr. Raghvendra Singh,
Assistant Professor of Department of Electronics & Communication Engineering,
Pranveer Singh Institute of Technology for his continuous support as our project
coordinator.
We also do not like to miss the opportunity to acknowledge the contribution of all
faculty members of department for their assistance and cooperation during the
development of my project. Last but not the least we acknowledge our friends for their
contribution in the completion of the project.
Date: Name:
v
ABSTRACT
vi
TABLE OF CONTENTS
Declaration iii
Certificate iv
Acknowledgement v
Abstract vi
List of figure xi
List of table xiii
vii
2.1.6 Physical Characteristics And Shield Compatibility 11
2.2 Voice Control Mechanism 12
2.2.1 Introduction 12
2.2.2 Voice Control 12
2.2.3 Use of Building Module 13
2.2.4 Task of Module 14
2.2.5 System Description 14
2.2.6 Detailed Description 16
2.3 Bluetooth Module 17
2.3.1 Specifications 18
2.3.2 Working Technology 18
2.3.3 Network Technology 19
2.3.4 Interfacing With Arduino 20
2.3.5 Power Modes And Security 20
2.3.6 Features 21
2.4 Ultrasonic Sensor 22
2.4.1 Technical Specifications 23
2.5 Servo Motor 24
2.5.1 Working 25
2.6 DC Motor 26
2.6.1 Principle of Operation 28
2.7 Bread Board 29
2.8 LCD Module 29
2.8.1 44780 Background 30
2.8.2 Initializing The LCD 31
2.8.3 Important Command Codes for LCD 34
2.9 Temperature Sensor 36
2.9.1 LM35 Precision Centigrade Temperature Sensor 36
2.9.2 Block Diagram 38
2.9.3 Applications 38
viii
2.10 L293N Motor Driver Module 40
2.10.1 Introduction 40
2.10.2 Pin Details of L293N Module 42
2.10.3 Working 42
2.11 LM2596 BUCK Convertor Module 43
2.11.1 Introduction 43
2.11.2 Working 45
3.1 Introduction 47
3.2 Methods of Face Detection 48
3.2.1 HAAR Like Feature for Face Detection 48
3.3 Hardware/Software Used For Face Detection 50
4.1 Resistor 52
4.1.1 Introduction 52
4.1.2 Electronics Symbols And Notations 52
4.1.3 Theory of Operation 53
4.1.4 Series And Parallel Resistor 53
4.2 Capacitor 54
4.2.1 Introduction 54
4.3 Buzzer 56
4.3.1 Introduction 56
4.3.2 Buzzer Pin Configuration 57
4.3.3 Buzzer Features 57
4.3.4 Applications of Buzzer 58
ix
4.4 LM2596 Voltage Regulator 58
4.4.1 Introduction 58
4.4.2 Features 59
4.4.3 Applications 59
5.1 Result 60
5.2 Conclusion 60
REFERENCES 62
APPENDIX-I: PROGRAM USED FOR ARDUINO 63-73
APPENDIX-II: PROGRAM USED FOR MATLAB 74-78
x
LIST OF FIGURES
xi
4.1 (a) Resistor, (b) Rheostat, (c) Potentiometer 52
4.2 Resistance Operation 53
4.3 Resistance in Series 54
4.4 Resistance in Parallel 54
4.5 Capacitors 56
4.6 Buzzer 57
4.7 LM2596 Voltage Regulator IC 58
xii
LIST OF TABLE
Table no. Name Page no.
2.1 Technical Specifications of Ardunio Mega2560 8
2.2 Command codes for LCD 34
2.3 Pin Details of L289N Module 42
4.1 Pin Configuration of Buzzer 57
xiii
CHAPTER 1
INTRODUCTION
1.1 BRIEF REVIEW
Voice Encoded Controlled Tweek Operational Robot i.e., VECTOR is a robot having
combinations of different features for various operations such as face/object detection,
location tagging, weather forecasting and portable media centre. The Robot used to be
controlled wirelessly.
This project Robot helps to control robot through voice commands received through
android application. The integration of control unit with Bluetooth device is done to
capture and read the voice commands. The robotic vehicle then operates as per the
command received through android application. For this Arduino board is integrated
in the system which makes it possible to operate the vehicle via android application.
The controlling device may be any android based Smartphone/tab etc. having an
android OS. The android controlling system provides a good interactive GUI that
makes it easy for the user to control the vehicle. The transmitter uses an android
application required for transmitting the data. The android device sends commands to
move the vehicle in forward, backward, right and left directions.
After receiving the commands, the microcontroller then operates the motors in order
to move the vehicle in four directions. The communication between android device
and receiver is sent as serial communication data. The microcontroller program is
designed to move the motor through a motor driver IC as per the commands sent by
android device. Such Robot will be useful for surveillance purpose and provides
simple means for face detection and recognition.
A humanoid Robot is a robot with its body shape built to resemble that of the human
body. A humanoid design might be for functional purposes, such as interacting with
human tools and environments, for experimental purposes, such as the study of
bipedal locomotion, or for other purposes. In general, humanoid robots have a torso, a
head, two arms, and two legs, though some forms of humanoid robots may model
only part of the body, for example, from the waist up. Some humanoid robots may
also have heads designed to replicate human facial features such as eyes and mouths.
1
1.2 MOTIVATION
Under the scheme of Digital India as we are moving towards sophisticated and
digitally active world, we have a responsibility to make people cognizant of every
possible aspect of technology.
To provide user friendly robot which required simple step for the user to use it.
To help the user to use for safety purpose.
Test the robot in more real world situation by utilizing external testing facilities.
To combine more and more functions in a single unit to make use of it for
multiple tasks.
To make a robot as feasible as possible so that it can be used for different
purposes in different situations.
1.3 PURPOSE
Humanoid robots are used as a research tool in several research areas. Researchers
need to understand the human body structure and behaviour of build and study
humanoid robots. On the other side, the attempt to the simulation of the human body
leads to a better understanding of it. Human Recognition is a field of study which is
focused on how humans learn from sensory Information in order to acquire perceptual
and motor skills. This knowledge is used to develop Computational models of human
behaviour and it has been improving over time. It has been suggested that very
advanced robotics will facilitate the enhancement of ordinary humans. Although the
initial aim of humanoid research was to build better orthotics and prosthesis for
human beings, knowledge has been transferred between both disciplines. Besides the
research, humanoid robots are being developed to perform human tasks like personal
assistance, where they should be able to assist the sick and elderly, and dirty or
dangerous jobs like being receptionist or a worker of an automotive manufacturing
line are also suitable for humanoids. In essence, since they can use tools and operate
equipment and vehicles designed for the human form, humanoids could theoretically
perform any task a human being can, so long as they have the proper software.
However, the complexity of doing so is deceptively great. They are becoming
increasingly popular for providing entertainment too. These animations look so
realistic that it can be hard to decipher from a distance whether or not they are
2
actually human. Although they have a realistic look, they have no cognition or
physical autonomy. Various humanoid robots, especially with artificial intelligence
algorithms, could be useful for future dangerous and distant space exploration
missions, without having the need to turn back around again and return to earth once
the mission is completed.
3
1.5 FLOWCHART OF PROJECT
4
1.6 LITERATURE REVIEW
NASA’s vision for space exploration stresses the cultivation of human-robotic system
(NASA 2004). Fong and nourbaksh (fong and nourbaksh 2005) point out that to
reduce The human workload, costs, fatigue, driven error and risk, intelligent robotic
system will Have to be part of mission design. They also observe that the scant
attention has been paid to joint human robot team and making human robot
collaboration natural and efficient is crucial to future space exploration. Companies
such as Honda, Toyota and Sony are also interested in developing consumer robot that
interact with humans in the home and in workplace. There is a growing interest in the
human robot interaction a can be recognized by (HRI). The Cogniron project
(COGNORON 2007), MIT Media lab and the Mitsubishi Electric Research
Laboratories (Sidney and Lee 2005) recognize the need for human robot collaboration
As well and are currently conducting research in this field emerging area. Clearly,
there is a Growing need for research on human robot collaboration and modes of
communication between human and robotic system. This article review at the field of
humanoid robot interaction with a focus on communication and collaboration. First an
overview of models of Human robot collaboration and how they could be used to
develop a model for human robot collaboration is present. Next the current state of
human robot interaction is reviewed and how it fits into a model of humanoid robot
collaboration is explored. Finally, a holistic architecture Design human robot
collaboration using AR is presented.
5
which could be approximately expressed by more than three hundreds equivalent
degrees of freedom, i.e., the same number of biological actuators.
The above-mentioned obstacles being taken down, along with the humanoid robots
playing mainly the role of communicators and entertainer, there have appeared
humanoids of quite different aspirations in the domain of manipulation locomotion
activities of humans . The work is also promoting some new ideas concurring the
already visible trends of expanding activities of humanoid robotics to cover the new
tasks.
MEDICAL ROBOTS: Robots used in medicine and medical institutions. First and
foremost- surgery robots. Also, some automated guided vehicles and maybe lifting
aids.
SERVICE ROBOTS: Robots that don’t fall into other types by usage. These could
be different data gathering robots, robots made to show off technologies, robots used
for research.
6
MILITARY ROBOTS: Robots used in military. This type of robots includes bomb
diffusion robots, different transportation robots. Often robots initially created for
military purposes can be in law enforcement and other fields.
SPACE ROBOTS: I’d like to single out robots used in space as a separate type. This
type would include robots used on the International Space Station, Canadarm that was
used in Shuttles, as well as Mars rovers and other robots used in space.
HOBBY AND COMPETITION ROBOTS: Robots that you create. Line followers,
sumo-bots, robots made just for fun and robots made for competition.
7
CHAPTER 2
HARDWARE USED
8
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz
LED_BUILTIN 13
Length 101.52 mm
Width 53.3 mm
Weight 37 g
9
2.1.3 INPUT-OUTPUT PINS
Each of the 54 digital pins on the Mega can be used as an input or output, using
pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each
pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor
(disconnected by default) of 20-50 k-Ohms. In addition, some pins have specialized
functions:
Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and
16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX)
TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the
ATmega8U2 USB-to-TTL Serial chip.
PWM: 0 to 13. Provide 8-bit PWM output with the analogWrite() function.
LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH
value, the LED is on, when the pin is LOW, it's off.
I2C: 20 (SDA) and 21 (SCL). Support I2C (TWI) communication using the Wire
library (documentation on the Wiring website). Note that these pins are not in the
same location as the I2C pins on the Duemilanove.
The Mega2560 has 16 analog inputs, each of which provide 10 bits of resolution (i.e.
1024 different values). By default they measure from ground to 5 volts, though is it
possible to change the upper end of their range using the AREF pin and Analog
Reference () function.
10
2.1.4 PROGRAMMING
If you have an external programmer (e.g. an AVR-ISP, STK500, or parallel
programmer), you can burn sketches to the Arduino board without using the
bootloader. This allows you to use the full program space (flash) of the chip on the
Arduino board. So with an ATmega168, you'll get 16 KB instead of 14 (on
an ATmega8 you'll get 8 KB instead of 7). It also avoids the bootloader delay when
you power or reset your board. However you must have in mind that the Upload
Using Programmer procedure doesn't burn fuses so, if you have a fresh factory micro-
controller you have to burn the boot-loader first in order to have a properly working
device. This can be easily done in this way:
Tools->Boards->Your Board
Tools->Programmer->Your Programmer
Sketch->Upload Using a Programmer
The Mega is designed to be compatible with most shields designed for the Diecimila
or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog
inputs 0 to 5, the power header, and ICSP header are all in equivalent locations.
Further the main UART (serial port) is located on the same pins (0 and 1), as are
11
external interrupts 0 and 1 (pins 2 and 3 respectively). SPI is available through the
ICSP header on both the Mega and Duemilanove / Diecimila.
12
takes any of the robots main CPU processing power for word recognition. The CPU
must merely poll the speech circuit’s recognition lines occasionally to check if a
command has been issued to the robot. We can even improve upon this by connecting
the recognition line to one of the robot’s CPU interrupt lines. By doing this, a
recognized word would cause an interrupt, letting the CPU know a recognized word
had been spoken. The advantage of using an interrupt is that polling the circuit’s
recognition line occasionally would no longer be necessary, further reducing any CPU
overhead. Another advantage to this stand-alone speech-recognition circuit (SRC) is
its programmability. You can program and train the SRC to recognize the unique
words you want recognized. The SRC can be easily interfaced to the robot’s CPU. To
control and command an appliance (computer, VCR, TV security system, etc.) by
speaking to it, will make it easier, while increasing the efficiency and effectiveness of
working with that device. At its most basic level speech recognition allows the user to
perform parallel tasks, (i.e. hands and eyes are busy elsewhere) while continuing to
work with the computer or appliance. Robotics is an evolving technology. There are
many approaches to building robots, and no one can be sure which method or
technology will be used 100 years from now.
13
life or limb, robots can replace humans in some hazardous duty service. Robots can
work in all types of polluted environments, chemical as well as nuclear. They can
work in environments so hazardous that an unprotected human would quickly die
The purpose of this project is to build a robotic car which could be controlled using
voice commands. Generally these kinds of systems are known as Speech Controlled
Automation Systems (SCAS). Our system will be a prototype of the same. We are not
aiming to build a robot which can recognize a lot of words. Our basic idea is to
develop some sort of menu driven control for our robot, where the menu is going to
be voice driven. What we are aiming at is to control the robot using following voice
commands. The robot can do these basic tasks:-
1. Move forward
2. Move back
3. Turn right
4. Turn left
5. Hands up
6. Hands down
14
a digitally stored set of words. The quality of a speech recognition systems are
assessed according to two factors: its accuracy (error rate in converting spoken words
to digital data) and speed (how well the software can keep up with a human speaker).
Speech recognition technology has endless applications. Commonly, such software is
used for automatic translations, dictation, hands-free computing, medical
transcription, robotics, automated customer service, and much more. If you have ever
paid a bill over the phone using an automated system, you have probably benefited
from speech recognition software. Speech recognition technology has made huge
strides within the last decade. However, speech recognition has its weaknesses and
nagging problems. Current technology is a long way away from recognizing
conversational speech. Despite its shortcomings, speech recognition is quickly
growing in popularity. Within the next few years, experts say that speech recognition
will be the norm in phone networks the world over. Its spread will be aided by the fact
that voice is the only option for controlling automated services in places where touch
tone phones are uncommon.
Once a sample of their speech is recorded, a person’s speech patterns are tested
against a database to see if their voice matches their claimed identity. Most
commonly, speaker verification is applied to situations where secure access is needed.
Such systems operate with the user’s knowledge and cooperation. Speaker
15
identification is the process of determining an unknown speaker’s identity. Unlike
speaker verification, speaker identification is usually convert and done without the
user’s knowledge.
RECIEVER SECTION:-
On the receiver section, the binary data are received by the BLUETOOTH receiver
module, and it sends the binary values to the microcontroller (ATmega 2560). The
micro controller enters into the switch case and compares those string values with the
values in switch case. Then according to the string value it will drive the motors in a
continuous loop.
ALGORITHM:-
1. The voice commands are given to android application.
2. Then the stored voice commands are compared with the keywords stored in
program such as move forward – “F”, move backward – “B” etc.
3. These Strings are transmitted via BLUETOOTH module which is a transceiver in
form of binary data using serial communication (here transmitter is android
smartphone).
4. The transmitted binary values are then received by another BLUETOOTH module
which is present on the receiver side (here receiver is Bluetooth module HC-05).
5. Microcontroller will take those binary values and performs action (motors)
according to the binary values.
16
DISADVANTAGE:-
1. Even the best speech recognition systems sometimes make errors. If there is noise
or some other sound in the room (e.g. the television or a kettle boiling), the number of
errors will increase.
2. Speech Recognition works best if the microphone is close to the user (e.g. in a
phone, or if the user is wearing a microphone). More distant microphones (e.g. on a
table or wall) will tend to increase the number of errors.
3. No password protection.
17
2.3.1 SPECIFICATIONS
A Bluetooth module is a short range device of around 10 meters which provides both
sound and data transmission. The Bluetooth transmits and receives at a frequency
band of 2.4 GHz which is globally available. The Bluetooth device uses an IEEE 802
standards where in the connections can be point-to-point or point-to-multipoint. The
data transfer rate is 3mbps and the maximum range of a Bluetooth device can be 10-
100 meters. The default baud rate is 9600 for communication mode and other
supported baud rates are 19200, 38400, 57600,115200,230400 and 460800. Bluetooth
can connect up to 8 devices simultaneously. It uses the spread spectrum technology in
18
which each device uses different frequency band and hence the devices do not
transmit at same time. When the two devices come in range with each other, the
transmission takes place between them.
Bluetooth low energy is a wireless personal area network technology designed and
marketed by the Bluetooth Special Interest Group aimed at novel applications in the
healthcare, fitness, beacons, security, and home entertainment industries. Compared to
Classic Bluetooth, Bluetooth Smart is intended to provide considerably reduced
power consumption and cost while maintaining a similar communication range.
Mobile operating systems including iOS, Android, Windows Phone and BlackBerry,
as well as OS X, Linux, and Windows 8, natively support Bluetooth Smart.
M – MASTER
S – SLAVE
19
2.3.4 INTERFACING WITH ARDUINO
Bluetooth HC-05 module interfacing with Arduino Mega 2560 board module
interfacing with Arduino board. Bluetooth HC-05 module can be easily interfaced
with Arduino mega board. Connections should be done as the schematic shown in
figure 2.6:
Voltage divider is used to drop 5V to 3.3V. After the completion of the connections,
the red led on HC-05 Bluetooth Module will blink continuously indicating that device
is ready to pair. To pair the HC-05 Bluetooth module with computer
2. Search for new device to pair, Bluetooth module HC-05 will appear as HC-05.
5. Now after pairing is done we can program the Arduino microcontroller to send and
receive data. Once the pairing is done led on Bluetooth module will blink twice after
every 2sec.
20
flexibility for different applications. In hold mode only an interval timer is running
and data transfer starts again as the units transits out of hold mode. Park mode is used
in the case wherein seven clients can be active at any time.
2.3.6 FEATURES
1-Typical -80dBm sensitivity
2-Up to +4dBm RF transmit power
3-Low Power 1.8V Operation, 1.8 to 3.6V I/O
4-PIO control
5-UART interface with programmable baud rate
6-With integrated antenna
7-Default Baud rate: 38400, Data bits: 8, Stop bit:1, Parity: No parity, Data control:
has supported baud rate: 9600,19200,38400,57600,115200,230400,460800.
ADVANTAGES:-
1- Ease of use.
2- No LOS (Line of sight) required for data transfer.
3- Less power consumption makes its usage very practical.
4- 2.4 GHz radio frequency ensures worldwide operability.
5- The data rate is high i.e. around 3Mbp.
APPLICATIONS:-
1- Handheld device, music players, other electronic systems.
2- Wireless communication of devices like keyboard, mouse, printer, etc.
3- Wireless internet access using Bluetooth Dongle.
4- In medical field like
21
BLP -for blood pressure measurement. HTP - for medical temperature measurement
devices.
GLP -for blood glucose monitors.
CGMP -Continuous Glucose Monitor Profile
22
Ultrasonic sensors emit ultrasonic pulses that travel in a cone-shaped beam by using a
vibrating device known as a transducer, generating the ultrasonic wave. The
frequency of vibration of the transducer determines the range of an ultrasonic sensor.
The sound waves transmit for progressively shorter distances along with the
frequency increases. Conversely, the sound waves transmit for progressively longer
distances as the frequency decreases. Therefore, short-range ultrasonic sensors work
best at higher frequencies, while long-range ultrasonic sensors work best at lower
frequencies.
23
Resolution − 0.3 cm
Measuring Angle − 30 degree
2.5 SERVOMOTOR
A Servo Motor is a small device that has an output shaft. This shaft can be
positioned to specific angular positions by sending the servo a coded signal. As
long as the coded signal exists on the input line, the servo will maintain the angular
position of the shaft. If the coded signal changes, the angular position of the shaft
changes. In practice, servos are used in radio-controlled airplanes to position
control surfaces like the elevators and rudders. They are also used in radio-
controlled cars, puppets, and of course, robots.
Servos are extremely useful in robotics. The motors are small, have built-in control
circuitry, and are extremely powerful for their size. A standard servo such as the
Futaba S-148 has 42 oz/inches of torque, which is strong for its size. It also draws
power proportional to the mechanical load. A lightly loaded servo, therefore, does
not consume much energy. The guts of a servo motor is shown in the following
picture. You can see the control circuitry, the motor, a set of gears, and the case.
You can also see the 3 wires that connect to the outside world. One is for power
(+5volts), ground, and the white wire is the control wire.
24
2.5.1 Working of a Servo Motor
The servo motor has some control circuits and a potentiometer (a variable resistor, aka
pot) connected to the output shaft. In the picture above, the pot can be seen on the
right side of the circuit board. This pot allows the control circuitry to monitor the
current angle of the servo motor. If the shaft is at the correct angle, then the motor
shuts off. If the circuit finds that the angle is not correct, it will turn the motor until it
is at a desired angle. The output shaft of the servo is capable of traveling somewhere
around 180 degrees. Usually, it is somewhere in the 210-degree range, however, it
varies depending on the manufacturer. A normal servo is used to control an angular
motion of 0 to 180 degrees. It is mechanically not capable of turning any farther due
to a mechanical stop built on to the main output gear. The power applied to the motor
is proportional to the distance it needs to travel. So, if the shaft needs to turn a large
distance, the motor will run at full speed. If it needs to turn only a small amount, the
motor will run at a slower speed. This is called proportional control.
How Do You Communicate the Angle at Which the Servo Should Turn?
The control wire is used to communicate the angle. The angle is determined by the
duration of a pulse that is applied to the control wire. This is called Pulse Coded
Modulation. The servo expects to see a pulse every 20 milliseconds (.02 seconds).
The length of the pulse will determine how far the motor turns. A 1.5 millisecond
pulse, for example, will make the motor turn to the 90-degree position (often called
as the neutral position). If the pulse is shorter than 1.5 milliseconds, then the motor
will turn the shaft closer to 0 degrees. If the pulse is longer than 1.5 milliseconds,
the shaft turns closer to 180 degrees.
25
Fig 2.10: pulse generation for rotation of servo motor
2.6 DC MOTORS
A DC motor is any of a class of electrical machines that converts direct current
electrical power into mechanical power. The most common types rely on the forces
produced by magnetic fields. Nearly all types of DC motors have some internal
mechanism, either electromechanical or electronic, to periodically change the
direction of current flow in part of the motor. Most types produce rotary motion; a
linear motor directly produces force and motion in a straight line. DC motors were the
first type widely used, since they could be powered from existing direct-current
lighting power distribution systems. A DC motors’ speed can be controlled over a
wide range, using either a variable supply voltage or by changing the strength of
current in its field windings. Small DC motors are used in tools, toys, and appliances.
The universal motor can operate on direct current but is a lightweight motor used for
portable power tools and appliances.
Larger DC motors are used in propulsion of electric vehicles, elevator and hoists, or in
drives for steel rolling mills. The advent of power electronics has made replacement
of DC motors with AC motors possible in many applications. A DC motor in simple
words is a device that converts direct current (electrical energy) into mechanical
energy. It's of vital importance for the industry today, and is equally important for
engineers to look into the working principle of DC motor in details that has been
discussed in this article. In order to understand the operating principle of dc motor we
26
need to first look into its constructional feature. The very basic construction of a dc
motor contains a current carrying armature which is connected to the supply end
through commutator segments and brushes and placed within the north south poles of
a permanent or an electromagnet as shown in the figure 2.11.
Now to go into the details of the operating principle of DC motor it's important that
we have a clear understanding of Fleming's left hand rule to determine the direction of
force acting on the armature conductors of dc motor.
Fleming left hand rule says that if we extend the index finger, middle finger and
thumb of our left hand in such a way that the current carrying conductor is placed in a
magnetic field (represented by the index finger) is perpendicular to the direction of
current (represented by the middle finger), then the conductor experiences a force in
the direction of field and the current in the conductor. For clear understanding the
principle of DC motor we have to determine the magnitude of the force. A portion of
a conductor of length L placed vertically in a uniform horizontal magnetic field
27
strength H, produced by two magnetic poles N and S. If I is the current flowing
through this conductor, the magnitude of the force acts on the conductor is
F=BiL …. (1)
Step 1: Initially considering the armature is in its starting point or reference position
where the angle a=0. Since a=0, the term cos a=1, or the maximum value, hence
torque at this position is maximum given by:-
t= BILw. ….(2)
This high starting torque helps in overcoming the initial inertia of rest of the armature
and sets it into rotation.
Steps 2: Once the armature is set in motion, the angle a between the actual position of
the armature and its reference initial position goes on increasing in the path of its
rotation until it becomes 90 degree from its initial position. Consequently the term cos
a decreases and also the value of torque. The torque in this case is given by
Steps 3: In the path of the rotation of the armature a point is reached where the actual
position of the rotor is exactly perpendicular to its initial position, i.e., a=90 degree,
and as a result the term.
t=Bilw.cos90=0 …. (5)
i.e. virtually no rotating torque acts on the armature at this instance. But still the
armature does not come to a standstill, this is because of the fact that the operation of
dc motor has been engineered in such a way that the inertia of motion at this point is
28
just enough to overcome this point of null torque. Once the rotor crosses over this
position the angle between the actual position of the armature and the initial plane
again decreases and torque starts acting on its again.
29
serial/parallel pins are defined so its easy to interface them with many
microcontrollers. Many products we see in our daily life have lcd's with them. They
are used to show status of the product or provide interface for inputting or selecting
some process. Washing machine, microwave, air conditioners and mat cleaners are
few examples of products that have character or graphical lcd's installed in them.
Character lcd's come in many sizes 8x1, 8x2, 10x2, 16x1, 16x2, 16x4, 20x2, 20x4,
24x2, 30x2, 32x2, 40x2 etc. Many multinational companies like Philips, Hitachi, and
Panasonic make their own custom type of character lcd's to be used in their products.
All character lcd's performs the same functions (display characters numbers special
characters, ascii characters etc.).Their programming is also same and they all have
same 14 pins (0-13) or 16 pins (0 to 15)
The 44780 standard requires 3 control lines as well as either 4 or 8 I/O lines for the
data bus. The user may select whether the LCD is to operate with a 4-bit data bus or
an 8-bit data bus. If a 4-bit data bus is used, the LCD will require a total of 7 data
lines (3 control lines plus the 4 lines for the data bus). If an 8-bit data bus is used, the
LCD will require a total of 11 data lines (3 control lines plus the 8 lines for the data
bus). The three control lines are referred to as EN, RS, and RW. The EN line is called
"Enable." This control line is used to tell the LCD that you are sending it data. To
send data to the LCD, your program should first set this line high (1) and then set the
other two control lines and/or put data on the data bus. When the other lines are
completely ready, bring EN low (0) again. The 1-0 transition tells the 44780 to take
30
the data currently found on the other control lines and on the data bus and to treat it as
a command.
The RS line is the "Register Select" line. When RS is low (0), the data is to be treated
as a command or special instruction (such as clear screen, position cursor, etc.). When
RS is high (1), the data being sent is text data which should be displayed on the
screen. For example, to display the letter "T" on the screen you would set RS high.
The RW line is the "Read/Write" control line. When RW is low (0), the information
on the data bus is being written to the LCD. When RW is high (1), the program is
effectively querying (or reading) the LCD. Only one instruction ("Get LCD status") is
a read command. All others are write commands--so RW will almost always be low.
Finally, the data bus consists of 4 or 8 lines (depending on the mode of operation
selected by the user). In the case of an 8-bit data bus, the lines are referred to as DB0,
DB1, DB2, DB3, DB4, DB5, DB6, and DB7.
Library “LiquidCrystal.h” is used for easily controlling the LCD module using
Arduino board with the help of built in methods defined inside the library For
example, data string can be printed on the LCD module by merely calling a method
lcd.print(). If you want to print “Hello World” at row 1, starting from column 3; first
set the cursor at the desired position using method lcd.setCursor(1,3) and then write
the command to print the characters as lcd.print(“Hello World”); – got it? The library
is readily available with the Arduino IDE (as it’s a pre-installed standard library).
Any library can be accessed manually through the “Import library” in the “sketch” tab
in the main menu bar. The LiquidCrystal.h library provides functions/methods for
almost all applications like printing a string, setting the cursor, initializing the LCD,
scrolling the display, auto scroll, clear LCD, blink cursor etc.
31
#include<LiquidCrystal.h>
void setup()
void loop()
CURSOR POSITIONING:-
The above "Hello World" program is simplistic in the sense that it prints its text in the
upper left-hand corner of the screen. However, what if we wanted to display the word
"Hello" in the upper left-hand corner but wanted to display the word "World" on the
second line at the tenth character? This sounds simple--and actually, it is simple.
However, it requires a little more understanding of the design of the LCD.
The 44780 contains a certain amount of memory which is assigned to the display. All
the text we write to the 44780 is stored in this memory, and the 44780 subsequently
reads this memory to display the text on the LCD itself. This memory can be
represented with the following "memory map":
32
Fig 2.15: Memory Map
Thus, the first character in the upper left-hand corner is at address 00h. The following
character position (character #2 on the first line) is address 01h, etc. This continues
until we reach the 16th character of the first line which is at address 0Fh. However,
the first character of line 2, as shown in the memory map, is at address 40h. This
means if we write a character to the last position of the first line and then write a
second character, the second character will not appear on the second line. That is
because the second character will effectively be written to address 10h--but the
second line begins at address 40h.
Thus we need to send a command to the LCD that tells it to position the cursor on the
second line. The "Set Cursor Position" instruction is 80h. To this we must add the
address of the location where we wish to position the cursor. In our example, we said
we wanted to display "World" on the second line on the tenth character position.
1. Vss GROUND
6 E ENABLE
7 DB0
8 DB1
33
9. DB2
10. DB3
11. DB4
12. DB5
13. DB6
14. DB7
A 16X2 LCD has two registers, namely, command and data. The register select is
used to switch from one register to other. RS=0 for command register, whereas RS=1
for data register.
Command Register: The command register stores the command instructions given to
the LCD. A command is an instruction given to LCD to do a predefined task like
initializing it, clearing its screen, setting the cursor position, controlling display etc.
Processing for commands happen in the command register.
Data Register: The data register stores the data to be displayed on the LCD. The
data is the ASCII value of the character to be displayed on the LCD. When we send
data to LCD it goes to the data register and is processed there. When RS=1, data
register is selected.
Command to LCD
Sr.No. Hex Code instruction
Register
34
2 02 Return home
Decrement cursor
3 04
(shift cursor to left)
Increment cursor
4 06
(shift cursor to right)
35
Force cursor to
16 80
beginning ( 1st line)
Force cursor to
17 C0
beginning ( 2nd line)
36
package. The LM35D is also available in an 8-lead surface mount small outline
package and a plastic TO-220 package.
Features:-
Calibrated directly in ° Celsius (Centigrade)
Linear + 10.0 mV/°C scale factor
0.5°C accuracy guarantee able (at +25°C)
Rated for full −55° to +150°C range
Suitable for remote applications
Low cost due to wafer-level trimming
Operates from 4 to 30 volts
Less than 60 μA current drain
Low self-heating, 0.08°C in still air
Nonlinearity only ±1⁄4°C typical
Low impedance output, 0.1 W for 1 mA load.
Typical Applications:-
37
2.9.2 BLOCK DIAGRAM
2.9.3 APPLICATIONS
The LM35 can be applied easily in the same way as other integrated-circuit
temperature sensors. It can be glued or cemented to a surface and its temperature will
be within about 0.01˚C of the surface temperature. This presumes that the ambient air
temperature is almost the same as the surface temperature; if the air temperature were
much higher or lower than the surface temperature, the actual temperature of the
LM35 die would be at an intermediate temperature between the surface temperature
and the air temperature. This is especially true for the TO-92 plastic package, where
the copper leads are the principal thermal path to carry heat into the device, so its
temperature might be closer to the air temperature than to the surface temperature.
38
Fig 2.19: LM35 Application Sample
To minimize this problem, be sure that the wiring to the LM35, as it leaves the device,
is held at the same temperature as the surface of interest. The easiest way to do this is
to cover up these wires with a bead of epoxy which will insure that the leads and
wires are all at the same temperature as the surface, and that the LM35 die’s
temperature will not be affected by the air temperature. The TO-46 metal package can
also be soldered to a metal surface or pipe without damage. Of course, in that case the
V− terminal of the circuit will be grounded to that metal. Alternatively, the LM35 can
be mounted inside a sealed-end metal tube, and can then be dipped into a bath or
screwed into a threaded hole in a tank. As with any IC, the LM35 and accompanying
wiring and circuits must be kept insulated and dry, to avoid leakage and corrosion.
This is especially true if the circuit may operate at cold temperatures where
condensation can occur. Printed-circuit coatings and varnishes such as Humiseal and
epoxy paints or dips are often used to insure that moisture cannot corrode the LM35
or its connections. These devices are sometimes soldered to a small light-weight heat
fin, to decrease the thermal time constant and speed up the response in slowly-moving
air. On the other hand, a small thermal mass may be added to the sensor, to give the
steadiest reading despite small deviations in the air temperature.
39
2.10 MOTOR DRIVER MODULE-L298N
2.10.1 INTRODUCTION
The L298N is an integrated monolithic circuit in a 15- lead Multi watt and
PowerSO20 packages. It is a high voltage, high current dual full-bridge driver de-
signed to accept standard TTL logic level sand drive inductive loads such as relays,
solenoids, DC and stepping motors. Two enable inputs are provided to enable or
disable the device independently of the in-put signals .The emitters of the lower
transistors of each bridge are connected together rand the corresponding external
terminal can be used for the connection of an external sensing resistor. An additional
Supply input is provided so that the logic works at a lower voltage.
40
Features:-
Pin Function:-
There are 4 input pins for l298N, pin 5, 7 and pin 10, 12 shown on the pin diagram.
Left input pins will regulate the rotation of motor connected across left side and right
input for motor on the right hand side. The motors are rotated on the basis of the
inputs provided across the input pins as LOGIC 0 or LOGIC 1. In simple you need to
provide Logic 0 or 1 across the input pins for rotating the motor.
41
2.10.2 PIN DETAIL OF L289N MODULE
2.10.3 WORKING
The L298 uses two different supply voltages. The voltage on pin 9 powers the chip
itself and should be 5 volts. The voltage on pin 4 supplies the motors, and it can be up
to 46 volts. For controlling the motors, Motor1. In order to activate the motor, the
Enable1 line must be HIGH. You then control the motor and its direction by applying
a LOW or HIGH signal to the Input1 and Input2 lines, as shown in this table.
42
Input1 Input2 Action
LOW LOW Motor breaks and stops*
HIGH LOW Motor turns forward
LOW HIGH Motor turns backward
HIGH HIGH Motor breaks and stops*
* To coast a motor to a slower stop, apply a LOW signal to the Enable1 line. The
L298 does not have built-in protection diodes, so you’ll need to add those. The
datasheet for the L298 specifies “fast recovery” 1-amp diodes; an inexpensive
selection is the 1N4933, available from most online electronic parts outlets.
2.11.1 INTRODUCTION
DC-DC Buck Converter Step Down Module LM2596 Power Supply is a step-
down (buck) switching regulator, capable of driving a 3-A load with excellent line
and load regulation. These devices are available in fixed output voltages of 3.3 V, 5
V, 12 V, and an adjustable output version. The LM2596 series operates at a switching
frequency of 150 kHz, thus allowing smaller sized filter components than what would
be required with lower frequency switching regulators.
SPECIFICATIONS:-
Input voltage:4.75-35V
Output voltage:1.25-26V(Adjustable)
44
Operating Temperature: Industrial grade (-40 to +85 ) (output power 10W or
less)
2.11.2 WORKING
The basic operation of the buck converter has the current in an inductor controlled by
two switches (usually a transistor and a diode). In the idealised converter, all the
components are considered to be perfect. Specifically, the switch and the diode have
zero voltage drop when on and zero current flow when off, and the inductor has zero
series resistance. Further, it is assumed that the input and output voltages do not
change over the course of a cycle (this would imply the output capacitance as being
infinite).
The conceptual model of the buck converter is best understood in terms of the relation
between current and voltage of the inductor. Beginning with the switch open (off-
state), the current in the circuit is zero. When the switch is first closed (on-state), the
current will begin to increase, and the inductor will produce an opposing voltage
across its terminals in response to the changing current. This voltage drop counteracts
the voltage of the source and therefore reduces the net voltage across the load. Over
time, the rate of change of current decreases, and the voltage across the inductor also
then decreases, increasing the voltage at the load. During this time, the inductor stores
energy in the form of a magnetic field. If the switch is opened while the current is still
changing, then there will always be a voltage drop across the inductor, so the net
voltage at the load will always be less than the input voltage source. When the switch
is opened again (off-state), the voltage source will be removed from the circuit, and
the current will decrease. The decreasing current will produce a voltage drop across
the inductor (opposite to the drop at on-state), and now the inductor becomes a
Current Source. The stored energy in the inductor's magnetic field supports the
current flow through the load. This current, flowing while the input voltage source is
disconnected, when concatenated with the current flowing during on-state, totals to
current greater than the average input current (being zero during off-state). The
"increase" in average current makes up for the reduction in voltage, and ideally
preserves the power provided to the load. During the off-state, the inductor is
45
discharging its stored energy into the rest of the circuit. If the switch is closed again
before the inductor fully discharges (on-state), the voltage at the load will always be
greater than zero.
46
CHAPTER 3
FACE DETECTION USING MATLAB
3.1 INTRODUCTION
Face detection is the problem of determining whether a sub-window of an image
contains a face. Several applications, such as face processing (i.e. face, expression,
and gesture recognition), computer human interaction, human crowd surveillance,
biometric, video surveillance, artificial intelligence and content-based image retrieval.
All of these applications, stated above, require face detection, which can be simply
viewed as a pre-processing step, for obtaining the “object”. In other words, many of
the techniques are proposed for these applications assume that, the location of the face
is pre-identified and available for the next step. First problem is come in the way of
face detection, is chosen proper colour model for skin colour segmentation. There are
several colour models and each has specific work field and strength. We used four
colour models for skin colour segmentation, these are RGB, YCbCr , HSV, and LAB
colour models. After skin like pixels detection, we convert this segmented image into
binary form. This binary image contains skin regions, but we don’t know that, where
is human face in segmented image. Next step of face detection after segmentation is
based on knowledge of human face. Work of next step is to remove nonhuman face
skin area from segmented image, by using Knowledge-based methods or human face
features. In this paper, we are describing our algorithm in three section, section 1
presents ‘Skin colour segmentation‟, while section 2 presents ‘Binary image
formation‟ and section 3 presents ‘Rejection of non-face regions. Below figure is
showing the flowchart of our proposed algorithm. Face-detection algorithms focus on
the detection of frontal human faces. It is analogous to image detection in which the
image of a person is matched bit by bit. Image matches with the image stores in
database. Any facial feature changes in the database will invalidate the matching
process.
A reliable face-detection approach based on the genetic algorithm and the Eigen-
face technique
47
Firstly, the possible human eye regions are detected y testing all the valley regions in
the gray-level image. Then the genetic algorithm is used to generate all the possible
face regions which include the eyebrows, the iris, the nostril and the mouth corners.
Each possible face candidate is normalized to reduce both the lightning effect, which
is caused by uneven illumination; and the shirring effect, which is due to head
movement. The fitness value of each candidate is measured based on its projection on
the Eigen-faces. After a number of iterations, all the face candidates with a high
fitness value are selected for further verification. At this stage, the face symmetry is
measured and the existence of the different facial features is verified for each face
candidate.
48
proposal, improve the feature extraction part to extract powerful feature value. And
second, improve the cascade decision algorithm by adding more messages from front
stages results to do the stage decision. Area of face to recognize. In this case, the
majority cameras are installed in front of a door and the person to be recognized is
required to stand at a precise position so the face of the person should be acquired
correctly. As a result, the face in the image taken is well positioned and the size is big
enough not only for detection but for recognition. The second case simulates face
detection used for a surveillance system. Detecting faces and analysing the activity is
one of the important functions for intelligent surveillance. In this problem, faces are
relatively far from the camera and the pose and angle of the face can’t be guaranteed
to be at a certain range. In that sense, the face detection should deal with small faces
with arbitrary pose and in-place rotation. Important conditions for the face detection
problem that can be identified easily by users are investigated and the architecture for
the language model based on these conditions was developed. The problem of
selecting algorithms and deciding complicated parameters for algorithms are isolated
from development with the proposed language model.
49
FLOW CHART OF FACE DETECTION
A webcam is a video camera that feeds or streams its image in real time to or through
a computer to a computer network. When "captured" by the computer, the video
stream may be saved, viewed or sent on to other networks via systems such as the
internet, and emailed as an attachment. When sent to a remote location, the video
stream may be saved, viewed or on sent there. Unlike an IP camera (which connects
using Ethernet or Wi-Fi), a webcam is generally connected by a USB cable, or similar
cable, or built into computer hardware, such as laptops.
The term "webcam" (a clipped compound) may also be used in its original sense of
a video camera connected to the Web continuously for an indefinite time, rather than
for a particular session, generally supplying a view for anyone who visits its web
page over the Internet. Some of them, for example, those used as online traffic
cameras, are expensive, rugged professional video cameras.
50
Fig 3.3: Webcam used for project
MATLAB:-
MATLAB (matrix laboratory) is a multi-paradigm numerical computing environment.
A proprietary programming language developed by MathWorks, MATLAB allows
matrix manipulations, plotting of functions and data, implementation of algorithms,
creation of user interfaces, and interfacing with programs written in other languages,
including C, C++, C#, Java, Fortran and Python. Although MATLAB is intended
primarily for numerical computing, an optional toolbox uses the MuPAD symbolic
engine, allowing access to symbolic computing abilities. An additional package,
Simulink, adds graphical multi-domain simulation and model-based design for
dynamic and embedded systems.
51
CHAPTER 4
4.1 RESISTOR
4.1.1 INTRODUCTION
Fig 4.1: (a) resistor, (b) rheostat (variable resistor), and (c) potentiometer)
52
4.1.3 THEORY OF OPERATION
The hydraulic analogy compares electric current flowing through circuits to water
flowing through pipes. When a pipe (left) is clogged with hair (right), it takes a larger
pressure to achieve the same flow of water. Pushing electric current through a large
resistance is like pushing water through a pipe clogged with hair: It requires a larger
push (voltage) to drive the same flow (electric current).
Ohm's law
53
Fig 4.3: Resistance in Series
The total resistance of resistors connected in parallel is the reciprocal of the sum of
the reciprocals of the individual resistors.
For example, a 10 ohm resistor connected in parallel with a 5 ohm resistor and a 15
ohm resistor produces 1/1/10 + 1/5 + 1/15 ohms of resistance, or 30/11 = 2.727 ohms.
A resistor network that is a combination of parallel and series connections can be
broken up into smaller parts that are either one or the other. Some complex networks
of resistors cannot be resolved in this manner, requiring more sophisticated circuit
analysis. Generally, the Y-Δ transform, or matrix methods can be used to solve such
problems.
4.2 CAPACITOR
4.2.1 INTRODUCTION
54
for a variety of practical applications by consideration of size, shape, and positioning
of closely spaced conductors, and the intervening dielectric material. A capacitor was
therefore historically first known as an electric condenser. The physical form and
construction of practical capacitors vary widely and many capacitor types are in
common use. Most capacitors contain at least two electrical conductors often in the
form of metallic plates or surfaces separated by a dielectric medium. A conductor may
be a foil, thin film, sintered bead of metal, or an electrolyte. The non-conducting
dielectric acts to increase the capacitor's charge capacity. Materials commonly used as
dielectrics include glass, ceramic, plastic film, paper, mica, and oxide layers.
Capacitors are widely used as parts of electrical circuits in many common electrical
devices. Unlike a resistor, an ideal capacitor does not dissipate energy.
Capacitance is defined as the ratio of the electric charge on each conductor to the
potential difference between them. The unit of capacitance in the International System
of Units (SI) is the farad (F), defined as one coulomb per volt (1 C/V). Capacitance
values of typical capacitors for use in general electronics range from about 1 pF
(10−12 F) to about 1 mF (10−3 F).
Capacitors are widely used in electronic circuits for blocking direct current while
allowing alternating current to pass. In analog filter networks, they smooth the output
55
of power supplies. In resonant circuits they tune radios to particular frequencies. In
electric power transmission systems, they stabilize voltage and power flow. The
property of energy storage in capacitors was exploited as dynamic memory in early
digital computers.
4.3 BUZZER
4.3.1 INTRODUCTION
There are two types are buzzers that are commonly available. The one shown here is a
simple buzzer which when powered will make a Continuous Beep sound, the other
type is called a readymade buzzer which will look bulkier than this and will produce a
Beep. Beep. Beep. Sound due to the internal oscillating circuit present inside it. But,
the one shown here is most widely used because it can be customized with help of
other circuits to fit easily in our application.
This buzzer can be used by simply powering it using a DC power supply ranging from
4V to 9V. A simple 9V battery can also be used, but it is recommended to use a
56
regulated +5V or +6V DC supply. The buzzer is normally associated with a switching
circuit to turn ON or turn OFF the buzzer at required time and require interval.
Pin
Pin Name Description
Number
Rated Voltage: 6V DC
Operating Voltage: 4-8V DC
Rated current: <30mA
Sound Type: Continuous Beep
57
Resonant Frequency: ~2300 Hz
Small and neat sealed package
Breadboard and Perf board friendly
4.4.1 INTRODUCTION
The LM2596 series of regulators are monolithic integrated circuits that provide all the
active functions for a step-down (buck) switching regulator, capable of driving a 3-A
load with excellent line and load regulation. These devices are available in fixed
output voltages of 3.3 V, 5 V, 12 V, and an adjustable output version. Requiring a
minimum number of external components, these regulators are simple to use and
include internal frequency compensation, and a fixed frequency oscillator.
The LM2596 series operates at a switching frequency of 150 kHz, thus allowing
smaller sized filter components than what would be required with lower frequency
switching regulators. Available in a standard 7-pin TO-220 package with several
different lead bend options, and a 7-pin TO-263 surface mount package.
58
4.4.2 FEATURES
3.3-V, 5-V, 12-V, and Adjustable Output Versions
High Efficiency
4.4.3 APPLICATIONS
• Simple High-Efficiency Step-Down (Buck) Regulator
59
CHAPTER 5
We found that the microcontroller program used in the completed project was able to
print what commands were sent to it by the Android device as well as outputs the
corresponding signals to the motor pins on the robot. We verified that the Android app
was able to send commands to the robot, and was able to successfully connect and
disconnect from the microcontroller. Due to the microcontroller’s inability to properly
read the sensor data, the Android app was unable to report correct sensor data. The face
detection using webcam was implemented successfully. However at some time interval
the detection was not possible either due to camera resolution, incomplete face
exposure or improper lights
5.2 CONCLUSION
Accomplishments: The completed project is a small land-based robot that can be
controlled from an Android app using a BLUETOOTH connection. The app allows the
user to send commands to the robot for moving forward and backwards, turning left
and right, and stopping. In addition, we have designed and implemented a well-tested
face detection algorithm in MATLAB.
60
project. A small land-based remote control robot cannot be used to significantly harm
others.
Future Work: The most immediate future work that could be done for the project is
debugging and finishing the implementation of a two-way data connection between the
Android device and the robot. After a reliable connection is established, further
debugging would have to be done to ensure that correct data is coming from the wheel
encoders and the ultrasonic distance sensor. Once that is completed, the mapping
algorithm could be properly tested and debugged using the completed robot. There are
many potential additional features for the project. They include:
• Adding the video camera to the robot and streaming video data to be displayed on
the Android app (as per the original design).
• Fixing the low battery circuit and implementing a low battery warning to be
displayed on the Android app (also as per the original design).
• Implementing basic motion detection when the robot is stationary using the video
data. This could be done with image processing between frames of the video feed.
If a significant difference between the frames is detected, the robot could output a
notification to the user’s Android device.
• Some sort of system to identify friend from foe. This could be in the form of an
RFID tag or a Bluetooth device that an authorized person would wear or keep in
their pocket.
• Two-way voice communication between the robot and the Android app.
• Controls on the Android app to fire NERF darts. This could be expanded to fire
NERF darts at detected intruders.
61