在这里插入图片描述

一、項目介绍

摘要:物联网技术与光谱传感技术正在飞速发展,传统颜色识别方法在精准度,标准化和可追溯性方面已无法满足现代应用需求,于是,本文设计出一种依托 STM32 和 AS7341 的简单光谱仪颜色识别系统,此系统把 STM32F411CEU6当作核心元件,融合 AS7341 可见光光谱传感器,TFT LCD 显示屏以及 ESP8266 无线模块,从而达成对可见光波段八个通道光谱数据的采集,本地显示并远程上传。硬件部分采取模块化设计,包含主控电路,传感器接口,通信模块以及显示电路的 PCB 制作;软件方面依靠 RT - Thread 实时操作系统创建多任务框架,做到数据采集,显示更新以及网络通信的同步调度;云平台凭借 ThingsBoard 完成设备接入与仪表盘规划,使得光谱数据可被远程可视化监测。 测试结果表明,系统运行稳定,数据采集准确,通信可靠,可视化效果良好,符合预期设计目标,该系统成本可控,功能完整,在农业检测,环境监测等领域具有良好应用前景。

关键词:STM32;AS7341;颜色识别;RT-Thread;ThingsBoard。

研究内容
本文就依托STM32和AS7341的简易光谱仪颜色识别系统展开研究,先做系统整体方案的设计。经由深入剖析系统的功能需求及性能指标,决定把STM32F411CEU6当作主控芯片,AS7341作为光谱采集核心,ESP8266当作无线通信模块,ThingsBoard作物联网云平台的整体技术路径,依此制定系统整体框架和工作流程,明确各个模块间的数据交互情况,从而为后面的软硬件开发形成基础。
在硬件系统设计与达成上,文章完成了系统硬件电路的整体设计,其中涉及STM32F411CEU6最小系统电路,电源守护电路,AS7341光谱采集模块接口电路,ESP8266无线通信模块接口电路以及TFT LCD显示模块接口电路的设计并展开调试,借助绘制原理图,执行PCB布局布线,完成元器件焊接及板级调试之后,最终达成系统硬件的实物制作,保证硬件平台既稳定又可靠。
嵌入式软件设计属于系统的关键部分,本文依靠 RT - Thread 适时操作系统来创建多任务软件架构,把光谱数据采集,数据处理,本地显示,无线通信等职能划分成独立的线程,达成任务的协同调度及并发处理,着重做好 AS7341 传感器的初始化设置以及多通道数据读取程序的编写,TFT LCD 显示推动和光谱数据可视化的设计, ESP8266 模块的 AT 指令控制以及 MQTT 协议接入的设计,保证软件系统具备适时性和稳定性。
在物联网云平台设计与系统检测方面,本文依托 ThingsBoard 开源物联网平台来执行平台部署,设备接入,数据格式的界定以及仪表板设计,达成光谱数据远程可视化观察和历史数据保存的目标,接着创建完备的系统检测环境,针对硬件模块,软件功能以及系统整体性能实施全面检测,核实系统各个功能是否符合设计初衷,剖析其中存在的问题并给出改进的方向,经过前面的研究,本文期望规划出一套功能齐备,性能稳定而且成本合理的简单光谱仪颜色识别系统,从而为光谱检测技术的广泛性应用供应一种可行的技术途径。

