Wednesday 2 May 2012

A Gesture Controlled robot is a kind of robot which can be controlled by  your hand gestures not by old buttons.You just need to wear a small transmitting device in your hand which included an acceleration meter.This will transmit an appropriate command to the robot so that it can do whatever we want. The transmitting device included a comparator IC for analog to digital conversion and an encoder IC(HT12E) which is use to encode the four bit data and then it will transmit by an RF Transmitter module.
At the receiving end an RF Receiver module receive's the encoded data and decode it by an decoder IC(HT12D). This data is then  processed by a microcontroller (P89V51RD2) and finally our motor driver to control the motor's. 
Robot 
Gesture device
As we can see in the images one is robot and the another is to trnsmit the gesture data to robot.
Now its time to break the task in different module's to make the task easy and simple any project become easy  or error free if it is done in different modules. As our project is already devided into two different part transmitter and receiver. We will discuss both of them one by one. Apart from Power Supply as it was discussed in last blog you can see that by just click here

1> Transmitter device or Gesture device: This part contain four module in it--
                                                                                           1- Accelerometer
                                                                                           2- Comparator                                                                                 
                                                                                           3- Encoder(HT12E)
                                                                                           4- RF Transmitter 
      Accelerometer:-  An Accelerometer is a kind of sensor which gives an analog data while moving in X,Y,Z direction or may be X,Y direction only depend's on the type of the sensor.Here is a small image of an Accelerometer shown. We can see in the image that their are some arrow showing if we tilt these sensor's in that direction then the data at that corresponding pin will change in the analog form.
The Accelerometer having 6 pin-
1- VDD- We will give the +5volt to this pin







2- GND- We simply connect this pin to the ground for biasing.
3- X- On this pin we will receive the analog data for x direction movement.
4- Y- On this pin we will receive the analog data for y direction movement.
5- Z-  On this pin we will receive the analog data for z direction movement.
6- ST- this pin is use to set the sensitivity of the accelerometer 1.5g/2g/3g/4g.
     
      Comparator:- For the purpose to change the analog voltage into digital we use comparator which compare that analog voltage to a reference voltage and give a particular high or low voltage.
LM324 IC
The figure shown here is comparator IC. The pin 1,7,8 and 14 are use to give out put to the microcontroller.We should connect a reference voltage to the -ve terminal for high output when input is high(+ve terminal for high output when input is low) from the LM324 IC.
In this circuit we compare the data from x with two terminal one for positive x direction and negative x direction and same for y direction.
HT12E encoder
Encoder(HT12E IC):- The HT12E is an 4bit encoder which encode the input data applied on it .The pin description of the HT12E is shown in the figure .
  • pin (1 to 8) A0-A7 known as address bits so we do not need to consider them.
  • pin no (9 and 18) are use to bias the IC  as pin-18 as VCC and pin-9 as GND.
  • pin - 17 is connected to the rf transmitter module Din.
  • pin-16 and pin-15 are connected by an Osc resistor known as Roscc(1.1 Mohm)
  • pin-14 is connected to ground to enable the transmitt.
  • pin-13 to pin-10 are known as AD0 to AD3 those having the 4bit data which is required to transmit.
      RF Transmitter Module(TX):- The transmitter module is working  on the frequency of 433MHz and is easily available in the market at the cost of 250rs .
  • The vcc pin is connected to the +terminal in the circuit.
  • The data pin is connected to the HT12E(pin no-17) that is transmitted or we can say that encoded data.
  • The next pin is shown in figure is GND that is connected to the ground terminal.
  • Now the last pin ANT this is connected to a small wire as an antenna.
  • CIRCUIT OF GESTURE DEVICE (TRANSMITTING MODULE)
