7 个版本

0.1.6 2023年10月26日
0.1.5 2023年10月26日

10#motor

37 每月下载量

MIT 许可证

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.01.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.01.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