0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用TCS3200模块进行颜色识别

要长高 来源:韬放科技 2023-10-15 16:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

颜色识别理论

为了了解眼睛感知到的特定颜色,将眼睛接收到的信号分为红色,绿色和蓝色,以名称三刺激值表示。任何特定颜色的三刺激值是R,G和B的三个分量。我们使用的传感器还提供类似于三刺激值的信号。

必须从接收为Vr,Vg和Vb的R,G和B的值中计算出两个称为“色度坐标”的值。国际照明委员会(CIE)在1931年引入了计算这两个x和y坐标的公式。

wKgaomUrnpKAehdtAAMO_fGQmgA433.png

图1:色度图,x和y为红色和绿色坐标

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

x = Vr /(Vr + Vg + Vb)

y = Vg /(Vr + Vg + Vb)

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

例如,蓝色始于400nm,绿色始于500至540nm,黄色始于575nm,红色始于640nm。

图表的底部是互补色,包括紫色和洋红色。中心显示的白色区域是白色的近似范围,尽管某些颜色的坐标也落在该白色椭圆形区域内。该图表是精确的,但是此处显示的带有颜色之间的界线的图表仅是近似值。

因此,所显示的区别出的曲线(例如绿色和淡黄色绿色)仅是近似的。在此图表中,主要颜色为十七种。因此,本文中的电路和程序旨在识别多达22种颜色,包括补色。

电路与工作

用于颜色识别的电路图如图2所示。它围绕着Arduino Uno板(Board1),16×2 LCD(LCD1),TCS3200颜色传感器模块(CS)和一些分立的组件而构建。TCS3200颜色传感器模块如图3所示。

图2:用于颜色识别的电路图

图3:TCS3200颜色传感器模块

所示电路使用频率输出。Arduino的外部中断引脚INT0(引脚2)用于计数频率值。我们选择10kHz作为最大范围。引脚S2和S3按00、11和01的顺序选择颜色。只有红色(R),绿色(G)和蓝色(B)的所谓三刺激值可用。颜色传感器模块的详细信息已发布在“使用TCS3200的RGB颜色检测器”中

现在可以在此链接上获得传感器模块的DIY文章。

这三个频率值用于确定色度坐标,从而使用我们的搜索算法从CIE色度图中识别22种分类的颜色中的一种。根据颜色标定的CIE图表(图2),为每个对象指示色度坐标(乘以10)以及最接近的颜色名称。这些R和G值用于颜色匹配。

LCD连接到Arduino开发板,以显示坐标R和G以及颜色名称。R和G用于颜色匹配,因为两个相同的有色对象将具有相似的值。

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

数据包括到LCD(11-14)的引脚D4至D7的四线连接。引脚15连接到+ 5V,用于LCD的背光,引脚16通过电阻R2接地。

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

图4中显示了被检测并显示在LCD上的淡黄色物体以及信号值。

图4(a和b):淡黄色物体的检测

对芯片进行编程

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

完成编码(用BASIC编写)后,编译代码或将生成的十六进制文件加载到Arduino Uno板上的ATmega328P芯片中。Xloader程序用于加载十六进制文件。执行Xloader程序后,将打开一个窗口,如图5所示。为Arduino Uno板连接的USB插座指定COM端口号。可以从PC /笔记本电脑上Windows上的“设备管理器”中找到此号码。

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

图5:Xloader窗口

建设与测试

图6中显示了用于颜色识别的PCB布局,图7中显示了其组件布局。在PCB上组装电路后,将其封装在合适的盒子中。将传感器模块和LCD固定在前面板上,并将电线连接到PCB上的相应连接器

图6:颜色识别的PCB布局

图7:PCB的组件布局

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    36

    文章

    4578

    浏览量

    175822
  • 颜色传感器
    +关注

    关注

    2

    文章

    105

    浏览量

    18945
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195967
  • TCS3200
    +关注

    关注

    0

    文章

    23

    浏览量

    15960
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用 Arm Helium 进行颜色格式转换和功能验证?

    使用 Arm Helium 进行颜色格式转换和功能验证
    发表于 08-19 06:52

    模块拉环颜色背后的神秘意义,你知道多少?

    在数据中心的复杂网络世界里,光模块扮演着至关重要的角色,它负责实现电信号与光信号之间的高效转换,确保数据在光纤网络中稳定、高速地传输。而光模块上小小的拉环颜色,看似不起眼,却隐藏着诸多关键信息,下面跟着小易,一起揭开其神秘的面纱
    的头像 发表于 08-05 16:22 604次阅读
    光<b class='flag-5'>模块</b>拉环<b class='flag-5'>颜色</b>背后的神秘意义,你知道多少?

    基于LockAI视觉识别模块:C++人脸识别

    本文基于RV1106做成的LockAI视觉识别模块,采用LZ-Picodet模型训练的人脸检测模型LZ-Face,以及ArcFace人脸识别模型,实现人脸识别系统。
    的头像 发表于 07-01 10:09 512次阅读
    基于LockAI视觉<b class='flag-5'>识别</b><b class='flag-5'>模块</b>:C++人脸<b class='flag-5'>识别</b>

    基于LockAI视觉识别模块:手写数字识别

    手写数字识别是一种经典的模式识别和图像处理问题,旨在通过计算机自动识别用户手写的数字。本文将教会你如何使用基于RV1106的LockAI视觉识别模块
    的头像 发表于 06-30 15:44 851次阅读
    基于LockAI视觉<b class='flag-5'>识别</b><b class='flag-5'>模块</b>:手写数字<b class='flag-5'>识别</b>

    基于LockAI视觉识别模块:C++条码识别

    条码识别是视觉模块经常使用到的功能之一,经常用于识别超市的货物信息。本文我们将演示如何基于瑞芯微RV1106的LockAI视觉识别进行条码
    的头像 发表于 05-27 09:32 512次阅读
    基于LockAI视觉<b class='flag-5'>识别</b><b class='flag-5'>模块</b>:C++条码<b class='flag-5'>识别</b>

    基于LockAI视觉识别模块:C++二维码识别

    二维码识别是视觉模块经常使用到的功能之一。我们将演示如何使用基于瑞芯微RV1106的LockAI视觉识别模块进行二维码
    的头像 发表于 05-26 09:42 693次阅读
    基于LockAI视觉<b class='flag-5'>识别</b><b class='flag-5'>模块</b>:C++二维码<b class='flag-5'>识别</b>

    基于LockAI视觉识别模块:C++同时识别轮廓和色块

    1.项目简介1.1色块识别的重要性颜色特征提取:颜色是一种重要的视觉特征,尤其在背景较为单一的情况下,能够快速区分目标区域。应用场景:广泛应用于机器人导航、工业自动化、物体跟踪等领域。HSV
    的头像 发表于 05-23 16:41 725次阅读
    基于LockAI视觉<b class='flag-5'>识别</b><b class='flag-5'>模块</b>:C++同时<b class='flag-5'>识别</b>轮廓和色块

    # 基于LockAI视觉识别模块:C++寻找色块

    在传统计算机视觉场景中,颜色识别是目标检测和分割的重要手段之一。通过识别特定颜色的色块,可以在相对纯净的背景下快速定位目标区域。本实验提供了一个简单的色块
    的头像 发表于 05-12 14:27 492次阅读
    # 基于LockAI视觉<b class='flag-5'>识别</b><b class='flag-5'>模块</b>:C++寻找色块

    基于LockAI视觉识别模块:C++使用图像的统计信息

    在图像处理中,统计信息可以帮助我们了解图像的特性,例如区域内的像素分布、颜色转换以及特定区域的分析。本文将介绍基于LockAI视觉识别模块如何提取兴趣区域(ROI)、转换颜色通道、计算
    的头像 发表于 05-08 10:09 556次阅读
    基于LockAI视觉<b class='flag-5'>识别</b><b class='flag-5'>模块</b>:C++使用图像的统计信息

    基于LockAI视觉识别模块:C++图像采集例程

    本文主要演示如何使用LockAI视觉识别模块进行视频流的读取,同时使用Edit模块进行图像传输。基础知识讲解1.1OpenCV简介OpenC
    的头像 发表于 04-30 18:23 557次阅读
    基于LockAI视觉<b class='flag-5'>识别</b><b class='flag-5'>模块</b>:C++图像采集例程

    MC68HC908QT4输入捕获问题

    使用MC68HC908QT4去控制TCS3200感光传感器,在输入捕获中卡住了,不知道为什么一直处于捕获中,不能执行主程序内容,代码如下 望大佬们指教
    发表于 03-05 15:51

    深度解析!RK3568 加持机械臂是如何实现颜色识别与抓取的?

    一、产品简介TL3568-PlusTEB人工智能实验箱国产高性能处理器64位4核低功耗2.0GHz超高主频1T超高算力NPU兼容鸿蒙等国产操作系统二、实验目的1、了解机械臂识别颜色抓取积木的基本流程
    的头像 发表于 01-15 08:07 1243次阅读
    深度解析!RK3568 加持机械臂是如何实现<b class='flag-5'>颜色</b><b class='flag-5'>识别</b>与抓取的?

    adss光缆颜色详细分析

    过程中的识别,还便于后续的维护和故障排除。以下是对ADSS光缆颜色的详细分析: 一、光纤色谱排列 ADSS光缆内部的光纤通常按照一定的色谱进行排列,这些色谱包括蓝、桔(橙)、绿、棕、灰、白等
    的头像 发表于 01-08 10:47 1423次阅读

    【CW32模块使用】TCS34725颜色识别传感器

    模块是基于AMS的TCS3472XFN彩色光数字转换器为核心的颜色传感器,传感器提供红色,绿色,蓝色(RGB)和清晰光感应值的数字输出。集成红外阻挡滤光片可最大限度地减少入射光的红外光谱成分,并可
    的头像 发表于 12-30 11:28 1129次阅读
    【CW32<b class='flag-5'>模块</b>使用】<b class='flag-5'>TCS</b>34725<b class='flag-5'>颜色</b><b class='flag-5'>识别</b>传感器

    色环电阻颜色编码解析 如何识别色环电阻的阻值

    色环电阻的颜色编码是一种标准化系统,用于表示电阻的电阻值、容差,有时甚至表示电阻的温度系数。以下是对色环电阻颜色编码的介绍以及识别色环电阻阻值的方法: 一、色环电阻颜色编码 色环电阻通
    的头像 发表于 12-23 10:18 1.2w次阅读