24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

您当前的位置:
首页>
電(diàn)子资讯>
技术专题>
使用(yòng)TCS3200模块进行...

技术专题

使用(yòng)TCS3200模块进行颜色识别


使用(yòng)TCS3200模块进行颜色识别

该项目用(yòng)于检测颜色并使用(yòng)TCS3200颜色传感器模块和Arduino板在LCD上显示颜色名称。传感器使用(yòng)彩色光電(diàn)二极管输出红色,绿色和蓝色的反射光值。颜色输出以频率显示,其值取决于强度。

颜色识别理(lǐ)论

為(wèi)了了解眼睛感知到的特定颜色,将眼睛接收到的信号分(fēn)為(wèi)红色,绿色和蓝色,以名称三刺激值表示。任何特定颜色的三刺激值是RGB的三个分(fēn)量。我们使用(yòng)的传感器还提供类似于三刺激值的信号。

必须从接收為(wèi)VrVgVbRGB的值中计算出两个称為(wèi)色度坐(zuò)标的值。國(guó)际照明委员会(CIE)在1931年引入了计算这两个xy坐(zuò)标的公式。

1:色度图,xy為(wèi)红色和绿色坐(zuò)标

该委员会在读取了成千上万个具有(yǒu)各种颜色对象的视觉观察员的读数后,得出了称為(wèi)色度图的图表,如图1所示。根据计算出的xy坐(zuò)标,可(kě)以通过绘制颜色来确定颜色( xy)点在图表中。

x = Vr /Vr + Vg + Vb

y = Vg /Vr + Vg + Vb

例如,x = 0.2y = 0.35给出蓝绿色,而x = 0.47y = 0.45给出黄色。该图表具有(yǒu)马蹄形形状,虽然很(hěn)奇怪,但这是CIE详尽研究的结果。图表的边缘显示了最纯净的颜色,并在其中指出的某些点上显示了光谱波長(cháng)值。

例如,蓝色始于400nm,绿色始于500540nm,黄色始于575nm,红色始于640nm

图表的底部是互补色,包括紫色和洋红色。中心显示的白色區(qū)域是白色的近似范围,尽管某些颜色的坐(zuò)标也落在该白色椭圆形區(qū)域内。该图表是精确的,但是此处显示的带有(yǒu)颜色之间的界線(xiàn)的图表仅是近似值。

因此,所显示的區(qū)别出的曲線(xiàn)(例如绿色和淡黄色绿色)仅是近似的。在此图表中,主要颜色為(wèi)十七种。因此,本文(wén)中的電(diàn)路和程序旨在识别多(duō)达22种颜色,包括补色。

電(diàn)路与工作

用(yòng)于颜色识别的電(diàn)路图如图2所示。它围绕着Arduino Uno板(Board1),16×2 LCDLCD1),TCS3200颜色传感器模块(CS)和一些分(fēn)立的组件而构建。TCS3200颜色传感器模块如图3所示。

2:用(yòng)于颜色识别的電(diàn)路图

3TCS3200颜色传感器模块

所示電(diàn)路使用(yòng)频率输出。Arduino的外部中断引脚INT0(引脚2)用(yòng)于计数频率值。我们选择10kHz作為(wèi)最大范围。引脚S2S3001101的顺序选择颜色。只有(yǒu)红色(R),绿色(G)和蓝色(B)的所谓三刺激值可(kě)用(yòng)。颜色传感器模块的详细信息已发布在使用(yòng)TCS3200RGB颜色检测器

现在可(kě)以在此链接上获得传感器模块的DIY文(wén)章。

这三个频率值用(yòng)于确定色度坐(zuò)标,从而使用(yòng)我们的搜索算法从CIE色度图中识别22种分(fēn)类的颜色中的一种。根据颜色标定的CIE图表(图2),為(wèi)每个对象指示色度坐(zuò)标(乘以10)以及最接近的颜色名称。这些RG值用(yòng)于颜色匹配。

LCD连接到Arduino开发板,以显示坐(zuò)标RG以及颜色名称。RG用(yòng)于颜色匹配,因為(wèi)两个相同的有(yǒu)色对象将具有(yǒu)相似的值。

该電(diàn)路还与一个两行字符LCD显示器相连。LCD的引脚3连接到10千欧(VR1)電(diàn)位计,以在05V之间调节電(diàn)压,以改变LCD模块上显示的字符的对比度。

数据包括到LCD11-14)的引脚D4D7的四線(xiàn)连接。引脚15连接到+ 5V,用(yòng)于LCD的背光,引脚16通过電(diàn)阻R2接地。

在这里,我们使用(yòng)的是四線(xiàn)数据连接,而不是八線(xiàn)数据连接。因此,程序必须在两个连续的写操作中发送命令和地址值。使用(yòng)四線(xiàn)连接可(kě)以节省微控制器上的引脚。

4中显示了被检测并显示在LCD上的淡黄色物(wù)體(tǐ)以及信号值。

4ab):淡黄色物(wù)體(tǐ)的检测

对芯片进行编程

该单元的程序(colour_sense.bas)是在Oshon AVR Simulator IDE上开发的。该软件有(yǒu)助于开发项目。

完成编码(用(yòng)BASIC编写)后,编译代码或将生成的十六进制文(wén)件加载到Arduino Uno板上的ATmega328P芯片中。Xloader程序用(yòng)于加载十六进制文(wén)件。执行Xloader程序后,将打开一个窗口,如图5所示。為(wèi)Arduino Uno板连接的USB插座指定COM端口号。可(kě)以从PC /筆(bǐ)记本電(diàn)脑上Windows上的设备管理(lǐ)器中找到此号码。

XLoader窗口浏览十六进制代码,如图5所示,然后按上载按钮。加载代码后,从筆(bǐ)记本電(diàn)脑上断开Arduino板的连接,然后将9V适配器连接到其DC插座(或将5V電(diàn)源连接到其5V和接地引脚)。

5Xloader窗口

建设与测试

6中显示了用(yòng)于颜色识别的PCB布局,图7中显示了其组件布局。在PCB上组装電(diàn)路后,将其封装在合适的盒子中。将传感器模块和LCD固定在前面板上,并将電(diàn)線(xiàn)连接到PCB上的相应连接器。

6:颜色识别的PCB布局

7PCB的组件布局

请输入搜索关键字

确定