8 个版本 (重大更改)

0.8.0 2024 年 4 月 6 日
0.7.0 2024 年 4 月 6 日
0.6.0 2023 年 8 月 6 日
0.5.0 2022 年 6 月 9 日
0.1.0 2021 年 11 月 28 日

#187硬件支持

Download history 55/week @ 2024-04-08 4/week @ 2024-05-20 2/week @ 2024-06-10 24/week @ 2024-07-01 57/week @ 2024-07-22

每月 81 次下载

MIT/Apache

43KB
969 代码行

as5600-rs

Rust 集成式硬件抽象层(HAL)驱动程序,用于 AS5600 无触点 12 位数字电位计

状态

  • 读取/解析所有设备寄存器
  • 写入配置设置
  • 设置零位置、最大位置、最大角度
  • 烧录设置和角度

示例

以下是如何在树莓派上使用此驱动程序

use std::{thread, time::Duration};

use as5600::As5600;
use linux_embedded_hal::I2cdev;

fn main() {
    let mut i2c = I2cdev::new("/dev/i2c-1").unwrap();
    let mut as5600 = As5600::new(i2c);
    let config = as5600.config().unwrap();
    println!("{:?}", config);

    thread::sleep(Duration::from_secs(2));

    let status = as5600.magnet_status().unwrap();
    let agc = as5600.automatic_gain_control().unwrap();
    let mag = as5600.magnitude().unwrap();
    let zmco = as5600.zmco().unwrap();

    println!("{:?}", status);
    println!("{:?}", agc);
    println!("{:?}", mag);
    println!("{:?}", zmco);

    thread::sleep(Duration::from_secs(2));

    loop {
        let value = as5600.angle().unwrap();
        println!("{:?}", value);
        thread::sleep(Duration::from_millis(100));
    }
}

TODO 对于一个更加轻松和文明的时代

[ ] 为 AS5600 制作一个带旋钮的木质外壳,该旋钮在正确的距离处旋转径向磁铁 [ ] 制作一个类似于 ebyte-e32-ui 的 CLI/GUI 工具 [ ] 使用 klask 进度条或类似的东西来显示当前磁铁角度

许可证

根据您选择,受以下任一许可证的约束:

贡献

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

依赖关系

~0.4–1MB
~21K SLoC