#accelerometer #嵌入式-hal驱动程序 #mems

无std bma400

BMA400是一款平台无关的Rust驱动程序,适用于12位超低功耗3轴加速度计

3个不稳定版本

0.2.0 2023年10月29日
0.1.1 2023年7月12日
0.1.0 2023年3月14日

#603 in 嵌入式开发

MIT/Apache

1MB
5.5K SLoC

bma400-rs

使用embedded-hal特质实现的BMA400加速度计的平台无关Rust驱动程序

状态

  • 支持基本传感器功能
  • 支持SPI
  • 支持可编程(自定义)中断
  • 测试
  • 文档
  • 更多示例

基本用法

I²C - cargo add bma400 --features=i2c-default

// Import an embedded hal implementation
use linux_embedded_hal::I2cdev; // replace as appropriate w/ hal crate for your MCU
use bma400::{
    BMA400,
    PowerMode,
    Scale,
};
// i2c implements embedded-hal i2c::WriteRead and i2c::Write
let mut accelerometer = BMA400::new_i2c(i2c).unwrap();

SPI - cargo add bma400 --features=spi

// Import an embedded hal implementation
use linux_embedded_hal::{
 Spidev, 
 Pin
}; // replace as appropriate w/ hal crate for your MCU
use bma400::{
    BMA400,
    PowerMode,
    Scale,
};
// spi implements embedded-hal spi::Transfer and spi::Write
// csb_pin implements embedded-hal digital::v2::OutputPin
let mut accelerometer = BMA400::new_spi(spi, csb_pin).unwrap();

从这里开始,两者的API相同

// The accelerometer is in sleep mode at power on
// Let's wake it up and set the scale to 2g
accelerometer
    .config_accel()
    .with_power_mode(PowerMode::Normal)
    .with_scale(Scale::Range2G)
    .write().unwrap();
// Read a single measurment
if let Ok(measurement) = accelerometer.get_data() {
    assert_eq!(30, measurement.x);
    assert_eq!(16, measurement.y);
    assert_eq!(988, measurement.z);
}

有关在nrf52833上使用GPIO引脚映射到的触觉中断的完整示例,请参阅examples/

关于传感器

(来自制造商)

基本描述

12位,数字,三轴加速度传感器,具有智能片上运动和位置触发的中断功能。

主要功能

  • 小型封装尺寸
    • LGA封装(12针),尺寸2mm x 2mm,高度0.95mm
  • 超低功耗
    • 低功耗数据采集,性能不受影响(最高性能下<14.5 µA)
  • 可编程功能
    • 加速度范围±2g/±4g/±8g/±16g
    • 低通滤波器带宽=(0.24/0.48)*ODR,最大输出数据读取为800Hz
  • 片上FIFO
    • 传感器上集成1 KB FIFO
  • 片上中断功能
    • 自动低功耗/自动唤醒
    • 活动/非活动
    • 计步器(整体设备电流消耗4µA)
    • 活动识别(行走、跑步、静止不动)
    • 方向检测
    • 轻敲/双击
  • 数字接口
    • SPI(4线,3线)
    • I²C,
    • 2个中断引脚
  • VDDIO电压范围:1.2V至3.6V
  • 符合RoHS,无卤素

典型应用

  • 具有超低电流消耗的计步器,以延长电池寿命
  • 适用于移动应用程序和(智能)手表的先进系统电源管理
  • 健身应用程序/活动跟踪
  • 轻敲/双击感应
  • 掉落检测以记录保修信息
  • 用于气候控制和报警系统的门窗尺寸测量
  • 由纽扣电池供电的物联网应用,需要小于1µA的电流和自动唤醒功能

许可

根据您的选择,许可协议可以是以下之一

贡献

除非您明确声明,否则您根据Apache-2.0许可协议提交的任何有意包含在作品中的贡献,将按上述方式许可,不附加任何额外条款或条件。

依赖项