8 个版本
0.2.4 | 2023 年 6 月 20 日 |
---|---|
0.2.3 | 2023 年 6 月 19 日 |
0.1.2 | 2023 年 6 月 13 日 |
#4 in #PWM
每月下载量 46
7KB
84 行代码(不包括注释)
ESP IDF 伺服库
简介
这个包是对 esp-idf-sys
绑定的简单包装,使用 LEDC 模块使伺服控制更容易。
基本用法
创建基本的伺服配置 - 这一个针对 SG90 系列伺服电机。
let peripherals = Peripherals::take().unwrap();
let servo_cfg = ServoConfig {
// below are servo specific configurations
max_angle: 180,
min_width_us: 500,
max_width_us: 2500,
frequency: 50,
// choose your timer: see https://esp-rs.github.io/esp-idf-sys/esp_idf_sys/?search=ledc_timer_t_LEDC_TIMER_0
timer_number: 0,
// whichever pin the servo is attached to
pin: 5,
// the channel number: see https://esp-rs.github.io/esp-idf-sys/esp_idf_sys/type.ledc_channel_t.html
channel: 0,
// the speed mode: see https://esp-rs.github.io/esp-idf-sys/esp_idf_sys/constant.ledc_mode_t_LEDC_LOW_SPEED_MODE.html
speed_mode: 0,
};
初始化伺服
let servo = Servo::init(servo_cfg);
在您的程序中更改伺服的角度
loop {
for i in 0..180 {
servo.write_angle((i as f64));
FreeRtos::delay_ms(20);
println!("Angle: {}", servo.read_angle());
}
for i in (0..180).rev() {
servo.write_angle((i as f64));
FreeRtos::delay_ms(20);
println!("Angle: {}", servo.read_angle());
}
}
依赖项
~2–11MB
~108K SLoC