0% found this document useful (0 votes)
14 views

Gesture Based Robot Final

This document discusses the development of a gesture-controlled robot. An accelerometer is used to detect hand gestures that control a robot's movements. The robot can move forward, backward, left, right, and stop based on tilting the hand in different directions. The accelerometer measures acceleration and transmits signals to control the robot remotely. The goal is to create an intuitive interface that could benefit disabled users by allowing control without physical buttons or joysticks. Applications include remote control of devices with hand gestures and helping handicapped people perform tasks like driving.

Uploaded by

bhavesh jangid
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Gesture Based Robot Final

This document discusses the development of a gesture-controlled robot. An accelerometer is used to detect hand gestures that control a robot's movements. The robot can move forward, backward, left, right, and stop based on tilting the hand in different directions. The accelerometer measures acceleration and transmits signals to control the robot remotely. The goal is to create an intuitive interface that could benefit disabled users by allowing control without physical buttons or joysticks. Applications include remote control of devices with hand gestures and helping handicapped people perform tasks like driving.

Uploaded by

bhavesh jangid
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

GESTURE BASED ROBOT

CHAPTER 1

INTRODUCTION

1.1 INTRODUCTION

Recently, strong efforts have been carried out to develop intelligent and natural
interfaces between users and computer based systems based on human gestures.
Gestures provide an intuitive interface to both human and computer. Thus, such
gesture-based interfaces can not only substitute the common interface devices,
but can also be exploited to extend their functionality.
Robots are playing an important role in automation across all the sectors like
construction, military, medical, manufacturing, etc. After making some basic
robots like line follower robot, computer controlled robot, etc. we have developed
this accelerometer based gesture controlled robot by using Arduino Uno. In this
project we have used hand motion to drive the robot. For this purpose, we have
used accelerometer which works on acceleration.
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 accelerometer. 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 a
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° 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.

1.2ROBOT
A robot is usually an electro-mechanical machine that can perform tasks
automatically. Some robots require some degree of guidance, which may be done
using a remote control or with a computer interface. Robots can be autonomous,

AIET/ECE/PR/1
GESTURE BASED ROBOT

semi-autonomous or remotely controlled. Robots have evolved so much and are


capable of mimicking humans that they seem to have a mind of their own.

1.3 HUMAN MACHINE INTERACTION


An important aspect of a successful robotic system is the Human-Machine
interaction. In the early years the only way to communicate with a robot was to
program which required extensive hard work. With the development in science
and robotics, gesture based recognition came into life. Gestures originate from
any bodily motion or state but commonly originate from the face or hand. Gesture
recognition can be considered as a way for computer to understand human body
language. This has minimized the need for text interfaces and GUIs (Graphical
User Interface)
Gesture controlled robot moves according to hand movement as we place
transmitter in our hand. When we tilt hand in front side, robot start to moving
forward and continues moving forward until next command is given.

• When we tilt hand in backward side, robot change its state and start
moving in backwards direction until other command is given.
• When we tilt it in left side Robot get turn left till next command.
• When we tilt hand in right side robot turned to right.
• And for stopping robot we keeps hand in stable..

1.4 GESTURE
A gesture is an action that has to be seen by someone else and has to convey some
piece of information. Gesture is usually considered as a movement of part of the
body, esp. a hand or the head, to express an idea or meaning.

1.5 MOTIVATION FOR PROJECT


Our 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 we wanted to
make a device which would help such people drive their chairs without even
having the need to touch the wheels of their chairs.

1.6 OBJECTIVE OF PROJECT


Our objective is to make this device simple as well as cheap so that it could be mass
produced and can be used for a number of purposes.

AIET/ECE/PR/2
GESTURE BASED ROBOT

CHAPTER 2
GESTURE CONTROLLED ROBOT

2.1 GESTURE CONTROLLED ROBOT


Gesture recognition technologies are much younger in the world of today. At this
time there is much active research in the field and little in the way of publicly
available implementations. Several approaches have been developed for sensing
gestures and controlling robots. Glove based technique is a well-known means of
recognizing hand gestures. It utilizes a sensor attached to a glove that directly
measures hand movements.
A Gesture Controlled robot is a kind of robot which can be controlled by hand
gestures and not the old fashioned way by using buttons. The user just needs to
wear a small transmitting device on his hand which includes a sensor which is an
accelerometer in our case. Movement of the hand in a specific direction will
transmit a command to the robot which will then move in a specific direction. The
transmitting device includes a Comparator IC for assigning proper levels to the
input voltages from the accelerometer and an Encoder IC which is used to encode
the four bit data and then it will be transmitted by an RF Transmitter module. At
the receiving end an RF Receiver module will receive the encoded data and
decode it by using a decoder IC. This data is then processed by a microcontroller
and passed onto a motor driver to rotate the motors in a special configuration to
make the robot move in the same direction as that of the hand.

