3个不稳定版本

0.2.1 2021年5月6日
0.2.0 2019年2月27日
0.1.0 2018年3月12日

1035硬件支持 中排名

Download history 91/week @ 2024-03-25 155/week @ 2024-04-01 62/week @ 2024-04-08 103/week @ 2024-04-15 123/week @ 2024-04-22 104/week @ 2024-04-29 75/week @ 2024-05-06 88/week @ 2024-05-13 125/week @ 2024-05-20 114/week @ 2024-05-27 94/week @ 2024-06-03 50/week @ 2024-06-10 83/week @ 2024-06-17 81/week @ 2024-06-24 3/week @ 2024-07-01 20/week @ 2024-07-08

每月195 次下载

MIT/Apache

45KB
801

rust_gpiozero

Build Status

一个用于Raspberry Pi的GPIO设备的简单接口。

这个库基于GPIOZero库。

目的是通过隐藏底层复杂性,用Rust语言实现物理计算,减少编码量。

库使用BCM引脚编号

示例:闪烁LED


use rust_gpiozero::*;

fn main() {
    // Create a new LED attached to Pin 17
    let mut led = LED::new(17);

    // on_time = 2 secs, off_time=3 secs
    led.blink(2.0,3.0);

    // prevent program from exiting immediately
    led.wait();
}

示例:等待按钮按下


use rust_gpiozero::*;

fn main() {
    // Create a button which is attached to Pin 17
    let mut button = Button::new(17);
    button.wait_for_press(None);
    println!("button pressed");
}

与使用sysfs_gpio在Raspberry Pi上闪烁LED的crate相比


extern crate sysfs_gpio;

use sysfs_gpio::{Direction, Pin};
use std::thread::sleep;
use std::time::Duration;

fn main() {
    let my_led = Pin::new(127); // number depends on chip, etc.
    my_led.with_exported(|| {
        loop {
            my_led.set_value(0).unwrap();
            sleep(Duration::from_millis(200));
            my_led.set_value(1).unwrap();
            sleep(Duration::from_millis(200));
        }
    }).unwrap();
}

安装/使用

要使用rust_gpiozero,首先将其添加到您的Cargo.toml中

[dependencies]
 rust_gpiozero = "0.2.0"

在Raspberry Pi上直接编译项目可能需要很长时间,具体取决于型号。理想情况下,您将交叉编译项目,然后在Raspberry Pi上运行。

更多信息

特性

以下特性是计划中的

  • 支持embedded-hal
  • 支持加速度计、温度传感器等常见设备

变更日志

CHANGELOG.md

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则任何有意提交以包含在作品中的贡献,如Apache-2.0许可证中定义,均应如上所述双重许可,无需任何额外的条款或条件。

感谢您对rust_gpiozero感兴趣。我是一个Rust语言的初学者,刚开始使用这种语言!我正在使用这个项目来学习更多关于Rust的知识。请随时提供反馈或发送PR。您的经验和反馈也将惠及其他使用此库的人。

鸣谢

这个库的实现离不开GPIOZero和rppal的维护者们的出色工作。GPIOZerorppal

依赖项

~380KB