第11课:控制火星车的摄像头俯仰

让您的火星车拥有一个可移动的摄像头!就像您可以上下点头一样,您的火星车现在可以倾斜摄像头,从不同角度探索火星地貌。

我们将使用一种称为”舵机”的特殊电机,它可以移动到精确位置——非常适合控制火星车的摄像头俯仰。学习如何编程舵机,让它向上看火星山脉,或向下看有趣的岩石!

学习目标

  • 了解舵机的工作原理

  • 学习使用简单的代码积木块控制摄像头角度

  • 创建交互式项目,通过触摸控制来倾斜摄像头

什么是舵机?

认识舵机——你机器人的运动肌肉!

就像你可以将手臂移动到精确的位置一样,舵机可以移动到特定角度并完美保持该位置。把它想象成一个知道精确停止位置的智能电机。

../_images/servo2.png

简单的连接方式:

  • 棕色线:接地(-)

  • 红色线:电源(+)

  • 橙色线:信号(告诉舵机要移动到哪里)

在你的火星车中,舵机就像一个点头的脑袋——上下移动摄像头,捕捉完美的视野!

舵机是如何工作的?

在每个舵机内部,有一个智能团队协同工作:

../_images/servo_internal2.png
  1. 普通电机 - 像火星车的轮子一样快速旋转

  2. 齿轮 - 降低运动速度并增加力量

  3. 大脑电路 - 精确知道舵机当前所在的位置

  4. 位置传感器 - 反馈舵机指向的位置

我们使用特殊的信号来控制舵机,这些信号会告诉它”移动到这个精确角度!”就像告诉朋友把头转到准确的角度一样。

准备好让你的舵机动起来了吗?让我们开始编程吧!

控制火星车的俯仰系统

让我们学习控制火星车的俯仰系统——这个部件可以像点头一样上下移动摄像头。

设置摄像头角度

  1. 首先,请执行 连接应用到 GalaxyRVR 的步骤。

  2. 查看当前舵机角度——你会看到它显示在舞台上。

    ../_images/10_servo_angle.png
  3. 拖出一个 将舵机角度设置为 90 积木块。点击它,让火星车面向前方。

    ../_images/10_servo_set_angle.png
  4. 将值改为45并点击——现在你的火星车在仰望火星的天空!

    ../_images/10_servo_set_angle_45.png
  5. 尝试不同的角度!你会发现你的火星车可以在0-135度之间倾斜。

创建摄像头控制面板

  1. 让我们为火星车的摄像头构建一个控制面板:

  2. 创建一个复位按钮——拖出一个 当此精灵被点击 积木块。

    ../_images/10_servo_when_click.png
  3. 添加 将舵机角度设置为 90 让摄像头再次面向前方。

    ../_images/10_servo_when_90.png
  4. 添加上/下控制——拖出 当按下上箭头键当按下下箭头键 积木块。

    ../_images/10_servo_when_up.png
  5. 编程让上箭头减小角度(向上看)。

    ../_images/10_servo_when_up2.png
  6. 编程让下箭头增大角度(向下看)。

    ../_images/10_servo_when_down.png

现在点击全屏按钮,开始控制!使用方向键调整火星车的视角,点击精灵复位。你就是摄像师!

触摸控制摄像头角度

创建一个触摸控制的摄像头!拖动箭头将火星车的摄像头准确定位到你想要的位置。

  1. 删除所有现有精灵,清空舞台。

    ../_images/6_animate_delete.png
  2. 添加一个箭头精灵作为触摸控制器。

    ../_images/10_servo_arrow.png
  3. 当此精灵被点击 开始触摸控制。

    ../_images/6_animate_when_touch.png
  4. 创建一个在你触摸箭头时持续运行的循环。

    ../_images/6_animate_repeat_touching.png
  5. 让箭头在你拖动时指向手指方向。

    ../_images/10_servo_arrow_point_toward.png
  6. 将箭头方向与摄像头角度关联起来——旋转箭头,移动摄像头!

    ../_images/10_servo_arrow_angle_direction.png
  7. 设置限制,将摄像头角度保持在0-135度之间。

    ../_images/10_servo_arrow_135.png ../_images/10_servo_arrow_0.png

触摸并拖动箭头来瞄准火星车的摄像头!让箭头顺畅移动并对你的触摸做出即时响应,以获得逼真的控制感受。

舵机控制积木块

  • 将舵机设置为特定角度(0-135度)

    ../_images/servo_set_angle.png
  • 增大或减小舵机角度(使用负数来减小)

    ../_images/servo_increase_angle.png
  • 查看当前舵机角度

    ../_images/servo_value.png