Thứ Sáu, 14 tháng 12, 2018

Accelerometer Based Hand Gesture Controlled Robot

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.
robot
Fig a : Robot  
hand gesture
Fig b : Hand gesture sensor (transmitter) 
amount
Fig c : Hand mount
chassy front
Fig d : Chassey photo (Front view)
chassy top
Fig d : Chassey photo (Top view open)

Description
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  ADC 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 and decoder IC(HT12D). This data is then  processed by a microcontroller  and finally our motor driver to control the motor's.  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 divided into two different part transmitter and receiver. We will discuss both of them one by one.
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.
accelerametor
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.

Block Diagrams & PCB Design

Transmitter Block diagram
transmitter
Receiver Block Diagram
receiver
PCB DESIGN
pcb
Components and costing
Sr.no
Components
Qty
Cost  in Rs (INR)
1
433 Mhz RF Module
1
260
2
Ht12e
1
45
3
Ht12d
1
45
4
L293D
2
90
5
AT89S52
1
45
6
7805
2
30
7
CAPACITOR 10 UF 63V
2
2
8
11.0592 Mhz crystal
1
10
9
PBT Connector
6
24
10
PCB Manufacturing cost
2
300
11
Single pole antenna
2
36
12
Resistor 1k
15
7
13
LED 3mm
20
20
14
Atmega 8
1
75
15
Accelerometer ADXL335
1
550
16
Battery 12 v 3.5Ampere
1
350

Above are the standard price
Note : The costing may vary according to region / area

Application
1.       Military application to control robotics
2.       Medical application for surgery purpose.
3.       Construction application.
4.       Industrial application for trolly control, lift control, etc.


.


Circuit:
Gesture Controlled robot circuit diagram
Code:
#include <mega8.h>
#include <delay.h>
#define ADC_VREF_TYPE 0xE0 // Read the 8 most significant bits
                          // of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
            // Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
void main(void)
{
unsigned int x,y,z;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0xFF;
TCCR0=0x00;
TCNT0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;f
MCUCR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
SPCR=0x00;
TWCR=0x00;
while (1)
      {
      // Place your code here
      x=read_adc(3);
      y=read_adc(4);
      z=read_adc(5);   
        PORTB=x;                                                
//---------------------------------------------------------------// X AXIS      
//---------------------------------------------------------------     if(x>0xab)
      {
      PORTD=0x0c;        
      }   
            else if(x<0x9b)
      {
      PORTD=0x03;
      }
//-------------------------------------------------------------- // Y AXIS
//------------------------------------------------------------------
    else if(y>0xab)
      {
      PORTD=0x08;        
      }   
            else if(y<0x9b)
      {
      PORTD=0x0e;
      }      
//--------------------------------------------------------------
//---------------------------------------------------------------

       else
      PORTD=0xff; 
      }
}







//Receiver main program

#include<reg51.h>
void main()
{
P2=0xff;
P1=0x00;
while(1)
{
if(P2==0x80)
{
P1=0xaa;
}
else if(P2==0xe0)
{
P1=0x55;
}
else if(P2==0x30)
{
P1=0xa5;
}
else if(P2==0xC0)
{
P1=0x5a;
}
else
P1=0x00;
}
}

[/restrict]

Không có nhận xét nào:

Đăng nhận xét

Bài đăng mới nhất

Hướng dẫn sử dụng Cân điện tử Fujihatsu FTC-01

Hướng dẫn sử dụng Cân điện tử Fujihatsu FTC-01 # candientu ,  # fujihatsu ,  # candientufujihatsu  #candientu,  # candientufujhatsu , #fuji...

Bài đăng phổ biến