VL53L0X TOF laser ranging sensor module (HCMODU0127)

Modules for various types of sensors including accelerometers. gyro's, IR motion, etc
Post Reply
admin
Site Admin
Posts: 727
Joined: Sun Aug 05, 2012 4:02 pm

VL53L0X TOF laser ranging sensor module (HCMODU0127)

Post by admin » Thu Feb 15, 2018 3:18 pm

Image





The VL53L0X (HCMODU0127) 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. The VL53L0X’s 940nm VCSEL emitter (Vertical Cavity Surface-Emitting Laser), is totally invisible to the human eye, coupled with internal physical infrared filters, it enables longer ranging distance, higher immunity to ambient light and better robustness to cover-glass optical cross-talk.


Image Image

If you plan to use this sensor with an Arduino microcontroller please check out our exclusive HCVL53L0X Arduino library available for download from our support forum (see download section of this post).


Fully integrated miniature module
– 940nm Laser VCSEL
– VCSEL driver
– Ranging sensor with advanced embedded micro controller
– 4.4 x 2.4 x 1.0mm
• Fast, accurate distance ranging
– Measures absolute range up to 2m
– Reported range is independent of the target reflectance
– Operates in high infrared ambient light levels
– Advanced embedded optical cross-talk compensation to simplify cover glass selection
• Eye safe
– Class 1 laser device compliant with latest standard IEC 60825-1:2014 - 3rd edition
• Easy integration
– Single reflowable component
– No additional optics
– Single power supply
– I2C interface for device control and data transfer
– Xshutdown (Reset) and interrupt GPIO
– Programmable I2C address


Applications
• User detection for Personal Computers/Laptops/Tablets and IoT (Energy saving).
• Robotics (obstacle detection).
• White goods (hand detection in automatic faucets, soap dispensers etc...)
• 1D gesture recognition.
• Laser assisted Auto-Focus. Enhances and speeds-up camera AF system performance, especially in difficult scenes (low light levels, low contrast) or fast moving video mode.



Specification:

Product code: HCMODU0127
Supply Voltage: 2.6V to 5.5V
Average active ranging sensor current: 19mA
Interface: I2C
Dimension: 13mm x 11mm


Max ranging distance

Image

Note (1): using long range API profile

Note (2):
– Indoor: no infrared
– Outdoor overcast corresponds to a parasitic noise of 10kcps/SPAD for VL53L0X module. For reference, this corresponds to a 1.2W/m² at 940nm, and is equivalent to 5kLux daylight, while ranging on a grey 17% chart at 40cm Measurement conditions:
– Targets reflectance used : Grey (17%), White (88%)
– Nominal Voltage (2.8V) and Temperature (23degreesC)
– All distances are for a complete Field of View covered (FOV = 25degrees)
– 33ms timing budget
All distances mentioned are guaranteed for a minimum detection rate of 94% (up to 100%). Detection rate is the worst case percentage of measurements that will return a valid measurement when target is detected.


Ranging accuracy

Image

Measurement conditions:
– Targets reflectance used: Grey (17%), White (88%)
– Offset correction done at 10cm from sensor.
– Indoor: no Infrared / Outdoor: eq. 5kLux equivalent sunlight (10kcps/SPAD)
– Nominal Voltage (2v8) and Temperature (23degreesC)
– All distances are for a complete Field of View covered (FOV = 25degrees)
– Detection rate is considered at 94% minimum



Image




Example Arduino Sketch:

Code: Select all

/* FILE:    HCVL53L0X_Example
   DATE:    15/02/18
   VERSION: 0.1
   AUTHOR:  Andrew Davies
   
15/02/18 version 0.1: Original version

This example sketch uses the HCVL53L0X library to read distance measurements from
the VL53L0X TOF laser ranging sensor. The sketch repeatedly reads the sensor once a 
second and outputs the result to the serial UART. 

Hobby Components (HobbyComponents.com) products currently supported by this library:

VL53L0X TOF laser ranging sensor module  (SKU: HCMODU0127) 

More information about the library can be found in the software section of our support 
forum here:

http://forum.hobbycomponents.com/software

You may copy, alter and reuse this code in any way you like, but please leave
reference to HobbyComponents.com in your comments if you redistribute this code.
This software may not be used directly for the purpose of selling products that
directly compete with Hobby Components Ltd's own range of products.
THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
REASON WHATSOEVER.
*/


#include "HCVL53L0X.h"      //Include the HCVL53L0X library.

#define I2CADD 0x29         //I2C address of the VL53L0X


HCVL53L0X HCVL53L0X;        //Create an instance of the library.

void setup() 
{
  Serial.begin(9600);       //Initialise the Arduino serial library.

  VL53L0X_Error error = HCVL53L0X.init(I2CADD); //Initiliase the library.
  
  if (error != VL53L0X_ERROR_NONE)
  {
    Serial.print("Error: ");
    Serial.println(error);
  }
}


void loop() 
{
  //Trigger a new range measurement.
  VL53L0X_Error error = HCVL53L0X.measure();

  //Check for an error.
  if (error != VL53L0X_ERROR_NONE)
  {
    Serial.print("Error: ");
    Serial.println(error);
  }else //If data is valid then print out results
  {
    Serial.print("Range (mm): "); 
    Serial.println(HCVL53L0X.rangeMilliMeter());
    
    Serial.print("Reflectance: "); 
    Serial.println(HCVL53L0X.reflectance());
    
    Serial.print("Ambient light: "); 
    Serial.println(HCVL53L0X.ambientLight());
    
    Serial.print("Spad return count: ");
    Serial.println(HCVL53L0X.spadRtnCount());
    
    //Print status of the last measurement
    Serial.print("Range status: ");
    
    if(HCVL53L0X.rangeStatus() == 0)
      Serial.println("Valid");
    else if(HCVL53L0X.rangeStatus() == 4)
      Serial.println("Out of range");
    else
      Serial.println("Error: ");
  
    Serial.println(); 
  }

  //Wait a second before taking another measurement.
  delay(1000);
}


Image

The HCAM2315 Arduino compatible library can be downlaoded from the software section of this forum here:

http://forum.hobbycomponents.com/viewto ... =58&t=2424
VL53L0X_HCMODU0127_Datasheet.pdf


Disclaimer: Libraries, example code, and diagrams are provided as an additional free service by Hobby Components and are not sold as part of this product. We do not provide any guarantees or warranties as to their accuracy or fitness for purpose.

Descriptions and diagrams on this page are copyright Hobby Components Ltd and may not be reproduced without permission.
You do not have the required permissions to view the files attached to this post.

Post Reply