All pages
Powered by GitBook
1 of 3

Loading...

Loading...

Loading...

2m Distance Sensor

The REV Robotics 2m Distance Sensor (REV-31-1505) uses the ST Microelectronics VL53L0X Time-of-Flight (ToF) laser-ranging module to measure distances up to 2m with millimeter resolution.

Unlike other ranging sensors that rely on the intensity of reflected light, this sensor can measure how long it takes for the light to bounce back, the “time of flight.” This results in much more accurate measurements that are independent of the target’s reflectance.

Kit Contents

Part Number

Description

Qty

REV-31-1505

2m Distance Sensor

1

REV-31-1407

JST PH 4-pin Sensor Cable - 30cm

1

Specifications

Specifications

General Specifications

Parameter

Value and Units

Sensor Type

I2C

I2C Address

0x52

Laser Type

940 nm (IR) Class 1

Electrical Specifications

Parameter

Min

Typ

Max

Units

Operating Voltage Range

3.3

-

5.0

V

Operating Current

-

-

40

mA

Measurement Range

5

-

200

cm

Measurement Resolution

-

1

-

mm

Field of View

-

25

-

degrees

Max. Bus Frequency

-

-

400

kHz

Application Examples

Application Examples

While the REV 2m Distance Sensor produces a significantly more accurate and reliable measurement than other types of ranging sensors, the following tips will help minimize errors.

A major benefit to time-of-flight measurements is that the target’s surface reflectance does not significantly impact the calculated distance. However, the smallest errors and farthest measurements are achieved with more reflective targets. Similarly, larger targets are easier to detect because they fill more of the sensors 25° field of view.

Ambient infrared (IR) interference can also affect the measurement distance and quality. The sensor can produce accurate measurements in sunlit environments, but the maximum distance will be reduced. The following table outlines the typical ranging capabilities of the sensor:

Target Reflectance

Indoor

Outdoor (overcast)

White (88%)

200 cm †

80 cm

Grey (17%)

80 cm

50 cm

† Using long range API profile; default profile range is 120cm.

FTC Applications

Configuring in the Control System

Configure the 2m Distance Sensor as "REV 2M Distance Sensor," shown in the image below.

The Robot Controller Application currently only supports the default profile for the sensor.

In this example, the 2m Distance Sensor is configured on I2C bus 1. The 2m Distance Sensor can be configured on any of the I2C busses as long as a Color Sensor V3 is not configured to the same bus.

Recall that I2C sensors must have different addresses in order to operate on the same bus. The Color Sensor V3 and 2m Distance Sensor share the same address.

Programming Applications

This program moves a motor if there is an object less than 10 centimeters from the distance sensor, and stops it if there is no object within that range.

The Java version of this program is pasted below. It assumes that the Distance Sensor was configured with the name “test_distance” and that a motor was configured with the name “test_motor.”

FRC Applications

For use with WPILib and the roboRIO the proper library will need installation. Utilize the roboRIO's I2C port and a 4-pin JST PH to 4-pin roboRIO I2C Cable (REV-11-1729) to easily connect the sensor to the roboRIO.

  • Example Code

    • Java

    • C++

    • Labview

Additional Resources

Additional information about the VL53L0X, its capabilities, and the ST Application Programming Interface (API) can be found through the ST website:

  • VL53L0X Datasheet

  • VL53L0X API and Documentation

package org.firstinspires.ftc.teamcode;
 
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import com.qualcomm.robotcore.hardware.DcMotor;
import org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit;
import com.qualcomm.robotcore.hardware.DistanceSensor;
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
 
@TeleOp
public class DistanceTest extends LinearOpMode {
    DistanceSensor test_distance;
    DcMotor test_motor;
    
    @Override
    public void runOpMode() {
        // Get the distance sensor and motor from hardwareMap
        test_distance = hardwareMap.get(DistanceSensor.class, "test_distance");
        test_motor = hardwareMap.get(DcMotor.class, "test_motor");
        
        // Loop while the Op Mode is running
        waitForStart();
        while (opModeIsActive()) {
            // If the distance in centimeters is less than 10, set the power to 0.3
            if (test_distance.getDistance(DistanceUnit.CM) < 10) {
                test_motor.setPower(0.3);
            } else {  // Otherwise, stop the motor
                test_motor.setPower(0);
            }
        }
    }
}