Blind Assist Ultrasonic Navigation

4,114

29

13

Introduction: Blind Assist Ultrasonic Navigation

This is a navigation assistant for the visually impaired, not necessarily just for the 'blind,' but rather it is a useful tool for anyone with blurry vision or difficulty seeing, legally blind or otherwise.

It uses an ultrasonic sensor - HC-SR04 - to 'read' the environment and get a distance reading, while a buzzer relays the distances to the user by changing in pitch and frequency. The closer the beeps and the higher the pitch the closer an object is.

It is also designed to be mounted onto of a sunglasses so the user can wear it and point their head to the distance they want to be conveyed.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: BoM

* ESP32 [or Arduino but ESP32 has a smaller form factor, so it is preferable.]

* Buzzer

* Ultrasonic Sensor - HC-SR04

* Jumper Cables

* Breadboard [for the ESP32 to sit on]

* Sunglasses [Optional, you can choose other mounts]

Step 2: Circuit Connections

Follow the table below for the proper wiring of the Ultrasonic Sensor and Buzzer to the ESP32. I have also provided the jumper wire colour as a reference to help clarify the wirings from the pictures above.

I/OI/O Pin#Jumper Wire ColourESP32 Pin#
Buzzer1Red2
2WhiteGND
Ultrasonic sensor VCC Red3.3V
TrigYellow4
EchoGrey5
GNDWhiteGND

Step 3: Mount

I mounted the Ultrasonic Sensor to the middle of the sunglasses since that was the most natural placement for it. To secure it in place, add a bead of hot glue onto the jumper wire casings and glue it onto the top nose arch of the glasses.

Organize the cables by gluing the wires to the frame of the sunglasses.

Then glue the breadboard circuitry to one of the arms of the sunglasses with a hot glue gun. It is not too heavy so mounting it there is not much of a hassle. Alternatively, you can also use more jumper wires to extend the wire length of the ultrasonic sensor and keep this circuit in your pocket.

Step 4: Code

// defines pins numbers
const int trigPin = 9;
const int echoPin = 10;
const int buzzer = 6;
// defines variables
long duration;
int distance;
int safetyDistance;
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
pinMode(buzzer, OUTPUT);
  safetyDistance = 100;
 tone(buzzer, 2500);
  delay(500);
  tone (buzzer, 2500);  
Serial.begin(9600); // Starts the serial communication
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;
int beep = map (distance, 0, 3000, 0, 10000);
int time1 = map (distance, 0, 3000, 0, 300);
tone(buzzer, beep, time1);
delay(time1);
noTone (buzzer);  
}

Step 5: Enjoy!

Plug the micro usb cable to a battery pack, keep it in your back pack or pocket and you're ready to go!

Enjoy and I hope this has made a difference in your life!

MacGyver Challenge

Participated in the
MacGyver Challenge

Makerspace Contest 2017

Participated in the
Makerspace Contest 2017

Outside Contest 2017

Participated in the
Outside Contest 2017

Be the First to Share

    Recommendations

    • Backyard Contest

      Backyard Contest
    • Silly Hats Speed Challenge

      Silly Hats Speed Challenge
    • Finish It Already Speed Challenge

      Finish It Already Speed Challenge

    13 Discussions

    0
    SouvikD34S
    SouvikD34S

    Question 4 months ago on Step 3

    Please tell me more about ESP32 and the code

    0
    NavyBuff
    NavyBuff

    Question 10 months ago on Step 4

    Is it possible to get the sketch & files for this project, I am a premium user and need to make this project, a family member is in desperate need... Thank You...

    PS
    Great project

    0
    jhamasteranubhav
    jhamasteranubhav

    Question 1 year ago on Step 1

    Please tell me that esp32 also uses code and also tell me about buzzer

    0
    Fang4
    Fang4

    Question 1 year ago on Step 4

    Which coding language is this? Also, what software did you use to code it?

    0
    Fang4
    Fang4

    1 year ago on Step 1

    can we use the arduino uno R3?

    0
    FaizaK7
    FaizaK7

    Tip 1 year ago on Step 4

    Tell me exact wording of the pins to fit in the circuit

    0
    harrise3419
    harrise3419

    2 years ago

    whats the best web for this

    0
    Tanosdragoco
    Tanosdragoco

    2 years ago

    Hi, i new and i would want use this proyect with tesis. Im from Mexican. Can i use this proyect with my tesis?

    0
    TechMartian
    TechMartian

    Reply 2 years ago

    Absolutely!

    0
    DavidO198
    DavidO198

    2 years ago

    Is there a way to change the buzzer for something to tell you in meters the distance?

    0
    TechMartian
    TechMartian

    Reply 2 years ago

    Yes but then you'll need to interface it to a phone or raspi so you can access the speaker. I'll keep this in mind for a future project.