系统需求分析
凭借 STM32 和 AS7341 的简单光谱仪颜色识别系统期望达成可见光波段光谱数据的采集,处理,显示以及远程传送,要符合实际应用场景的需求,系统在功能,性能,成本和可扩展性等方面都要满足一定要求。
从功能需求来讲,该系统要有光谱数据收集的能力,它可经由 AS7341 光敏元件取得 8 个可见光波段的光谱强度数据,其范围包含 405nm 到 690nm ,而且可以读取近红外波段及全波段波段的数据,这个光敏元件应当支持调整增益大小以及积分历时,从而适应不同光照条件下采集的需求,它还拥有连续采集和单次采集这两种不同的工作模式。 系统要装配 TFT LCD 显示屏,该屏幕能随时显示各个通道的光谱强度数值,光谱分布图形以及当下的系统状况信息,其界面设计需简练而直观,这样用户就能迅速得到检测的结果,在无线传达功能上,系统要依靠 ESP8266 WiFi 模块来执行数据上传,此模块可处于 STA 模式并加入既有的无线网络,而且利用 MQTT 协议把光谱数据传达给 ThingsBoard 物联网云平台,还要有断线重连的功能,以此确保数据传送的可靠性。 物联网云平台的接入功能需达成设备与平台的认证接入,按规定的数据格式上传光谱数据,而且在平台端做到数据仪表板的定制设计,可以即时显示光谱曲线并查询历史数据。系统要采用 RT - Thread 实时操作系统来完成多任务的并发处理,把数据采集,显示刷新,网络通信等功能划分到独立线程当中,恰当安排任务的优先顺序,保障关键任务能够及时回应,还要做到线程之间的同步和数据的共享。
系统在非功能需求上要有长时间稳定运行的特性,其硬件设计要顾及电源稳定性,信号完整性以及抗干扰能力,以保证各个模块在复杂环境里能够正常运行。软件设计要有异常处理机制,避免程序出现跑飞或者产生死锁现象,通信模块还要有断线重连和数据缓存的功能,免除网络波动造成的数据遗失,就即时性而言,光谱数据采集的时段应安排在毫秒级别,显示刷新也要做到流畅无比滞的情况发生,并且努力减小网络数据输送时的时延。 要控制好系统的成本使其处于合理范围之内,挑选性价比高的核心器件和模块,并兼顾性能与功耗之间的协调,从可扩展性的角度来看,硬件设计应当预留必要的接口和资源,软件架构宜采用模块化设计,这样才方便日后执行功能升级并拓展应用。

系统性能分析
系统需求分析完毕之后,该部分针对系统性能指标执行量化分析并予以设置,涉及采集精度,响应时间,通信稳定性以及功耗水平等要素。
AS7341传感器在光谱采集性能上有如下特点,它含有8个可见光通道,这些通道的中心波长分别是415nm,445nm,480nm,515nm,555nm,590nm,630nm和680nm,带宽大约为20nm,可以满足日常颜色辨别及光谱分析的应用需求。传感器自带16位ADC,其数据输出分辨率为0 - 65535,具备较高的动态范围,增益设置允许1倍,3.7倍,16倍,64倍,128倍等多种档位的调节,而且积分时间可在2.8ms - 1800ms之间自由调整,用户可依循光照强度灵活设定相关参数,在一般室内光照环境下,若将增益设为16倍,积分时间设为50ms,则系统每次采集所需的时间可被控制在80ms之内,从而符合即时性的要求。
主控芯片 STM32F411CEU6依靠 ARM Cortex - M4 内核,主频达 100MHz,具有单精度浮点运算单元,可以高效地执行光谱数据的预处理及格式转换。系统采用 RT - Thread 适时操作系统之后,任务切换时间能够被控制在微秒级别,数据采集线程,显示刷新线程,网络通信线程能够协同工作,彼此之间不会互相阻碍,经过计算,在三个任务一同运行的时候,CPU 负载率大概在 30% - 40%,还存有足够多的余量来解决复杂处理的需求。
在无线通信性能上,ESP8266模块支持2.4 GHz频段的WiFi,其理论传输速率最高可到54 Mbps,该系统利用MQTT协议来输送数据,每条数据帧大约有200字节,如果以每秒一次的频率上传数据,那么网络负载就会很低。这个模块处于STA模式时,其连接耗时大概为2 - 5 秒,而且它具备断线重连功能,能够在10秒之内再次接入网络,在实际的考察环境当中,室内无阻碍的通信范围能够达到30米之远,这就足以应付大部分应用场合下的通信需求。
系统各个模块的工作电压都是3. 3V,AS7341传感器的工作电流小于5mA,STM32F411CEU6以100MHz主频运行时,工作电流约为30mA,TFT LCD屏幕背光打开时电流约为40mA,而ESP8266模块处于传送状态时电流约为70mA,该系统整体的平均功耗大约为150mA,如果用5V/1A的电源供电就能满足长时间稳定运行的需求,处于待机模式的时候,可以用软件关闭那些不必要的外设,从而进一步减小功耗。