1> Receiver or Robot:  This part contain four module--         
  1. Receiver
  2. Decoder(HT12D)
  3. Process(microcontroller 8051)
  4. Actuator (Motor driver L293D)
  RF Receiver Module(RX):- The RF receiver module will receive the data which is transfered by the gesture device. It is also working as similar to the transmitter module-
  • Connect the +vcc pin to the 5volt terminal
  • Connect the ground pin to the ground terminal 
  • The data pin is then connected to the HT12D (pin-14)
  • So that we can get the decoded 4 bit data
    Decoder (HT12D):- In a very simple way we can say that an HT12D converts that serial data into parallel which is received by the rf receiver module.The input data is decoded when no error or unmatched codes are found. A valid  transmission in indicated by a high signal at VT pin that is pin no 17.
HT12D
  • pin 18     : It is use to give the +vcc or biasing to the  IC HT12D this pin is connected with the +5 volt
  • Pin 17     : It is the valid transmission pin it will high when the transmission is ok so that we connected this pin to an led for indication.
  • Pin 16-15: we connect these two pin directly by a 51k resistor
  • Pin 14     : This pin is connected with the rf receiver module data pin to receiving the serial data.
  • Pin 10-13: These pins are data pin which is transferred by the gesture module
Process (Microcontroller P89V51RD2): The processing is the most important part of the robot. Till now we get the data from the decoder now based on that data we have to make some decision so here the role of microcontroller is coming up. We use an 8051 microcontroller for our circuit to give them a decision capability. Our microcontroller is made up by nxp the product name is P89V51RD2
The basic circuit to initialize the microcontroller is shown below. We just need an reset circuit and oscillator to run the program.
8051 micro controller circuit
 we use the port 1 as an input port and port 2 as an output port.
so the Data from the decoder  will connect with pin 1,2,3,4 and motor should be connect with pin 21,22,23,24. 
For forward the data to the Port2 is 0a or for backward it is 05 then for lest its 02 and for right it is 08.

ACTUATOR'S(L293D): The Actuator's are those devices which actually gives the movement or to do a task like motor's. In the real world their are various types of motor's available which works on different voltages. So we need motor driver for running them through the controller. To get interface between motor and microcontroller . We use L293D motor driver IC in our circuit.
motor driver circuit
As in above circuit 2 pin male 
As in above circuit a 2 pin male connector in connected to the pin 8 this will provide the operating voltage for the motor like if we want to run our voltage on 12volt. so we just have to connect a 12volt power source 
Now here is the full circuit diagram of the robot (receiver module)

RECEIVER MODULE




ACTUAL CIRCUIT OF RECEIVING  MODULE
PROGRAM: Now here is the program of the Gesture Controlled robot. The program is in Embedded-C. The microcontroller we used is 8051.

/**********************************************************************************
    Gesture Controlled robot C program using 8051 microcontroller

***********************************************************************************
INPUT DATA to PORT 1 LM324     OUTPUT DATA to PORT 2 for L293D

MSB  LSB              MSB    LSB
1111  0001(0xf1)          0000   1010(0x0a)    forward
1111  0010(0xf2)          0000    0010(0x02)    right
1111  0100(0xf4)          0000    1000(0x08)    left
1111  1000(0xf8)          0000   0101(0x05)    backward

**********************************************************************************/
#include<reg51.h>        //INCLUDE reg51.h for 8951   

void main()
{
    P1=0xff;    // set port as input port
    P2=0x00;    // set port as output port
  
    while(1)    // infinite loop
    {
    if(P1==0xf1)
    {
        P2=0x0a;
    }
    else if(P1==0xf2)
    {
        P2=0x02;
    }   
    else if(P1==0xf4)
    {
        P2=0x08;
    }   
    else if(P1==0xf8)
    {
        P2=0x05;
    }
    else
    {
        P2=0x00;
    }
   }


Here is the video presentation of the gesture robot....




Here are some more pics of the robot . Leta take a look.










***************************** thanx and best of luck*****************************

GESTURE CONTROLLED ROBOT(Accelerometer based)

 
2embeddedrobotics © 2015 - Designed by Templateism.com