vl53l1x — Driver do sensor de distância ToF VL53L1X

Este módulo fornece um driver para o sensor de medição por tempo de voo VL53L1X da STMicroelectronics via I2C. O VL53L1X mede a distância absoluta de até ~4 m usando um emissor laser invisível de 940 nm e um array receptor SPAD.

Exemplo de uso:

import time
from machine import I2C
import vl53l1x

bus = I2C(1)
tof = vl53l1x.VL53L1X(bus)

while True:
    print("Distance: {} mm".format(tof.read()))
    time.sleep_ms(100)

Classes

class vl53l1x.VL53L1X(bus: machine.I2C, address: int = 0x29)

Constrói uma instância do driver VL53L1X.

  • bus é um objeto de barramento machine.I2C configurado, usado para se comunicar com o sensor.

  • address é o endereço I2C de 7 bits do dispositivo. O padrão é 0x29.

O construtor realiza um soft reset, verifica o ID de modelo do chip, escreve o bloco de configuração padrão no dispositivo e aplica a correção de registradores de inicialização que a API da ST executa na primeira partida de medição. A chamada bloqueia por ~200 ms enquanto o sensor se estabiliza. Levanta RuntimeError se o registrador de ID de modelo não retornar o valor esperado 0xEACC.

writeReg(reg: int, value: int) None

Escreve um único value de 8 bits no endereço de registrador de 16 bits do dispositivo reg.

writeReg16Bit(reg: int, value: int) None

Escreve um value de 16 bits (big-endian) no endereço de registrador de 16 bits do dispositivo reg.

readReg(reg: int) int

Lê um único valor de 8 bits do endereço de registrador de 16 bits do dispositivo reg e o retorna como um int.

readReg16Bit(reg: int) int

Lê um valor de 16 bits (big-endian) do endereço de registrador de 16 bits do dispositivo reg e o retorna como um int.

read_model_id() int

Retorna o conteúdo do registrador de ID de modelo de 16 bits em 0x010F. O valor esperado para um VL53L1X é 0xEACC.

reset() None

Realiza um soft reset do dispositivo alternando o registrador de soft reset 0x0000. Bloqueia por 100 ms enquanto o dispositivo é mantido em reset.

read() int

Dispara uma leitura do registrador RESULT__RANGE_STATUS (0x0089) e retorna a distância final corrigida por crosstalk, em milímetros, do detector de zona única SD0 como um int.

Constantes

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Bloco de configuração padrão de 91 bytes escrito no dispositivo a partir do registrador 0x2D durante a construção. O bloco define a polaridade da interrupção, o limiar sigma, o limiar de sinal, o período entre medições, os limiares de distância, o centro/tamanho da ROI e outros parâmetros de medição recomendados pelo driver ultra-light da ST. A maioria dos bytes não é modificável pelo usuário; consulte os comentários no código-fonte para os campos ajustáveis pelo usuário.