TCS230颜色传感器的初始化程序

TCS230颜色传感器的初始化程序,第1张

颜色传感器TCS230及颜色识别电路

TCS230是美国TAOS公司生产的一种可编程彩色光到频率的传感器。该传感器具有分辨率高、可编程的颜色选择与输出定标、单电源供电等特点;输出为数字量,可直接与微处理器连接。文中主要介绍TCS230的原理和应用,以及色光和白平衡的知识,并用一个实例说明TCS230识别颜色的过程。

关键词 TCS23 0颜色传感器 颜色识别 白平衡调整

引言

随着现代工业生产向高速化、自动化方向的发展,生产过程中长期以来由人眼起主导作用的颜色识别工作将越来越多地被相应的颜色传感器所替代。例如:图书馆使用颜色区分对文献进行分类,能够极大地提高排架管理和统计等工作;在包装行业,产品包装利用不同的颜色或装潢来表示其不同的性质或用途。目前的颜色传感器通常是在独立的光电二极管上覆盖经过修正的红、绿、篮滤光片,然后对输出信号进行相应的处理,才能将颜色信号识别出来;有的将两者集合起来,但是输出模拟信号,需要一个A/D电路进行采样,对该信号进一步处理,才能进行识别,增加了电路的复杂性,并且存在较大的识别误差,影响了识别的效果。 TAOS(Texas Advanced Optoelectronic Solutions)公司最新推出的颜色传感器TCS230,不仅能够实现颜色的识别与检测,与以前的颜色传感器相比,还具有许多优良的新特性。

1 TCS230芯片的结构框图与特点

TCS230是TAOS公司推出的可编程彩色光到频率的转换器。它把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上集成了红绿蓝(RGB)三种滤光器,是业界第一个有数字兼容接口的RGB彩色传感器。TCS230的输出信号是数字量,可以驱动标准的 TTL或CMOS逻辑输入,因此可直接与微处理器或其他逻辑电路相连接。由于输出的是数字量,并且能够实现每个彩色信道10位以上的转换精度,因而不再需要A/D转换电路,使电路变得更简单。图1是TCS230的引脚和功能框图。

图1中,TCS230采用8引脚的SOIC表面贴装式封装,在单一芯片上集成有64个光电二极管。这些二极管共分为四种类型。其中16个光电二极管带有红色滤波器;16个光电二极管带有绿色滤波器;16个光电二极管带有蓝色滤波器;其余16个不带有任何滤波器,可以透过全部的光信息。这些光电二极管在芯片内是交叉排列的,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。工作时,通过两个可编程的引脚来动态选择所需要的滤波器。该传感器的典型输出频率范围从2 Hz~500 kHz,用户还可以通过两个可编程引脚来选择100%、20%或2%的输出比例因子,或电源关断模式。输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。例如,当使用低速的频率计数器时,就可以选择小的定标值,使TCS230的输出频率和计数器相匹配。

从图1可知:当入射光投射到TCS230上时,通过光电二极管控制引脚S2、S3的不同组合,可以选择不同的滤波器;经过电流到频率转换器后输出不同频率的方波(占空比是50%),不同的颜色和光强对应不同频率的方波;还可以通过输出定标控制引脚S0、S1,选择不同的输出比例因子,对输出频率范围进行调整,以适应不同的需求。

点击可在新窗口打开查看

图1 TCS230的引脚和功能框图

下面简要介绍TCS230芯片各个引脚的功能及它的一些组合选项。

S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;OE是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输入引脚时,也可以作为片选信号;OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压。表1是S0、S1及 S2、S3的可用组合。

点击可在新窗口打开查看

表1 S0、S1及S2、S3的组合选项

2 TCS230识别颜色的原理

由上面的介绍可知,这种可编程的彩色光到频率转换器适合于色度计测量应用领域,如彩色打印、医疗诊断、计算机彩色监视器校准以及油漆、纺织品、化妆品和印刷材料的过程控制和色彩配合。下面以TCS230在液体颜色识别中的应用为例,介绍它的具体使用。首先了解一些光与颜色的知识。

