最新消息:

【 EV3基础应用 】电机不只是输出设备,它也是一种传感器。

乐高 少儿编程 3838浏览 0评论
EV3基础应用

 如果需要学习本阶段课程,建议先学习本号内《基础硬件篇和基础编程篇》。

学习本篇请下载 LEGO Mindstorms 教育版软件

收到一位号友的留言,希望说一下电机作为传感器的使用方法。

这里我必须再次给EV3点赞一下。

看似一个功能,其实饱含了乐高产品设计师的格局之大。

同为一名产品经理,可以从产品中感受到用心程度,因为我们知道做出一款好产品的难度远比用户的想象来得困难。

很多市面上的机器人,电机只是作为一个输出设备,而EV3的电机,能够实现转动一度一反馈。所以,它完全可以作为一种传感器使用。

【 EV3基础应用 】电机不只是输出设备,它也是一种传感器。

当电机作为输出设备时,它的主要功能是,提供动力

当电机作为输入设备时,它的主要功能是,提供数据

对于动力的理解,很简单,不多说了。

对于数据,我们就要联系到一个名词“场景”

这个词其实我是经常提起的。

可以说,在每个场景下,数据是不断在变化的。

好的设计,就是让用户在各种使用场景下,都用的舒适。

如何调整舒适度?那就要依靠各种数据组合了。


我们可以把各种数据的组合形式,理解为是一种场景的变化。

举个例子,如果我们要做一个手机。

使用场景:白天,室外,晴天,马路边。

这里就有一些参数,出现了。

1、白天:时间

2、室外:空间

3、晴天:环境光

4、马路边:声音?

假设是这几个参数可以确定这个场景。

那么对应的,手机输出(显示屏的亮度,耳机的音量、抗噪强度)就自动做出一个调整。

这样用户的体验就会比较好。

所以,关于有些朋友留言问的某个功能如何设定,我这边也统一回答一下:

请告诉我具体场景,我才知道能够利用的数据有哪些。

这样才能对某个功能需求下一个定义。


我们回过头来说电机传感器。

要使用这个模块,我们先要把它放到一个场景里面。

【 EV3基础应用 】电机不只是输出设备,它也是一种传感器。

电机能够获得转动角度、圈数和当前功率,三种值。

我们做一个很简单的场景,用电机,控制EV3主机的音量,如何?

这就像是各种音响的声音控制器。

【 EV3基础应用 】电机不只是输出设备,它也是一种传感器。

电机转动的角度,我们当做是一个音量值。这个程序非常方便做。

如下图,只要把电机的转动角度数据,提供给音量即可。

【 EV3基础应用 】电机不只是输出设备,它也是一种传感器。

由于音量(输出设备)的取值范围是0-100。

而100°的转动,对于电机来说,是很小的一个值。

直接使用这个数据,会造成体验不好,转动一点点,音量就变得很大,显然,这不是很好的体验。

所以,我们把这个值,除以一个系数,3.6。(360°:100=3.6:1)。

【 EV3基础应用 】电机不只是输出设备,它也是一种传感器。

这样一来,电机转动一圈的音量调节范围,就是0-100了。


但仅仅这样是不够的,因为电机的数据会不停地叠加。

所以,当我们转了1圈以上,其实电机的数据可能已经叠加到了好几千。

也就是控制音量的数据,会上升到无限大!这个显然对硬件是有损耗的。(虽然EV3有电流控制,其实不至于会损坏。)

我们需要从编程的逻辑上去解决这个问题。

方法嘛,就是把数据调出来,用变量模块来处理。

如下图,大家可以理解一下。

【 EV3基础应用 】电机不只是输出设备,它也是一种传感器。

当电机转动一圈内的数据,直接写入变量待用。

当电机转动大于一圈,则设定变量最大值为360。

然后这个数据,我们跟上面一样,放到音量上,即可。


我们继续这个场景的讨论。

在家里,很多小朋友会去转动功放的音量控制器,有时候打开音响的时候,突然被小朋友快速转动了一下,音量瞬间放大!昂贵的音响喇叭就毁了……

这是真事,别问我这个故事的具体情况,滴血……

所以,我们可能需要增加一个保护程序,就是,给音量调节提供一个触发条件。

这个条件,我们可以使用“当前功率”来控制。

我们假设,小朋友玩这个的时候,转动速度太高,程序则紧急关停。

血的教训,请谨防小孩动音响!

那么,控制音箱的触发条件就是:

当前突然功率大于20的时候(突然迅速提高音量),程序关闭音响或者重置音量。

关了总比坏了好!

【 EV3基础应用 】电机不只是输出设备,它也是一种传感器。

所以我们可以在外层,以当前功率为判断条件,给这个程序做一个“保护性”的功能。

这样一来,如果调节音量的速度过快,程序就会自动反应,起到保护硬件的功能。

而慢慢调高或调低的时候,程序正常运行。

好啦,以上就是今天的内容。

最近收到的课题期望挺多的,我思考下,下次继续解决其他朋友的问题哦!

您必须 登录 才能发表评论!