系统设计框架
按照前面的需求分析及性能指标,本节给出系统的总体设计框架,把各个功能模块怎么划分,它们之间存有什么样的关系讲得清楚。
系统的总体架构采取分层设计思想,从底层到高层顺序是硬件层,驱动层,操作系统层,应用层和云平台层,其中硬件层包含 STM32F411CEU6 主控芯片,AS7341 光谱传感器,ESP8266 WiFi 模块,TFT LCD 显示屏以及电源守护电路,形成系统物理上的根基。驱动层承担着硬件设备底层驱动的任务,涉及 AS7341 的 I2C 通信驱动,TFT LCD 的 SPI 通信驱动,ESP8266 的串口 AT 指令驱动等,给上层软件赋予统一的硬件访问接口,操作系统层选取 RT - Thread 实时操作系统,该系统供应多任务调度,线程间通信,同步机制等关键功能,从而减小应用软件开发的复杂程度。 应用层依照操作系统产生大量任务线程,数据采集线程,数据处理线程,显示更新线程以及网络通信线程均包含在内,这些线程经由消息队列或者信号量实施数据交互及同步操作,云平台层依托 ThingsBoard 物联网平台,利用 MQTT 协议来接收设备发送的光谱数据,而且具备数据可视化仪表盘和历史数据保存能力。
系统工作流程设计如下:系统上电之后,首先要对各个硬件模块执行初始化设置,涉及STM32时钟的调配,AS7341传感器参数的设定,TFT LCD的初始化以及ESP8266模块的联网设置,当初始化过程结束的时候,便创建出三个任务线程,分别是数据采集线程,显示刷新线程以及网络通信线程。其中,数据采集线程会依照预定的时延来获取AS7341各个通道所对应的光谱数据,经由预先处理之后,把数据存储到共享缓冲区当中,而且借助消息队列向显示线程和网络线程传达相关信息,显示线程得到这些数据以后,负责更新TFT LCD显示屏上的数字和光谱曲线,而网络线程则需要将数据整合成JSON格式,再依靠MQTT协议发送到ThingsBoard平台上去。 三个任务会同时运行,依靠 RT - Thread 的信号量及互斥锁机制来确保共享数据的一致性。

系统硬件设计原则
系统硬件设计是光谱仪颜色识别系统得以达成的根基,其设计品质会直接左右系统的稳定状况,可靠程度以及性能水平,要想让硬件平台既符合功能预期又具有较好的扩展潜力,本章节依照如下设计理念来开展硬件相关的制作工作。
可靠性原则是硬件设计的首要考量。系统需在工业现场、户外作业等复杂环境中长期稳定运行,因此硬件设计必须充分考虑电源稳定性、信号完整性与抗干扰能力。具体措施包括:电源电路要有过流保护和滤波功能,从而给各个模块供应干净而稳定的工作电压,信号传递线路要越短越好,防止出现交叉干扰。对于关键的信号线,可以加上滤波电容或者上拉电阻来提升抗噪能力,在PCB布局的时候要把数字电路和模拟电路分开来安排,缩减它们之间的相互干扰。
模块化设计原则有益于减小系统复杂程度,提升其可守护性与可扩展性,该系统依功能划分为主控模块,光谱采集模块,无线通信模块,显示模块以及电源模块,这些模块之间接口清楚,耦合度低,模块化设计另外方便单独校验并利于查找故障,还给后期功能升级创造了便捷前提。

二、文档介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三、項目设计

