A color pattern sequencer, intended for groups of RGB LEDs
Check out the video in this tweet
```rust use choreographer::{ engine::{Behavior, Sequence}, script, }; use groundhog::std_timer::Timer; use std::thread::sleep; use std::time::Duration;
// Timer with 1us ticks type MicroTimer = Timer<1_000_000>;
// Create a script for a single LED with up to
// eight different steps in the sequence
let mut script: Sequence
// This script will: // * Keep the LED black for 1s // * Fade from black to white and back in a sine pattern over 2.5s // * Remain at black for 1s // * End the sequence script.set(&script! { | action | color | durationms | periodmsf | phaseoffset_ms | repeat | | solid | BLACK | 1000 | 0.0 | 0 | once | | sin | WHITE | 2500 | 2500.0 | 0 | once | | solid | BLACK | 1000 | 0.0 | 0 | once | }, Behavior::OneShot);
// Poll the script and update the LED until the // script has completed (4.5s or so) while let Some(color) = script.poll() { println!("Color: {:?}", color); setled(color); sleep(Duration::frommillis(10)); }
// Now we could leave the LED off, or set a // new sequence on some event! ```
This project is licensed under the Mozilla Public License v2.0.