基于TCS3200传感器的颜色辨识系统设计
2017-09-07王凯袁佳伟吴文明
王凯+袁佳伟+吴文明
摘要:随着科学技术的发展,自动化技术已逐渐成熟,颜色辨识系统被广泛应用于各种工业检测和自动控制领域,而生产过程中长期以来由人眼起主导作用的颜色识别工作将越来越多地被相应的颜色传感器所替代。本文通过介绍STM32单片机控制TCS3200颜色传感器测量到RGB值以后,进行数据转换并发送至串口液晶显示模块进行显示。
关键词:RGB 颜色辨识;TCS3200;STM32微处理器
中图分类号:TP65 文献标识码:A 文章编号:1007-9416(2017)05-0168-02
随着现代工业生产向高速化、自动化方向的发展,人们对于颜色的辨识不再仅仅通过肉眼来判断,长时间接触颜色不仅误差很大还会一定程度上对眼睛造成伤害。因此,具有多种用途的颜色传感器应运而生。本颜色识别系统工作稳定,识别精度较好,可以用于人眼可分辨的物体或者光源颜色的识别。
1 方案设计
1.1 控制单元
选用STM32 F103C8T6芯片作为主控制单元,它具有功耗低、扩展性好、升级空间大等特点,同时它的定时器的硬件支持输入捕获功能,可以有效地测量颜色传感器输出频率。
1.2 颜色辨识系统
颜色传感器采用TCS3200,它是一个RGB颜色传感器,能够通过它的红、绿、蓝传感器获得三色值进行光源或普通物体的颜色测量,测量精度较高,适用于民用领域。
1.3 测量原理
入射光照射到TCS3200的光电二极管阵列上时,不同滤光片下的光电二极管根据不同的红、蓝、绿光的光照强度产生相应的光电流,然后集成光-频率转换器将光电流转换成频率量供外部数字器件进行读取与计算,最后我们根据RGB色彩空间进行颜色的计算。STM32微处理器控制TCS3200颜色传感器测量到RGB值以后,进行数据转换并发送至串口液晶显示模块进行显示。
2 硬件设计
本颜色辨识系统是在基于微控制器STM32控制的基础上,添加了TCS3200颜色采集模块、频率测试模块、串口通信模块、液晶显示模块。
2.1 硬件实现
硬件设计图如图1-3所示。
蓝牙模块上EN不接,GND接地,TXD接微处理器的PA9,RXD 接PA10,STATE接PA5,VCC接+5V 。
2.2 串口液晶模块
串口液晶模块采用了一块2.2吋显示屏,其分辨率为220*178,支持16位色彩即65536种颜色,颜色计算标准为RGB565。该模块可以通过串口或者SPI与控制器进行通讯,根据需要可自行更换通讯方式,使用较为方便。
3 软件设计
系统软件设计主要分为系统初始化程序、白平衡子程序、颜色采集子程序、转换格式子程序。
3.1 流程图(如图4所示)
3.2 设计步骤
(1)TCS3200模块的初始化。其主要内容有:TCS3200 S0、S1、S2、S3与STM32 相应I/O的配置,定时器TIM4的配置。
(2)Systick定时器的初始化。本设计中Systick定时器主要用于延时。
(3)串口的初始化。这里将串口波特率设置为115200。
(4)中断优先级分组。
(5)对TCS3200进行白平衡。
(6)测量RGB值,并将RGB值输出至串行显示模块进行显示。
(7)将RGB值转换成RGB565在串行显示模块上显示。
4 实验数据和分析(如表1所示)
对应色卡测量数据,同时在显示屏上显示了对应的颜色,说明该系统能够实现颜色的再现。通过测量发现,一次性采集的数据精确度不高,误差比较大,需进行多次测量求平均值才能减小误差。
5 结语
本文通过介绍STM32单片机控制TCS3200颜色传感器测量到RGB值以后,进行数据转换并发送至串口液晶显示模块进行显示。本颜色识别系统工作稳定,识别精度较好,可以用于人眼可分辨的物体或者光源颜色的识别。
参考文献
[1]史占东,邓国庆,董美丽,等.基于RGB颜色传感器的皮肤胆固醇检测系统设计[J].传感器与微系统,2012,34(7):50-53.
[2]潘海鴻,陈琳,黄炳琼,等.基于TCS230传感器的高精度颜色识别系统设计[J].微计算机信息,2009(6):84-86.
[3]张英华,李明海,赵传峰,等.基于颜色传感器的水硬度在线自动测试仪的研制[J].分析仪器,2010(5):18-21.
[4]可荣硕.基于RGB色彩空间的颜色识别系统设计[J].微计算机信息,2010,26:46-47.endprint