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.
- 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
-
-
-
-
-
-
3D printed Enclosure Backplate for Riden RD60xx power supplies
153 1 1 -
-