zephyr/samples/shields/x_nucleo_53l0a1
Gerard Marull-Paretas e0125d04af devices: constify statically initialized device pointers
It is frequent to find variable definitions like this:

```c
static const struct device *dev = DEVICE_DT_GET(...)
```

That is, module level variables that are statically initialized with a
device reference. Such value is, in most cases, never changed meaning
the variable can also be declared as const (immutable). This patch
constifies all such cases.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-08-19 11:51:26 +02:00
..
src devices: constify statically initialized device pointers 2022-08-19 11:51:26 +02:00
CMakeLists.txt cmake: Update cmake_minimum_required to 3.20.0 2022-07-04 10:18:45 +02:00
README.rst
sample.yaml

README.rst

.. _x-nucleo-53l0a1-sample:

X-NUCLEO-53L0A1 ranging and gesture detection sensor expansion board
#####################################################################

Overview
********
This sample demonstrate the usage of the 4 digits x 7 segments display and the
three VL53L0X ranging sensors on the :ref:`x_nucleo_53l0a1_shield`.

When flashed on a board, 2 modes are available. To switch from one mode to the
other, press the button ``sw0``.

Distance (onboard sensor)
-------------------------

This is the default mode when starting up. In this mode, if the distance to
the center sensor (soldered on the shield) is lower than 1.25m, then the
4x7 segment display shows the distance in cm.

Proximity (onboard + satellites)
--------------------------------

In this mode, the 4x7 segment display shows 3 stacked horizontal bars if there
is something in proximity for each sensor. The left sensor is shown on the
leftmost digit, then the center sensor, then the right sensor.
The proximity threshold is configured in
:kconfig:option:`CONFIG_VL53L0X_PROXIMITY_THRESHOLD`

To switch from one mode to another, press the button ``sw0``

Requirements
************

This sample communicates over I2C with the X-NUCLEO-53L0A1 shield
stacked on a board with an Arduino connector. The board's I2C must be
configured for the I2C Arduino connector (both for pin muxing
and devicetree). The board must also have a button with the alias ``sw0``
in its device tree.

References
**********

* `X-NUCLEO-53L0A1 website`_

Building and Running
********************

This sample runs with X-NUCLEO-53L0A1 stacked on any board with a matching
Arduino connector. For this example, we use a :ref:`nucleo_f429zi_board` board.

.. zephyr-app-commands::
   :zephyr-app: samples/shields/x_nucleo_53l0a1
   :board: nucleo_f429zi
   :goals: build
   :compact:

.. _X-NUCLEO-53L0A1 website:
   https://www.st.com/en/evaluation-tools/x-nucleo-53l0a1.html