王志 雷達 周仔明 任艷 胥薇
摘要:介紹了一種基于Arduino語音控制實現(xiàn)室內垃圾分類的裝置,以Arduino為主控制系統(tǒng),結合了傳感器技術,語音識別技術,語音控制技術實現(xiàn)了對室內有限空間內垃圾的自主分類。該系統(tǒng)具有無線控制功能,低成本,操作方便等特點。適宜對中等家庭大力推廣使用,無使用限制。
關鍵詞:Arduino;非特定人聲語音識別;智能控制
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)05-0081-02
開放科學(資源服務)標識碼(OSID):
目前,人們的生活正朝著便捷化、智能化方向發(fā)展。而垃圾分類方面的問題一直沒有好的辦法解決。據資料顯示,國內人均每日產生的垃圾在1.2公斤左右,且垃圾總量在持續(xù)增長,同時垃圾的多樣性和國民普遍存在垃圾分類意識的淺薄導致了垃圾分類政策的難以推廣。這就直接引起了因分類不明確而產生的環(huán)境污染、資源浪費等一系列問題。按目前趨勢,國家大力推行垃圾分類政策,例如上海更是率先響應國家垃圾分類政策的號召,這一行為引起了社會上的廣泛熱議。實行垃圾分類后,既可將有害垃圾及時處理,防止再次生污染,也可變廢為寶、節(jié)省資源,對改善環(huán)境大有裨益。當今世界上在一些公民文明程度較高的地區(qū),公民對于垃圾分類這一措施更是已經變成了習慣。這不是一場對于廣大公民發(fā)出的一場“運動”,而是對公民生活方式的改變,更是如今在經濟,科技,文化等高質量發(fā)展階段走向更高的現(xiàn)代文明社會的標志。然而基于Ardu-mo語音控制實現(xiàn)室內垃圾分類系統(tǒng)的設計可以幫助居民更好地實現(xiàn)垃圾自動分類,從而顯著提高資源的有效利用率,避免環(huán)境污染。
1 語音識別技術
語音識別技術就是非特定人的語音通過機器的識別,理解轉換成相應的字符串或者指令。具體的實現(xiàn)步驟包括:采取語音樣本,確定語音輸入的起始點,計算語音頻譜,分解輸入信號,關鍵詞識別,對輸入信號做出反應。目前語音識別的主流算法有隱馬爾可夫法(HMM):HMM是對語音信號的時間序列結構建立統(tǒng)計模型,將之看作一個數學上的雙重隨機隨機過程,而人語言的本身也就是一個雙重隨機過程。另一個為動態(tài)時間規(guī)整(DTW):利用語音識別的端點監(jiān)測,把接收到的語音信號進行升長或縮短直到與參考模型一致。在這一過程中,未知指令的時間軸要不均勻地扭曲或彎折,以達到其特征與模型特征對正。
2 硬件系統(tǒng)的設計及搭建
基于Arduino語音控制實現(xiàn)室內垃圾分類系統(tǒng)設計,其工作原理是:非特定的人發(fā)出語音經過LD3320語音識別模塊轉化成特定字符串再通過串口發(fā)送到Arduino開發(fā)板。Arduino開發(fā)板接收到語音識別的模塊傳來的預先設置好的指令后發(fā)送到指定舵機開發(fā)板,實現(xiàn)舵機的轉動。舵機根據傳來的指令的不同來實現(xiàn)室內垃圾的自主分類。圖1為系統(tǒng)結構框圖。
2.1 Arduino開發(fā)板
Arduino存儲空間也就是主控芯片所集成的存儲空間。其中使用32KB Flash.
2KB的SRAM,IKB EEPROM電可擦除可編程只讀存儲器。
USB接口:用與電腦連接,與電腦中的ArduinoIDE銜接用于上傳代碼,同時給該板卡供電。Arduino電源:采取DC電源供電一般為7-12V或通過5V或VIN端口供電。但是5V必須是5v供電而VIN可用7-12V供電。ArduinoUNO擁有14個數字輸入/輸出管腳,6個模擬輸入。
當然也可以由程序自己定義為輸入或者輸出;其中2,3端口可以輸入外部中斷信號,3,5,6,9,10,11六個管腳可提供8位(0-255)的PWM輸出;Reset復位端口:當其按下后可以使可以使此時連接的端口接到低電平,從而使Arduino復位。
2.2 語音識別模塊
本產品采取LD3320語音識別模塊。該模塊是ICRoute公司生產的一款非特定語音識別芯片,它內置有非特定語音識別的DSP(Digital Signal Processing)算法。GND端用于接電源負極,vcc端接電源正極,ICR是識別模塊狀態(tài)顯示。當收到語音是該處有綠燈閃爍,TXD用于串口的數據發(fā)送,RXD用于數據的接收。MIP,MIN是MIC的電源正負極,不同的接法MIC的識別率不同。同時與電腦上的LP—COMM串口調試工具配合可動態(tài)添加50條指令。LD3320識別模塊無須外接其他設備,單一設備可完成語音識別。
2.3 舵機驅動板及其工作原理
常見的舵機一般有三根引線:黑色或棕色為地線,紅色為電源線,黃色為信號線。由MCU輸出PWM精度(0.5us)。常見的舵機由外殼,內部驅動馬達,電路板,減速器等組成。其丁作原理:Arduino系統(tǒng)發(fā)送信號給舵機,由舵機內部的電路板芯片驅動馬達開始轉動,透過減速馬達將動力傳至擺臂,同時由位置檢測器傳送訊號,判斷是否已經到達指定位置。
3 系統(tǒng)的程序設計
該系統(tǒng)軟件的設計是基于Arduino IDE開發(fā)環(huán)境。該環(huán)境底層使用C/C++語言開發(fā)。當程序員需要某一個模塊驅動程序時,直接在IDE庫函數中調用該模塊的頭文件加載到已有的文件中。在本系統(tǒng)設計采用頭文件,專門驅動舵機的轉動。圖2為系統(tǒng)的主流程圖。當電源接通以后,機械臂要復位操作,如果語音識別模塊識別到語音,該模塊上面的綠燈閃爍,再判斷內容是不是原先設定的指令,再執(zhí)行相應操作,否則要下一次識別。
部分程序如下:
#include //力Ⅱ載舵機庫函數
Servo myservol;//設置舵機1號
int powerl=30;//舵它機的角度變化量
int a=105;//舵機的初始位置
void setup0{
,/put your setup code here, to run once:
Serial.begin(9600);//初始化波特率9600
myservol.attach(9);//將9號端口為舵機信號輸出
myservol.write(90);
void loop0(
,/put your main code here, to run repeatedly:
if (Serial.availableOV/串口的有效數據
(
int val= Serial.read0;//讀取串口的有效數據10進制數
Serial.println(vaD;
delay(10);
switch (valy/選擇舵機的號位
{
case 0:
a=a - powerl;//舵機轉動的角度的變化
if(a>30)
{
myservol.write(a);//實現(xiàn)打開垃圾桶蓋
)
else
myservol.write(a=a+powerl);
break;
)
4 測試與結論
硬件設備連接成功,將USB轉TTL接口與LD3320語音識別模塊連接在PC端。通過LP-COMM串口調試將準備好的語音轉換成相應的指令。再將語音識別模塊與Arduino板卡連接,當語音喊出對應垃圾名稱時,該種類的垃圾桶蓋將會打開。通過設定的一定的時間后,桶蓋再自動關閉。例如當使用者喊出“香蕉皮”時,相對應的濕垃圾桶蓋白動打開。使用者喊出“電池”時相對應的有害垃圾的桶蓋自動打開。通過這樣的識別做到了自主的垃圾分類。減少了人們對垃圾分類概念的含混。其相對應也有一定的缺點:LD3320語音識別模塊的語音識別最佳距離是30CM-50CM之間。在串口傳輸數據的過程中由于外界的噪聲十擾,接收到的數據可能不是指定的指令。但這不影響垃圾桶對垃圾的自主分類。
經過測試,垃圾桶反應正常,一切按預期進行。該產品具有靈敏度高,價格相對低廉,操作較簡單等優(yōu)點,在以后的社會發(fā)展中具有廣泛的應用前景。
參考文獻:
[1]何湘智.語音識別的研究與發(fā)展[J].計算機與現(xiàn)代化,2002(3):3-6.
[2]薛世君.垃圾分類仍需“三大加強”[N].河南日報,2019-11-26(5).
[3]王偉.基于Arduino平臺語音控制仿人類機械頭設計[J].電子技術與軟件工程,2018(12):28-29.
[4]趙璐,吳蒙.基于Arduino的語音識別與控制系統(tǒng)實現(xiàn)[J].微型機與應用,2015,34(21):55-57,60.
[5]李婭菲.基于Arduino的家用語音機器人控制系統(tǒng)設計[J].辦公自動化,2017,22(19):33-35.
[6]李永華,王思野.Arduino案例實戰(zhàn).卷Ⅱ[M].北京:清華大學出版社,2017: 226-236.
【通聯(lián)編輯:光文玲】
收稿日期:2019 -11-10
作者簡介:胥薇,通訊作者。