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

- Advertisement -
 

In this wireless gesture controlled robot project we are going to control a robot using hand gestures. This is an easy, user-friendly way to interact with robotic systems and robots. An accelerometer is used to detect the tilting position of your hand, and a microcontroller gets different analogue values and generates command signals to control the robot. This concept can be implemented in a robotic arm used for welding or handling hazardous materials, such as in nuclear plants. The author’s prototype is shown below.

Fig. 1: Author’s prototype
Fig. 1: Author’s prototype of the wireless gesture controlled robot

Circuit and working

The block diagram of the wireless gesture-controlled robot is shown in Fig. 2. The circuit diagram of the transmitter section of the wireless gesture-controlled robot is shown in Fig. 3 and of the receiver section in Fig. 4.

7EF_Fig_2
Fig. 2: Block diagram of the wireless gesture-controlled robot

ATmega328

ATmega328 is a single-chip microcontroller 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 registers, 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.

BFC_Fig_3
Fig. 3: Transmitter section of the wireless gesture-controlled robot
B41_747_Fig_4
Fig. 4: Receiver section of the wireless gesture-controlled robot
- Advertisement -

1FZ_PartsThe device operates between 1.8 and 5.5 volts. It achieves throughputs approaching one MIPS per MHz. An alternative to ATmega328 is ATmega328p.

ADXL335

This is a complete three-axis acceleration measurement system. ADXL335 has a minimum measurement range of ±3g. It contains a poly-silicon-surface micro-machined sensor and signal-conditioning circuitry to implement open-loop acceleration measurement architecture. Output signals are analogue 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 poly-silicon-surface micro-machined structure built on top of a silicon wafer. Poly-silicon springs suspend the structure over the surface of the wafer and provide 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.

42 COMMENTS

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

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

SHARE YOUR THOUGHTS & COMMENTS

 
 

What's New @ Electronicsforu.com

Most Popular DIYs

Electronics Components

Truly Innovative Tech