Blind walking device
#include <SharpIR.h>
#define IR_PIN A1
#define MODEL 1080
SharpIR SharpIR(IR_PIN, MODEL);
int buzzer=4;
int vibrator=3;
int SW1=5;
int SW2=6;
int SW3=7;
int timer;
#define echoPin 9 // Echo Pin
#define trigPin 8 // Trigger Pin
long duration, dis1; // Duration used to calculate distance
int dis; //for sharp
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
//pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
pinMode(buzzer, OUTPUT);
pinMode(vibrator, OUTPUT);
pinMode(SW1,INPUT_PULLUP);
pinMode(SW2,INPUT_PULLUP);
pinMode(SW3,INPUT_PULLUP);
pinMode(buzzer, OUTPUT);
pinMode(vibrator, OUTPUT);
delay(20);
digitalWrite(buzzer,LOW);
delay(100);
digitalWrite(buzzer,HIGH);
delay(150);
digitalWrite(buzzer,LOW);
delay(100);
digitalWrite(buzzer,HIGH);
delay(150);
digitalWrite(buzzer,LOW);
digitalWrite(vibrator,LOW);
}
void loop()
{
if(digitalRead(SW1)==LOW)
{ delay(50);
if(digitalRead(SW1)==LOW)
{
digitalWrite(buzzer,HIGH);
delay(50);
digitalWrite(buzzer,LOW);
delay(50);
while(digitalRead(SW1)==LOW)
{
Dist1();
}
}
}
else if(digitalRead(SW2)==LOW)
{
digitalWrite(buzzer,HIGH);
delay(50);
digitalWrite(buzzer,LOW);
delay(50);
while(digitalRead(SW2)==LOW)
{
Dist2();
}
delay(100);
}
else if(digitalRead(SW3)==LOW)
{
digitalWrite(buzzer,HIGH);
delay(50);
digitalWrite(buzzer,LOW);
delay(50);
while(digitalRead(SW3)==LOW)
{
Dist3();
}
delay(100);
}
}
void Dist1()
{
dis = SharpIR.distance();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
dis1 = duration/58.2; // in cm
if( dis<=30)
{
digitalWrite(vibrator, HIGH);
delay(1*dis);
digitalWrite(vibrator, LOW);
delay(1*dis);
}
else if((dis1>=30) && (dis1<=60))
{
digitalWrite(vibrator, HIGH);
delay(1*dis1);
digitalWrite(vibrator, LOW);
delay(1*dis1);
}
else
{
digitalWrite(vibrator, LOW);
delay(20);
}
}
/****************************************************END FUNCTION1*/
void Dist2()
{
dis = SharpIR.distance();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
dis1 = duration/58.2; // in cm
if(dis<=30)
{
digitalWrite(vibrator, HIGH);
delay(1*dis);
digitalWrite(vibrator, LOW);
delay(1*dis);
}
else if((dis1>=30) && (dis1<=150))
{
digitalWrite(vibrator, HIGH);
delay(1*dis1);
digitalWrite(vibrator, LOW);
delay(1*dis1);
}
else
{
digitalWrite(vibrator, LOW);
delay(20);
}
}
/****************************************************END FUNCTION2*/
void Dist3()
{
dis = SharpIR.distance();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
dis1 = duration/58.2; // in cm
if(dis<=30)
{
digitalWrite(vibrator, HIGH);
delay(1*dis);
digitalWrite(vibrator, LOW);
delay(1*dis);
}
else if((dis1>=30) && (dis1<=350))
{
digitalWrite(vibrator, HIGH);
delay(1*dis1);
digitalWrite(vibrator, LOW);
delay(1*dis1);
}
else
{
digitalWrite(vibrator, LOW);
delay(20);
}
}
/****************************************************END FUNCTION2*/
### DESCRIPTION
A blind walking is a biomedical device designed to help visually impaired individuals to detect obstacles within their sarrounding.
The device uses two sets of proximity sensors one for close range and the other for slightly far away obstacles. (See BOM attached for details on Components). I have also attached the links below on the use of the two sensors;
A coin vibrator is included and it vibrates at different frequencies depending on how far one is from an obstacle with more vibrations being realized at close proximity.
The device is meant to help the visually impaired people move around freely especially indoors without necessarily depending on the guidance from other people as is the case most of the time.
This is basically the first version of this prototype. Currently working on a more updated version of the same.
For details you can reach me on: aineahomuyonga@gmail.com
### TECHNICAL DETAILS / COMPONENTS
See BOM for details
### LEARN / TOPIC / BUILD INSTRUCTIONS
I designed the circuit using Autodesk eagle 8.4. The attached zipped contains both the .sch and .brd file for the project. Feel free to adjust the design to suit your application or production process.
I printed the first version locally. You can google search ' home made PCB' for details.
The device is hand soldered.
The sketch is arduino based. I uploaded using a USBtiny programmer. The details about the programmer are avaialble online.
Blind walking device
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW- Comments(1)
- Likes(3)
-
Aineah Omuyonga
Aug 28,2019
-
ATMakers
Dec 15,2018
-
Engineer
Nov 29,2018
- 2 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
10design
-
8usability
-
10creativity
-
10content
-
2design
-
3usability
-
4creativity
-
5content
More by Aineah Omuyonga
-
ARPS-2 – Arduino-Compatible Robot Project Shield for Arduino UNO
112 0 0 -
A Compact Charging Breakout Board For Waveshare ESP32-C3
595 3 4 -
AI-driven LoRa & LLM-enabled Kiosk & Food Delivery System
585 2 0 -
-
-
-
ESP32-C3 BLE Keyboard - Battery Powered with USB-C Charging
796 0 1 -
-
mammoth-3D SLM Voron Toolhead – Manual Drill & Tap Edition
726 0 1 -
-
AEL-2011 Power Supply Module
1430 0 2
Bottom Soldermask
Top Soldermask
Bottom Copper
Top Silkscreen
Top Copper
Bottom
Top







