The Eye Walking Detector
- dov azogui
- 11 oct. 2023
- 3 min de lecture

Pioneering Ultrasonic Technology for the Visually Impaired
Navigating the world as a visually impaired individual presents unique challenges. Traditional aids like white canes and assistant dogs, while helpful, have their limitations. Recognizing this, our team embarked on a mission to design a more advanced and reliable solution: The Eye Walking Detector.
Technical Highlights:
Ultrasonic Sensing: At the heart of our device is an ultrasonic sensor that leverages echo reflection properties. This technology detects obstacles, especially suspending objects, that traditional aids might miss. The sensor's placement on eye goggles ensures detection at head level, a critical area often overlooked by canes.
Intuitive Feedback Mechanism: The device is equipped with a buzzer that emits beeping sounds of varying frequencies based on the proximity of obstacles. The closer an object, the higher the frequency, allowing users to gauge distances audibly.
Optimized Reaction Time: Our research indicated that the average reaction time for a blind person to sound is 210.24ms. Factoring in the average walking speed, we calibrated our device to start alerting users at a distance of 76cm from obstacles, ensuring they have ample time to react.
Electronics & Power Management: The device incorporates two 10kΩ resistors to manage the operating voltage. Given that the adafruit circuit playground express outputs 3.3V, our design halves this voltage to power the ultrasonic distance sensor, which requires 2.5V.
3D Printing & Wearable Design: The final prototype integrates the ultrasonic sensor on eye goggles. Both the battery and the adafruit circuit playground express are housed in a 3D-printed case, attached to the goggles via an elastic headband. This design ensures user comfort and ease of use.
Coding & Algorithm: The device's functionality is driven by an Arduino code, which dictates how the sensor interacts with the buzzer based on detected distances. The code is designed to minimize false positives and negatives, ensuring reliable feedback for users.
Code flowchart:

Arduino Code in C++
#define trigPin 3
#define echoPin 2
#define minDist 75
#define halfminDist 30
#define maxDist 300
#include <Adafruit_CircuitPlayground.h>//speaker
float duration, distance;//float means can have decimal points, duration for signal to get back from the sensor, distance is final result in cm
void setup(){
Serial.begin (9600);//set up serial monitor
pinMode(trigPin, OUTPUT);//send pulses out from flora to the ultrasonic
pinMode(echoPin, INPUT);//input back from the ultrasonic
//CircuitPlayground.begin();//speaker
}
void loop(){
//commanding a pulse to the HC-SR04 trigger pin (10microsecond pulse done manually)
digitalWrite(trigPin,LOW);
delayMicroseconds(2);//start with 0 pulse (no interference with the pulse we're sending)
digitalWrite(trigPin, HIGH);//send a pulse
delayMicroseconds(10); //of 10ms
digitalWrite(trigPin, LOW); //go low again, prepare for the next pulse
This section is about sending and receiving ultrasound pulses. The distance is displayed on the monitor when duration is converted to distance using the equation as shown in the code. duration=pulseIn(echoPin, HIGH);//measure duration of a pulse
distance=(duration*0.0343)/2;//speed of sound, divide by 2 because wait for signal to send out and bounce back
Serial.print("Distance=");//sending results to serial monitor
if(halfminDist<distance && distance<minDist){
Serial.println(distance);//for debugging purposes
CircuitPlayground.playTone(1568, 100);//G6 frequency
delay (50);
}else if (distance<halfminDist){
Serial.println(distance);
CircuitPlayground.playTone(2637, 100);//2637 is E7 frequency
delay (30);
This section is about different frequencies produced relative to the obstacle distance, displaying the distance on the monitor }else{
Serial.println(distance);
delay(500);//delay so text doesn't scroll too fast on serial monitor
}
delay(500);//larger the number, slower the scroll
}






