Skip to content
LegoFind

LegoFind

乐高机械组(Technic)、机器人资源分享。

  • Powered Up 教程
  • BOOST 教程
  • 乐高相关网站
  • 机械组套装
  • 教育及机器人套装
  • 机械组资源
  • 留言板
  • Toggle search form

《LEGO BOOST 机器人编程经典教程》中文翻译 第11章:四周看看

Posted on 2021年8月13日2021年11月7日 By 黑猫 《LEGO BOOST 机器人编程经典教程》中文翻译 第11章:四周看看无评论

在本章中,你将给马里奥安装一个电动扫描装置,如下图所示。这使马里奥能够观察周围的环境,感知四周,进行物体跟踪,等等,并且不限于此!

你将学习到如何对一些列的行为进行分组以创造组合模块,以及如何让机器人存储数据。

搭建电动扫描装置

在前面已经搭建的机器人马里奥的基础上,按照下面的拼搭说明进行搭建即可。

单电机模块

在本部分中,你将学习如何利用下图所示的电机模块来控制乐高BOOST的三个电机。

上图清晰的列出了各个电机模块的功能,第一列是通过设定运行速度和运行时间来控制电机,第二列是利用运行速度和相对转动角度来控制电机,第三列则是以给定的速度持续运行电机。第四列是停止电机。第一行和第二行分别代表集线器两侧的电机,第三行则标识BOOST的外部电机。

关于BOOST电机模块的更详细说明可以参见: https://www.legofind.com/archives/1522

使用转动传感器

你可以利用下面的模块来获取电机的速度、角度等转动状态信息。电机角度值的返回值,是自你上次利用重置模块重置电机角度后,电机转过的角度值。关于下列模块的更多说明可参考 https://www.legofind.com/archives/1302

扫描

在本章中,我们将编程让马里奥的电动扫描装置在左右各60度的范围内扫描,程序如下图所示。请确保程序执行前,马里奥的电动扫描装置位于正中位置。

下图显示了上面程序在马里奥上的实际运行效果。

在程序开始前,请确保电动扫描装置位于正中位置。在程序中,利用第一个电机模块让扫描装置右转,角度是60度;利用第二个电机模块让扫描装置左转,角度是120。第三个电机模块则是让扫描装置回到正中位置,因此角度输入值是60度。

请注意,电机模块的角度输入值,是相对于当前电机位置的一个相对值。因此,你在编程控制电动扫描装置转动时,你需要根据其当前的位置计算出需要旋转的角度。

上图中的D、E、F三张图片展示了如果程序开始前,电动扫描装置没有在正中位置,程序的执行效果。因为每次电机的输入都是相对角度值,因此电动扫瞄装置的位置会一直跟你的预期位置有偏差。

后面的内容我们会学习如果让电动扫描装置自动位于正中位置,而不需要每次都手动去操作。

自动到达0度位置

下面我们来看看如何利用程序让电机到达预设的0度位置。由于定距外部电机速度模块中的电机运转角度输入是相对值,那么我们用目标位置减去当前位置,即为电机需要转动的角度:

电机转动角度 = 目标位置 – 当前位置

那么,利用上面的公式,我们就可以编程实现自动到达预设0度位置的程序,如下图所示。

下面的图片给出了一些实例。你在自己进行测试的时候,请确保手机或平板与集线器连接时,电动扫描装置位于正中位置。如果不是,断开手机或平板与集线器的连接,恢复电动扫描装置正中位置后,再重新连接。下面,我们会让程序自动完成这项工作。

手动将电动扫描装置的位置旋转至正中以外的位置,然后运行程序,电动扫描装置会自动回到正中位置处。多次进行试验,无论手动旋转至哪个位置,电动扫瞄装置总会自动回到正中位置。

你也可以根据需要调整该程序中的目标位置值(原程序设置为0度位置),来让电动扫瞄装置到达预期的位置,并且不需要考虑其当前的位置在哪里。

重置电动扫描装置

为了避免每次都要手动调整电动扫描装置的位置,我们将通过编程实现电动扫描装置自动调整至正中位置,并将该位置重新设置为0度位置。受制于结构限值,我们的电动扫描装置并不能360度自由旋转,而是在一定范围内旋转。我们编程的目标是让其旋转至极限位置,然后再自动回到正中。

为了预设电动扫瞄装置的位置,我们将运转电机直至其运行到极限位置(被挡住无法继续转动),由于我们能够测量得到其从正中位置到极限位置转动的角度,我们便可以得知从极限位置回到正中位置需要多少角度。

为了实现这个过程,我们开始时以较低的速度运行电机,一旦当电机速度降至0时,说明已经到达极限位置。程序实现如下图所示。

制作组合模块

如果有一组程序模块,你需要经常重复使用它们来完成特定功能,你可以将它们设置为一组组合模块。这样可以更好的组织你的程序,使其更加简洁易读。

乐高BOOST应用程序中给出的官方编程实例中,都是用了组合模块。以下面这个螺旋桨旋转模块(在BOOST应用程序第一个入门教程里)为例,它其实是一组程序模块的组合。

按照下面的步骤来制作一个电动扫描装置重置组合模块。

1、切换至组合模块调色板(灰色),然后点击带有+符号的图标。

2、你将会看到一个带有随机图标的淡蓝色模块,以及一个深蓝色的预览板。按照下图箭头指引的方向,将想要创建组合模块的程序模块序列拖引至深蓝色的预览板内。如果你想要在画布上保留原程序序列,记得提前复制。

3、深蓝色预览板里会显示缩小版的程序序列,点击可以进行编辑。

4、当你对组合模块进行编辑时,画布的背景色会变成深蓝色。点击下图序号1的图标,可以为组合模块更换图标。点击序号2的扳手图标,可以改变组合模块图标的背景色。点击序号3的箭头,可以返回主界面。

5、当完成组合模块制作后,可以通过简单的编程实例来看下新制作的组合模块的运行效果,如下图所示。

下图左侧序号1是电动扫描装置重置程序,右侧序号2是制作成组合模块后的样子。

制作带有输入值的组合模块

前面我们制作了电动扫描装置重置组合模块,你会发现他用起来很方便。不过如果能给他加入一个输入值,会让程序看起来更加简洁易懂。按照下面的步骤,来制作一个带输入值的组合模块,能够设定电动扫描装置指向的方向。

1、按照下图编写好模块程序,然后开始按之前的步骤创建组合模块。

2、将程序拖拽至组合模块预览板中,然后点击预览板进行编辑。

3、点击更换图标,将图标更换为带有黄色箭头的外部电机模块,然后拖拽数字输入模块1至电机模块的速度输入参数那里。两个编号都为2的输入模块将会在调色板出现,如下图所示。

4、拖拽数字输入2至减法模块的第一个输入,如下图所示。然后点击返回箭头回到主界面。

最终成品如下。后面的程序中我们会用到这个组合模块。

编辑及删除组合模块

当创建一个组合模块后,你可以对其进行修改,或者增加、删除或调整输入参数类型(前提条件是该组合模块目前没有在任何程序中使用)。想要编辑组合模块,需要切换到组合模块调色板,点击模块,然后点击蓝色的预览板。

增加输入

要在组合模块中增加输入,只需要从调色板将其拖拽至画布赏即可。每次你拖拽一个输入模块,会出现两个新的输入模块(数字型和逻辑性各一个),如下图所示。

由于每个输入只有一种数据类型,你需要在拖拽前确定好数据输入的类型。当你选择其中一个类型时,另一个没被选中的类型就会自动消失。

删除输入

机器人资源

文章导航

Previous Post: LEGO BOOST 专用模块说明:吉他4000
Next Post: 没有手机等智能设备也能控制乐高Control+套装?PyBricks可以帮你。

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

常用网址

Rebrickable
MOC分享网站。
LEGO官网图纸下载
官方图纸下载地址。
BrickLink
零件、人仔、套装买卖。
BrickSet
LEGO数据库网站。
Brothers-Brick
LEGO资讯第一门户。
EuroBricks
全球第一LEGO论坛。
LDraw零件
LDraw零件模型下载。
BrickOwl
零件、人仔、套装买卖。
BrickEconomy
LEGO价格及趋势分析。
Studio
LEGO虚拟拼搭软件。
BrickInsights
LEGO套装评分网站。
MecaBricks
3D在线LEGO拼搭工具。
LEGO官网设备指南
LEGO官方APP汇总。
LDD
LEGO虚拟拼搭软件。
BrickFanatics
LEGO资讯网站。
pyBricks
LEGO Python编程。
  • 乐高图纸 (76)
  • 套装评测 (13)
  • 机器人资源 (33)
  • 机器人资讯 (2)
  • 机械组资源 (28)
  • 机械组资讯 (26)
  1. 黑猫发表在乐高机械组官方套装Studio模型(IO文件)资源分享2022年12月22日

    找到一个lxf格式的,试了下Studio…

  2. 匿名发表在乐高电机性能参数(扭矩、转速)整理2022年12月19日

    棒

  3. 匿名发表在乐高机械组官方套装Studio模型(IO文件)资源分享2022年12月17日

    想要CREATOR系列10242MINI…

  4. 黑猫发表在乐高机械组官方套装Studio模型(IO文件)资源分享2022年11月17日

    没找到,只找到了71746的一些MOC的…

  5. 黑猫发表在留言板2022年11月17日

    方法有很多,看你具体的要求。可以看下下面…

Powered Up模块说明

Powered Up 教程一
流程模块
Powered Up 教程二
传感器模块
Powered Up 教程三
电机模块
Powered Up 教程四
自定义控制模块
Powered Up 教程五
声光模块
Powered Up 教程六
数据操作模块

LEGO Boost 模块说明

LEGO Boost教程一
流程模块
LEGO Boost教程二
传感器模块
LEGO Boost教程三
遥控模块模块
LEGO Boost教程四
电机模块
LEGO Boost教程五
声光模块
LEGO Boost教程六
数据操作模块
友情链接  |   DNF资料站   |   Brick4   |   孙老四   |   乐乐镇的故事

Copyright © 2023 LegoFind.

Powered by PressBook WordPress theme