系统软件设计原则
系统软件设计依照模块化原则,把软件划分成较为独立的模块,这些模块之间经由明晰的接口来交互信息,这样就能减小耦合度,从而方便各自展开开发和守护。模块化设计使数据采集,显示刷新,网络通信等功用模块能够单独展开开发调试,如果某个模块被改动,并不会影响到其他模块的正常运行,极大地提升了开发效率,也改善了代码的可守护性,采用层次化设计思路,从低到高依次划分出硬件抽象层,操作系统层以及应用层,以此提升代码的可读性和可移植性。 硬件抽象层负责封装底层硬件的操作,并给出统一的设备驱动接口,从而让上层软件无需依赖具体硬件平台,操作系统层依靠 RT - Thread 实时内核,它供应多任务调度,线程间通信以及同步机制之类的服务,应用层则去达成具体的业务逻辑,覆盖数据采集,处理,显示和传送等功能,这种层次化设计令软件结构更为清晰,有利于日后向不同硬件平台实施移植。
从及时性设计来看,要合理划分任务的优先级,把关键任务放在优先执行的位置,利用信号量,消息队列之类的机制来规避忙等待现象。数据采集任务被设置成高优先级,以保证其采集周期准确无误;而显示刷新与网络传送任务的优先级则比较低,这样做不会妨碍采集任务按时完成,消息队列用来做任务间的数据传递,当采集任务把数据丢进队列之后就可以着手做后面的采集工作,并不需要等待显示和传送结束;信号量可充当事件同步工具,譬如采集完毕就发出信号启动数据处理过程,互斥锁用来守护共享资源,以免众多任务一同前来访问引发数据混杂状况。 可靠性设计需考量各类异常情形,并规划相应的异常处理及复原机制,要加入看门狗计时器以防程序跑飞,传感器若通信失败,则重试,网络连结中断时自动重建连接,关键数据实施校验与核实,如此这般,系统就能在复杂环境下长久稳健运行,而且,可设置性原则使得诸如传感器增益,积分时间等参数能够灵活变更,还留有接口利于日后功能拓展。
系统主程序设计
系统主程序充当软件的入口并担任总调度的角色,其职责在于执行系统初始化,形成应用任务以及开启操作系统调度,在机器上电之后,首先会执行硬件层面的基本初始化步骤,涉及系统时钟的设置,SysTick定时器的调整等内容。时钟设置选用外部8MHz晶体振荡器,依靠 PLL 进行倍频以达到96MHz,这便是系统的主时钟,AHB 总线时钟为96MHz,而 APB1 则是48MHz,APB2同样是96MHz,当时钟初始化工作结束时,就会去设定 SysTick 定时器,该定时器可充当操作系统的时基参照,给任务的延时和超时给予时间尺度。 硬件初始化涵盖设置中断向量表,开启 FPU 浮点运算单元等基本设定,从而让芯片处于良好运行状态,这些底层的初始化举措是系统得以正常运行的关键所在,一旦出现差错就有可能引发系统无法启动或者运行不稳的情况发生。
硬件基础执行初始化之后,就要展开板级外设的初始化工作,LED指示灯,调试串口,I2C总线,SPI总线以及USART串口等都包含在内,要把LED指示灯设置成GPIO输出模式,这样就能显示系统状态了,初始化好调试串口之后就可以输出调试信息,I2C总线执行初始化就能准备好同AS7341传感器交流,SPI总线执行初始化就能准备好同TFT LCD屏幕交流,USART串口执行初始化就能准备好同ESP8266模块交流,这些外设的初始化都是经由HAL库里的相关函数来实现的,并且还要查看函数返回值以确认初始化过程是否顺利。 外设初始化完毕之后便开始对 RT - Thread 操作系统执行初始化步骤,需调用 rt_system_init 函数来初始化诸如线程调度器,内存池,设备守护等关键内核组件,当整个初始化流程结束以后,应当创建系统的主线程,在此主线程当中去创建各类应用程序任务,数据采集任务,液晶显示任务以及无线通信任务之类的内容,等到所有相关任务均创建起来以后,再开动操作系统调度器,把 CPU 的控制权移交给核心部分,从而让系统进入到多任务并发执行的模式当中,倘若操作系统未能正常启动或者在运行期间碰上无法克服的重大故障时,就会陷入到一种专门的错误处理流程当中,一直等待系统自动重启。

RT-Thread操作系统移植
RT - Thread属于国产开源即时操作系统,其具备体积小,启动迅速,即时性高,资源占用量低等特性,很合适资源受到限制的植入式设备。此系统内核能够被裁剪到3KB Flash,1.2KB RAM这么小,而且包含很多中间件组件,文件系统,网络协议栈,图形库等等,可以满足不同复杂程度的应用需求,RT - Thread采用面向对象的设计理念,其代码风格较为优雅,框架层次分明,系统模块化而且裁剪起来很方便,比起 Linux 操作系统来说,RT - Thread体积更小,成本更低,功耗更小,启动更快,而且具有较高的即时性,较低的资源占用,非常适宜各种资源受限的环境,本系统选定 RT - Thread 作为植入式操作系统,凭借它的多任务调度功能来达成数据采集,显示以及传递的并行处理。
移植工作首先要得到 RT - Thread 的源代码,并搭建起工程框架,然后在此基础上对官方 BSP 进行调整以适应具体情况,RT - Thread 官方针对 STM32 系列提供了 BSP 包,这里面涵盖了芯片级别的驱动以及板级的支撑,这就在很大程度上缩减了移植的工作量,在内核参数设置上,于是在 rtconfig . h 配置文件里按照系统的实际需求来设定相应的宏定义,把最大线程优先级设置成 32 级,这样就能满足当前系统三个任务对于优先级划分的要求;而且把系统时钟节拍设置为每秒 1000 下,也就是每个时钟节拍等于 1 毫秒,从而给予任务延时和超时比较恰当的时间精度;至于动态内存池大小,则被设定为 64 千字节,剩余的内存则用来分配给各个任务栈以及静态变量。 设置好线程栈的对齐方式为八字节对齐,这合乎 Cortex - M4 架构的要求,硬件接口的移植覆盖系统时钟的设置和底层驱动的适配部分,利用 STM32CubeMX 所产生的时钟初始化代码去取代 BSP 当中的默认设置,从而保障系统可以运行在九十六兆赫兹的主频之上,关于底层驱动而言,经由 RT - Thread 的设备驱动框架把外设当做系统设备来完成注册,如此一来便方便上层应用程序借助统一的接口来执行访问,创建任务依靠 rt - thread - create 函数来执行动态创建,需给出任务的名称,启动函数,栈的大小,优先等级和时间片;任务之间的传递信息采取消息队列和信号量机制;互斥锁专门用来捍卫共享资源。 在完成移植之后,要对操作系统的基本功能展开验证,编写一些简单的考查任务来验证任务创建及调度情况,也要检查线程间的通信状况,确认系统时钟是否准确,从而保证该操作系统能稳定可靠地运行。

应用任务程序设计
应用任务程序设计涵盖三项核心任务,即光谱数据采集,液晶显示以及无线通信,其中,光谱数据采样子程序借助独立的任务线程来达成,依靠事件激发的方式缩减CPU空转情况的发生,当任务处于初始化时期时,会执行 AS7341 传感器的上电复位操作,核查芯片 ID 并设置工作参数,其默认的增益设定为 16 倍,积分时间定为 50 毫秒,并且处于连续采集模式当中,数据采集主循环需等待采集完毕信号量的到来,此信号量是由传感器自身中断所引发并予以释放。得到信号量之后,经由 I2C 总线逐个读取八个可见光通道的数据,把高低字节合成起来形成16位整数值存储到缓冲区里面,经过简单的均值滤波预先处理以后,再经由消息队列传递给显示任务和通讯任务,之后又回到等待状态。
液晶显示子程序需把光谱数据直观地表现给用户,任务初始化时,调用TFT LCD屏幕初始化函数,发送初始化命令序列来设置屏幕,并把背光PWM设为50%占空比。进入主循环之后,任务等待数据采集任务传来的消息队列,得到新数据就更新显示内容,显示界面包含数值显示区和曲线绘制区,数值区用文本形式显示八个通道当下的强度值,并标上对应的波长,曲线区按照各个通道的强度值画出光谱分布曲线,利用局部刷新策略提升显示效率,只是更新改变的部分而不是重新绘制整个屏幕,经由改善SPI传送速度确保显示顺畅,还要显示网络连接状况,采集模式之类的系统状态信息。
无线通信子程序依靠ESP8266模块向ThingsBoard平台上传数据,任务启动时,会复位模块并设置相关参数,其中包含设置STA模式,多连接模式,串口波特率以及关闭回显功能,WiFi连接环节经由AT指令接入预设网络,并且设定超时时限以防止任务陷入长期阻塞情况,若连接不成功,则按照指数退避原则执行重试操作。在MQTT接入方面,需设置客户端ID,用户名,密码等认证资料,然后绑定到指定的服务器地址及端口上,在主循环的数据传送阶段,先等待采集任务传递过来的消息队列,接着把数据整合成JSON格式,再利用AT指令发送给平台所规定的目标主题,此任务具备完备的断线重连能力,定时检查当前的连接状况,一旦察觉已经断开就会自动放弃之前的资源并再度尝试执行连接过程,而且其运行状态会用全局变量保存下来以供显示任务告知使用者。

