李海 王慧 赵浚坚 周志毅
摘要:纸张计数显示装置基于RT-Thread实时操作系统,硬件平台采用STM32F103单片机为主控制器,以具有抗电磁干扰(EMI)架构的模块作为电容采集传感器,通过屏蔽双绞线连接至两铜极板,读取采集的数据并进行相应判断,应用触摸屏和语音模块进行状态显示与播报。
关键词:CD4069;卡尔曼滤波;模糊算法;RT-Thread STM32
中图分类号:TP83 文献标识码:A 文章编号:1007-9416(2020)06-0008-02
0 引言
纸张计数显示装置涉及的主要就是测频率值,通过CD4069非门构成的非对称式多谐振荡器,频率不会出现范围跳动,相对稳定,非门构成的非对称式多谐振荡器的振荡频率理论上可以高达4M,实际我们测的话能达到2M左右,频率越高,最后测纸数越多的时候它的区分度越好。通过主控芯实现计数功能、计时功能和频率换算,之后进行算法编程,计算出纸张数量,最终实现人机交互,并由1602显示[1]。
1 总体方案设计
本系统主要由电容式传感器模块、测量方案的论证与选择、压力式结构、控制系统组成,以STM32F103单片机为核心,利用单片机的计数定时功能实现频率计数,并且采用加权平均算法,借鉴于卡尔曼滤波算法。其次,在模糊控制中有多重解模糊的方式:面积平分法、加权平均法(重心法)、平均最大隶属度法等。根据系统的特性,我们选用平均最大隶属度法进行解模糊运算。结合这两个算法减小误差,最终计算出纸张数量并送到显示电路显示。
2 硬件电路设计
本系统装置系统结构框图如图1所示,装置STM32模块、电容极板(采集纸张数量模块)、CD4069、驱动层、LCD显示模块组成。以STM32F103单片机作为主控芯片来完成该信标智能检测系统。
2.1 测量和压力式结构模块
用放置重物压紧,四周打定位孔用螺栓插入,使其相對面积基本保持不变。这种方式制做稍微繁琐,但两个极板之间的受力较为均匀,调试方便,稳定性较好[2]。
CD4069非门构成的非对称式多谐振荡器,频率不会出现范围跳动,相对稳定,非门构成的非对称式多谐振荡器的振荡频率理论上可以高达4M,实际测能达到2M左右,频率越高,最后测纸数越多的时候它的区分度越好。
2.2 控制系统模块
系统使用ST公司的STM32F103,STM32系列是一款基于Cortex-M3内核的中低端的32位ARM微控制器,最高工作频率可达72MHz。内部带有高速、高精度定时器,将其时钟源配置为外部时钟,就可以对外部脉冲信号进行脉冲计数,还带有单周期乘法和硬件除法。为了保证系统的测量的精度和设计所限制时间,决定选用STM32F103单片机。
3 软件设计
3.1 系统总体工作流程
软件部分主要分成用户交互设计以及数据处理算法设计,基于RT-Thread实时操作系统,利用系统的线程调度完成各个模块的程序处理[3]。
3.2 程序设计思路
在整体软件中,首先在触摸屏菜单进行人机交互,进入不同的功能调用不同的控制函数与数据处理算法。程序线程调度,主要分为简单任务以及核心算法算法任务。简单任务为IO设备、触摸屏、OLED屏幕、语音模块、NB-IOT模块等设备控制;核心控制算法任务为CD4069电容模拟值采集、卡尔曼滤波以及模糊求解最大可能性落点区间,从而得到当前纸张数量。
3.3 系统理论分析与计算
3.3.1 加权平均算法
本次设计中,软件方面采用了加权平均算法,借鉴于卡尔曼滤波算法。根据观察可以发现,下一秒的频率值永远比上一秒的频率值更准确(在仅考虑间距的状态下),因此可以分配给下一秒的频率权重值更大,而上一秒的权重更小。在算法中,一共在一秒内采集5个数据(200ms定时采集一次),那么这5个数据一定有着不同的权重值。人为设定为第一秒权重为0.1;第二秒权重为0.1;第三秒权重为0.2;第四秒权重为0.3;第五秒权重为0.3,权重总和为1。那么这个新数据肯定是这五个数据的加权平均值。将新数据作为最终当前纸张的频率值。
3.3.2 模糊算法
在模糊控制中有多重解模糊的方式:面积平分法、加权平均法(重心法)、平均最大隶属度法等。根据系统的特性,我们选用平均最大隶属度法进行解模糊运算。模糊推理结果为输出论域上的模糊集,通过平均最大隶属度法,取模糊集中具有最大隶属度的所有点的平均值作为去模糊化的结果,由此可得到论域上的精确值[4]。
4 电路的测试结果集分析
测试数据分析:
(1)保持测试环境不变,采集50个样本,通过MATLAB拟合出纸张页数与传感器原始数据的曲线关系。
(2)根据(1)中采集50个样本,确定电容模拟值及纸张数论域,划分模糊子集。
(3)根据(2)中划分的模糊子集,保持测试环境不变,固定测量35张纸张,采集到的原始数据90%落入35张页数所对应的区间[401.35,399.50]。
(4)根据(2)中划分的模糊子集,保持测试环境不变,固定测量46张纸张,模拟值大部分落入46张页数所对应的区间[383.6,382.7]。
分析与结论:根据上述测试数据可知,采集到的原始数据与纸张数大致呈幂函数关系,通过划分规则控制表,确定每个区间的隶属度,可推算出当前的纸张数量。随着纸张数量的增加,频率变化逐渐变小,造成纸张越过范围后,测量误差越大。
5 结论
本系统在完成了题目要求的同时,还增加触摸屏进行人机交互,具有十分友善的GUI,并增加了语音提示功能。系统的稳定测量源于机械结构的创新特性,采用固定铰链式抗干扰结构,确保上下极面的正对面积保持不变。整个系统的构建源于机械结构、电路设计、软件设计的合理架构,最大亮点是基于RT-Thread实时操作系统进行线程调度,极大程度的利用了MCU的资源,使得系统响应快、稳定性高。此外,基于电容检测的特性,增加了扩展功能以适应一些生活应用场景,包括材料识别,预先采集材料阈值,进行不同材料的区分;纸币识别,识别不同纸币的面额。
参考文献
[1] 谭浩强.C程序设计[M].第2版.北京:清华大学出版社,1999.
[2] 周静,郑卉.C语言程序设计实例教程[M].北京:中国人民大学出版社,2011.
[3] 李良荣.现代电子设计技术:基于Multisim 7[M].北京:机械工业出版社,2015.
[4] 石伟,龙永红.基于灰度投影法的硬板纸计数方法研究与实现[J].包装学报,2015,25(4):47+51.