This board is a 3-channel time-of-flight proximity and distance sensor module based on the OPT3101 IC from Texas Instruments. It emits infrared light in one of three selectable directions with its six integrated LEDs and measures distance by measuring the time delay of the reflected signal.
Special Order
Shipping from $7.90
+50 more from our supplier in 7-10 days
Our Code: SKU-006398
Supplier Link: [Pololu MPN:3680]
This board is a 3-channel time-of-flight proximity and distance sensor module based on the OPT3101 IC from Texas Instruments. Unlike conventional IR sensors that use the intensity of reflected light to estimate the distance to an object, this board emits 940 nm infrared light pulsed at 10 MHz, and then measures the phase (delay) of the reflected signal, which corresponds to the distance to the target object. It also measures the amplitude of the signal, which indicates how bright/reflective/close the object is.
This board has three channels that each cover approximately 50° to 60°, giving the sensor a wide field of view (FOV). In favorable conditions, the sensor can measure objects at distances up to 1 m. Distance measurements are available through the sensor’s I²C interface, which is also used to configure the sensor.
This module is designed to be mounted onto the 7-pin connector on the front of a TI-RSLK MAX chassis board, but it can be used with any I²C-capable device. The board can be powered from a 2.5 V to 5.5 V supply. On-board regulators supply the 3.3 V logic voltage to the OPT3101. The board includes a circuit that shifts the I²C clock and data lines to the same logic voltage level as the supplied VIN, making it simple to interface the board with 3.3 V or 5 V systems, and the board’s 0.1″ pin spacing makes it easy to use with standard solderless breadboards and 0.1″ perfboards.
This product ships fully populated with its SMD components (including the OPT3101) and through-hole male header pins. A 7-pin female header and two mounting screws (#2-56, 5/8″) and nuts are also included, as shown in the main product picture. We also carry a version of this module without headers.
The OPT3101 sensor board can be installed on a TI-RSLK MAX by simply plugging it into the 7-pin connector on the front of the robot. However, for additional stability and to help prevent the sensor from detecting unwanted ground reflections, there are a few things you can do to mount it more firmly.
The included screws and nuts can be secured to the board’s mounting holes so that they rest against the front edge of the TI-RSLK Max chassis board when the module is plugged in, as shown in the following pictures.
Alternatively, those with access to a 3D printer can download and print our design for a 3D-printable clip set (4MB stl) to mount the OPT3101 module to the TI-RSLK. These clips are designed to press-fit onto the corners of the sensor board and the front edge of the chassis board after the sensor module has been plugged into the robot.
Four connections are necessary to use the OPT3101 board: GND, VIN, SDA, and SCL. The VIN pin should be connected to a 2.5 V to 5.5 V source, and GND should be connected to 0 volts. The board’s I²C pins (SCL and SDA) should be connected to an I²C bus operating at the same logic level as VIN.
Pin | Description |
---|---|
GND | The ground (0 V) connection for your power supply. Your I²C control source must also share a common ground with this board. |
VIN | This is the main 2.5 V to 5.5 V power supply connection. |
SDA | Level-shifted I²C data line: high is VIN, low is 0 V. Pulled up to VIN with a 10kΩ pull-up resistor. |
SCL | Level-shifted I²C clock line: high is VIN, low is 0 V. Pulled up to VIN with a 10kΩ pull-up resistor. |
GP1 | Configurable 3.3 V I/O pin. This pin is not level-shifted. |
GP2 | Configurable 3.3 V I/O pin. This pin is not level-shifted. |
RST/MS | Input pin that can be used to reset the board or trigger a new sample. (Both of those functions can also be done with I²C.) Pulled up to 3.3 V with a 10kΩ pull-up resistor. This pin is not level-shifted. |
This schematic is also available as a downloadable PDF (144k pdf).
The OPT3101 can be configured, controlled, and queried through the I²C bus. Level shifters on the I²C clock (SCL) and data (SDA) lines enable I²C communication with microcontrollers operating at the same voltage as VIN. A detailed explanation of the I²C interface on the OPT3101 can be found in the “I2C slave” section of the OPT3101 datasheet, and more detailed information about I²C in general can be found in NXP’s I²C-bus specification (1MB pdf). The sensor’s 7-bit slave address is 0x58 (1011000 in binary).
Each board includes a 256-byte EEPROM that holds an individualized factory calibration. The OPT3101 automatically loads the calibration when it starts up. This calibration defines a distance reading of 100 mm to correspond to an object that is 100 mm from the edge of the board.
We recommend not doing the internal crosstalk calibration procedure described in TI’s documentation; the effect it would have has already been incorporated into the illumination crosstalk numbers in the factory calibration.
The main configuration options that you can choose for the OPT3101 are the channel, brightness, and sample rate. These options are set over I²C, and you can change them between samples.
The channel setting determines which pair of IR LEDs will turn on, and thus determines the direction in which the sensor will be most sensitive to objects. There are three channels: TX0 (left), TX1 (middle), and TX2 (right).
There are two brightness settings available for the IR LEDs: low and high (also known as HDR0 and HDR1, respectively). Low brightness mode only works well for nearby objects (within about 20 cm). High brightness mode works for longer ranges, but objects that are too reflective or too close can cause the sensor to saturate, meaning that it fails to measure a distance. You can configure the OPT3101 to use one of these brightnesses, or you can make it use an adaptive brightness mode, where it automatically selects between low or high brightness.
The measurements performed by the OPT3101 are divided into basic units called a frame or a sample. Each frame has a specific configuration, but you can change the configuration between frames. You can configure the OPT3101 to start frames continuously, or to wait for your signal before starting a frame (which is called monoshot mode). When a frame is complete, you can read its results from the OPT3101’s output registers.
Each frame consists of a configurable number of subframes that take 0.25 ms each. The results from each subframe are averaged together. By increasing the number of subframes, you can decrease the noise of your measurements, but the frames will be slower. The number of subframes can be any power of 2 from 1 to 4096.
For more details about how to configure and initialise the OPT3101, please see our Arduino library for the OPT3101 or the OPT3101 datasheet.
We have written a basic Arduino library for the OPT3101, which can be used for interfacing this sensor with an Arduino or Arduino-compatible controller. The library and its included examples make it simple to configure the OPT3101 and read the distance data through I²C.
Size: | 1.1″ × 1.2″ |
---|---|
Weight: | 2.7 g |
Maximum range: | 1 m1 |
---|---|
Channels: | 3 |
Interface: | I²C |
Minimum operating voltage: | 2.5 V |
Maximum operating voltage: | 5.5 V |
Supply current: | 130 mA2 |
Header pins soldered?: | Y |
PCB dev codes: | irs15j |
---|---|
Other markings: | 0J12947 |
The OPT3101 provides distance (phase) readings as 16-bit numbers in units of 0.2287 mm. These numbers represent the distance between the edge of the board and the object that the sensor is detecting. The accuracy of a measurement is affected by a variety of factors including the temperature, ambient lighting, and properties of the object being detected such as its size and reflectivity. Each sensor is individually factory calibrated to compensate for some of these sources of error, and further calibration and compensation for a particular application can be done in the main controller that reads the sensor values.
Temperature variations can contribute approximately 1 cm of error, while a changing amount of ambient light can affect it by about 2 cm. The OPT3101 provides temperature and ambient light measurements in the TMAIN and AMB_DATA registers fields, respectively.
An important factor affecting the distance readings is the amount of light reflected from the target object. In general, more light allows more accurate readings. The larger the signal from the target, the more it will overpower the reflections from other objects and measurement noise. The OPT3101 reports the amplitude of the reflected light in its AMP_OUT register, so different thresholds can be used for different applications. We have generally seen that readings with amplitudes below about 200 to 400 start to become too inaccurate to be useful.
The following charts show some typical results directly from the sensor using a 125mm x 75mm white object. TX0 and TX2 readings are taken 55 degrees off of the centre line, and TX1 readings are directly in front of the sensor.