结合32位微处理器和高精度颜色传感器构建一种新型尿液分析核心模块。模块采用新颖的光学结构和特定电路提高测量精度,并利用温度对测量结果进行补偿,可直接输出当前测试条的原始数据及尿液中11项被测指标试纸块颜色的RGB值、反射率、半定量等级等信息。结果表明,该模块测量精度在95%以上,具有较好的稳定性、可靠性和一致性,同时该模块还具有很好的开放性和可扩展性,可方便地用于各种类型的尿液分析仪,并可大幅度地降低尿液分析仪的研发和生产成本。
引用本文: 陈龙聪, 刘改琴, 胡南, 张瑞英, 江奇锋, 高斌, 熊兴良. 基于半反半透镜的新型尿液分析核心模块的研究. 生物医学工程学杂志, 2014, 31(6): 1288-1293. doi: 10.7507/1001-5515.20140244 复制
引言
尿液分析是一项重要的临床化验指标[1],除用于泌尿系统疾病的诊断、疗效观察以外,还可用于会引起尿液生化成分改变的其它系统疾病的诊断、安全用药检测和健康状态初评等[2-5]。
早期通过人眼直接对比试纸条与标准色卡获得的尿液分析测试结果,由于受人眼主观因素影响,误差较大。随着计算机及自动化技术的发展,基于干化学的尿液分析仪成为临床的主流检测方法,其关键是颜色值的获取和半定量分析算法,其中颜色值的准确性取决于光学系统和颜色采集器。该部分目前主要有三种方式:① 利用不同波长的发光二极管(light emitting diode,LED)灯依次照射试纸条,根据光敏元件接收到不同颜色对应的反射光强,获取试纸条对应项的颜色值[6-7];② 采用白光光源照射测试试纸条,利用颜色传感器获取试纸条对应项的颜色值;③ 采用白光照射测纸条,利用电荷耦合组件(charge coupled Device,CCD)图像传感器以图像的形式接收不同颜色的反射光强,然后通过图像处理获取试纸条对应项的颜色值[8-9]。其中,① 和② 都具有成本较低,装配简单等优点,但均存在照射光源装配位置及角度、传感器离色块的距离等因素对检测结果有较大影响。最后一种光学系统比前两种方式复杂,光照均匀性要求高,成本也较高,且梯度定标繁琐,目前仅有部分全自动尿液分析在使用。另外,影响尿液分析仪测量精度、重复性和一致性等性能的因素,除半定量分析算法[10]外,还有环境光、温度、试纸的新鲜度等[11-16]。针对各种影响因素,通常从软、硬件两方面改进:如采用先进的超高亮度冷光源提高光学系统的分辨能力和稳定性,降低环境光对测试结果的影响;采用封闭化、模块化的系统设计,选用大规模集成电路,以降低元件数量,减小系统内部各部件间的相互干扰,提高产品的可靠性、稳定性;采用软硬件配合的技术,实现对环境温度、环境光等干扰的自动补偿。
本文结合32位微处理器和高精度颜色传感器构建一种新型尿液分析核心模块,提出了一种新的光路系统,同时采用软硬件相结合的技术,对环境温度、环境光等干扰因素进行自动补偿,可提高测量精度、重复性和稳定性等。
1 模块设计
本文模块采用新颖的光学结构,尽可能减少光学系统对测量产生的影响,并利用温度传感器获取环境温度,根据测量数据与温度的关系进行修正,以减小温度对测量结果产生的影响。本文以特定的电路结构及相应的计算方法提高测量RGB值及光强控制精度,有效地提高各输入量的测量精度。另外,根据实验数据,利用偏最小二乘法获得维生素C(vitamin C,VC)、尿糖(glucose,GLU)、胆红素(bilirubin,BIL)、尿酮体(ketone,KET)、尿比重(specific gravity,SG)、隐血(blood,BLD)、酸碱度(pH)、尿蛋白(protein,PRO)、尿胆原(urobilinogen,URO)、亚硝酸盐(nitrite,NIT)、尿白细胞(leucocyte,LEU)共11项指标的反射率等计算公式及半定量值区间,由于篇幅限制,该部分获取方法未详细阐述,只直接引用结果。本文重点描述该新型尿液分析核心模块的硬件和软件结构两部分。其中硬件部分由光学部分、数据采集和处理两部分构成,软件部分用Keil uVision3编译器实现程序的编译,下面分别对每部分进行详细阐述。
1.1 光学部分
如图 1所示,光学部分由白色LED、半反半透镜、TCS3104颜色传感器及T形光筒灯构成。

