pub struct ServoSpec {
pub min_pulse: u32,
pub max_pulse: u32,
pub min_angle: f32,
pub max_angle: f32,
}
Expand description
Servo motor specification
Fields§
§min_pulse: u32
§max_pulse: u32
§min_angle: f32
§max_angle: f32
Implementations§
Source§impl ServoSpec
impl ServoSpec
Sourcepub fn mg996r() -> Self
pub fn mg996r() -> Self
Examples found in repository?
examples/basic.rs (line 7)
3fn main() {
4 let mut system = ServoSystem::new();
5
6 // MG996R 6 channels robot arms example
7 system.add_channel(ServoChannel::new(0, "base", ServoSpec::mg996r()));
8 system.add_channel(ServoChannel::new(1, "shoulder", ServoSpec::mg996r()));
9 system.add_channel(ServoChannel::new(2, "elbow", ServoSpec::mg996r()));
10 system.add_channel(ServoChannel::new(3, "wrist_pitch", ServoSpec::mg996r()));
11 system.add_channel(ServoChannel::new(4, "wrist_roll", ServoSpec::mg996r()));
12 system.add_channel(ServoChannel::new(5, "gripper", ServoSpec::mg996r()));
13
14 // angle control
15 if let Some(servo) = system.get_channel_mut(0) {
16 servo.set_angle(90.0);
17 println!("Base angle = {}, pulse = {}", servo.angle, servo.get_pulse());
18 }
19
20 // pulse control
21 if let Some(servo) = system.get_channel_mut(1) {
22 servo.set_pulse(350);
23 println!("Shoulder pulse=350 -> angle = {}", servo.angle);
24 }
25}
Sourcepub fn angle_to_pulse(&self, angle: f32) -> u32
pub fn angle_to_pulse(&self, angle: f32) -> u32
Convert angle -> pulse
Sourcepub fn pulse_to_angle(&self, pulse: u32) -> f32
pub fn pulse_to_angle(&self, pulse: u32) -> f32
Convert pulse -> angle
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ServoSpec
impl<'de> Deserialize<'de> for ServoSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ServoSpec
impl RefUnwindSafe for ServoSpec
impl Send for ServoSpec
impl Sync for ServoSpec
impl Unpin for ServoSpec
impl UnwindSafe for ServoSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more