williamkapke / vl53l0x

A Node.js library for a vl53l0x device
MIT License
6 stars 1 forks source link

vl53l0x

A Node.js library for a vl53l0x proximity sensor.

vl53l0x

https://npmjs.com/package/vl53l0x
https://npmjs.com/package/i2c-bus

npm install vl53l0x i2c-bus

...OR, use an i2cdriver for development!

npm install vl53l0x i2cdriver

Use

const VL53L0X = require('vl53l0x')
const args = [1, 0x29]
// Optionally, try developing with an i2cdriver!
// const args = ['/dev/tty.usbserial-DO01INSW', 0x29, 'i2cdriver/i2c-bus']

VL53L0X(...args).then(async (vl53l0x) => {
  while(true) {
    console.log(await vl53l0x.measure())
  }
})
.catch(console.error)

*i2c-bus not included in dependencies

To prevent multiple instances of i2c-bus being installed in your project- it is NOT included as a dependency. You just need to install it separately.

This also allows you to swap in a different bus, such as an i2cdriver if desired.

Interface

VL53L0X(bus, address)

Creates a VL53L0X instance.

bus: The i2c-bus-promise instance
address: The i2c device address (factory default is 0x29). Changing it is a pain and this library doesn't aim to take that on.

Returns: The VL53L0X interface.

measure()

Gets a measurement from the device.

Returns: The distance in millimeters (Number)

Other functions...

There are additional functions exposed but you'll really need to read the datasheet to get an understanding of what each does. You can checkout the examples also.

getSignalRateLimit()
setSignalRateLimit(limit_Mcps)

getMeasurementTimingBudget()
setMeasurementTimingBudget(timing_budget)

getVcselPulsePeriod()
setVcselPulsePeriod(type, period_pclks)

performSingleRefCalibration(vhv_init_byte)

References

https://www.st.com/resource/en/datasheet/vl53l0x.pdf

License

MIT