2.2 ROLE OF ROBOT


Robots are playing an important role in automation across all the sectors like
construction, military, medical, manufacturing, etc. After making some basic
robots like line follower robot, computer controlled robot, etc; we have developed
this accelerometer based gesture controlled robot by using Arduino Uno. In this
project we have used hand motion to drive the robot. For this purpose we have
used accelerometer which works on acceleration.
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 accelerometer. 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 a
result in form of motion or vibration.

AIET/ECE/PR/3
GESTURE BASED ROBOT

2.2 APPLICATIONS

• Through the use of gesture recognition, remote control with the wave of a
hand of various devices is possible.
• Gesture controlling is very helpful for handicapped and physically disabled
people to achieve certain tasks, such as driving a vehicle.
• Gestures can be used to control interactions for entertainment purposes
such as gaming to make the game player's experience more interactive or
immersive.

• Traditional interfaces, keyboards and mice present a bottleneck in


application that rely on heavy interaction of the user with the machine due
to the unnaturalness of the interaction.

• From reading lots of related articles, we have learnt that recent efforts have
attempted to eliminate this bottleneck by developing different ways of
interacting with computers, for example: speech, handwriting.

• Through the use of gesture recognition, remote control with the wave of a
hand of various devices is possible.

• Gesture controlling is very helpful for handicapped and physically disabled


people to achieve certain tasks, such as driving a vehicle.

• Gestures can be used to control interactions for entertainment purposes


such as gaming to make the game player's experience more interactive or
immersive.

AIET/ECE/PR/4
GESTURE BASED ROBOT

CHAPTER 3

LITERATURE REVIEW

3.1 BLOCK DIAGRAM


Our gesture controlled robot works on the principle of accelerometer which
records hand movements and sends that data to the comparator which assigns
proper voltage levels to the recorded movements. That information is then
transferred to a encoder which makes it ready for RF transmission. On the
receiving end, the information is received wirelessly via RF, decoded and then
passed onto the microcontroller which takes various decisions based on the
received information. These decisions are passed to the motor driver ic which
triggers the motors in different configurations to make the robot move in a
specific direction. The following block diagram helps to understand the working
of the robot:

Figure 3-1 Block Diagram

We divided our task into two parts to make the task easy and simple and to avoid
complexity and make it error free. The first is the transmitting section which includes
the following components:

AIET/ECE/PR/5
GESTURE BASED ROBOT

• Accelerometer

• Comparator IC

• Encoder IC

• RF Transmitter Module
The second is the receiving end which comprises of following main components:
• RF Receiver Module

• Decoder IC

• Arduino

• Motor Driver IC

• DC Geared Motors

3.2 BLOCK DIAGRAM DESCRIPTION

• Accelerometer placed on the hand sensed the tilt made by the hand.
• Accelerometer capable of measuring how fast the speed of object is
changing.

• This tilt corresponded to the analog voltage.


• Using this voltage, control signals are generated for four directions of the
robot car.

3.3 FEATURES

• Traditional interfaces, keyboards and mice present a bottleneck in


application that rely on heavy interaction of the user with the machine due
to the unnaturalness of the interaction.

• From reading lots of related articles, we have learnt that recent efforts have
attempted to eliminate this bottleneck by developing different ways of
interacting with computers, for example: speech, handwriting.

• Through the use of gesture recognition, remote control with the wave of a
hand of various devices is possible.
• Gesture controlling is very helpful for handicapped and physically disabled
people to achieve certain tasks, such as driving a vehicle.
• Gestures can be used to control interactions for entertainment purposes such
as gaming to make the game player's experience more interactive or
immersive.

AIET/ECE/PR/6
GESTURE BASED ROBOT

3.4 COMPONENT DESCRIPTION

3.4.1 ACCELEROMETER (ADXL335)

