Project report
Project report
INTRODUCTION
This project aims to style integrate program to interface and test a totally
motorized, voice-operated wheelchair. A regular standard wheelchair wasn’t
used instead a prototype was made to meet this project’s goals. In this project,
the procedure of the Mechatronic systems design was followed to assure the
quality of the final product i.e; the Voice controlled wheelchair. The project
took the following of the subsequent parts: Hardware, software, interface, and
testing.
The main objective is to style a system that gives the answer for the physically
handicapped (challenged) people those who that can’t move by themselves, they
can use speech commands by interfacing the Speech Recognition with a
microcontroller and wheelchair.
The voice commands are given to the Bluetooth module HC 05 kit with the help
of an android phone and thus the wheelchair moves according to the given
directions. The wheelchair's movement is being controlled by the motors and
the motor drivers are being connected to the wheels of the chair.
It’s an incontrovertible fact that humans are born imperfections. But disabilities
have never stopped a person from achieving greatness. Furthermore, many
devices/instruments are invented to assist those that are mentally or physically
1
challenged. "Wheelchair" is supposedly the simplest example to support the
above-mentioned inventions. According to the earliest records, the wheeled
furniture is an inscription that has been found on a stone slate in China and as a
child's bed depicted during a frieze on a Greek vessel, both beginnings in the
6th and 5th century BCE. the original records of wheeled furniture making
practiced for carrying disabled characters date to three centuries succeeding in
China; the Chinese practiced early roller carts to move people also as large
objects. A distinction between the 2 functions wasn't made for an additional
several hundred years, until around 525CE, when images of wheeled chairs
made specifically to take the human from one place to another and is being seen
to begin and occur in Chinese art.
Many people are using these instruments and it's been proven to be a really
useful gizmo for the disabled. Wheelchairs are available in a good sort of format
to satisfy the precise needs of their users. These are popularly known to include
and have particularly well-specialized seating adaption, build for individualized
controls, and also adapted for certain particular activities, as seen with the ones
used in the sports wheelchairs and also which are used in beach wheelchairs. the
foremost widely known the distinction is between powered wheelchairs, where
propulsion is seen to be provided by batteries and electric motors, and selfly or
manually propelled wheelchairs, where the propulsive happend force is
provided either by the wheelchair user/occupant pushing the wheelchair by their
own force using their hand ("self-propelled") or by an attendant who might be
behind the wheelchair using their hands pushing from the rear ("attendant
propelled").
2
The project aims in designing a wheelchair that can be operated using Android
mobile phone. The controlling of the created prototyped wheelchair is done
wirelessly through the Android smartphone using the Bluetooth feature present
in it. Here in the project the Android smart phone is used as a remote control for
operating the wheelchair.
Android which is a known software stack for mobile devices that includes an
operating system, middleware and key applications. Android possesses a
healthy host of connectivity choices, including Wi Fi, Bluetooth, and radio data
over a cellular link (for instance, GPRS, EDGE (Enhanced Data rates for GSM
Evolution), and 3G). The Android platform provides availability to a huge range
of useful manuscripts and devices that can be used to build rich applications. In
addition, Android includes a full set of tools that have been built from the
ground up alongside the platform providing developers with high productivity
and deep insight into their applications. Bluetooth is a free standard spec for a
radio frequency (RF)-based, shortrange connectivity technology that assures to
modify the profile of computing and wireless communication. It is outlined to
be an economical, wireless networking system concerning all classes of
transportable devices, such as laptops, PDAs (personal digital assistants), and
mobile phones.
It also will facilitate wireless connections for desktop computers, making links
between monitors, printers, keyboards, and the CPU cable-free. The controlling
device of the whole system is a Microcontroller. The data obtained by the
Bluetooth module of the Android smart phone is fed as input to the controller.
The controller acts accordingly on the DC motors of the prototype. The
wheelchair in the project can be made to move in all the four directions using
the Android phone.
3
CHAPTER 2:
MATERIALS AND MODELS
Hardware Requirements:
1. ESP32:
The good thing about ESP32, like ESP8266 is its integrated RF components
like Power Amplifier, Low-Noise Receive Amplifier, Antenna Switch, Filters
and RF Balun. This makes designing hardware around ESP32 very easy as you
require very few external components.
4
applications like wearables, audio equipment, baby monitors, smart watches,
etc., using ESP32 should be very easy.
Specifications of ESP32:
Single or Dual-Core 32-bit LX6 Microprocessor with clock frequency up
to 240 MHz.
520 KB of SRAM, 448 KB of ROM and 16 KB of RTC SRAM.
Supports 802.11 b/g/n Wi-Fi connectivity with speeds up to 150 Mbps.
Support for both Classic Bluetooth v4.2 and BLE specifications.
34 Programmable GPIOs.
Up to 18 channels of 12-bit SAR ADC and 2 channels of 8-bit DAC
Serial Connectivity include 4 x SPI, 2 x I2C, 2 x I2S, 3 x UART.
Ethernet MAC for physical LAN Communication (requires external
PHY).
1 Host controller for SD/SDIO/MMC and 1 Slave controller for
SDIO/SPI.
Motor PWM and up to 16-channels of LED PWM.
Secure Boot and Flash Encryption.
Cryptographic Hardware Acceleration for AES, Hash (SHA-2), RSA,
ECC and RNG.
5
Layout:
As you can see from the image, the ESP32 Board consists of the following:
ESP-WROOM-32 Module
Two rows of IO Pins (with 15 pins on each side)
CP2012 USB – UART Bridge IC
micro–USB Connector (for power and programming)
AMS1117 3.3V Regulator IC
Enable Button (for Reset)
Boot Button (for flashing)
Power LED (Red)
User LED (Blue – connected to GPIO2)
Some passive components
6
2. DS18B20 Temperature Sensor:
The DS18B20 is a single-wire waterproof digital temperature sensor invented
by Dallas Semiconductor. So it is available in Stainless-steel probe form and
has characteristics like high precision, small size, strong anti-interference
ability, low hardware overhead, etc. Thus, this temperature sensor is ideal for
measuring temperature in different conditions, such as underwater, wet
conditions, something far away, or under the ground.
Working:
The DS18B20 waterproof temperature sensor works similarly to a temperature
sensor. So it measures temperature and ADC conversion with a convert-T
command. So the output temperature value can be stored in the 2-byte register
in the sensor and later, it returns to its stationary state. This temperature sensor
includes three wires or pins like Vcc, GND & data wires mainly for operation.
So every DS18B20 sensor includes a unique 64-bit serial code that allows
several DS18B20 sensors to work on a similar 1-Wire bus. Thus, it is very easy
to utilize one microprocessor for controlling several sensors that are distributed
above a large area.
7
Pin Configuration:
8
Each DS18B20 sensor has a unique 64-bit serial code that allows several
DS18B20 sensors to work on a similar 1-Wire bus.
The SEN-11574 pulse sensor is mainly used for sensing heartbeat rate.
Normally it is a very difficult task to measure the exact heartbeat rate, but this
has become so much easy with the help of this pulse sensor amped. If we talk
about heartbeat, then heart beat is a periodic signal that is produced by any
software or hardware system for giving intimation to normal of working of any
system. For measuring this periodic intimation signal, many sensors have been
used currently in the market but here we shall only talk about SEN-11574 pulse
sensor amped. This is basically plugged and play heartbeat sensor and can be
used by athletes, game developers, and students in their hardware projects.
Circuit:
The following figure shows the internal circuit diagram of a pulse sensor. It
consists of optical heart beat sensor, an amplification circuit, and a noise
cancellation circuit.
9
The front side of the pulse sensor, where the heart shape is drawn, consists of a
central LED. This is a hole from where Kingbright’s reverse installed green
LED glows and helps the sensor for detecting heartbeat rate. Just under the LED
is a photodetector sensor. Besides this, there is another circuitry below the LED.
This circuitry is called noise elimination circuitry. It is used for eliminating the
noise to enhance the reading of the heart rate pulse sensor.
Pinout:
10
Specifications:
Operating Temperature -40°C to +80°C
Dimensions (L x W) 15.8mm
Working:
The working principle of this heartbeat rate sensor is very simple. If we talk
about heartbeat rate, then heartbeat rate is the ratio of time between two
consecutive heartbeats. Similarly, when the human blood is circulated in human
body then this blood is squeezed in capillary tissues. As a result, the volume of
capillary tissues is increased but this volume is decreased after each heartbeat.
This change in volume of capillary tissues affects the LED light of heart rate
pulse sensor, which transmits light after each heartbeat. This change in light is
very small but this can be measured by connecting any controller with this pulse
sensor. This means the LED light which has every pulse sensor helps for
measuring pulse rate.
The working of this sensor could be checked by placing a human finger in front
of this pulse sensor. When a finger is placed in front of this pulse sensor then
the reflection of LED light is changed based on the volume of blood change
inside capillary vessels. This means during the heartbeat the volume of blood in
capillary vessels will be high and then will be low after each heartbeat. So, by
changing this volume the LED light is changed. This change in of LED light
measures the heartbeat rate of a finger. This phenomenon is known as
“Photoplethysmogram.”
4. ADXL345 Accelerometer:
The ADXL345 is a small, thin, low power, 3-axis accelerometer with high
resolution (13-bit) measurement at up to ±16 g. Digital output data is formatted
as 16-bit twos complement and is accessible through either a SPI (3- or 4-wire)
or I2C digital interface.
11
The ADXL345 is well suited for mobile device applications. It measures the
static acceleration of gravity in tilt-sensing applications, as well as dynamic
acceleration resulting from motion or shock. Its high resolution (4 mg/LSB)
enables measurement of inclination changes less than 1.0°.
Several special sensing functions are provided. Activity and inactivity sensing
detect the presence or lack of motion and if the acceleration on any axis exceeds
a user-set level. Tap sensing detects single and double taps. Free-fall sensing
detects if the device is falling. These functions can be mapped to one of two
interrupt output pins. An integrated, patent pending 32-level first in, first out
(FIFO) buffer can be used to store data to minimize host processor intervention.
Low power modes enable intelligent motion-based power management with
threshold sensing and active acceleration measurement at extremely low power
dissipation. The ADXL345 is supplied in a small, thin, 3 mm × 5 mm × 1 mm,
14-lead, plastic package.
12
User-selectable resolution
Fixed 10-bit resolution Full resolution, where resolution increases with g range,
up to 13-bit resolution at ±16 g (maintaining 4 mg/LSB scale factor in all g
ranges)
Embedded, patent pending FIFO technology minimizes host processor load
Tap/double tap detection
Activity/inactivity monitoring Free-fall detection Supply voltage range: 2.0 V to
3.6 V I/O voltage range: 1.7 V to VS SPI (3- and 4-wire) and I2C digital
interfaces Flexible interrupt modes mappable to either interrupt pin
Measurement ranges selectable via serial command Bandwidth selectable via
serial command Wide temperature range (−40°C to +85°C) 10,000 g shock
survival Pb free/RoHS compliant Small and thin: 3 mm × 5 mm × 1 mm LGA
package
1 Vcc The Vcc pin powers the sensor, typically with +5V
2 Trigger Trigger pin is an Input pin. This pin has to be kept high
for 10us to initialize measurement by sending US wave.
3 Echo Echo pin is an Output pin. This pin goes high for a
period of time which will be equal to the time taken for
the US wave to return back to the sensor.
13
Features:
Operating voltage: +5V
Theoretical Measuring Distance: 2cm to 450cm
Practical Measuring Distance: 2cm to 80cm
Accuracy: 3mm
Measuring angle covered: <15°
Operating Current: <15mA
Operating Frequency: 40Hz
Working:
As shown above the HC-SR04 Ultrasonic (US) sensor is a 4 pin module,
whose pin names are Vcc, Trigger, Echo and Ground respectively. This sensor
is a very popular sensor used in many applications where measuring distance or
sensing objects are required. The module has two eyes like projects in the front
which forms the Ultrasonic transmitter and Receiver. The sensor works with the
simple high school formula that
Distance = Speed × Time
The Ultrasonic transmitter transmits an ultrasonic wave, this wave travels in air
and when it gets objected by any material it gets reflected back toward the
sensor this reflected wave is observed by the Ultrasonic receiver module as
shown in the picture below
14
6. RKI-3141 IR sensor
Working:
There are two types of IR sensor operations: the emission detection technique is
used, whether it emits or senses infrared light and whether an object is detected
on it. In simple words, active IR sensors will literally emit an IR beam; it
considers the target to be within its range if it reflects back to the sensor that
beam. Passive IR sensors measure the change in infrared radiation within their
view and hence are useful for motion only and do not require an emitter.
15
7. HC-05 Bluetooth Module:
Pinout Configuration:
Pin Pin Name Description
Number
1 Enable / Key This pin is used to toggle between Data Mode (set low)
and AT command mode (set high). By default it is in
Data mode
16
7 LED Indicates the status of Module
Blink once in 2 sec: Module has entered Command Mode
Repeated Blinking: Waiting for connection in Data Mode
Blink twice in 1 sec: Connection successful in Data Mode
8 Button Used to control the Key/Enable pin to toggle between Data and
command Mode
Software Requirements:
1. Arduino IDE:
The development of electronics is now easier thanks to Arduino software (IDE),
and Arduino boards (hardware). This set help to build digital and interactive
devices with the help of other components. In Previous article we talk about
Arduino boards. In this article we will recognize what is Arduino software
(IDE), and how use it.
17
The Arduino software (IDE) is an open source software, which is used to
programme the Arduino boards, and is an integrated development environment,
devlopped by arduino.cc. Allow to write and upload code to Arduino boards.
2. Embedded C:
Embedded C programming language is an extension to the traditional C
programming language, that is used in embedded systems. The embedded C
programming language uses the same syntax and semantics as the C
programming language.
18
Basic Structure of Embedded C Program:
The embedded C program has a structure similar to C programming.
The five layers are:
1. Comments
2. Pre-processor directives
3. Global declaration
4. Local declaration
5. Main function()
19
CHAPTER 3:
OBJECTIVES:
Develop a Gesture Recognition System: Create a system that accurately
detects and interprets hand gestures using computer vision and machine
learning algorithms.
Integrate Voice Command Capabilities: Implement speech recognition
technology to understand and execute voice commands, enabling hands-
free control.
Enhance Accessibility: Design the system to be accessible for users with
physical disabilities, providing an alternative method of interaction with
technology.
Improve Efficiency: Streamline the process of controlling multiple
devices and applications, reducing the time and effort required for users
to perform tasks.
Ensure User-Friendly Interface: Develop an intuitive and user-friendly
interface that enhances the overall user experience, making it easy to set
up and operate the kit.
METHODOLOGY:
20
CHAPTER 4:
WORKING:
21
CHAPTER 5:
ALGORITHM:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 15OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);float temperature;
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();
#define heart 13
int RELAY1=5;
int RELAY2=23;
int IR=34;
int IN1=14;
int IN2=27;
int IN3=26;
int IN4=25;
//int SW=10;
//
#define trigPin 19
#define echoPin 18
//Define variables:
long duration:
int distance:
char ch:
String readvoice:
//char ch;
//String readvoice;
int data=36;
//heartbeat sensorunsigned long temp=0;
byte customChar1[8] =
{0b00000,0b00000,0b00011,0b00111,0b01111,0b01111,0b01111,0b01111};
22
byte customChar2[8] =
{0b00000,0b11000,0b11100,0b11110,0b11111,0b11111,0b11111,0b11111};
byte customChar3[8] =
{0b00000,0b00011,0b00111,0b01111,0b11111,0b11111,0b11111,0b11111};
byte customChar4[8] =
{0b00000,0b10000,0b11000,0b11100,0b11110,0b11110,0b11110,0b11110};
byte customChar5[8] =
{0b00111,0b00011,0b00001,0b00000,0b00000,0b00000,0b00000,0b00000};
byte customChar6[8] =
{0b11111,0b11111,0b11111,0b11111,0b01111,0b00111,0b00011,0b00001};
byte customChar7[8] =
{0b11111,0b11111,0b11111,0b11111,0b11110,0b11100,0b11000,0b10000};
byte customChar8[8] =
{0b11100,0b11000,0b10000,0b00000,0b00000,0b00000,0b00000,0b00000};
int count=0;
char mystr[20];
//
//void Emergency()//{
// if(digitalRead(SW)==LOW)
// {
// Serial.println("$Emergency...#");
// lcd.clear();
// lcd.print("Emergency..");
// delay(2000);
// }
//}
void setup()
{
pinMode(IR,INPUT);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(RELAY1,OUTPUT);
pinMode(RELAY2,OUTPUT);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
23
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
digitalWrite(RELAY1,LOW);
digitalWrite(RELAY2,LOW);
// pinMode(SW,INPUT_PULLUP):
pinMode(data,INPUT);
Serial.begin(9600);
Serial2.begin(9600); //Initialize serial
lcd.init(); // Initialize the LCD lcd.backlight();
lcd.createChar(1, customChar1);
lcd.createChar(2, customChar2);
lcd.createChar(3, customChar3);
lcd.createChar(4, customChar4);
lcd.createChar(5, customChar5);
lcd.createChar(6, customChar6);
lcd.createChar(7, customChar7);
lcd.createChar(8, customChar8);
lcd.clear();
lcd.print("Smart Wheelchair ");
lcd.setCursor(0, 1);
lcd.print("Disable People");
Serial.println("HI..");
delay(2000);
if(!accel.begin())
{
Serial.println("No valid sensor found");
while(1);
}
//attachInterrupt(digitalPinToInterrupt(SW5), Emergency, FALLING);
}
void loop()
{
// // SWITCH_CHECK();
// HEART_BEAT_MONITOR();
24
// Temp_Reading();
//// VOICE_MODE();
SELECT_MODE();
}
char Serial_read(void)
{
char ch;
while(Serial.available() == 0);
ch = Serial.read();
return ch;
}
void SELECT_MODE()
{
Serial.println("VOICE MODE SELECTED.");
lcd.clear();
lcd.print("1.Voice ");
lcd.setCursor(0,1);
lcd.print("2.Gesture");
while(1)
{
while (Serial2.available())
{ //Check if there is an available byte to read
delay(10); //Delay added to make thing stable
char c = Serial2.read(); //Conduct a serial read
readvoice += c; //build the string- "forward", "reverse", "left" and "right"
}
Serial.println(readvoice);
if (readvoice.length() > 0)
{
Serial.begin(9600);
if((readvoice == "voice mode")||(readvoice == "voice")) {
Serial.begin(9600);
Serial.println("$Voice Mode Selected#");
lcd.clear();
lcd.print("Voice Mode...");
delay(1000);
VOICE_MODE_OPERATION();
}
Else if((readvoice==“gesture’)||(raedvoice==“gesture mode’))
Serial.begin(9600);
25
Serial.println("$Gesture Mode Selected#");
lcd.clear();
lcd.print("Gesture Mode");
delay(1000);
GESTURE_MODE_OPERATION();
}
// else if((readvoice == "switch"))//
{
// Serial.begin(9600); //
Serial.println("$Switch Mode Selected#");
// lcd.clear();
// lcd.print("Switch Mode");
// delay(1000);
//
// SWITCH_MODE_OPERATION();
//
//
}
readvoice="";
}
// attachInterrupt(digitalPinToInterrupt(SW5), Emergency, FALLING);
// Emergency();
HEART_BEAT_MONITOR();
Temp_Reading();
DISTANCE();
if(digitalRead(IR)==LOW)
{
lcd.clear();
lcd.print("Back Side");
lcd.setCursor(0,1);
lcd.print("Detected");
delay(1000);
STOP();
}
}
}
Void Temp_Reading()
{
sensors.requestTemperatures();
temperature = sensors.getTempCByIndex(0);
26
Serial.print("Temperature: ");
Serial.println(temperature);
lcd.clear();
lcd.print("Temp: ");
lcd.print(temperature);
delay(1000);
if(temperature>35)
{
Serial.println("$More Temperature#");
lcd.clear();
lcd.print("More Temperature");
delay(1000);
}
}
void HEART_BEAT_MONITOR()
{
// Emergency();
count=0;
lcd.setCursor(0, 0);
lcd.print("Place The Finger");
lcd.setCursor(0, 1);
lcd.print("to check HB");
Serial.println("Place The Finger to check HB");
delay(2000);
// while(digitalRead(start)>0);
lcd.clear();
temp=millis();
while(millis()<(temp+5000))
{
if(analogRead(data)<100)
{
count=count+1;
lcd.setCursor(6, 0);
lcd.write(byte(1));
lcd.setCursor(7, 0);
lcd.write(byte(2));
lcd.setCursor(8, 0);
lcd.write(byte(3));
lcd.setCursor(9, 0);
lcd.write(byte(4));
27
lcd.setCursor(6, 1);
lcd.write(byte(5));
lcd.setCursor(7, 1);
lcd.write(byte(6));
lcd.setCursor(8, 1);
lcd.write(byte(7));
lcd.setCursor(9, 1);
lcd.write(byte(8));
while(analogRead(data)<100);
//
lcd.clear();
}
}
lcd.clear();
lcd.setCursor(0, 0);
count=count*5;
lcd.setCursor(2, 0);
lcd.write(byte(1));
lcd.setCursor(3, 0);
lcd.write(byte(2));
lcd.setCursor(4, 0);
lcd.write(byte(3));
lcd.setCursor(5, 0);
lcd.write(byte(4));
lcd.setCursor(2, 1);
lcd.write(byte(5));
lcd.setCursor(3, 1);
lcd.write(byte(6));
lcd.setCursor(4, 1);
lcd.write(byte(7));
lcd.setCursor(5, 1);
lcd.write(byte(8));
lcd.setCursor(7, 1);
if(count>130)
count=65;
lcd.print(count);
lcd.print(" BPM");
temp=0;//delay(1000);
sprintf(mystr, "HB:%d", count);
Serial.print(mystr);
28
Serial.println("");
delay(1000);
}
void GESTURE_MODE_OPERATION()
{
while(1)
{
sensors_event_t event;
accel.getEvent(&event);
float X_val=event.acceleration.x;
float Y_val=event.acceleration.y;
// Serial.print("X: ");
Serial.print(event.acceleration.x);
Serial.print(" ");
//
// Serial.print("Y: ");
Serial.print(event.acceleration.y);
Serial.print(" ");
//
// Serial.print("Z: ");
Serial.print(event.acceleration.z);
Serial.print(" ");
//
// Serial.println("m/s^2 ");
lcd.clear();
lcd.print("X:");
lcd.print(X_val);
lcd.setCursor(0,1);
lcd.print("Y:");
lcd.print(Y_val);
delay(500);
if(X_val<-7.50)
{
Serial.println('F');
FORWARD();
delay(1000);
}
if(X_val>7.5)
{
Serial.println('B');
29
REVERSE();
delay(1000);
}
if(Y_val<-7.50)
{
Serial.println('L');
LEFT();
delay(1000);
}
if(Y_val>7.5)
{
Serial.println('R');
RIGHT();
delay(1000);
}
if((X_val>0.8)&&(X_val<2))
{
Serial.println('S');
STOP();
delay(1000);
}
// // HEART_BEAT_MONITOR();
Temp_Reading();
DISTANCE();
if(digitalRead(IR)==LOW)
{
lcd.clear();
lcd.print("Back Side");
lcd.setCursor(0,1);
lcd.print("Detected");
delay(1000);
STOP();
}
}
}
void VOICE_MODE_OPERATION()
{
Serial.println("VOICE MODE SELECTED.");
lcd.clear();
lcd.print("Waiting For ");
30
lcd.setCursor(0,1);
lcd.print("Command Info");
while(1)
{
while (Serial2.available())
{ //Check if there is an available byte to read delay(10);
//Delay added to make thing stable
char c = Serial2.read(); //Conduct a serial read readvoice += c;
//build the string- "forward", "reverse", "left" and "right" }
Serial.println(readvoice);
if (readvoice.length() > 0)
{
Serial.begin(9600);
if((readvoice == "forward")||(readvoice == "forward"))
{
Serial.begin(9600);
Serial.println("$Forward#");
lcd.clear();
lcd.print("Forward");
delay(1000);
FORWARD();
}
else if((readvoice == "backword")||(readvoice == "backward"))
{
Serial.begin(9600);
Serial.println("$Backword#");
lcd.clear();
lcd.print("Backword");
delay(1000);
REVERSE();
}
else if((readvoice == "left"))
{
Serial.begin(9600);
Serial.println("$left#");
lcd.clear();
lcd.print("LEFT");
delay(1000);
LEFT();
}
31
else if((readvoice == "right"))
{
Serial.begin(9600);
Serial.println("$RIGHT#");
lcd.clear();
lcd.print("RIGHT");
delay(1000);
RIGHT();
}
else if((readvoice == "stop")||(readvoice == "top"))
{
Serial.begin(9600);
Serial.println("$STOP#");
lcd.clear();
lcd.print("STOP");
delay(1000);
STOP();
}
else if((readvoice == "gesture")||(readvoice == "gesture mode"))
{
Serial.begin(9600);
Serial.println("$Gesture Mode Selected#");
lcd.clear();
lcd.print("Gesture Mode");
delay(1000);
GESTURE_MODE_OPERATION();
}
readvoice="";
}
// HEART_BEAT_MONITOR();
Temp_Reading();
DISTANCE();
if(digitalRead(IR)==LOW)
{
lcd.clear();
lcd.print("Back Side");
lcd.setCursor(0,1);
lcd.print("Detected");
delay(1000);
STOP();
32
}
}
}
voidDISTANCE()
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
// Trigger the sensor by setting the trigPin high for 10 microseconds:
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the echoPin, pulseIn() returns the duration (length of the pulse) in
microseconds:
duration = pulseIn(echoPin, HIGH);
// Calculate the distance:
distance = duration * 0.034 / 2;
// Print the distance on the Serial Monitor (Ctrl+Shift+M):
lcd.clear();
lcd.print("Distance = ");
lcd.print(distance);
lcd.print(" cm"); delay(50);
if(distance<50)
{
lcd.clear();
lcd.print("Object Detected");
STOP();
delay(2000);
}
}
void FORWARD()
{
Serial.println("FORWARD.");
lcd.clear();
lcd.print("FORWARD");
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void REVERSE()
33
{
Serial.println("REVERSE.");
lcd.clear();
lcd.print("REVERSE");
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void LEFT()
{
Serial.println("LEFT.");
lcd.clear();
lcd.print("LEFT");
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void RIGHT()
{
Serial.println("RIGHT.");
lcd.clear();
lcd.print("RIGHT");
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void STOP()
{
Serial.println("STOP.");
lcd.clear();
lcd.print("STOP");
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
delay(1000);
}
34
CHAPTER 6:
RESULT:
35
CHAPTER 7:
CONCLUSION:
Wireless controller is one of the most prominent basic needs for all living
beings. But sadly, due to a huge amount of data and communication overheads
the technology is not fully utilized.
Many of the wireless-controlled robots use RF modules. But this project makes
use of Android mobile phone for robotic control which is very cheap and easily
available. The control commands open are more than RF modules. For this the
android mobile user has to establish an application on her/his mobile. Then the
user requires to switch on the Bluetooth in the mobile. The wireless connection
method used to command the robot is Bluetooth technology. User can practice
many commands like move forward, reverse, move left, move right using these
commands which are transmitted from the Android mobile.
Robot has a Bluetooth transceiver unit that accepts the commands and return it
to the microcontroller circuit to command the motors. The microcontroller then
transmits the signal to the motor driver ICs to operate the motors the objective
of the paper is to realise the smart living, more specifically the home lighting
control system using Bluetooth Technology.
Robot and smart phones are a perfect match, especially mobile robots. As
phones and mobile devices are each time more powerful, using them as robot
for building robot with advanced feature such as voice recognition.
36
CHAPTER 8:
REFERENCE:
Journals
1. “Design and Implementation of an Electric Wheel-Chair to Economies it
with Respect to Bangladesh” by Humaira Salmin, Hafiz Rakibul, Pratik
Kumar Kundu, B.M. Fahmid Jahur Shuvo, K.B.M. Nasiruzzaman and
Rahman MD Moshiour, International Journal of Multidisciplinary Sciences
and Engineering, Vol. 5, No. 2, pp: (17-22), February 2014 [3].
2. “Solar Powered Wheel Chair: Mobility for Physically Challenged”, Arun
Manohar Gurram, P.S.V Ramana Rao, Raghuveer Dontikurti, International
Journal of Current Engineering and Technology, ISSN 2277 - 4106 Vol.2,
No.1, pp: (211-214), March 2012 [2].
3. “Wheelchair for Physically and Mentally Disabled Persons”, Nirmal T M,
International Journal of Electrical and Electronics Research, ISSN 2348
6988 (online), Vol. 2, Issue 2, pp: (112-118), April - June 2014 [1]
37