MatrixMiniR4 1.1.5
Matrix Mini R4 Arduino Library API Documentation
Loading...
Searching...
No Matches
MatrixLaserV2 Class Reference

A class for MATRIX Laser V2 ToF sensor. More...

#include <MiniR4_MXLaserV2.h>

Public Types

enum  regAddr {
  SYSRANGE_START = 0x00 , SYSTEM_THRESH_HIGH = 0x0C , SYSTEM_THRESH_LOW = 0x0E , SYSTEM_SEQUENCE_CONFIG = 0x01 ,
  SYSTEM_RANGE_CONFIG = 0x09 , SYSTEM_INTERMEASUREMENT_PERIOD = 0x04 , SYSTEM_INTERRUPT_CONFIG_GPIO = 0x0A , GPIO_HV_MUX_ACTIVE_HIGH = 0x84 ,
  SYSTEM_INTERRUPT_CLEAR = 0x0B , RESULT_INTERRUPT_STATUS = 0x13 , RESULT_RANGE_STATUS = 0x14 , RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN = 0xBC ,
  RESULT_CORE_RANGING_TOTAL_EVENTS_RTN = 0xC0 , RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF = 0xD0 , RESULT_CORE_RANGING_TOTAL_EVENTS_REF = 0xD4 , RESULT_PEAK_SIGNAL_RATE_REF = 0xB6 ,
  ALGO_PART_TO_PART_RANGE_OFFSET_MM = 0x28 , I2C_SLAVE_DEVICE_ADDRESS = 0x8A , MSRC_CONFIG_CONTROL = 0x60 , PRE_RANGE_CONFIG_MIN_SNR = 0x27 ,
  PRE_RANGE_CONFIG_VALID_PHASE_LOW = 0x56 , PRE_RANGE_CONFIG_VALID_PHASE_HIGH = 0x57 , PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT = 0x64 , FINAL_RANGE_CONFIG_MIN_SNR = 0x67 ,
  FINAL_RANGE_CONFIG_VALID_PHASE_LOW = 0x47 , FINAL_RANGE_CONFIG_VALID_PHASE_HIGH = 0x48 , FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT = 0x44 , PRE_RANGE_CONFIG_SIGMA_THRESH_HI = 0x61 ,
  PRE_RANGE_CONFIG_SIGMA_THRESH_LO = 0x62 , PRE_RANGE_CONFIG_VCSEL_PERIOD = 0x50 , PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI = 0x51 , PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO = 0x52 ,
  SYSTEM_HISTOGRAM_BIN = 0x81 , HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT = 0x33 , HISTOGRAM_CONFIG_READOUT_CTRL = 0x55 , FINAL_RANGE_CONFIG_VCSEL_PERIOD = 0x70 ,
  FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI = 0x71 , FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO = 0x72 , CROSSTALK_COMPENSATION_PEAK_RATE_MCPS = 0x20 , MSRC_CONFIG_TIMEOUT_MACROP = 0x46 ,
  SOFT_RESET_GO2_SOFT_RESET_N = 0xBF , IDENTIFICATION_MODEL_ID = 0xC0 , IDENTIFICATION_REVISION_ID = 0xC2 , OSC_CALIBRATE_VAL = 0xF8 ,
  GLOBAL_CONFIG_VCSEL_WIDTH = 0x32 , GLOBAL_CONFIG_SPAD_ENABLES_REF_0 = 0xB0 , GLOBAL_CONFIG_SPAD_ENABLES_REF_1 = 0xB1 , GLOBAL_CONFIG_SPAD_ENABLES_REF_2 = 0xB2 ,
  GLOBAL_CONFIG_SPAD_ENABLES_REF_3 = 0xB3 , GLOBAL_CONFIG_SPAD_ENABLES_REF_4 = 0xB4 , GLOBAL_CONFIG_SPAD_ENABLES_REF_5 = 0xB5 , GLOBAL_CONFIG_REF_EN_START_SELECT = 0xB6 ,
  DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD = 0x4E , DYNAMIC_SPAD_REF_EN_START_OFFSET = 0x4F , POWER_MANAGEMENT_GO1_POWER_FORCE = 0x80 , VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV = 0x89 ,
  ALGO_PHASECAL_LIM = 0x30 , ALGO_PHASECAL_CONFIG_TIMEOUT = 0x30
}
 
enum  vcselPeriodType { VcselPeriodPreRange , VcselPeriodFinalRange }
 

Public Member Functions

void setAddress (uint8_t new_addr)
 
uint8_t getAddress ()
 
bool begin (bool io_2v8=true)
 Initializes the MATRIX Laser V2 ToF sensor.
 
uint16_t getDistance ()
 Gets the distance measured by the MATRIX Laser V2 ToF sensor.
 
void writeReg (uint8_t reg, uint8_t value)
 
void writeReg16Bit (uint8_t reg, uint16_t value)
 
void writeReg32Bit (uint8_t reg, uint32_t value)
 
uint8_t readReg (uint8_t reg)
 
uint16_t readReg16Bit (uint8_t reg)
 
