5、單片機(jī)、液晶屏以及語音模塊的設(shè)計(jì)
單片機(jī)采用的是STM32F407ZGT6為處理器,該芯片具有運(yùn)行速度快,高達(dá)168M。大容量,1M的Flash,196KB的RAM,以及自帶FSMC接口。
電源模塊的設(shè)計(jì)采用DC-DC轉(zhuǎn)換芯片MP2359,該芯片具有寬電壓輸入(6V-16V),穩(wěn)壓5V輸出,電流可高達(dá)1A,這樣就不會(huì)因?yàn)長CD功耗較大而驅(qū)動(dòng)不了。3.3V電壓的得到采用AMS117-3.3三端穩(wěn)壓芯片完成,這樣電源就設(shè)計(jì)完成。
LCD液晶屏模塊采用的是ALIENTEK的4.3寸屏,控制器IC為ILI9341,分辨率為480*800,16色真彩顯示,自帶觸摸屏。
語音模塊采用的是WT588D語音模塊,設(shè)計(jì)中采用一線串口控制模式。該模式下,只需使用一個(gè)I/O口向模塊發(fā)送需要播報(bào)的語音地址即可。為了便于編寫程序代碼,可把語音‘0’加載到模塊的地址0上,語音‘l’加載到地址l上,以此類推,最后語音‘點(diǎn)’加載到地址10上,語音‘元’加載到地址11上,這樣需要播報(bào)時(shí),發(fā)送相應(yīng)的地址就可以了。
通過液晶觸摸屏和語音模塊就可以很好的完成人機(jī)交互界面的設(shè)計(jì)。
6、軟件設(shè)計(jì)
6.1、物體質(zhì)量處理
通過HX711轉(zhuǎn)換可以得到數(shù)字信號(hào)量,此時(shí),就可以用單片機(jī)獲取數(shù)據(jù)。HX711模塊的輸出接口類似于IIc接口,只有時(shí)鐘線和數(shù)據(jù)線,按照該芯片的使用手冊,就可以讀出數(shù)據(jù)。
從HX711模塊獲取的數(shù)據(jù)并不能直接使用,它只是經(jīng)24位AD轉(zhuǎn)換后的值。所以,需要處理,24位AD轉(zhuǎn)換除去最高位的標(biāo)志位,其有效數(shù)據(jù)位只有23位。滿量程為2^23次方,等于8388608。在測試中發(fā)現(xiàn)低兩位可作為無效位去除,其原因在于AD轉(zhuǎn)換的精度過于高,在不加砝碼的時(shí)候低兩位數(shù)值變化的厲害,因而將其合去。最后可利用的數(shù)據(jù)最大為83886。處理后的AD轉(zhuǎn)換值也不是我們需要的物體質(zhì)量。因此,還需要對(duì)數(shù)據(jù)進(jìn)行處理,利用每一克質(zhì)量對(duì)應(yīng)一個(gè)AD轉(zhuǎn)換值,可以把這種對(duì)應(yīng)關(guān)系通過數(shù)學(xué)方法擬合成一個(gè)函數(shù),這樣當(dāng)測量物體質(zhì)量時(shí),就可以利用該函數(shù)求解出物體對(duì)應(yīng)的質(zhì)量。試驗(yàn)中,通過對(duì)0500克砝碼的多次測試,擬合出的函數(shù)如式l。
WEIGHT=1945.5-0.0238*AD_Value(1)
可以看出該函數(shù)為一條單調(diào)遞減函數(shù),通過該表達(dá)式就可以快速求解出物體的質(zhì)量。
為了滿足多功能的需求以及減小系統(tǒng)自身的誤差,需要設(shè)置扣重,校準(zhǔn)功能。其程序?qū)崿F(xiàn)代碼如式2。
REAL_WEIGHT=WEIGHT-XIAOZHENG-KOUZHONG(2)
當(dāng)需要校準(zhǔn)時(shí),把REAL_WEIGHT賦值給XIAOZHENG即可實(shí)現(xiàn)校準(zhǔn),當(dāng)需要扣重時(shí),把REAL_WEIGHT賦值給KOUZHONG即可實(shí)現(xiàn)扣重。
總價(jià)計(jì)算及總價(jià)累計(jì)計(jì)算,利用觸摸屏輸入的單價(jià)值即可計(jì)算出當(dāng)前物體的總計(jì)價(jià)格,當(dāng)需要累加時(shí),按下觸摸屏上對(duì)應(yīng)的按鍵區(qū)域即可實(shí)現(xiàn)累計(jì)。
6.2、人機(jī)交互界面的實(shí)現(xiàn)
LCD顯示的最基本原理在于可以在指定的位置畫一個(gè)點(diǎn),利用這種原理,可以先對(duì)需要顯示的字符取模,再利用畫點(diǎn)實(shí)現(xiàn)顯示字符。配合需要顯示的顏色,最終就可以設(shè)計(jì)出所需要的界面。
觸摸按鍵的設(shè)計(jì)在于利用當(dāng)用手指觸碰到屏幕時(shí),單片機(jī)會(huì)接收到兩個(gè)數(shù)據(jù),分別為X軸的坐標(biāo)值,Y軸的坐標(biāo)值。根據(jù)觸碰的點(diǎn)在哪一個(gè)區(qū)域內(nèi)就可以判斷出是哪個(gè)按鍵被觸發(fā),進(jìn)而實(shí)現(xiàn)按鍵輸入功能。
當(dāng)需要語音模塊播報(bào)時(shí),把需要播報(bào)數(shù)字的每個(gè)位的數(shù)值解析出來作為地址發(fā)送給語音模塊,當(dāng)解析出‘點(diǎn)’時(shí),發(fā)送地址10,最后再發(fā)送地址11,播報(bào)‘元’,就完成了語音播報(bào)的功能。
7、測量結(jié)果及誤差分析
根據(jù)擬合出的的函數(shù)可以將處理后的AD轉(zhuǎn)換值代人方程中,求解出物體的質(zhì)量。測試中發(fā)現(xiàn),在沒有加砝碼前,電子稱重儀還是有讀數(shù),這為系統(tǒng)誤差,為此,需要在每次開機(jī)時(shí)按下‘校正’按鍵清零。另一方面由于應(yīng)變片產(chǎn)生的形變是非直線的,但是因?yàn)槭遣捎们€擬合的方法得到函數(shù)關(guān)系,測量結(jié)果的誤差是非常小的。因此,產(chǎn)生的誤差來源最主要的就是物體重心的偏移,測量時(shí)物體晃動(dòng)。
8、結(jié)語
通過硬件與軟件的結(jié)合,可以很好的完成本次設(shè)計(jì)。而所選用的STM32單片機(jī)自帶浮點(diǎn)數(shù)運(yùn)算單元,可以大大提高小數(shù)運(yùn)算能力;LCD液晶屏的使用為人機(jī)交互界面提供了很好的顯示效果,極大方便了用戶的使用。通過對(duì)不同質(zhì)量砝碼的多次測量,獲取多組數(shù)據(jù),然后用MATLAB或EXCEL軟件擬合出一個(gè)函數(shù),這樣能明顯提高測量的精度,減小測量誤差。在測試中發(fā)現(xiàn)050克,測量誤差穩(wěn)定在0.1%內(nèi),50500克穩(wěn)定在0.2%內(nèi),所以本設(shè)計(jì)實(shí)現(xiàn)了一種基于STM32的多功能精密電子秤。
評(píng)論