A library for the Raspberry Pi Sense HAT LED Screen
The Raspberry Pi Sense HAT has an 8×8 RGB LED matrix that provides its own driver for the Linux framebuffer.
This library provides a thread-safe, strong-typed, high-level API for the LED matrix, treating it as you would any other screen on a Linux box.
Usage
To use this crate with the default features, add this to your Cargo.toml
:
[dependencies]
sensehat-screen = "0.1"
or, to manually specify the features::
[dependencies]
sensehat-screen = { version = "0.1", default-features = false, features = ["fonts"] }
Then you can use it with your crate:
extern crate sensehat_screen
use ;
Documentation
You can find the documentation for the latest release at: https://docs.rs/sensehat-screen.
It contains a general description of the types contained in the library, it is a good to place to get familiar with the methods available.
Examples
Source Code Examples
You can find working examples in the source code.
Basic Example
The following program shows how to:
- Open the framebuffer file-descriptor for the LED matrix screen (
screen
) - Define a pixel color (
red_pixel
) - Define a slice of pixel colors that represents the screen (
all_64_pixels
) - Turn that slice into a valid pixel frame
- Show the frame on the screen
extern crate sensehat_screen;
use ;
Features
default
By default, the linux-framebuffer
, fonts
, offset
, rotate
, clip
, and serde-support
features are included.
linux-framebuffer
In default
. Use the Linux framebuffer to write to the LED matrix.
fonts
In default
. A collection of legacy 8x8 fonts, renderable on the LED matrix.
See this for more information.
offset
In default
. Support for offsetting the PixelFrame
left/right/top/bottom. Requires clip
.
rotate
In default
. Support for rotating PixelFrame
s by 90-degree steps.
clip
In default
. Support for combining, and clipping two PixelFrame
s onto a single frame.
serde-support
In default
. Enables support for serialization/deserialization with serde
.
big-endian
Uses big-endian format, suitable for non-AMD64/x86-64 processors. This is used when encoding/decoding 16-bit RGB565 to/from 24-bit RGB.
Feature Wish List
-
linux-framebuffer
- Indefault
. Use the Linux framebuffer to write to the LED matrix. -
fonts
- Indefault
. A collection of legacy 8x8 fonts, renderable on the LED matrix. -
offset
- Indefault
. Support for offsetting thePixelFrame
left/right/up/down. -
rotate
- Indefault
. Support for rotatingPixelFrame
s by 90-degree steps. -
clip
- Indefault
. Support for combining, and clipping twoPixelFrame
s onto a single frame. -
serde-support
- Indefault
. Enables support for serialization/deserialization withserde
. -
big-endian
- Uses big-endian format, suitable for non-AMD64/x86-64 processors.
Contribute
Please do contribute! Issues and pull requests are welcome.
Thank you for your help improving software one changelog at a time!