白色LED提供强度可控的光源,以满足TCS3104颜色传感器对光强的要求;半反半透镜可将LED的光反射到试纸条,并将经试纸条反射的光再透射回TCS3104颜色传感器;TCS3104颜色传感器将RGB值分别以模拟电压的形式输出,外部根据输出的电压获取相应的颜色和亮度信息;T形光筒主要遮挡环境光对结果的影响。如图 1所示,该模块的光学颜色采集方法可实现:① 采集的颜色值是不同颜色光在同一位置的反射光信号,在颜色合成时不会出现颜色的位置偏差;② 减小传感器与色块距离不同时对检测结果的影响。
1.2 数据采集和处理部分
如图 2所示,本部分由光强控制单元、控制和处理单元、启停控制单元、高精度参考电压单元、颜色传感器单元、温度测量单元和串行通讯单元共7个单元组成。其中,启停控制单元实现控制电平的转换,降低功耗,延长使用寿命;温度测量单元利用18B20实现温度的测量,以供温度补偿使用;串行通讯单元实现与外部各种数据的传输。下面对其余4部分进行详细阐述。

1.2.1 光强控制单元
该单元利用恒流的方式控制白色LED灯光强,获取更稳定的光强。其主要是通过微处理器STM32F103RB输出16位分辨率的脉冲宽度调制信号,经滤波、放大等处理后输出控制电压,并利用运算放大器实现电压电流转换,进而达到用恒流控制白色LED灯的目的。另外,在LED回路串联了一取样电阻,并将其采样电压送入微处理器STM32F103RB的模拟端口,从而形成闭环控制,提高恒流的控制精度。
1.2.2 控制和处理单元
该单元由32位微处理器STM32F103RB及相应的外围元件构成[17]。其中STM32F103RB内带12位、1 μs转换速度的A/D转换器、有128 kb可用于程序和数据存储的flash存储器、20 kb静态存储,最高工作频率可达72 MHz。本单元可将颜色传感器输出的模拟电压转换为相应的数字值,实现颜色的采集,并通过相应算法,根据输入信息输出所需的信息,同时还可利用内带的串口实现与外部通信等功能。
1.2.3 高精度参考电压单元
该单元是为提高每道A/D转换的精度而设计的。STM32F103RB内带A/D转换的值以模拟电源作为A/D转换的参考电压,实际使用中模拟电源会出现波动,且不同核心模块相应的模拟电源电压值也可能有小的差异,会造成相同输入对不同核心模块A/D转换的值有一定差异,进而出现核心模块测量的一致性不好。为解决这一问题,本文提出选用精度为0.1%的3 V参考电压芯片ADR363B(输出电压噪声峰值6.8 μV、电压精度±3 mV、温度系数9 ppm/℃)的输出作为STM32F103RB的一道模拟输入,以其作为对照,对其它道的A/D转换值进行修正。实验证明,该法可以很好地减小电源电压引入的干扰,并能提高核心模块测量的一致性和测量精度。
1.2.4 颜色传感器单元
该单元由高精度颜色传感器TCS3104组成,可实现与光路部分的衔接。TCS3104颜色传感器直接输出颜色的RGB三色分量模拟电压值,外部引脚可控制其输出增益为4倍或1倍,采用4倍可有效提高低照度下的测量精度,响应的典型时间为12 μs,输出对RGB的典型灵敏度分别为0.4、0.25、0.2 mV/(μW·cm-2),在微处理器的控制下实现RGB颜色的采集,并利用白色纸条的值进行修正。
1.3 软件部分
软件部分是利Keil uVision3编译器编写,以32位微处理器STM32F103RB的定时器、A/D转换、Flash存储、串口等实现各种控制数据的采集、保存、处理及通信。如图 3所示,软件部分包括启停控制子程序、光强控制子程序、A/D转换处理子程序、颜色处理子程序、结果处理子程序、串口通讯子程序、参数处理子程序、主程序等几部分。其中,串口通讯子程序通过串行口与外部进行通信,实现信息的交换,比如输出颜色的RGB分量值、各项的结果序号值等;参数处理子程序则是根据输入的信息,读取、保存或更改对应的参数,使得模块具有很好的开发性和可扩展性;光强控制子程序是利用闭环控制方式使加在白色LED上的电流为恒定的预设值;A/D转换子程序利用STM32F103RB的定时器实现各种数据的A/D转换值依据式(1)计算出结果并存入相应的缓冲区;颜色处理子程序在主程序的协调下将颜色的RGB分量从A/D转换子程序缓冲区取出,并利用式(2)进行修正,得到最后计算所需的RGB值;温度测量子程序完成温度的测量,通过多次平均后将测量值存入特定的变量之中,以供结果处理单元使用;结果处理子程序在主程序的协调下,根据颜色处理子程序处理后的RGB值的分布特征取出对应不同色块的数据,再利用对应测试项的式(3)和式(4)计算出相应的反射率,根据设置的半定量区间值(如表 1所示,给出了蛋白质的区间)得出相应的半定量序号值;主程序是调用启停控制子程序获取外部控制的信息,即是启动工作还是停止工作。若停止工作,则进行相应处理使整个核心模块处于低功耗模式;若启动工作,则调用相应的子程序通过对应的关键公式进行计算和处理,并输出相应数据。以下将对软件部分的关键公式进行阐述。

