2个版本
0.1.1 | 2019年4月4日 |
---|---|
0.1.0 | 2019年4月3日 |
#20 in #plane
20KB
278 行
🚀 👾 U.F.O: 通用飞行物
Drone/UAV/Quadcopter/RC Plane
是针对Rust
的编程库。
注意:这仍然是一个WIP(工作进行中),特性和结构体已经存在,但示例和文档尚缺……谨慎行事。
目标
- 构建一个可扩展的模块化库,可以支持无限数量的无人机。
- 处理尽可能多的模板代码。(事情可以顺利进行)
- 无人机与控制器之间低延迟
非目标
- 实现用于控制无人机的用户界面 (注意:我可能在以后决定构建一个UI,但它将在自己的存储库中)
- 支持其他类型的机器人/遥控器,目前这个存储库是为遥控无人机和平面设计的。这可能会在未来改变,但现在不会。
安装和使用
将其添加到您的 Cargo.toml
[dependencies]
ufo_rs = "*"
并在 src/main.rs
中放入类似的内容
/// Import std stuff
use std::error::Error;
use std::time::Duration;
use std::thread;
// Import traits
use ufo_rs::traits::control::*;
use ufo_rs::traits::drone::*;
// Import controller
use ufo_rs::drones::jjrc::h61;
fn main() -> Result<(), Box<dyn Error>> {
let delay = Duration::from_millis(2000);
// Create a new drone driver
let mut driver = h61::Driver::new();
// Connect to drone
driver.connect()?;
// Calibrate drone
println!("Calibrating...");
driver.calibrate()?;
println!("Sent!");
// Wait 2 seconds
thread::sleep(delay);
// Take off
println!("Taking off...");
driver.take_off()?;
println!("Sent!");
// Wait again for 1 second
thread::sleep(Duration::from_millis(1000));
// Land
println!("Landing...");
driver.land()?;
println!("Sent!");
// Ta-dah!
Ok(())
}
有关更多信息,请参阅 examples/
目录。
帮助
如果您想帮助U.F.O,我们可以在两个领域提供支持
- 编写单元测试,我想确保
U.F.O.
是编程无人机的一种安全稳定的方法。如果我们能找到容易出错的区域,我们就可以快速构建一个更稳定的库。 - 添加更多无人机的支持。如果您想帮助此或查看示例,请查看
src/drones/jjrc/h61.rs
。
灵感
灵感来源于
- Gobot:针对
Go
的真正酷的机器人库 - 缺少针对
Rust
的无人机库 - 用代码编写飞行物很有趣 😄!
依赖项
~24KB