zephyr/samples/shields/x_nucleo_53l0a1
Gerard Marull-Paretas 79e6b0e0f6 includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h>
As of today <zephyr/zephyr.h> is 100% equivalent to <zephyr/kernel.h>.
This patch proposes to then include <zephyr/kernel.h> instead of
<zephyr/zephyr.h> since it is more clear that you are including the
Kernel APIs and (probably) nothing else. <zephyr/zephyr.h> sounds like a
catch-all header that may be confusing. Most applications need to
include a bunch of other things to compile, e.g. driver headers or
subsystem headers like BT, logging, etc.

The idea of a catch-all header in Zephyr is probably not feasible
anyway. Reason is that Zephyr is not a library, like it could be for
example `libpython`. Zephyr provides many utilities nowadays: a kernel,
drivers, subsystems, etc and things will likely grow. A catch-all header
would be massive, difficult to keep up-to-date. It is also likely that
an application will only build a small subset. Note that subsystem-level
headers may use a catch-all approach to make things easier, though.

NOTE: This patch is **NOT** removing the header, just removing its usage
in-tree. I'd advocate for its deprecation (add a #warning on it), but I
understand many people will have concerns.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-09-05 16:31:47 +02:00
..
src includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
CMakeLists.txt
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