5个版本 (2个稳定版)
1.1.0 | 2024年5月2日 |
---|---|
1.0.0 | 2024年1月17日 |
0.1.2 | 2023年3月22日 |
0.1.1 | 2023年3月17日 |
0.1.0 | 2020年2月8日 |
#126 在 硬件支持
每月21次下载
用于 aimu
36KB
662 行
Rust BMI160 惯性测量单元驱动程序
这是一个使用嵌入式-hal
特质,针对BMI160小型、低功耗惯性测量单元的平台无关Rust驱动程序。
此驱动程序允许您
- 获取最新的传感器数据。见:
data()
。 - 获取按配置范围缩放的最新传感器数据。见:
data_scaled()
。 - 设置加速度计、陀螺仪和磁力计的电源模式。见:
set_accel_power_mode()
。 - 设置加速度计和陀螺仪的量程,见:
set_accel_range()
和set_gyro_range()
。 - 获取传感器状态。见:
status()
。 - 获取电源模式。见:
power_mode()
。 - 获取芯片ID。见:
chip_id()
。
BMI160是一种惯性测量单元(IMU),由先进的3轴低重力加速度计和低功耗3轴陀螺仪组成。它专为低功耗、高精度的6轴和9轴应用而设计,适用于手机、平板电脑、可穿戴设备、遥控器、游戏手柄、头戴式设备和玩具。
BMI160采用紧凑的14针2.5 × 3.0 × 0.83 mm³ LGA封装。当加速度计和陀螺仪处于全操作模式时,功耗通常为925 μA,使得电池供电设备能够实现始终开启的应用。
可以连接更多博世传感技术公司的传感器,例如地磁传感器(BMM150),作为从设备通过二级I2C接口连接。在这种配置下,BMI160控制外部传感器的数据采集,并将所有传感器的同步数据存储在寄存器数据中,并可额外存储在内置FIFO中。
BMI160除了用于连接主机的灵活的主接口(I2C或SPI)外,还提供了一个额外的二级接口。该二级接口可以用SPI模式与摄像头模块配合使用,用于OIS(光学图像稳定)应用,或在高级游戏用例中使用。
用法
要使用此驱动程序,请导入此crate和一个embedded_hal
实现,然后实例化设备。
请在此存储库中找到使用硬件的更多示例:driver-examples
extern crate linux_embedded_hal as hal;
use bmi160::{AccelerometerPowerMode, Bmi160, GyroscopePowerMode, SensorSelector, SlaveAddr};
fn main() {
let dev = hal::I2cdev::new("/dev/i2c-1").unwrap();
let address = SlaveAddr::default();
let mut imu = Bmi160::new_with_i2c(dev, address);
imu.set_accel_power_mode(AccelerometerPowerMode::Normal)
.unwrap();
imu.set_gyro_power_mode(GyroscopePowerMode::Normal).unwrap();
loop {
let data = imu.data(SensorSelector::new().accel().gyro()).unwrap();
let accel = data.accel.unwrap();
let gyro = data.gyro.unwrap();
println!(
"Accelerometer: x {:5} y {:5} z {:5}, \
Gyroscope: x {:5} y {:5} z {:5}",
accel.x, accel.y, accel.z, gyro.x, gyro.y, gyro.z
);
}
}
最低支持的Rust版本(MSRV)
此crate保证可以在稳定Rust 1.62及更高版本上编译。它可能可以用旧版本编译,但新补丁版本可能会有所变化。
支持
有关问题、问题、功能请求和其他更改,请在github项目中提交问题。
许可证
根据您的选择,许可如下:
- Apache许可证版本2.0(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您有意提交的任何贡献,根据Apache-2.0许可证定义的,应按上述方式双许可,不附加任何额外条款或条件。
依赖关系
~56KB