use hermes_five::animations::{Animation, Easing, Keyframe, Segment, Track};
use hermes_five::devices::Servo;
use hermes_five::hardware::{Board, BoardEvent};
use hermes_five::pause;
#[hermes_five::runtime]
async fn main() {
let board = Board::run();
board.on(BoardEvent::OnReady, |board: Board| async move {
let servo = Servo::new(&board, 22, 0).unwrap();
let mut animation = Animation::default().with_segment(
Segment::default()
.with_track(
Track::new(servo)
.with_keyframe(Keyframe::new(180, 0, 500).set_transition(Easing::SineInOut))
.with_keyframe(
Keyframe::new(90, 1000, 2000).set_transition(Easing::SineInOut),
),
)
.set_fps(100)
.set_repeat(true),
);
animation.play();
println!("This will print immediately");
pause!(3000);
println!("This will print 3 seconds later");
animation.stop();
animation.play();
Ok(())
});
}