2 个版本
0.1.2 | 2023 年 8 月 10 日 |
---|---|
0.1.1 | 2023 年 1 月 14 日 |
#985 in 硬件支持
55KB
90 行
安装
在你的 "Cargo.toml" 文件中
[dependencies]
raslib = "*"
在 crates.io 检查当前版本。
概述
-
GPIO
该库提供了一个简单的结构来操作 GPIO 端口,称为
Gpio
。#[derive(Copy, Clone)] struct Gpio { pin: u32, }
实现
fn new(pin: u32) -> Result<Self, std::io::Error>; fn write(&self, value: bool) -> Result<(), std::io::Error>; fn read(&self) -> Result<bool, std::io::Error>; fn pin(&self) -> u32;
用法
use raslib::Gpio;
let gpio = Gpio::new(16)?; gpio.write(raslib::HIGH)?; let pin: u32 = gpio.pin();
根据版本的不同,Raspberry PI 有不同的 GPIO 引脚。请确保连接到正确的数字。
此示例已在 Raspberry PI 4 Model B 上进行测试,端口 16 不是一个电源(PWR)也不是一个地(GND)引脚!
请参阅其 示例。
-
L298N
该库提供了一个简单的方式来操作电机,使用 L298N 电路。因为电机线连接到 GPIO 引脚,所以
L298n
实际上使用了Gpio
。struct L298n { in1: Gpio, in2: Gpio, ena: Gpio, }
实现
fn new(in1: u32, in2: u32, ena: u32) -> Self; fn forward(&mut self) -> Result<(), io::Error>; fn backward(&mut self) -> Result<(), io::Error>; fn stop(&mut self) -> Result<(), io::Error>;
用法
use raslib::L298n;
let mut motor_left = L298n::new(18, 15, 14); let mut motor_right = L298n::new(9, 7, 25); motor_left.forward()?; motor_right.forward()?;
请参阅其 示例。
-
实用工具
该库提供了一个简单的
sleep
函数,使当前线程等待指定毫秒数。fn sleep(milliseconds: u64);
用法
raslib::sleep(1000); // waits 1 second.
为了使编写值更美观,它还提供了两个常量
const HIGH: bool = true; const LOW: bool = false;
用法
gpio.write(raslib::HIGH); gpio.write(true); // same as above