(1) 三原色的感应原理

通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝 B、紫P)。根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。

(2) TCS230识别颜色的原理

由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS230来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其他原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其他的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个值,就可以分析投射到 TCS230传感器上的光的颜色。

(3) 白平衡和颜色识别原理

白平衡就是告诉系统什么是白色。从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS230对所检测的“白色”中的三原色是相等的。进行白平衡调整是为后续的颜色识别作准备。在本装置中,白平衡调整的具体步骤和方法如下:将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到TCS230上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的3个调整参数。

当用TCS230识别颜色时,就用这3个参数对所测颜色的R、G和B进行调整。这里有两种方法来计算调整参数:① 依次选通三种颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间。这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。② 设置定时器为一固定时间(例如10 ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,使用同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。

3 TCS230的应用——颜色识别电路

基于上述分析,采用89C51和TCS230设计一个医用液体颜色识别装置。该装置具有结构简单、识别精度和效率高的特点,并且能够和上位机通信,以将识别的结果实时传送给上位机。由于是说明TCS230的使用情况,下面仅给出其中的TCS230识别电路,如图2所示。图2中用89C51的 P1口的几图3软件流程个引脚来控制TCS230的各个控制引脚,而TCS230的输出引脚连接到89C51的定时器/计数器1的输入端(P35)。设置 89C51定时器/计数器为相应的工作方式,初始化89C51定时器为一个定值,再选择TCS230的输出比例因子,并使能输出引脚。实际使用中,通过读取89C51计数器的值,就可以分别计算出TCS230的3种输出频率,进而确定R、G、B值及颜色。相应的软件流程如图3所示。

点击可在新窗口打开查看

图2 TCS230颜色识别接口电路

在程序流程中:系统初始化负责设置89C51的定时器/计数器的工作方式,选择TCS230的输出比例因子,使能输出引脚以及通信参数的设置。初始化完成后,检测是否需要进行白平衡调整。如有,调整白平衡子程序;否则,转到下一步,检测是否需要进行颜色识别。如不需要颜色识别,返回;如需要颜色识别,调用颜色识别子程序,直到颜色识别完毕。

点击可在新窗口打开查看

图3 软件流程

4 应用中需要注意的问题

① 颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果。最好把传感器、光源等放置在一个密闭、无反射的箱子中进行测试。

② 对光源没有特殊的要求,但是光源发出的光要尽量集中,否则会造成传感器之间的相互干扰。

③ 当第1次使用TCS230时,或TCS230识别模块重启、更换光源等情况时,都需要进行白平衡调整。

结语

文章从TCS230的结构特点出发,介绍了色光理论和颜色识别的知识,以及白平衡的原理和进行调整的方法。结合一个具体的应用,给出了相应的硬件设计电路和软件流程图。该传感器和文中介绍的方法对进行其他的颜色识别,也有很大的帮助。

看你擅长什么语言吧

用C或者C++最好了,效率更高,运行更快

建议Code::Block+GCC+wxWidget

C++库可以尝试用用boost,功能强大

总之这里用到的工具都是跨平台的,Windows,Linux都ok了!

问题一:上位机和下位机 上位机是指:人可以直接发出 *** 控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般模拟量),转化成数字信号反馈给上位机。简言之如此,真实情况千差万别不离其宗。上下位机都需要编程,都有专门的开发系统。

在概念上

控制者和提供服务者是上位机

被控制者和被服务者是下位机

也可以理解为主机和从机的关系

但上位机和下位机是可以转换的

两机如何通讯,一般取决于下位机。TCP/IP一般是支持的。但是下位机一般具有更可靠的独有通讯协议,购买下位机时,会阀一大堆手册光盘,告诉你如何使用特有协议通讯。里面会举大量例子。一般对编程人员而言一看也就那么回事,使用一些新的API罢了。多语言支持功能模块,一般同时支持数种高级语言为上位机编程。

