基于TCS34725的RGB颜色识别 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 基于TCS34725的RGB颜色识别

简介:基于TCS34725的颜色测量系统。github地址:https://github.com/LikkoLiu/RGB-color-detection-system-based-on-TCS34725

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2024-01-17 11:06:29
更新时间: 2024-04-01 15:42:02
描述

一、设计摘要

基于 TCS34725 颜色识别传感器的颜色测量系统。

  1. TCS34725 通过 I2C 接口与 Air32F103 微控制器进行通信,读取 TCS34725 的颜色数据,并发送配置指令以调整传感器的工作参数;
  2. 显示屏采用 SPI 接口与 Air32F103 之间数据传输,发送颜色数据和命令到显示屏,实现实时的数据展示;
  3. UI界面设计移植了LVGL;
  4. 移植了FreeRTOS保证实时性需求;
  5. 与PC端通信使用USB虚拟串口实现,基于MODBUS通信协议。

二、总体设计框图

以下是颜色测量系统系统框图的系统框图:

图表 2 颜色测量系统系统框图

整个系统框图展示了 Air32F103微控制器通过 I2C 接口与 TCS34725 颜色传感器进行通信,并集成了1.69寸彩色TFT显示屏、USB虚拟串口、SWD下载电路以及电源与LDO电路。

1)        TCS34725 颜色传感器:感知环境中的颜色,并通过 I2C 接口将原始数据传输给 Air32F103 微控制器。

2)        1.69寸彩色 TFT 显示屏: 通过 SPI 接口接收 Air32F103 微控制器发送的颜色数据,将其显示在屏幕上。提供用户友好的界面,实时展示颜色测量结果。

3)        Air32F103 微控制器:I2C接口接收 TCS34725 传感器的颜色数据,进行数据处理与解析。同时,通过 SPI 接口与 TFT 显示屏通信,将处理后的数据发送给TFT显示屏进行实时展示。

4)        USB 虚拟串口:通过USB接口连接到计算机,为用户提供与系统进行通信的接口。这使得能够通过计算机监视系统的运行,并发送和接收必要的串口通信数据。

5)        SWD 下载电路:提供了用于固件下载和调试的 SWD 接口。在开发过程中,通过 SWD 接口可以方便地更新和调试 Air32F103 微控制器上的固件。

6)        电源与低压差稳压器(LDO)电路:用于为 TCS34725 颜色传感器、Air32F103 微控制器、屏幕提供稳定的电源,以保障它们的正常工作。



三、硬件电路组成

综上系统框图进行硬件电路设计如下。

对于 Type-C 周围电路,引脚 CC1、CC2 通过5.1KΩ接地,通过数据线与 PC 端连接后,使该设备被选中为 SLAVE (从机)状态;USB 输入正向电压与板载正向电压间放置防防反接二极管,保证电路安全;引出 DP、DN 差分数据线路,作为 USB 虚拟串口通信线路;并在 VBUS 与微控制器一引脚间接入 LED 灯珠与一限流电阻,方便系统运行调试可视化。

图 2 Type-C周围电路设计

        对于基本通信电路,引出 SWD 下载电路调试接口;Type-C 的DP、DN 差分数据线路通过22Ω电阻与微控制器 PA11、PA12 引脚连接,且 DP 数据线通过1.5KΩ电阻进行上拉,实现 USB 虚拟串口通信的硬件电路应用。

图 3 基础通信电路设计

对于电源与低压差稳压器(LDO)电路,选择常用的3.3V低压差线性稳压器 AMS1117-3.3 芯片作为 5V 转 3.3V 电源与低压差稳压器。该芯片成本低廉且性能稳定,具有过压保护功能,有助于防止外部电压的突然增加对系统的损害。3.3V 正向电压与 GND 之间设置三组 10uF、100nF 电容,计划设置在板载微控制器芯片、颜色识别传感器、TFT 显示屏驱动的正向电压输入引脚,减小布线中产生的电压纹波、降低电源噪声和稳定电源电压,减少对芯片的干扰,提供给各个组件一个可靠的工作环境。这对于颜色传感器的准确测量和微控制器的稳定运行至关重要。

图 4 电源与低压差稳压器(LDO)电路

对于微控制器芯片外围电路,考虑到 LVGL 及 FreeRTOS 运行频率要求,微控制器内部8M高速时钟无法满足最低运行要求,故设置外部晶振连接到 Air32F103 微控制器的时钟输入引脚,提供稳定的时钟源。Air32F103 的时钟源通过PLL进行分频,以获得不同的系统时钟频率。Air32F103 微控制器的外部引脚均引出可连接到各种外设,如 GPIO、USART、SPI、I2C 等,具体根据应用需求进行配置。

图 5 微控制器芯片外围电路

        对于 TCS34725 颜色传感器外围电路,3.3V 供应为 TCS34725 传感器提供工作电压。传感器使用 I2C 接口进行数据通信, SCL(时钟线)和SDA(数据线)连接到相应的微控制器引脚。微控制器引出引脚 LED_CONTROL 通过 NPN 三极管与白色灯珠连接,控制灯珠在照明条件不好的环境中提供照明,以便于TCS34725 颜色传感器进行正常的颜色信号采集。

图 6 TCS34725 颜色传感器外围电路

对于1.69寸彩色 TFT 显示屏外围电路,主要涉及到供电、显示控制、数据通信等方面。为确保1.69寸 TFT 显示屏提供稳定的工作电压,根据显示屏的规格,连接3.3V 电源引脚;连接微控制器的 SPI 引脚(MOSI、SCK)到 TFT 显示屏的相应 SPI 引脚。SPI 时钟频率设置正确,与显示屏规格兼容;连接微控制器的GPIO引脚到TFT显示屏的相应控制引脚(Chip Select、Data/Command、Reset),这些引脚用于控制数据传输、选择芯片、复位等操作;连接微控制器的GPIO引脚到TFT显示屏的背光控制引脚,以便可以调节背光亮度。

图 7 1.69寸彩色 TFT 显示屏外围电路

四、程序流程图

基于 TCS34725 颜色识别传感器的颜色测量系统,软件架构涉及 TCS34725颜色采集、基于滑动窗口AGAIN自动增益的实现、LVGL 显示、USB 虚拟串口实现基于 MODBUS 协议与 PC 端进行通信、MODBUS 协议虚拟寄存器实现、FreeRTOS系统移植等。以下分两部分对软件代码架构进行阐述。

图 8 颜色测量系统软件初始化

首先系统进行上电复位,进行 RCC 时钟树分频初始化,为各个外设和系统运行提供合适的运行频率;进一步进行外设的 GPIO 参数初始化,包括输入输出模式、输出速度限制、是否上下拉;进一步进行 USB 虚拟串口初始化、MODBUS 通信虚拟寄存器初始化,以便于 PC 端通过 USB s虚拟串口以 MODBUS 协议访问微控制器生成颜色测量系统的颜色、增益虚拟寄存器,读取数值;最后进行 FreeRTOS 任务初始化,共分为四线程任务。

第一线程任务为LVGL显示刷新回调相关任务;第二线程任务为USB虚拟串口及 MODBUS 通信相关任务;第三线程任务为显示屏显示数据刷新相关任务;第四线程任务为 TCS34725 颜色采集相关任务。

图 9 颜色测量系统运行代码架构

颜色测量系统完成功能初始化后,进行FreeRTOS系统运行,多线程运行任务。第一线程任务为 LVGL 显示刷新回调相关任务,周期回调 lv_tick_inc(LVGL_TICK) 函数,使 LVGL 获得运行时钟;第二线程任务为 USB 虚拟串口及  MODBUS 通信相关任务,周期回调 RS485_Service() 函数,进行串口数据处理及MODBUS通信协议识别并对 PC 端作出数据回复;第三线程任务为显示屏显示数据刷新相关任务,调用 lv_table_set_cell_value_fmt() lv_led_set_color()lv_bar_set_value() 函数对显示屏显示数据进行更新;第四线程任务为 TCS34725 颜色采集相关任务,周期调用 adjust_gain(rgb, &brightness_window) 、 TCS34725_GetRawData(&rgb) 函数进行AGAIN自动增益调节判断和颜色数据采集及处理。

五、实物展示

六、注意事项

我提供的源代码和这篇文章代码架构部分有些地方或许会有点出入,这篇文章代码架构部分是我做完这个小项目,写完全部代码后想到的最好的代码架构,源代码我还没来得及改。

七、演示视频

 

演示视频我不晓得咋上传,这里就放几张图片吧(代码调了好久)

 

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
序号 文件名称 下载次数
1

PCB.zip

13
2

外壳.zip

14
3

src.7z

42
4

de00d672e8ec6476736b2085eda28986.mp4

4
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP