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.

Files at this revision

API Documentation at this revision

Comitter:
Davidroid
Date:
Fri Oct 13 15:32:03 2017 +0000
Parent:
17:f8187a3fa36e
Child:
19:1727c86ac63b
Commit message:
Astyle reformatting.

Changed in this revision

Components/VL53L0X.lib Show annotated file Show diff for this revision Revisions of this file
XNucleo53L0A1.cpp Show annotated file Show diff for this revision Revisions of this file
XNucleo53L0A1.h Show annotated file Show diff for this revision Revisions of this file
--- a/Components/VL53L0X.lib	Tue Oct 10 08:48:41 2017 +0000
+++ b/Components/VL53L0X.lib	Fri Oct 13 15:32:03 2017 +0000
@@ -1,1 +1,1 @@
-https://os.mbed.com/teams/ST/code/VL53L0X/#834986cdde0a
+https://os.mbed.com/teams/ST/code/VL53L0X/#d07edeaff6f1
--- a/XNucleo53L0A1.cpp	Tue Oct 10 08:48:41 2017 +0000
+++ b/XNucleo53L0A1.cpp	Fri Oct 13 15:32:03 2017 +0000
@@ -53,8 +53,8 @@
 }
 
 XNucleo53L0A1 *XNucleo53L0A1::instance(DevI2C *ext_i2c,
-        PinName gpio1_centre,
-        PinName gpio1_left, PinName gpio1_right)
+                                       PinName gpio1_centre,
+                                       PinName gpio1_left, PinName gpio1_right)
 {
     if (_instance == NULL)
         _instance = new XNucleo53L0A1(ext_i2c, gpio1_centre, gpio1_left, gpio1_right);
@@ -68,53 +68,53 @@
 {
     int status, n_dev = 0;
 
-								
-  
-					   
- 
+
+
+
+
     sensor_centre->VL53L0X_off();
     sensor_left->VL53L0X_off();
     sensor_right->VL53L0X_off();
     status = sensor_centre->init_sensor(NEW_SENSOR_CENTRE_ADDRESS);
     if (status) {
-	
+
         delete sensor_centre;
         delete xshutdown_centre;
         sensor_centre = NULL;
         xshutdown_centre = NULL;
         printf("Sensor centre not present\n\r");
-	
+
     } else {
-	
+
         printf("Sensor centre present\n\r");
         n_dev++;
     }
     status = sensor_left->init_sensor(NEW_SENSOR_LEFT_ADDRESS);
     if (status) {
-	
+
         delete sensor_left;
         delete xshutdown_left;
         sensor_left = NULL;
         xshutdown_left = NULL;
         printf("Sensor left not present\n\r");
-	
+
     } else {
-	
+
         printf("Sensor left present\n\r");
         n_dev++;
     }
 
     status = sensor_right->init_sensor(NEW_SENSOR_RIGHT_ADDRESS);
     if (status) {
-	
+
         delete sensor_right;
         delete xshutdown_right;
         sensor_right = NULL;
         xshutdown_right = NULL;
         printf("Sensor right not present\n\r");
-	
+
     } else {
-	
+
         printf("Sensor right present\n\r");
         n_dev++;
     }
--- a/XNucleo53L0A1.h	Tue Oct 10 08:48:41 2017 +0000
+++ b/XNucleo53L0A1.h	Fri Oct 13 15:32:03 2017 +0000
@@ -88,7 +88,7 @@
      * @param[in] PinName gpio1_right Mbed DigitalOut pin name to be used as a right sensor GPIO_1 INT
      */
     XNucleo53L0A1(DevI2C *ext_i2c, PinName gpio1_centre,
-                    PinName gpio1_left, PinName gpio1_right) : dev_i2c(ext_i2c)
+                  PinName gpio1_left, PinName gpio1_right) : dev_i2c(ext_i2c)
     {
         stmpe1600_exp0 = new Stmpe1600(ext_i2c, (0x43 * 2));     // U21
 
@@ -160,7 +160,7 @@
      * @return      Pointer to the object instance
      */
     static XNucleo53L0A1 *instance(DevI2C *ext_i2c, PinName gpio1_centre,
-                                     PinName gpio1_left, PinName gpio1_right);
+                                   PinName gpio1_left, PinName gpio1_right);
 
     /**
      * @brief       Initialize the board and sensors with deft values