Skip to content

yannart/rainbow-hat-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust driver for Rainbow HAT

Build Status MIT licensed Minimum rustc version Documentation

This repository contains an unofficial Rust driver library for Rainbow HAT, for use with Raspberry Pi OS on your Raspberry Pi.
For the official Python driver see: https://github.com/pimoroni/rainbow-hat.
For the official AndroidThings driver see: https://github.com/androidthings/contrib-drivers/tree/master/rainbowhat.

This library depends on https://github.com/golemparts/rppal for access to the Raspberry Pi peripherals.

Current periferials supported:

Periferial Supported Structs
Multicolour LEDs X rainbow_hat_rs::apa102::APA102
Four 14-segment alphanumeric displays X rainbow_hat_rs::alphanum4::Alphanum4
Three capacitive touch buttons X rainbow_hat_rs::touch::Buttons
Temperature and pressure sensor
Blue, green and red LEDs X rainbow_hat_rs::lights::Lights
Piezo buzzer X rainbow_hat_rs::buzzer::Buzzer

References

Usage

Add a dependency for rainbow-hat-rs to your Cargo.toml.

[dependencies]
rainbow-hat-rs = "0.2.1"

Call new() on any of the peripherals to construct a new instance.

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

See folder examples.

Multicolour LEDs

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()?;

Lights

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()

Buttons

let mut buttons = Buttons::new()?;

// Identify if button A is pressed
if buttons.a.is_pressed() {
    println!("Button A touched!");
}

Display

let mut alphanum = Alphanum4::new()?;

// Print a message on the display
alphanum.print_str("1234", false);
alphanum.show()?;

Buzzer

let mut buzzer = Buzzer::new()?;

// Play a note
buzzer.midi_note(69, 0.3)?;

Caution

Always be careful when working with the Raspberry Pi's peripherals, especially if you attach any external components to the GPIO pins. Improper use can lead to permanent damage.

Copyright and license

Copyright (c) 2020 Yann Nicolas. Released under the MIT license.

About

Rust Driver for the Rainbow HAT for Raspberry Pi.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages