Brady* the Ultrasonic Warning System for the Visually Impaired

Prints (0)


This ultrasonic detector is aimed at helping visually impaired people get around with as little problems as possible. The idea is that the person will clip this onto one of their pockets and while walking, from a certain distance, it will buzz in order to keep the person from hitting something. The compact design houses an Arduino Nano, two 240 mAh batteries, a switch, a buzzer and a charging unit. The design also allows for it to be clipped on to either your shirt's or pants' pocket for easy access and use. The two piece enclosure doesn't require supports and prints easily in only a few hours. The enclosure is also small enough to fit most printers. The clip that is printed separately is then glued to the slot on the top enclosure. Also note that the tolerances are tight and will only work on a well calibrated design, so if requested I will release a high tolerance version.

To create this detector, you will need: an Arduino Nano, a HC-SR04 ultrasonic detector, a 12mm 5v buzzer, a 120 ohm resistor, a switch and a TP4056 1A Lipo Battery Charging Board. The wiring diagram is included in the pictures along with the code (below), which can be modified if you want. While soldering the wires, keep in mind to place all components and then measure out the wires, of course while enclosing all open wires with heat shrink tubing or equivalent. With a good wiring job (unlike mine) the cables all route through perfectly. A set of M3 screws help to keep the two pieces in place, despite being sturdy enough without them anyways. 

I also included the pictures of my brainstorms and first design concepts.


#define trigPin 12 #define echoPin 11 //the led is to test the circuit, DOESN'T need to be in the final circuit #define led 8   #define buzzer 3

int sound = 1000 ;

void setup() {   Serial.begin (9600);   pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   pinMode(led, OUTPUT);

  pinMode(buzzer, OUTPUT);   }

void loop() {   long duration, distance;   digitalWrite(trigPin, LOW);    delayMicroseconds(2);   digitalWrite(trigPin, HIGH);   delayMicroseconds(10);   digitalWrite(trigPin, LOW);   duration = pulseIn(echoPin, HIGH);   distance = (duration/2) / 29.1;   //change the value of distance according to when you want the buzzer to buzz   if (distance <= 50) {     digitalWrite(led, HIGH);     sound = 1000;     digitalWrite(led, HIGH);   }

    if (distance > 50 || distance <= 0){     Serial.println("Out of range");     noTone(buzzer);     digitalWrite(led, LOW);     }   else {     Serial.print(distance);     Serial.println(" cm");     tone(buzzer, sound);       }   delay(500); }


All 3D printed parts were designed in Fusion 360. Upon request the Fusion files may be released.

*The name Brady comes from braille :D

Design Files

File Size

114 KB
130 KB
67 KB


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now