Project tutorial
Blind Stick Navigator

Blind Stick Navigator © LGPL

A blind assist tool that provide obstacles notification and GPS location to the guardian / authority via SMS.

  • 12,950 views
  • 8 comments
  • 34 respects

Components and supplies

Screen shot 2019 03 20 at 2 38 27 pm fqndazqcx1
1Sheeld
×1
A000066 iso both
Arduino UNO & Genuino UNO
×1
1434509556 android phone color
Android device
×1
Relay (generic)
×1
Toggle switch
×1
ultrasonic sensor hc-sr04
×1
DC motor (generic)
×1
11026 02
Jumper wires (generic)
×1
Tens70
9V battery (generic)
×1

Apps and online services

Ide web
Arduino IDE
1sheeld phone apps

About this project

The story start when I saw a blind people trying hard to walk pass through obstacles like road hole, stairs, etc. with their traditional blind cane. It really trigger me to try build this prototype even though I'm not expert enough on handling electronic devices. By using different kind of sources in the internet, I manage to complete it last year during my final year project. Besides that, I also enhance the prototype by adding GPS location. Thanks to 1Sheeld, it really helps me to finish this prototype within 6 month.

Step 1

To power on the Blind Stick Navigator, it need to be power using external power. I'm using 9v battery as an introduction on how it capable off. From what I've had seen, my prototype had disadvantage to provide long term power usage. Thus, it need an enhancement like solar panel/power somehow.

Step 2

After powering it on using the battery that connect to the USB power adapter at microcontroller Arduino Uno, the guardian need to always let the Bluetooth connection (Android smartphone) connecting to the microcontroller. Then, you need to open the 1Sheeld apps that already installed in the smartphone and enable the GPS and SMS features.

**Yeah I know blind people can't see and access the smartphone, but at least if I or you manage to do the modification at the Android OS smartphone, it will make a lot of easier. I've already try my best to find better smartphone that provide braille button, but I failed. Thus, I hope in future, there will be an upgrade for my prototype.

Step 3

Based on the block diagram above, as you can see, this is how the connection between devices happen. After these two being power on, the blind people can start using the Blind Stick Navigator. Based on the observation on the traditional white cane, the blind people will always swing around the blind stick to get a confirmation on their surrounding. But, with Blind Stick Navigator, it will help them to get vibrate notification on the obstacle at the middle and lower sight. The obstacle detected using ultrasonic sensor HC-SR04. It been attached at upper of the stick and bottom of the stick. I'm using PVC pipe because, I can put the vibrate DC motor inside the PVC pipe. The vibration mode can be alter in the code given using Arduino IDE software.

Step 4

Besides that, the Blind Stick Navigator can provide longitude and latitude of the blind people location. This is because, the smartphone act as provider and provide GPS location for this process. The toggle switch is add-up to make the blind people easier to click the emergency button to inform the recipient that he/she already lost or in danger. By clicking it one or couple of times, the smartphone will sent a message informing that they need help and please search him based on the GPS and Google Map link. The number of the recipient can be set whether the message want to be sent to the authority or the guardian of the blind people only. The length of the stick is adjustable according to height of the user. For this prototype, I'm using specific length and the length of the detection can be alter in the code.

Step 5

Last but not least, I hope that my prototype is used worldwide or be commercialize thus helps blind people during their journey/life. Moreover, I'm really sorry about my grammar because my English is not quite good. I don't know to describe more in this post. All of the information I already compiled in the attachment. You can refer more about this project based on the link I provided below.

Document of the Project :

Poster of the Project :

Video of the Project :

Code

OneSheeldBlindStickNavigatorC/C++
#define CUSTOM_SETTINGS
#define INCLUDE_GPS_SHIELD
#define INCLUDE_SMS_SHIELD

/* Include 1Sheeld library.*/
#include <OneSheeld.h>
#include <string.h>


#define trigPinL 4
#define echoPinL 5
#define trigPinH 6
#define echoPinH 7
#define Vib1  12
#define Vib2  13
#define SW 8


/* Define a boolean flag. */
boolean isInRange = false;
float lat;
float lon;
String PhoneNumber = "0134087286";
String Message;
String Message1;
String Message2;
char latitude[10];
char longitude[10];


void setup() 
{
  pinMode(trigPinL, OUTPUT);
  pinMode(echoPinL, INPUT);
  pinMode(trigPinH, OUTPUT);
  pinMode(echoPinH, INPUT);
  pinMode(Vib1, OUTPUT);
  pinMode(Vib2, OUTPUT);
  pinMode(SW, INPUT);
  /* Start communication.*/
  OneSheeld.begin();
 // Serial.begin(9600);
}

void loop()
{
  
  long durationL, distanceL, durationH, distanceH, MixDist;
  digitalWrite(trigPinL, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPinL, HIGH);
 
 
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPinL, LOW);

  durationL = pulseIn(echoPinL, HIGH);

  distanceL = (durationL/2) / 29.1;
  
  
  digitalWrite(trigPinH, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPinH, HIGH);
 
 
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPinH, LOW);

  durationH = pulseIn(echoPinH, HIGH);

  distanceH = (durationH/2) / 29.1;

  // Serial.println(distanceL);
  // Serial.println(distanceH);
   
  // delay(1000);
  
  if (distanceL > 40){
    digitalWrite(Vib1,HIGH);
  }
  if (distanceL < 40){
    digitalWrite(Vib1,LOW);
  }
  if (distanceH < 100){
    digitalWrite(Vib1,HIGH);
    delay(200);
    digitalWrite(Vib1,LOW);
    delay(200);
  }

   /* Always check if the smartphone's GPS and a given longitude and latitude are in a range of 100 meters. */
  //if(GPS.isInRange(30.0831008,31.3242943,100))
 // {
  //  if(!isInRange)
  //  {
      /* Send SMS. */
      lat = GPS.getLatitude();
      lon = GPS.getLongitude();
      Message1 = String(lat,8);
      Message2 = String(lon,8);
      
      if (digitalRead(SW) == 0){
     
      Message = "I need Help! I'm at latitude: " + Message1 + " and longitude: " + Message2;
      Message = "Google Maps - https://www.google.co.in/maps/place/" + Message1 + "," + Message2;
      SMS.send(PhoneNumber,Message);
      
      
      delay(3000);
      }
 //     isInRange = true;
 //   }
    
 // }
 // else 
 // {
 //   if(isInRange)
 //   {
      /* Send SMS. */ 
 //     SMS.send("+601123413946","Smartphone is not In Range.");
 //     isInRange = false;
 //   }
    
 // }
  
  delay(1000);
}

Schematics

Fritzing-OneSheeldBLINDSTICKNAVIGATOR
OneSheeldTONGKAT.fzz

Comments

Similar projects you might like

Smart gloves for the blind

Project tutorial by soumil shah

  • 5,430 views
  • 4 comments
  • 9 respects

Smart Blind Assistant

Project in progress by Chandru S

  • 2,725 views
  • 1 comment
  • 4 respects

Control Music Volume and Ledbar Using Slider of 1Sheeld

Project tutorial by ahmed ismail

  • 1,470 views
  • 2 comments
  • 11 respects

Color Detector for Blind People

Project tutorial by Ahmed Elsagaan

  • 2,016 views
  • 0 comments
  • 4 respects

Smart Selfie Stick

Project tutorial by yasser saber

  • 2,010 views
  • 0 comments
  • 7 respects

How can you Report Thief with a Photo on Twitter by Arduino

Project tutorial by ahmed ismail

  • 1,650 views
  • 0 comments
  • 8 respects
Add projectSign up / Login