Project tutorial
Smart Wheelchair

Smart Wheelchair

This is a smart wheelchair

  • 1,495 views
  • 4 comments
  • 3 respects

Components and supplies

Apps and online services

About this project

Objective

The objective of this project is to help physically challenged people. It will basically very helpful for those who cannot able to walk.

Introduction

This is a simple prototype of Smart Wheelchair. The wheelchair is multi functioned. One can use this wheelchair for various purposes. This chair can be used as panic alarm. If the person needs instant help, he/she can hit the panic alarm button so that someone can help him/her immediately. This wheelchair also has a led light. So, anyone can roam here and there when the surroundings has not enough light. Last but not the least this wheelchair is also automatically identify the obstacles and it makes decision to go with the obstacle free path.

Required Equipments

  • Arduino UNO
  • Motor Driver (Model:L298N)
  • Bluetooth Module (Model:HC-05)
  • Ultrasonic Sensor (Model:HC-SR04)
  • DC Motor
  • Lipo Battery(1000mAh)
  • Breadboard
  • LED
  • Push Button
  • Switch(ON/OFF)
  • Buzzer
  • Jumper Wire (Male to Male | Male to Female | Female to Female)

Connections

A) Motor Driver to Arduino

  • IN1 to Digital Pin 8
  • IN2 to Digital Pin 9
  • IN3 to Digital Pin 10
  • IN4 to Digital Pin 11
  • +12V to Lipo Battery Positive Lead
  • GND to Lipo Battery Negative Lead
  • +5V to VIN (Arduino)

B)Bluetooth Module to Arduino

  • +5V (Arduino) to +5V (Bluetooth)
  • GND (Arduino) to GND (Bluetooth)
  • RX (Arduino) to TX (Bluetooth)
  • TX (Arduino) to RX (Bluetooth)

C) Ultrasonic Sensor to Arduino

  • Trig Pin to Digital Pin 12
  • Echo Pin to Digital Pin 13
  • Trig Pin to Digital Pin 7
  • Echo Pin to Digital Pin 6
  • VCC to 5V
  • GND to GND

D) Other Connections

  • Led Light (Anode ) to Digital Pin 5 (Arduino)
  • Buzzer (Positive Lead) to Digital Pin 4 (Arduino)
  • Push Button (Positive Lead) to Digital Pin 3 (Arduino)

App Download Link: https://play.google.com/store/apps/details?id=com.keuwl.arduinobluetooth

Bluetooth App Setting

Step-1

First download the app from the Google Play Store. I have given the link of the app in the above (Bluetooth App Google Play Store Link) Section.

Step-2

Edit a new panel for your Wheelchair controls

Step-3

Now click on the "Connect" button and select "Bluetooth Classic" option then click "Next" button to build up the bluetooth connection.

Step-4

After pairing between the application and "HC-05 Bluetooth Module" and click "Done" button. Finally Click "Run" button to start working with this app.

Important Instructions

  • During the uploading the code on Arduino we need to pull down the RX and TX connection from the Arduino.
  • Lipo Battery is very powerful battery. So, make sure that the each connections are perfectly ok.

Code

