2 个版本
0.1.1 | 2023 年 1 月 24 日 |
---|---|
0.1.0 | 2023 年 1 月 24 日 |
#584 在 硬件支持
67KB
1.5K SLoC
jetson-gpio-rust
这是 NVIDIA Python 库的 Rust 版本,用于控制选定 Jetson 设备的 GPIO 引脚。它基于 jetson-gpio Python 库。
在 crates.io 上找到该软件包。
入门指南
此软件包的使用与 Python 库非常相似。主要区别在于,Python 库使用全局的 GPIO
对象,而此软件包使用 GPIO
结构体。这意味着您在使用之前需要创建一个 GPIO
结构体。使用 new
方法创建 GPIO
结构体。
use jetson_gpio::{GPIO, Direction, Level, Mode};
let mut gpio = GPIO::new();
gpio.setmode(Mode::BOARD).unwrap();
gpio.setup(vec![7, 11], Direction::OUT, Some(Level::LOW)).unwrap();
gpio.output(vec![7, 11], vec![Level::HIGH, Level::HIGH]).unwrap();
gpio.cleanup(None).unwrap();
此示例设置两个引脚为输出,并将它们设置为初始 LOW 值。然后,将引脚设置为 HIGH,最后清理 GPIO 引脚。使用 unwrap
方法展开由方法返回的 Result
。如果发生错误,程序将崩溃(您应该在代码中正确处理错误 🤓)。
通过将以下内容添加到您的 Cargo.toml
文件开始使用此软件包
[dependencies]
jetson_gpio = { version = "0.1.0" }
引脚编号模式
与 Python 库一样,您在使用 GPIO 引脚之前必须指定引脚编号模式。可以使用 setmode
方法设置引脚编号模式。引脚编号模式可以是以下之一
Mode::BOARD
- 引脚号是 Jetson 板上的物理引脚号。Mode::BCM
- 引脚号是 Broadcom SOC 通道号。Mode::TEGRA_SOC
- 引脚号是 Tegra SOC 通道号。Mode::CVM
- 引脚号是 CVM 通道号。
使用此库,您可以将 GPIO 引脚配置为输入或输出。您还可以读取输入引脚的当前值或设置输出引脚的值。
软件包支持
此软件包在以下 Jetson 设备上进行了测试
- Jetson Xavier NX 生产模块与第三方载体板(JP4.6.1)
此软件包处于开发中,目前仅支持 Python 库提供的功能子集。当前支持的板
- Jetson Orin
- Jetson Xavier NX
支持的引脚编号模式
模式::BOARD
模式::BCM
仅支持没有事件的 GPIO 引脚。
许可证
此软件包根据 MIT 许可证授权。有关更多信息,请参阅 LICENSE 文件。
贡献
欢迎贡献!如果您有任何问题或建议,请在 GitHub 仓库 上打开一个问题或拉取请求。
待办事项
目前,此软件包仅支持 Python 库提供的功能子集。以下功能正在计划中
- 为所有 Jetson 板添加引脚定义
- 添加所有引脚模式的支持
- 添加 PWM 引脚的支持
- 在所有 Jetson 板上测试库
依赖关系
~130KB