Figure 3-2 ADXL335 Accelerometer

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 – 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.
The ADXL335 is a small, thin, low power, complete 3-axis accelerometer with
signal conditioned voltage outputs. The product measures acceleration with a
minimum full-scale range of ±3 g. It can measure the static acceleration of gravity
in tilt sensing applications, as well as dynamic acceleration resulting from motion,
shock, or vibration. The user selects the bandwidth of the accelerometer using the
CX, CY, and CZ capacitors at the XOUT, YOUT, and ZOUT pins. Bandwidths can
be selected to suit the application, with a range of 0.5 Hz to 1600 Hz for the X and
Y axes, and a range of 0.5 Hz to 550 Hz for the Z axis. The ADXL335 is available
in a small, low profile, 4 mm × 4 mm × 1.45 mm, 16-lead, plastic lead frame chip
scale package (LFCSP_LQ).
• THEORY OF OPERATION
The ADXL335 is a complete 3-axis acceleration measurement system. The
ADXL335 has a measurement range of ±3 g minimum. It contains a polysilicon
surface-micro-machined sensor and signal conditioning circuitry to implement an
open-loop acceleration measurement architecture. The output signals are analog
voltages that are proportional to acceleration. The accelerometer can measure the
static acceleration of gravity in tilt-sensing applications as well as dynamic
acceleration resulting from motion, shock, or vibration. The sensor is a polysilicon
surface-micro-machined structure built on top of a 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 that consists of independent fixed plates and plates attached
to the moving mass. The fixed plates are driven by 180° out-of-phase square waves.
Acceleration deflects the moving mass and unbalances the differential capacitor

AIET/ECE/PR/7
GESTURE BASED ROBOT

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.
The demodulator output is amplified and brought off-chip through a 32 kΩ resistor.
The user then sets the signal bandwidth of the device by adding a capacitor. This
filtering improves measurement resolution and helps prevent aliasing.

• MECHANICAL SENSOR
The ADXL335 uses a single structure for sensing the X, Y, and Z axes. As a result,
the three axes’ sense directions are highly orthogonal and have little cross-axis
sensitivity. Mechanical misalignment of the sensor die to the package is the chief
source of cross-axis sensitivity. Mechanical misalignment can, of course, be
calibrated out at the system level.

• PERFORMANCE
Rather than using additional temperature compensation circuitry, innovative design
techniques ensure that high performance is built in to the ADXL335. As a result,
there is no quantization error or non-monotonic behavior, and temperature
hysteresis is very low (typically less than 3 mg over the −25°C to +70°C
temperature range).

• APPLICATIONS INFORMATION

• POWER SUPPLY DECOUPLING

For most applications, a single 0.1 μF capacitor, CDC, placed close to the ADXL335
supply pins adequately decouples the accelerometer from noise on the power
supply. However, in applications where noise is present at the 50 kHz internal clock
frequency (or any harmonic thereof), additional care in power supply bypassing is
required because this noise can cause errors in acceleration measurement. If
additional decoupling is needed, a 100 Ω (or smaller) resistor or ferrite bead can be
inserted in the supply line. Additionally, a larger bulk bypass capacitor (1 μF or
greater) can be added in parallel to CDC. Ensure that the connection from the
ADXL335 ground to the power supply ground is low impedance because noise
transmitted through ground has a similar effect to noise transmitted through VS.

• SETTING THE BANDWIDTH USING CX, CY, AND CZ

The ADXL335 has provisions for band limiting the XOUT, YOUT, and ZOUT pins.
Capacitors must be added at these pins to implement low-pass filtering for
antialiasing and noise reduction. The equation for the 3 dB bandwidth

or more simply

AIET/ECE/PR/8
GESTURE BASED ROBOT

The tolerance of the internal resistor (RFILT) typically varies as much as ±15% of
its nominal value (32 kΩ), and the bandwidth varies accordingly. A minimum
capacitance. The tolerance of the internal resistor (RFILT) typically varies as much
as ±15% of its nominal value (32 kΩ), and the bandwidth varies accordingly. A
minimum capacitance of 0.0047 μF for CX, CY, and CZ is recommended in all
cases.

FIGURE 3-3

PIN NO. SYMBOL FUNCTION

ST Sets the sensitivity of the accelerometer


1

Z Records analog data for Z direction


2

Y Records analog data for Y direction


3

X Records analog data for X direction


4

GND Connected to ground for biasing


5

VCC +3.3 volt is applied


6

AIET/ECE/PR/9
GESTURE BASED ROBOT

Table 3-1 Pin description for Accelerometer

FIGURE 3-4 Accelerometer chip


• USE WITH OPERATING VOLTAGES OTHER THAN 3 V
The ADXL335 is tested and specified at VS = 3 V; however, it can be powered with
VS as low as 1.8 V or as high as 3.6 V. Note that some performance parameters
change as the supply voltage is varied. The ADXL335 output is ratiometric,
therefore, the output sensitivity (or scale factor) varies proportionally to the supply
voltage. At VS = 3.6 V, the output sensitivity is typically 360 mV/g. At VS = 2 V,
the output sensitivity is typically 195 mV/g. The zero g bias output is also
ratiometric, thus the zero g output is nominally equal to VS/2 at all supply voltages.
The output noise is not ratiometric but is absolute in volts; therefore, the noise
density decreases as the supply voltage increases. This is because the scale factor
(mV/g) increases while the noise voltage remains constant. At VS = 3.6 V, the
Xaxis and Y-axis noise density is typically 120 μg/√Hz, whereas at VS = 2 V, the
Xaxis and Y-axis noise density is typically 270 μg/√Hz.

3.5 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.

AIET/ECE/PR/10
GESTURE BASED ROBOT

Figure 3-5 LM324 IC


PIN NO. SYMBOL FUNCTION

1 Output 1 Output of 1st Comparator

2 Input 1- Inverting Input of 1st Comparator

3 Input1+ Non-Inverting Input of 1st Comparator

4 VCC Supply Voltage; 5V (up to 32V)

5 Input 2+ Non-Inverting Input of 2nd Comparator

6 Input 2- Inverting Input of 2nd Comparator

7 Output 2 Output of 2nd Comparator

8 Output 3 Output of 3rd Comparator

9 Input 3- Inverting Input of 3rd Comparator

10 Input 3+ Non-Inverting Input of 3rd Comparator

AIET/ECE/PR/11
GESTURE BASED ROBOT

11 Ground Ground (0V)

12 Input 4+ Non-Inverting Input of 4th Comparator

13 Input 4- Inverting Input of 4th Comparator

14 Output 4 Output of 4th Comparator

Table 3-2 Pin description for LM324

3.6 ENCODER (HT12E)


HT12E is an encoder integrated circuit of 212 series of encoders. They are paired
with 212 series of decoders for use in remote control system applications. It is mainly
used in interfacing RF and infrared circuits. The chosen pair of encoder/decoder
should have same number of addresses and data format. 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
4word 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.

Figure 3-6 ENCODER (HT12E)

AIET/ECE/PR/12
GESTURE BASED ROBOT

Table 3-3 Pin description for HT12E

3.7 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 "radio frequency" or its
abbreviation "RF" are also used as a synonym for radio – 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 434 MHz and has a range of 50-80 meters.

AIET/ECE/PR/13
GESTURE BASED ROBOT

Figure 3-7 RF Transmitter

PIN FUNCTION

VCC 5V supply

GND Ground pin

Input from pin 17 of HT12E for data transmission


Data

Ant A wire attached here works as an antenna

Table 3-3 Pin description for RF Tx

Figure 3-8 RF Receiver

AIET/ECE/PR/14
GESTURE BASED ROBOT

PIN FUNCTION

VCC 5V supply

GND Ground pin

Output to pin 14 of HT12D for data transmission


Data

Ant A wire attached here works as an antenna

Table 4-1 Pin description for RF Rx

3.8 DECODER IC (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.
The data on 4 bit latch type output pins remain unchanged until new is received.

AIET/ECE/PR/15
GESTURE BASED ROBOT

Figure 3-9 HT12D IC

Table 4-2 Pin description for HT12D

AIET/ECE/PR/16
GESTURE BASED ROBOT

3.9 MICROCONTROLLER (ARDUINO UNO)


Arduino Uno is a microcontroller board based on the ATmega328P. It has 14
digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs,
a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header and a
reset button. It contains everything needed to support the microcontroller; simply
connect it to a computer with a USB cable or power it with an AC-to-DC adapter
or battery to get started.
"Uno" means one in Italian and was chosen to mark the release of Arduino Software
(IDE) 1.0. The Uno board and version 1.0 of Arduino Software (IDE) were the
reference versions of Arduino, now evolved to newer releases. The Uno board is
the first in a series of USB Arduino boards, and the reference model for the Arduino
platform; for an extensive list of current, past or outdated boards see the Arduino
index of boards.

3.9.1 Power
• The Arduino Uno board can be powered via the USB connection or with an
external power supply. The power source is selected automatically.
• External (non-USB) power can come either from an AC-to-DC adapter
(wall wart) or battery. The adapter can be connected by plugging a 2.1mm
center positive plug into the board's power jack. Leads from a battery can
be inserted in the GND and Vin pin headers of the POWER connector.
• The board can operate on an external supply from 6 to 20 volts. If supplied
with less than 7V, however, the 5V pin may supply less than five volts and
the board may become unstable. If using more than 12V, the voltage
regulator may overheat and damage the board. The recommended range is
7 to 12 volts.
The power pins are as follows:

Vin: The input voltage to the Arduino/Genuino board when it's using an external
power source (as opposed to 5 volts from the USB connection or other regulated
power source). You can supply voltage through this pin, or, if supplying voltage via
the power jack, access it through this pin.
VT: This pin outputs a regulated 5V from the regulator on the board. The board can
be supplied with power either from the DC power jack (7 - 12V), the USB connector

AIET/ECE/PR/17
GESTURE BASED ROBOT

(5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V
pins bypasses the regulator, and can damage your board. We don't advise it. 3V3.
A 3.3 volt supply generated by the on-board regulator. Maximum current draw is
50 mA. GND. Ground pins.
IOREF. This pin on the Arduino/Genuino board provides the voltage reference
with which the microcontroller operates. A properly configured shield can read the
IOREF pin voltage and select the appropriate power source or enable voltage
translators on the outputs to work with the 5V or 3.3V.
Microcontroller ATmega328P
Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limit) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM output)

