1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/tests/driver_pir
Francisco Acosta dd3ca90e8a examples, tests: add memory insufficient arduino boards
The unification of a bigger stack for the atmega platforms
makes some boards to not have enough memory to provide
the big stack plus the application code.

It is possible though, to override the stack size to a
smaller amount if running the test is necessary.
2018-11-02 17:57:13 +01:00
..
main.c driver/pir: add pir-based occupancy sensing 2018-06-26 13:46:37 -07:00
Makefile examples, tests: add memory insufficient arduino boards 2018-11-02 17:57:13 +01:00
README.md tests/driver_pir: remove redundant/double configuration from Makefile 2018-07-03 23:46:29 -07:00

About

This is a manual test application for the PIR motion sensor driver.

In order to build this application, you need to add the board to the Makefile's WHITELIST first and define a pin mapping (see below).

Usage

There are two ways to test this. You can either actively poll the sensor state, or you can register a thread which receives messages for state changes.

Interrupt driven

Connect the sensor's "out" pin to a GPIO of your board that can be configured to create interrupts. Compile and flash this test application like:

CFLAGS="-DPIR_PARAM_GPIO=name_of_your_pin -DPIR_PARAM_ACTIVE_HIGH=if_gpio_pin_is_high_or_low_when_pir_is_active" make BOARD=your_board clean all-interrupt flash

Ideally, the above configuration passed via CFLAGS should be in "board.h"

The output should look like:

kernel_init(): jumping into first task...

PIR motion sensor test application

Initializing PIR sensor at GPIO_8... [OK]

Registering PIR handler thread...     [OK]
PIR handler got a message: the movement has ceased.
PIR handler got a message: something started moving.
PIR handler got a message: the movement has ceased.

Polling Mode

Connect the sensor's "out" pin to any GPIO pin of you board. Compile and flash this test application like:

CFLAGS="-DPIR_PARAM_GPIO=name_of_your_pin -DPIR_PARAM_ACTIVE_HIGH=if_gpio_pin_is_high_or_low_when_pir_is_active" make BOARD=your_board make clean all-polling flash

Ideally, the above configuration passed via CFLAGS should be in "board.h"

The output should look like this:

kernel_init(): jumping into first task...
PIR motion sensor test application

Initializing PIR sensor at GPIO_10... [OK]

Printing sensor state every second.
Status: lo
...
Status: lo
Status: hi
...