BLIND BAND
PRESENTED BY
ALI HUSSEIN, MUHAMMAD BASIM, ADEL MAHDI
2ND STAGE (EVENING STUDY)
DR. OMAR YOUSSEF
TABLE OF CONTENTS:
INTRODUCTION……………………………………………2-5
DESCRIPTION ………………………………………………………6
Components ……………………………………………………7 -8
MATERIAL …………………………………………8
ORGANIZE THE COMPONENTS…………………………9
ASSEMBLING ………………………10-12
CONCLUSION…………………………………………………12-14
PROGRAM THE CODE………………………………………14-18
1
THIRD EYE FOR THE BLIND
INTRODUCTION:
Blindness is a term that used to describe people that
cannot use the ability to see. Human beings receive around
80% of the information from the environment via sight.
Therefore, for blind people, it became difficult for them to fit
in natural life. That’s why they used either the ordinary white
cane, a dog, or the help of other human beings. Recently,
many studies have dealt with smart stick design. used
Arduino NANO with one Ultrasonic sensor and buzzer to
detect obstacles. Using raspberry pi microcontroller to
control ultrasonic sensor and IR sensor to detect obstacles.
proposed a work to operate a smart stick using pic16f877a
microcontroller and one ultrasonic sensor to detect
obstacles. Then send the signal to an ISD1932 recorder/
playback and connect this recorder to a speaker. In addition
to what mentioned before, have used MPLAB software to
program the microcontroller and ultrasonic to detect the
2
obstacles. Beside the ultrasonic sensor, used a water sensor
to detect the existence of the water regardless of its level.
The purpose was to awaken the person about it. added
beside the ultrasonic sensor, water sensor, IR and heat
sensors to detect the environment. Another design has used
one ultrasonic sensor and moisture sensor with
microcontroller of pic 16F87a. When the sensor detects an
obstacle, the microcontroller sends a signal to the actuator
which is the buzzer in this case to alert the person. have
planned device that will discover obstacles yet as water
within the user's path. It also has a further feature which will
simply be set by the user just in case it's lost or misplaced.
This feature is done using radio frequency waves wherever
there's a radio frequency receiver circuit on the stick and a
separate radio frequency transmitter circuit that triggers an
alarm on pressing a pushbutton. A traditional walking cane
forms the main frame of the device. That based on which
ultrasonic sensors are mounted at applicable locations to
3
discover obstacles. Furthermore, it has water sensors to
detect water within the path of the user. The mentioned
sensors send a signal to an Arduino programmed chip that
communicates with the alarm unit. The alarm unit comprises
a buzzer and vibrator that give notice the user of the obstacle
or water in their path. The device is light-weight and is
power-driven by electric battery. The design of the device
ensures accuracy. used GORE method (Goal Oriented
Requirements Engineering Methodology) to design a smart
stick. The device developed based on radio frequency
Identification (RFID) that operates within the Low Frequency
(LF) band. The envisioned device is a combination of a RFID
low-frequency reader module and a microcontroller unit to
convey all the knowledge pertaining to the product into the
user, thereby enhancing their shopping expertise. used
ultrasonic sensor with Arduino, then they added another
feature in case of the person gets lost. They added GPRS and
GSM modules; therefore, the person`s family can track the
4
person. used simple circuit for the smart stick. The stick
consists of one ultrasonic sensor and one water sensor with
Arduino.
Technologies are growing very fast, which helps people to
get a better and easier life. The smart stick is a technique to
help sightless people to recognize their way. Sightless People
suffer from the lack of ability to do their daily activities, from
walking in the street to visiting friends or relative or any daily
things. Therefore, the solution for this major problem is
proposed by designing a stick that can aid the person to walk
safely without having fear of hitting someone on the way or
any solid objects. The stick has been designed using Solid
Work software. The electric circuit was simulated using
Proteus software for designing and simulating electrical
circuits. In this paper, we have used three ultrasonic sensors.
One sensor has been placed in front of the stick and the other
two have been placed on both sides, left and right. To detect
the motion from almost every side.
5
DESCRIPTION:
Blind-band consists of a headband provided with ultrasonic
sensors and micro-vibration motors that activate when
objects are at certain distances to warn the user. It is
designed to blind persons, as a sense magnifier to provide
them an alternative way to move and travel around their
environments.
The functioning is quite simple; two ranges of distances are
established. The smallest goes from 10 to 40 centimeters
and the larger 40 to 80 centimeters. When an object enters
the larger range, a soft vibration is produced. As it moves
towards the user (and enters the smallest range), it is
produced a harder vibration. Depending on the direction
where the object comes from one motor or another is
activated. These parameters are defined at the code.
6
Components:
Blind-band consists of four ultrasonic sensors and eight
micro-vibration motors. It also has all the necessary
components to assemble the circuit such as jumpers,
Arduino board, and a PCB board.
The PCB board is a test plate with holes in which electronic
elements and cables are welded to build circuits.
The Arduino board is a micro-controller that enables the
performance of different actions through programming a
code. In this case, it assesses the intensity of light and does
the order of moving the wings and lighting the eyes.
Jumpers are the conductor cables used to connect the
different parts of the electronic circuit.
The ultrasonic sensors measure distances by using
ultrasonic waves. The sensor head emits an ultrasonic wave
(with the trigger) and receives the wave reflected from the
7
target (with the echo). The distance to the object is calculated
by measuring the time between the emission and reception.
Finally, the micro-vibration motors are motors that vibrate
when given sufficient energy.
ALL MATERIAL
The materials needed to carry out the project are listed
below.
1-Jumpers 2-4 Ultrasonic Sensors
3-8 micro-vibration motors 4-Arduino Board
5-PCB board 6-owel headband
7-Tin wire 8-Thread and needle
9-Soldering machine 10-Scissors
11-Wire stripper
8
ORGANIZE THE COMPONENTS:
First of all, you have to measure the head diameter of the
user. Then, you decide how to distribute the ultrasonic
sensors and the vibration motors. In this project, we have
decided to use four ultrasonic sensors and eight micro-
vibrators. They are placed as it is shown in the image (left,
right, front and back). Two motors are put between each
sensor.
9
ASSEMBLING:
The following step is mounting the circuit. The connections
are detailed in the image. All the components have to be
correctly weld. The welding is done with tin wire and a
soldering machine.
10
The last step to develop the project is assembling the
circuit on the headband. To carry out this, it is necessary to
unpick one lateral of the band. Then, you can insert the
welded electronic components. With hot glue, instant glue
11
or needlework it can be fixed to the inside fabric. Then, the
headband is closed and sewn again.
RESULT AND CONCLUSION:
12
As conclusions of the project, we observe that one HC-SR04
ultrasonic sensor does not encompass a range of 360
degrees of the environment. For this reason, the headband
incorporates four sensors, distributed ninety degrees from
each other to cover all the range up. However, if an
ultrasonic sensor that covered 360º was available, we might
have used it. It is simplest to assemble, occupies less space
and enables more possibilities of design.
We have based the prototype on a headband, but the
system could be integrated into a cap, glasses or other
components placed in the head.
Another thing to take into account is the vibration hardness
of the motors. For this project, we have set two types of
vibration: soft and hard with values of 50 and 100
respectively. These measures have been tested on a non-
blind person. However, if the motors were tested in a
different person, the intensity of the vibration could be
insufficient or too high. Thus, during the redesign phase,
13
the model could include a potentiometer to regulate the
intensity.
We think that this project could be more investigated to
develop a better solution and implement it to improve the
lives of blind people. Our goal is that they can stop using
the cane that limits their mobility and makes them depend
on a totally disintegrated object in their body. Blind-band
could be an accessory to facilitate and improve their daily
lifestyle.
14
PROGRAM THE CODE:
After establishing the idea, you have to program the code
with the desired parameters. The hardness of the vibration
can adapt to the user, the distances stipulated can change,
etc. In other words, the code can change according to user
preferences.
CODE:
//Define variables
const int EchoPin1 = 2; const int TriggerPin1 = 3;
const int EchoPin2 = 4; const int TriggerPin2 = 5;
const int EchoPin3 = 6; const int TriggerPin3 = 7;
const int EchoPin4 = 8; const int TriggerPin4 = 9;
int vibrator1 = A0; int vibrator2 = A1; int vibrator3 = A2; int vibrator4 = A3; int
vibrator5 = A4; int vibrator6 = A5;
int cm1, cm2, cm3, cm4;
void setup() { //initialize components Serial.begin(9600);
pinMode(TriggerPin1, OUTPUT); pinMode(EchoPin1, INPUT);
15
pinMode(TriggerPin2, OUTPUT); pinMode(EchoPin2, INPUT);
pinMode(TriggerPin3, OUTPUT); pinMode(EchoPin3, INPUT);
pinMode(TriggerPin4, OUTPUT); pinMode(EchoPin4, INPUT);
pinMode(vibrator1, OUTPUT); pinMode(vibrator2, OUTPUT);
pinMode(vibrator3, OUTPUT); pinMode(vibrator4, OUTPUT);
pinMode(vibrator5, OUTPUT); pinMode(vibrator6, OUTPUT);
void loop() { cm1 = ping(3, 2); //left cm2 = ping(5, 4); //front cm3 = ping(7, 6);
//right cm4 = ping(9,8); //back
/*Setting: 1. Activation ranges and micro-vibrators pins according to distance
and origin of the object. 2. Intensity of the motors according to the distance
between the object (it can be hard or soft)*/ if (cm1 > 40 && cm1 < 80) {
SoftVibration (vibrator1); SoftVibration (vibrator2); }
else if (cm1 > 10 && cm1 <= 40) { HardVibration (vibrator1); HardVibration
(vibrator2); }
if (cm2 > 40 && cm2 < 80) { SoftVibration (vibrator3); SoftVibration
(vibrator4); }
else if (cm2 > 10 && cm2 <= 40) { HardVibration (vibrator3); HardVibration
(vibrator4); }
if (cm3 > 40 && cm3 < 80) { SoftVibration (vibrator5); SoftVibration
(vibrator6); }
else if (cm3 > 10 && cm3 <= 40) { HardVibration (vibrator5); HardVibration
(vibrator6); }
16
if (cm4 > 40 && cm4 < 80) { SoftVibration (vibrator6); SoftVibration
(vibrator1); }
else if (cm4 > 10 && cm4 <= 40) { HardVibration (vibrator6); HardVibration
(vibrator1); }
//Front-Left Diagonal if (cm1>40 && cm2>40 && cm1<80 && cm2<80) {
SoftVibration (vibrator2); SoftVibration (vibrator3); }
if (cm1>10 && cm2>10 && cm1<=40 && cm2<=40) { HardVibration
(vibrator2); HardVibration (vibrator3); }
//Front-Right Diagonal if (cm2>40 && cm3>40 && cm2<80 && cm3<80) {
SoftVibration (vibrator4); SoftVibration (vibrator5); }
if (cm2>10 && cm3>10 && cm2<=40 && cm3<=40) { HardVibration
(vibrator4); HardVibration (vibrator5); }
//Back-Right Diagonal if (cm3>40 && cm4>40 && cm3<80 && cm4<80) {
SoftVibration (vibrator6); }
if (cm3>10 && cm4>10 && cm3<=40 && cm4<=40) { HardVibration
(vibrator6); }
//Back-Left Diagonal if (cm1>40 && cm4>40 && cm1<80 && cm4<80) {
SoftVibration (vibrator1); }
if (cm1>10 && cm4>10 && cm1<=40 && cm4<=40) { HardVibration
(vibrator1); }
Serial.print("Distancia: "); Serial.println(cm1); Serial.println(cm2);
Serial.println(cm3); delay(1000); }
void SoftVibration (int pin) { //Set intensity of soft vibration analogWrite (pin,
150); delay(100); analogWrite (pin, 0); delay(100); }
17
void HardVibration (int pin) { //Set intensity of hard vibration analogWrite (pin,
250); delay(100); analogWrite (pin, 0); delay(100); }
int ping(int TriggerPin, int EchoPin) { //Ultrasonic sensor function long
duration, distanceCm;
digitalWrite(TriggerPin, LOW); //to generate a clean trigger, we put it in LOW
for 4us (microseconds) delayMicroseconds(4); digitalWrite(TriggerPin,
HIGH); //generate the Trigger of 10us (microseconds)
delayMicroseconds(10); digitalWrite(TriggerPin, LOW);
duration = pulseIn(EchoPin, HIGH); //mesure the time between pulses, in
microseconds
distanceCm = ((duration * (10.0 / 292.0)) / 2); //convert the distance to cm
return distanceCm; }
18