通过STM32F103RB测量各道输入电压的计算公式为:
${{V}_{i}}={{D}_{i}}\times 3.0/{{D}_{r}}$ |
式中Vi为计算所得的输入电压值,Dr取3.0 V参考电压经A/D转换平均值(为了滤除干扰),Di为需测量的某道A/D转换值。
${{D}_{m}}={{V}_{i}}\times 255/{{V}_{W}},$ |
式中Dm为计算所得颜色分量值(m=R,G,B,分别表示红色,绿色和蓝色),Vi为式(1)所得的结果值,VW表示用白条测试时式(1)算出的值。
${{y}_{25}}^{*}={{c}_{0}}+{{c}_{1}}{{D}_{R}}+{{c}_{2}}{{({{D}_{R}})}^{2}}+{{c}_{3}}{{D}_{G}}+{{c}_{4}}{{({{D}_{G}})}^{2}}+{{c}_{5}}{{D}_{B}}+{{c}_{6}}{{({{D}_{B}})}^{2}},$ |
${{y}^{*}}={{c}_{0}}\prime +{{c}_{1}}\prime T+{{c}_{2}}\prime {{T}^{2}}+{{c}_{3}}\prime {{y}_{25}}^{*}+{{c}_{4}}\prime {{({{y}_{25}}^{*})}^{2}},$ |
式中DR、DG和DB分别为通过式(2)算出的某一测试项或试纸块的红色、绿色和蓝色的分量值,c0~c4为某一测试项拟合的系数,y25*为式(3)算出的25℃时的反射率,T为测量时的环境温度,c0′~c4′为某一测试引入温度后拟合的系数。不同测试项c0~c4和c0′~c4′的系数不同,具体值是根据大量实验数据分析得出。如:根据实验得出蛋白质的计算公式为:
$\begin{align} & {{y}_{25}}^{*}=-118.656\text{ }6+0.221\text{ }3{{D}_{R}}+0.001\text{ }4{{({{D}_{R}})}^{2}}+1.741\text{ }9{{D}_{G}} \\ & -0.005\text{ }6{{({{D}_{G}})}^{2}}-0.039\text{ }8{{D}_{B}}-0.000\text{ }2{{({{D}_{B}})}^{2}} \\ \end{align}$ |
$\begin{align} & {{y}^{*}}=-8.851\text{ }2+0.427\text{ }8T- \\ & 0.002\text{ }4{{T}^{2}}+1.003\text{ }4~{{y}_{25}}^{*}-0.000\text{ }1\text{ }{{({{y}_{25}}^{*})}^{2}} \\ \end{align}$ |
蛋白质半定量值区间如表 1所示。

