diff --git a/spinnyboy_rust/src/bin/dc_driver/dshot.rs b/spinnyboy_rust/src/bin/dc_driver/dshot.rs index 7249a05..c5e4a97 100644 --- a/spinnyboy_rust/src/bin/dc_driver/dshot.rs +++ b/spinnyboy_rust/src/bin/dc_driver/dshot.rs @@ -323,7 +323,7 @@ impl<'a> DShot<'a> { let erpm = (60 * 1_000_000) / period_ms; let rpm = erpm/XING_EPRO_22_POLES; - self.rpm.set(Some(rpm)) + self.rpm.set(Some((rpm as f32 / 1.7) as _)) } } } diff --git a/spinnyboy_rust/src/bin/main.rs b/spinnyboy_rust/src/bin/main.rs index 834c2da..8905581 100644 --- a/spinnyboy_rust/src/bin/main.rs +++ b/spinnyboy_rust/src/bin/main.rs @@ -126,8 +126,8 @@ fn main() -> ! { //PID-Controller let loop_time = Duration::from_micros(10); let cfg = pid::PidConfigBuilder::default() - .kp(3.0) - .ki(1.0).output_limits(100.00, 2040.00) + .kp(2.0) + .ki(0.1).output_limits(100.00, 2040.00) .sample_time(loop_time) .filter_tc(0.1) .build() @@ -137,7 +137,7 @@ fn main() -> ! { let set_point = DEFAULT_TARGET_RPM; dshot_esc.arm(); let mut rpm = 0; - let mut control: f32 = 200.0; + let mut control: f32 = 600.0; // let timestamp = Instant::now(); loop { dshot_esc.process();