Powered by Modern Robotics

0 $0.00

Cart

No products in the cart.
Shop

Optical Distance Sensor

$26.95

The Optical Distance Sensor, or ODS, detects changes in the distance from a target surface using pulsed light.

Out of stock

Join the waitlist to be emailed when this product becomes available

SKU: 45-2006 Categories: ,

Description

The Optical Distance Sensor uses a pulsed light signal to return a value representing the distance from a target surface.  As the distance from the target changes the returned value changes indicating whether the movement is towards the target or away from the target.

The ODS operates by pulsing an LED to illuminate the target surface and measuring the strength of the reflected signal. The returned value will vary for the same distance as the reflectivity of the target surface varies. 

Specifications

Power
5 volts DC. 20 mA max.
Standard 3 pin connector
For connection to 3 pin analog port
Signaling voltage levels
Analog 0 – 5 volts
Wiring standard
Pin 1 – black – Gnd
Pin 2 – red – +5v
Pin 3 – yellow – Analog output
Illumination LED color
Red
Typical maximum range
8 centimeters
Typical minimum range
0.5 centimeters
Internal sampling rate
1,000 samples per second
Unit dimensions – LxWxH
32 x 32 x 12 millimeters
Mounting holes
24 x 24 millimeters square pattern
Unit weight
10 grams
Wire length
25 centimeters

Additional information

Weight .0290 lbs
Dimensions 4 × 3.75 × .75 in

FTC SDK

Android Studio Example Program

Download the below program for an example of how to read this Analog sensor. The FTC SDK will supply a value from 0-5 representing a voltage.

In your configuration file, name an Analog Input “light” and name a Core Device Interface Module “Device Interface Module 1”

/*
Modern Robotics Analog Example
Created 7/25/2017 by Colton Mehlhoff of Modern Robotics using FTC SDK 3.10
Reuse permitted with credit where credit is due

The Modern Robotics Core Device Interface reads analog input
using a 10 bit value meaning the Android Phone reads a value from 0 to 1023.
The FTC SDK supplies a "voltage". The SDK is scaling this value of 0-1023 to 1-5 with decimal places.

Configuration:
Analog Input on Core Device Interface "light"
Core Device Interface named "Device Interface Module 1"

Support is available by emailing support@modernroboticsinc.com
*/

package org.firstinspires.ftc.teamcode;

import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import com.qualcomm.robotcore.hardware.AnalogInput;
import com.qualcomm.robotcore.hardware.DeviceInterfaceModule;


@TeleOp(name = "Analog Example", group = "MRI")
//@Disabled
public class MRI_Analog_Example extends LinearOpMode {

    //An Analog Input. In this example, we used a Light Sensor although it could be any analog sensor.
    AnalogInput MRLightSensor;

    //CDI. Using this, we can read any analog sensor on this CDI without creating an instance for each sensor.
    DeviceInterfaceModule cdi;

    @Override
    public void runOpMode() {
        telemetry.addData("Status", "Initialized");
        telemetry.update();

        //Link objects to configuration file
        MRLightSensor = hardwareMap.analogInput.get("light");
        cdi = hardwareMap.deviceInterfaceModule.get("Device Interface Module 1");

        waitForStart();

        while (opModeIsActive()) {

            //Read the light sensor using the Analog Input object
            telemetry.addData("light", MRLightSensor.getVoltage());

            //Read each Analog Port of the CDI. 0-7
            for (int i = 0; i < 8; i++) {
                telemetry.addData("Analog " + i, cdi.getAnalogInputVoltage(i));
            }
            telemetry.update();
        }
    }
}