ablab

Hello Readers, welcome to my Blog - A Blog For Bloggers By A Blogger. I'm Arun, an entrepreneur Blogger from India.

Accelerometer based Hand Gesture Controlled Robot with ATmega32

21507
1
Mark as Favourite

In many application of controlling robotic gadget it becomes quite hard and complicated when there comes the part of controlling it with remote or many different switches. Mostly in military application, industrial robotics, construction vehicles in civil side, medical application for surgery. In this field it is quite complicated to control the robot or particular machine with remote or switches, sometime the operator may get confused in the switches and button itself, so a new concept is introduced to control the machine with the movement of hand which will simultaneously control the movement of robot.

In this project, we will learn How to design an accelerometer based hand gesture controlled robot with AVR ATmega32 microcontroller. Here, we will use our hand gestures as input signals to drive the robot in different direction and we will display the direction of movement of the robot in a 16X2 alphanumeric LCD. In our case, hand gestures mean tilt of hand in different direction. To detect different hand gestures, we will use the ADX335 accelerometer sensor. The sensor will be attached to our hand with some material or through a hand glove. The three output signals of accelerometer sensor are analog in nature and it cannot be processed directly by ATmega32 microcontroller. For this, we will use the ADC of the ATmega32 microcontroller to convert the analog signals to digital values. After converting the analog signals of accelerometer sensor to digital values, the ATmega32 microcontroller will process the digital values to find different gestures of the hand. Once the hand gesture is known, the ATmega32 microcontroller will send the required signal to the DC motor driver (L293D) of the robot to drive the robot in the desired direction. Also, the microcontroller will display the direction of movement of the robot in a 16X2 alphanumeric LCD. The control hand gestures for the robot are forward tilt, backward tilt, left tilt, right tilt and no tilt to drive the robot in forward, backward, left, right direction and to stop it respectively. Now, tilt your hand in different direction and drive your robot as you want.

Control Hand Gestures

Robot Direction

Forward Tilt

Forward

Left Tilt

Left

Right Tilt

Right

Backward Tilt

Backward

no Tilt

Stop

Softwares Required

Hardwares Required

Name Quantity
AVR Trainer Board-100 with ATmega32 1pc
AVR USB Programmer 1pc
12V, 1A DC SMPS Adaptor 1pc
RG1602A 16X2 Alphanumeric LCD Green 1pc
DC Motor Driver 1pc
Robot V 4.1 1pc
3-axis Accelerometer Sensor 1pc
1 to 1 Connector-Female to Female 4pc
5 to 5 Connector-Female to Female-1 Meter 1pc
10 to 10 FRC Female to Female Connector 3pc

Circuit Diagram

Video

Connection Guide

