Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bryal/helion
Stream LED color data of captured screen to Adalight device
https://github.com/bryal/helion
Last synced: 3 months ago
JSON representation
Stream LED color data of captured screen to Adalight device
- Host: GitHub
- URL: https://github.com/bryal/helion
- Owner: bryal
- License: agpl-3.0
- Created: 2015-01-25T13:37:45.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2020-08-05T21:31:17.000Z (over 4 years ago)
- Last Synced: 2024-10-31T12:12:57.197Z (3 months ago)
- Language: Rust
- Homepage:
- Size: 1.1 MB
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Helion
Ambilight clone for windows written in Rust, meant to be used with an
Arduino running
[LEDstream](https://github.com/adafruit/Adalight/tree/master/Arduino/LEDstream).[Test video](https://www.youtube.com/watch?v=3ZARz9ELfA4&feature=youtu.be)
# Config
Helion uses configuration generated by
[HyperCon](https://github.com/tvdzwan/hyperion/wiki/configuration).
Config must be located in the current working directory, which is same
as where the .exe is located when not run from command line.Notes about config sections:
* `Device`:
* `Output`: Serial port to use, e.g. "COM2" on windows.* `Baudrate`: Rate to use when sending pixel buffer to Arduino, LEDstream expects this to be 115200.
* `Type`: Not read, but must be one where `Output` and `Baudrate` fields exist.
* `Construction`: Led placement. Everything is read.
* `Image Process`: Led capture areas. Blackborder stuff not read.
* `Frame Grabber`:
* `Width` and `Height`, **REQUIRED**: Determines to what
resolution frame is resized when analyzing colors, smaller is
faster. Works best if dimensions are divisors of the native
resolution. If a field is 0, native resolution is used in that
dimension.* `Interval`: How often to capture the frame. If no smoothing is
enabled, this also decides LED refresh rate. FPS = 1/interval.* `Smoothing`:
* `Type`: Type of smoothing to use, currently only `Linear
smoothing`, no direct plans to add anything else.* `Time [ms]`: The time constant to use when smoothing. Larger
values gives slower transition.* `Linear Smoothing`: `"previous value" + ("value
difference" * max("Frame time difference" / "Time constant",
1))`* `Update Freq. [Hz]`: How often to update LEDs. Should be higher
than FPS of `Frame Grabber` -> `Interval`. When no new frame has
been captured, just keep smoothing the colors to previous frame.* `Colors`: Everything is read.
* `External`: There are no plans to add support for anything under
this tab. The stuff here is really just for Raspberry Pis with XBMC
and stuff.# Building
```
cargo build --release
```# License
AGPLv3
Copyright (C) 2019 Johan Johansson
This program is free software: you can redistribute it and/or
modify it under the terms of the GNU Affero General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Affero General Public License for more details.See [LICENSE](./LICENSE)