PWM Digital I/O Pins 6

Analog Input Pins 6

DC Current per I/O Pin 20 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB (ATmega328P) of which 0.5 KB used by


bootloader

SRAM 2 KB (ATmega328P)

EEPROM 1 KB (ATmega328P)

Clock Speed 16 MHz

LED_BUILTIN 13

Length 68.6 mm

Width 53.4 mm

Table 4-3 Arduino Specifications

AIET/ECE/PR/18
GESTURE BASED ROBOT

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

Input and Output


See the mapping between Arduino pins and ATmega328P ports. The mapping for
the Atmega8, 168, and 328 is identical.
PIN MAPPING ATmega328P

Each of the 14 digital pins on the Uno 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 20 mA as recommended operating condition and has an
internal pull-up resistor (disconnected by default) of 20-50k ohm. A maximum of
40mA is the value that must not be exceeded on any I/O pin to avoid permanent
damage to the microcontroller.
In addition, some pins have specialized functions:
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data.
These pins are connected to the corresponding pins of the ATmega8U2 USB-toTTL
Serial chip.
External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt
on a low value, a rising or falling edge, or a change in value. See the
attachInterrupt() function for details.
PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite()
function.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI
communication using the SPI library.
LED: 13. There is a built-in LED driven by digital pin 13. When the pin is HIGH
value, the LED is on, when the pin is LOW, it's off.
TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication using the
Wire library.
The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits
of resolution (i.e. 1024 different values). By default they measure from ground to 5
volts, though is it possible to change the upper end of their range using the AREF

AIET/ECE/PR/19
GESTURE BASED ROBOT

pin and the analogReference() function. There are a couple of other pins on the
board:
AREF. Reference voltage for the analog inputs. Used with analogReference().
Reset. Bring this line LOW to reset the microcontroller. Typically used to add a
reset button to shields which block the one on the board.

Figure 3-10 Arduino

3.9.3 INTERFACING WITH ARDUINO RF MODULE


Wireless Communication in any form has become an essential part of human life
whether it may be short distance T.V Remote or long distance radio communication.
Wireless communication is all about transmission of data wirelessly so that there is
no hassle of any wires and no direct contact with the device itself.

FIGURE 3-11 ARDUINO RF MODULE

AIET/ECE/PR/20
GESTURE BASED ROBOT

FIGURE 3-12 ARDUINO RF MODULE 2

Receiver Part
The receiver part consists of Arduino UNO and the 434 MHz Receiver module. An
external LED can be used along with a current limiting resistor but on board LED
would be sufficient. The design of the Receiver part is as follows.
The RF Receiver Module consists of 4 – pins: VCC, GND, Data and Antenna. VCC
and GND pins are connected to 3.3V pin of the Arduino and ground respectively.
The data pin is connected to Pin 12 of the Arduino.
An antenna similar to the transmitter module is connected to the antenna pin of the 434
MHz Receiver module. The on board LED which is connected to the 13th pin of
Arduino is used in the project although an external LED can always be used.

Working Process
In this project, a simple demonstration of RF Communication with the help of
Arduino UNO boards is given. The aim of the project is to successfully transmit
data between the RF Transmitter – Receiver modules using two Arduino UNO
microcontroller boards. The working of the project is explained here.

• Note: The project can be implemented with or without the help of a


special library called “VirtualWire.h”. The project implemented here

AIET/ECE/PR/21
GESTURE BASED ROBOT

uses the library. If we want to implement the project without the library,
then we need to change the receiver part of the circuit.
• VirtualWire.h is a special library for Arduino created by Mike
McCauley. It is a communication library that allows two Arduino’s to
communicate with each other using RF Module i.e. transmitter –
receiver pair. This library consists of several functions that are used for
configuring the modules, transmission of data by the transmitter
module and data reception by the receiver module.
• In this project, the transmitter simply sends two characters i.e. It sends
the character “1” and with a delay of few seconds, it sends the