ThingsBoard平台概述
ThingsBoard属于开源物联网平台,其可达成数据的收集,处理,可视化显示以及设备经营等功能,这个平台以Java语言来开 发,它所包含的MQTT,CoAP以及HTTP等都是符合物联网行业标准协议的,由此可完成设备的接入,而且该平台存在云和本地两种部署形式,可以适应不同规模应用的需求。平台的架构设计按照模块化原则来进行,各个组件之间松散地结合在一起,这样就利于功能的拓展和二次开发,从而在科研与工业领域被全面应用,平台给出了设备,资产以及客户的概念模型,并支持用户去界定这些对象间复杂的关联,进而方便创建立体度较高的物联网应用架构,做到对大量设备执行统一的经营与守护。
ThingsBoard平台功能齐全,能给物联网应用赋予完整的技术支持,该平台自带规则引擎这个组件,可以对传来的遥测数据执行分析处理,而且经由复杂的事件处理机制来触发警报,做到随时观察和智能应对。平台支持远程过程调用,可以凭借 API 事件,设备生命时段事件, RPC 请求等形成自动化工序流程,达成对设备的远程运作和控制,平台供应众多可设置的小部件,其中包含线形图,数字计仪表,模拟计仪表,地图等等,还允许用自带的编辑器去创建专属小部件,从而达成个性化的数据可视化展示效果,而且,平台具备水平拓展性,集群里的各个节点完全一致,不存在单点故障,以此保证系统的高可用性和大量设备的接入能力。

数据可视化设计
ThingsBoard平台具备很强的数据可视化能力,其借助仪表盘组件来直观表现设备遥测数据,仪表盘是数据可视化的关键承载物,使用者能够按照自身需求创建诸多仪表盘,而且每个仪表盘可容纳很多小部件,这些小部件包含图表,数字显示,仪表,地图以及控制按钮等等种类。本系统为应对光谱数据的表现需求而专门规划出光谱观测用的仪表盘,用来即时显现各个通道的光谱强度数值及其分布曲线状况,创建该仪表盘的时候,首先要踏入仪表盘管理界面,然后制作新的仪表盘,并设定好名称和介绍内容,做完这些步骤之后就可以进入到编辑状态开始增加相关小部件了。
平台供应了多种小部件,用户可把小部件拖放到仪表板网格里,并调整大小和位置。各个小部件需关联数据源,选定要表现的设备及对应的遥测数据键名,本系统增添大量数字显示小部件,用于表现八个通道的当前值,每个小部件设置相关联的数据源键名,并且设定显示格式和标题。为了体现光谱曲线,采用时序图小部件,以折线表示数据随时间的变动趋势,小部件设置时把八个通道的遥测数据键名当作多条曲线,平台会自动给不同曲线分配不同的颜色,这样就很容易区分它们。 在图表样式上设置时间轴的显示范围,加图例来标明各通道的信息,开启游标功能方便查看具体数值。仪表盘采用了较为合理的布局,左边是集中的数字显示区域,右边则是存放光谱曲线时序图的地方,上方加上标题和状态指示,设计完毕之后保存并发布。

总结
本课题针对STM32和AS7341展开简易光谱仪颜色识别系统的设计,并达成目标,这个系统把AS7341可见光光谱传感器当作关键采集单元,做到对可见光波段八个通道光谱数据精准采集。而且,利用STM32F411CEU6主控芯片来处理数据并实施传输,系统融合TFT LCD显示模块和ESP8266无线通讯模块,从而达成光谱信息的本地直观显现,也能上传到云端平台,用户能经由本地屏幕随时留意光谱数据及其分布曲线,还能够借助ThingsBoard物联网平台远距离查看相关监测面板,进而优化了系统的实用价值与智能程度。
整个系统开发过程包含从系统需求分析,硬件电路设计,到植入式软件编程,再由系统调试直至功能检测这样一套完整的流程,硬件环节涉及主控最小系统的电路设计及 PCB 制作,光谱采集模块,无线通讯模块,显示模块等;软件层面依靠 RT - Thread 适时操作系统创建起多任务框架,做到数据采集,液晶显示,无线通讯等任务相互配合;云端部分完结 ThingsBoard 的本地部署并完成设备接入,规划专门的光谱观测仪表盘,该系统结构清晰,功能划分比较恰当,整体运行比较稳定,功能检测取得的成绩良好,达到预先设定的设计目的,证明这个简易光谱仪颜色识别系统在光谱检测场合具备可行性与实用性。

更多推荐