若输出为反射率,则通过式(6)算出的反射率,若为RGB值则为当前测定的RGB值。
2 结果
该新型尿液分析核心模块的实物如图 4所示,可直接输出当前测试条的原始数据、人尿中白细胞、酮体等11项物质各自的RGB值、反射率、半定量等级等信息,可方便地用于各种类型的尿液分析仪。为了说明该模块的结果,下面通过实验得到不同试纸条的4种输出,即当前测试条的原始数据如图 5所示,试纸块颜色的RGB值如表 2所示,反射率如表 3所示,半定量等级数据如表 4所示。图 5中,红色箭头所对应的位置即每一个极小值对应一试纸块的颜色值,红色、绿色和蓝色曲线分别表示在试纸条移动过程中对应RGB颜色的变化,利用该功能及输出试纸块颜色的RGB值可以对新的测试项的规律进行研究、分析,利用外部工具如Matlab等得出相应的计算公式,然后通过特定的指令添加测试项及对应的系数,以实现相应项的测量,利用输出反射率可以通过实验确定各项的半定量区间,并通过特定的指令更改对应项的区间等。





另外,为了验证该核心模块的可靠性、稳定性以及一致性,进行了大量的实验,测试的最后结果如表 5所示。在医学上,常用“-”表示阴性,表示被测试者健康,“+”表示阳性,表示被测试者有疾病。其中,加号越多,代表病情越严重。由表 5可以得出,该核心模块测试的准确度达到95%及以上,完全达到尿液分析测试结果的要求。

3 讨论
本文提出了一种基于32位微处理器STM32F103RB和颜色传感器TCS3104的新型尿液分析仪的核心模块,采用新颖的光路结构、特定的电路及软件算法进行补偿,使其每项测量精度均在95%及以上,具有很好的稳定性、可靠性和一致性。另外,该模块可根据外部控制直接输出当前测试条的原始数据、11项指标各自颜色的RGB值、反射率、半定量等级等信息,并且通过特定的指令还可实现修改反射率计算系数、增加测试项和对应的计算系数、读取或更改半定量区间等。因此,该模块具有很好的开发性和可扩展性,从而保证具有很好的通用性,适用于各种类型的尿液分析仪,并可大幅度地降低尿液分析仪的研发和生产成本,具有很好的使用价值和广阔的市场前景。但目前还需对其整体光路、电路和软件进一步优化,力求成为一种标准化尿液分析仪核心模块。
引言
尿液分析是一项重要的临床化验指标[1],除用于泌尿系统疾病的诊断、疗效观察以外,还可用于会引起尿液生化成分改变的其它系统疾病的诊断、安全用药检测和健康状态初评等[2-5]。
早期通过人眼直接对比试纸条与标准色卡获得的尿液分析测试结果,由于受人眼主观因素影响,误差较大。随着计算机及自动化技术的发展,基于干化学的尿液分析仪成为临床的主流检测方法,其关键是颜色值的获取和半定量分析算法,其中颜色值的准确性取决于光学系统和颜色采集器。该部分目前主要有三种方式:① 利用不同波长的发光二极管(light emitting diode,LED)灯依次照射试纸条,根据光敏元件接收到不同颜色对应的反射光强,获取试纸条对应项的颜色值[6-7];② 采用白光光源照射测试试纸条,利用颜色传感器获取试纸条对应项的颜色值;③ 采用白光照射测纸条,利用电荷耦合组件(charge coupled Device,CCD)图像传感器以图像的形式接收不同颜色的反射光强,然后通过图像处理获取试纸条对应项的颜色值[8-9]。其中,① 和② 都具有成本较低,装配简单等优点,但均存在照射光源装配位置及角度、传感器离色块的距离等因素对检测结果有较大影响。最后一种光学系统比前两种方式复杂,光照均匀性要求高,成本也较高,且梯度定标繁琐,目前仅有部分全自动尿液分析在使用。另外,影响尿液分析仪测量精度、重复性和一致性等性能的因素,除半定量分析算法[10]外,还有环境光、温度、试纸的新鲜度等[11-16]。针对各种影响因素,通常从软、硬件两方面改进:如采用先进的超高亮度冷光源提高光学系统的分辨能力和稳定性,降低环境光对测试结果的影响;采用封闭化、模块化的系统设计,选用大规模集成电路,以降低元件数量,减小系统内部各部件间的相互干扰,提高产品的可靠性、稳定性;采用软硬件配合的技术,实现对环境温度、环境光等干扰的自动补偿。
本文结合32位微处理器和高精度颜色传感器构建一种新型尿液分析核心模块,提出了一种新的光路系统,同时采用软硬件相结合的技术,对环境温度、环境光等干扰因素进行自动补偿,可提高测量精度、重复性和稳定性等。
1 模块设计
本文模块采用新颖的光学结构,尽可能减少光学系统对测量产生的影响,并利用温度传感器获取环境温度,根据测量数据与温度的关系进行修正,以减小温度对测量结果产生的影响。本文以特定的电路结构及相应的计算方法提高测量RGB值及光强控制精度,有效地提高各输入量的测量精度。另外,根据实验数据,利用偏最小二乘法获得维生素C(vitamin C,VC)、尿糖(glucose,GLU)、胆红素(bilirubin,BIL)、尿酮体(ketone,KET)、尿比重(specific gravity,SG)、隐血(blood,BLD)、酸碱度(pH)、尿蛋白(protein,PRO)、尿胆原(urobilinogen,URO)、亚硝酸盐(nitrite,NIT)、尿白细胞(leucocyte,LEU)共11项指标的反射率等计算公式及半定量值区间,由于篇幅限制,该部分获取方法未详细阐述,只直接引用结果。本文重点描述该新型尿液分析核心模块的硬件和软件结构两部分。其中硬件部分由光学部分、数据采集和处理两部分构成,软件部分用Keil uVision3编译器实现程序的编译,下面分别对每部分进行详细阐述。
1.1 光学部分
如图 1所示,光学部分由白色LED、半反半透镜、TCS3104颜色传感器及T形光筒灯构成。

