-
-
Notifications
You must be signed in to change notification settings - Fork 346
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feature: distance measurement using vl53l0x sensor (#2050)
* Sample using Adafruit VL53L0X library. * Added long range mode.
- Loading branch information
Showing
10 changed files
with
357 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
diff --git a/src/Adafruit_VL53L0X.cpp b/src/Adafruit_VL53L0X.cpp | ||
index 5a1e650..6699d6e 100644 | ||
--- a/src/Adafruit_VL53L0X.cpp | ||
+++ b/src/Adafruit_VL53L0X.cpp | ||
@@ -35,8 +35,8 @@ | ||
#define VERSION_REQUIRED_MINOR 0 ///< Required sensor minor version | ||
#define VERSION_REQUIRED_BUILD 1 ///< Required sensor build | ||
|
||
-#define STR_HELPER( x ) #x ///< a string helper | ||
-#define STR( x ) STR_HELPER(x) ///< string helper wrapper | ||
+//#define STR_HELPER( x ) #x ///< a string helper | ||
+//#define STR( x ) STR_HELPER(x) ///< string helper wrapper | ||
|
||
/**************************************************************************/ | ||
/*! | ||
@@ -162,8 +162,33 @@ boolean Adafruit_VL53L0X::begin(uint8_t i2c_addr, boolean debug, TwoWire *i2c) { | ||
Status = VL53L0X_SetLimitCheckEnable( pMyDevice, VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 1 ); | ||
} | ||
|
||
- if( Status == VL53L0X_ERROR_NONE ) { | ||
- Status = VL53L0X_SetLimitCheckValue( pMyDevice, VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, (FixPoint1616_t)( 1.5 * 0.023 * 65536 ) ); | ||
+ if(!longRange) { // 30mm to 1.2 meter | ||
+ if( Status == VL53L0X_ERROR_NONE ) { | ||
+ Status = VL53L0X_SetLimitCheckValue( pMyDevice, VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, (FixPoint1616_t)( 1.5 * 0.023 * 65536 ) ); | ||
+ } | ||
+ } | ||
+ else { // can detect as far as 1.5 to 2 meters on a nice white reflective surface | ||
+ // @credits: https://github.com/satoshinm/Adafruit_VL53L0X/commit/72c71bd44091f95ef1211f9ff3928e675dda1348 | ||
+ // Long range mode - based on https://github.com/johnbryanmoore/VL53L0X_rasp_python/blob/master/python_lib/vl53l0x_python.c#L292 | ||
+ if (Status == VL53L0X_ERROR_NONE) { | ||
+ Status = VL53L0X_SetLimitCheckValue(pMyDevice, VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, (FixPoint1616_t)(0.1*65536)); | ||
+ } | ||
+ | ||
+ if (Status == VL53L0X_ERROR_NONE) { | ||
+ Status = VL53L0X_SetLimitCheckValue(pMyDevice, VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, (FixPoint1616_t)(60*65536)); | ||
+ } | ||
+ | ||
+ if (Status == VL53L0X_ERROR_NONE) { | ||
+ Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(pMyDevice, 33000); | ||
+ } | ||
+ | ||
+ if (Status == VL53L0X_ERROR_NONE) { | ||
+ Status = VL53L0X_SetVcselPulsePeriod(pMyDevice, VL53L0X_VCSEL_PERIOD_PRE_RANGE, 18); | ||
+ } | ||
+ | ||
+ if (Status == VL53L0X_ERROR_NONE) { | ||
+ Status = VL53L0X_SetVcselPulsePeriod(pMyDevice, VL53L0X_VCSEL_PERIOD_FINAL_RANGE, 14); | ||
+ } | ||
} | ||
|
||
if( Status == VL53L0X_ERROR_NONE ) { | ||
@@ -268,3 +293,8 @@ void Adafruit_VL53L0X::printRangeStatus( VL53L0X_RangingMeasurementData_t* pRang | ||
Serial.println( buf ); | ||
|
||
} | ||
+ | ||
+void Adafruit_VL53L0X::setLongRangeMode(bool flag) | ||
+{ | ||
+ longRange = flag; | ||
+} | ||
diff --git a/src/Adafruit_VL53L0X.h b/src/Adafruit_VL53L0X.h | ||
index 6f06604..47841c7 100644 | ||
--- a/src/Adafruit_VL53L0X.h | ||
+++ b/src/Adafruit_VL53L0X.h | ||
@@ -38,6 +38,7 @@ | ||
class Adafruit_VL53L0X | ||
{ | ||
public: | ||
+ void setLongRangeMode(bool flag); | ||
boolean begin(uint8_t i2c_addr = VL53L0X_I2C_ADDR, boolean debug = false, TwoWire *i2c = &Wire); | ||
boolean setAddress(uint8_t newAddr); | ||
|
||
@@ -65,6 +66,7 @@ class Adafruit_VL53L0X | ||
VL53L0X_Version_t Version; | ||
VL53L0X_Version_t *pVersion = &Version; | ||
VL53L0X_DeviceInfo_t DeviceInfo; | ||
+ bool longRange = false; | ||
}; | ||
|
||
#endif | ||
diff --git a/src/vl53l0x_platform_log.h b/src/vl53l0x_platform_log.h | ||
index 26387d0..d203b3c 100644 | ||
--- a/src/vl53l0x_platform_log.h | ||
+++ b/src/vl53l0x_platform_log.h | ||
@@ -88,13 +88,13 @@ void trace_print_module_function(uint32_t module, uint32_t level, uint32_t funct | ||
#define LOG_GET_TIME() (int)clock() | ||
|
||
#define _LOG_FUNCTION_START(module, fmt, ... ) \ | ||
- trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <START> %s "fmt"\n", LOG_GET_TIME(), __FUNCTION__, ##__VA_ARGS__); | ||
+ trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <START> %s " fmt "\n", LOG_GET_TIME(), __FUNCTION__, ##__VA_ARGS__); | ||
|
||
#define _LOG_FUNCTION_END(module, status, ... )\ | ||
trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <END> %s %d\n", LOG_GET_TIME(), __FUNCTION__, (int)status, ##__VA_ARGS__) | ||
|
||
#define _LOG_FUNCTION_END_FMT(module, status, fmt, ... )\ | ||
- trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <END> %s %d "fmt"\n", LOG_GET_TIME(), __FUNCTION__, (int)status,##__VA_ARGS__) | ||
+ trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <END> %s %d " fmt "\n", LOG_GET_TIME(), __FUNCTION__, (int)status,##__VA_ARGS__) | ||
|
||
// __func__ is gcc only | ||
//#define VL53L0X_ErrLog( fmt, ...) fprintf(stderr, "VL53L0X_ErrLog %s" fmt "\n", __func__, ##__VA_ARGS__) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
COMPONENT_SRCDIRS := src \ | ||
src/core/src \ | ||
src/platform/src | ||
|
||
COMPONENT_INCDIRS := $(COMPONENT_SRCDIRS) |
Submodule Adafruit_VL53L0X
added at
cc4ca5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> | ||
<storageModule moduleId="org.eclipse.cdt.core.settings"> | ||
<cconfiguration id="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147"> | ||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147" moduleId="org.eclipse.cdt.core.settings" name="Sming"> | ||
<externalSettings/> | ||
<extensions> | ||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> | ||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> | ||
</extensions> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147" name="Sming" parent="org.eclipse.cdt.build.core.emptycfg"> | ||
<folderInfo id="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463" name="/" resourcePath=""> | ||
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.base.1164554300" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.base"> | ||
<option id="cdt.managedbuild.option.gnu.cross.prefix.521205673" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix"/> | ||
<option id="cdt.managedbuild.option.gnu.cross.path.393887888" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path"/> | ||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.712123812" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/> | ||
<builder id="cdt.managedbuild.builder.gnu.cross.2110485170" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/> | ||
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1168221903" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler"> | ||
<option id="gnu.c.compiler.option.include.paths.357494572" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}""/> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}/system/include""/> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}/Libraries""/> | ||
<listOptionValue builtIn="false" value=""${ESP_HOME}/sdk/include""/> | ||
</option> | ||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.313321806" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.1999763015" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler"> | ||
<option id="gnu.cpp.compiler.option.include.paths.611746109" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}""/> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}/system/include""/> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}/Libraries""/> | ||
<listOptionValue builtIn="false" value=""${ESP_HOME}/sdk/include""/> | ||
</option> | ||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1330530366" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.65193859" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/> | ||
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1795850540" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker"> | ||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.364843833" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | ||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | ||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | ||
</inputType> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.525412186" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/> | ||
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.587940548" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler"> | ||
<option id="gnu.both.asm.option.include.paths.1067006329" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}""/> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}/system/include""/> | ||
<listOptionValue builtIn="false" value=""${SMING_HOME}/Libraries""/> | ||
<listOptionValue builtIn="false" value=""${ESP_HOME}/sdk/include""/> | ||
</option> | ||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.651581712" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | ||
</tool> | ||
</toolChain> | ||
</folderInfo> | ||
</configuration> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | ||
</cconfiguration> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<project id="{{ProjectName}}.null.1347473968" name="{{ProjectName}}"/> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> | ||
<storageModule moduleId="refreshScope" versionNumber="2"> | ||
<configuration configurationName="Sming"> | ||
<resource resourceType="PROJECT" workspacePath="/{{ProjectName}}"/> | ||
</configuration> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"> | ||
<buildTargets> | ||
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||
<buildCommand>make</buildCommand> | ||
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments> | ||
<buildTarget>all</buildTarget> | ||
<stopOnError>true</stopOnError> | ||
<useDefaultCommand>true</useDefaultCommand> | ||
<runAllBuilders>true</runAllBuilders> | ||
</target> | ||
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||
<buildCommand>make</buildCommand> | ||
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments> | ||
<buildTarget>clean</buildTarget> | ||
<stopOnError>true</stopOnError> | ||
<useDefaultCommand>true</useDefaultCommand> | ||
<runAllBuilders>true</runAllBuilders> | ||
</target> | ||
<target name="flash" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||
<buildCommand>make</buildCommand> | ||
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments> | ||
<buildTarget>flash</buildTarget> | ||
<stopOnError>true</stopOnError> | ||
<useDefaultCommand>true</useDefaultCommand> | ||
<runAllBuilders>true</runAllBuilders> | ||
</target> | ||
<target name="flashonefile" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||
<buildCommand>make</buildCommand> | ||
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments> | ||
<buildTarget>flashonefile</buildTarget> | ||
<stopOnError>true</stopOnError> | ||
<useDefaultCommand>true</useDefaultCommand> | ||
<runAllBuilders>true</runAllBuilders> | ||
</target> | ||
<target name="flashinit" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||
<buildCommand>make</buildCommand> | ||
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments> | ||
<buildTarget>flashinit</buildTarget> | ||
<stopOnError>true</stopOnError> | ||
<useDefaultCommand>true</useDefaultCommand> | ||
<runAllBuilders>true</runAllBuilders> | ||
</target> | ||
<target name="flashboot" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||
<buildCommand>make</buildCommand> | ||
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments> | ||
<buildTarget>flashboot</buildTarget> | ||
<stopOnError>true</stopOnError> | ||
<useDefaultCommand>true</useDefaultCommand> | ||
<runAllBuilders>true</runAllBuilders> | ||
</target> | ||
<target name="rebuild" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||
<buildCommand>make</buildCommand> | ||
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments> | ||
<buildTarget>rebuild</buildTarget> | ||
<stopOnError>true</stopOnError> | ||
<useDefaultCommand>true</useDefaultCommand> | ||
<runAllBuilders>true</runAllBuilders> | ||
</target> | ||
</buildTargets> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/> | ||
<storageModule moduleId="scannerConfiguration"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147;cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463;cdt.managedbuild.tool.gnu.c.compiler.mingw.base.2032390008;cdt.managedbuild.tool.gnu.c.compiler.input.1700912488"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
</scannerConfigBuildInfo> | ||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147;cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463;cdt.managedbuild.tool.gnu.cross.c.compiler.1168221903;cdt.managedbuild.tool.gnu.c.compiler.input.313321806"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
</scannerConfigBuildInfo> | ||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147;cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463;cdt.managedbuild.tool.gnu.cross.cpp.compiler.1999763015;cdt.managedbuild.tool.gnu.cpp.compiler.input.1330530366"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
</scannerConfigBuildInfo> | ||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147;cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base.454898447;cdt.managedbuild.tool.gnu.cpp.compiler.input.501261625"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
</scannerConfigBuildInfo> | ||
</storageModule> | ||
</cproject> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>Distance_Vl53l10</name> | ||
<comment></comment> | ||
<projects> | ||
<project>SmingFramework</project> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> | ||
<triggers>clean,full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> | ||
<triggers>full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>org.eclipse.cdt.core.cnature</nature> | ||
<nature>org.eclipse.cdt.core.ccnature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> | ||
</natures> | ||
</projectDescription> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
##################################################################### | ||
#### Please don't change this file. Use component.mk instead #### | ||
##################################################################### | ||
|
||
ifndef SMING_HOME | ||
$(error SMING_HOME is not set: please configure it as an environment variable) | ||
endif | ||
|
||
include $(SMING_HOME)/project.mk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Distance measurement with Vl530xl sensor | ||
======================================== | ||
This sample demonstrates how to use an inexpensive laser sensor VL53L0X to measure distance via I2C interface. | ||
|
||
In addition to the original library a "long range" mode is added to measure distances up to 2 meter. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
#include <SmingCore.h> | ||
#include <Adafruit_VL53L0X.h> | ||
|
||
Adafruit_VL53L0X lox; | ||
|
||
// GPIO - NodeMCU pins | ||
#define SDA 4 // D2 | ||
#define SCL 5 // D1 | ||
#define XSHUT 14 // D5 | ||
#define INT 12 // D6 | ||
|
||
Timer loopTimer; | ||
|
||
void loop() | ||
{ | ||
VL53L0X_RangingMeasurementData_t measure; | ||
|
||
Serial.print("Reading a measurement... "); | ||
lox.rangingTest(&measure, false); // pass in 'true' to get debug data printout! | ||
|
||
if(measure.RangeStatus != 4) { // phase failures have incorrect data | ||
Serial.print("Distance (mm): "); | ||
Serial.println(measure.RangeMilliMeter); | ||
} else { | ||
Serial.println(" out of range "); | ||
} | ||
} | ||
|
||
void init() | ||
{ | ||
Serial.begin(SERIAL_BAUD_RATE); // 115200 by default | ||
Serial.systemDebugOutput(true); // Enable debug output to serial | ||
|
||
// WIFI not needed for demo. So disabling WIFI. | ||
WifiStation.enable(false); | ||
WifiAccessPoint.enable(false); | ||
|
||
// Create components. | ||
Wire.begin(SDA, SCL); | ||
|
||
lox.setLongRangeMode(true); | ||
|
||
if(!lox.begin()) { | ||
Serial.println(F("Failed to boot VL53L0X")); | ||
while(1) { | ||
} | ||
} | ||
|
||
Serial.println(F("VL53L0X API Simple Ranging example\n\n")); | ||
loopTimer.initializeMs<100>(loop).start(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
ARDUINO_LIBRARIES := Adafruit_VL53L0X | ||
|
||
DISABLE_SPIFFS = 1 |