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
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 :)
Downloads
Supplies
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
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
- Soldering Battery Cap wires to Switch (power to power- the on switch) and GND to GND pin of Voltage Regulator
- Soldering Switch (middle pin of Switch) to Input pin of Voltage Regulator
- Soldering Voltage regulator to wires of Female USB (output pin of voltage regulator to power wire of female USB)
- 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 //