The Smart Stick for the Blind
Problem: Helping visually impaired people safely navigate their surroundings and detect obstacles.
NAME:
Xivel Waqas
SCHOOL:
Turtle Rock Elementary
TEACHER:�Ms. Angel
Abstract
This project focuses on creating a smart stick that helps people detect nearby obstacles using technology. The smart stick uses an ultrasonic sensor to measure distance and a vibration motor to alert the user when an object is close. A servo motor helps the sensor scan a wider area in front of the user. The device was built using an Arduino controller and simple electronic components. It was tested with participants of different ages during supervised walking trials. The results showed that the smart stick could reliably detect obstacles within a set distance and provide clear vibration feedback. Users were able to notice the alerts easily and felt more aware of their surroundings.This project shows that simple and affordable technology can be used to improve safety and accessibility. The results support the idea that vibration based feedback and ultrasonic sensing can help people navigate more safely. Future research could involve testing the device in outdoor and crowded environments. Additional improvements may include adjusting vibration strength, increasing detection range, or adding more sensors to improve accuracy and usability.
Research
Before building my project, I researched how ultrasonic sensors and mobility aids for the blind work. Visually impaired people often use canes to detect obstacles, but regular canes only sense objects when they touch them. I learned that ultrasonic sensors could measure distance using sound waves that bounce off objects, like how bats use echolocation. These sensors can detect how far away something is by timing how long it takes for the sound wave to return. I also researched how Arduino microcontrollers can process data from sensors and control output devices like motors or buzzers. By combining an ultrasonic sensor with an Arduino and a vibration motor, it’s possible to create a smart stick that “feels” distance changes and warns the user through vibration patterns. The main criteria for my project were that the stick needed to detect obstacles accurately from at least 10 cm to 3 meters away, give clear feedback (vibrations that change speed with distance), and to be lightweight, low-cost, and easy to hold. The main constraints were limited battery power, sensor range, and Arduino memory space.
Engineering Prototype or Model
Arduino Uno
Ultrasonic Sensor
Servo Motor
Vibration Motor
Feedback
Materials
Apparatus
Key Connections
Assemble Components
Upload & Test Code
Controlled Walking Trials
Record Distance Detection & Feedback Response
Procedures
Our Smart Stick testing showed interesting results. The ultrasonic sensor detected objects from 2 cm to 200 cm away. However, readings were not always perfect. Sometimes the sensor gave weird numbers like 500 cm, so we added error checking to ignore bad readings.
During servo motor tests, we discovered that without pausing after moving, distance measurements were inconsistent. When we added a 0.08 second pause, readings became accurate. This pause lets everything stop shaking before measuring.
The vibration motor worked great for alerting users. We tested different pulse patterns and found 0.2 seconds on, and 0.3 seconds off felt comfortable. When we set the threshold at 30 cm, the motor vibrated whenever objects got too close. The user may set the threshold to another number within the ultrasonic sensor’s detection range.
We noticed some problems. The sensor got confused by soft materials like curtains because sound waves do not bounce back well. Shiny surfaces and glass caused issues because they reflected sound in weird directions. Metal objects worked best with clear reflections.
Our live polar plot showed the scanning pattern, updating in real time as the servo swept. This helped us see exactly where obstacles were located around the stick.
Initial Testing & Results - Data/Observations
After retesting the revised prototype, the smart stick showed smoother and more stable sensor scanning. The vibration motor activated more consistently when obstacles were detected within the set distance. Servo adjustments helped reduce missed detections during movement. Obstacle detection results were similar across repeated trials, showing improved reliability. Users reported that the device felt easier and more comfortable to use during walking tests.
Retesting & Results - Data/Observations
95%
Success Rate
✔
✔
✔
Successful Obstacle Detection
Reliable Performance
Design Goals Met
Conclusion/Results Discussion
In conclusion, this project demonstrated that a smart stick using ultrasonic sensing and vibration feedback can help users detect nearby obstacles more effectively. Potential applications include assisting visually impaired individuals during indoor navigation, improving safety in unfamiliar environments, and serving as a low-cost assistive device.
The significance of this accomplishment lies in showing that simple and affordable electronics can be used to solve real world accessibility problems. This project also raised new questions about how the device would perform outdoors, in crowded spaces, or on uneven surfaces.
Future research could focus on improving detection range, testing in real world environments, adding adjustable feedback levels, and exploring additional sensors to enhance reliability and usability.
Application/Future Research
This project helped me understand how engineering can be used to solve real problems and help people in meaningful ways. I learned how to design, build, and test a device using electronics, coding, and problem-solving skills. Working on the smart stick taught me the importance of testing, making improvements, and listening to user feedback. I also learned that even small design changes can make a big difference in how a device works.
The smart stick can be applied in everyday life by helping visually impaired individuals navigate safely and confidently. It shows how technology can support independence without being complicated or expensive. This project also made me more interested in assistive technology and engineering. In the future, I would like to explore ways to improve the design and test it in more environments. Overall, this experience showed me that science and engineering can create solutions that truly make a positive impact.
References Cited
Logbook Image #1
09/30/2025
Logbook Image #2
10/02/2025
Performance Expectations
Making the Ultrasonic Sensor Work Better with the Servo Motor
Keeping the Error Rate Low
Making the User Experience Better
Logbook Image #3
10/07/2025
Prototype Concept Diagram
MATLAB Code
clear all;
%% Integrated Servo + Ultrasonic + Pulsed Vibration Motor + Live Plot
port = 'COM3'; % change as needed
a = arduino(port, 'Uno', 'Libraries', {'Ultrasonic','Servo'});
%% Devices
servo_motor = servo(a, 'D9'); % Servo on D9
sensor = ultrasonic(a, 'D12', 'D13'); % Ultrasonic Trig/Echo
motorPin = 'D6'; % Vibration motor control
configurePin(a, motorPin, 'DigitalOutput');
%% Parameters
angles = 0:180; % sweep angles
numAngles = numel(angles);
distances = nan(1, numAngles);
threshold = 30; % cm, triggers motor
pulseDuration = 0.2; % seconds motor stays ON
pauseBetweenPulses = 0.3; % seconds OFF between pulses
servoPause = 0.08; % pause after moving servo
%% Live polar plot setup
figure('Name','Ultrasonic Radar with Pulsed Vibration','NumberTitle','off');
h = polarplot(deg2rad(angles), zeros(size(angles)),'LineWidth',2);
rlim([0 200]);
thetalim([0 180]);
title('Live Ultrasonic Radar');
grid on;
drawnow;
%% Continuous sweep loop
direction = 1; % 1 = forward, -1 = backward
disp('Scanning... Press Ctrl+C or close figure to stop');
while ishandle(h)
if direction == 1
scanAngles = 0:10:180;
Else
scanAngles = 180:-10:0;
end
for i = 1:numel(scanAngles)
angle = scanAngles(i);
theta = angle / 180; % servo position 0-1
writePosition(servo_motor, theta);
pause(servoPause);
% Read distance (average of 2 readings)
d1 = readDistance(sensor) * 100;
pause(0.05);
d2 = readDistance(sensor) * 100;
dist = mean([d1 d2]);
distances(angle+1) = dist;
% Update live polar plot
set(h,'YData',distances);
drawnow limitrate;
% Pulsed vibration motor
if dist < threshold
writeDigitalPin(a, motorPin, 1); % motor ON
pause(pulseDuration);
writeDigitalPin(a, motorPin, 0); % motor OFF
pause(pauseBetweenPulses);
end
if ~ishandle(h)
break; % stop if figure closed
end
end
direction = -direction; % reverse sweep
end
disp(' Scanning stopped by user’);
SMall codes to check components: test servo
port = 'COM3'; % your port
a = arduino(port, 'Uno', 'Libraries', 'Servo');
s = servo(a, 'D9'); % use D9, not D3
disp('Moving servo...');
for pos = 0:0.1:1
writePosition(s, pos);
pause(0.2);
end
for pos = 1:-0.1:0
writePosition(s, pos);
pause(0.2);
end
disp('Done.');�test vibration motor:
clear%% Arduino Vibration Motor Test
port = 'COM3'; % change to your COM port
a = arduino(port, 'Uno');
% Set digital pin for motor
motorPin = 'D6'; % connect motor control here
configurePin(a, motorPin, 'DigitalOutput');
disp('Vibration motor test starting...');
% Turn motor on for 2 seconds
writeDigitalPin(a, motorPin, 1);
disp('Motor ON');
pause(2);
% Turn motor off for 2 seconds
writeDigitalPin(a, motorPin, 0);
disp('Motor OFF');
pause(2);
% Optional: repeat 3 times
for i = 1:3
writeDigitalPin(a, motorPin, 1);
pause(0.5);
writeDigitalPin(a, motorPin, 0);
pause(0.5);
end
disp('Test complete!');
11/13/2025
Observations: Quantitative & Qualitative
Observations: During testing, the smart stick consistently detected obstacles placed in front of the user. The vibration motor activated whenever an object was within the set distance, and the servo helped the sensor scan a wider area. All participants were able to notice the vibration alerts while walking.
Quantitative Analysis: The ultrasonic sensor detected obstacles reliably within approximately 30 centimeters. Multiple trials showed consistent activation of the vibration motor when objects were close and no activation when objects were farther away. Detection results were similar across all subjects and trials, showing stable device performance.
Qualitative Analysis: Users reported that the vibration feedback was easy to feel and understand. The scanning motion made the device feel more responsive and helpful. Participants felt more aware of nearby obstacles and more confident while walking.
Conclusion:The results show that the smart stick successfully detected obstacles and alerted users using vibration feedback. The experiment supports the idea that ultrasonic sensing combined with haptic feedback can improve obstacle awareness. This demonstrates the value of simple assistive technology for improving safety during navigation.