#健康 #驱动 #嵌入式HAL驱动 #心脏 #血氧计

无std max3010x

适用于可穿戴健康设备的MAX3010x高灵敏度脉冲血氧计和心率传感器跨平台Rust驱动程序

1个不稳定版本

使用旧的Rust 2015

0.1.0 2019年3月10日

#2231嵌入式开发

MIT/Apache

47KB
809

Rust MAX3010x高灵敏度脉冲血氧计和心率传感器可穿戴健康设备驱动程序

crates.io Docs Build Status Coverage Status Maintenance Intention

这是一个基于embedded-hal特质的MAX3010x高灵敏度脉冲血氧计和心率传感器跨平台Rust驱动程序,适用于可穿戴健康设备。

此驱动程序允许您

  • 获取FIFO中可用的样本数量。见 get_available_sample_count()
  • 获取从FIFO中丢失的样本数量。见 get_overflow_sample_count()
  • 从FIFO中读取样本。见 read_fifo()
  • 执行温度测量。见 read_temperature()
  • 切换到心率、血氧计或多LED模式。见 into_multi_led()
  • 设置样本平均。见 set_sample_averaging()
  • 设置LED脉冲幅度。见 set_pulse_amplitude()
  • 设置LED脉冲宽度。见 set_pulse_width()
  • 设置采样率。见 set_sampling_rate()
  • 设置ADC范围。见 set_adc_range()
  • 在多LED模式下设置LED时间槽。 set_led_time_slots()
  • 启用/禁用FIFO回滚。见 enable_fifo_rollover()
  • 清除FIFO。见 clear_fifo()
  • 唤醒和关闭设备。见 shutdown()
  • 执行软件重置。请参阅 reset()
  • 获取设备部分和版本ID。请参阅 get_part_id()
  • 中断
    • 读取所有中断的状态。请参阅 read_interrupt_status()
    • 设置FIFO接近满中断级别。请参阅 set_fifo_almost_full_level_interrupt()
    • 启用/禁用FIFO接近满中断。请参阅 enable_fifo_almost_full_interrupt()
    • 启用/禁用环境光消除溢出中断。请参阅 enable_alc_overflow_interrupt()
    • 启用/禁用温度就绪中断。请参阅 enable_temperature_ready_interrupt()
    • 启用/禁用新FIFO数据就绪中断。请参阅 enable_new_fifo_data_ready_interrupt()

设备

MAX30102是一款集成的脉搏血氧和心率监控模块。它包括内部LED、光电探测器、光学元件和具有环境光抑制的低噪声电子设备。MAX30102为移动和可穿戴设备的设计简化了整个系统解决方案。

MAX30102使用单个1.8V电源和一个独立的3.3V电源为内部LED供电。通信通过标准I2C兼容接口进行。该模块可以通过软件关闭,无待机电流,使电源始终保持供电状态。

数据表

此驱动程序至少与以下设备兼容:MAX30102。

用法

请在此存储库中找到使用硬件的更多示例:driver-examples

extern crate linux_embedded_hal as hal;
extern crate max3010x;
use max3010x::{Max3010x, Led, SampleAveraging};

fn main() {
  let dev = hal::I2cdev::new("/dev/i2c-1").unwrap();

  let mut sensor = Max3010x::new_max30102(dev);
  let mut sensor = sensor.into_heart_rate().unwrap();
  sensor.set_sample_averaging(SampleAveraging::Sa4).unwrap();
  sensor.set_pulse_amplitude(Led::All, 15).unwrap();
  sensor.enable_fifo_rollover().unwrap();

  let mut data = [0; 3];
  let samples_read = sensor.read_fifo(&mut data).unwrap();

  // get the I2C device back
  let dev = max30102.destroy();
}

状态

  • 与MAX30102的兼容性
  • 与MAX30101的兼容性
  • 与MAX30105的兼容性

支持

有关问题、问题、功能请求和其他更改,请在github项目中提交问题

许可

根据以下任一项许可

贡献

除非您明确声明,否则根据Apache-2.0许可定义的,您有意提交以包含在工作中的任何贡献,应如上所述双重许可,没有任何额外条款或条件。

依赖

~71KB