4 个版本

0.1.3 2024 年 7 月 13 日
0.1.2 2024 年 3 月 11 日
0.1.1 2024 年 3 月 11 日
0.1.0 2024 年 3 月 11 日

嵌入式开发 中排名第 215

Download history 8/week @ 2024-04-26 81/week @ 2024-05-03 1/week @ 2024-05-17 106/week @ 2024-07-12 7/week @ 2024-07-19 69/week @ 2024-07-26 8/week @ 2024-08-02

每月下载量 190

MIT 许可证

115KB
2K SLoC

a121-rs

docs.rs crates.io crates.io

a121-rs 是一个 Rust 库,提供对 Acconeer A121 V-Band 雷达传感器的接口的高级抽象。它适用于嵌入式系统,通过 embedded-hal 特性提供异步操作,非常适合无 std 环境使用。

a121-rs 旨在简化需要精确距离测量和存在检测的应用程序的开发过程,利用 A121 雷达传感器的独特功能。

功能

a121-rs 提供了许多功能,旨在使与 A121 传感器的交互尽可能简单

  • 无标准库依赖:完全兼容 no_std,适用于嵌入式系统。
  • 嵌入式-HAL 异步:利用来自 embedded-hal 的异步特性,以非阻塞方式操作传感器。
  • 可配置:提供灵活的 API,可配置雷达传感器以进行各种测量模式和参数。
  • 提供示例:包括 ESP32 和 STM32 等流行硬件平台的示例。

支持的操作系统模式

  • 距离测量:配置雷达对对象的精确距离测量。
  • 存在检测:检测配置检测区域中对象或人的存在。(即将推出)

依赖项

以下依赖项是使用 a121-rs 所必需的

  • Acconeer A121 静态库(以及如果启用功能,则距离和存在检测的检测库)
  • 'arm-none-eabi-gcc (GNU Arm Embedded Toolchain 9-2020-q2-update) 9.3.1 20200408' 用于构建用于 stm32 示例的 C 包装器
  • esp 工具链,用于构建 esp 示例,通过 espup 安装(https://github.com/esp-rs/espup

支持的目标

支持的平台取决于 Acconeer A121 静态库的可用性。目前,以下目标得到支持

  • arm-none-eabihf (gcc, armcc, armclang)
  • esp xtensa 和 riscv

入门

要将包含到您的项目中,请将以下内容添加到您的Cargo.toml

[dependencies]
a121-rs = "0.1"

静态库期望实现数学函数,如sqrtsin。如果您使用的平台不提供这些函数,可以通过启用libm功能来使用libm crate进行浮点运算。

请参阅文档以获取详细的使用说明和示例。

功能标志

feature 描述
distance 启用距离测量模块
presence 启用存在检测模块(即将推出)
libm 使用libm crate进行浮点运算
nightly-logger 如果C封装的日志无法与稳定的Rust编译,启用此功能以使用nightly Rust和自定义日志记录器。

示例

查看examples/目录,了解如何使用各种微控制器单元与a121-rs。这些示例涵盖了基本设置和常见用例,以帮助您快速入门。

注意:对于esp32c6示例,您需要完成额外步骤才能成功编译。

  • 将静态库(.a)添加到acc文件夹中,您可以从Acconeer获取这些库。
  • 运行export-esp.sh脚本以将riscv32-esp-elf-gcc添加到您的路径(由espup生成)。
  • 设置两个环境变量
    • CROSS_COMPILE="riscv32-esp-elf"
    • CPATH="/home/<user>/.rustup/toolchains/esp/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/riscv32-esp-elf/include"(将<user>替换为您的用户名,并在您的系统上找到特定版本)

开发和贡献

欢迎为做出贡献!无论是添加新功能、修复错误还是改进文档,请随时提出问题和提交拉取请求。

许可协议

a121-rs在MIT许可协议下分发。有关更多信息,请参阅LICENSE


依赖项

~2.3–5MB
~102K SLoC