国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于語音識別的智能垃圾分類系統(tǒng)設(shè)計

2021-05-20 01:46胡振山江振青呂海燕
科技視界 2021年10期
關(guān)鍵詞:舵機(jī)垃圾桶串口

胡振山 江振青 呂海燕

(臨沂大學(xué),山東 臨沂 276000)

0 前言

隨著城市的高速發(fā)展,生活水平和消費水平的提高,飲食行業(yè)的迅速發(fā)展,城市生活垃圾的產(chǎn)量不斷增加,同時垃圾的成分也越來越復(fù)雜。 垃圾產(chǎn)生的污染問題也日益嚴(yán)重。 垃圾在腐化過程中,產(chǎn)生氨、甲烷和硫化氫等有害氣體,形成惡臭,嚴(yán)重污染大氣。 所以, 垃圾的處理正日益成為困擾人們的嚴(yán)重問題。我們希望通過這個系統(tǒng)幫助人們正確地進(jìn)行垃圾分類、可回收物的細(xì)分,可以提高可回收物的利用率。

語音技術(shù)發(fā)展到今天,其精度尤其是中小詞匯量非特定人聲語音識別的精度已達(dá)98%。 隨著大規(guī)模集成電路的發(fā)展,復(fù)雜的語音識別系統(tǒng)也完全可以制成專用芯片,大量生產(chǎn)。 可以預(yù)測近五年到十年內(nèi),語音識別的應(yīng)用范圍將更加廣泛。 各種各樣的產(chǎn)品將出現(xiàn)在市場上[1]。

本文設(shè)計并制作了一個語音識別智能垃圾分類垃圾桶,可以根據(jù)用戶說出的垃圾名稱進(jìn)行智能垃圾分類的系統(tǒng)。

1 器件選取

本設(shè)計擬采用STM32 單片機(jī)作為主控芯片,結(jié)合LD3320 實現(xiàn)語音識別模塊智能識別垃圾種類。

采用STM32F013ZET6 芯片作為主控芯片, 該芯片屬于arm 內(nèi)核的一個版本, 比傳統(tǒng)的51 單片機(jī)高級。 程序都是采用模塊化編程,接口相對簡單,自身帶很多功能,工作速度也快。 該芯片采用的CPU(中央處理器)是 ARM 的 32 位 Cortex-M3,擁有片上 128 k 的閃存,還有20 k 的RAM(隨機(jī)存取存儲器)。并支持各種外設(shè),如定時器,ADC(模擬數(shù)字轉(zhuǎn)換器),SPI,USB,IIC 和 UART。 使得它在簡單的電路上就能執(zhí)行信號采集和數(shù)據(jù)濾波。

采用LD3320 實現(xiàn)語音識別功能,LD3320 是非特定人(不用針對指定人)語音識別芯片,即語音聲控芯片。 最多可以識別50 條預(yù)先內(nèi)置的指令。 LD3320 作為一款基于SI-ASR(非特定人語音識別)技術(shù)的語音識別/聲控芯片,集成了一系列與其功能相關(guān)的外部電路, 包括模擬數(shù)字轉(zhuǎn)換器 (ADC), 數(shù)字模擬轉(zhuǎn)換器(DAC)、麥克風(fēng)剪口和聲音輸出接口等,使得LD3320能夠在沒有任何外接輔助FLASH (閃存)、RAM 芯片的情況下直線語音識別/聲控/人機(jī)對話等功能。 且LD3320 在工作時,無須進(jìn)行預(yù)先的訓(xùn)練和錄音,語音識別準(zhǔn)確率達(dá)到了95 %,是一款優(yōu)秀的非特定性語音識別芯片[2]。

2 系統(tǒng)設(shè)計

2.1 整體方案設(shè)計

整個系統(tǒng)設(shè)計思路為系統(tǒng)上電后,語音識別模塊開始識別模式,在接收到命令關(guān)鍵詞后通過串口通信將數(shù)據(jù)發(fā)送到主控系統(tǒng)(STM32),主控系統(tǒng)接收到數(shù)據(jù)后根據(jù)不同的數(shù)據(jù)打開對應(yīng)的垃圾桶(舵機(jī))。 系統(tǒng)整體流程圖如圖1 所示。

圖1 系統(tǒng)整體流程

2.2 單片機(jī)程序設(shè)計

2.2.1 Keil5 軟件的簡介

Keil 是美國Keil Software 公司出品的51 系列兼容單片機(jī)C 語言軟件開發(fā)系統(tǒng)。 Keil 提供了包括C 編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境將這些部分組合到一起。 在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。 與匯編相比,C 語言在功能上、 結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。

2.2.2 數(shù)據(jù)通信

