# Useful Things Person Sensor A small driver for the Useful Things Person Sensor. Original [developer guide](https://usfl.ink/ps_dev) This driver has been tested with v1.1 of the sensor, but should also work with v1 and v2. If you're able to validate the other board revisions, please open a pr to update this message :) ## Usage The sensor offers two modes: continuous and single shot. It can be converted between the two modes, and the compiler will prevent you from misusing functionality that is only available in a specific mode, or when an interrupt pin is provided. ```rust use person_sensor::PersonSensorBuilder; let i2c = /* ... */; let interrupt_pin = /* ... */; // The driver can be initialized with or without the interrupt pin using the builder let mut person_sensor = PersonSensorBuilder::new_standby(i2c, true) .with_interrupt(interrupt_pin) // optional .build() .await .unwrap(); let detections = person_sensor.capture_once().await.unwrap(); // ERROR: an interrupt pin was provided, but person_sensor is in standby mode // person_sensor.wait_for_person().await.unwrap(); // To use the functionality in continuous mode, convert the sensor like below, // or use the builder with new_continuous(...) let mut person_sensor = sensor.into_continuous_mode(); // Now we meet all the requirements to wait for the next detection using the interrupt _ = person_sensor.wait_for_person().await.unwrap(); // Read the latest detections. // Note wait_for_person() does not automatically read the detections let detections = person_sensor.get_detections().await.unwrap(); ``` ## Examples To run the examples on a pi pico, it should be sufficient to enter bootloader mode and run: ```bash cd examples cargo run --bin --release ``` ## License Licensed under either of Apache License, Version 2.0 (LICENSE-APACHE or ) MIT license (LICENSE-MIT or ) at your option. ## Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.