Hand Gesture Controlled Robot Using Arduino
Hand Gesture Controlled Robot Using Arduino
A
Major project report
Submitted in partial fulfillment of the requirement for the award of Degree of
Bachelor of Technology
IN
ELECTRONICS & COMMUNICATION ENGINEERING
Submitted To
CERTIFICATE
This is to certify that the work embodies in this project entitled “Hand Gesture Controlled
Robot using Arduino” being submitted by Abhishek Verman (0537ME181003) and Sanjay
Sondhiya (0537ME181013) in partial fulfillment of the requirement for the award of degree
of B.E
DECLARATION
Science, Technology & Research, Bhopal (M.P.), hereby declare that the work presented in
this project entitled “Hand Gesture Controlled Robot using Arduino” is the outcome of our
own work, is bonafide and correct to the best of our knowledge and this work has been
carried out taking care of Engineering Ethics. The work presented does not infringe any
patented work and has not been submitted to any other University or anywhere else for the
Date: …………………………………
Sagar Institute of Science, Technology & Research (SISTec-R)
Bhopal
DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING
ACKNOWLEDGEMENT
We express our deep sense of gratitude to our guide Prof. Samrat Ghosh Sir for his valuable
help and guidance. We are thankful to him for the encouragement he has given us in
completing the project.
We are also grateful to our Respected Principal, Dr. Manish Billore Sir and our HOD, Prof.
Harvinder Singh Saluja Sir for motivating & permitting us to utilize all the necessary
facilities of the institution.
We are also thankful to all the other faculties & staff members of our department for their
kind cooperation and help.
Lastly, we would like to express our deep appreciation towards our classmates and our
indebtedness to our parents for providing us the moral support and encouragement
Abhishek verman (0537ME181003) and Sanjay sondhiya (0537EC181013)
ABSTRACT
The main objective of the project work is to control robot with gestures
using hand. There are two main components of the system: The
accelerometer depends upon the gestures of the hand. Through
accelerometer, a passage of data signal is received and it is processed with the
help of arduino microcontroller. The microcontroller gives command to
the robot to move in the desired direction. The basic working principle for
the robot is passage of the data signals of accelerometer readings to the
Arduino board fitted on the bot. The program compiled in that Arduino
runs according to that value, which make the bot function accordingly
.Wh il e we h av e used two -axis accelero meter. In wh ich,
on e axis will control the speed in forward or backward direction and
other axis will control the turning mechanism. Accelerometer-based
gesture control is studied as a supplementary or an alternative interaction
modality. Gesture commands freely trainable by the user can be used for
controlling external devices with handheld wireless sensor unit. Two user
studies are presented. The first study concerns finding gestures for
controlling a design environment (Smart Design Studio), TV, VCR, and lighting.
The results indicate that different people usually prefer
different gestures for the same task, and hence it should be possible to
personalise them .
TABLE OF CONTENTS
ABSTRACT
LIST OF FIGURES
ABBREVIATIONS
LIST OF SYMBOLS
1 INTRODUCTION
1.1 Overview ……………………………………………………………………………………………………………………..1
1.2 Introduction ………………………………………………………………………………………………………………...1
1.3 Objective ………………………………………………………………………………………………………………….….2
1.4 Motivation …………………………………………………………………………………………………………………..2
1.5 Organization of the report …………………………………………………………………………………………....3
2 LITERATURE SURVEY
2.1 Existing System ………………………………………………………………………………………………………….. 4
2.2 Issues in Existing System ……………………………………………………………………………………………..4
2.3 Details of Literature Survey (with pros and cons, summary) …………………………………….…….4
2.4 Problem Statement (5 lines) …………………………………………………………………………………………..6
4 MODULE DESCRIPTION…………………………………………………………………………………………………..15
4.1 Introduction………………………………………………………………………………………………………………...15
4.2 COMPONENTS ASSEMBLING…………………………………………………………………………………….….20
4.2.1 Introduction……………………………………………………………………………………………………………..21
4.2.2 Flow chart / Work Flow Diagram / Any UML Diagram……………………………………………...23
4.5 Summary …………………………………………………………………………………………………………………….23
5 SYSTEM IMPLEMENTATION
5.1 Introduction…………………………………………………………………………………………………………………25
5.2 Overview of the Platform ……………………………………………………………………………………………26
5.2.1 Open source and extensible hardware……………………………………………………………………..26
5.2.2 Board Description ……………………………………………………………………………………………………27
5.3 Implementation Details ……………………………………………………………………………………………..27
5.3.1 Simulation Parameters ……………………………………………………………………………………………27
5.3.2 Integration of Modules……………………………………………………………………………………………28
5.3.3 Sample Coding ……………………………………………………………………………………………………….28
5.3.4 Database Design …………………………………………………………………………………………………….31
5.3.5 Evolution Pattern …………………………………………………………………………………………………...31
5.3.6 Screenshots with proper name ……………………………………………………………………………..….33
6 SYSTEM TESTING
6.1 Introduction ……………………………………………………………………….…………………………...........38
6.2 Type of Testing Applied ……………………………………………………………………………………………..38
6.3 Test Plan …………………………………………………………………………………………………………………….38
6.4 Test Cases……………………………………………………………………………………………………………………38
6.5 Performance Testing …………………………………………………………………………………………………..41
6.6 Summary …………………………………………………………………………………………………………………….42
A VECTOR ALGEBRA 46
A.1 Product of Two Vectors…………………………………………………………………………………………….….46
B MATRIX ALGEBRA 47
B.1 Matrix Multiplication …………………………………………………………………………………………………..47
LIST OF FIGURES
4.1 Accelerometer…………………………………………………………………………………………………………..15
4.2 Comparator IC…………………………………………………………………………………………………………..16
4.3 Encoder IC………………………………………………………………………………………………………………….16
4.4 RF Transmitter…………………………………………………………………………………………………………..17
4.5 RF Receiver……………………………………………………………………………………………………………….17
4.6 Decoder IC ………………………………………………………………………………………………………………… 18
4.7 MicroController …………………………………………………………………………………………………………18
4.8 L293D I………………………………………………………………………………………………………………………… 19
4.9 H-Bridge………………………………………………………………………………………………………………….19
4.10 DC MOTOR ……………………………………………………………………………………………………………19
4.11 Components Assembling ……………………………………………………………………………………..20
4.12 Transmitter Section …………………………………………………………………………………………….. 21
4.13 Transmitter Section………………………………………………………………………………………………22
4.14 Receiver Section…………………………………………………………………………………………………………23
The controls of the robot are based on gesture of hand, which becomes simple for any
person to handle it. The basic working principle for the robot is passage of the data signals
of accelerometer readings to the Arduino board fitted on the bot. The programe compiled
in that arduino runs according to that value, which make the bot function accordingly
.While we have used two-axis accelerometer. In which, one axis will control the speed in
forward or backward direction and other axis will control the turning mechanism.
1.2 Introduction
Gesture recognition is a topic in computer science and language technology with the goal of
interpreting human gestures via mathematical algorithms. Gestures can originate from any
bodily motion or state but commonly originate from the face or hand. Current focuses in the
field include emotion recognition from the face and hand gesture recognition. Many
approaches have been made using cameras and computer vision algorithms to interpret sign
language. However, the identification and recognition of posture, gait, proxemics, and
human behaviors is also the subject of gesture recognition techniques. Gesture recognition
can be seen as a way for computers to begin to understand human body language, this
building a richer bridge between machines and humans than primitive text user interfaces or
even GUIs (graphical user interfaces), which still limit the majority of input to keyboard and
1
mouse. Gesture recognition enables humans to interface with the machine (HMI) and
interact naturally without any mechanical devices. Using the concept of gesture recognition,
it is possible to point a finger at the computer screen so that the cursor will move accordingly.
This could potentially make conve0ntional input devices such as mouse, keyboards and even
touch-screens redundant. Gesture recognition can be conducted with techniques from
computer vision and image processing. The literature includes ongoing work in the computer
vision field on capturing gestures or more general human pose and movements by cameras
connected to a computer. In computer interfaces, two types of gestures are distinguished:
We consider online gestures, which can also be regarded as direct manipulations like scaling
and rotating. In contrast, offline gestures are usually processed after the interaction is
finished; e. g. a circle is drawn to activate a context menu. Offline gestures: Those gestures
that are processed after the user interaction with the object. An example is the gesture to
activate a menu.Online gestures: Direct manipulation gestures. They are used to scale or
rotate a tangible object
1.3 Objective
The purpose of the project is to control a toy car using flex sensors attached to
a glove. The flex sensors are intended to replace the remote control that is generally used
to run the car. Additionally it also created another mode which will allow to use an
accelerometer to control the forward and backward, and left and right movements, while
using a flex sensor to control the throttle of the car. two gloves with one flex sensor and
accelerometer, respectively attached to it. âA˘ c First of all,some experiments ´ has been
done on accelerometers and flex sensors and aimed to get the required results
(calibration). âA˘ c Then, the next task is to process the sensor data through aurdino and
´ transmit it to bot’s aurdino which thereafter, controls the motor driver of the car. For
wireless communication between arduino, RF module is becoming handy to control the
car. âA˘ c Then the work of the mechanical aspects of the car is been done so that it can ´
be easily controlled through gesture
1.4 Motivation
The motivation to work on this project came from a disabled person who was driving his
wheel chair by hand with quite a lot of difficulty. So the idea to make a device which would
help such people drive their chairs without even having the need to touch the wheels of
their chairs.
2
Figure 1.2: Hand Gesture Controlled WheelChair
The main body of the report is preceded by detailed contents including lists of figures,
tables, and annexes followed by units used in the report. This is followed by executive
summary giving briefly the scope and objectives of the study, importance of the topic,
methodology, limitations, major observations / findings, and recommendations and
action plan.
Chapter 1 Literature Survey
Chapter 2 System Analysis and Design
Chapter 3 Module Description
Chapter 4 System Implementation
Chapter 5 System Testing
Chapter 6 Conclusion and Future Work
All chapters are preceded by a brief synopsis of the chapter, and key words. The main
report is followed by glossary, giving the acronyms and abbreviations used in the report, a
listing of all the key words corresponding to various chapters. Reference which have been
used for certain inputs are listed after the key words. Wherever these references have been
quoted / data or technical specifications taken in the text, these have been cross-referred
by their serial number (appearing as superscripts in the report) in the list of References
3
CHAPTER 2
LITERATURE SURVEY
Today in this world where the Technology and Science is growing day by day the field of
Robotics also needed to be upgraded. Thus it was found that there are a few issues in the
existing system As the existing system can be controlled only with the Controller so the user
cannot directly control the robot. Secondly the physical work is more to control the robot.
Thirdly the power consumption was more as the controller requires power supply to a
higher extent than the Accelerometer. Finally the expense was more as more hardware was
required. These were a few Drawbacks in the existing System.
PROS:- Traditional interfaces, keyboards and mice present a bottleneck in application that
rely on heavy interaction of
From reading lots of related articles, recent efforts have attempted to eliminate this
bottleneck by developing different ways of interacting with computers, for example: speech,
handwriting
CONS:-
It is a time consuming Project as circuit used was complex.
It is used only for short distance.
It is not in Human Control.
5
2.4 Problem Statement(5 lines)
There were a few problem associated with the gesture controlled Robot :-
>If the efficient battery is not used the transmission will be affected.
>If the robot want to be controlled to longer distance upgraded transmitter and the receiver
will be required, which will result in higher cost.
>The robot cannot be controlled at a distance more than 15 m.
>The transmission will get disturbed if the pins will to be synchronised.
>It has the antenna so the Transmitter and the Receiver needed to be in line of sight.
6
CHAPTER 3
SYSTEM ANALYSIS AND DESIGN
3.1 Introduction
A gesture controlled robot is controlled by using hand in place of any other method like
buttons or joystick. Here one only needs to move hand to control the robot. A transmitting
device is used in your hand which contains RF Transmitter and accelero-meter. This will
transmit command to robot so that it can do the required task like moving forward, reverse,
turning left, turning right and stop. All these tasks will be performed by using hand gesture.
Here the most important component is accelerometer. Accelerometer is a 3 axis acceleration
measurement device with +-3g range. This device is made by using polysilicon surface sensor
and signal conditioning circuit to measure acceleration. The output of this device is Analog in
nature and proportional to the acceleration. This device measures the static acceleration of
gravity when we tilt it. And gives an result in form of motion or vibration.
According to the datasheet of adxl335 polysilicon surface micromachined structure placed
on top of silicon wafer. Polysilicon springs suspend the structure over the surface of the wafer
and provide a resistance against acceleration forces. Deflection of the structure is measured
using a differential capacitor which incorporate independent fixed plates and plates attached
to the moving mass. The fixed plates are driven by 180¡r out-of-phase square waves.
Acceleration deflects the moving mass and unbalances the differential capacitor resulting in
a sensor output whose amplitude is proportional to acceleration. Phase-sensitive
demodulation techniques are then used to determine the magnitude and direction of the
acceleration.
5.2 RF-Transmitter
Radio transmitter design is a complex topic which can be broken
down into a series of smaller topics. A radio communication system requires two tuned
circuits each at the transmitter and receiver, all four tuned to the same frequency. The
8
transmitter is anelectronic device which, usually with the aid of an antenna, propagates an
electromagnetic signal such as radio, television, or other telecommunications. Arrangement
of RF-Transmitter âA˘ c The transmitting system consists of two tuned ´ circuits such that the
one containing the spark-gap is a persistent oscillator; the other, containing the aerial
structure, is a free radiator maintained in oscillation by being coupled to the first (Nikola Tesla
and Guglielmo Marconi). âA˘ c The oscillating system, ´ 13 including the aerial structure with
its associated inductance-coils and condensers, is designed to be both a sufficiently persistent
oscillator and a sufficiently active radiator (Oliver Lodge). Ac The transmitting system consists
of two electrically coupled circuits, one of which, containing the air-gap, is a powerful but not
persistent oscillator, being provided with a device for quenching the spark so soon as it has
imparted sufficient energy to the other circuit containing the aerial structure, this second
circuit then independently radiating the train of slightly damped waves at its own period
(Oliver Joseph Lodge and Wilhelm Wien).
The HT12E encoder is designed for remote control system applications. It will interface
to RF transmitter modules to create a secure single or multiple channel RF remote
control transmitter. The oscillator is configured simply with the addition of a resistor.
It is capable of encoding information which consists of N address bits and 12-N data
bits. Each address/data input can be set to one of the two logic states. The signal.
HT12E is an encoder integrated circuit of 212 series of encoders. They are paired with
212 series of decoders for. Simply put, HT12E converts the parallel inputs into serial
output. It encodes the 12 bit parallel data into serial for transmission through an RF
transmitter. These 12 bits are divided into 8 address bits and 4 data bits. HT12E has a
transmission enable pin which is active low. When a trigger signal is received on TE pin,
the programmed addresses/data are transmitted together with the header bits via an
RF or an infrared transmission medium. HT12E begins a 4-word transmission cycle
upon receipt of a transmission enable. This cycle is repeated as long as TE is kept low.
As soon as TE returns to high, the encoder output completes its final cycle and then
stops.
The data on 4 bit latch type output pins remain unchanged until new is received. The
decoders receive serial addresses and data from a programmed 212 series
3.3.2 Description
2. Receiver Section
The RF receiver is specially degined to receive the signal from the rf transmitter to
demodulate or decode the original signal. for receiving the use of receiver and for 16
decoding use the IC HT12D is being made. The description of HT12D are as under as follows
5.5 RF-Decoder (HT12D)
HT12D is a decoder integrated circuit that belongs to 212 series of decoders. This series of
decoders are mainly used for remote control system applications, like burglar alarm, car door
controller, security system etc. It is mainly provided to interface RF and infrared circuits. They
are paired with 212 series of encoders. The chosen pair of encoder/decoder should have
same number of addresses and data format. In simple terms, HT12D converts the serial input
into parallel outputs. It decodes the serial addresses and data received by, say, an RF receiver,
into parallel data and sends them to output data pins. The serial input data is compared with
the local addresses three times continuously. The input data code is decoded when no error
or unmatched codes are found. A valid transmission in indicated by a high signal at VT
pin.HT12D is capable of decoding 12 bits, of which 8 are address bits and 4 are data bits.
B. CORRECTION the robot may still vibrate even if the human hand is still. Therefore, there
is a strong need to remove these vibrations .Also the robot must be able to 17 capture small
movements. The correction part of the algorithm focuses on removing the small vibration in
a robot due to the noisy sensors. The predicted value is compared to the present value of the
servo motor and the difference between the two values is noted down. As the error can be
both positive and negative hence the robot becomes less susceptible to
11
vibrations as when the human arm vibrates the error would eventually cancel itself or
become small in magnitude than the threshold value and at the same time it can detect small
changes made in the human arm because the error adds up to cross the threshold.
Accelerometer gives a reading of 315, that lies between 305 and 321.The corresponding DC
value is calculated with the help of equation 3.6 where, m1= 95,m2=180,s1=305,s2=321. On
substituting these values in the equation the DC value that is predicted is 148.125 that can
be rounded up to 148. So the predicted value now becomes 148. Now the error between the
predicted value and the present value is calculated. We assume two different scenarios here
.In scenario 1 when the magnitude of the difference between the present value and the
predicted value is less than a threshold value say 8, the motor assumes the present value
according to equation 3 .Let us say that the value present value of the motor is 150, so the
error will be -2 this case having a magnitude less than the threshold .Therefore there will be
no change in the predicted value and the new DC 18 value will remain 148. On the contrary,
if the present value was 130 and the predicted value is 148, the difference between these
values is greater than the threshold 8.So the present value will be updated to 148. During the
initial phase of the construction of the algorithm to control the robot emphasis was laid only
on the prediction part .The correction part was later introduced in order to overcome the
disturbances that are present in the robot due to noise present in the sensors. The correction
part of the algorithm ensures a smooth control for the robot that overcomes hiccups that
vibrations occurring in the movement.
12
This analog signal is the input to the encoder IC. The input to the encoder is parallel while the
output is a serial coded waveform which is suitable for RF transmission. A push button is
attached to pin 14 of this IC which is the Transmission Enable (TE) pin. The coded data will be
passed onto the RF module only when the button is pressed.
This button makes sure no data is transmitted unless we want to. The RF transmitter
modulates the input signal using Amplitude Shift Keying (ASK) modulation. It is the form of
modulation that represents digital data as variations in the amplitude of a carrier wave.
3.6 System Requirements
Hardware Requirements:-
For transmitter
Arduino Uno 20 ADXL335 accelerometer
433 MHz RF transmitter
Breadboard
For receiver and robot
Arduino Uno
13
433 MHz RF receiver
L293D motor driver IC
Chassis and wheels
2 DC motors
Breadboard
Of course one will also need jumper wires and 9V batteries Software Requirements:-
*> Embedded C Compiler
*> USB Arduino Board Reader.
3.7 Summary
This gesture controlled robot uses Arduino, ADXL335 accelerometer and RF transmitter-
receiver pair.
The entire robot is divided into 3 parts the transmitter,
the receiver and the robot.
The different gestures that have been mapped to the direction of the bot are
Hand parallel to the ground-stationary
Hand tilted forward-forward
Hand tilted backward-backward
Hand tilted right-right
Hand tilted left-left
In many application of controlling robotic gadget it becomes quite hard and complicated
when there comes the part of controlling it with remote or many different switches.
14
CHAPTER 4
MODULE DESCRIPTION
4.1 Introduction
In this Section, objective is to to partition project into modules and at last going to assemble
the modules. The components to be used are listed below:-
1. Accelerometer (ADXL335)
An Accelerometer is an electromechanical device that measures acceleration forces. These
forces may be static, like the constant force of gravity pulling at your feet, or they could be
dynamic âA ¸S caused by moving or vibrating the accelerometer. It is a kind ˘ of sensor which
record acceleration and gives an analog data while moving in X,Y,Z direction or may be X,Y
direction only depending on the type of the sensor.
2. COMPARATOR IC (LM324)
The comparator ic compares the analog voltage received from the accelerometer and
compares it with a reference voltage and gives a particular high or low voltage. The
received signal is quite noisy and of various voltage levels. This ic compares those levels
and outputs in the form of 1 or 0 voltage level. This process is called signal conditioning.
The figure shown below is comparator IC. The pins 1, 7, 8 and 14 are output pins. A
reference voltage is connected to the negative terminal for high output when input is
high or positive terminal for high output when input is low from the LM324 IC.
15
Figure 4.2: Comparator IC
3. ENCODER IC HT12E
PT2262 is a remote control encoder paired with PT2272 utilizing CMOS technology. It
encodes data and address pins into serial coded waveform suitable for RF or IR
modulation. PT2262 has a maximum of 12 bits of tristate address pins providing up to
312 address codes; thereby, drastically reducing any code collision and unauthorized
code scanning possibilities. The pin description is shown below. It has 4 input while 1
output pin. The address pins can also be utilized as data pins.
4 RF MODULE (Rx/Tx)
Radio frequency (RF) is a rate of oscillation in the range of about 3 KHz to 300 GHz, which
corresponds to the frequency of radio waves, and the alternating currents which carry
radio signals. Although radio frequency is a rate of oscillation, the term 24 "radio
frequency" or its abbreviation "RF" are also used as a synonym for radio âA ¸S˘ i.e. to
describe the use of wireless communication, as opposed to communication via electric
wires The RF module is working on the frequency of 315 MHz and has a range of 50-80
meters
16
5 DECODER IC (PT2272)
PT2272 is a remote control decoder paired with PT2262 utilizing CMOS Technology. It
has 12 bits of tristate address pins providing a maximum of 312 address codes;
thereby, drastically reducing any code collision and unauthorized code scanning
possibilities. The input data is decoded when no error or unmatched codes are found.
It has 1 input while 4 output pins. The address pins can also be utilized as data pins.
6 MICROCONTROLLER (AT89C51)
The processing is the most important part of the robot. Till now we get the data from
the decoder. Based on that data decisions have to be made. So here the role of
microcontroller comes up. We used a microcontroller for our robot to give it a decision
17
capability. Our microcontroller is made up by Atmel and the product name is AT89C51.
Turning a motor ON and OFF requires only one switch to control a single motor in a
single direction. The direction can be reversed by simply reversing its polarity. This can
be achieved by using four switches that are arranged in an intelligent manner such
18
Figure 4.8: L293D IC
that the circuit not only drives the motor, but also controls its direction. Out of many,
one of the most common WIRELESS GESTURE CONTROLLED ROBOT and clever design
is a H-bridge circuit where transistors are arranged in a shape that resembles the
English alphabet "H".
8 DC MOTORS
A machine that converts DC power into mechanical power is known as a DC motor. Its
operation is based on the principle that when a current carrying conductor is placed in a
magnetic field, the conductor experiences a mechanical force. DC motors have a revolving
armature winding but non-revolving armature magnetic field and a stationary field winding
or permanent magnet. Different connections of the field and armature winding provide
different speed/torque regulation features. The speed of a DC motor can be controlled by
changing the voltage applied to the armature or by changing the field current.
4.2.1 Introduction
In the module One i.e., Components Assembling as the name suggests objective is to
assemble the components such as Motors, Wheels, Chasis and the Arduino Board to the
chasis using the nuts and bolts.
In the Components Assembling the components are assembled using the following steps.
1. In this the first step is to make the chasis.
2. Next is to join the Arduino Board on top of the chasis.
3. Next is to Assemble the motors to the side of the chasis.
4. Now once the motors are joined with the chasis now connect the wheels to the motors.
These are the steps which are to be implemented in the First Module.
20
4.3 CIRCUIT ENGINEERING
4.3.1 Introduction
In this the objective is to develop the circuit of the robot. Gesture Controlled Robot
is divided into two sections: Transmitter part Receiver part In transmitter part an
accelerometer and a RF transmitter unit is used. Accelerometer gives an analog
output so convert this analog data in to digital. For this purpose use 4 channel
comparator circuit in place of any ADC. By setting reference voltage a digital signal
is obtained and then apply this signal to HT12E encoder to encode data or
converting it into serial form and then send this data by using RF transmitter into
the environment.
21
4.3.3 Description for that module (algorithm / mathematical model)
Gesture controlled robot moves according to hand movement. When the hand is tilted in
front side, robot start to moving forward and continues moving forward until next command
is given. When hand is tilted in backward side, robot change its state and start moving in
backwards direction until other command is given. When hand is tilted in left side Robot get
turn left till next command. When hand is tilted in right side robot turned to right. And for
stopping robot keep hand in stable Circuit for this hand gesture controlled robot is quite
simple. As shown in above schematic diagrams, a RF pair is used for communication and
connected with arduino. Motor driver is connected to arduino to run the robot. Motor
driverâA Zs input pin 2, 7, 10 and 15 is connected to arduino digital pin number 6, 5, 4 and 3
respectively. Here two DC motors are used to drive robot in which one motor is connected
at output pin of motor 30 driver 3 and 6 and another motor is connected at 11 and 14. A 9
volt Battery is also used to power the motor driver for driving motors.
4.4.1 Introduction
The objective of the Gesture Outlining is to form the Transmitter Circuit. The Receiver Circuit
has an Encoder i.e., LT293E. The task of the encoder is to convert the analog signal into the
digital data. The Gesture Control Robot transmitter part has an Accelerometer, which senses
the movement of the hand.
22
4.4.2 Flow chart / Work Flow Diagram / Any UML Diagram
4.4 Summary
24
CHAPTER 5
SYSTEM IMPLEMENTATION
5.1 Introduction
An embedded system is a computer system designed for
specific control functions within a larger system, often with real-time computing
constraints. It is embedded as part of a complete device often including hardware
and mechanical parts. By contrast, a general-purpose computer, such as a personal
computer (PC), is designed to be flexible and to meet a wide range of end-user
needs. Embedded systems control many devices in common use today. Embedded
systems contain processing cores that are typically either microcontrollers or digital
signal processors. The key characteristic, however, is being dedicated to handle a
particular task. Since the embedded system is dedicated to specific tasks, design
engineers can optimize it to reduce the size and cost of the product and increase
the reliability and performance. Some embedded systems are mass-produced,
benefiting from economies of scale. Physically, embedded systems range from
portable devices such as digital watches and MP3 players, to large stationary
installations like traffic lights, factory controllers, or the systems controlling nuclear
power plants. Complexity varies from low, with a single microcontroller chip, to
very high with multiple units, peripherals and networks mounted inside a large
chassis or enclosure. Embedded systems span all aspects of modern life and there
are many examples of their use. Telecommunications systems employ numerous
embedded systems from telephone switches for the network to mobile phones at
the end-user. Computer networking uses dedicated routers and network bridges
to route data. Consumer electronics include personal digital assistants (PDAs), mp3
players, mobile phones, videogame consoles, digital cameras, DVD players, GPS
receivers, and printers. Many household appliances, such as microwave ovens,
washing machines and dishwashers, are including embedded systems to provide
flexibility, efficiency and features. Advanced HVAC systems use networked
thermostats to more accurately and efficiently control temperature that can
change by time of day and season. Home automation uses wired- and wireless-
networking that can be used to control lights, climate, security, audio/visual,
surveillance, etc., all of which use embedded devices for sensing and controlling.
25
5.2 Overview of the Platform
Arduino is an open-source electronics prototyping
platform based on flexible, easy-to-use hardware and software. It’s intended for artists,
designers, hobbyists, and anyone interested in creating interactive objects or environments.
Arduino can sense the environment by receiving input from a variety of sensors and can
affect its surroundings by controlling lights, motors, and other actuators. The microcontroller
on the board is programmed using the Arduino programming language (based on Wiring) and
the Arduino development environment (based on Processing). Arduino projects can be stand-
alone or they can communicate with software running on a computer (e.g. Flash, Processing,
and MaxMSP. It is a tool for making computers that can sense and control more of the
physical world than your desktop computer. It’s an open-source physical computing platform
based on a simple microcontroller board, and a development. environment for writing
software for the board. Arduino can be used to develop interactive objects, taking inputs
from a variety of switches or sensors, and controlling a variety of lights, motors, and other
physical outputs.
27
5.3.2 Integration of Modules
The Modules such as Components Assembling, Circuit
Engineering and Gesture outlining results in the construction of the entire Robot. The
Transmitter part requires a 9 volt power supply for sending the power to the
accelerometer.
The antenna of the transmitter is in the allignment with the receiver and the pin
configuration are also same.
The receiver part has the motors and thus it requires 8 batteries of 5 volt for 37 the dc
motors to run. The Arduino Motor is placed over the chasis and it also obtains power supply
from the same batteries. The Antenna of the Receiver is also required to be alligned with
the Transmitter Antenna and the pin configuration should also be configured.
int temp1=digitalRead(FD);
int temp2=digitalRead(BD);
int temp3=digitalRead(LD);
int temp4=digitalRead(RD);
if(temp1==1 and temp2==0 and temp3==0 and temp4==0)
backward;
define FD 16
define BD 17
define LD 18
define RD 19
define m11 3
define m12 4
define m21 5
define m22 6
void forward()
digitalWrite(m11, HIGH);
digitalWrite(m12, LOW);
digitalWrite(m21, HIGH);
digitalWrite(m22, LOW);
void backward()
digitalWrite(m11, LOW);
digitalWrite(m12, HIGH);
digitalWrite(m21, LOW);
digitalWrite(m22, HIGH);
void left()
digitalWrite(m11, HIGH);
29
digitalWrite(m12, LOW);
digitalWrite(m21, LOW);
digitalWrite(m22, LOW);
void right()
digitalWrite(m11, LOW);
digitalWrite(m12, LOW);
digitalWrite(m21, HIGH);
digitalWrite(m22, LOW);
void Stop()
digitalWrite(m11, LOW);
digitalWrite(m12, LOW);
digitalWrite(m21, LOW);
digitalWrite(m22, LOW);
void setup()
pinMode(FD, INPUT);
pinMode(BD, INPUT);
40 pinMode(LD, INPUT);
pinMode(RD, INPUT);
pinMode(m11, OUTPUT);
pinMode(m12, OUTPUT);
pinMode(m21, OUTPUT);
pinMode(m22, OUTPUT);
void loop()
int temp1=digitalRead(FD);
int temp2=digitalRead(BD);
int temp3=digitalRead(LD);
int temp4=digitalRead(RD);
if (temp1==1 and temp2==0 and temp3==0 and temp4==0)
30
backward();
else if(temp1==0 and temp2==1 and temp3==0 and temp4==0)
forward();
else if(temp1==0 and temp2==0 and temp3==1 and temp4==0)
left();
else if(temp1==0 and temp2==0 and temp3==0 and temp4==1)
right();
else
Stop();
Calibration of sensor
void loop()
sensorValuey = analogRead(sensorPiny);
sensorValuex = analogRead(sensorPinx);
if (sensorValuey < 310)
// yAxis = (370-sensorValuey);
digitalWrite(motor1, LOW);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, LOW);
digitalWrite(motor4, HIGH);
/* analogWrite(ledPin1, yAxis*1.77);
digitalWrite(ledPin2, LOW);
31
*/ if (sensorValuey > 360)
// yAxis = (sensorValuey-418);
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, HIGH);
42 digitalWrite(motor4, LOW);
/* analogWrite(ledPin2, yAxis*1.77);
digitalWrite(ledPin1, LOW);
*/ if (sensorValuex < 310)
// xAxis = (330-sensorValuex);
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, HIGH);
/* analogWrite(ledPin1, xAxis*1.75);
digitalWrite(ledPin2, LOW);
*/ if (sensorValuex > 360)
// xAxis = (sensorValuex-373);
digitalWrite(motor1, HIGH);
digitalWrite(motor2, HIGH)
; digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
/* analogWrite(ledPin2, xAxis*1.75);
digitalWrite(ledPin1, LOW);*/
32
5.3.6 Screenshots with proper name
33
Figure 5.3: Assembled Components
34
Figure 5.4: Arduino Board
35
Figure 5.5: Acceleromete
36
Figure 5.6: Integrated Chip
37
CHAPTER 6
SYSTEM TESTING
6.1 Introduction
In the system testing the robot is being tested for the movement when it
receives. The accelerometer should detect the movement of the hand and perform the
movement as per the codes and the signals are being sent to the Motor Driver. Then the
motors will send the signal to the wheels and the movement of the wheels will take place.
42
CHAPTER 7
The on-board batteries occupy a lot of space and are also quite heavy. Some alternate power
source for the batteries or replace the current DC Motors with ones which require less power
can be used.
Secondly, as RF for wireless transmission is used, the range is quite limited; nearly 50-80m.
This problem can be solved by utilizing a GSM module for wireless transmission. The GSM
infrastructure is installed almost all over the world. GSM will not only provide wireless
connectivity but also quite a large range.
43
Thirdly, an on-board camera can be installed for monitoring the robot from faraway places.
All what is needed is a wireless camera which will broadcast and a receiver module which
will provide live streaming.
44
FUTURE WORK
45
APPENDIX A
VECTOR ALGEBRA
46
APPENDIX B
MATRIX ALGEBRA
47
REFERENCES
[1] Nitin and Naresh, “Gesture Controlled Robot PPT”, URL Available
[http://seminarprojects.com/s/hand-gesturecontrolled-robotppt
[2] “Gesture Controlled Tank Toy User Guide” URL Available
[http://www.slideshare.net/neeraj18290/wireless-gesturecontrolled-tank-toy-
transmitter]Accessed 13 October 2020.
[3] Jochen Triesch and Christoph Von Der Malsburg “Robotic Gesture Recognition
(1997)”URL Available [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.5427]
Accessed 15 October 2020.
[4] “Real-Time Robotic Hand Control Using Hand Gestures” by Jagdish Lal Raheja, Radhey
Shyam, G. Arun Rajsekhar and P. Bhanu Prasad.
[5] Bhosale Prasad S., Bunage Yogesh B. and Shinde Swapnil V. “Hand Gesture Controlled
Robot” URL Available
[6] [http://www.engineersgarage.com/contribution/accelero meter-based-hand-gesture-
controlled-robot] Accessed 3 November, 2013.
[7] [http://www.robotplatform.com/howto/L293/motor_driver_1.html] Accessed 5
November, 2013.
[8] [http://en.wikipedia.org/wiki/Gesture_interface]Accessed 5 November, 2013.
[9] [http://www.wisegeek.com/what-is-a-gear-motor.htm] Accessed 6 November, 2013.
[10] [http://www.scribd.com/doc/98400320/InTech-RealTime-Robotic-Hand-Control-Using-
Hand-Gestures]Accessed 6 November, 2013.