Crates.io | sybot_lib |
lib.rs | sybot_lib |
version | 0.8.2 |
source | src |
created_at | 2023-04-18 10:59:21.144853 |
updated_at | 2023-04-21 10:49:36.241405 |
description | A simple library to control groups of components and robots |
homepage | |
repository | https://github.com/SamuelNoesslboeck/sybot_lib |
max_upload_size | |
id | 842363 |
size | 205,432 |
A simple library to control groups of components and robots.
Extension library for the stepper_lib.
-- UNFINISHED DOCS --
Full documentation will be added soon
The following example creates a new SyArm robot, runs all setup functions and executes a GCode-script.
# ...
[dependencies]
# Include the library configured for the raspberry pi
sybot_lib = { version = "0.8.2, features = [ "rasp" ] }
# ...
use sybot_lib::{SyArm, Robot, JsonConfig};
use sybot_lib::intpr::Interpreter;
use sybot_lib::intpr::gcode::init_intpr;
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 = sybot_lib::partlib::create_std_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")
For more features, see stepper_lib#features
If you encounter any issues or if you have any request for new features, feel free to create an issue at the GitHub repo.