sybot_lib

Crates.io version ![sybot_lib: rustc 1.68+]

A simple library to control groups of components and robots.

Extension library for the stepper_lib.

-- UNFINISHED DOCS --

Full documentation will be added soon

Goal

In action

The following example creates a new SyArm robot, runs all setup functions and executes a GCode-script.

Click to show Cargo.toml

```toml

...

[dependencies]

Include the library configured for the raspberry pi

sybot_lib = { version = "0.8.2, features = [ "rasp" ] }

...

```

```rust use sybotlib::{SyArm, Robot, JsonConfig}; use sybotlib::intpr::Interpreter; use sybotlib::intpr::gcode::initintpr;

fn main() -> std::io::Result<()> { // Load the standard-partlibs in order to use motor names as data // // json // "ctrl": { // "consts": "MOT_17HE15_1504S", // Motor name, see // // <https://docs.rs/stepper_lib/0.11.1/stepper_lib/data/struct.StepperConst.html#associatedconstant.MOT_17HE15_1504S> // "pin_dir": 17, // "pin_step": 26 // }, // let libs = sybotlib::partlib::createstd_libs();

// Create the robot out of the [configuration file]
// (https://github.com/SamuelNoesslboeck/sybot_lib/blob/master/res/SyArm_Mk1.conf.json)
let mut syarm = SyArm::from_conf(
    JsonConfig::read_from_file(&libs, "res/SyArm_Mk1.conf.json")
)?;

// Run setup functions
syarm.setup();
// Enables async movements (multiple motors moving at once)
syarm.setup_async();

// DEBUG
    // Select "NoTool" at index 2
    syarm.set_tool_id(2);
// 

// Create a new GCode interpreter
let intpr = init_intpr();

// Run a GCode script
dbg!(intpr.interpret_file(&mut syarm, "res/gcode/basicYZpos.gcode"));

Ok(())

} ```

(Source: "examples/in_action.rs")

Features

For more features, see stepper_lib#features

Issues and requests

If you encounter any issues or if you have any request for new features, feel free to create an issue at the GitHub repo.