95 lines
2.5 KiB
ReStructuredText
95 lines
2.5 KiB
ReStructuredText
.. _ArgonKey_Sensors:
|
|
|
|
ArgonKey Board Sensors
|
|
######################
|
|
|
|
Overview
|
|
********
|
|
This sample provides an example of how to read sensor data
|
|
from the ArgonKey board. The result is displayed on the console.
|
|
It makes use of both the trigger and poll methods.
|
|
|
|
Requirements
|
|
************
|
|
|
|
This sample just requires the ArgonKey board. The board can be powered
|
|
in either one of the following two ways:
|
|
|
|
- mezzanine mode, plugging the ArgonKey to HiKey board thru its 96Board
|
|
low-speed connector
|
|
- standalone mode, supplying 5V directly on P1 connector
|
|
|
|
The user may select or unselect the sensors from
|
|
:zephyr_file:`samples/boards/96b_argonkey/sensors/prj.conf`.
|
|
|
|
Please note that all sensor related code is conditionally compiled
|
|
using the ``#ifdef`` directive, so this sample is supposed to always
|
|
build correctly. Example:
|
|
|
|
.. code-block:: c
|
|
|
|
#ifdef CONFIG_HTS221
|
|
struct device *hum_dev = device_get_binding("HTS221");
|
|
|
|
if (!hum_dev) {
|
|
printk("Could not get pointer to %s sensor\n", "HTS221");
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
References
|
|
**********
|
|
|
|
- :ref:`96b_argonkey`
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/boards/96b_argonkey/sensors
|
|
:host-os: unix
|
|
:board: 96b_argonkey
|
|
:goals: run
|
|
:compact:
|
|
|
|
Sample Output
|
|
=============
|
|
|
|
A USB to TTL 1V8 serial cable may be attached to the low speed connector on
|
|
the back of the board on P3.5 (TX) and P3.7 (RX). User may use a simple
|
|
terminal emulator, such as minicom, to capture the output.
|
|
|
|
.. code-block:: console
|
|
|
|
proxy: 1 ;
|
|
distance: 0 m -- 09 cm;
|
|
temp: 30.35 C; press: 97.466259
|
|
humidity: 43.500000
|
|
accel (0.004000 -0.540000 9.757000) m/s2
|
|
gyro (0.065000 -0.029000 -0.001000) dps
|
|
magn (0.049500 0.208500 -0.544500) gauss
|
|
- (6) (trig_cnt: 1878)
|
|
|
|
<repeats endlessly every 2s>
|
|
|
|
In this example the output is generated polling the sensor every 2 seconds.
|
|
|
|
Sensor data is printed in the following order (no data is printed for
|
|
sensors that are not enabled):
|
|
|
|
#. *VL53L0x* proximity
|
|
#. *LPS22HB* baro/temp
|
|
#. *HTS221* humidity
|
|
#. *LSM6DSL* accel
|
|
#. *LSM6DSL* gyro
|
|
#. *LIS2MDL* magnetometer (attached to *LSM6DSL*)
|
|
|
|
The proximity sensor displays two lines:
|
|
|
|
- a flag (proxy) that goes on when the distance is below 10cm
|
|
- the absolute distance from the obstacle
|
|
|
|
The last line displays a counter of how many trigger interrupts
|
|
has been received. It is possible to display the sensor data
|
|
read for each trigger by enabling the **ARGONKEY_TEST_LOG** macro.
|