了解如何在Raspberry Pi和TCS3200 RGB传感器模块上查看和使用颜色!
测量对象的颜色在许多实际应用中可能很有用,可以使用许多不同的方法。在本文中将向您介绍在两个流行平台上使用TCS3200 RGB传感器模块的基础知识。
关于RGB传感器 TCS3200 RGB传感器模块是一种廉价的可编程光频率转换器。该器件由64个单独的光电二极管组成,这些光电二极管可测量入射到传感器的光的强度。然后将测量值转换为占空比为50%的方波。频率与测得的光强度成正比。
TCS3200模块的功能框图。
如您所见,传感器的五个输入可用于更改设备的行为。线S2和S3用于更改传感器应检测的颜色,线S0和S1可用于缩放输出频率,而OE在拉低时使能输出。 传感器本身通常安装在小PCB上,旁边有四个LED。某些电路板还具有其他输入,可让点亮和熄灭LED。
将RGB传感器与Arduino结合使用 要将传感器与Arduino一起使用,请如下图所示连接输入和输出。
Arduino Uno和RGB传感器之间的连接
如果要在Arduino上使用较少数量的引脚,则可以将传感器的S0、S1和OE引脚接线为高电平或低电平。
现在,让我们运行一个简短的测试脚本,该脚本从传感器读取红色值并将其显示在串口绘图仪中:
当传感器指向一张蓝纸(图像中的1和3区域)时,测量值将相对较高。但是,一旦我将传感器对准红色,该值就会显着下降(2区域)。4区域的部分显示混合颜色时发生的情况。根据颜色包含的红色量,该值将改变。
在Arduino上,可以使用pulseIn的标准函数来测量传感器输出信号的周期。该函数将简单地返回信号的两个下降沿或上升沿之间的时间。
将RGB传感器与Raspberry Pi 4配合使用 在Raspberry Pi上,事情变得有些复杂。不幸的是,Raspberry Pi没有内置计时器,因此没有像Arduino那样的标准库函数,我们必须实现自己的替代方法。
首先,将传感器连接到Raspberry Pi:
Raspberry Pi 4和RGB传感器之间的连接
如您所见,我使用了上面讨论的方法来占用较少的GPIO引脚。无论是否连接S0和S1引脚,请确保在Raspberry Pi上使用最小的缩放比例。
我们需要这样做,因为如上所述,Pi没有硬件时钟。相反,我们可以在传感器的输出线上等待脉冲,然后从Linux获取系统时间。然后,当另一个下降沿出现时,我们再次获得时间并计算差值。
与硬件计时器相比,此方法的准确性可能较低,因此,我不建议使用较大的比例因子。
但这是与Arduino代码的唯一区别。所测量的时间仍然可以用来确定传感器要拾取的颜色。
TCS3200 RGB传感器易于设置 TCS3200是有用的小型传感器,一旦您弄清楚了它的工作原理,便可以快速、非常容易地使用它。精度还不错,但是要准确地分类传感器拾取的颜色可能会很棘手。但是,足以决定是否将其指向红色、绿色或蓝色。
|