1. Automation Using Hand
Gesture Recognition
Team Members:
Nitish Goel 2K12/EC/113
Prakhar Agarwal 2K12/EC/125
Praneet Soni 2K12/EC/126
Parth Sood 2K12/EC/116
Shrey Gupta 2K12/SE/
Abstract:
In this project we present our prototype for a hand gesture recognizing glove (data glove).
We have used special low cost material called velostat to make the flex sensors. Velostat is a
low cost packaging material made of a polymeric foil impregnated with carbon black to make
it conducting. It has the property of being piezo-resistive i.e. it changes its resistance on
bending or on application of pressure. So, the flex sensors can be used to detect a bend in
fingers. The change in resistance is transformed into a change in voltage by the use of a
voltage divider circuit. The main achievement of our project is the design of low cost flex
sensors at a cost of less than 3% of the market cost.
As a demonstration, we use four of these flex sensors mounted on a glove to control a two-
wheel drive bot. Four flex sensors are used to detect the bends in the fingers, one on each
finger. The flex sensors give their input to the analog input channel of the Renesas RL78
G13 microcontroller which has a built-in analog to digital converter. The on-board ADC
converts this analog voltage to a digital value and then compares it with a predefined
threshold value to decide whether the finger is bent or not. The board then generates the
controls for the bot and gives it to a RF transmitter which transmits these signals wirelessly.
The RF receiver is mounted on the bot. it receives the signals and gives it to the motor
controller which then controls the motors attached to the wheels of the bot.
As a future scope, this technology can also be used in further applications such as a 3D
mouse, virtual keyboard, control for precision movement of robotic arms and in areas where
human involvement may be fatal.
2. Schematic:
List of External Components:
1. 500 Ohm Resistors (4 Nos.)
2. Radio Frequency (RF) Receiver and Transmitter
3. Motor Controller (L293D)
4. Motors
Glove with Flex
Sensors
RL78
Microcontroller RF Transmitter
RF ReceiverMotor
Controller
Motors
3. Software:
Code Size: 611KB
Code:
void main(void)
{
R_MAIN_UserInit();
/* Start user code. Do not edit comment generated here */
unsigned long a;
unsigned int b;
unsigned int c;
unsigned int d;
unsigned int e;
ADCE=1; //Enable ADC comparator operation
for(a=0;a<0xffff;a++);
for(a=0;a<0xffff;a++);
ADTYP=1; //8 Bits Resolution of ADC
ADPC=0x00; //Switch the ANI0/P20 pins to analog input of A/D converter:
PM2 = 0xffU; //Select Port 2 as input port
while (1U)
{
//1.
ADS=0x00; //Select P20 as the input source
ADCS = 1U; //Start Conversion signal to ADC
while(ADCS == 0); //Wait for end of conversion
b = ADCRH; //Read the ADC value
for(a=0;a<0xffff;a++);
for(a=0;a<0xffff;a++);
//2.
ADS=0x02; //Select P22 as the input source
ADCS = 1U; //Start Conversion signal to ADC
while(ADCS == 0); //Wait for end of conversion
c = ADCRH; //Read the ADC value
for(a=0;a<0xffff;a++);
for(a=0;a<0xffff;a++);
//3.
ADS=0x04; //Select P24 as the input source
ADCS = 1U; //Start Conversion signal to ADC
while(ADCS == 0); //Wait for end of conversion
d = ADCRH; //Read the ADC value
for(a=0;a<0xffff;a++);
for(a=0;a<0xffff;a++);
//4.
ADS=0x06; //Select P26 as the input source
4. ADCS = 1U; //Start Conversion signal to ADC
while(ADCS == 0); //Wait for end of conversion
e = ADCRH; //Read the ADC value
for(a=0;a<0xffff;a++);
for(a=0;a<0xffff;a++);
//Compare with threshold and generate controls
if(b > 0xb0)
P6.0 = 1;
else
P6.0 = 0;
if(c > 0xb0)
P5.0 = 1;
else
P5.0 = 0;
if(d > 0xb0)
P3.0 = 1;
else
P3.0 = 0;
if(e > 0xb0)
P1.6 = 1;
else
P1.6 = 0;
}
/* End user code. Do not edit comment generated here */
}