魏桐 韓劍輝 蔣蔣薇
摘 要:文章設計了以STM32為微處理器的智能家居互動機器人,該設計以語音識別技術、語音合成技術、傳感器技術、無線數據傳輸技術等為基礎,完成了攝像頭數據采集,數據傳輸,控制臺與各控制終端通信,電機控制,實現了語音人機交互、機器人動作控制、室內環(huán)境監(jiān)測、家用電器控制。完成了智能家居以及機器人互動等功能,并且在現階段,智能家居機器人在市面上較少,有廣泛的應用前景。
關鍵詞:智能家居;機器人;STM32
引言
隨著計算機科學技術與電子技術的高速發(fā)展以及生活水平的提高,智能家居漸漸走進千家萬戶,智能燈,掃地機器人,智能電視等等以家居環(huán)境為平臺,融合了通信,網絡,計算機,自動控制等技術的產品層出不窮,在影視作品《超能陸戰(zhàn)隊》中,大白的形象讓無數人魂牽夢縈,其實它的本質就是一個智能的機器人。本設計以ARM Cortex-M3架構的STM32系列芯片為控制核心,以語音識別、合成技術,2.4Ghz通信技術,自動控制技術為基礎,用藍牙、NRF24L01等將各部分串聯(lián)在一起,形成以機器人為中心的智能家居控制網絡,用戶可以與機器人進行對話或者發(fā)出指令,機器人會對發(fā)出的指令進行解析,并產生反饋,例如:控制家用電器,播放音樂等,除此之外,用戶可以遠程觀看本地實時上傳的室內圖片,可以查看室內的環(huán)境狀況,例如溫濕度,空氣情況等,可以控制機器人在室內行走,當用戶不在室內時,如果有陌生人進入室內,機器人會進行警報,通知用戶。
1 硬件組成
1.1 機器人主體
建立智能家居機器人系統(tǒng)關鍵是要穩(wěn)定可靠,帶負載能力很注意,電源部分、驅動部分是關鍵,采用航模電池鋰電30C 5200MA 11.1v和10A雙路大功率H橋電機驅動模塊,具有強勁剎車功能。為了保證機器人的穩(wěn)定性,底盤采用小型坦克連履帶模型,該模型結構穩(wěn)定,載重能力強,可以穩(wěn)定住底盤上的其他傳感器以及模塊。
1.2 機器人核心
機器人主要微處理器采用ARM Cortex-M3架構的STM32F103ZET6處理器,該處理器基于32位的精簡指令集內核,最高主頻可達72Mhz,內置512KB Flash和64KB SRAM,處理器外部引出16*8組IO口,其中包含3組SPI接口,2組IIC接口,5組串口,3個1Mhz 12位ADC,多組定時器,資源豐富極為豐富。該處理器搭載在一塊德飛萊核心板上,核心板引出了所有的IO口,并擴展出JTAG接口。
在核心底板之上,是我們制作的一塊傳感器擴展板,該擴展板將啟動選項由原來底板上的跳線改為撥碼開關式,另外,擴展板上除了引出所有的原核心板所有引腳外,還將本系統(tǒng)需要使用的傳感器接口一并引出,其中有:兩路SPI總線接口,兩路IIC總線接口,兩路USART接口,還擴展出一路攝像頭SCCB接口以及并行總線接口,該擴展板支持外部供電,由兩片AMS1117提供傳感器需要的電源,防止由于傳感器過多導致的系統(tǒng)供電不足。
除了機器人主體上搭載的微處理器外,為了配合智能家居的其他實現,本系統(tǒng)還搭載了STC公司生產的增強型8051 1T單片機:IAP15F2K61S2,速度比普通8051單片機快8-12倍,內置61KB Flash,2KSRAM,3路PWM,1組SPI接口,2組可重定向UART,內置高速晶振和仿真器,可以直接進行仿真。
1.3 語音模塊XFS5152CE
是一款高集成度的語音合成芯片,可實現中文、英文語音合成;并集成了語音編碼、解碼功能,可支持用戶進行錄音和播放。
YS-V0.7是一款以LD3320芯片為基礎的語音識別模塊,模塊上除了一塊LD3320以外,還搭載了片STC11L08XE單片機,與LD3320配合實現語音識別,可以減少主處理器的資源損耗。
1.4 攝像頭OV2640
OV2640具有體積小、工作電壓低、兼容I2C總線接口等特點。通過SCCB總線控制,支持RAWRGB、RGB(RGB4:2:2、RGB565/555/444)、YUV(4:2:2)和YCBCR(4:2:2)輸出格式,可以輸出整幀、二次轉換分辨率、取特定區(qū)域等方式的各種分辨的8位或10位的圖像幀數據,支持以jpeg格式輸出。
2 智能家居機器人的設計與實現
該智能家居系統(tǒng)由機器人主體、輔助控制終端、遠程控制臺組成。以機器人本體微處理器為核心,以語音識別、無線通信、以及傳感器為基礎架構了一個簡單的室內智能家居網絡,機器人本體設計成可活動的穩(wěn)定性極高的履帶式小車,機體上配有溫濕度等傳感器,配有攝像頭,人體紅外感應模塊,配有語音識別與語音合成模塊,通過NRF24L01與放置在固定位置的輔助終端通信,完成室內家用電器的控制,例如開關燈,空調,電視的切換頻道,音量控制等,通過WIFI模塊連接到遠程服務器,上傳室內數據,實時圖片,實現遠程監(jiān)控與控制。
3 軟件設計
該設計以STM32為核心,軟件編譯環(huán)境為Keil4,使用C語言編寫程序,軟件部分可以分為以下幾個底層初始化程序、系統(tǒng)主程序、攝像模塊子程序、傳感器子程序、語音子程序組成;數據采集上傳定時中斷處理伺服中斷開啟開機循環(huán)各功能模塊初始化開始系統(tǒng)時鐘、中斷分組、I/O口初始化操作。
3.1 微處理器初始化
微處理器是整個系統(tǒng)的心臟,所以它的初始化極為重要:
(1)初始化中斷分組,初始化時鐘NVIC_Configuration();,SystemInit();。
(2)一個嵌入式系統(tǒng)離不了延時,所以初始化時鐘之后,需要初始化系統(tǒng)滴答時鐘,然后初化延時函數:delay_init(72);。
(3)初始化各接口:SPI,USART,IIC。
(4)初始化定時器,中斷。初始化各傳感器、模塊。
(5)進入死循環(huán)等待模塊響應。
3.2 攝像頭程序設計,采用JPEG方式輸出
(1)初始化。初始化IIC接口,然后按順序配置OV2640寄存器,首先是配置分辨率,然后配置成YUV輸出,最后配置為JPEG輸出。然后初始化中斷。
(2)中斷數據采集。首先在EXTI2里等待場同步信號VSYNC上升沿中斷,當中斷來臨時,開始通過數據線采集數據,同時開啟EXTI3中斷,等待PCLK上升沿來臨,當上升沿來臨時,關閉EXTI中斷,判斷HREF是否為高,如果為高,則開始上傳圖片數據。
3.3 語音模塊編程
(1)初始化系統(tǒng)配置。由于語音模塊上搭載了一片單片機,所以初始化主要完成復位,時鐘初始化,模式選擇,FIFO等。
(2)初始化語音識別列表。該識別芯片支持50條自定義識別條目,每個條目由漢語拼音以及對應的編號組成,編號取值范圍為00H~FFH。
(3)識別。按手冊設置相關寄存器,芯片ADC輸入為咪頭輸入,輸入增益可調,取值范圍為00H-70H,設定值過大會導致識別不準確,設定值太小會導致系統(tǒng)無法識別。
(4)中斷。咪頭采集到區(qū)別于環(huán)境噪音的人聲時,會產生中斷,中斷程序會根據模塊中BA和C5寄存器的值找出,最佳的識別條目。
(5)處理。單片機根據處理出的數據來判斷,是否通知主處理器,還是合成語音。
4 結束語
文章設計的機器人采用ARM STM32微處理器作為控制核心,履帶式小車作為機器人載體,該系統(tǒng)運用無線技術、網絡、攝像頭以及傳感器,實現了室內環(huán)境監(jiān)測,利用語音識別與合成技術,完成了人機交互功能,實現了機器人的簡單基本功能和智能家居的功能。因此, 該系統(tǒng)設計在實際應用中具有一定的借鑒意義。