#raspberry-pi #框架 #物联网

已删除 stepper_lib

用于控制电机、组件和物联网设备(例如树莓派)的控制器库

4 个版本

0.11.7 2023年6月6日
0.11.6 2023年6月1日
0.11.5 2023年5月22日
0.11.3 2023年4月20日
0.10.6 2023年4月15日

#175#raspberry-pi


用于 sybot_lib

自定义许可

785KB
4K SLoC

stepper_lib

Rust Crates.io version stepper_lib: rustc 1.68+

注意

库的许多方面(例如文档)尚未完全完成!(尽管我尽可能地频繁更新它)

这是一个用于所有类型机器人组件的库,包括步进电机、伺服电机和更复杂的电机组装的控制。目前所有实现都是针对树莓派,尽管目前正在为更多控制器制作新实现。

sybot_lib 的基础库 sybot_lib

目标

  • 创建一个用于在 Rust 中控制电机、读取传感器和进行基本计算的通用库。
  • 使其尽可能易于使用
  • 为爱好者和小发明家专门设计库
  • 提供静态和动态类型选项

实战

假设我们想要控制一个简单的步进电机(在这个例子中是一个 17HE15_1504_S),它通过连接到 BCM 引脚 27 和 19 的 PWM 控制器。

点击显示 Cargo.toml
# ...

[dependencies]
# Include the library configured for the raspberry pi
stepper_lib = { version = "0.11.6", features = [ "rasp" ] } 

# ...

use core::f32::consts::PI;

// Include the library
use stepper_lib::prelude::*;

// Pin declerations (BCM on raspberry pi)
const PIN_DIR : u8 = 27;
const PIN_STEP : u8 = 19;

// Define distance and max speed
const DELTA : Delta = Delta(2.0 * PI);
const OMEGA : Omega = Omega(10.0);

fn main() -> Result<(), stepper_lib::Error> {
    // Create the controls for a stepper motor
    let mut ctrl = StepperCtrl::new(StepperConst::MOT_17HE15_1504S, PIN_DIR, PIN_STEP);
    // Link the component to a system
    ctrl.write_link(LinkedData { 
        u: 12.0,    // System voltage in volts
        s_f: 1.5    // System safety factor, should be at least 1.0
    }); 
    ctrl.setup()?;

    // Apply some loads
    ctrl.apply_inertia(Inertia(0.2));
    ctrl.apply_force(Force(0.10));

    ctrl.set_omega_max(OMEGA);

    println!("Staring to move");
    ctrl.drive_rel(DELTA, 1.0)?;      // Move the motor
    println!("Distance {}rad with max speed {:?}rad/s done", DELTA, OMEGA);

    Ok(())
}

(来源:stepper_motor)

特性

  • 电机
  • 组件
  • 工具
    • 钳子
    • 轴向关节
  • 计算
    • 复杂的加速度曲线
    • 过载
    • 惯性
  • 测量
    • 简单开关
    • 旋转编码器
    • 自定义测量特性
  • 可扩展
  • 单位系统
  • 最小化
    • 完全支持 no_std 环境
    • 适用于基本嵌入式系统
  • 平台
    • 树莓派及其类似产品
    • Arduino

问题和请求

如果您遇到任何问题或对新增功能有任何请求,请随时在 GitHub 仓库 中创建一个问题。

依赖项

~7–15MB
~165K SLoC