<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于LD3320和MSP430語音識別智能家居設計

          基于LD3320和MSP430語音識別智能家居設計

          作者: 時間:2013-07-22 來源:網(wǎng)絡 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/200760.htm

          大家先看下視頻:

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

          這個項目現(xiàn)在已近做好的部分包括:

          一,電腦軟件部分的上位機用VB寫的,來實現(xiàn)圖形界面和反饋。

          二,語音識別部分使用芯片3320和STC89LE52,來實現(xiàn)語音識別。

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

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

          五,最后就是為了實現(xiàn)語音控制家電用另一個MSP430G2553節(jié)點來模擬遙控器,實現(xiàn)語音控制電視的功能。

          IMG_20130722_151745.jpg
          IMG_20130722_151840.jpg

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

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

          STCLE52控制LD3220進行語音識別,再把識別出來結果通過串口和LUANCHPAD主機通信,來實現(xiàn)語音識別。最后臨時用萬用板焊了一塊繼電器來控制燈的開關,還有一塊是

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

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

          基于LD3320和MSP430語音識別智能家居設計

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

          比較容易的VB來開發(fā)。這個上位機主要實現(xiàn)的功能是串口通信,接收來自單片機的語音識別碼和溫度數(shù)據(jù),通過播放動畫來實現(xiàn)互動和反饋。這個上位機啟動是就自動檢測

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

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

          調用MSComm1控件實現(xiàn)串口通信的代碼

          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

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

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

          才有效,為了讓知道語音識別成功與否,加了一個LED,如果檢測到口令LED就會亮,如果檢測到口令后再識別到關鍵字LED就會滅。

          以下是LD3320的添加關鍵字部分代碼

          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, //添加語音識別拼音字符串

          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;

          }

          說下主角MSP430G2553作為主機和節(jié)點。作為主機的MSP430G2553主要是接受來自STC89LE52的識別碼和對這些識別碼的相應處理。例如收到的是

          開燈的識別碼就會通過NRF24l01發(fā)送到節(jié)點,節(jié)點就驅動繼電器來開燈。如果收到的是XX電視臺的識別碼,就發(fā)送到另一個節(jié)點來模擬遙控器實現(xiàn)

          萬能遙控器相關文章:萬能遙控器代碼


          c++相關文章:c++教程



          上一頁 1 2 下一頁

          關鍵詞: MSP LD

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();