The 3 sonars are getting 3 different distances of theobstacles in the way of the blind person and then give the beep
Blind stick is used by blind to avoid obstacles and walk around. Itâs an ancient way for blind persons to make them walk easily. But this is now old technique. We are creating a new way for blind people so that they could walk around with max efficiency and good accuracy. This device consists of 3 sonars aligned in a semi-hexagonal structure which would increase the accuracy of obstacle avoiding. One is located at the main front and two are attached sideways with the main one making an angle of 45degree with the main one. Also there will be 3 buzzers connected with each one of the sonars. So if there comes any obstacles in any of the 3 dimensions the specified buzzer will beep the obstacle approaching. Also there is a speaking part involve in which we use an amplifier, a speaker and sd-card module for the wav file.
Materials Required:
⢠Arduino Uno
⢠3 x Ultrasonic Sensor HC-SR04
⢠3 x Buzzer
⢠Speaker
⢠On/off button
⢠9V battery
⢠Pcb board
⢠Sd-card module
⢠Micro Sd-card
⢠Wav formatter
⢠Jumper wires
⢠Soldering kit & glue gun (for fabrication)
⢠A card board Box
- ULTRASONIC RANGE FINDER ON AN ARDUINO
Ultrasonic range finders are fun little modules that measure distance. You can use them to find the distance to an object, or to detect when something is near the sensor like a motion detector. Theyâre ideal for projects involving navigation, object avoidance, and home security. Because they use sound to measure distance, they work just as well in the dark as they do in the light. The ultrasonic range finder Iâll be using in this tutorial is the HC-SR04, which can measure distances from 2 cm up to 4oo cm with an accuracy of ±3 mm.
3 sonars plus 3 buzzer each having one pcb.
#define trigPin 13
#define echoPin 12
#define buzzer 6
#define buzzer1 5
#define buzzer2 4
#define trigPin1 11
#define echoPin1 10
#define trigPin2 9
#define echoPin2 8
#define dataPin A0
void setup()
{ pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(buzzer,OUTPUT);
pinMode(buzzer1,OUTPUT);
pinMode(buzzer2,OUTPUT);
}
void loop()
{ long dur, dist, dur1, dur2, dist1, dist2;
digitalWrite(trigPin, LOW);
delayMicroseconds(4);
digitalWrite(trigPin, HIGH);
delayMicroseconds(4);
digitalWrite(trigPin, LOW);
dur = pulseIn(echoPin, HIGH);
dist = (dur/2) / 29.1;
if (dist < 73 && dist>35) // Checking the distance, you can change the value
{
digitalWrite(buzzer,HIGH);
for (int i=dist; i>0; i--)
delay(9);
digitalWrite(buzzer,LOW);
for (int i=dist; i>0; i--)
delay(9);
} delay(100);
if (dist <= 35 && dist>8) // Checking the distance, you can change the value
{
digitalWrite(buzzer,HIGH);
for (int i=dist; i>0; i--)
delay(5);
digitalWrite(buzzer,LOW);
for (int i=dist; i>0; i--)
delay(2);
} delay(30);
if(dist<=8)
{digitalWrite(buzzer,HIGH);
}else
{
// when greater than 50cm
digitalWrite(buzzer,LOW);
} delay(500);
//2nd sonar code*********
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin1, LOW);
dur1 = pulseIn(echoPin1, HIGH);
dist1 = (dur1/2) / 29.1;
if (dist1 < 20) // Checking the distance, you can change the value
{
digitalWrite(buzzer1,HIGH);
}
else
digitalWrite(buzzer1,LOW);
delay(500);
//3rd sonar code*********
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin2, LOW);
dur2 = pulseIn(echoPin2, HIGH);
dist2 = (dur2/2) / 29.1;
if (dist2 < 20) // Checking the distance, you can change the value
{
digitalWrite(buzzer2,HIGH);
}
else
digitalWrite(buzzer2,LOW);
delay(500);
}