Designing A
Low Cost Laser
— Part 1
In early 2008, Ken Gracey from
Parallax approached me about
designing a low cost Laser Range
Finder (LRF) module. Sure, there were
(and still are) lots of other sensing
options available such as infrared,
ultrasonic, accelerometers, gyroscopes,
and magnetic, and people have hacked
off-the-shelf sensing products like
Nintendo’s WiiMote and Microsoft’s
Kinect, but no sensor was available to
the hobbyist in a compact, easy-to-interface module that used laser light
to determine the distance between
itself and a target object. I liked the
idea and took on the challenge.
Searching for the Light
This article shares the highlights of my development
journey and details the features of the final product
(Parallax #28044). All engineering documentation
and resources are available on my website at
www.grandideastudio.com/portfolio/laser-range-
finder/. The LRF is released under a Creative Commons
Attribution 3.0 United States license (http://creative
commons.org/licenses/by/3.0/us/), allowing folks to
hack on and modify the design as they wish.
56 SERVO 10.2011
by Joe Grand
www.servomagazine.com/index.php?/magazine/
article/october2011_Grand
Early Attempts
I originally had started developing a system using the
time-of-flight method ( http://en.wikipedia.org/wiki/
Time-of-flight and www.repairfaq.org/sam/
laserlia.htm#liarfbl) which measures the time required
for a laser pulse to travel to the target object and back.
Knowing the speed of light and the travel time, a simple
calculation is all that’s necessary to determine distance.
Conceptually, time-of-flight is easy to understand and
explain, but not easy to achieve in practice as complex,
high speed transmission and detection systems are
required.
I built a high speed time-to-digital converter using the
ACAM GP2 ( www.acam-usa.com/GP2.html) and a
Parallax SX that would be used to measure the elapsed
time of the laser travel. I also put together a programmable
pulse generator using the Data Delay Devices 3D3608
( www.datadelay.com/asp/oscpg.asp) which would
generate pulses ranging from 14 ns to 1.3 µS that I
thought I could use to trigger my not-yet-designed laser
driver circuitry.
Being primarily an embedded systems/digital designer,
the circuitry required for the system was far too deep in
the analog domain for me, so I scrapped the approach in
hopes of finding a method more suitable to my skill set.
Optical Triangulation
I eventually decided to go with the method of optical
triangulation, where the distance to a targeted object is
calculated using triangulation with simple trigonometry