白色LED提供强度可控的光源,以满足TCS3104颜色传感器对光强的要求;半反半透镜可将LED的光反射到试纸条,并将经试纸条反射的光再透射回TCS3104颜色传感器;TCS3104颜色传感器将RGB值分别以模拟电压的形式输出,外部根据输出的电压获取相应的颜色和亮度信息;T形光筒主要遮挡环境光对结果的影响。如图 1所示,该模块的光学颜色采集方法可实现:① 采集的颜色值是不同颜色光在同一位置的反射光信号,在颜色合成时不会出现颜色的位置偏差;② 减小传感器与色块距离不同时对检测结果的影响。
1.2 数据采集和处理部分
如图 2所示,本部分由光强控制单元、控制和处理单元、启停控制单元、高精度参考电压单元、颜色传感器单元、温度测量单元和串行通讯单元共7个单元组成。其中,启停控制单元实现控制电平的转换,降低功耗,延长使用寿命;温度测量单元利用18B20实现温度的测量,以供温度补偿使用;串行通讯单元实现与外部各种数据的传输。下面对其余4部分进行详细阐述。

1.2.1 光强控制单元
该单元利用恒流的方式控制白色LED灯光强,获取更稳定的光强。其主要是通过微处理器STM32F103RB输出16位分辨率的脉冲宽度调制信号,经滤波、放大等处理后输出控制电压,并利用运算放大器实现电压电流转换,进而达到用恒流控制白色LED灯的目的。另外,在LED回路串联了一取样电阻,并将其采样电压送入微处理器STM32F103RB的模拟端口,从而形成闭环控制,提高恒流的控制精度。
1.2.2 控制和处理单元
该单元由32位微处理器STM32F103RB及相应的外围元件构成[17]。其中STM32F103RB内带12位、1 μs转换速度的A/D转换器、有128 kb可用于程序和数据存储的flash存储器、20 kb静态存储,最高工作频率可达72 MHz。本单元可将颜色传感器输出的模拟电压转换为相应的数字值,实现颜色的采集,并通过相应算法,根据输入信息输出所需的信息,同时还可利用内带的串口实现与外部通信等功能。
1.2.3 高精度参考电压单元
该单元是为提高每道A/D转换的精度而设计的。STM32F103RB内带A/D转换的值以模拟电源作为A/D转换的参考电压,实际使用中模拟电源会出现波动,且不同核心模块相应的模拟电源电压值也可能有小的差异,会造成相同输入对不同核心模块A/D转换的值有一定差异,进而出现核心模块测量的一致性不好。为解决这一问题,本文提出选用精度为0.1%的3 V参考电压芯片ADR363B(输出电压噪声峰值6.8 μV、电压精度±3 mV、温度系数9 ppm/℃)的输出作为STM32F103RB的一道模拟输入,以其作为对照,对其它道的A/D转换值进行修正。实验证明,该法可以很好地减小电源电压引入的干扰,并能提高核心模块测量的一致性和测量精度。
1.2.4 颜色传感器单元
该单元由高精度颜色传感器TCS3104组成,可实现与光路部分的衔接。TCS3104颜色传感器直接输出颜色的RGB三色分量模拟电压值,外部引脚可控制其输出增益为4倍或1倍,采用4倍可有效提高低照度下的测量精度,响应的典型时间为12 μs,输出对RGB的典型灵敏度分别为0.4、0.25、0.2 mV/(μW·cm-2),在微处理器的控制下实现RGB颜色的采集,并利用白色纸条的值进行修正。
1.3 软件部分
软件部分是利Keil uVision3编译器编写,以32位微处理器STM32F103RB的定时器、A/D转换、Flash存储、串口等实现各种控制数据的采集、保存、处理及通信。如图 3所示,软件部分包括启停控制子程序、光强控制子程序、A/D转换处理子程序、颜色处理子程序、结果处理子程序、串口通讯子程序、参数处理子程序、主程序等几部分。其中,串口通讯子程序通过串行口与外部进行通信,实现信息的交换,比如输出颜色的RGB分量值、各项的结果序号值等;参数处理子程序则是根据输入的信息,读取、保存或更改对应的参数,使得模块具有很好的开发性和可扩展性;光强控制子程序是利用闭环控制方式使加在白色LED上的电流为恒定的预设值;A/D转换子程序利用STM32F103RB的定时器实现各种数据的A/D转换值依据式(1)计算出结果并存入相应的缓冲区;颜色处理子程序在主程序的协调下将颜色的RGB分量从A/D转换子程序缓冲区取出,并利用式(2)进行修正,得到最后计算所需的RGB值;温度测量子程序完成温度的测量,通过多次平均后将测量值存入特定的变量之中,以供结果处理单元使用;结果处理子程序在主程序的协调下,根据颜色处理子程序处理后的RGB值的分布特征取出对应不同色块的数据,再利用对应测试项的式(3)和式(4)计算出相应的反射率,根据设置的半定量区间值(如表 1所示,给出了蛋白质的区间)得出相应的半定量序号值;主程序是调用启停控制子程序获取外部控制的信息,即是启动工作还是停止工作。若停止工作,则进行相应处理使整个核心模块处于低功耗模式;若启动工作,则调用相应的子程序通过对应的关键公式进行计算和处理,并输出相应数据。以下将对软件部分的关键公式进行阐述。

