gesture controlled car_project report
TRANSCRIPT
IT311.01 Ashika Pokiya-12IT083
CHAPTER 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.
1.1 ROBOT
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, 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.2 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).
1.3 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.
3
IT311.01 Ashika Pokiya-12IT083
1.4 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.5 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
4
IT311.01 Ashika Pokiya-12IT083
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.
5
IT311.01 Ashika Pokiya-12IT083
2.2APPLICATIONS
1) Through the use of gesture recognition, remote control with the wave of a hand of
variousdevices is possible.
2) Gesture controlling is very helpful for handicapped and physically disabled people
toachieve certain tasks, such as driving a vehicle.
3) Gestures can be used to control interactions for entertainment purposes such as gaming
tomake the game player's experience more interactive or immersive.
6
IT311.01 Ashika Pokiya-12IT083
CHAPTER 3
LITERATURE REVIEW
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 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:
(A)TRANSMITTER
(B) RECEIVER
Figure 3-1 Block Diagram of the wireless gesture controlled robot
ACCELRO METER ADXL335
433MHz RECEIVER MODULE
MOTOR DRIVER L293D
MICRO CONTROLLER ATMEGA328
433MHz TRANSMITTER MODULE
DECODER HT12D
ENCODER HT12E
7
IT311.01 Ashika Pokiya-12IT083
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:
1) Accelerometer
2) Atmega328(MCU)
3) Encoder IC
4) RF Transmitter Module
The second is the receiving end which comprises of following main components:
1) RF Receiver Module
2) Decoder IC
3) Motor Driver IC
4) DC Geared Motors
3.1ACCELEROMETER (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 – 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.
Figure 3-2 ADXL335 Accelerometer
8
IT311.01 Ashika Pokiya-12IT083
Table 3-1 Pin description for Accelerometer
3.2Arduino Uno
Arduino is an open-source computer hardware and software company, project and user
community that designs and manufactures kits for building digital devices and interactive objects
that can sense and control the physical world.
Figure 3-3Arduino UNO
9
IT311.01 Ashika Pokiya-12IT083
3.2.1 Arduino Software
The Arduino integrated development environment (IDE) is a cross-platform application written in Java, and derives from the IDE for the Processing programming language and the Wiring projects. It is designed to introduce programming to artists and other newcomers unfamiliar with software development. It includes a code editor with features such as syntax highlighting, brace matching, and automatic indentation, and is also capable of compiling and uploading programs to the board with a single click. A program or code written for Arduino is called a “sketch”
Arduino programs are written in C or C++. The Arduino IDE comes with a software library called "Wiring" from the original Wiring project, which makes many common input/output operations much easier. Users only need define two functions to make an executable cyclic executive program:
setup() : a function run once at the start of a program that can initialize settings loop() : a function called repeatedly until the board powers off
3.3 ATmega328
ATmega328 is a single-chip micro controller from Atmel and belongs to the mega AVR
series. The Atmel 8-bit AVR RISC based microcontroller combines 32kB ISP flash memory
with read while write capabilities, 1kB EEPROM, 2kB SRAM, 23 general-purpose I/O lines, 32
general-purpose working register, three flexible timers/counters with compare modes, internal
and external interrupts, serial programmable USART, a byte oriented 2-wire serial interface, SPI
serial port, 10 bit A/D converter, programmable watch-dog timer with an internal oscillator and
five software-selectable power-saving modes.
10
IT311.01 Ashika Pokiya-12IT083
The device operates between 1.8 and 5.5 volts. It achieves throughputs approaching one
MIPS per MHz. An alternative to ATmega328 is ATmega328p.
Figure 3-4 ATmega328 micro-controller
3.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 tri-state address pins providing up to 312 address codes;
thereby, drastically reducing any code collision and unauthorized code scanning possibilities.
11
IT311.01 Ashika Pokiya-12IT083
The pin description is shown below. It has 4 input while 1 output pin. The address pins can also
be utilized as data pins.
Figure 3-5 HT12E IC
Table 3-3 Pin description for HT12E
12
IT311.01 Ashika Pokiya-12IT083
3.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 "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 433 MHz and has a range of 100-200
meters.
Figure 3-5 RF Transmitter
Table 3-3 Pin description for RF Tx
13
IT311.01 Ashika Pokiya-12IT083
Figure 3-6 RF Receiver
Table 4-1 Pin description for RF Rx
3.5 DECODER IC (HT12D)
PT2272 is a remote control decoder paired with PT2262 utilizing CMOS Technology. It
has 12 bits of tri-state 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.
14
IT311.01 Ashika Pokiya-12IT083
Figure 3-7 HT12E IC
Table 4-2 Pin description for HT12E
15
IT311.01 Ashika Pokiya-12IT083
3.6 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-10 L293D IC
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".
16
IT311.01 Ashika Pokiya-12IT083
Figure 3-11 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.
17
IT311.01 Ashika Pokiya-12IT083
3.7 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.
Figure 3-12 DC Motor
18
IT311.01 Ashika Pokiya-12IT083
CHEPTER 4
IMPLEMENTATION
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
compares with these and an analog 1 or 0 signal is given out by the comparator IC.
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
amplitude of a carrier wave.
The following figure shows the modulated output of the RF module:
19
IT311.01 Ashika Pokiya-12IT083
Fig 4-2 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:
20
IT311.01 Ashika Pokiya-12IT083
Fig 4-3 Transmitting Circuit
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
recoverd. 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.
The parallel data from the encoer is fed to the port lot the microcontroller.This data is in
the form of bits. The microcontroller reads these bits and takes decision on the basis of
21
IT311.01 Ashika Pokiya-12IT083
thesebits.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.
Fig 4-4 Receiving Circuit
22
IT311.01 Ashika Pokiya-12IT083
4.1 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 usingthe 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 tothe Actuator IC (L293D). The Actuator IC upon receiving information showed
response bydriving the DC motors. The simulation schematic is as follow:
Figure 4-1 FYP-1 Simulation
23
IT311.01 Ashika Pokiya-12IT083
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. Therobot
is showing proper responses whenever we move our hand. Different Hand gestures tomake the robot
move in specific directions are as follow:
Fig 5-1 Move Backward
Fig 5-2 Move forward
Fig 5-3 Move Right
24
IT311.01 Ashika Pokiya-12IT083
Fig 5-4 Move Left
The robot only moves when the accelerometer is moved in a specific direction. The
validmovements are as follows:
DIRECTION ACCELEROMETER ORIENTATION
Forward +y
Backward -y
Right +x
Left -x
Stop Rest
5.2 LIMITATIONS AND FUTURE WORK
The on-board batteries occupy a lot of space and are also quite heavy. We can either usesome
alternate power source for the batteries or replace the current DC Motors with oneswhich require
less power.
Secondly, as we are using RF for wireless transmission, the range is quite limited; nearly50-80m.
This problem can be solved by utilizing a GSM module for wirelesstransmission. The GSM
infrastructure is installed almost all over the world. GSM will notonly provide wireless
connectivity but also quite a large range.
Thirdly, an on-board camera can be installed for monitoring the robot from farawayplaces. All we
need is a wireless camera which will broadcast and a receiver modulewhich will provide live
streaming.
25
IT311.01 Ashika Pokiya-12IT083
CHAPTER 6
FEASIBILITY OF THE PROJECT
During the development of the project we researched the feasibility in different fields, especiallysoftware
and hardware. The feasibility study is shown below.
6.1 SOFTWARE
We targeted to choose a language that is easy to understand and program. So we chose
assemblylanguage for our project. Assembly language is the basic language of microcontrollers.
Althoughits not user friendly in terms of programming but still one can learn it quickly.
6.2 HARDWARE
We chose accelerometer as the sensing device because it records even the minute movements.We
could also have completed our project using Arduino but chose microcontroller insteadbecause its cost is
low and is easily available everywhere. There are a number of dc gearedmotors available but the ones we
chose are capable of supporting loads up to 6kgs.
26
IT311.01 Ashika Pokiya-12IT083
ARDUINO CODE
void setup()
{
pinMode(A0,INPUT);
pinMode(A1,INPUT);
// pinMode(A2,INPUT);
Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
void loop()
{
int X= analogRead(A0);
int Y=analogRead(A1);
//int Z=analogRead(A2);
Serial.print("X=");
Serial.println(X);
Serial.print("Y=");
Serial.println(Y);
Serial.println(" ");
//Serial.print("Z=");
//Serial.println(Z);
delay(1000);
27
IT311.01 Ashika Pokiya-12IT083
if((X>343 && X <418) && (Y>320 && Y<340)) // for backward movement
{
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
}
else
{
if((X>330 && X<345) && (Y>330 && Y<402)) // for left turn
{
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
else
{
if((X>260 && X<350) && (Y>330 && Y<348)) // for forward
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
else
28
IT311.01 Ashika Pokiya-12IT083
{
if((X>322 && X<368) && (Y>262 && Y<338)) //for right turn
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
}
else
{
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
}
}
}
}
}
29
IT311.01 Ashika Pokiya-12IT083
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-controlled-tank-toy-transmitter>
[3] “Embedded Systems Guide (2002)”
<http://www.webstatschecker.com/stats/keyword/a_hand_gesture_based_control_interface_for_a
_car_robot>
[4] “Robotic Gesture Recognition (1997)” by JochenTriesch 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 JagdishLalRaheja, Radhey
Shyam, G. ArunRajsekhar and P. Bhanu Prasad
[6] “Hand Gesture Controlled Robot” by Bhosale Prasad S., BunageYogesh B. and Shinde
Swapnil V.
[7]< http://www.robotplatform.com/howto/L293/motor_driver_1.html>
[8]< http://en.wikipedia.org/wiki/Gesture_interface>
[9]< http://www.wisegeek.com/what-is-a-gear-motor.html
[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-is-back-emf-counterelectromotive-
force>
30