最新消息:

【 EV3基础应用 】课题三:双色感差值巡线

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

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

 

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

上周我们讲了单色感摆动巡线。

 

这里面的重点其实是利用了左右转的运用特点来实现“寻”线,从而达到了巡线的目的。

 

今天我们要讲利用2个色感的解决方案。

先来看看这个视频,是不是这种巡线方式更稳定?效果更好?

(视频取自网络,仅参考,效果其实一般,约1.5m)


我们都知道一点,在条件越是充分的环境下,动作会越准确。单色感摆动,虽然可以完成巡线的动作,但效果其实欠佳。

 

实际使用时,往往达不到任务要求。

(没法确定停止条件,或者停止时的小车方向

 

当我们增加了一个色感后,就可以获取更多的条件数据,从而让巡线动作变得更加稳定

这个数据可以是其他不同传感器带来的,但我们添加另一个色感,通过比较两个色感的值来作为线路依据,其实是很直接的一种设计理念。


 

我们先来看看两个色感的安装。

【 EV3基础应用 】课题三:双色感差值巡线

一般我们需要把两个色感平行安装,并在中间空出“线”宽度的距离。

只可以大于线的宽度,不能够小于线的宽度。

这个需要解释吗?

如果中间的距离太小,可能会造成2个色感同时探测到线的位置,数据就没有参考价值。

双色感的目的就是让线始终保持在两个色感中间,以达到有数据变化带来区分巡线动作目的。

 

应该不难理解。

 


那如何使用这两个色感带来的数据呢?

 

我们首先要做的,是分析可能发生的几种情况。如下。

【 EV3基础应用 】课题三:双色感差值巡线

A、左边碰到线,右边没碰到线;

B、左边没碰到线,右边碰到线;

C、左右都没有碰到线。

 

如果我们假设,场地是纯白(反射值100)和纯黑(反射值0)的理想状态

那么:

A状态,两个色感的数据是(0,100);

B状态,两个色感的数据是(100,0);

C状态,两个色感的数据是(100,100)。

 

再进一步增加三种状态所对应的前进动作,就是:

【 EV3基础应用 】课题三:双色感差值巡线

状态1,左转

状态2,右转

状态3,直行

 

这样一来,我们的程序和结构设计,基本就成立了。


但随之,问题也来了,

如何组合这些数据,让机器人的动作达到比较理想的效果呢?

 

发现没有,和单色感利用摆动巡线不同。

单色感摆动巡线,主要不是依靠数据变化,更多是依靠运动特点来完成巡线的,所以对数据的处理要求其实不高,只需要对比一下值就可以了。

只有两种标准动作(左转、右转度数只要保证能够看到线就ok)就可以完成巡线。

 

而现在,我们在理想状态下,对数据的取值情况(范围)和对应动作有了更复杂的要求。

这些数据的变化和转向的角度都是一个范围,而不是一个确定值。

也就是说,值有无数个组合,在11对应法则下,对应动作也会有无数个。(左转多少角度?右转多少角度?甚至是直行?)

【 EV3基础应用 】课题三:双色感差值巡线

把它放到直角坐标系里面,你可以看到这是一个正比例函数图像。

 

我们最终希望的达到的效果是,两个色感的数据:

差距越小,转动角度越小;

差距越大,转动角度越大;

数据相等,则直行。

 

那么我们如何来处理呢?

既然是“差”距,那么我们直接使用差值法吧!


差值

顾名思义,两个数据相减得到的差。

 

差值法

利用数据(自变量)和数据(自变量)之间的差的变化,形成一个因变量

用这个因变量,去控制电机的转动方式,从而达到我们上面说的那个最终效果。

这个方法不单单是这个程序中我们可以使用以后我们还会碰到很多场景都可以使用这个方法来处理数据。

 

我们只要将两个色感获取的值,相减,就可以得出一个差。

 

这就变成了一个简答题,两个色感的极限差(取值范围)。

取值范围就是【-100,100】。

【 EV3基础应用 】课题三:双色感差值巡线

我们发现,移动转向模块的转向取值也是【-100,100】。

所以,所以这个转向数据可以直接用于移动转向模块!

当左边反射值小于右边反射值时,得出差是负数,则左转;

当右边反射值小于左边反射值时,得出差是正数,则右转。

并且,负数越小或者正数越大的情况下转动角度都会自动增大!

 

那么程序只要这样做就可以啦。

【 EV3基础应用 】课题三:双色感差值巡线

很简单吧。


 

你可以动手尝试一下,并使用一些参数让这个程序在现实中更加稳定一些。

程序不难,主要是思考角度。

大家动手试试吧!

但这样一个简单的程序还是有它的bug在里面的。要做到视频里的稳定性,我们可以继续优化这个程序,以达到更稳定的效果和满足更多的场景需求。

(视频仅为参考,事实上这个视频内容里的成果并不那么理想,老丁当然有更理想的!)

大家先把这个搞定一下,我们就这个问题再继续!

别忘了赏个赞~(#^.^#)

下周见!

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