7 个版本
0.1.6 | 2023年10月26日 |
---|---|
0.1.5 | 2023年10月26日 |
10 在 #motor
37 每月下载量
15KB
260 行
SwiftBot Rust 库
这是用于控制SwiftBot的库。
入门指南
要开始编写SwiftBot的代码,请输入 cargo add swift_bot_api
将以下代码行添加到程序的开头。
use swift_bot_api::*;
您还需要创建一个SwiftBot实例,如下所示
let mut bot = SwiftBot::new().expect("Unable to initialise SwiftBot");
按钮
SwiftBot后面有四个按钮,分别标记为A、B、X和Y。可以使用 is_pressed()
函数读取,该函数接受由以下变体组成的 Button
枚举
按钮::A
按钮::B
按钮::X
按钮::Y
例如,要读取A按钮,您将编写
if is_pressed(Button::A) {
// perform action
}
按钮LED
SwiftBot每个按钮旁边都有一个白色LED。可以使用 set_button_light()
函数控制这些LED,该函数也接受与上面的 is_pressed()
方法相同的 Button
枚举,后跟一个介于 0.0
和 1.0
之间的数字。
例如,要将按钮B的亮度设置为半亮度,您将编写
bot.set_button_light(Button::B, 0.5);
要关闭灯光,将值设置为 0.0
bot.set_button_light(Button::B, 0.0);
电机
SwiftBot有两个独立控制的电机,这可以实现 差速转向,其中一个电机的速度可以单独控制,而不会影响另一个。
有几种方法可以从代码中控制这些电机
简单动作
bot.forward()
bot.backward()
上面的函数将以全速驱动SwiftBot。
要使SwiftBot停止移动,只需调用 bot.stop()
。这将使机器人突然停止。
高级动作
为了更好地控制SwiftBot的运动,可以使用set_motor_speed()
来分别控制每个电机。这个函数需要传入一个Motor
枚举和一个介于-1.0
和1.0
之间的数字,正值会使电机向前运动,负值会使电机向后运动。以下示例将使SwiftBot缓慢向右转弯。
bot.set_motor_speed(Motor::Left, 1.0);
bot.set_motor_speed(Motor::Right, 0.5);
底光照明
SwiftBot还配备了六区域RGB底光照明。
设置颜色
bot.set_underlight(255, 0, 0) // red
bot.show_underlight() // make the lights show
禁用灯光
在某些情况下,您可能希望关闭底光照明,例如为了节省电量,但希望在重新开启时保留上次设置的颜色的记忆。为此,可以使用bot.clear_underlight()
。
距离传感器
SwiftBot配备了前置超声波距离传感器。可以使用bot.distance()
读取该传感器,它将返回以厘米为单位的测量距离,如下所示
let distance = bot.distance();
println!("Distance: {}cm", distance);
摄像头
SwiftBot配备了前置摄像头。您可以使用bot.save_photo()
方法保存图片,并跟随文件名、高度、宽度和曝光时间(以毫秒为单位)
bot.save_photo("image.jpg", 100, 100, 500);
如果您不想保存图片,可以使用bot.photo_buffer()
获取图片的缓冲区
let buffer = bot.photo_buffer(100, 100, 500);
依赖项
~2MB
~36K SLoC