Introduction

As mentioned in my "Motivation for the project" log entry, there are already several projects that measure distance to objects for blind people using Ultrasonic sensors, but as an experienced robotics engineer, I believe ultrasonic sensors are way too unreliable. Meanwhile, there are various university labs that have tackled the same problem using highly complex 3D camera systems with powerful computers, costing many thousands of dollars just in parts. But according to the World Health Organisation, Approximately 90% of visually impaired people live in developing countries. So I'm trying to build an extremely simple and cheap Infrared-based distance measuring device for the blind, that is both good enough for real use in the First World and cheap enough for the Third World.

Infrared can be used for many purposes, and when measuring the distance to an object by transmitting some IR light and detecting the amount of IR light that was reflected back, it's usually much more reliable than Ultrasonic sensors. The standard way to measure distances of 1 or 2 feet using Infrared is to use one of Sharp's GP2Y0 analog distance sensors, such as the GP2Y0A21YK at Sparkfun for $14. That's because these devices by Sharp are quite reliable & trusted, but also because there's no cheaper alternatives! The Sharp distance sensors are similar size & price as Ultrasonic sensors and have slow data rates, but they haven't changed in decades and don't seem to have any commercial competitors, so I decided to see if I could make a similar IR distance sensor using the ultra-low-cost & ultra-small components available today. I've built my own IR distance sensors for robots in the past, so I knew it was certainly possible, I just wasn't sure if it can be done really cheap and still achieve long range and good reliability. Most IR distance sensors are only designed for a few centimetres range, whereas I want atleast 50cm range in order to allow a blind person to detect objects in front of them. My suspicion was that if designed well, Infrared distance sensors can be noticeably smaller & faster than Ultrasonic sensors and also cheaper than even the cheapest Ultrasonic sensors on AliExpress!

Detecting distance to an object using Infrared

Glossary

First, let's quickly list the different parts of an Infrared ("IR") system, using your TV remote as an example. Your TV remote has an "IR emitter" LED that sends out a narrow beam of invisible IR light, and your TV has an "IR photo-sensitive receiver" that measures the amount of IR light shining into it.

Method of distance detection

As mentioned in my "Choice of Infrared distance detection method" log entry, rather than use more complex distance measuring techniques like Time-Of-Flight / LIDAR or Projected light, I decided to simply use reflected light intensity as a way to measure distance to the nearest object. And instead of using the standard Sharp analog IR sensor, I'll be making my own version that is much cheaper, faster, longer-range & smaller.

Choice of Infrared wavelength

All LEDs (including IR emitter LEDs) generate most of their light at a certain wavelength and not as much at other wavelengths, and all Photo-sensitive receivers are most sensitive to a certain wavelength not much at other wavelengths. So the IR emitter & receiver should have signal peaks at roughly the same wavelengths. IR emitter & receiver LEDs are available in different wavelengths, from almost-red (eg: 720nm) to high-wavelength Infrared (eg: 1500nm) but most of the cheaper components are in the middle (between 840nm to 950nm). The Sun generates a significant amount of IR light at lower IR wavelengths, while artificial lights produce noticeable IR light at higher IR wavelengths. Since sunlight usually produces significantly more IR than artificial lights do, I'll use an IR wavelength that isn't produced much by natural sunlight.

Looking at the sea-level sunlight spectrum shown in the figure above, we see that sunlight doesn't contain much IR at 940nm, and in fact 940nm IR components are quite common & cheap, so I'll use Infrared emitters and receivers at 940nm wavelength.