Wheelchair CodeC/C++
int motorRightA = 8;    //Right Motor-clockwise
int motorRightB = 9;   //Right Motor-anticlockwise
int motorLeftA = 11;   //Left Motor-clockwise
int motorLeftB = 10;   //Left Motor-clockwise
int trigPin1 = 12;     // Trig Pin
int echoPin1 = 13;     // Echo Pin
int light = 5;
long duration1;
int distance1;
char bt = 0;            //Bluetooth Control
int trigPin2 = 7;       // Trig Pin
int echoPin2 = 6;       // Echo Pin
long duration2;
int distance2;
int buzzer = 4;
int pushButton = 3;
void setup()
{
  pinMode(motorRightA, OUTPUT);
  pinMode(motorRightB, OUTPUT);
  pinMode(motorRightB, OUTPUT);
  pinMode(motorLeftB, OUTPUT);
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
  pinMode(light, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(pushButton, INPUT_PULLUP);
  Serial.begin(9600);
}
void loop()
{
  //Light On Off
  lightOnOff();
  //Panic Button
  panicSound();

  //  Right
  digitalWrite(trigPin1, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration1 = pulseIn(echoPin1, HIGH);
  // Calculating the distance
  distance1 = duration1 * 0.034 / 2;
  // Prints the distance on the Serial Monitor
  Serial.print("Distance: ");
  Serial.println(distance1);

  // Left 
  digitalWrite(trigPin2, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin2, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin2, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration2 = pulseIn(echoPin2, HIGH);
  // Calculating the distance
  distance2 = duration2 * 0.034 / 2;
  // Prints the distance on the Serial Monitor
  Serial.print("Distance: ");
  Serial.println(distance2);

  if (distance1 <= 20 || distance2 <= 20) {
    //Stop Wheel Chair
    digitalWrite(motorRightA, LOW);
    digitalWrite(motorRightB, LOW);
    digitalWrite(motorLeftA, LOW);
    digitalWrite(motorLeftB, LOW);
    control();
  }
  else {
    control(); // Call All the Control
  }
}

// All the Controls of the Wheel Chair
void control() {
  if (Serial.available() > 0)
  {
    bt = Serial.read();
    if (bt == 'F')       //move forwards
    {
      digitalWrite(motorRightA, HIGH);
      digitalWrite(motorLeftA,  HIGH);
    }
    else if (bt == 'B')       //move backwards
    {
      digitalWrite(motorRightB, HIGH);
      digitalWrite(motorLeftB, HIGH);
    }
    else if (bt == 'S')     //stop!
    {
      digitalWrite(motorRightA, LOW);
      digitalWrite(motorRightB, LOW);
      digitalWrite(motorLeftA, LOW);
      digitalWrite(motorLeftB, LOW);
    }
    else if (bt == 'R')    //right
    {
      digitalWrite(motorRightA, LOW);
      digitalWrite(motorRightB, LOW);
      digitalWrite(motorLeftA, HIGH);
      digitalWrite(motorLeftB, LOW);
    }
    else if (bt == 'L')     //left
    {
      digitalWrite(motorRightA, HIGH);
      digitalWrite(motorRightB, LOW);
      digitalWrite(motorLeftA, LOW);
      digitalWrite(motorLeftB, LOW);
    }
    else if (bt == 'I')    //forward right
    {
      digitalWrite(motorRightA, HIGH);
      digitalWrite(motorRightB, LOW);
      digitalWrite(motorLeftA, LOW);
      digitalWrite(motorLeftB, HIGH);
    }
    else if (bt == 'G')    //forward left
    {
      digitalWrite(motorRightA, LOW);
      digitalWrite(motorRightB, HIGH);
      digitalWrite(motorLeftA, HIGH);
      digitalWrite(motorLeftB, LOW);
    }
  }
}

void lightOnOff() {

  if (bt == 'O') {
    digitalWrite(light, HIGH);
  }
  else if (bt == 'o') {
    digitalWrite(light, LOW);
  }
}
void panicSound() {
  int val = digitalRead(pushButton);
  if (val == LOW) {
    digitalWrite(buzzer, HIGH);
  } else {
    digitalWrite(buzzer, LOW);
  }
}

Custom parts and enclosures

Smart Industry Fritzing File
wheelchair_GqbzlSd8LO.fzz

Schematics

Smart Industry Schematic Disgram
Wheelchair bb dlk8497rbc

Comments

Similar projects you might like

4WD Smart Robot Car

Project tutorial by TheTNR

  • 10,862 views
  • 3 comments
  • 23 respects

Smart Door with Face Unlock

Project tutorial by Divins Mathew

  • 17,474 views
  • 5 comments
  • 29 respects

Smart cane

by saurabhrobotic

  • 6,784 views
  • 23 comments
  • 43 respects

Smart Battery Charger Multiplexer with Smart Display

Project tutorial by leonzak

  • 6,407 views
  • 8 comments
  • 21 respects

DIY Smart Cane Using Arduino

Project tutorial by suhail jr

  • 15,648 views
  • 1 comment
  • 18 respects

Probability | Autonomous Rover

Project in progress by Cole Purtzer

  • 19,491 views
  • 20 comments
  • 88 respects
Add projectSign up / Login