颜色传感器tcs230 基于TCS3200D数字式颜色测试仪的研究
基于TCS3200D数字式颜色测试仪的研究
马文秀, 时维铎, 丁小田, 沈东伟
(南京林业大学,江苏 南京 210037)
摘要 :介绍了一种基于数字式颜色传感器TCS3200D与MSP430单片机相结合的颜色测试仪。该测试仪应用电路简单,可以方便快捷地检测被测物体颜色,并通过12864液晶屏显示对应的颜色和RGB值。实验表明,TCS3200D传感器在不同温度下,测量精度高、工作可靠,适用于在整个染色过程中颜色的在线检测以及高温、高湿环境的颜色监测。
0引言
我国是一个纺织大国,随着社会的快速发展,染色行业已成为我国的支柱产业。随着新技术、新工艺的发展,采用信息技术提高生产力具有重要意义。目前,国内印染生产能力迅速扩大,然而,在产量、产值大幅增长的同时,印染行业的发展也越来越受到资源和环境的制约。当前我国印染行业的整体水平(即品种结构、产品质量、制造技术、应用服务等)与国际先进水平相比存在一定差距,与我国作为世界纺织印染生产大国的地位极不相称。当前国内印染企业存在的问题:(1)设备落后,区分出的颜色的暗度/亮度级、颜色饱和度存在一定的误差,无法生产符合市场高要求的流行产品;(2)虽然投入大量的资金购进先进设备,但生产技术和管理水平跟不上,不能生产出高质量的产品,质量问题集中在稳定性、色差、色窂度、疵点、缩水率等。此外,也存在布边处理不好、不能适应服装CAD/CAM排料生产的需要、幅宽不一致等问题。本文将TCS3200D颜色传感器与温度传感器相结合进行颜色在线检测,并通过液晶显示直接观察到布匹染色过程中表面颜色的RGB值,当布匹的颜色达到设定值时,印染完成,可以进行服装的加工。从而可以节省时间,提高印染的质量和生产的效率。
1颜色方程
把三原色R*、G*、B*以及任意颜色C*看成是一色向量,每一向量各有相应的单位向量[R]、[G]、[B]以及[C]。于是把色向量写成R[R]、G[G]、B[B]以及C[C]形式时,R、G、B、C分别代表相应的颜色强度和色量[1],得出颜色方程:
C[C]= R[R]+G[G]+B[B](1)
其中,R、G、B为颜色C*的三刺激值。
其中φ(λ)是带测光的光谱分布函数值,积分的波长范围为可见光波段,一般为380~780 nm[2]。把三原色各自占R+G+B总量的相对比值称作三维色度坐标,分别为:
r=RR+G+B
g=GR+G+B
b=BR+G+B(3)
且r+g+b=1
则颜色C*的单位值为:
C[C]= r[R]+g[G]+b[B](4)
颜色C*的色量C为C=R+G+B。
显然r、g、b的数值与R*、G*、B*采用的单位光亮度有关。则标准白光(W)的三刺激值为R=G=B=1,色品坐标为[3]:
由图1可以看出,标准白光在色品图上的位置是r=0.33,g=0.33。只需给出r和g两个坐标值就可以确定任意颜色在色品图的位置。
2颜色测量原理
由图2可知,当入射光投射到TCS3200D上时,通过光电二极管控制引脚S2、S3的高低电平组合,可以选择不同的滤波器,经过电流频率转换器输出不同频率的方波(占空比是50%)[4],由于不同的颜色RGB值不同以及光照强度高低不同,因此输出的方波频率不同,可以通过控制引脚S0、S1,选择不同的输出比例因子,来调节频率的输出范围,满足更多方面的需求。当S0和S1都为低电平时,关闭电源;当S0为低电平、S1为高电平时,OUT输出脉冲长度为最大输出频率的2%;当S0为高电平、S1为低电平时,OUT输出脉冲长度为最大输出频率的20%;当S0、S1均为高电平时,OUT输出脉冲长度为最大输出频率的100%[5]。S0、S1引脚功能分配图如表1所示。
S2、S3用于选择滤波器的类型;OE低电平有效,可以控制输出的状态,当有多个芯片引脚共同输出时,此引脚也可以作为片选信号。当S2和S3都为低电平时,选择红色滤波器;当S2为低电平、S3为高电平时,选择蓝色滤波器;当S2为高电平、S3为低电平时,可以透过全部的光信号;当S2、S3都为高电平时,选择绿色滤波器[6]。S2、S3引脚功能分配图如表2所示。表1S0、S1引脚功能分配图S0S1输出频率比例系数LL关断LH2%HL20%HH100%表2S2、S3引脚功能分配图S2S3光电二极管类型LL红色LH蓝色HL无HH绿色
3总体方案设计
3.1总体原理框图的设计
本设计以MSP430作为控制器,MSP430是一种16位超低功耗的单片机,具有强大的处理能力和丰富的片内外围模块,系统工作稳定[6]。本设计采用的供电电源为3.3 V,特别适合应用于电池长时间工作的场合[7]。利用单片机与颜色传感器进行传输处理,并通过LCD12864进行显示,其总体原理框图如图3所示。
3.2TCS3200D模块图
图4中TCS3200D颜色采集模块由4个白色的LED灯和64个光电二极管组成。4个LED灯作为照明光源,用来检测不发光的物体[8]。64个光电二极管中,16个带有红色滤波器,只能通过红色;16个带有绿色滤波器,只能通过绿色;16个带有蓝色滤波器,只能通过蓝色;其余16个不带有任何滤波器,可以透过全部的光信号。这些光电二极管在芯片内交叉排列,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色识别的精确度。另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差[4],提高了它的适应能力。
4硬件电路设计
本设计采用MSP430[9]作为主控制器,为了降低功耗,采用+3.3 V供电,选用LM117-3.3芯片,将+5 V电压转换为+3.3 V电压。整个测试过程中,数据的采集、处理与传输是由TCS3200D颜色传感器、MSP430和电源完成[10],通过单片机对颜色传感器进行控制,输出测量物体的RGB值,在LCD 12864上进行显示。考虑到印染过程中布料表面面积比较大,本实验设计TCS3200D三并联形式感应器[8],由三个TCS3200D并排组合而成,S0、S1、S2、S3是选择滤波器类型和输出频率的比例系数,OE使能端作片选,分别单独使用,OE低电平有效。测量的最佳距离为10 mm,图5是TCS3200D与MSP430连接图,实际上图5TCS3200D与MSP430连接图MSP430还有很多I/O口可以实现更多传感器的控制,实现多点采集[7]。
5软件设计
系统上电以后,软件部分主要是对MSP430、TCS3200D颜色传感器和12864液晶显示器进行初始化,并在测图6系统总体流程图试颜色之前一定要对TCS3200D进行白平衡。如果白平衡按键没有按下,则判断是否有颜色识别,若有颜色识别则调用测量子程序,否则返回,等待下一次测量;如果白平衡按键按下则调用白平衡子程序,然后进行颜色识别,并通过LCD12864液晶显示屏显示RGB值,测试完毕则返回。系统的总体流程图如图6所示[11]。
在颜色识别过程中要注意以下两点:(1)在颜色测试之前一定要进行白平衡。由于人的肉眼分辨出的白色并不是完全的纯白色,因此对测试结果会产生一定的影响,所以进行白平衡很有必要。(2)在测试过程中要避免外界光线的干扰,否则对测试结果会有一定的影响。
6测试结果及分析
在整个测试过程中要避免外界光线的干扰,否则测试的RGB值与实际值相差很大,本次设计采用一个避光小木盒来提高传感器测量的精度。本次测试主要对红色、粉色、蓝色、浅蓝、黄绿、黄色和白色进行10次测试并且记录数据,求得RGB的平均值,如表3所示[12]。以粉色为例观察RGB值与时间的关系来判断TCS3200D颜色传感器的稳定性,如图7所示。
对以上所测数据进行分析,并与实际RGB值进行对比,最大绝对误差为10,最小绝对误差为0,最大相对误差为5.8%,平均相对误差为3.04%。通过图7可以看出,TCS3200D颜色传感器随着时间的变化,测量值基本不变,说明该传感器具有识别速度快、测量精度高和稳定性好的特点。
7结论
本设计使用了数字式TCS3200D颜色传感器和低功耗的MSP430搭建的颜色识别电路,由于TCS3200D输出的是数字量,简化了电路[13],而且测量速度快,精度高,在印染行业具有一定的实用性。
参考文献
[1] 何国兴. 颜色科学[M].上海:东华大学出版社,2004.
[2] 徐海松.颜色信息工程[M].杭州:浙江大学出版社,2005.
[3] 薛朝华. 颜色科学与计算机测色配色实用技术[M].北京:化学工业出版社,2004.
[4] 胡建民.颜色传感器TCS230及颜色识别电路[J].单片机与嵌入式系统应用,2006(4):4041.
[5] 李梅花,喻玺,周海波,等.基于TCS3200D的多路颜色采集系统设计[J].新技术新工艺,2014(12):2629.
[6] 何利民.单片机高级教程—应用与设计[M].北京:北京航空航天大学出版社,2007.
[7] 徐磊,时维铎,王军,等.用于生态环境微传感节点的光电能量转换系统设计[J].传感器与微系统,2014,33(7):8688.
[8] 蒋寅国,邓燕妮.基于TCS3200D的多点颜色检测装置的设计[J].仪表技术,2011(3):5455.
[9] 沈建华, 杨艳琴, 翟骁曙.MSP430系列16位超低功耗单片机实践与系统设计[M].北京:清华大学出版社,2005.
[10] 胡大可.MSP430系列单片机C语言程序设计与开发[M].北京:北京航空航天大学出版社,2003.
[11] 谭浩强.C程序设计[M].北京: 清华大学出版社,2005.
[12] 张菁,杨应平,章金敏,等.基于TCS3200D的颜色再现与分类[J].武汉大学学报(工学版),2013,46(2):257260.
[13] 卢川英,于浩成,孙敬辉,等.基于TCS230传感器的颜色检测系统[J].吉林大学学服(信息科学版),2008,26(6):621626.
识别色彩只靠RGB吗?有8通道的传感器?看看AS7341的性能
用于色彩识别的传感器有多种,如TCS230、TCS3200及VEML6040等,见图1所示,但这些色彩传感器多是基于RGB来识别色彩的。
图1 色彩传感器
此次介绍的主角AS7341可见光传感器却之有较大的区别,它提供8个可见光检测通道,该传感器的功能模块如图2所示。 这8个检测通道的波长分布期间如图3所示。
图2 AS7341传感器模块
图3 8个检测通道的波长分布
为有一个感性的认识,从图4可以了解到传感器所检测的色彩波长区间。
图4 色彩的波长区间
以黄色为例,RGB色彩传感器和AS7341可见光传感器的对比如下表所示。
该可见光传感器是基于ams公司推出的新一代AS7341光谱传感IC,该传感器有8个可见光通道、1个闪烁通道、1个NIR通道和1个未加滤光片的通道。它拥有6个独立的16位ADC通道,且可以并行处理数据。此外,该传感器板载了两颗高亮LED,可在暗光环境下进行补光。
该传感器的技术参数如下:
供电电压:3.3V~5V 可见光测量范围:F1(405-425nm)、F2(435-455nm)、F3(470-490nm)、F4(505-525nm)、F5(545-565nm)、F6(580-600nm)、F7(620-640nm)、F8(670-690nm) 工作电流(不打开LED):<5mA LED驱动电流:1-20等级(4-42mA) I2C地址:0x39 工作温度范围:-30℃~85℃ 工作湿度范围:5%RH~85%RH 产品尺寸:18*14mm其主要的应用方向为:
高准度色彩检测与匹配 颜色混合效果检测 灯光色温调节 灯光氛围控制 植物养殖该传感器的引脚功能如下表所示:
了解了该传感器的性能,那我们该如何使用它呢?
我们这里介绍的方法是为它配上一块FireBeetle-ESP32开发板,它与传感器的连接情况如图5所示,即除电源引脚连接到3.3V电源外,其它2个引脚是直接连接到I2C接口的对应引脚上。
图5 连接关系
要进行色彩的检测,其实现起来也极为方便,具体的步骤是:
1.以Arduino IDE为开发工具(版本为1.8.5),选取“项目”菜单下“加载库”的“添加一个ZIP库”选项;
2.在文件下载对话框,选取“DFRobot_AS7341-master.ZIP”;
图6加载ZIP库
3.在完成后,在“项目”菜单 “加载库”下即可见到“DFRobot_AS7341-master”选项。有了DFRobot_AS7341库,就可以编写相应的控制程序了。
4选取“文件”菜单下的“新建”选项;
5.录入对应的程序;
6.编译并下载程序后,通过串口监视器即可见到图8和图9的检测结果。
图7 检测程序及程序下载
图8 自然光检测值
图9 弱光检测值
相应的检测程序为:
#include"DFRobot_AS7341.h"
DFRobot_AS7341as7341;
void setup(void)
{
Serial.begin(115200);
while (as7341.begin() != 0) {
Serial.println("IIC init failed,please check if the wire connection is correct");
delay(1000);
}
}
void loop(void)
{
DFRobot_AS7341::sModeOneData_t data1;
DFRobot_AS7341::sModeTwoData_t data2;
as7341.startMeasure(as7341.eF1F4ClearNIR);
data1 = as7341.readSpectralDataOne();
Serial.print("F1(405-425nm):");
Serial.println(data1.ADF1);
Serial.print("F2(435-455nm):");
Serial.println(data1.ADF2);
Serial.print("F3(470-490nm):");
Serial.println(data1.ADF3);
Serial.print("F4(505-525nm):");
Serial.println(data1.ADF4);
as7341.startMeasure(as7341.eF5F8ClearNIR);
data2 = as7341.readSpectralDataTwo();
Serial.print("F5(545-565nm):");
Serial.println(data2.ADF5);
Serial.print("F6(580-600nm):");
Serial.println(data2.ADF6);
Serial.print("F7(620-640nm):");
Serial.println(data2.ADF7);
Serial.print("F8(670-690nm):");
Serial.println(data2.ADF8);
Serial.print("Clear:");
Serial.println(data2.ADCLEAR);
Serial.print("NIR:");
Serial.println(data2.ADNIR);
delay(1000);
}
若通过粉红色的吹塑纸来提供检测的样本,则其检测结果如图11 所示,说明在各色彩通道中F8通道的色彩成分最突出。
图10 粉红色检测
图11粉红色检测值
除了色彩检测外,该传感器还能对指定频率的光进行检测,其程序如图12所示。
图12 光频率检测程序及下载
在自然光的条件下,其检测值如图13所示;在打开白纸灯的情况下,其检测如图14所示,这是由于市电的工频为50Hz,故其结果如此。
图13自然光检测结果
图14 开灯后的检测值
有了可见光传感器AS7341 ,我们在进行色彩的识别是不是方便了很多!
原标题:识别色彩只靠RGB吗?有8通道的传感器?看看AS7341的性...
原作者:jinglixixi
本文为21ic有奖征文作品,详情请见21ic论坛活动专区:第二届万元红包——蓝V达人有奖征文活动,如果您也有兴趣参与征文,欢迎进入论坛参与活动~
相关问答
tcs230 工作原理?TCS230采用8引脚的SOIC表面贴装式封装,在单一芯片上集成有64个光电二极管。这些二极管共分为四种类型。其中16个光电二极管带有红色滤波器;16个光电二极管带有...
有人知道么 河南脉冲实验机种类,脉冲实验机有哪些公司生产??[回答]TCS230与TCS3200D原理一致,下面具体谈谈:1、TCS230识别颜色的原理TCS230这种可编程的彩色光到频率转换器适合于色度计测量应用领域,如彩色打印、医...
在座的大神 急急急!!!可批发的IGBT模块公司,IGBT模块哪...[回答]//转自某某大侠的(名字忘了)此程序用于颜色模块TCS230D的51驱动(2010.08.26大侠)//鉴于你应该知道TCS230D芯片的资料,芯片引脚功能我就不说了#inclu...
哪些芯片可以替代am402芯片?芯片确实可以胜任这个替代任务。一些可替代A...一些可替代AM402芯片的例子包括ATmega328P芯片、PIC18F4520芯片和STM32F103C8T6芯片等。但是在选择可替代芯片...
奔驰esp故障灯亮的原因是什么[回答]以奔驰GLS的2021款GLS4004MATIC为例,其最大扭矩为400牛米,最大功率为230千瓦,与其匹配的是9挡手自一体变速箱。奔驰GLS的2021款GLS4004MATIC的长宽...
高颜值皮卡长安凯程F70预售,三问F70如何颠覆传统皮卡?关注易开车,关注更多开车用车买车知识。先说结论:谈到皮卡如何颠覆传统皮卡,不得不先抛开皮卡的拉货属性和爆改属性,毕竟这在推广皮卡身上都不是什么好事。...
施耐德软启参数设置?■电压:230.。。415V/208.。。690V-50/60Hz■通过ATS48的转矩控制系统(TCS专利)■电机的热保护■机械的保护:欠载和过载,门槛值和时间可调的欠...
宝骏530值得入手吗?2018年3月11日,宝骏530正式上市,推出搭载1.5T和1.8L发动机的8款车型,指导价为7.58-11.58万元。宝骏530一经推出,便获得了不错的反响,上市当月便卖出了1.2万...
风云a8乘风版配置?风云a8乘风版搭载了一系列先进的配置,包括1.5T涡轮增压发动机,最大功率110kW,峰值扭矩230N·m,匹配6速手动或6速自动变速箱;配备四轮独立悬架,提高了车辆的...
速腾车重多少?一汽大众速腾车身重多少_车主指南[回答]1353Kg