Distance Visualization With Multiple SPAD areas in VL53L1X Time-of-Flight sensor



  • This example illustrates how to get information from multiple SPAD areas from VL53L1X TOF sensor. 16 Regions Of Interest(ROI) with size of 4 * 4 SPAD elements each are defined in SPAD sensor array. Thus, a 4 * 4 measurement matrix formed. Distances measured from each of 16 ROI, interpolated to 8 * 8 image and displayed as Thermal like image.
    Code here:
    https://yadi.sk/d/qpxO0fMItW4Qpw
    Video here:
    https://youtu.be/b18ghRCWawo

    0_1549627639513_Distance.jpg



  • This post is deleted!


  • hi, wich ino file I have to upload to visualize "thermal distance?

    SPAD_read doesn't compile with this output:

    Arduino: 1.8.9 (Mac OS X), Board: "M5Stack-Core-ESP32, QIO, 80MHz, Default, 921600, None"
    
    sketch/SPAD_read.ino.cpp.o:(.literal._Z8checkDevP12VL53L1_Dev_t+0x8): undefined reference to `VL53L1_RdWord'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z5setupv+0x48): undefined reference to `VL53L1_WaitDeviceBooted'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z5setupv+0x4c): undefined reference to `VL53L1_DataInit'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z5setupv+0x50): undefined reference to `VL53L1_StaticInit'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z5setupv+0x54): undefined reference to `VL53L1_SetDistanceMode'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z5setupv+0x58): undefined reference to `VL53L1_SetMeasurementTimingBudgetMicroSeconds'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z5setupv+0x5c): undefined reference to `VL53L1_SetInterMeasurementPeriodMilliSeconds'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z5setupv+0x60): undefined reference to `VL53L1_StartMeasurement'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z4loopv+0xc): undefined reference to `VL53L1_SetUserROI'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z4loopv+0x10): undefined reference to `VL53L1_WaitMeasurementDataReady'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z4loopv+0x14): undefined reference to `VL53L1_GetRangingMeasurementData'
    sketch/SPAD_read.ino.cpp.o:(.literal._Z4loopv+0x18): undefined reference to `VL53L1_clear_interrupt_and_enable_next_range'
    sketch/SPAD_read.ino.cpp.o: In function `checkDev(VL53L1_Dev_t*)':
    Multiple libraries were found for "SPI.h"
     Used: /Library/Arduino15/packages/esp32/hardware/esp32/1.0.2/libraries/SPI
     Not used: /Documents/Arduino/libraries/SPI
    Multiple libraries were found for "SD.h"
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:170: undefined reference to `VL53L1_RdWord'
     Used: /Users/Library/Arduino15/packages/esp32/hardware/esp32/1.0.2/libraries/SD
     Not used: /Users/Documents/Arduino/libraries/SD
    sketch/SPAD_read.ino.cpp.o: In function `setup()':
     Not used: /private/var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/AppTranslocation/65325227-2EA8-4077-950D-C93B6E24B2C5/d/Arduino-1.8.9.app/Contents/Java/libraries/SD
    Multiple libraries were found for "WiFiClient.h"
     Used: /Users/Library/Arduino15/packages/esp32/hardware/esp32/1.0.2/libraries/WiFi
     Not used: /private/var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/AppTranslocation/65325227-2EA8-4077-950D-C93B6E24B2C5/d/Arduino-1.8.9.app/Contents/Java/libraries/WiFi
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:170: undefined reference to `VL53L1_WaitDeviceBooted'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:170: undefined reference to `VL53L1_DataInit'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:170: undefined reference to `VL53L1_StaticInit'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:170: undefined reference to `VL53L1_SetDistanceMode'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:170: undefined reference to `VL53L1_SetMeasurementTimingBudgetMicroSeconds'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:170: undefined reference to `VL53L1_SetInterMeasurementPeriodMilliSeconds'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:170: undefined reference to `VL53L1_StartMeasurement'
    sketch/SPAD_read.ino.cpp.o: In function `loop()':
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:137: undefined reference to `VL53L1_SetUserROI'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:139: undefined reference to `VL53L1_WaitMeasurementDataReady'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:140: undefined reference to `VL53L1_GetRangingMeasurementData'
    /var/folders/f3/0kf10ljj6sj4q4twsw_vtxrw0000gn/T/arduino_modified_sketch_71183/SPAD_read.ino:141: undefined reference to `VL53L1_clear_interrupt_and_enable_next_range'
    collect2: error: ld returned 1 exit status
    exit status 1
    Error compiling for board M5Stack-Core-ESP32.
    
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.