金琦淳,李俊斌,袁明新,王志博,張金錚
(1.江蘇科技大學機電與動力工程學院,江蘇 蘇州 215600;2.無錫城市職業技術學院物聯網工程學院,江蘇 無錫 214153)
隨著科學技術的不斷發展與進步,服務小車逐步應用到人們的日常生活中,代替人完成特定的家務,幫助行動不便的老人或殘疾人實現生活自理[1-2]。為進一步提高服務小車的人機交互性能,語音識別技術被引入到服務小車中。當前,國內外對智能設備語音控制系統的研發主要集中在無線語音控制系統的開發。國內有楊瑋等設計的基于ZigBee技術的溫室無線智能控制終端[3],湯麗麗等設計的基于Android手機藍牙語音控制的智能小車[4]。國外有Baris Yuksekkaya等人設計的基于全球移動通信系統(global system formobile communication,GSM)技術的家庭無線語音控制系統[5],以及Tony Ayres等人設計的基于WiFi控制的語音識別機器人[6]。上述方案均實現了無線語音控制功能。但在面對電磁波干擾的復雜環境時,單一的無線控制方式在可靠性上存在不足。
為了改進上述缺點,本文設計了具有多種無線控制方式的語音服務小車。該小車的語音識別系統與車載系統相互獨立,采用紅外或無線電通信來傳輸語音指令;在面對復雜環境時,可靈活選擇通信方式,提高了無線語音控制的可靠性,擴大了語音控制的適用范圍。
服務小車由無線遙控系統和車載驅動系統構成,系統方案如圖1所示。

圖1 系統方案圖
無線遙控系統利用語音識別模塊采集并識別語音指令,經單片機處理后通過紅外或無線電發射模塊發送;車載驅動系統利用紅外或無線電接收模塊接收無線信號,經單片機處理后送入電機驅動模塊和機械手(舵機)驅動模塊,控制小車的車輪和機械手模塊完成相應動作[7]。
服務小車的硬件電路由無線遙控系統硬件電路和車載驅動系統硬件電路組成。無線遙控系統和車載驅動系統的主控芯片均采用IAP15F2K61S2單片機。其優點在于內部集成可編程計數器陣列模塊,功耗低、電路簡單。無線遙控系統硬件電路包含如下模組:單片機系統、語音識別模塊、紅外發射模塊、無線電發射模塊、電源電路。無線遙控系統電路如圖2所示。

圖2 無線遙控系統電路圖
車載驅動系統硬件電路包含如下模組:單片機系統、電機驅動模塊、機械手(舵機)驅動模塊、紅外接收模塊、無線電接收模塊、機械手模塊和電源電路。車載驅動系統電路如圖3所示。

圖3 車載驅動系統電路圖
2.1.1 語音識別模塊
語音識別模塊采用LD3320語音芯片,利用麥克風采集聲音信號,結合ASR(非特定人語音識別技術)識別語音指令,適用于不同音色下各種語音指令的識別。
LD3320的語音識別過程主要包括語音芯片的初始化和語音指令的識別,其工作原理如圖4所示。

圖4 LD3320語音識別工作原理圖
語音芯片的初始化,是利用模塊的板載單片機將所有需要識別的語音指令逐條以拼音串的形式輸入到語音芯片中,生成對應的語音關鍵詞,并構建關鍵詞列表。語音指令的識別是通過麥克風采集聲音信號,并將其轉化為電信號輸入到語音芯片中進行預處理;輸入的電信號首先經A/D轉換為數字信號,再通過端點檢測濾除信號中的靜音和非說話聲,得到有效信號的起止,并對其進行數據分幀處理,從而將有效信號拆分為相互關聯的數據幀[8]。經上述處理后,對數據幀進行特征提取,利用梅爾頻率倒譜系數法提取數據幀中的聲學特征,得到語音關鍵詞送入語音識別器中,并按照維特比算法與關鍵詞列表中的所有語音關鍵詞一一進行相似度匹配[9]。匹配值最高的關鍵詞將作為識別結果,通過串口輸出給主控單片機。
2.1.2 紅外發射模塊
紅外發射模塊采用A73B紅外發射模塊,利用單片機將需要傳輸的數據進行編碼和調制后,激勵紅外發光二極管發出一連串波長為950 nm的近紅外光,以實現控制信息傳輸。
紅外數據的常用編碼有兩種:NEC標準和PHILIPS標準。本系統采用的是NEC標準。該標準規定:一條完整數據鏈應包括1位引導碼、8位地址碼、8位地址碼反碼、8位數據碼以及8位數據碼反碼。其中,引導碼由9 ms高電平和4.5 ms低電平組成。此外,為了區分數據鏈中的數據“0”和“1”,需要對數據鏈進行脈沖位置調制。其中:數據“1”由0.56 ms高電平和1.69 ms低電平組成,數據“0”由0.56 ms高電平和0.56 ms低電平組成[10]。數據鏈結構如圖5所示。

圖5 數據鏈結構圖
為了提高紅外傳輸信號的抗干擾性,需要將PPM調制后的信號與38 kHz載波信號進行二次調制。紅外信號調制過程如圖6所示。

圖6 紅外信號調制過程圖
原始信號和38 kHz載波信號經單片機調制處理后形成特定脈沖串,利用單片機I/O口的輸出功能,直接激勵紅外發光二極管發出紅外光,實現信號傳輸。
2.1.3 無線電發射模塊
無線電發射模塊采用nRF24L01無線收發芯片。該芯片工作于2.4 GHz的ISM頻段,內置增強型突發模式控制器[11],可實現點對點或多點間的無線通信;遵循SPI通信協議,利用單片機的SPI接口可以實現對芯片的數據操作和工作模式設置。
發送數據時,首先利用單片機的SPI接口將nRF24L01設置為發送模式;接著把接收地址信息和所需發送的數據信息寫入芯片中;芯片依據輸入的數據信息自動生成前導字符和CRC校驗碼[12],并與輸入的數據信息組合成一個數據包;數據包經芯片轉化處理后,通過印制天線發射出去,使芯片的工作模式自動切換為接收模式,等待無線電接收模塊發送應答信號。如果接收到應答信號,判定本次通信有效;反之則自動重發數據包,以確保數據傳輸的可靠性。無線信號發送原理如圖7所示。

圖7 無線電信號發送原理圖
2.1.4 電源電路
無線遙控系統的電源電路由L7805穩壓芯片、AMS1117穩壓芯片、0.1 μF瓷片電容、0.33 μF和470 μF電解電容組成。利用穩壓芯片降壓,可將7~35 V的輸入電壓先后轉換為5 V和3.3 V的直流電壓,并結合電容濾波,輸出無高頻干擾和高穩定性的直流電流。
L7805的內部電路為串聯反饋式穩壓電路[11],其結構如圖8所示。該電路的主回路由工作于線性狀態的調整管T與負載電阻RL相串聯構成。當輸入電壓Ui增大時,輸出電壓Uo增大,隨之通過取樣電路(電阻R1和R2分壓)得到的反饋電壓UF也增大。反饋電壓UF與基準電壓UREF相比較,其差值經比較放大器處理后使調整管T的基極電壓UB和集電極電流IC減少,從而使其C-E極間的電壓UCE增大。根據基爾霍夫電壓定律,Uo將減小,進而實現電壓穩定輸出。當Ui減小時,過程時相反。AMS1117的工作原理類同。

圖8 串聯反饋式穩壓電路圖
2.2.1 電機驅動模塊
電機驅動模塊選用L298N驅動芯片。該芯片適用于驅動兩相和四相電機。其內含兩個H橋的高電壓大電流雙全橋式驅動器,支持TTL邏輯電平控制。車載驅動系統集成了兩塊L298N,分別用來驅動車輪電機和升降平臺電機。
H橋驅動電路及工作時序如圖9所示。

圖9 H橋驅動電路及工作時序圖
H橋驅動器的電路組成包括4個三極管、4個與門、2個非門、1個使能端ENA和2個控制端IN1、IN2。
當使能端為低電平時,控制端的輸入信號無效,4個與門均輸出低電平,所有三極管均處于截止狀態,電機停轉。當使能端為高電平時,4個與門的輸出電平受輸入信號控制:當IN1為低電平,IN2為高電平時,三極管Q1和Q3飽和導通,Q2和Q4截止,電流從電機的a端流向b端,電機正轉;反之,電機反轉。而當IN1與IN2電平相同時,電機停轉。
2.2.2 機械手(舵機)驅動模塊
機械手(舵機)驅動模塊采用車載單片機內部搭載的主成分分析(principal component analysis,PCA)模塊,通過設置相應寄存器、定時器和比較器的值,使單片機的CCP1端口輸出周期和占空比都可控的8位PWM波。
在8位脈寬調節模式時,PCA模塊工作原理如圖10所示。

圖10 PCA模塊工作原理圖
選擇定時器0(8位自動重裝模式)作為PCA模塊的時鐘源。每當定時器0的計數值溢出時,計數器(16位循環計數模式)的低八位數值CL就加1,同時計數器中的值[0,CL]和捕獲寄存器B中的值[EPCnL,CCAPnL]被輸入到9位比較器中進行比較。當[0,CL]<[EPCnL,CCAPnL]時,9位比較器輸出低電平;反之,輸出高電平[12]。此外,當CL的計數值由FFH變為00H溢出時,捕獲寄存器A中的預設初值[EPCnH,CCAPnH]會自動裝載到捕獲寄存器B中。因此,通過改變捕獲寄存器A中的值,就可調整輸出PWM波的占空比,從而實現對機械手舵機的控制[13]。
2.2.3 紅外接收模塊
紅外信號接收過程如圖11所示。

圖11 紅外信號接收過程圖
紅外接收模塊采用1838T紅外接收頭,利用接收頭內部的集成電路實現紅外信號的采集和還原,且還原后的信號與原信號波形相反。
1838T紅外接收頭內部主要包括紅外接收二極管、放大器、限幅器、帶通濾波器、解調器、積分器和比較器[12-15]。首先,紅外接收二極管將接收到的紅外信號轉變為電信號,送到放大器和限幅器中處理,轉換成幅值固定的電脈沖信號;然后,利用帶通濾波器,將頻率不在30~60 kHz范圍內的信號濾除。濾除后的信號經解調器和積分器處理后輸入到比較器中,以高低電平的形式輸出給單片機[16]。單片機根據信號中高電平的持續時間來區分數據“0”和數據“1”,實現紅外信號的接收和解碼。
2.2.4 無線電接收模塊
無線電接收模塊同樣采用nRF24L01無線收發芯片,通過單片機的SPI端口,將芯片配置為接收模式。利用印制天線接收無線電信號并輸送給芯片處理,由芯片內部硬件電路解析地址信息和數據信息,自動去除信號中的前導字符和CRC校驗碼,并判斷數據的有效性。當接收到有效數據時,芯片自動切換為發送模式,并向無線電發射模塊發送應答信號,以表明數據接收完成;反之,則繼續接收無線電信號。
2.2.5 機械手模塊
機械手模塊結構如圖12所示。

圖12 機械手模塊結構圖
機械手模塊主要由機械手和升降平臺組成。其中,機械手由移動平臺、機械臂和舵機組成,升降平臺由固定支架、減速電機、聯軸器、絲杠、螺母和導軌組成。
車載驅動系統收到閉合和松開的語音指令后,通過單片機向舵機輸入周期固定、占空比可控的電脈沖信號,以控制舵機的輸出軸轉動相應角度;同時,將動力傳遞給機械臂上的齒輪運動副,實現機械手的抓取和松開動作。車載驅動系統收到上升或下降的語音指令后,由電機驅動模塊控制減速電機轉動,并通過聯軸器帶動絲杠轉動。利用絲杠絲母運動副,將絲杠的圓周運動轉變為移動平臺的直線運動;同時,憑借其自鎖性能,可有效防止機械手在抓取重物時因重力作用而下墜,從而實現機械手的穩定上升和下降。
服務小車的系統軟件設計由無線遙控系統軟件設計和車載驅動系統軟件設計兩部分組成。所有程序開發均在Keil uVision5軟件上進行,利用C語言編程,模塊化處理各功能子程序,程序結構清晰、邏輯性強。
無線遙控系統軟件流程如圖13所示。無線遙控系統上電復位后,LD3320語音芯片開始采集并識別語音指令,通過串口輸出給單片機。單片機對指令內容進行解析判斷后,按照NEC協議編碼指令,并對其進行PPM調制和二次調制,產生相應脈沖串,以激勵A73B紅外發射模塊發出紅外信號;或利用單片機的SPI端口將數據發送給nRF24L01無線收發芯片,通過芯片內置電路轉化處理,控制印制天線發出2.4 GHz無線電波,完成指令發送。

圖13 無線遙控系統軟件流程圖
車載驅動系統上電復位后,1838T紅外接收頭開始接收紅外指令或nRF24L01無線電收發芯片開始接收無線電指令。當接收到指令后,對指令進行解碼,并發送給單片機進行判斷處理,由電機驅動模塊和機械手(舵機)驅動模塊控制服務小車的車輪,使升降平臺和機械手完成相應動作。
為了測試服務小車無線語音識別的可靠性和控制范圍,分別搭建了具有紅外光照干擾(100 W白熾燈對小車整體持續照射)和電磁波干擾(2.4 GHz WiFi通信網絡)的室內空曠環境。室內噪聲符合國家標準(60 dB與40 dB)。采用規定的語音指令組,以及正常的語音播報音量,在不同的測試距離下,分別對服務小車紅外語音控制和無線電語音控制的成功率進行測試。測試次數為100次/組。
紅外與無線電語音控制性能測試如表1所示。

表1 紅外與無線電語音控制性能測試表
測試結果分析:室內噪聲60 dB的環境中,在電磁波和紅外光照干擾下,分別測量紅外與無線電語音控制成功率,其均維持在95%以上;室內噪聲40 dB的環境中,成功率達100%。這表明服務小車的紅外與無線電語音控制系統在復雜環境下具有較高的可靠性,適用于家用場合。當測試距離在0~12 m范圍內逐漸增大時,紅外與無線電語音控制的成功率基本保持不變,表明紅外和無線電語音控制的范圍較廣。總體而言,在一定干擾下,服務小車的紅外與無線電語音控制系統性能穩定可靠。
本文對現有服務小車的語音識別系統進行了改進,以紅外、無線電通信技術和語音識別技術為基礎,構建了紅外與無線電語音控制系統,實現了服務小車的無線語音控制。實際測試表明,紅外與無線電語音控制系統在紅外光照和電磁波干擾下都有較高的成功率,系統工作可靠。該研究提高了服務小車對環境的適應性。