character “0”. Whenever the “1” is sent, the LED on the transmitting

side of the project will be turned ON. As this “1” is transmitted via RF

communication, the receiver will receive the data “1”.

• When the receiver receives “1”, the Arduino on the receiver side of the
project will turn ON the LED on its side.
• Similarly, when the data “0” is transmitted by the RF transmitter, the
LED on the transmitter side is turned OFF. As a result, the receiver
now receives “0” and the LED on the receiver side is also turned OFF.
• Hence, the receiver is imitating the actions of the transmitter.
3.9.4 INTERFACING WITH ARDUINO ADXL 335
The accelerometer module has 5 pins, namely

1. GND-To be connected to Arduino's GND


2. VCC-To be connected to Arduino's 5V
3. X-To be connected to Analog Pin A5
4. Y-To be connected to Analog Pin A4
5. Z-To be connected to Analog Pin A3

NOTE:

We don't need to power the module from 3.3v because it already has a 5v to 3.3v
converter. Use 2-pin relegate for connecting VCC and GND. Use a 3-pin relegate
for connecting X, Y & Z outputs. Also connect AREF pin to the 3.3v. This is
done to set the reference voltage to 3.3v because the output of ADXL335 is 3.3v
compatible.

AIET/ECE/PR/22
GESTURE BASED ROBOT

3.6.5 INTERFACING WITH ARDUINO MOTOR DRIVER


What is a Motor Driver?
A motor driver is a small Current Amplifier whose function is to take a low current
control signal and then turn it into a higher-current signal that can drive a motor. The
L293D is a typical Motor Driver which can drive 2 DC motors simultaneously.
Why Motor Drivers?
Motor Driver ICs are primarily used in autonomous robotics only. Also most
microprocessors operate at low voltages and require a small amount of current to
operate while the motors require a relatively higher voltages and current. Thus current
cannot be supplied to the motors from the microprocessor. This is the primary need
for the motor driver IC.
So, if you want to build a rover or a robot using DC motors, then look no further than
L293D Dual H-Bridge Motor Driver.

3.10 MOTOR DRIVER IC (L293D)


It is also known as H-Bridge or Actuator IC. Actuators are those devices which
actually gives the movement to do a task like that of a motor. In the real world there
are different types of motors available which work on different voltages. So, we
need a motor driver for running them through the controller.
The output from the microcontroller is a low current signal. The motor driver
amplifies that current which can control and drive a motor. In most cases, a
transistor can act as a switch and perform this task which drives the motor in a single
direction.

Figure 3-13 L293D IC

AIET/ECE/PR/23
GESTURE BASED ROBOT

Turning a motor ON and OFF requires only one switch to control a single motor in
a single direction. We can reverse the direction of the motor by simply reversing its
polarity. This can be achieved by using four switches that are arranged in an
intelligent manner such that the circuit not only drives the motor, but also controls
its direction. Out of many, one of the most common and clever design is a H-bridge
circuit where transistors are arranged in a shape that resembles the English alphabet
"H".

Figure 3-14 H-Bridge

As seen in the image, the circuit has four switches A, B, C and D. Turning these
switches ON and OFF can drive a motor in different ways.

• When switches A and D are on, motor rotates clockwise.


• When B and C are on, the motor rotates anti-clockwise.
• When A and B are on, the motor will stop.
• Turning off all the switches gives the motor a free wheel drive.
Turning on A & C at the same time or B & D at the same time shorts the
entire circuit. So, never try to do it.

3.11 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.

AIET/ECE/PR/24
GESTURE BASED ROBOT

Figure 3-15 DC Motor


3.11.1 DC GEAR MOTOR
A geared DC Motor has a gear assembly devoted to the motor. The speed of motor
is counted in terms of rotations of the shaft per minute and is termed as RPM .The
gear assembly helps in increasing the torque and dropping the speed. Using the
correct arrangement of gears in a gear motor, its speed can be reduced to any
required figure. This concept of reducing the speed with the help of gears and
increasing the torque is known as gear reduction.
Reducing the speed put out by the motor while increasing the quantity of applied
torque is a important feature of the reduction gear trains found in a gear motor. The
decrease in speed is inversely relative to the increase in torque. This association
means that, in this sort of device, if the torque were to double, the speed would
decrease by one half. Small electric motors, such as the gear motor, are able to move
and stand very heavy loads because of these reduction gear trains. While the speed
and ability of larger motors is greater, small electric motors are sufficient to bear
these loads.

Figure 3-16 DC Gear Motor

AIET/ECE/PR/25
GESTURE BASED ROBOT

CHAPTER 4
IMPLEMENTATION
4.1 INPUT TO ACCELEROMETER (ADXL 335)
Different Hand gestures to make the robot move in specific directions are as follow:

Fig 4-1 Move Forward

Fig 4-2 Move Backward

Fig 4-3 Move Right Fig 4-4 Move Left


The robot only moves when the accelerometer is moved in a specific direction.
The valid movements are as follows:

AIET/ECE/PR/26
GESTURE BASED ROBOT

ACCELEROMETER
ORIENTATION

DIRECTION
Forward +y

Backward -y

Right +x

Left -x

Stop Rest

Table 4-1 Accelerometer Orientation

The accelerometer records the hand movements in the X and Y directions only and
outputs constant analog voltage levels. These voltages are fed to the comparator
IC which compares it with the references voltages that we have set via variable
resistors attached to the IC. The levels that we have set are 1.7V and 1.4V. Every
voltage generated by the accelerometer is compared with these and an analog 1 or
0 signal is given out by the comparator IC.

Fig 4-5 Input and Output of Comparator IC

There are total five conditions for this Gesture controlled Robot which are
giving below:

AIET/ECE/PR/27
GESTURE BASED ROBOT

Movement of
This hand Input for Arduino from
gesture

Side Direction
D3 D2 D1 D0

Stable 0 Stop
0 0 0

0 Turn Right
Tilt right
0 0 1

0
Tilt left Turn Left

0 1 0

Tilt back 1 0 0 0 Backward

Tilt front 0 1 0 0 Forward

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.
The following figure shows the modulated output of the RF module:

AIET/ECE/PR/28
GESTURE BASED ROBOT

Fig 4-6 ASK Modulation

The RF modules works on the frequency of 315MHz. It means that the carrier
frequency of the RF module is 315MHz. The RF module enables the user to
control the robot wirelessly and with ease.
The schematic of transmitting end can be seen below:

AIET/ECE/PR/29
GESTURE BASED ROBOT

Figure 4-7 Circuit Diagram for Transmitter Section

This transmitted signal is received by the RF receiver, demodulated and then


passed onto the decoder IC. The decoder IC decodes the coded waveform and the
original data bits are recovered. The input is a serial coded modulated waveform
while the output is parallel. The pin 17 of the decoder IC is the Valid
Transmission (VT) pin. A led can be connected to this pin which will indicate
the status of the transmission. In the case of a successful transmission, the led
will blink.

AIET/ECE/PR/30
GESTURE BASED ROBOT

The parallel data from the encoder is fed to the port 1of the microcontroller. This
data is in the form of bits. The microcontroller reads these bits and takes decisions
on the basis of these bits. What the microcontroller does is, it compares the input
bits with the coded bits which are burnt into the program memory of the
microcontroller and outputs on the basis of these bits. Port 2 of the
microcontroller is used as the output port. Output bits from this port are
forwarded to the motor driver IC which drives the motors in a special
configuration based on the hand movements.
At a dead stop, a motor produces no voltage. If a voltage is applied and the motor
begins to spin, it will act as a generator that will produce a voltage that opposes
the external voltage applied to it. This is called Counter Electromotive Force
(CEF) or Back Electromotive Force (Back EMF). If a load stops the motors from
moving then the current may be high enough to burn out the motor coil windings.
To prevent this, fly back diodes are used. They prevent the back emf from
increasing and damaging the motors.
The schematic of receiving end can be seen below:

Figure 4-8 Circuit Diagram for Receiver Section

AIET/ECE/PR/31
GESTURE BASED ROBOT

4.2 SIMULATION
We performed a simulation of our project in PROTEUS and the code was written
in C language using KEIL MICROVISION. We wrote a code for the
microcontroller to run DC motors using the H-Bridge IC (L293D). In the
simulation we sent the relevant data to the Microcontroller (AT89C51) through
switches. The Microcontroller processed the data and sent the information to the
Actuator IC (L293D). The Actuator IC upon receiving information showed
response by driving the DC motors. The simulation schematic is as follow:

Figure 4-9 FYP-1 Simulation

AIET/ECE/PR/32
GESTURE BASED ROBOT

4.3 ADRUINO CODE


#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);
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()
{

AIET/ECE/PR/33
GESTURE BASED ROBOT

pinMode(FD, INPUT);
pinMode(BD, INPUT);
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 && temp2==0 && temp3==0 && temp4==0)


