Raspberry Pi and VL53L0X Time-of-Flight example

In this article we will connect a VL53L0X Time-of-Flight sensor to an Raspberry Pi

The VL53L0X is a new generation Time-of-Flight (ToF) laser-ranging module housed in the smallest package on the market today, providing accurate distance measurement whatever the target reflectances unlike conventional technologies. It can measure absolute distances up to 2m, setting a new benchmark in ranging performance levels, opening the door to various new applications.

The VL53L0X integrates a leading-edge SPAD array (Single Photon Avalanche Diodes) and embeds ST’s second generation FlightSenseTM patented technology.

Here is a typical module

The VL53L0X’s 940 nm VCSEL emitter (Vertical Cavity Surface-Emitting Laser), is totally invisible to the human eye, coupled with internal physical infrared filters, it enables longer ranging distances, higher immunity to ambient light, and better robustness to cover glass optical crosstalk.

 

Parts List

Name Link
Pi Zero Raspberry Pi Zero W (Wireless) (new 2017 model)
VL53L0X VL53L0X Time-of-Flight (ToF) Laser Ranging Sensor Breakout 940nm
Connecting wire Free shipping Dupont line 120pcs 20cm male to male + male to female and female to female jumper wire

Schematic

We chose a Pi Zero, any Raspberry Pi should work just fine.

pi and VL53L0X
pi and VL53L0X

Code

The example library and code examples come from https://github.com/johnbryanmoore/VL53L0X_rasp_python

sudo apt-get install build-essential python-dev

Then use following commands to clone the repository and compile:

cd your_git_directory
git clone https://github.com/johnbryanmoore/VL53L0X_rasp_python.git
cd VL53L0X_rasp_python
make

I used the VL53L0X_example.py example

<pre>#!/usr/bin/python

import time
import VL53L0X

# Create a VL53L0X object
tof = VL53L0X.VL53L0X()

# Start ranging
tof.start_ranging(VL53L0X.VL53L0X_BETTER_ACCURACY_MODE)

timing = tof.get_timing()
if (timing &lt; 20000):
    timing = 20000
print ("Timing %d ms" % (timing/1000))

for count in range(1,101):
    distance = tof.get_distance()
    if (distance &gt; 0):
        print ("%d mm, %d cm, %d" % (distance, (distance/10), count))

    time.sleep(timing/1000000.00)

tof.stop_ranging()</pre>
<pre></pre>

you can run this by typing the following in the terminal

sudo python VL53L0X_example.py

Output

In the terminal you should see something like this

VL53L0X output
VL53L0X output
SHARE
Previous articleA look at the brand new Raspberry Pi 4 B
Next articleGetting started with Tkinter on the Raspberry Pi