在本設(shè)計中,語音識別模塊通過STC11L08XE 單片機(jī)對LD3320 進(jìn)行數(shù)據(jù)采集, 通過程序?qū)⒆R別的結(jié)果轉(zhuǎn)換成16 進(jìn)制的數(shù)據(jù), 通過串口將其發(fā)送到STM32,STM32 通過分析接收的數(shù)據(jù)做出相應(yīng)的反應(yīng),具體表現(xiàn)為打開相應(yīng)的垃圾桶(用舵機(jī)模擬)。 通信使用3 根線完成,分別是地線、發(fā)送、接收。 由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。 其他線用于握手,但不是必需的。 串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。 對于兩個進(jìn)行通信的端口,這些參數(shù)必須匹配。

2.2.3 語音識別模塊的實現(xiàn)

LD3320 語音識別芯片采用的就是自動語音識別技術(shù)(ASR)技術(shù),通過麥克風(fēng)將語音輸入LD3320 芯片,在芯片內(nèi)部進(jìn)行頻譜分析并提取特征,達(dá)到語音識別的功能,同時LD3320 還可以通過關(guān)鍵詞列表進(jìn)行語音識別。 在此只需要把識別的關(guān)鍵詞語以字符串的形式傳送進(jìn)芯片, 即可以在下次識別中立即生效。 在 MCU (本文中選用語音識別模塊的MCU 是STC10L08XE 單片機(jī))的編程中,簡單地通過設(shè)置芯片的寄存器,把諸如“ni hao”這樣的識別關(guān)鍵詞語的內(nèi)容動態(tài)地傳入芯片中, 芯片就可以識別所設(shè)定的關(guān)鍵詞語了。 每個關(guān)鍵詞語可以是單字、詞組、短句或者任何的中文發(fā)音的組合。 基于LD3320 的語音識別系統(tǒng)可以隨著使用流程,在運行時動態(tài)地更改關(guān)鍵詞語列表的內(nèi)容,這樣可以用一個系統(tǒng)支持多種不同的場景,同時也不需要用戶做任何的錄音訓(xùn)練。 整體流程如圖2 所示。

圖2 語音識別的實現(xiàn)流程

2.2.4 程序開發(fā)

首先,確定輸入輸出端口(I/O 口)地址的分配,根據(jù)系統(tǒng)的輸入輸出的要求,分配I/O 地址,這里包括串口的I/O 口, 控制舵機(jī)所用的定時器為脈沖寬度調(diào)制(PWM)輸出口。

其次,確定程序結(jié)構(gòu),程序采用模塊化編程的設(shè)計方法,整個程序包括 main,usart,tim,LDChip 四個對象塊。 通過HAL 庫函數(shù)開發(fā),相對于寄存器的開發(fā)方式更加簡便,使程序大大簡化,降低了開發(fā)的難度。 整體程序運行流程框圖如圖3 所示。

圖3 系統(tǒng)運行流程

應(yīng)用模塊化編程的方法,使程序更加清晰,方便修改或者移植,在本設(shè)計中,需要對以下四個部分進(jìn)行設(shè)置:

(1)采用串口通信將主控STM32 和語音識別模塊進(jìn)行數(shù)據(jù)通信。 對于STM32 單片機(jī)的串口使用,首先進(jìn)行初始化,將STM32 和STC10L08XE 單片機(jī)的串口波特率都設(shè)置成9600,字長設(shè)置為8 位,設(shè)置一位停止位,不設(shè)置奇偶校驗位,將其進(jìn)行函數(shù)封裝,波特率可根據(jù)實際要求進(jìn)行修改。在本設(shè)計中,采用USART3和語音識別部分進(jìn)行數(shù)據(jù)通信,USART1 通過printf函數(shù)進(jìn)行輸出打印以方便監(jiān)控程序的運行情況。

(2)tim 定時器具有輸出 PWM 信號的功能, 采用舵機(jī)來模擬垃圾桶的開關(guān),舵機(jī)轉(zhuǎn)動的角度需要固定占空比的PWM 信號,高電平脈沖的時間0.5 ms,舵機(jī)轉(zhuǎn)到 0°,1ms 對應(yīng) 45°,1.5 ms 對 應(yīng) 90°,2 ms 對 應(yīng)135°,2.5 ms 對應(yīng) 180°,只能在 0.5~2.5 ms 調(diào)節(jié),轉(zhuǎn)動0°到180 °任意角度,只要控制PWM 波的高電平占空比就要可以達(dá)到自己想要的轉(zhuǎn)動角度。

