Blind-Band
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 cames from one motor or another is activated. These parameters are defined at the code.
Referring to the 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 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.
Conclusions
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, 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.
Material
The materials needed to carry out the project are listed below.
/Jumpers
/4 Ultrasonic Sensors
/8 micro-vibration motors
/Arduino Board
/PCB board
/Towel headband
/Tin wire
/Thread and needle
/Soldering machine
/Scissors
/Wire stripper
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.
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. The code of the project is attached below.
//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);
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); }
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); }
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; }
Assemble the Components
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.
Model the Headband
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 or needlework it can be fixed to the inside fabric.
Then, the headband is closed and sewn again.
Using the Prototype
The Blind-band is easy to wear, you only have to put it around the head and close it with the velcro. It will detect the objects from the stablished ranges and, consequently, vibrate.