uint32_t readReg32Bit (uint8_t reg)
 
void writeMulti (uint8_t reg, uint8_t const *src, uint8_t count)
 
void readMulti (uint8_t reg, uint8_t *dst, uint8_t count)
 
bool setSignalRateLimit (float limit_Mcps)
 
float getSignalRateLimit ()
 
bool setMeasurementTimingBudget (uint32_t budget_us)
 
uint32_t getMeasurementTimingBudget ()
 
bool setVcselPulsePeriod (vcselPeriodType type, uint8_t period_pclks)
 
uint8_t getVcselPulsePeriod (vcselPeriodType type)
 
void startContinuous (uint32_t period_ms=0)
 
void stopContinuous ()
 
uint16_t readRangeContinuousMillimeters ()
 
uint16_t readRangeSingleMillimeters ()
 
void setTimeout (uint16_t timeout)
 
uint16_t getTimeout ()
 
bool timeoutOccurred ()
 

Public Attributes

uint8_t _ch = 0
 
TwoWire * _pWire
 
uint8_t last_status
 

Detailed Description

A class for MATRIX Laser V2 ToF sensor.

This class allows reading distance data from the MXLaserV2 sensor.

Definition at line 56 of file MiniR4_MXLaserV2.h.

Member Enumeration Documentation

◆ regAddr

Enumerator
SYSRANGE_START 
SYSTEM_THRESH_HIGH 
SYSTEM_THRESH_LOW 
SYSTEM_SEQUENCE_CONFIG 
SYSTEM_RANGE_CONFIG 
SYSTEM_INTERMEASUREMENT_PERIOD 
SYSTEM_INTERRUPT_CONFIG_GPIO 
GPIO_HV_MUX_ACTIVE_HIGH 
SYSTEM_INTERRUPT_CLEAR 
RESULT_INTERRUPT_STATUS 
RESULT_RANGE_STATUS 
RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN 
RESULT_CORE_RANGING_TOTAL_EVENTS_RTN 
RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF 
RESULT_CORE_RANGING_TOTAL_EVENTS_REF 
RESULT_PEAK_SIGNAL_RATE_REF 
ALGO_PART_TO_PART_RANGE_OFFSET_MM 
I2C_SLAVE_DEVICE_ADDRESS 
MSRC_CONFIG_CONTROL 
PRE_RANGE_CONFIG_MIN_SNR 
PRE_RANGE_CONFIG_VALID_PHASE_LOW 
PRE_RANGE_CONFIG_VALID_PHASE_HIGH 
PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT 
FINAL_RANGE_CONFIG_MIN_SNR 
FINAL_RANGE_CONFIG_VALID_PHASE_LOW 
FINAL_RANGE_CONFIG_VALID_PHASE_HIGH 
FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT 
PRE_RANGE_CONFIG_SIGMA_THRESH_HI 
PRE_RANGE_CONFIG_SIGMA_THRESH_LO 
PRE_RANGE_CONFIG_VCSEL_PERIOD 
PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI 
PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO 
SYSTEM_HISTOGRAM_BIN 
HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT 
HISTOGRAM_CONFIG_READOUT_CTRL 
FINAL_RANGE_CONFIG_VCSEL_PERIOD 
FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI 
FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO 
CROSSTALK_COMPENSATION_PEAK_RATE_MCPS 
MSRC_CONFIG_TIMEOUT_MACROP 
SOFT_RESET_GO2_SOFT_RESET_N 
IDENTIFICATION_MODEL_ID 
IDENTIFICATION_REVISION_ID 
OSC_CALIBRATE_VAL 
GLOBAL_CONFIG_VCSEL_WIDTH 
GLOBAL_CONFIG_SPAD_ENABLES_REF_0 
GLOBAL_CONFIG_SPAD_ENABLES_REF_1 
GLOBAL_CONFIG_SPAD_ENABLES_REF_2 
GLOBAL_CONFIG_SPAD_ENABLES_REF_3 
GLOBAL_CONFIG_SPAD_ENABLES_REF_4 
GLOBAL_CONFIG_SPAD_ENABLES_REF_5 
GLOBAL_CONFIG_REF_EN_START_SELECT 
DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 
DYNAMIC_SPAD_REF_EN_START_OFFSET 
POWER_MANAGEMENT_GO1_POWER_FORCE 
VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV 
ALGO_PHASECAL_LIM 
ALGO_PHASECAL_CONFIG_TIMEOUT 

Definition at line 101 of file MiniR4_MXLaserV2.h.

◆ vcselPeriodType

Enumerator
VcselPeriodPreRange 
VcselPeriodFinalRange 

Definition at line 186 of file MiniR4_MXLaserV2.h.

Member Function Documentation

◆ begin()

bool MatrixLaserV2::begin ( bool io_2v8 = true)

Initializes the MATRIX Laser V2 ToF sensor.

Returns
true if initialization is successful, false otherwise.

Definition at line 32 of file MiniR4_MXLaserV2.cpp.

◆ getAddress()

uint8_t MatrixLaserV2::getAddress ( )
inline

Definition at line 194 of file MiniR4_MXLaserV2.h.

◆ getDistance()

uint16_t MatrixLaserV2::getDistance ( )

Gets the distance measured by the MATRIX Laser V2 ToF sensor.

Returns
The measured distance in millimeters, if value invaild will return 20.

Definition at line 1026 of file MiniR4_MXLaserV2.cpp.

◆ getMeasurementTimingBudget()

uint32_t MatrixLaserV2::getMeasurementTimingBudget ( )

Definition at line 500 of file MiniR4_MXLaserV2.cpp.

◆ getSignalRateLimit()

float MatrixLaserV2::getSignalRateLimit ( )

Definition at line 403 of file MiniR4_MXLaserV2.cpp.

◆ getTimeout()

uint16_t MatrixLaserV2::getTimeout ( )
inline

Definition at line 235 of file MiniR4_MXLaserV2.h.

◆ getVcselPulsePeriod()

uint8_t MatrixLaserV2::getVcselPulsePeriod ( vcselPeriodType type)

Definition at line 731 of file MiniR4_MXLaserV2.cpp.

◆ readMulti()

void MatrixLaserV2::readMulti ( uint8_t reg,
uint8_t * dst,
uint8_t count )

Definition at line 370 of file MiniR4_MXLaserV2.cpp.

◆ readRangeContinuousMillimeters()

uint16_t MatrixLaserV2::readRangeContinuousMillimeters ( )

Definition at line 802 of file MiniR4_MXLaserV2.cpp.

◆ readRangeSingleMillimeters()

uint16_t MatrixLaserV2::readRangeSingleMillimeters ( )

Definition at line 826 of file MiniR4_MXLaserV2.cpp.

◆ readReg()

uint8_t MatrixLaserV2::readReg ( uint8_t reg)

Definition at line 301 of file MiniR4_MXLaserV2.cpp.

◆ readReg16Bit()

uint16_t MatrixLaserV2::readReg16Bit ( uint8_t reg)

Definition at line 317 of file MiniR4_MXLaserV2.cpp.

◆ readReg32Bit()

uint32_t MatrixLaserV2::readReg32Bit ( uint8_t reg)

Definition at line 334 of file MiniR4_MXLaserV2.cpp.

◆ setAddress()

void MatrixLaserV2::setAddress ( uint8_t new_addr)

Definition at line 18 of file MiniR4_MXLaserV2.cpp.

◆ setMeasurementTimingBudget()

bool MatrixLaserV2::setMeasurementTimingBudget ( uint32_t budget_us)

Definition at line 415 of file MiniR4_MXLaserV2.cpp.

◆ setSignalRateLimit()

bool MatrixLaserV2::setSignalRateLimit ( float limit_Mcps)

Definition at line 393 of file MiniR4_MXLaserV2.cpp.

◆ setTimeout()

void MatrixLaserV2::setTimeout ( uint16_t timeout)
inline

Definition at line 234 of file MiniR4_MXLaserV2.h.

◆ setVcselPulsePeriod()

bool MatrixLaserV2::setVcselPulsePeriod ( vcselPeriodType type,
uint8_t period_pclks )

Definition at line 554 of file MiniR4_MXLaserV2.cpp.

◆ startContinuous()

void MatrixLaserV2::startContinuous ( uint32_t period_ms = 0)

Definition at line 750 of file MiniR4_MXLaserV2.cpp.

◆ stopContinuous()

void MatrixLaserV2::stopContinuous ( )

Definition at line 788 of file MiniR4_MXLaserV2.cpp.

◆ timeoutOccurred()

bool MatrixLaserV2::timeoutOccurred ( )

Definition at line 854 of file MiniR4_MXLaserV2.cpp.

◆ writeMulti()

void MatrixLaserV2::writeMulti ( uint8_t reg,
uint8_t const * src,
uint8_t count )

Definition at line 354 of file MiniR4_MXLaserV2.cpp.

◆ writeReg()

void MatrixLaserV2::writeReg ( uint8_t reg,
uint8_t value )

Definition at line 267 of file MiniR4_MXLaserV2.cpp.

◆ writeReg16Bit()

void MatrixLaserV2::writeReg16Bit ( uint8_t reg,
uint16_t value )

Definition at line 277 of file MiniR4_MXLaserV2.cpp.

◆ writeReg32Bit()

void MatrixLaserV2::writeReg32Bit ( uint8_t reg,
uint32_t value )

Definition at line 288 of file MiniR4_MXLaserV2.cpp.

Member Data Documentation

◆ _ch

uint8_t MatrixLaserV2::_ch = 0

Definition at line 97 of file MiniR4_MXLaserV2.h.

◆ _pWire

TwoWire* MatrixLaserV2::_pWire

Definition at line 98 of file MiniR4_MXLaserV2.h.

◆ last_status

uint8_t MatrixLaserV2::last_status

Definition at line 188 of file MiniR4_MXLaserV2.h.


The documentation for this class was generated from the following files: