Wireless Gesture Controlled Robot

In this project we are going to control a robot wirelessly using hand gestures. This is an easy, user-friendly way to interact with robotic systems and robots. -- Aquib Javed Khan

86475
Advertisement

Software program

The software program is written in Arduino programming language. We programmed a fresh ATmega328 microcontroller with the help of Arduino IDE 1.0.5 and an Arduino Uno board.

First, we have to load bootloader code into the microcontroller. For that, we used Arduino Uno for in-system programming (ISP) given in the IDE, by selecting File → Examples → Arduino ISP. Once the bootloader is uploaded into the microcontroller, gesture.ino code of this project can be uploaded.

Construction and testing

An actual-size, single-side PCB layout of the transmitter circuit is shown in Fig. 5 and its component layout in Fig. 6. An actual-size, single-side PCB layout of the receiver circuit is shown in Fig. 7 and its component layout in Fig. 8.

The transmitter section can be held in your palm or on the other side (refer Fig. 9). The receiver module is mounted on the robot.

9AF_Fig_9
Fig. 9: Transmitter module of the gesture controlled robot

Mount all components on the PCBs shown here to minimise assembly errors. Fix the receiver PCB and 4.5V battery on the chassis of the robot. Fix two motors, along with wheels, at the rear side of the robot and a castor wheel on the front. After uploading the main code into the microcontroller, remove it from the Arduino Uno board and insert it into the populated transmitter PCB.

Now, switch-on the power supplies in the transmitter as well as receiver circuits. Attach the transmitter circuit to your hand and move your hand forwards, backwards and sideways. Directions of the robot movement are given in Table I. The robot will stop if you keep your palm horizontal, parallel to the Earth’s surface.

For troubleshooting, first verify that voltages at various test points are as per Table II.


Aquib Javed Khan is pursuing B.Tech from Orissa Engineering College, Bhubaneswar. He is interested in mechatronics systems

Advertisement


42 COMMENTS

    • Dear Amruta Patole,

      The source code is already available within the article. Please check for “Download source code”.

  1. We are making Accelerometer Based Gesture Controlled Robot ……….so can you suggest a good and simple application of this robot for its extension

  2. HI..
    My name is vimal savani
    I make hand gesture controlled robot.
    There is one problem that is when i tilt accelerometer then robot does not change direction..and not move.. i use here adxl335 accelerometer. So pls.. help me.

  3. Sir in the code the output pins are defined as 10,11,12,13.
    But we are using pin nos 16,17,18,19 as output pins .
    How????????

  4. sir table 1 has output pins as D11,10,9,8, but in the program it is pin 13,12,11,10.
    Also sir tell me about the burning of the microcontroller.

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

  6. Here TP6 in receiver circuit is train of pulses. How may i draw the TP6 in eagle cad? and how may i create train of pulses in circuit

  7. I am going to do this project please send me the source code to my mail.. I tried to download from the Link you provided but file is not opening after download.. plss send me the source code for my mail..
    [email protected]

SHARE YOUR THOUGHTS & COMMENTS

Please enter your comment!
Please enter your name here