西北民族大學(xué) 楊 萍 趙張燕 撒 靈 喬意凡 鄧小燕 張心歌
基于嵌入式Linux的智能家居機(jī)器人
西北民族大學(xué) 楊 萍 趙張燕 撒 靈 喬意凡 鄧小燕 張心歌
針對(duì)智能家居環(huán)境的需求,提出了基于嵌入式 Linux 的智能家居系統(tǒng)的設(shè)計(jì)方案。本系統(tǒng)由語(yǔ)音機(jī)器人和智能家居兩部分組成,設(shè)計(jì)上語(yǔ)音機(jī)器人采用基于嵌入式Linux的芯片作為主控制器,智能家居采用低功耗、穩(wěn)定性高的芯片作為控制器,整個(gè)系統(tǒng)綜合藍(lán)牙技術(shù)、網(wǎng)絡(luò)技術(shù)以及傳感器技術(shù)綜合實(shí)現(xiàn),最終實(shí)現(xiàn)通過(guò)語(yǔ)音機(jī)器人識(shí)別用戶(hù)的語(yǔ)音命令,實(shí)現(xiàn)了人們多年夢(mèng)寐以求的“芝麻開(kāi)門(mén)”的夢(mèng)想。
智能家居;嵌入式;Linux;藍(lán)牙技術(shù)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,人與機(jī)器之間的交互越來(lái)越廣泛和深入。交流時(shí)由于操作數(shù)據(jù)的頻繁交互,人們?cè)絹?lái)越受到鼠標(biāo)和鍵盤(pán)的束縛。在這種情況下,如何讓計(jì)算機(jī)智能化地與人進(jìn)行通信,使人機(jī)交互更加自然、方便和快捷成為現(xiàn)代計(jì)算機(jī)科學(xué)的重要研究課題之一。語(yǔ)言是人類(lèi)獲取信息最重要、最有效和最便捷的交流方式。如果計(jì)算機(jī)能夠聽(tīng)懂人類(lèi)語(yǔ)言,能夠表述人類(lèi)語(yǔ)言,那么就不需要鼠標(biāo)鍵盤(pán),不同語(yǔ)言的人們交流也就會(huì)更容易。這個(gè)愿望實(shí)現(xiàn)的技術(shù)基礎(chǔ)就是語(yǔ)音識(shí)別和理解。
本系統(tǒng)設(shè)計(jì)的思想是通過(guò)智能機(jī)器人控制家庭中的智能家居設(shè)備,系統(tǒng)將基于現(xiàn)有的語(yǔ)音識(shí)別合成技術(shù),讓語(yǔ)音機(jī)器人在智能家居控制中扮演智能管家的角色,設(shè)計(jì)實(shí)現(xiàn)一套智能家居機(jī)器人系統(tǒng),利用語(yǔ)音技術(shù),使用戶(hù)在不用操作鼠標(biāo)鍵盤(pán)等傳統(tǒng)方式上,實(shí)現(xiàn)智能家居的控制。
1.2.1 語(yǔ)音機(jī)器人的設(shè)計(jì)
語(yǔ)音機(jī)器人采用類(lèi)人的設(shè)計(jì)方法,具有手臂、頭等基本的外部骨架,采用移動(dòng)式底盤(pán),方便靈活控制,系統(tǒng)設(shè)計(jì)上采用Linux系統(tǒng),在Linux系統(tǒng)之上開(kāi)發(fā)語(yǔ)音識(shí)別合成、云端大腦等程序,最終語(yǔ)音機(jī)器人將具有人機(jī)對(duì)話(huà)、命令識(shí)別等功能。語(yǔ)音機(jī)器人最終實(shí)物圖如圖1所示。
圖1 語(yǔ)音機(jī)器人最終實(shí)物圖
圖2 智能家居設(shè)計(jì)單片機(jī)最終實(shí)物圖
1.2.2 智能家居的設(shè)計(jì)
智能家居設(shè)計(jì)擬采用51系列單片機(jī)作為控制器,這個(gè)系列的單片機(jī)具有低成本、穩(wěn)定性高等特點(diǎn),智能家居控制包括燈、風(fēng)扇、門(mén)等的控制。最終實(shí)物圖如圖2所示。
2.1.1 Cubieboard模塊
Cubieboard采用DDR3 512Mb/1024Mb內(nèi)存,市場(chǎng)上多見(jiàn)的是1024Mb內(nèi)存的版本,其自帶有一個(gè)5v電源插口、1個(gè)SATA5v電源插口、1個(gè)SATA 2.0硬盤(pán)接口、HDMI視頻接口、Micro-SD卡卡槽、耳機(jī)插口、線路輸入插口、96Pin GPIO接口以及100M以太網(wǎng)插口和Mini-USB接口。如圖3所示。
2.1.2 藍(lán)牙模塊
系統(tǒng)中的D藍(lán)牙模塊采用HC-05主從機(jī)一體藍(lán)牙模塊,該模塊有豐富的I/O接口,傳輸距離可達(dá)到10M。數(shù)據(jù)傳輸采用串口方式,串口傳輸簡(jiǎn)單、可靠且速度較快。此模塊的體積小、功耗低、使用方便,在本項(xiàng)目中使用能夠快速的響應(yīng)主控器的指令,達(dá)到傳輸數(shù)據(jù)的能力。
圖3 Cubieboard模塊
2.2.1 人機(jī)對(duì)話(huà)
語(yǔ)音機(jī)器人通過(guò)采集用戶(hù)的語(yǔ)音信息,通過(guò)百度語(yǔ)音在線識(shí)別,再將處理得到的語(yǔ)音信息發(fā)送給圖靈機(jī)器人人工大腦,人工大腦可以完成諸如百科知識(shí)、新聞資訊、天氣查詢(xún)、航班查詢(xún)等語(yǔ)音互動(dòng),最后再有語(yǔ)音合成處理成音頻文件播放出來(lái),達(dá)到人機(jī)互動(dòng)的能力。
2.2.2 語(yǔ)音控制
語(yǔ)音機(jī)器人通過(guò)采集用戶(hù)的語(yǔ)音信息,通過(guò)百度語(yǔ)音在線識(shí)別或者對(duì)本地語(yǔ)音識(shí)別,程序內(nèi)部處理返回的語(yǔ)音信息,如果和預(yù)定的控制指令相同或者類(lèi)似,經(jīng)藍(lán)牙模塊將對(duì)應(yīng)的控制指令發(fā)送給微控制器,微控制器控制智能家居中的風(fēng)扇、燈光以及門(mén)窗等動(dòng)作,達(dá)到語(yǔ)音控制的目的。
整個(gè)系統(tǒng)的軟件設(shè)計(jì)方法有三種,根據(jù)不同的應(yīng)用場(chǎng)合和系統(tǒng)的負(fù)責(zé)程序采用不同的設(shè)計(jì)方法,一般情況下,簡(jiǎn)單的系統(tǒng)可以采用常規(guī)的軟件設(shè)計(jì)方法;較為復(fù)雜的系統(tǒng)可以采用DSP仿真軟件CCS提供的DSP/BIOS設(shè)計(jì)方法(DSP/BIOS是TI公司專(zhuān)門(mén)為DSP設(shè)計(jì)的嵌入式軟件設(shè)計(jì)方法);最為復(fù)雜的系統(tǒng)需要采用嵌入式操作系統(tǒng)進(jìn)行設(shè)計(jì)。目前,OMAP5912支持的操作系統(tǒng)包括WinCE、Linux、Nucleus以及VxWorks等,可以根據(jù)需要選擇不同的操作系統(tǒng),本系統(tǒng)采用嵌入式操作系統(tǒng)進(jìn)行設(shè)計(jì)。
部分源程序:
智能家居實(shí)現(xiàn):
void main()
{
led2=1;led1=1;//初始狀態(tài)關(guān)閉
init();
recieve=0x00;
while(1)
{
switch(recieve)
{
case 0x31 : led1=0;break;//開(kāi)臥室燈
case 0x32 : led1=1;break;//關(guān)臥室燈
case 0x33 : led2=0;break;//開(kāi)臥室燈
case 0x34 : led2=1;break;//關(guān)臥室燈
case 0x35 : duoji_flag=1;Duty=25;break;//開(kāi)臥室燈
case 0x36 : duoji_flag=1;Duty=15;break;//關(guān)臥室燈
case 0x37 : duoji_flag=2;Duty=25;break;//開(kāi)臥室燈
case 0x38 : duoji_flag=2;Duty=15;break;//關(guān)臥室燈
case 0x39 : duoji_flag=3;Duty=25;break;//開(kāi)臥室燈
case 0x30 : duoji_flag=3;Duty=15;break;//關(guān)臥室燈
}
語(yǔ)言識(shí)別實(shí)現(xiàn):
#獲取百度開(kāi)發(fā)token
global token,api,ccuid,key
print ‘robot init------->>>>>>>>’
token = get_token()
key = ‘a(chǎn)06f57927941448faea980695b82c9ce’
api = ‘http://www.tuling123.com/openapi/api?key=’ + key + ‘&info=’
ccuid=”00-08-CA-C1-0B-CD” #板子的mac地址
deflisten():
#監(jiān)聽(tīng)人的說(shuō)話(huà),并解析出文本
os.system(‘a(chǎn)record -D “plughw:1,0” -f S16_LE -d 5 -r 8000 /root/study/listen.wav’)
use_cloud(token)
print ‘me:’,duihua
#print ‘duihua --->’,type(duihua)
def robotsay():
global duihua,api,ccuid,token,robotSay
info = duihua
duihua=’’
request = api + info
#print ‘request-->’,request
response = getHtml(request)
dic_json = json.loads(response)
a = dic_json[‘text’]
#print ‘a(chǎn) type--->’
#print type(a)
unicodestring = a
rebotSay = unicodestring.encode(“utf-8”)
print ‘rebot:’,rebotSay
print ‘robotSay DEBUG’
print ccuid,token
say_requests(rebotSay)
#baidu_tts_get(rebotSay,ccuid,token)
#print ‘tts to play’
os.system(‘mplayer say.mp3’)
def main():
r
obot_init()
while(True):
listen()
search(duihua)
robotsay()
if __name__ == “__main__”:
main()
‘’’
robot_init()
while(True):
baidu_tts_get(‘hello world’,ccuid,token)
os.system(‘mplayer say.mp3’)
前期調(diào)試包括系統(tǒng)學(xué)習(xí)Linux系統(tǒng)、Python編程語(yǔ)言、單片機(jī)原理與實(shí)踐應(yīng)用,在完成基礎(chǔ)知識(shí)學(xué)習(xí)后,我們將購(gòu)買(mǎi)材料,團(tuán)隊(duì)將搜集各種機(jī)器人和智能家居方面的設(shè)計(jì)資料,綜合設(shè)計(jì)出一種移動(dòng)靈活、美觀大方的機(jī)器人硬件和智能家居模型,硬件的搭建工作預(yù)計(jì)將會(huì)用時(shí)一個(gè)月的時(shí)間來(lái)完成。
中期調(diào)試包括關(guān)鍵技術(shù)學(xué)習(xí)、軟件程序編寫(xiě)、機(jī)器人模塊化測(cè)試、智能家居模型測(cè)試,其中關(guān)鍵技術(shù)包括語(yǔ)音識(shí)別、語(yǔ)音合成、人工大腦設(shè)計(jì),軟件編寫(xiě)中主要包括控制命令識(shí)別,下達(dá)控制指令等,在完成技術(shù)攻克后,首先進(jìn)行模塊化的功能測(cè)試,測(cè)試好每一個(gè)模塊的功能正常后,最后組織系統(tǒng)聯(lián)調(diào)和硬件軟件的優(yōu)化工作。
后期調(diào)試主要是整個(gè)系統(tǒng)的調(diào)試工作,軟件上排除bug,硬件上做最好的改動(dòng),最終實(shí)現(xiàn)整個(gè)系統(tǒng)穩(wěn)定運(yùn)行。
本項(xiàng)目設(shè)計(jì)改變了傳統(tǒng)的智能家居控制方式,現(xiàn)今市面上絕大多數(shù)智能家居設(shè)備都是通過(guò)手機(jī)APP的方式來(lái)實(shí)現(xiàn)控制,APP界面往往有很多按鈕和顯示框,導(dǎo)致用戶(hù)控制智能家居的時(shí)候感到繁瑣,特別是對(duì)于不善于使用智能手機(jī)的老人和殘障人士更是不方便,但是通過(guò)本項(xiàng)目的研究和設(shè)計(jì),語(yǔ)音交互將成為人和機(jī)器人交流最人性化的交流方式,設(shè)計(jì)開(kāi)發(fā)語(yǔ)音機(jī)器人,通過(guò)語(yǔ)音識(shí)別和合成,完成智能家居的控制,更加的方便快捷、人性化操作。在未來(lái),我們的家庭將是智慧家庭,我們的家中將會(huì)有很多的智能設(shè)備,這些智能設(shè)備包括智能燈、智能窗戶(hù)、智能門(mén)等,眾多的智能設(shè)備要想?yún)f(xié)同工作,完成信息交流,用戶(hù)可以和機(jī)器人進(jìn)行語(yǔ)音交流,完成智能控制,因此我們?cè)O(shè)計(jì)的機(jī)器人在一定程度上物聯(lián)機(jī)器人的智能化、人性化。
[1]劉顯強(qiáng).基于嵌入式無(wú)線傳輸文件系統(tǒng)的研究與設(shè)計(jì)[D].成都:電子科技大學(xué),2012.
[2]馮開(kāi)林,劉春艷,韓東旭.基于S3C2440平臺(tái)搭建linux環(huán)境[J].通信技術(shù),2013,46(11):120-123.
[3]董萍.基于nRF2401A的家庭智能系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].武漢輕工學(xué)學(xué)報(bào),2015,34(2):87-91.
西北民族大學(xué)國(guó)家大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目資助(項(xiàng)目編號(hào):201710742063)。
楊萍(1996—),女,云南紅河人,西北民族大學(xué)2014級(jí)自動(dòng)化專(zhuān)業(yè)本科生。