深度乐高 篇八:硬核,玩转乐高 42100 利勃海尔(控制篇)
新春佳节马上到了,在这里提前给大家拜个年。
作为 2020 年的开篇,给大家带来的当然是最重磅的消息。
Powered UP 在圣诞节更新了最新的 3.0 版本,全面支持科技组的 Control+ HUB。这就意味着你可以独立于套装本身,使用 Powered UP App 来控制所有的东西。
有了这个信息,可以说 42100 利勃海尔 将立刻变成 2019 年最香的套装。惊人的 4108 颗粒数,2 个 Control+ HUB,4 个 L 电机,3 个 XL 电机,这些零件可以被使用到任何你想要搭建的作品中,它的价值将被重新估计。
我能给乐高科技组新手的建议就是 买它!买它!买它!
Powered UP 简介
乐高对于 Powered UP 的介绍不多,网上能够找到的资料也很少,在仅有的几款火车套装和蝙蝠车上有出现,以至于大家可能都忘记了它的存在。
但这套系统设定的目标非常很宏大,想要作为所有科技组件的统一平台,成为 WeDo, BOOST, Control+ 系统的超集。
从 2016 WeDo2.0 引入蓝牙连接方式,到 2018 年乐高放出蓝牙通讯协议和三方厂商共同推进蓝牙系统的普及,再到 2019 年科技组产品线使用新电机和 Control+ HUB。乐高每一步都在为这套系统添砖加瓦( 最后一句是我自己 YY 的 )。
目前整套系统已经初具规模,对比之前的 Power Functions 系统,它有如下优势:
新的硬件添加了很多传感器,使得它能够回传很多信息,比如电机旋转的角度,HUB 的姿态及运动情况;
从红外转为蓝牙连接,在 App 的支持下连接各种 HUB,进而连接各种科技组件;
有了 App 的支持使得复杂的编程控制成为可能;
公开的蓝牙协议使得三方的支持变得更为方便;
肉包开箱
这次只玩 42100 的电机,所以只要从 42100 的套装中取出科技组的盒子就行。( 光是这个动力部分感觉就可以玩上好久 )
看到盒子里装得满满当当的电机和两个 Control+ HUB,真是太香了!!!,对了,要给每个 Control+ HUB 配上六节五号电池。
连接 Control+ HUB
首先到应用市场下载 Powered UP App,完成之后打开应用。
进入新版界面后,点击右上角的创建( 步骤如下图所示 );
点击中间的添加按钮;
给项目起一个名字;
选择右边的编程模式;
然后你会来到下图的界面,你会看到左上角的蓝牙标志在不断跳动:
点击左上角的蓝牙标志,然后点按 Control+ HUB 上的绿色按钮:
你会看到 HUB 上面的灯不断闪烁,应用界面上会显示 HUB 初始化的进度( 初始化完成以后可能会需要再次点击连接下 )。
Hello world
接下来开始写第一个程序吧~。首先从绿色的选项卡里拖出以下模块,连接到播放按钮的位置。这个模块的含义是让连接 A 接口的电机以 50% 的转速顺时针旋转 5 秒。
对于电机部分,我们需要弄一个零件来更清楚地查看电机的旋转状况:
点击右上角的运行,你就能看着螺旋桨旋转 5 秒:
如此这般后,你的第一个小程序就完成了。
编程基本概念
Powered UP 的可视化编程入门起来还是很方便的。基本操作就是把模块拖来拖去进行拼接,不要的模块可以拖回底部的模块栏。不过在认识这些模块前,先来理解一些编程的基本概念。
变量赋值
条件判断
循环
输入输出
并行
模块( 函数 )
变量赋值 就是把一个数值赋给一个符号( 比如 a ),无论这个数值是通过计算得到的还是输入得到的。由于每次赋值这个符号的值都会改变,所以它也被称作变量。
下图演示了把数字 5 赋给变量 a。模块从底部白色的选项卡拖出,点击运行你就会看到右侧变量 a 的值变为 5。
条件判断 是程序处理逻辑的关键步骤,通过对变量或者输入的判断,你可以改变程序的走向。
下图程序运行后,我们对变量 a 进行了判断,看它是不是比 5 小,从而选择了第一个分支继续运行,最后变量 a 的值变为 5。
循环 是指重复运行某段程序。
下图有一个循环标志的模块就是循环。包裹在其中的程序做的事是:判断变量 a 是否小于 5,如果小于就把 a + 1 得到的新数值重新赋给 a(比如 a 为 2的话运行后就变为 3,连接在变量赋值操作后面的一个沙漏表示暂停 1 秒)。
点击运行后,程序不断循环,a 的值从 0 变为 1,再变为 2。。。最后变为 5,这时候 a 已经不满足小于 5 的条件就走了什么都不做的分支。
输入输出 为的是让程序获取信息 或 让设备执行某个事情。
比如上文 Hello world 程序中使用的电机转动模块就是一个输出模块。Powered UP 中提供了丰富的输入输出模块,下图给出的是一个移动设备的姿态模块,你改变你现在拿的手机或者平板的倾斜角度时上面的数值就会变化。
并行 就是指同时运行多个程序。
如果你想同时做很多事情,比如让连接 A, B 接口的电机同时旋转,这项能力是必不可少的。
模块 指的就是 Powered UP 底部提供的这些东西,它们可以像积木一样互相拼接。
模块底部的凹槽是模块需要的输入值,也被成为参数。比如在电机旋转模块里,底部的参数依次为电机接口,转速和运行时长。
顶部的突起是模块的输出,如果是逻辑输出(比如是否时)是尖头,是数值输出时是圆头。
左右有凹槽的模块通常是输出和流程模块,没有的通常是输入模块。
所以模块所做的就是获取一些信息,然后做一些事情或者给你一些信息。下面我们就来看下 Powered UP 底部的菜单栏。
首先黄色选项卡中提供的都是流程控制相关的模块,用来控制程序的走向。
橘红色选项卡中提供了各式各样的传感器输入模块。
绿色选项卡提供的是电机控制模块,还有电机转速和角度的输入模块。
紫色选项卡提供了灯光,声音的输出模块。
白色选项卡提供的是变量的操作模块,和常用的数学函数。
最后一个选项卡支持自定义模块的创建。
关于转向
关于 Powered UP 这套系统是否能够很好地控制转向是 MOC 遥控赛车的玩家都十分关心的问题。不过我发觉就连油管的 RacingBrick 都觉得只有在 Control+ APP 中才能正确控制电机的转向,而在 Powered UP 中有很大的延时。
事实上通过简单的设置电机到达目标转速的时间就可以使电机的转向反应速度变得正常。
但这样会产生一个问题,在目标角度比较小的时候,由于电机的转速比较快,会导致转过头然后不断反复来回调整。如果通过目标角度来决定要使用的转速能够很好地解决这个问题,下图中转速的计算方式和参数大家可以自行调整。
最后提下在 MOC 的过程中使用之前进入 APP 第四步的 控制器 编程模式是很有用的。它比普通的编程模式多提供了 UI 界面上的输入输出模块,使得控制起来更加方便。
最后
乐高科技组本身在机械方面就有无限的玩法。而编程也是一种无限的玩法。这两个的组合使得新玩法成为了一种更高维度的存在,光是这盒电机就可以玩一年了呢( 这是严重低估了它的可玩性 )。
祝大家玩的开心~
Jogyli
校验提示文案
wuxiauto
校验提示文案
kueeo
校验提示文案
jfzm2014
校验提示文案
薛定谔斯坦
校验提示文案
史迪夫
校验提示文案
Mephosto
校验提示文案
CQ回锅肉
校验提示文案
奇多爸爸
校验提示文案
打死奥拓咚咚咚咚
校验提示文案
aa89331049
校验提示文案
值友7456219036
校验提示文案
值友6312353260
校验提示文案
值友6312353260
校验提示文案
值友7456219036
校验提示文案
Mephosto
校验提示文案
aa89331049
校验提示文案
史迪夫
校验提示文案
薛定谔斯坦
校验提示文案
打死奥拓咚咚咚咚
校验提示文案
奇多爸爸
校验提示文案
CQ回锅肉
校验提示文案
Jogyli
校验提示文案
jfzm2014
校验提示文案
kueeo
校验提示文案
wuxiauto
校验提示文案