pdf-icon

Arduino 上手教程

2. 设备开发 & 案例程序

5. 拓展模块

6. 应用案例

Hat ToF Arduino 使用教程

1. 准备工作

2. 案例程序

案例说明
Hat ToF 是一款专为 SticKC 设计的高精度激光测距传感器,内部集成 ST 激光测距芯片 VL53L0X、940nm VCSEL 发射器,通过测量激光信号到被测物体的往返时间,能够在不到 30ms 的时间内测量 2m 范围内的绝对距离。本案例将使用 StickC-Plus2 通过 I2C 接口来驱动控制 Hat ToF,并在 StickC-Plus2 的屏幕和电脑的串口监视器打印数据。

完整程序

cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#include <M5Unified.h>
#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;

void setup() {
    M5.begin();
    Serial.begin(115200);

    // I2C initialization (SDA: G0, SCL: G26)
    Wire.begin(0, 26);

    // Sensor initialization
    sensor.setTimeout(500);
    if (!sensor.init()) {
        Serial.println("Sensor init failed!");
        while (1);
    }

    // Set measuring mode (default: 120cm)
    sensor.setMeasurementTimingBudget(200000);

    Serial.println("Hat ToF Ready");
}

void loop() {
    M5.update();

    uint16_t distance = sensor.readRangeSingleMillimeters();

    if (sensor.timeoutOccurred()) {
        Serial.println("Timeout!");
    } else {
        Serial.printf("Distance: %.1f cm\n", distance / 10.0);
        M5.Display.fillScreen(BLACK);
        M5.Display.setRotation(1);
        M5.Display.setTextSize(2);
        M5.Display.setCursor(10, 40, 2);
        M5.Display.setTextColor(WHITE);
        M5.Display.printf("Distance: %.1f cm\n", distance / 10.0);
    }

    delay(100);
}

3. 编译上传

  1. 进入下载模式:不同的 Stick 设备进行程序烧录前需要安装对应的驱动程序,不同的主控设备使用的驱动与安装步骤可能有所不同。详情可参考Arduino IDE上手教程页面底部的设备程序下载教程列表,查看具体设备对应的操作方式。

  2. 选中设备端口,点击 Arduino IDE 左上角编译上传按钮,等待程序完成编译并上传至设备。

4.Hat ToF 激光测距传感器数据显示

该程序将检测 Hat ToF 的激光测距传感器的数据,并在 StickC-Plus2 的屏幕和电脑的串口监视器打印数据:

On This Page