#servo #serial #async #lynxmotion #lss

lss_driver

Lynxmotion LSS 伺服驱动程序

17 个不稳定版本 (7 个破坏性版本)

0.8.4 2022年6月24日
0.7.0 2021年10月22日
0.5.0 2021年1月13日
0.3.0 2020年10月18日
0.1.4 2020年7月4日

#648硬件支持

每月22次下载

MIT/Apache

79KB
1.5K SLoC

Lynxmotion 智能伺服驱动程序

Crates.io Docs Rust Rust-windows codecov License

此crate提供了一个用于Lynxmotion智能伺服的异步串行驱动程序。

您可以在官方robotshop wiki上了解更多关于伺服器的信息。

驱动程序

智能伺服器通过串行UART协议进行控制。

您可以在这里了解该协议。在尝试使用此驱动程序之前,强烈建议至少浏览一下协议页面。

此驱动程序目前并未实现所有协议功能。
一些缺失的功能包括修饰符和设置命令。
如果您希望添加任何缺失的命令或功能,请随时提出PR或issue。

此驱动程序使用async/await。因此,您需要使用异步运行时。该驱动程序基于tokio-serial,因此tokio是一个不错的选择,但任何运行时都应适用。

使用

此crate附带多个示例
如果您想了解如何使用它,这些示例是一个很好的开始。


#[tokio::main]
async fn main() {
    // Create a driver on port `COM14` or `/dev/ttyUSB0`...
    let mut driver = lss_driver::LSSDriver::new("COM14").unwrap();
    // In case there is only one servo connected
    // we can query it's ID using the broadcast ID
    let id = driver.query_id(lss_driver::BROADCAST_ID).await.unwrap();
    // move motor with ID 5 to 90.0 degrees
    driver.move_to_position(5, 90.0).await.unwrap();
    // Set color of servo with ID 5 to Magenta
    driver.set_color(5, lss_driver::LedColor::Magenta).await.unwrap();
}

构建

此包不依赖于任何本地库。
Rust serialport 在GNU Linux上依赖于pkg-configlibudev-dev,但对于此crate应禁用。
如果您遇到它们失败的问题,可能需要查看它们的依赖关系,并在此处提出issue。

变更日志

版本 0.5.0 - (2020-01-13)

  • Windows 支持

版本 0.6.1 - (2021-09-28)

  • 支持 Tokio 1.0(现在也支持 Windows!)

免责声明

本软件未获得 Lynxmotion 或 Robotshop 的官方认可!

所有产品名称、标志和品牌均为其各自所有者的财产。本网站中使用的一切公司、产品和服务名称仅用于识别目的。使用这些名称、标志和品牌不表示认可。

依赖项

~5–15MB
~177K SLoC