Module capsules_extra::apds9960
source · Expand description
Proximity SyscallDriver for the Adafruit APDS9960 gesture/ambient light/proximity sensor.
Datasheet: https://content.arduino.cc/assets/Nano_BLE_Sense_av02-4191en_ds_apds-9960.pdf
The APDS-9960 device features advanced Gesture detection, Proximity detection, Digital Ambient Light Sense (ALS) and Color Sense (RGBC). The slim modular package, L 3.94 x W 2.36 x H 1.35 mm, incorporates an IR LED and factory calibrated LED driver for drop-in compatibility with existing footprints
§Usage
ⓘ
let apds9960_i2c = static_init!(
capsules::virtual_i2c::I2CDevice,
capsules::virtual_i2c::I2CDevice::new(sensors_i2c_bus, 0x39)
);
let apds9960 = static_init!(
capsules::apds9960::APDS9960<'static>,
capsules::apds9960::APDS9960::new(
apds9960_i2c,
&nrf52840::gpio::PORT[APDS9960_PIN],
&mut capsules::apds9960::BUFFER
)
);
apds9960_i2c.set_client(apds9960);
nrf52840::gpio::PORT[APDS9960_PIN].set_client(apds9960);
let grant_cap = create_capability!(capabilities::MemoryAllocationCapability);
let proximity = static_init!(
capsules::proximity::ProximitySensor<'static>,
capsules::proximity::ProximitySensor::new(apds9960 , board_kernel.create_grant(&grant_cap)));
kernel::hil::sensors::ProximityDriver::set_client(apds9960, proximity);