ev3光电传感器(光线传感器怎么修)

发布时间:2024-06-15
本文主要介绍ev3光电传感器(光线传感器怎么修),下面一起看看ev3光电传感器(光线传感器怎么修)相关资讯。
根据房间的不同,我们可能只需要在机器人运行的房间校准一次,即使我们不得不在同一天内运行机器人几次。但是,如果房间内的光照条件有可能发生变化,比如房间内有大窗户,自然光就会照进房间。
我们需要考虑到光线在白天会发生变化,我们可能需要在每次操作前校准ev3颜色传感器。颜色传感器的适当屏蔽对于获得一致的颜色传感器读数也很重要。
在我们将传感器安装到机器人底盘上之前,不要开始校准传感器,因为改变传感器在底盘上的位置可能会影响传感器读数。
ev3颜色传感器要靠近任务现场,2 ~ 3cm为宜,但要确保机器人能够清除传感器能够骑行的障碍物,因为离地间隙很小,所以机器人可能会被传感器卡住。我甚至见过这样的机器人,
跨越障碍物时升高颜色传感器,然后在读取光值时降低传感器。这样的设计对于某些比赛中的机器人来说可能有点过分,但确实很有趣。
执行校准。
现在让我们校准传感器,设置真实的明暗读数。在理想环境下,ev3认为白色的回光值最大,色彩最丰富的回光值最小。在ev3电码中,这些值被表示为0到100之间的数字。
然而,未校准的传感器很少返回这两个端点值。很多时候,真正的阅读量在30~70的范围内。
当校准ev3传感器时,我们将根据当前环境中的读数重新设置光值的读数范围。此外,校准后的颜色传感器可以在不同的环境中运行,而无需改变程序代码来识别新环境中的光值。
我们可以通过两种方式进行校准:使用ev3自己的校准模块将校准值存储在ev3的存储器中,或者创建我们自己的校准程序将值存储在ev3块的本地文件中。
使用ev3校准模块。
注意:如果我们在机器人上使用两个颜色传感器,校准模块存储的校准值将应用于这两个传感器,ev3模块不会单独存储每个传感器的校准值。
ev3颜色传感器模块具有校准模式,用于校准ev3颜色传感器的最大值和最小值。校准模块读取的值存储在ev3模块中。即使ev3模块的电源关闭,该值也会存储在那里,直到被删除或传感器被重新校准。
只有将颜色传感器模块添加到ev3程序中,才能使用校准模式。我们可以将它添加到单独的校准程序中,或者在程序开始运行时添加。如果我们想在所有程序中包含校准过程并在每次运行前执行校准,
那你最好创建一个我的模块。
例如,我们可以创建一个“我的校准”模块:在该模块中,有两个颜色传感器块,一个用于读取最小光值,另一个用于读取最大光值。在两个校准模块之间添加触发事件,
例如等待模块。
在以下示例中,第一个校准模块将读取最大光值,第二个校准模块将读取最小光值,并在运行第二个校准模块之前等待ev3深灰色按钮被按下。
1.在下图中,将机器人的颜色传感器放在任务现场的明亮区域(白色或非常浅的颜色)。
2.按下ev3程序块上的深灰色按钮。
3. 听到确认音。
4. 将机器人的颜色传感器移到任务场地较暗的区域(越暗越好),如下图。
5. 按下ev3程序块上的深灰色按钮。
6. 听到确认音。
现在我们可能希望程序有一些详细的说明。例如,添加一些显示提示,让用户知道将机器人的颜色传感器放在哪里以及下一步做什么。
使用本地文件
出于各种原因,我们可能不喜欢使用ev3自带的校准模块。例如,也许我们的机器人有两个颜色传感器,我们希望为每个传感器单独存储校准值,解决方案就是用存储在文件中的值进行校准。我们可以创建自己的校准程序,
然后将结果存储在ev3程序块的文本文件中,为每个传感器应用单独的校准值。每次运行其他程序时,都可以读取该文件,并检索存储的光的校准值。
在本地文件存储和检索的过程其实并不像听起来那么复杂,而且可以做成一个非常好的程序,并不需要很复杂的代码。
这段代码用来代替颜色传感器校准模式。该代码调用了一个颜色传感器模块,它将颜色传感器模块的光强度读值复制到文本文件中。如果我们使用多个颜色传感器,则可以为每个传感器使用相同的过程,
从而可以为每个传感器提供唯一的光范围(再说一次,在校准模式下使用ev3颜色传感器模块时,校准的值被应用于所有连接到ev3程序块上的颜色传感器)。
我们只需使用设置为读取模式的文件访问模块即可使用保存的值,从而将保存的值带回程序代码进行比较。下图显示了一个非常简单的例子,其中文件min中的值被读回到程序中,与端口3上的颜色传感器进行比较。
如果要保存多个颜色传感器的值,我们只需相应地命名文件。例如,它可能是一个名为minport1和minport2的文件,分别存储连接到端口1和2上的颜色传感器的值。要使用我们保存的值,
我们的巡线程序首先从文件中读取保存的值,然后计算所需的光值范围。
查看校准值
大家对如何看到新校准值比较困惑。ev3程序块有很实用的内置程序,可让我们查看各种传感器的值,但显示颜色传感器读值时,显示的始终是未校准值。因此,
如果我们使用校准模块并在ev3程序块的存储器中为ev3颜色传感器存储了新的校准值,然后使用内置的颜色传感器查看器,我们会发现它不会显示新的校准值,而是继续显示原始的未校准值。
要查看新的校准值,我们可以自己编写颜色传感器读值查看器,显示从颜色传感器返回的校准值。编写巡线程序时,知道这些值非常重要,我们要了解机器人检测值的范围。
程序很简单,如下图所示。
创建一个循环模块,在循环模块里拖拽一个颜色传感器模块,然后连接到设置为文本模式的显示模块,颜色传感器返回的数值被传递给显示模块,转换为文本在ev3屏幕上显示出来,然后等待1s,
并再次读取颜色传感器的数据。
当我们调试程序时,或更改传感器在底盘上的位置时,这个程序有助于找出巡线程序的初始范围。例如,我们可以四下移动颜色传感器,感受任务场地不同位置和房间各种光源下的光值读数差异。
我觉得这个查看程序很有帮助,运行这个程序,然后用各种光源照射任务场地,把机器人放在场地上,看看什么样的灯光对读数有影响。再尝试一下从各个角度照射灯光,因为很多时候,阴影会比光线本身造成更多的问题。
删除校准数据
ev3校准模块还具有删除功能,可清除当前被存储在ev3程序块内存中的校准值。在校准过程开始时清除这些值可能会有所帮助,这样我们就知道在ev3程序块中使用的数值是正确的。
这段代码显示了基本的校准值删除程序。首先,等待用户按下ev3程序块上的深灰色按钮,然后通过校准模块删除当前的校准值,最后,它发出确认音。
遮蔽颜色传感器
校准颜色传感器很重要,遮蔽颜色传感器同样重要。ev3颜色传感器可以通过led自己产生光源,所以外界的光线真的只是一个麻烦。许多依靠颜色传感器进行导航的机器人在黑暗的房间中工作效果最佳,
因为此时唯一的反射光来自传感器上的led。
我们要做的是,保持颜色传感器较低的安装位置,让它垂直于任务场地,倾斜的传感器不会给我们需要的结果。传感器距离任务场地约3cm最为合适,过于接近场地会让传感器无法检测到光线;离场地太远,
外界的光源对传感器读数又有影响。
为颜色传感器搭建一些盖子,这是防止外界干扰的好办法。大多数朋友都会将传感器安装在机器人的底盘下面,用机器人的框架来遮挡房间里的光线。
今天花了这么大的篇幅介绍了颜色传感器的校准,可见这项任务是多么的重要,我们一定要认真的搞清楚搞明白它,为后面的巡线操作打下坚实的基础。
上一个:u盘启动nvme固态硬盘,哪种方式的u盘启动能认nvme的固态硬盘
下一个:只购买云服务器不购买云数据库

砌筑工程施工方法大全收藏了!
行政诉讼涉及财产应该如何收费
百合种球培育
4g电脑是什么意思(电脑运行4G)
眼角鱼尾纹去除方法 眼角鱼尾纹去除方法简述
7月初适合去哪里旅游
LR2512-2AR062D4,旺诠合金2512 62mΩ ±0.5% 1.5W
大虾青菜炒面的制作方法 大虾青菜炒面怎么做
计算机主要通过什么传播病毒
海尔洗衣机代码5处理