问题二:什么是上位机和下位机,单片机属于哪个 一搬情况下,当你的板子和电脑相连时,电脑是上位机,板子是下位机。同理,用于连接板子的电脑软件比如串口控制软件USB控制软件叫上位机软件,板子上跑的程序就下位机程序(软件)。

问题三:上位机 和 下位机 各是什么意思 上位机上位机是指人可以直接发出 *** 控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。 下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。简言之如此,实际情况千差万别,但 万变不离其宗 :上下位机都需要编程,都有专门的开发系统。 下位机下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。

问题四:什么叫上位机,下位机啊,它们是干什么用的 比如单片机测量温度,通过串口与PC相连,将数据发送给PC,PC也可以发送数据给单片机,单片机是下位机,pc是上位机

问题五:什么是上位机?作用是什么? 上位机在工业控制当中又被称为HMI,就是一台计算机,它的作用是监控现场设备的运行状态,当现场设备出现问题在上位机上就能显示出各设备之间的状态(如正常、报警、故障等)。

上位机的概念属于计算机集散控制系统的概念。在计算机集散控制系统中,计算机分为各个级别,与现场设备发生直接关系的计算机属于下位机,用来控制下位机,或给下位机下达哗任务的计算机是下位机的“上位机”。若集散控制系统较大,计算机的级别可能不止两级,此时上位机还可能有级别更高的上位机对其进行控制或指派任务。

问题六:上位机和下位机哪个轻松 上位机轻松,比较容易入门。

问题七:PLC中的上位机和下位机是什么东西? 上位机可以是触摸屏,PC机等。下位机指PLC本身

问题八:什么叫上位机软件 10分 上位机软件,就是安装在电脑里的软件。用来和下位机进行通信,控制或者读取下位机的数据。

下位机有单片机,FPGA,DSP,等等。

问题九:什么是上位机和下位机 上位机是指:人可以直接发出 *** 控命令的计算机,一般是PC,屏幕上显示各种信号变化。下位机是直接控制设备、获取设备状况的的计算机、处理器等。一般是单片机(51 AVR MSP430 ARM 等等)、PLC等。

上位(发送)->命令>下位机,下位机->分析、计算、解析->相应时序信号->控制相应设备。下位机根据软件设计的时序->读取设备状态数据(数字、模拟),转化->数字信号发送->位机。

比如:用电脑给手机刷系统,PC:上位机;手机:下位机。

比如:用myphone控制我们的窗帘开启关闭、台灯亮度等。上位机:myphone (物联网的节奏啊)。

通信么,采用rs232电平转换芯片,就可以使用计算机和89c51进行串口通信了。你想断电保持数据的话,你的电路必须采用数据保持存储器,可以采用flash芯片(比较贵)或者串行的EEprom芯片比较便宜,这些都是断电也保持数据的。也可以采用Ram+记忆电池(电池断电就没数据了)。

程序的话,写好串行通信和数据保存读取的程序。点阵显示程序我就不提了。如果你的设计带字库的话,你上位机穿的数据,每双字节就是1个汉字了。

单片机要用串口发送采集的温度。肯定是要增加串口通信程序的,首先要初始化串口,设置串口工作方式和波特率,必须与上机的波特率完全相同。再设定简单的通信协议,就是发送温度时,是以十六进制数发送,还是发送字符型,还是发送单片机转换后的十进制数,发送几个字节。单片机与上位机之间的通信要用一条USB转串口线,或USB转TTL模块,电脑上要安装驱动程序,虚拟出一个串口来。你的上位机的程序,可能需要做些修改,USB转串口虚拟串口号是多少,要根据安装驱动程序及USB线所插USB口确定。还有上面说的简单的通信协议,波特率都没有考虑吧,只是做了界面设计吧。

以上就是关于TCS230颜色传感器的初始化程序全部的内容,包括:TCS230颜色传感器的初始化程序、上位机(PC上的应用程序)开发,请问我该用什么语言、什么工具呢、什么是上位机和下位机等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9621339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存