Hand Gesture Controlled Robot
In many application of controlling robots, it is quite difficult and complicated when there comes a part of controlling robot with remote or many different switches. In industrial robotics, medical application for surgery, military application in this field it is quite complicated to control the robot or machine with switches or remote. Therefore a new concept is introduced to control a machine with the movement of hand which will simultaneously control the position and movement of robot.
Working
For designing of an accelerometer based hand gesture controlled robot the AVR ATmega16 microcontroller is used. In this we use our hand gestures as input signals for driving the robot in various direction and the direction of movement of the robot is display on 16X2 alphanumeric LCD.
According to hand gesture, the ATmega16 microcontroller will send a required signal to DC motor driver (L293D) of the robot for driving the robot in desired direction.
The control hand gestures for the robot are right tilt, left tilt, forward tilt, backward tilt and no tilt to drive the robot in right, left, forward, backward direction and to stop it respectively. Now, tilt your hand in various directions and drive the robot as you want.
Robot Direction | Control Hand Gestures |
---|---|
Forward | Forward Tilt |
Left | Left Tilt |
Right | Right Tilt |
Backward | Backward Tilt |
Stop | no Tilt |
Hardware Required
- 12V, 1A DC Adapter-1 piece
- 3-axis Accelerometer Sensor-1 piece
- AVR Microcontroller Board-1 piece
- DC Motor Driver-1 piece
- AVR USB Programmer-1 piece
- 16X2 Alphanumeric LCD-1 piece
- 1 to 1 Connector-15 piece
- 10 to 10 FRC Female Connector-3 piece
- Robot-1 piece
Software Required
- BASCOM-AVR Integrated Development Environment (IDE)
- AVRDUDE-GUI
- WinAVR-2010
- USBasp Driver
Accelerometer Sensor
Acceleration sensor is used for measuring acceleration and tilt. An accelerometer is a device used for measuring acceleration.
The two kinds of forces which affect an accelerometer are:
- Static Force – It is the frictional force between any two objects. By measuring this gravitational force we can determine the how much robot is tilting. This measurement is useful in balancing robot, or for determining whether robot is driving on a flat surface or uphill.
- Dynamic Force – It is the amount of acceleration required to move an object. Measurement of dynamic force using an accelerometer tells about the velocity/speed at which robot is moving.
Accelerometer is comes in different configuration. Always use the one which is most appropriate for your robot. Some factors need to be considered before selecting accelerometer is:-
- Sensitivity
- Bandwidth
- Output type: Analog or Digital
- Number of Axis: 1,2 or 3
Consider the schematic diagram of basic accelerometer:
In accelerometer sensor there are 6 pin available in Integrated Circuit (IC):-
- X: On this pin we will receive analog data for x-direction movement.
- Y: On this pin we will receive analog data for y-direction movement.
- Z: On this pin we will receive analog data for z-direction movement.
- VDD: On this pin +5V is applied.
- GND: On this pin the ground is applied for biasing.
- ST: Using this pin sensitivity of accelerometer is set 1.5g/2g/3g/4g.
Transmitter Block Diagram
Consider the block diagram of transmitter circuit:
Receiver Block Diagram
Consider the block diagram of receiver circuit:
Construction
Source Code:
The screenshot of source code used in hand gesture control robot using BASCOM-AVR Integrated Development Environment (IDE) is shown below: