0% found this document useful (0 votes)
5 views

Project report

This project focuses on designing a voice-operated, motorized wheelchair aimed at assisting individuals with disabilities. It utilizes speech recognition technology and an ESP32 microcontroller to control the wheelchair's movement via an Android smartphone using Bluetooth. The project includes hardware and software components, emphasizing the importance of mechatronic system design for quality assurance in the final product.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Project report

This project focuses on designing a voice-operated, motorized wheelchair aimed at assisting individuals with disabilities. It utilizes speech recognition technology and an ESP32 microcontroller to control the wheelchair's movement via an Android smartphone using Bluetooth. The project includes hardware and software components, emphasizing the importance of mechatronic system design for quality assurance in the final product.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 37

CHAPTER 1:

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.

This project is said to controlling a wheelchair by means of the human voice


and gesture control. The target of this project is to facilitate the movement of
people who are disabled or handicapped. We used Speech recognition
technology which has been employed to maneuver the wheelchair. The results
of this project show that this will be used for future research work and public
interest.

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.

The interfacing between gesture recognition kit and motors is completed by


employing a microcontroller. The interfacing between speech recognition kit
and motors is completed by employing a microcontroller. Here during this
project, the microcontroller used is ESP32. The idea was taken during this paper
to reduce the human efforts in driving a wheelchair.

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").

Earlier the wheelchair was to be moved by a mechanical force applied by the


user. In recent trend Joystick with a motor are getting used to cause movement.
But it comes with its own limitation of force to be applied on these levers.
There could also be an opportunity that it's going to grind to a halt or it's going
to break.

To overcome this problem, we thought of employing a voice-controlled


actuation which not only removes the matter of lever adjustment but also would
be more convenient for the user hence we've come up with a prototype
wheelchair that's voice actuated.

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:

ESP32 is a low-cost System on Chip (SoC) Microcontroller from Espressif


Systems, the developers of the famous ESP8266 SoC. It is a successor to
ESP8266 SoC and comes in both single-core and dual-core variations of the
Tensilica’s 32-bit Xtensa LX6 Microprocessor with integrated Wi-Fi and
Bluetooth.

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.

Another important thing to know about ESP32 is that it is manufactured using


TSMC’s ultra-low-power 40 nm technology. So, designing battery operated

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.

Different Ways to Program:


Some of the commonly used programming environments are:
 Arduino IDE
 PlatformIO IDE (VS Code)
 LUA
 MicroPython
 Espressif IDF (IoT Development Framework)
 JavaScript

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

Pinout of ESP32 Board:

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.

This temperature sensor measures a wide temperature range, from -55°C to


+125°C (-67°F to +257°F), with +-5% accuracy. So, this sensor uses a single-
wire bus protocol to communicate with a microcontroller and transmit the
temperature readings. Thus, its resolution ranges from 9 bits to 12 bits, but the
default resolution to power up the temperature sensor is 0.0625°C precision, i.e.,
12 bits

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.

DS18B20 digital temperature sensor provides temperature measurements that


range from 9-bit to 12-bit Celsius. Thus this sensor can also have an alarm
function including nonvolatile user-programmable lower and upper trigger
points. This sensor communicates above a 1-Wire bus that needs one data line
only for communication through a central microprocessor. So this sensor
additionally derives power straight from the data line by removing the need for
an exterior power supply.

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:

 Pin-1 (GND): This is the Ground pin of the temperature sensor, so


connected to the microcontroller’s GND terminal.
 Pin-2 (VCC): This is the power supply pin of the temperature sensor so
connected to the 3.3V/5V terminal of the microprocessor or
microcontroller.
 Pin-3 (DATA): This is the o/p pin of the temperature sensor that provides
the output with one wire method. So it must be attached to a digital pin
on the microprocessor or microcontroller.

Features & Specifications:


 DS18B20 is a digital temperature sensor.
 This sensor is available in different packages like 8-Pin SO, 8-Pin µSOP
& 3-Pin TO-92.
 Its unique 64-bit address allows multiplexing.
 It doesn’t need external components.
 This sensor needs two pins only for operation in parasitic power mode.
 Several temperature sensors can share a single pin of
microprocessor/microcontroller.
 It includes programmable alarm options.
 Its unique single-wire interface needs a single digital pin of
microprocessor or microcontroller only for its communication.
 Its accuracy is ±0.5°C
 This sensor’s resolution is 9- bits, 10- bits, 11- bits, (or) 12-bits.
 Its operating voltage ranges from 3V to 5.5V.
 DS18B20 sensor includes an alarm feature with low and high user-
settable temperature thresholds
 These sensors are waterproof, so used in moisture-exposed environments.
 It communicates through a 1-Wire bus that requires only one data line
used for communication.

8
 Each DS18B20 sensor has a unique 64-bit serial code that allows several
DS18B20 sensors to work on a similar 1-Wire bus.

3. SEN-11574 Pulse Sensor:

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:

This pulse sensor consists of three pins.


 First one is the GND pin which is used for supplying ground to this
sensor and it is connected to source ground pin.
 The middle pin is the VCC pin which is used to supply power to the
sensor. This sensor is powered on at almost 3.3V to 5V dc voltages.
 Similarly, the last one is the A0 pin which is an analogue pin and it is
used for receiving analogue signal. The sensor gives the output in the
form of voltage. We need to measure this voltage waveform and extract
heart beat rate out of this waveform.this sensor also consists of a central
LED. This LED helps the sensor for detecting heartbeat rate. Beside this,
there is another circuitry below LED and this circuitry is called noise
elimination circuitry. This circuitry is used for eliminating the noise
which effects on the reading of the heart rate pulse sensor.

10
Specifications:
Operating Temperature -40°C to +80°C

Input Voltage (VCC) 3V to 5.5V

Output Voltage 0.3V to VCC

Supply Current 3mA to 4mA

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.

Functional Block Diagram:

Ultralow power: as low as 40 μA in measurement mode and 0.1 μA in standby


mode at VS = 2.5 V (typical)
Power consumption scales automatically with bandwidth

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

5. HC-SR04 ultrasonic sensor:

Pin Pin Description


Number Name

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.

4 Ground This pin is connected to the Ground of the system.

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

An IR sensor is an electronic device that detects infrared radiation, one form of


light that the human eye cannot perceive. IR sensors are extensively used in
proximity sensing, motion, and remote control applications. They convert
infrared light signals into electrical signals to be processed by the system. The
full name of the IR sensor is Infrared Sensor, which basically consists of an IR
LED (Light Emitting Diode) coupled with an IR receiver for the purpose of
measuring either reflected or transmitted infrared light.
Pinout:
● VCC: Power to Sensor 3.3V or 5V.
● GND: This grounding is connected with the ground of a circuit.
● OUT: It sends the detection signal to the system.

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

2 Vcc Powers the module. Connect to +5V Supply voltage

3 Ground Ground pin of module, connect to system ground.

4 TX – Transmits Serial Data. Everything received via


Transmitter Bluetooth will be given out by this pin as serial data.

5 RX – Receive Serial Data. Every serial data given to this pin


Receiver will be broadcasted via Bluetooth

6 State The state pin is connected to on board LED, it can be


used as a feedback to check if Bluetooth is working
properly.

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

HC-05 Default Settings:


 Default Bluetooth Name: “HC-05”
 Default Password: 1234 or 0000
 Default Communication: Slave
 Default Mode: Data Mode
 Data Mode Baud Rate: 9600, 8, N, 1
 Command Mode Baud Rate: 38400, 8, N, 1
 Default firmware: LINVOR

HC-05 Technical Specifications:


 Serial Bluetooth module for Arduino and other microcontrollers
 Operating Voltage: 4V to 6V (Typically +5V)
 Operating Current: 30mA
 Range: <100m
 Works with Serial communication (USART) and TTL compatible
 Follows IEEE 802.15.1 standardized protocol
 Uses Frequency-Hopping Spread spectrum (FHSS)
 Can operate in Master, Slave or Master/Slave mode
 Can be easily interfaced with Laptop or Mobile phones with Bluetooth
 Supported baud rate: 9600,19200,38400,57600,115200,230400,460800.

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.

And it consiste of many libraries and a set of examples of mini projects.


Arduino software (IDE) is compatible with different operating systems
(Windows, Linux, Mac OS X), and supports the programming languages (C/C+
+)
The Arduino software is easy to use for beginners, or advanced users. It uses to
get started with electronics programming and robotics, and build interactive
prototypes.
So Arduino software is a tool to develope new things. and create new electronic
projects, by Anyone (children, hobbyists, engineers, programmers, … etc).

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.

The only extension in the Embedded C language from normal C Programming


Language is the I/O Hardware Addressing, fixed-point arithmetic operations,
accessing address spaces, etc.

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()

Key Characteristics of Embedded C:


1. Efficiency: Embedded C allows for the creation of efficient code that
optimizes the limited resources available in embedded systems. It aims to
minimize memory usage and maximize performance1.
2. Direct Hardware Interaction: It enables direct interaction with hardware
components such as microcontrollers, sensors, and actuators, facilitating
precise control over the hardware1.
3. Low-level Programming: Embedded C involves low-level programming,
dealing with hardware-specific details like memory addresses, I/O ports,
and register manipulation1.
4. Real-time Operations: It supports real-time operations, allowing
programmers to handle tasks that require precise timing and response to
events

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:

Step 1: Bluetooth Connection


• The mobile app connects to the ESP32 over Bluetooth.
• The app communicates gesture and voice commands to the ESP32,
allowing remote control.
Step 2: Voice Command Processing
• Voice commands are processed via the mobile app.
• The ESP32 receives the command and triggers the corresponding action.
Step 3: Gesture Recognition
• The ADXL335 accelerometer detects hand movement or tilt (e.g., tilting
the hand to turn on a device).
• Based on the gesture, the ESP32 sends control signals to activate devices
or sensors.
Step 4: Sensor Data Processing
• Sensors (e.g., temperature, pulse, distance) collect real-time data.
• The ESP32 processes the sensor input and displays the data on the
display or takes action based on the received command.

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.

Android Bluetooth-enable phones and Bluetooth module via HC-06 and


information among Bluetooth tools. It is presumed that smart existence will
slowly turn into a reality that user can control their home remotely and
wirelessly.

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]

Valid internet articles:


1. https://en.wikipedia.org/wiki/Arduino
2. https://www.itead.cc/wiki/Serial_Port_Bluetooth_Module_(Master
/Slave)_:_HC-05
3. https://www.instructables.com/Voice-Activated-Arduino-Bluetooth
Android/

37

You might also like