UltraSonic Enhanced Navigation System for the Visually Impaired

by Likhako1217 in Circuits > Arduino

139 Views, 1 Favorites, 0 Comments

UltraSonic Enhanced Navigation System for the Visually Impaired

IMG20220212195402.jpg
usens_bb.jpg

Hi, good day, I just want to share simple schematics and Arduino Sketch that I came up with as part of partial requirements for my Bachelor's Thesis in Industrial Design way back from 2013 :) It is basically an Ultrasonic ranger using HC SR04 ultrasonic sensor, an Arduino clone (Gizduino) for processing of ultrasonic data, a vibration motor as output. The idea is that as the wearer get's nearer to an obstacle the vibration motor outputs more vibration, thus helping the wearer (visually impaired) in navigation (walking) from the intensity of the vibration output. I hope it can help a student, researcher, a hobbyist or an entrepreneur or anyone :) God Bless :)

Supplies

usens_bb.jpg
5 volts regulator.png
9 volts bat.png
ultrasonic sesnor.png
usb.png
vib motor.png

tools needed:

1 HC-sr04 ultrasonic sensor

1 Arduino of any variant (mine is a clone called Gizduino)

1 voltage regulator ( for sufficient electric current)

I switch

1 Vibration Motor

1 9 volts battery

1 female usb port

female to male pins

Basic Schematics

usens_bb.jpg
Usens pics.png

Pin assignments:

Ultrasonic Sensor (HC_sr04) to Arduino

  • Vcc to 5v
  • Gnd to Gnd
  • Trig to Pin 2 (of Arduino) (for my Gizduino I connected it to pin 12)
  • Echo to Pin 1 (for my Gizduino I connected it to pin 11)

Vibration Motor

  • Vibration Motor to GND and Motorpin 3 (for my Gizduino I connected to GND and Motorpin 10)


Soldering

IMG20220212195402.jpg
usens_bb.jpg
  1. Soldering Battery Cap wires to Switch (power to power- the on switch) and GND to GND pin of Voltage Regulator
  2. Soldering Switch (middle pin of Switch) to Input pin of Voltage Regulator
  3. Soldering Voltage regulator to wires of Female USB (output pin of voltage regulator to power wire of female USB)
  4. Soldering Voltage Regulator"s GND pin to GND wire of female USB

The Arduino Code for This Project

//*USENS-GCA-CFA-ID-UPD*//

//built upon learnings from studying codes from:


https://gist.github.com/conoro/6839714

https://gist.github.com/flakas/3294829


Original code for Ping))) example was created by David A. Mellis

Adapted for HC-SR04 by Tautvidas Sipavicius

 

This example code is in the public domain.

*//

// and from codes from 'coolmumbai' from this sites:

https://forum.arduino.cc/t/hc-sr04-ultrasonic-distance-ranger-module-programming/98328

https://forum.arduino.cc/t/anomaly-in-obstacle-detection-by-hc-sr04-with-arduino/98341

//


#include <NewPing.h>


const int trigger=12;

const int echo=11;

const int motorPin=10;

long int duration, inches, cm;


void setup()

{

 pinMode(trigger, OUTPUT);

 pinMode (echo, INPUT);

 pinMode(motorPin, OUTPUT);

  

}

void loop()

{

 long duration, inches, cm;

  

 pinMode (trigger, OUTPUT);

  

 digitalWrite(trigger, LOW);

 delayMicroseconds (2);

 digitalWrite(trigger,HIGH);

 delayMicroseconds(5);

 digitalWrite(trigger,LOW);

  

 pinMode (echo, INPUT);

  

 duration = pulseIn(echo,HIGH);

 inches = microsecondsToInches (duration);

 cm = microsecondsToCentimeters(duration);

  

 checkRange ();

 delay (100);

}


void checkRange()

{

  if (cm < 305 && cm > 183)

{

 analogWrite(motorPin, 100);

}

else if (cm < 183 && cm > 92)

{

 analogWrite(motorPin, 180);

}

else if (cm < 92 && cm > 31)

{

 analogWrite(motorPin, 255);

}

else

{

 analogWrite (motorPin, 0);

}

 delay (100);

}


long microsecondsToInches (long microseconds)

{

 return microseconds/74/2;

}


long microsecondsToCentimeters (long microseconds)

{

 return microseconds/29/2;

  

delay (100);

}


// Sketch by Gabriel Arejola //

// CFA - Industrial Design - UP Diliman //

// Senior Thesis: UltraSonic Enhanced Navigation System //

// March 2013 //

// A.Y. 2012 - 2013 //