陳雙燕,陳佳堯,湯巧治
(閩南理工學(xué)院 電子與電氣工程學(xué)院/工業(yè)自動(dòng)化控制技術(shù)與信息處理重點(diǎn)實(shí)驗(yàn)室,福建 泉州 362700)
隨著經(jīng)濟(jì)與科學(xué)技術(shù)的不斷發(fā)展,重物的檢測(cè)不僅僅在制造業(yè)、冶金業(yè)當(dāng)中占決定地位,而且在人們的飲食、健身和娛樂(lè)等領(lǐng)域也越來(lái)越顯出其重要性。但傳統(tǒng)機(jī)械秤存在著稱重顯示不直觀,或界面不夠友好,或不方便攜帶等問(wèn)題?;诖?,本文給出了一款便攜式語(yǔ)音稱重器的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程。
本語(yǔ)音電子稱重器的系統(tǒng)結(jié)構(gòu)框架如圖1所示。其中,重物數(shù)據(jù)采集模塊由電阻式應(yīng)變片,壓敏電阻,亞克力板和HX711模塊等構(gòu)成。由STM32單片機(jī)〔1-2〕作為主控芯片,實(shí)現(xiàn)重物數(shù)據(jù)的實(shí)時(shí)接收、顯示以及語(yǔ)音播報(bào)。同時(shí)STM32單片機(jī)將重物重量數(shù)據(jù)經(jīng)HC-05藍(lán)牙模塊傳送至手機(jī)APP端并顯示出數(shù)值。
圖1 系統(tǒng)的結(jié)構(gòu)框架設(shè)計(jì)
本文采用專為嵌入式設(shè)計(jì)的STM32單片機(jī)。該單片機(jī)具有12個(gè)通信串口,112個(gè)I/O復(fù)用端口,具有豐富的外設(shè)資源。STM32與其它模塊的硬件連接示意圖如圖1所示,其中串口1與HC-05藍(lán)牙模塊連接,串口2與SYN6288語(yǔ)音模塊連接,PB口與TFT液晶屏相連,PC口與HX711模塊連接。
重力感測(cè)部分采用電阻式應(yīng)變片,其由壓敏電阻與亞克力板進(jìn)行構(gòu)成。對(duì)于數(shù)據(jù)采集模塊,本文采用的HX711模塊,HX711模塊是一款24位A/D轉(zhuǎn)換器的高精度稱重傳感器〔3〕。HX711通過(guò)INA+和INA-接收重物模擬量,經(jīng)過(guò)內(nèi)部24位A/D轉(zhuǎn)換模塊變?yōu)閿?shù)字量,通過(guò)數(shù)字接口PD-SCK和DOUT將此數(shù)字量傳至STM32單片機(jī)。
SYN6288中文語(yǔ)音合成芯片是北京宇音天下科技有限公司于2010年初推出的一款性價(jià)比更高,效果更自然的一款中高端語(yǔ)音合成芯片〔1〕。STM32單片機(jī)以其規(guī)定的命令幀的格式向SYN6288發(fā)送觸發(fā)命令,SYN6288根據(jù)收到的命令幀進(jìn)行相應(yīng)的動(dòng)作〔3〕。
本設(shè)計(jì)采用TFT液晶屏進(jìn)行顯示稱重傳感器的數(shù)據(jù),TFT-LCD液晶屏采用“背透式”的照射方式。TFT液晶屏的數(shù)據(jù)線SDA、時(shí)鐘線SCL以及控制線RS、CS分別與STM32的PB15、PB13、PB10、PB11相連〔3〕。
本稱重器采用HC-05藍(lán)牙模塊來(lái)實(shí)現(xiàn)與手機(jī)APP的通信。當(dāng)藍(lán)牙設(shè)備與藍(lán)牙設(shè)備配對(duì)連接成功后,可忽視藍(lán)牙內(nèi)部的通信協(xié)議,直接將HC-05藍(lán)牙模塊當(dāng)做串口用。當(dāng)建立連接時(shí),將藍(lán)牙模塊設(shè)置成能進(jìn)行配對(duì)連接的AT模式,即兩設(shè)備共同使用一通道也就是同一個(gè)串口,一個(gè)設(shè)備發(fā)送數(shù)據(jù)到通道中,另外一個(gè)設(shè)備便可以接收通道中的數(shù)據(jù)。
軟件設(shè)計(jì)部分的具體程序流程如圖2所示。通過(guò)STM32內(nèi)部串口讀取HX711傳感器的數(shù)值,單片機(jī)將數(shù)據(jù)送至TFT液晶屏并控制其實(shí)時(shí)顯示重物值,同時(shí)通過(guò)SYN6288語(yǔ)音芯片實(shí)現(xiàn)重物重量的實(shí)時(shí)播報(bào)。另外,采用HC-05藍(lán)牙模塊來(lái)實(shí)現(xiàn)單片機(jī)與手機(jī)APP的通信。
圖2 系統(tǒng)程序流程圖
當(dāng)系統(tǒng)上電后,先將STM32的定時(shí)器和串口進(jìn)行初始化,設(shè)置單片機(jī)的串口中斷優(yōu)先級(jí)大于定時(shí)器的中斷優(yōu)先級(jí)。其次,通過(guò)壓力傳感器感應(yīng)是否有重物放置,如果存在則通過(guò)HX711模塊內(nèi)部進(jìn)行數(shù)據(jù)分析,并由SCK(GPIOC4)和DOUT(GPIOC5)引腳將數(shù)據(jù)傳入STM32單片機(jī)中,若不存在,則繼續(xù)進(jìn)行判斷重物指令〔4〕。
當(dāng)HX711模塊進(jìn)行數(shù)據(jù)分析之后,單片機(jī)再將數(shù)據(jù)在送至TFT液晶屏上進(jìn)行實(shí)時(shí)顯示。同時(shí),由于HX711模塊傳回來(lái)的數(shù)據(jù)為數(shù)字量,具有Shiwu_Weight的返回值,所以本文將此數(shù)據(jù)傳入TFT液晶屏。
顯示完成后,單片機(jī)通過(guò)USART2的GPIOA_Pin_2串口觸發(fā)SYN6288語(yǔ)音芯片進(jìn)行語(yǔ)音播報(bào)。由于在觸發(fā)SYN6288語(yǔ)音芯片時(shí)需要按照其規(guī)定的數(shù)據(jù)幀格式才能實(shí)現(xiàn)〔5〕。數(shù)據(jù)幀格式表的幀頭尾0xFD,數(shù)據(jù)區(qū)的長(zhǎng)度為2字節(jié),數(shù)據(jù)區(qū)不大于203字節(jié),其中包括命令字0x01,命令參數(shù)0x03,待發(fā)送的文本(不大于200字節(jié)),最后是1字節(jié)的異或校驗(yàn)0xc3。
由于語(yǔ)音芯片播報(bào)的內(nèi)容為“當(dāng)前千克值為XX”。數(shù)據(jù)區(qū)待發(fā)送文本長(zhǎng)度length為13,所以數(shù)據(jù)區(qū)長(zhǎng)度至少大于0x10。采用void syn6288_SpeakStr(char *text,char MusicID)函數(shù)實(shí)現(xiàn),其中,MusicID為需要播放的背景音樂(lè),0為不播放,text是語(yǔ)音播報(bào)的文本內(nèi)容,是字符型數(shù)組。在主函數(shù)中調(diào)用syn6288_SpeakStr(text,2);語(yǔ)句,就可以在重物檢測(cè)完成后進(jìn)行播報(bào)。
當(dāng)SYN6288播報(bào)語(yǔ)音之時(shí),MCU將測(cè)出來(lái)的稱重?cái)?shù)據(jù),在忽略HC-05模塊內(nèi)部協(xié)議的情況下,通過(guò)串口USART1的GPIOA_Pin_9與GPIOA_Pin_10傳送至藍(lán)牙串口助手進(jìn)行檢測(cè)。
將該稱重器置于水平臺(tái)面上進(jìn)行測(cè)試,將5~6本書(shū)籍整齊疊放在稱重器上,測(cè)試結(jié)果如圖3(a)所示。TFT顯示的數(shù)據(jù)為3.0 kg。當(dāng)數(shù)據(jù)傳至SYN6288芯片,通過(guò)外喇叭或者耳機(jī)線可以聽(tīng)到:“當(dāng)前千克值為3”。同時(shí)通過(guò)HC-05藍(lán)牙模塊將數(shù)據(jù)傳至手機(jī)APP進(jìn)行數(shù)據(jù)接收,APP顯示結(jié)果如圖3(b)所示,可知實(shí)現(xiàn)了所需的功能。
(a)實(shí)物的測(cè)試結(jié)果及TFT顯示
利用HX711稱重傳感器與SYN6288語(yǔ)音合成芯片設(shè)計(jì)的便攜式語(yǔ)音稱重器使用方便,操作簡(jiǎn)單,可采用USB或者+5 V電源供電,移動(dòng)性能良好。該稱重器同時(shí)具備了稱重?cái)?shù)據(jù)的TFT液晶顯示、語(yǔ)音播報(bào)和手機(jī)APP實(shí)時(shí)顯示功能,具有一定的生活應(yīng)用價(jià)值。