The step-by-step connection guide for Accelerometer based Hand Gesture Controlled Robot with ATmega32 is as follows

  • Steps - 1 ( 0f 13 )

    Insert the DC Pin of 12V, 1A DC Adapter to the DC Socket of AVR Trainer Board-100.

  • Steps - 2 ( 0f 13 )

    Connect PortB header with LCD data header in AVR Trainer Board-100 with a 10 to 10 FRC Female Connector.

  • Steps - 3 ( 0f 13 )

    Connect RS, RW & EN pins of LCD control header with PD0, PD1 & PD2 pins of PortD header respectively in AVR Trainer Board-100 with 1 to 1 Connectors.

  • Steps - 4 ( 0f 13 )

    Connect the 16X2 Alphanumeric LCD to the LCD header of AVR Trainer Board-100.

  • Steps - 5 ( 0f 13 )

    Connect PortC header of AVR Trainer Board-100 with Input header of DC Motor Driver with a 10 to 10 FRC Female Connector.

  • Steps - 6 ( 0f 13 )

    Connect the 12V pin of PWM & Motor Voltage header of DC Motor Driver with the 12V header of AVR Trainer Board-100 with a 1 to 1 Connector.

  • Steps - 7 ( 0f 13 )

    Connect the Robot connector to the Output header of the DC Motor Driver.

  • Steps - 8 ( 0f 13 )

    Switch off the Mode Switch of DC Motor Driver.

  • Steps - 9 ( 0f 13 )

    Connect the X, Y, Z, VCC and GND pins of Accelerometer Sensor header of 3-axis Accelerometer Sensor with PA0, PA1, PA2, VCC and GND pin of PortA header of AVR Trainer Board-100 with a 5 to 5 Connector.

  • Steps - 10 ( 0f 13 )

    Connect the ISP header of AVR Trainer Board-100 with AVR USB Programmer header of AVR USB Programmer with a 10 to 10 FRC Female Connector.

  • Steps - 11 ( 0f 13 )

    Connect the AVR USB Programmer to the PC/Laptop's USB Port directly or with the help of USB AM-AF Cable.

  • Steps - 12 ( 0f 13 )

    Switch on the power with the help of Power Switch of AVR Trainer Board-100.

  • Steps - 13 ( 0f 13 )

    Download Accelerometer based Hand Gesture Controlled Robot with ATmega32 Hex file to AVR Trainer Board-100 with the help of SinaProg Hex downloader and AVR USB Programmer.

  • Insert the DC Pin of 12V, 1A DC Adapter to the DC Socket of AVR Trainer Board-100.

    Steps - 1 ( 0f 13 )

  • Connect PortB header with LCD data header in AVR Trainer Board-100 with a 10 to 10 FRC Female Connector.

    Steps - 2 ( 0f 13 )

  • Connect RS, RW & EN pins of LCD control header with PD0, PD1 & PD2 pins of PortD header respectively in AVR Trainer Board-100 with 1 to 1 Connectors.

    Steps - 3 ( 0f 13 )

  • Connect the 16X2 Alphanumeric LCD to the LCD header of AVR Trainer Board-100.

    Steps - 4 ( 0f 13 )

  • Connect PortC header of AVR Trainer Board-100 with Input header of DC Motor Driver with a 10 to 10 FRC Female Connector.

    Steps - 5 ( 0f 13 )

  • Connect the 12V pin of PWM & Motor Voltage header of DC Motor Driver with the 12V header of AVR Trainer Board-100 with a 1 to 1 Connector.

    Steps - 6 ( 0f 13 )

  • Connect the Robot connector to the Output header of the DC Motor Driver.

    Steps - 7 ( 0f 13 )

  • Switch off the Mode Switch of DC Motor Driver.

    Steps - 8 ( 0f 13 )

  • Connect the X, Y, Z, VCC and GND pins of Accelerometer Sensor header of 3-axis Accelerometer Sensor with PA0, PA1, PA2, VCC and GND pin of PortA header of AVR Trainer Board-100 with a 5 to 5 Connector.

    Steps - 9 ( 0f 13 )

  • Connect the ISP header of AVR Trainer Board-100 with AVR USB Programmer header of AVR USB Programmer with a 10 to 10 FRC Female Connector.

    Steps - 10 ( 0f 13 )

  • Connect the AVR USB Programmer to the PC/Laptop's USB Port directly or with the help of USB AM-AF Cable.

    Steps - 11 ( 0f 13 )

  • Switch on the power with the help of Power Switch of AVR Trainer Board-100.

    Steps - 12 ( 0f 13 )

  • Download Accelerometer based Hand Gesture Controlled Robot with ATmega32 Hex file to AVR Trainer Board-100 with the help of SinaProg Hex downloader and AVR USB Programmer.

    Steps - 13 ( 0f 13 )

Downloads

Accelerometer based Hand Gesture Controlled Robot with ATmega32 Project File
  • 23 downloads 0 Kb

Post a Comment

    • MarkMedhat
      why 390 in #define X_MIN 310
      2017-05-17 04:14:20
      Reply
      • Arun Kumar Garg

        These are the threshold values for the accelerometer sensor in the +ve x-axis and -ve x-axis direction. These values decides after how much tilt of the accelerometer sensor in a direction will cause the robot to change its direction. Higher the +ve axis value, more is the tilt required to change the direction of robot and vice versa.  i.e the microcontroller treats a hand gesture as Forward tilt when the accelerometer sensor output is greater than 390. same concept is for other dire

        2017-05-24 15:57:31
        Reply