Project tutorial
Hand gesture control wheelchair for disabled people

Hand gesture control wheelchair for disabled people © GPL3+

With the help of hand gesture corresponding to the Accelerometer sensor the wheel chair will move

  • 750 views
  • 0 comments
  • 8 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)
Hy gluegun
Hot glue gun (generic)

Apps and online services

About this project

https://drive.google.com/open?id=1RNI2ehaknWPN0lPpKm8wv95DUVcTr8H6

•The percentage of disabled people has increased in both rural and urban part of India. The disability could be by birth or due to some medical or accidental reason.

•The aim of this project is to make a hand gesture controlled wheel chair and using Accelerometer as sensor to help the physically disabled people in moving from one place to another just by giving direction from the hand

•Today in India many people are suffering from disability, there are people whose lower half of the body is paralyzed. This Wheelchair will add on to the comfort and make the life of people bit easier

Code

Transmitter codeArduino
#include <SPI.h>        //SPI library for communicate with the nRF24L01+
#include "RF24.h"       //The main library of the nRF24L01+
#include "Wire.h"       //For communicate
#include "I2Cdev.h"     //For communicate with MPU6050
#include "MPU6050.h"    //The main library of the MPU6050

MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
int data[2];

RF24 radio(9,10);
                                    
const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(void){
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();              //Initialize the MPU object
  radio.begin();                 //Start the nRF24 communicate     
  radio.openWritingPipe(pipe);   //Sets the address of the receiver to which the program will send data.
}

void loop(void){
 
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

 
  data[0] = map(ax, -17000, 17000, 300, 400 ); //Send X axis data
  data[1] = map(ay, -17000, 17000, 100, 200);  //Send Y axis data
  radio.write(data, sizeof(data));
}
Receiver CodeArduino
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>      //SPI library for communicate with the nRF24L01+
#include "RF24.h"     //The main library of the nRF24L01+


const int enbA = 3;
const int enbB = 5;

const int IN1 = 2;    //Right Motor (-)
const int IN2 = 4;    //Right Motor (+)
const int IN3 = 7;    //Left Motor (+)
const int IN4 = 6;    //Right Motor (-)

int RightSpd = 130;
int LeftSpd = 130;

int data[2];


RF24 radio(9,10);

const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(){
  //Define the motor pins as OUTPUT
  pinMode(enbA, OUTPUT);
  pinMode(enbB, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  
  Serial.begin(9600);
  radio.begin();                               
  radio.openReadingPipe(1, pipe);
  radio.startListening();             
  }

void loop(){
  if (radio.available()){
    radio.read(data, sizeof(data));

    if(data[0] > 380){
      //forward            
      analogWrite(enbA, RightSpd);
      analogWrite(enbB, LeftSpd);
      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
    }
    
    if(data[0] < 310){
      //backward              
      analogWrite(enbA, RightSpd);
      analogWrite(enbB, LeftSpd);
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
    }
     
    if(data[1] > 180){
      //left
      analogWrite(enbA, RightSpd);
      analogWrite(enbB, LeftSpd);
      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
    }

    if(data[1] < 110){
      //right
      analogWrite(enbA, RightSpd);
      analogWrite(enbB, LeftSpd);
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
    }

    if(data[0] > 330 && data[0] < 360 && data[1] > 130 && data[1] < 160){
      //stop car
      analogWrite(enbA, 0);
      analogWrite(enbB, 0);
    }
  }
}

Schematics

Circuit diagram of hand gesture TRANSMITTER
Circut diagram of gloves znmqz8be2m
Circuit diagram of wheel chair RECEIVER
Circuit diagram for wheel chair etcyqmtspo
wheel chair
Img 20200123 232733 zcphschv6h

Comments

Similar projects you might like

How to Make a Gesture Control Robot at Home

Project tutorial by Shubham Shinganapure

  • 11,628 views
  • 14 comments
  • 66 respects

Hand Gesture Controlled Robot

Project tutorial by Mayoogh Girish

  • 86,154 views
  • 89 comments
  • 96 respects

Gesture Drive: Accelerate with Freedom

Project tutorial by Shahariar

  • 3,777 views
  • 0 comments
  • 13 respects

Amazing Control Computer Using Hand Motion And Arduino

Project tutorial by Smart Technology

  • 12,612 views
  • 15 comments
  • 16 respects

Arduino TV Volume Control

Project tutorial by Sam

  • 7,538 views
  • 1 comment
  • 15 respects

Probability | Autonomous Rover

Project in progress by UniverseRobotics

  • 17,986 views
  • 19 comments
  • 84 respects
Add projectSign up / Login