控制垃圾桶打開只需將舵機(jī)轉(zhuǎn)動90°, 所以需要脈沖寬度為1.5 ms 的信號。 在此要對定時器的PWM功能進(jìn)行一個初始化,包括對分頻系數(shù),計數(shù)模式,自動裝載值,比較值,輸出比較極性進(jìn)行配置。 通用定時器可以同時產(chǎn)生多達(dá)4 路的PWM 輸出, 滿足同時驅(qū)動4 路舵機(jī)的要求, 所以需要使能相應(yīng)定時器時鐘,PWM 的輸出信號頻率是由自動重裝寄存器(ARR)的值決定,占空比由比較寄存器(CCR)的值決定。 由于PWM 輸出通道是對應(yīng)著STM32F1 芯片的I/O 口,所以也需要使能對應(yīng)的端口時鐘, 并將對應(yīng)I/O 口配置為復(fù)用輸出功能。

(3)LDChip 里的函數(shù)負(fù)責(zé)封裝語音識別的相關(guān)函數(shù),語音識別用初始化(包括通用初始化)→寫入識別列表→開始識別,并準(zhǔn)備好中斷響應(yīng)函數(shù),打開中斷允許位。 列表的規(guī)則是,每個識別條目對應(yīng)一個特定的編號(1 個字節(jié)),不同的識別條目的編號可以相同,而且不用連續(xù)。 本芯片最多支持50 個識別條目,每個識別條目是標(biāo)準(zhǔn)普通話的漢語拼音(小寫),每 2 個字(漢語拼音) 之間用一個空格間隔。 開發(fā)時配置讀取0xB2 寄存器的函數(shù), 如果在以后的自動語音識別技術(shù)(ASR)命令函數(shù)前不能夠讀取到正確 Idle 狀態(tài),說明芯片內(nèi)部可能出錯了。 經(jīng)拷機(jī)測試,當(dāng)使用的電源電壓/電流出現(xiàn)不穩(wěn)定有較大波動時,有小概率會出現(xiàn)這種情況。 出現(xiàn)這種情況時,復(fù)位LD3320 芯片,重新啟動設(shè)置芯片即可。

(4)main 函數(shù)作為本設(shè)計中的主程序, 在本函數(shù)中將串口,定時器PWM 部分進(jìn)行初始化,通過while函數(shù)使串口始終保持等待接收狀態(tài),同時對接收的數(shù)據(jù)進(jìn)行處理, 根據(jù)不同的數(shù)據(jù)對定時器各路PWM 信號的占空比進(jìn)行設(shè)置,達(dá)到打開對應(yīng)舵機(jī)的效果。

3 結(jié)果測試

系統(tǒng)程序的驗證,ST-LINK 仿真器的作用是用以實現(xiàn)硬件仿真的硬件。 仿真器可以實現(xiàn)替代單片機(jī)對程序的運行進(jìn)行控制,例如單步,全速,查看資源斷點等。 程序完成后,通過硬件對整個程序分步驗證,可以發(fā)現(xiàn)程序中錯誤的地方以及不完善的地方, 加以改進(jìn)。 通過語音識別模塊的程序可知,由于要把垃圾分類分四類,所以根據(jù)設(shè)置的發(fā)送數(shù)據(jù)可知,當(dāng)說出的垃圾為有害垃圾時,STM32 接收的數(shù)據(jù)為0x01, 會打開1 號垃圾桶,當(dāng)說出其他垃圾名稱時,也會發(fā)送不同的數(shù)據(jù),打開對應(yīng)的垃圾桶,見表1。 后通過串口監(jiān)控發(fā)現(xiàn),功能正常,如圖4 所示。

表1 不同類型垃圾所發(fā)送的數(shù)據(jù)

圖4 串口監(jiān)控

4 結(jié)論

本系統(tǒng)設(shè)計了一款通過語音識別進(jìn)行垃圾分類的輔助性垃圾桶,可以幫助人們更方便地進(jìn)行垃圾分類,更好地進(jìn)行垃圾回收處理。 通過本設(shè)計可以看出,語音識別技術(shù)的確可以更加方便地進(jìn)行垃圾分類處理,在今后的生活中必將發(fā)揮越來越大的功能,語音識別技術(shù)就是讓機(jī)器通過識別和理解過程把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的技術(shù)。 通過語音識別進(jìn)行垃圾分類,將大大提高普通居民垃圾分類的效率,提高居民的積極性,大大促進(jìn)國家垃圾分類政策的落實。

猜你喜歡
舵機(jī)垃圾桶串口
投進(jìn)垃圾桶的信
投進(jìn)垃圾桶的信
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
含齒隙彈載舵機(jī)的全局反步模糊自適應(yīng)控制
基于dsPIC單片機(jī)的飛艇舵機(jī)控制實現(xiàn)
基于高速同步485總線通信的多通道舵機(jī)控制器設(shè)計
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實時無線通信
基于云模型的舵機(jī)同步控制
基于并行控制的FPGA多串口拓展實現(xiàn)