通过STM32F103RB测量各道输入电压的计算公式为:
${{V}_{i}}={{D}_{i}}\times 3.0/{{D}_{r}}$ |
式中Vi为计算所得的输入电压值,Dr取3.0 V参考电压经A/D转换平均值(为了滤除干扰),Di为需测量的某道A/D转换值。
${{D}_{m}}={{V}_{i}}\times 255/{{V}_{W}},$ |
式中Dm为计算所得颜色分量值(m=R,G,B,分别表示红色,绿色和蓝色),Vi为式(1)所得的结果值,VW表示用白条测试时式(1)算出的值。
${{y}_{25}}^{*}={{c}_{0}}+{{c}_{1}}{{D}_{R}}+{{c}_{2}}{{({{D}_{R}})}^{2}}+{{c}_{3}}{{D}_{G}}+{{c}_{4}}{{({{D}_{G}})}^{2}}+{{c}_{5}}{{D}_{B}}+{{c}_{6}}{{({{D}_{B}})}^{2}},$ |
${{y}^{*}}={{c}_{0}}\prime +{{c}_{1}}\prime T+{{c}_{2}}\prime {{T}^{2}}+{{c}_{3}}\prime {{y}_{25}}^{*}+{{c}_{4}}\prime {{({{y}_{25}}^{*})}^{2}},$ |
式中DR、DG和DB分别为通过式(2)算出的某一测试项或试纸块的红色、绿色和蓝色的分量值,c0~c4为某一测试项拟合的系数,y25*为式(3)算出的25℃时的反射率,T为测量时的环境温度,c0′~c4′为某一测试引入温度后拟合的系数。不同测试项c0~c4和c0′~c4′的系数不同,具体值是根据大量实验数据分析得出。如:根据实验得出蛋白质的计算公式为:
$\begin{align} & {{y}_{25}}^{*}=-118.656\text{ }6+0.221\text{ }3{{D}_{R}}+0.001\text{ }4{{({{D}_{R}})}^{2}}+1.741\text{ }9{{D}_{G}} \\ & -0.005\text{ }6{{({{D}_{G}})}^{2}}-0.039\text{ }8{{D}_{B}}-0.000\text{ }2{{({{D}_{B}})}^{2}} \\ \end{align}$ |
$\begin{align} & {{y}^{*}}=-8.851\text{ }2+0.427\text{ }8T- \\ & 0.002\text{ }4{{T}^{2}}+1.003\text{ }4~{{y}_{25}}^{*}-0.000\text{ }1\text{ }{{({{y}_{25}}^{*})}^{2}} \\ \end{align}$ |
蛋白质半定量值区间如表 1所示。

