3个不稳定版本
0.2.1 | 2021年7月25日 |
---|---|
0.2.0 | 2020年8月24日 |
0.1.0 | 2020年8月12日 |
#1246 in 硬件支持
42 每月下载次数
用于 applehat
51KB
1K SLoC
Rainbow HAT的Rust驱动程序
此仓库包含了一个非官方的用于Rainbow HAT的Rust驱动库,适用于Raspberry Pi的Raspberry Pi OS。
有关官方Python驱动,请参阅:https://github.com/pimoroni/rainbow-hat。
有关官方AndroidThings驱动,请参阅:https://github.com/androidthings/contrib-drivers/tree/master/rainbowhat。
此库依赖于https://github.com/golemparts/rppal以访问Raspberry Pi的外设。
当前支持的外设
外设 | 支持 | 结构体 |
---|---|---|
多彩LED | X | rainbow_hat_rs::apa102::APA102 |
四个14段数字显示 | X | rainbow_hat_rs::alphanum4::Alphanum4 |
三个电容式触摸按钮 | X | rainbow_hat_rs::touch::Buttons |
温度和压力传感器 | ||
蓝色、绿色和红色LED | X | rainbow_hat_rs::lights::Lights |
蜂鸣器 | X | rainbow_hat_rs::buzzer::Buzzer |
参考
用法
在您的Cargo.toml
中添加对rainbow-hat-rs
的依赖。
[dependencies]
rainbow-hat-rs = "0.2.0"
在任何外设上调用new()
以构建一个新的实例。
use rainbow_hat_rs::lights::Lights;
use rainbow_hat_rs::alphanum4::Alphanum4;
use rainbow_hat_rs::touch::Buttons;
use rainbow_hat_rs::apa102::APA102;
use rainbow_hat_rs::buzzer::Buzzer;
let mut apa102 = APA102::new()?;
let mut lights = Lights::new()?;
let mut buttons = Buttons::new()?;
let mut alphanum = Alphanum4::new()?;
let mut buzzer = Buzzer::new()?;
示例
请参阅文件夹examples。
多彩LED
let mut apa102 = APA102::new()?;
// Sets color for all LED.
apa102.set_all(255, 0, 0, 0.5);
// Sets color for first LED.
apa102.set_pixel(0, 0, 255, 0, 0.5);
// Shows on the device.
apa102.show()?;
灯光
let mut lights = Lights::new()?;
// Turn on red and green lights
lights.rgb(true, true, false);
// Turn off red light
lights.red.off()
// Turn on blue light
lights.blue.on()
// Toggle green light
lights.green.toggle()
按钮
let mut buttons = Buttons::new()?;
// Identify if button A is pressed
if buttons.a.is_pressed() {
println!("Button A touched!");
}
显示
let mut alphanum = Alphanum4::new()?;
// Print a message on the display
alphanum.print_str("1234", false);
alphanum.show()?;
蜂鸣器
let mut buzzer = Buzzer::new()?;
// Play a note
buzzer.midi_note(69, 0.3)?;
注意
在处理Raspberry Pi的外设时,请务必小心,特别是如果您将任何外部组件连接到GPIO引脚。不当使用可能导致永久损坏。
版权和许可证
版权(c)2020 Yann Nicolas。在MIT许可证下发布。
依赖关系
~380KB