Smart Walking Stick
Imagine you need assitance walking and are visually impaired. Many elderly people face a similar problem when they try to walk, and regardless where they are, they have an extreme risk of collision with another individual or object. This project, the Smart Walking Stick ,solves that problem, by implementing haptic feedback and ultrasonic sensors to alert the user, all in one everyday walking stick. You should comment out all portions of your portfolio that you have not completed yet, as well as any instructions:
<!--- This is an HTML comment in Markdown -->
<!--- Anything between these symbols will not render on the published site -->
Engineer | School | Area of Interest | Grade |
---|---|---|---|
Ayan R. | Sacred Heart Schools Atherton | Electrical Engineering | Rising 7th Grader |
Replace the BlueStamp logo below with an image of yourself and your completed project. Follow the guide here if you need help.
Final Milestone
Don’t forget to replace the text below with the embedding for your milestone video. Go to Youtube, click Share -> Embed, and copy and paste the code to replace what’s below.
For your final milestone, explain the outcome of your project. Key details to include are: For my final milestone, I put all of the electrical componenents into one intracately designed 3d printed box, with space for the three main modules: the ultrasonic sensor, the buzzer, and the vibrator. I then attached that box to a walking stick, hence, finishing the basic Smart Walking Stick. - What your biggest challenges and triumphs were at BSE
- A summary of key topics you learned about
- What you hope to learn in the future after everything you’ve learned at BSE
Second Milestone
Changes:
For my second milestone I added a vibration motor. I wired it such that when an object is detected with range of the ultrasonic sensor, the motor vibrates, which can help alert users who are hearing-impaired, when there is an object ahead.
The Vibration Motor:
A vibration motor works because motor has a small metal weight that looks like a half-circle or has a chunk cut out of it. When this lopsided weight spins around really fast, it creates vibrations.
Schematics:
Surprises and Challenges:
Throughout this project, I was surprised with how easy Arduino was as I was expecting it to be significantly harder than it is. On this milestone, I faced a challenge with the vibration motor as it kept vibrating even when there was no obstacles ahead. I eventually realized it was a bug in the code.
Next Steps:
For my final milestone, I have to put all of the electrical components together into a box and attach that box to a walking stick I am also planning as a part of my 3rd milestone to create an app from which you can control.
First Milestone
My Project:
My project is the Smart Walking Stick. I am using an ultrasonic sensor, a buzzer, and a vibration motor. How my project works is when the ultrasonic sensor senses an object in front of it, it will use the piezzo buzzer and the vibration motor to alert the user by both beeping and vibrating.
Changes:
For my first milestone I coded an active buzzer and an ultrasonic sensor. I wired my system such that when the ultrasonic sensor senses an object within a certain range, the buzzer beeps, alerting the user that an object is in front of them. I also made it so that as an object moves closer to the ultrasonic sensor, the intensity of the beeping increases and as the object moves further away, the intensity of the beeping decreases.
The Ultrasonic Sensor:
An ultrasonic sensor works by sending ultrasonic soundwaves (sound waves with a frequency higher than the upper limit of human hearing) and measuring the time it takes for the soundwave to come back to it, calculating the distance of the nearest object.
The Active Piezzo Buzzer:
An active piezo buzzer functions by utilizing two main components, an oscillator and piezoelectric material. Piezoelectric material is special in a way such that it vibrates when it is fed electricity. The reason I was able to manipulate the beeps of the buzzer is because of the oscillator, which modifies the beeps piezo part of the buzzer sends out based on the code.
Schematics:
Challenges:
When building this, one major challenge I faced was that I accidentally switch the 5-volt and Ground wire connecting to the ultrasonic sensor, so the Arduino wouldn’t turn on. I eventually realized my mistake and fixed the problem.
Next Steps:
In the scope of my overall project, I plan to next add the vibration motor before finally assembling my walking stick and modififying it further.
Starter Project
For my starter project, I created and RGB Slider that changes its color when you move the slider. To build this, I soldered 3 sliders, an RGB LED, and a USB-C Port onto a premade RGB Slider board. The board already had connections in it so once I finished soldering, the device was completely functional.
Challenges:
When building this, I faced many difficulties. The biggest challenge I faced was when the device didn’t work. Later, I figured out that a special USB-C plug was required for it to work. For my next step, I plan to wire a basic functional system that beeps when an obstacle is detected within a set range.
Schematics
Code
#define trigPin 12
#define echoPin 13
#define motorPin1 9
#define motorPin2 10
#define buzzer 6
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
delay(600);
}
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;
if (distance < 100) {
Serial.print("OBSTACLE at ");
Serial.print(distance);
Serial.println("cm");
int beepInterval;
if (distance < 10) {
beepInterval = 50;
} else if (distance < 20) {
beepInterval = 150;
} else if (distance < 40) {
beepInterval = 300;
} else if (distance < 60) {
beepInterval = 500; //
} else {
beepInterval = 800;
}
tone(buzzer, 2000, 100);
delay(100);
noTone(buzzer);
delay(beepInterval);
if (distance < 30) {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
} else {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
} else {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
noTone(buzzer);
}
delay(50);
}
Bill of Materials
Here’s where you’ll list the parts in your project. To add more rows, just copy and paste the example rows below. Don’t forget to place the link of where to buy each component inside the quotation marks in the corresponding row after href =. Follow the guide here to learn how to customize this to your project needs.
Part | Note | Price | Link |
---|---|---|---|
Super Starter Kit Uno R3 Project | Used for the Arduino hardware | $44.99 | Link |
Offset Black Cane | Used to attach the Arduino to | $10.99 | Link |
Item Name | What the item is used for | $Price | Link |
Other Resources/Examples
One of the best parts about Github is that you can view how other people set up their own work. Here are some past BSE portfolios that are awesome examples. You can view how they set up their portfolio, and you can view their index.md files to understand how they implemented different portfolio components.
To watch the BSE tutorial on how to create a portfolio, click here.