










(北京航天新立科技有限公司,北京 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—),女,漢族,河北唐山人,工程師,碩士研究生,研究方向:軟件設計、電裝工藝研究。