<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于LD3320和MSP430語(yǔ)音識別智能家居設計

基于LD3320和MSP430語(yǔ)音識別智能家居設計

作者: 時(shí)間:2013-07-22 來(lái)源:網(wǎng)絡(luò ) 收藏

來(lái)21ic潛水了好久,發(fā)現這次的活動(dòng)很給力,我也來(lái)分享一下自己正在做的項目。這個(gè)是基于430G2553和3320的語(yǔ)音識別智能家居設計,是我以前的大學(xué)老師幫我找的項目,感謝王老師。

本文引用地址:http://dyxdggzs.com/article/200760.htm

大家先看下視頻:

h()t()tp://v.youku.com/v_show/id_XNTg2MDUwNjM2.html(去掉括號)

這個(gè)項目現在已近做好的部分包括:

一,電腦軟件部分的上位機用VB寫(xiě)的,來(lái)實(shí)現圖形界面和反饋。

二,語(yǔ)音識別部分使用芯片3320和STC89LE52,來(lái)實(shí)現語(yǔ)音識別。

三,接收語(yǔ)音識別碼再和電腦通信使用430G2553作為主機。

四,430G2553主機控制NRF24l01模塊與另一塊帶有NRF24l01控制繼電器的MSP430G2553節點(diǎn)通信。

五,最后就是為了實(shí)現語(yǔ)音控制家電用另一個(gè)MSP430G2553節點(diǎn)來(lái)模擬遙控器,實(shí)現語(yǔ)音控制電視的功能。

IMG_20130722_151745.jpg
IMG_20130722_151840.jpg

基于LD3320和MSP430語(yǔ)音識別智能家居設計
IMG_20130722_151831.jpg

硬件部分的話(huà),為了先寫(xiě)代碼,調試程序方便就用了2塊LUANCHPAD,一塊做主機一塊做節點(diǎn)(各自帶有NRF24l01模塊)。還有一塊3320模塊上面帶了一塊STCLE52,通過(guò)

STCLE52控制LD3220進(jìn)行語(yǔ)音識別,再把識別出來(lái)結果通過(guò)串口和LUANCHPAD主機通信,來(lái)實(shí)現語(yǔ)音識別。最后臨時(shí)用萬(wàn)用板焊了一塊繼電器來(lái)控制燈的開(kāi)關(guān),還有一塊是

模擬遙控發(fā)射的電路板。LUNCHPAD的電路我看21ic的大家因該不陌生了,NRF24l01模塊因該都用過(guò)了,那就說(shuō)下LD3320實(shí)現語(yǔ)音識別的電路,這個(gè)芯片主要通過(guò)80總線(xiàn)和

STCLE52通信,也可以用SPI通信。這個(gè)芯片只要外接一些電容電阻,還有最重要的麥克風(fēng)就可以了。麥克風(fēng)推薦用電容麥。

基于LD3320和MSP430語(yǔ)音識別智能家居設計

最主要和21ic的大家分享一下軟件的實(shí)現了。首先說(shuō)下上位機。我在學(xué)校學(xué)過(guò)C++,但是由于但是不用功,所以如果要用C++寫(xiě)個(gè)好的上位機不是一件容易的事,所以說(shuō)改用

比較容易的VB來(lái)開(kāi)發(fā)。這個(gè)上位機主要實(shí)現的功能是串口通信,接收來(lái)自單片機的語(yǔ)音識別碼和溫度數據,通過(guò)播放動(dòng)畫(huà)來(lái)實(shí)現互動(dòng)和反饋。這個(gè)上位機啟動(dòng)是就自動(dòng)檢測

串口,搜索那個(gè)串口是和單片機連接的。就等待單片機發(fā)來(lái)的命令了,通信協(xié)議是這樣的,如果是語(yǔ)音識別碼就直接發(fā)過(guò)來(lái),如果是溫度數據則先發(fā)送一個(gè)數據0xea,接

著(zhù)就發(fā)MSP430G2553內部的溫度傳感器測的溫度。例如上位機收到0xea+0x1a,這就表示收到了測的是溫度數據而且溫度是26度,最后根據溫度來(lái)播放動(dòng)畫(huà)。

調用MSComm1控件實(shí)現串口通信的代碼

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent

Case comEvReceive

ax1 = MSComm1.Input

MSComm1.InBufferCount = 0

ax(0) = ax1(0)

If flag_c = 1 Then

rdata(0) = ax(0)

ax(0) = 0

' Text2.Text = rdata(0)

flag_c = 0

End If

If ax(0) = HEA Then

ax(0) = 0

flag_c = 1

End If

MSComm1.InBufferCount = 0

End Select

End Sub

說(shuō)下LD3320的代碼。由于LD3320是內置DSP的芯片,內部有語(yǔ)音識別算法,我只要通過(guò)80總線(xiàn)來(lái)讀寫(xiě)寄存器實(shí)現芯片的初始化,再把要識別的語(yǔ)句通過(guò)拼音的字符串寫(xiě)入芯片,

最多可以實(shí)現50個(gè)語(yǔ)句的識別。LD3320有兩個(gè)模式,一個(gè)就是口令模式,一個(gè)是普通模式,因為在環(huán)境里畢竟有噪聲的存在,為了防止噪聲誤觸發(fā)識別命令,所以選擇口令模式最好,再有先說(shuō)口令之后識別

才有效,為了讓知道語(yǔ)音識別成功與否,加了一個(gè)LED,如果檢測到口令LED就會(huì )亮,如果檢測到口令后再識別到關(guān)鍵字LED就會(huì )滅。

以下是LD3320的添加關(guān)鍵字部分代碼

uint8 LD_AsrAddFixed()

{

uint8 k, flag;

uint8 nAsrAddLength;

#define DATE_A 17

#define DATE_B 20

uint8 code sRecog[DATE_A][DATE_B] = {

chu yin, //添加語(yǔ)音識別拼音字符串

ni hao,

wen du,

kai deng,

guan deng,

};

uint8 code pCode[DATE_A] = {

CODE_CMD,

NI_HAO,

WEN_DU,

KAI_DENG,

GUAN_DENG,

};

for (k=0; k

{

if(LD_Check_ASRBusyFlag_b2() == 0)

{

flag = 0;

break;

}

LD_WriteReg(0xc1, pCode[k] );

LD_WriteReg(0xc3, 0 );

LD_WriteReg(0x08, 0x04);

delay(1);

LD_WriteReg(0x08, 0x00);

delay(1);

for (nAsrAddLength=0; nAsrAddLength

{

if (sRecog[k][nAsrAddLength] == 0)

break;

LD_WriteReg(0x5, sRecog[k][nAsrAddLength]);

}

LD_WriteReg(0xb9, nAsrAddLength);

LD_WriteReg(0xb2, 0xff);

LD_WriteReg(0x37, 0x04);

}

return flag;

}

說(shuō)下主角MSP430G2553作為主機和節點(diǎn)。作為主機的MSP430G2553主要是接受來(lái)自STC89LE52的識別碼和對這些識別碼的相應處理。例如收到的是

開(kāi)燈的識別碼就會(huì )通過(guò)NRF24l01發(fā)送到節點(diǎn),節點(diǎn)就驅動(dòng)繼電器來(lái)開(kāi)燈。如果收到的是XX電視臺的識別碼,就發(fā)送到另一個(gè)節點(diǎn)來(lái)模擬遙控器實(shí)現

萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼


c++相關(guān)文章:c++教程



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: MSP LD

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>