backward(); else if(temp1==0 && temp2==1 && temp3==0 && temp4==0)
forward(); else if(temp1==0 && temp2==0 && temp3==1 && temp4==0)
left();
else if(temp1==0 && temp2==0 && temp3==0 && temp4==1) right(); else
Stop(); }

AIET/ECE/PR/34
GESTURE BASED ROBOT

CHAPTER 5
CONCLUSION, LIMITATIONS AND FUTURE WORK
5.1 CONCLUSION
We achieved our objective without any hurdles i.e. the control of a robot using gestures.
The robot is showing proper responses whenever we move our hand.
For controlling the robot remotely, Holteks’ encoder-decoder pair (HT12E and HT12D)
together with a 433MHz transmitter-receiver pair is used.
HT12E and HT12D are CMOS ICs with working voltage ranging from 2.4V to
12V. Encoder HT12E has eight address and another four address/data lines. The
data set on these twelve lines (address and address/data lines) is serially
transmitted when transmit-enable pin TE is taken low. The data output appears
serially on DOUT pin. The data is transmitted four times in succession. It consists
of differing lengths of positive-going pulses for ‘1’ and ‘0,’ the pulsewidth for
‘0’ being twice the pulse-width for ‘1.’ The frequency of these pulses may lie
between 1.5 and 7 kHz depending on the resistor value between OSC1 and OSC2
PINS.
Our finished product can be seen in the images below:

Figure 5-1 Robot-1

AIET/ECE/PR/35
GESTURE BASED ROBOT

Figure5-2 Robot-2

Figure5-3 Robot-3

AIET/ECE/PR/36
GESTURE BASED ROBOT

Figure 5-4 Transmitter Circuit

AIET/ECE/PR/37
GESTURE BASED ROBOT

Figure 5-5 Hand Assembly

Figure 5-6 Robot with Hand Assembly

AIET/ECE/PR/38
GESTURE BASED ROBOT

Disadvantages of the Current Gesture


The current gesture recognition system is a vision-based system which has many
disadvantages, Including
• Costly solution
• Need high resolution cameras
• Highly sensitive to noise in image processing (lens aberrations)

Advantages of Touch less Gesture Recognition


The disadvantages of the vision-based recognition system have been overcome in the
touch-less based Gesture Recognition system.
The advantages of the touch less sensing system are:
• Cheaper solution
• Easy to develop
• Easy to maintain
• Easy to replace
• Easy to access
• Touch-less

5.2 LIMITATIONS AND FUTURE WORK


• The on-board batteries occupy a lot of space and are also quite heavy. We can
either use some alternate power source for the batteries or replace the current DC
Motors with ones which require less power.
• Secondly, as we are using RF for wireless transmission, 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.
• Thirdly, an on-board camera can be installed for monitoring the robot from
faraway places. All we need is a wireless camera which will broadcast and a
receiver module which will provide live streaming.

AIET/ECE/PR/39
GESTURE BASED ROBOT

REFERENCES

[1] “Gesture Controlled Robot PPT”


<http://seminarprojects.com/s/hand-gesture-controlled-robot-ppt>

[2] “Gesture Controlled Tank Toy User Guide”


<http://www.slideshare.net/neeraj18290/wireless-gesture-

controlledtanktoytransmitter>

[3] “Embedded Systems Guide (2002)”


<http://www.webstatschecker.com/stats/keyword/a_hand_gesture_based

_cont rol_interface_for_a _car_robot>

[4] “Robotic Gesture Recognition (1997)” by Jochen Triesch and Christoph Von
Der Malsburg
<http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.5427> [5]

“Real-Time Robotic Hand Control Using Hand Gestures” by Jagdish Lal Raheja,
Radhey Shyam, G. Arun Rajsekhar and P. Bhanu Prasad

[6] “Hand Gesture Controlled Robot” by Bhosale Prasad S., Bunage


Yogesh B. and Shinde
Swapnil V.
[7]<http://www.robotplatform.com/howto/L293/motor_driver_1.htm>

[8]< http://en.wikipedia.org/wiki/Gesture_interface>
[9]< http://www.wisegeek.com/what-is-a-gear-motor.htm>

[10]<http://www.scribd.com/doc/98400320/InTech-Real-Time-Robotic-
Hand-Control-Using-Hand-Gestures>
[11]< http://en.wikipedia.org/wiki/DC_motor>
[12]<http://electronics.stackexchange.com/questions/18447/what-isbackemfcounter-
electromotive-force>

AIET/ECE/PR/40

You might also like

pFad - Phonifier reborn

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

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


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy