(北京航天新立科技有限公司,北京 100039)
摘 要:电子产品生产所需物料种类多数量大,人工计数降低了生产效率,设计电子计数秤,通过对物料进行测量直接显示个数,有利于提高生产效率。基于STM32和HX711模块及平行梁应变式称重传感器的电子计数秤,存在传感器分辨率限制、测量和转换误差及噪声等问题,造成测量偏差。针对此问题,首先对采样二进制值进行滤波,提高数据稳定性;然后利用均值滤波算法进一步降噪,减小噪声的影响;采用最小二次乘法建立一次函数线性模型,实现采样值与重量的转换。通过实验验证,将重量误差控制在±1 g,个数偏差1%,能满足生产所需。
关键词:称重传感器;STM32;HX711模块;软件滤波;最小二乘法
中图分类号:TH715 文献标识码:A 文章编号:2096-4706(2024)13-0015-04
Design and Error Processing of the Electronic Counting Scale Based on
Least Square Method
WANG Hong, HU Kedi, YANG Zaohong, NIU Zongxia, XIN Guisuo, ZHAO Shan
(Beijing Shiny Co., Ltd., Beijing 100039, China)
Abstract: The production of electronic products requires a large variety of materials, and manual counting reduces the production efficiency. The electronic counting scale is designed to directly display the number by measuring the materials, and it is beneficial to improve the production efficiency. The electronic counting scale based on STM32 and HX711 module and parallel beam strain weighing sensor has problems such as sensor resolution limitations, measurement and conversion errors, and noise, which will cause measurement deviation. Aiming at the problems, this paper firstly filters the sampled binary value to improve the data stability, then uses the mean filter algorithm to further reduce noise and minimize the impact of noise. It uses the least square method to establish a linear model of the linear function to realize the conversion of sampled value and weight. Through experimental verification, the weight error is controlled within ±1 g, and the number deviation is 1%, which can meet the needs of production.
Keywords: weighing sensor; STM32; HX711 module; software filtering; least square method
0 引 言
随着科技和经济的发展,电子产品批量生产所需元器件、标准件等物料的种类和数量日益增多。物料的分配、入库等工作量也随之增重[1]。依靠人工计数进行物料发放,不仅工作量繁重,不方便库存的管理,而且延长了生产周期、降低了生产效率。为提高生产效率,电子秤被应用于生产过程[2-3]。目前对电子秤的应用主要分两种,一种是将物料单重信息存储于电子秤中,测量个数时调取相关物料的信息,实现个数的显示;但在使用过程中只能测量已录入信息的物料,对于新物料使用不方便[4]。另一种是等量天平计数法,首先人工拾取一定数量的物料放于天平上,清零后拿下,再随机拿取物料放于天平,当显示示数最接近于0时,此时所测物料个数为之前标定的数量;这种标定方法只能称取确定数量的物料,当所需物料个数变化时则需重新标定[5-6]。这两种方法用于生产过程物料计数均有一定的局限性。
考虑到生产应用以及使用的便利性、成本等因素,基于STM32和HX711模块及平行梁应变式称重传感器设计电子计数秤,实时采集重量数据计算单重,进行物料个数显示。由于电子计数秤依靠传感器进行重量数据采集,并转换为个数进行显示,数据的传递和变换过程受噪声影响,并引入误差,因此利用软件对数据处理,首先对采样二进制值进行滤波,提高数据稳定性;然后利用均值滤波算法进一步降噪,减小噪声的影响;采用最小二乘法建立一次函数线性模型,实现采样值与重量的转换。此电子计数秤可以实时对所称物料进行个数显示,没有数量限制,为生产中物料计数提供了便利,提高了生产效率。
1 电子计数秤硬件设计
电子计数秤通过对物料进行测量,得到所测物料的个数,方便了物料的领取、发放以及入库等。本文设计电子计数秤主要实现称重、计数、显示以及按键标定、清零等功能,主要包括STM32控制器、HX711、A/D转换模块、平行梁应变式称重传感器以及LCD12232显示屏、功能选择按键等。
1.1 STM32控制器
电子计数秤作为一种小型自动化设备,需要自行运算与控制,而微控制器STM32不仅性能优、稳定性好,而且体积小、外设多,满足所需[7-8]。控制器电路设计图如图1所示,所选用STM32F103C8T6单片机是一款基于ARM Cortex-M内核STM32系列的32位微控制器,具有64 KB程序存储器容量,且有37个IO口用于外设扩展,性价比高,满足电子计数秤设计需求。
1.2 平行梁应变式称重传感器
称重传感器是电子计数秤的关键部件,悬臂梁上的电阻应变片在受到重力作用发生形变时,阻值会发生变化,使得惠更斯电路输出微弱的电压信号,达到将重量信息转化成电信号的目的[9]。由于电子计数秤需要以精准的单重为基准,所以选择的称重传感器在量程能满足要求、控制成本的情况下,精度尽可能高,因此选用全桥差动滤波电路的平行梁应变式称重传感器,其量程为3 kg,灵敏度为2 mV/V,不仅精度高、抗偏载能力强,而且结构简单紧凑,易于安装[10]。电子计数秤整体结构如图2所示。
1.3 HX711AD转换模块
HX711AD转换模块是一款高精度24位AD转换芯片,其内部集成了电源、时钟振荡器等电路,具有集成度高、响应速度快、抗干扰性强等优点。利用HX711 AD转换模块的128增益通道将称重传感器输出的微弱电压信号进行放大,并将其转化为24位二进制数值,以一定频率传入单片机进行后续处理,满足电子计数秤精度要求。
1.4 电子计数秤原理图
如图3所示,称重传感器将感受到的重量信息转化为电压信号,HX711将来自传感器的电压模拟信号传递给A/D模块转化为二进制数值,并输入单片机;单片机进行数据处理和运算,得到物料重量和数量,将数据发送到显示屏进行显示;同时,利用按键中断进行清零、计算单重、显示数量等功能的选择,满足电子计数秤的工作要求。
2 算法改进
在硬件电路设计完成的情况下,对电子计数秤的算法进行改进,提高其准确性和稳定性。受环境影响和传感器自身工作原理约束,数据采集过程会引入噪声,影响到电压信号,使其在测量值附近波动。均值滤波算法只能在一定程度降低噪声的作用,效果有限。而以往研究,为节省存储空间,将采集到的数据除以固定数值,而未考虑对其分辨率的影响。本文在此基础上,研究零点漂移(零漂)对采集数据的影响程度,从而确定数值变化范围,确定软件数值处理方法,进一步滤波,之后进行数值变换。过程如图4所示。
2.1 软件滤波
以往研究,只是简单地为节省存储空间,将采集到的数据除以固定数值,缩小数据范围,减小数据存储空间,而未考虑缩小倍数的大小对其分辨率以及准确性的影响。本文通过多次试验,采集传感器的零漂范围从而确定软件滤波时数据缩小的倍数,数据如表1所示。
如表1所示,零输入时,零点漂移会使采集数据的低7位不断波动从而影响传感器读数,多次采集后选取20个数据进行展示说明,其中最大值为70,而低7位数值最大位可变化128;同时利用此传感器和AD转换模块搭建的电子计数秤变化1 g对应的AD值变化为1 432,0.1 g对应的AD值为143,低7位数值的变化所导致的误差在0.1 g以内。因此,在所需精度大于0.1的情况下舍弃低7位数值,以实现传感器读数一定程度的稳定。
将AD值传入单片机后,进行数据处理,主要程序如下:
u32 buffer=0;
u32 deta=0;
u32 weight0;
deta=buffer%27;
weight=buffer&0xffffff80;屏蔽低7位数值
if(deta>26)
weight=weight+26;
其中,buffer为称重传感器读入AD值,deta为读取AD值的低7位,weight为软件处理后的AD值,用于进行重量转换。软件滤波主要对采样AD值的后7位进行处理,当后7位值小于64时,认为主要由噪声导致而舍弃,大于64时认为时重量值,进而加到待转换读数。
经处理后的采样值能一定程度减少噪声,且保持稳定,为示数显示提供了稳定重量读数。主要算法流程如图5所示。
2.2 均值滤波算法
由于随机噪声的存在,使得传感器采样具有波动性,需要进行滤波以得到平滑的结果。均值滤波算法是典型的线性滤波算法,能平滑采样中的“尖锐”变化,降低噪声。均值滤波算法的原理是:多次采样后,剔除样本中的最大值和最小值,然后求取平均值作为采样结果。计算方式如式(1)所示:
HX711模块频率选用10 Hz,均值滤波时选择10次采样值,去除最大、最小值后取平均值作为重量值,进行称量个数的计算。
2.3 最小二乘线性拟合
全桥差动电路使得传感器输入输出具有很好的线性,但对于高精度来说,还存在着不可忽略的增益误差,是由于电阻应变片的非完全线性特性以及随机误差导致的。在电子计数秤中对单重的要求更是精确,因此采用最小二乘法进行线性拟合,通过修正减小误差。现称重传感器的研究中,对于采样数值与重量间的转化多采用正比例函数,形如y = kx,而由于传感器所用电阻应变片并非完全线性,因此本文采用一次函数形如y = ax + b作为两者的转化关系,以补偿偏差。
借助所设计硬件及砝码进行数据测量,在保证环境条件基本一致,经过多次测量求平均值后,得到数据部分如表2所示。
参考文献:
[1] 周文彬.标准件入厂验收管理与质量控制 [J].科技经济市场,2020(11):74-75.
[2] 龙顺宇,傅启才,杨伟,等.基于应变电桥与CS1237的高精度电子秤设计 [J].电子制作,2021(11):46-49.
[3] 程望斌,刘硕卿,王曾盛,等.多功能电子秤的优化设计与实现 [J].湖南理工学院学报:自然科学版,2019,32(3):23-25.
[4] 安民军.基于Python的最小二乘法在电子天平中的应用 [J].品牌与标准化,2023(6):175-177.
[5] 黄丹平,罗玉梅.新型焊条自动计数检测系统 [J].仪表技术与传感器,2012(10):58-60.
[6] 邹吉祥.一种等量计数称重机:CN203053549U [P].2013-07-10.
[7] 秦玉伟.一种悬臂梁结构的高精度电子秤 [J].自动化与仪器仪表,2020(4):97-99.
[8] 杨杰,余红英,刘辉.基于STM32的智能称重系统优化设计 [J].曲阜师范大学学报:自然科学版,2020,46(1):71-76.
[9] 崔国强,詹宁,罗德雨,等.基于STM32和AD7791实现电子秤设计 [J].仪器仪表用户,2020,27(2):5-8.
[10] 葛海江.基于HX711的高精度电子称重研究 [J].电子测试,2019(10):31-32.
作者简介:王宏(1992—),女,汉族,河北唐山人,工程师,硕士研究生,研究方向:软件设计、电装工艺研究。