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
每月下载量 190
115KB
2K SLoC
a121-rs
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"
静态库期望实现数学函数,如sqrt
和sin
。如果您使用的平台不提供这些函数,可以通过启用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