Using an Ultrasonic Sensor to Create a Haptic Guide

Haptics: Utilizing the Sense of Touch

Creating a Haptic Device to Aid the Visually Impaired

Implementing an Ultrasonic Sensor and Vibration Motors — Conception

Using an Ultrasonic Sensor to Calculate Distance

Distance = (time delay ÷ 2) x speed of sound (cm/s)

Distinguishing Distance with Vibrations

  • One quick vibration: No object in the way. Clear for > 500 cm (16.4 ft)
  • Two vibrations: An object is 300 - 500 cm away (9.84 to 16.4 ft)
  • Three vibrations: An object is 150 - 300 cm away (4.92 to 9.84 ft)
  • Rapid vibrations: An object is < 150 cm away (2.95 ft)

Implementing an Ultrasonic Sensor and Vibration Motors — Building Hardware

Credit: https://youtu.be/6F1B_N6LuKw

Notes and Explanations:

  • The ultrasonic sensor needs 5 volts of energy in order to create a sound wave. This is why the 5 volts of the sensor (the section of the sensor that says VCC) are connected to the Arduino board’s 5-volt output.
  • Earlier I mentioned that an ultrasonic sensor has a transmitter and a receiver. These are marked as trig (trigger) and echo on the sensor. (The trigger is the transmitter and the echo is the receiver.) These can be connected to any digital output pin on the Arduino board. The same goes for the vibration motors. (In my case I used pin number 3 for the motors.) This is because all the digital output pins provide the same amount of energy to other circuits when used.
  • GND means ground. The section that says “ground” on the sensor must always be connected to where it says “ground” on the Arduino.
  • Remember: You connect sections of the Arduino to the sensor using a jumper wire. As shown in the image above, you place the wires in the section of the breadboard that is next to the spot in the Arduino that you need to use.

Implementing an Ultrasonic Sensor and Vibration Motors — Programming

Programming the Sensor

A More In-Depth Explanation of the Program for the Sensor

Programming the Vibration Motors

A More In-Depth Explanation of the Program for the Vibration Motors

Things to Consider Later On

  • On average, a person walks 134 cm per second. So to get to an object 500 cm away it would only take a little over 3 seconds. In reality, this is too close of a range to really help prevent accidents, but for the sake of this project, I just stuck with the 500 cm. In the future, I would work on extending the range of the sensor so that it could sense objects much farther away.
  • To be way more effective, the sensors would need to be able to calculate the distances of objects that are all around the user. This would mean I would have to find a way to add more sensors to the device.
  • In crowded areas, when there are many people, I wouldn’t want the device to continuously go off. Instead, I think I would edit the program so that if there are obstacles that stay within a certain range for a period of time it wouldn’t continue to vibrate.
  • While the Arduino Nano and the sensor are small, I would need to find a way to decrease the size even more so that it could be a comfortable wearable that doesn’t become another accessory.

Looking Towards the Future

Hold up… Before you leave:

--

--

--

Innovator at The Knowledge Society (TKS)

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Like Asking for Concierge Service at Costco

Best Magnetic Key Holders

Is 5G Ready for Deployment in the Real World?

TechNY Daily

7 day challenge with an iPad 2022

A whole new experience at Urban Outfitters’ app

5 Tips That Will Make You Guru In System.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Adeola Ojuade

Adeola Ojuade

Innovator at The Knowledge Society (TKS)

More from Medium

Arduino Morse Encoder

De Bruijn sequences Part1 — application to perform phase synchronisation for signal processing.

Rainbow Sunset

Transferring Windows Server roles to a new server, Part II FSMO