Library for use with VL53L0X, cut 1.1, based on mass-market API v1.1.

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Dependents:   ConcorsoFinal HelloWorld_IHM01A1 m3pi_BT m3pi_LIDAR ... more

Fork of X_NUCLEO_53L0A1 by ST Expansion SW Team

X-NUCLEO-53L0A1 Proximity Sensor Expansion Board Firmware Package

Introduction

This firmware package includes Component Device Drivers and the Board Support Package for STMicroelectronics' X-NUCLEO-53L0A1 Proximity sensor expansion board based on VL53L0X.

Firmware Library

Class X_NUCLEO_53L0A1 is intended to represent the Proximity sensor expansion board with the same name.

The expansion board provides support for the following components:

  1. on-board VL53L0X proximity sensor,
  2. up to two additional VL53L0X Satellites,
  3. on-board 4-digit display

It is intentionally implemented as a singleton because only one X-NUCLEO-VL53L0A1 may be deployed at a time in a HW component stack. In order to get the singleton instance you have to call class method `Instance()`, e.g.:

// Sensors expansion board singleton instance
static X_NUCLEO_53L0A1 *board = X_NUCLEO_53L0A1::Instance(device_i2c, A2, D8, D2);

Example Applications

The library and sample application code were tested against mbed revision 143, dated 26th May 2017.

Revision:
17:f8187a3fa36e
Parent:
16:27d3d95c8593
Child:
18:2413acea538f
diff -r 27d3d95c8593 -r f8187a3fa36e XNucleo53L0A1.h
--- a/XNucleo53L0A1.h	Tue Aug 22 14:39:51 2017 +0000
+++ b/XNucleo53L0A1.h	Tue Oct 10 08:48:41 2017 +0000
@@ -64,20 +64,20 @@
     */
     XNucleo53L0A1(DevI2C *ext_i2c) : dev_i2c(ext_i2c)
     {
-        stmpe1600_exp0 = new Stmpe1600(*ext_i2c, (0x43 * 2));     // U21
+        stmpe1600_exp0 = new Stmpe1600(ext_i2c, (0x43 * 2));     // U21
 
-        stmpe1600_exp1 = new Stmpe1600(*ext_i2c, (0x42 * 2));     // U19
+        stmpe1600_exp1 = new Stmpe1600(ext_i2c, (0x42 * 2));     // U19
 
-        display = new Display(*stmpe1600_exp0, *stmpe1600_exp1);
+        display = new Display(stmpe1600_exp0, stmpe1600_exp1);
 
-        xshutdown_centre = new Stmpe1600DigiOut(*dev_i2c, GPIO_15, (0x42 * 2));     // U19 on schematic
-        sensor_centre = new VL53L0X(*dev_i2c, *xshutdown_centre, A2);
+        xshutdown_centre = new Stmpe1600DigiOut(dev_i2c, GPIO_15, (0x42 * 2));     // U19 on schematic
+        sensor_centre = new VL53L0X(dev_i2c, xshutdown_centre, A2);
 
-        xshutdown_left = new Stmpe1600DigiOut(*dev_i2c, GPIO_14, (0x43 * 2));     // U21 on schematic
-        sensor_left = new VL53L0X(*dev_i2c, *xshutdown_left, D8);
+        xshutdown_left = new Stmpe1600DigiOut(dev_i2c, GPIO_14, (0x43 * 2));     // U21 on schematic
+        sensor_left = new VL53L0X(dev_i2c, xshutdown_left, D8);
 
-        xshutdown_right = new Stmpe1600DigiOut(*dev_i2c, GPIO_15, (0x43 * 2));     // U21 on schematic
-        sensor_right = new VL53L0X(*dev_i2c, *xshutdown_right, D2);
+        xshutdown_right = new Stmpe1600DigiOut(dev_i2c, GPIO_15, (0x43 * 2));     // U21 on schematic
+        sensor_right = new VL53L0X(dev_i2c, xshutdown_right, D2);
     }
 
     /** Constructor 2
@@ -90,20 +90,20 @@
     XNucleo53L0A1(DevI2C *ext_i2c, PinName gpio1_centre,
                     PinName gpio1_left, PinName gpio1_right) : dev_i2c(ext_i2c)
     {
-        stmpe1600_exp0 = new Stmpe1600(*ext_i2c, (0x43 * 2));     // U21
+        stmpe1600_exp0 = new Stmpe1600(ext_i2c, (0x43 * 2));     // U21
 
-        stmpe1600_exp1 = new Stmpe1600(*ext_i2c, (0x42 * 2));     // U19
+        stmpe1600_exp1 = new Stmpe1600(ext_i2c, (0x42 * 2));     // U19
 
-        display = new Display(*stmpe1600_exp0, *stmpe1600_exp1);
+        display = new Display(stmpe1600_exp0, stmpe1600_exp1);
 
-        xshutdown_centre = new Stmpe1600DigiOut(*dev_i2c, GPIO_15, (0x42 * 2));     // U19 on schematic
-        sensor_centre = new VL53L0X(*dev_i2c, *xshutdown_centre, gpio1_centre);
+        xshutdown_centre = new Stmpe1600DigiOut(dev_i2c, GPIO_15, (0x42 * 2));     // U19 on schematic
+        sensor_centre = new VL53L0X(dev_i2c, xshutdown_centre, gpio1_centre);
 
-        xshutdown_left = new Stmpe1600DigiOut(*dev_i2c, GPIO_14, (0x43 * 2));     // U21 on schematic
-        sensor_left = new VL53L0X(*dev_i2c, *xshutdown_left, gpio1_left);
+        xshutdown_left = new Stmpe1600DigiOut(dev_i2c, GPIO_14, (0x43 * 2));     // U21 on schematic
+        sensor_left = new VL53L0X(dev_i2c, xshutdown_left, gpio1_left);
 
-        xshutdown_right = new Stmpe1600DigiOut(*dev_i2c, GPIO_15, (0x43 * 2));     // U21 on schematic
-        sensor_right = new VL53L0X(*dev_i2c, *xshutdown_right, gpio1_right);
+        xshutdown_right = new Stmpe1600DigiOut(dev_i2c, GPIO_15, (0x43 * 2));     // U21 on schematic
+        sensor_right = new VL53L0X(dev_i2c, xshutdown_right, gpio1_right);
     }
 
     /** Destructor