ToF Unit

Support the following products:

ToFUnit

Micropython Example:

 1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8from hardware import *
 9from unit import ToFUnit
10
11
12label0 = None
13i2c0 = None
14tof_0 = None
15
16
17def setup():
18    global label0, i2c0, tof_0
19
20    M5.begin()
21    Widgets.fillScreen(0x222222)
22    label0 = Widgets.Label("label0", 132, 109, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
23
24    i2c0 = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
25    tof_0 = ToFUnit(i2c0)
26
27
28def loop():
29    global label0, i2c0, tof_0
30    M5.update()
31    label0.setText(str((str((tof_0.get_range())) + str("mm"))))
32
33
34if __name__ == "__main__":
35    try:
36        setup()
37        while True:
38            loop()
39    except (Exception, KeyboardInterrupt) as e:
40        try:
41            from utility import print_error_msg
42
43            print_error_msg(e)
44        except ImportError:
45            print("please update to latest firmware")

UIFLOW2 Example:

example.png

tof_core_example.m5f2

class ToFUnit

Constructors

class ToFUnit(i2c: I2C, address: int = 0x29, io_timeout_ms: int = 0)

Create a DLight object.

参数:
  • i2c – the I2C object.

  • address – the I2C address of the device. Default is 0x23.

  • io_timeout_ms – the timeout of I2C communication. Default is 0ms.

UIFLOW2:

init.png

Methods

ToFUnit.get_distance() float

Get distance in centimeters.

返回:

distance in millimeters.

UIFLOW2:

get_distance.png

ToFUnit.get_data_ready() bool

Get data ready status.

返回:

data ready status.

UIFLOW2:

get_data_ready.png

ToFUnit.get_range() int

Get distance in millimeters.

返回:

distance in millimeters.

UIFLOW2:

get_range.png

ToFUnit.is_continuous_mode() bool

Get continuous mode status.

返回:

continuous mode status.

UIFLOW2:

is_continuous_mode.png

ToFUnit.get_measurement_timing_budget() int

Get measurement timing budget. The budget is in microseconds.

返回:

measurement timing budget. The budget is in microseconds.

UIFLOW2:

get_measurement_timing_budget.png

ToFUnit.set_measurement_timing_budget(budget_us: int) None

Set measurement timing budget. The budget_us is in microseconds.

参数:

budget_us – measurement timing budget in microseconds.

UIFLOW2:

set_measurement_timing_budget.png

ToFUnit.get_signal_rate_limit() float

Get signal rate limit.

返回:

signal rate limit.

UIFLOW2:

get_signal_rate_limit.png

ToFUnit.set_signal_rate_limit(val: float) None

Set signal rate limit.

参数:

val – signal rate limit.

UIFLOW2:

set_signal_rate_limit.png

ToFUnit.start_continuous() None

Start continuous mode.

UIFLOW2:

start_continuous.png

ToFUnit.stop_continuous() None

Stop continuous mode.

UIFLOW2:

stop_continuous.png

ToFUnit.set_address(new_address: int) None

Set I2C address.

参数:

new_address – new I2C address.

UIFLOW2:

set_address.png