若输出为反射率,则通过式(6)算出的反射率,若为RGB值则为当前测定的RGB值。
2 结果
该新型尿液分析核心模块的实物如图 4所示,可直接输出当前测试条的原始数据、人尿中白细胞、酮体等11项物质各自的RGB值、反射率、半定量等级等信息,可方便地用于各种类型的尿液分析仪。为了说明该模块的结果,下面通过实验得到不同试纸条的4种输出,即当前测试条的原始数据如图 5所示,试纸块颜色的RGB值如表 2所示,反射率如表 3所示,半定量等级数据如表 4所示。图 5中,红色箭头所对应的位置即每一个极小值对应一试纸块的颜色值,红色、绿色和蓝色曲线分别表示在试纸条移动过程中对应RGB颜色的变化,利用该功能及输出试纸块颜色的RGB值可以对新的测试项的规律进行研究、分析,利用外部工具如Matlab等得出相应的计算公式,然后通过特定的指令添加测试项及对应的系数,以实现相应项的测量,利用输出反射率可以通过实验确定各项的半定量区间,并通过特定的指令更改对应项的区间等。





另外,为了验证该核心模块的可靠性、稳定性以及一致性,进行了大量的实验,测试的最后结果如表 5所示。在医学上,常用“-”表示阴性,表示被测试者健康,“+”表示阳性,表示被测试者有疾病。其中,加号越多,代表病情越严重。由表 5可以得出,该核心模块测试的准确度达到95%及以上,完全达到尿液分析测试结果的要求。

3 讨论
本文提出了一种基于32位微处理器STM32F103RB和颜色传感器TCS3104的新型尿液分析仪的核心模块,采用新颖的光路结构、特定的电路及软件算法进行补偿,使其每项测量精度均在95%及以上,具有很好的稳定性、可靠性和一致性。另外,该模块可根据外部控制直接输出当前测试条的原始数据、11项指标各自颜色的RGB值、反射率、半定量等级等信息,并且通过特定的指令还可实现修改反射率计算系数、增加测试项和对应的计算系数、读取或更改半定量区间等。因此,该模块具有很好的开发性和可扩展性,从而保证具有很好的通用性,适用于各种类型的尿液分析仪,并可大幅度地降低尿液分析仪的研发和生产成本,具有很好的使用价值和广阔的市场前景。但目前还需对其整体光路、电路和软件进一步优化,力求成为一种标准化尿液分析仪核心模块。