风筝
发表于: 2019-9-30 15:04:04 | 显示全部楼层

了解如何在Raspberry Pi和TCS3200 RGB传感器模块上查看和使用颜色!


测量对象的颜色在许多实际应用中可能很有用,可以使用许多不同的方法。在本文中将向您介绍在两个流行平台上使用TCS3200 RGB传感器模块的基础知识。


关于RGB传感器

TCS3200 RGB传感器模块是一种廉价的可编程光频率转换器。该器件由64个单独的光电二极管组成,这些光电二极管可测量入射到传感器的光的强度。然后将测量值转换为占空比为50%的方波。频率与测得的光强度成正比。

TCS3200 module.png

TCS3200模块的功能框图。


如您所见,传感器的五个输入可用于更改设备的行为。线S2和S3用于更改传感器应检测的颜色,线S0和S1可用于缩放输出频率,而OE在拉低时使能输出。

传感器本身通常安​​装在小PCB上,旁边有四个LED。某些电路板还具有其他输入,可让点亮和熄灭LED。


将RGB传感器与Arduino结合使用

要将传感器与Arduino一起使用,请如下图所示连接输入和输出。

connect .png

Arduino Uno和RGB传感器之间的连接


如果要在Arduino上使用较少数量的引脚,则可以将传感器的S0、S1和OE引脚接线为高电平或低电平。


现在,让我们运行一个简短的测试脚本,该脚本从传感器读取红色值并将其显示在串口绘图仪中:

test-script.png


当传感器指向一张蓝纸(图像中的1和3区域)时,测量值将相对较高。但是,一旦我将传感器对准红色,该值就会显着下降(2区域)。4区域的部分显示混合颜色时发生的情况。根据颜色包含的红色量,该值将改变。


在Arduino上,可以使用pulseIn的标准函数来测量传感器输出信号的周期。该函数将简单地返回信号的两个下降沿或上升沿之间的时间。


将RGB传感器与Raspberry Pi 4配合使用

在Raspberry Pi上,事情变得有些复杂。不幸的是,Raspberry Pi没有内置计时器,因此没有像Arduino那样的标准库函数,我们必须实现自己的替代方法。


首先,将传感器连接到Raspberry Pi:

connect the sensor to your Raspberry Pi.png

Raspberry Pi 4和RGB传感器之间的连接


如您所见,我使用了上面讨论的方法来占用较少的GPIO引脚。无论是否连接S0和S1引脚,请确保在Raspberry Pi上使用最小的缩放比例。


我们需要这样做,因为如上所述,Pi没有硬件时钟。相反,我们可以在传感器的输出线上等待脉冲,然后从Linux获取系统时间。然后,当另一个下降沿出现时,我们再次获得时间并计算差值。

calculate the difference.png

与硬件计时器相比,此方法的准确性可能较低,因此,我不建议使用较大的比例因子。


但这是与Arduino代码的唯一区别。所测量的时间仍然可以用来确定传感器要拾取的颜色。


TCS3200 RGB传感器易于设置

TCS3200是有用的小型传感器,一旦您弄清楚了它的工作原理,便可以快速、非常容易地使用它。精度还不错,但是要准确地分类传感器拾取的颜色可能会很棘手。但是,足以决定是否将其指向红色、绿色或蓝色。

Easy to Set Up.png

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1479



手机版|

GMT+8, 2024-3-29 03:31 , Processed in 0.101564 second(s), 9 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表