基于LD3320和MSP430語音識別智能家居設(shè)計
電視機(jī)節(jié)目的切換(事讓單片機(jī)學(xué)習(xí)遙控器的編碼)。如果收到的是溫度的識別碼就測量單片機(jī)的溫度發(fā)到上位機(jī)。一些別的識別碼就通過單片機(jī)
轉(zhuǎn)發(fā)到上位機(jī)。
測溫的代碼:
void te()
{
for(int i=0;i256;i++)//多次測量求平均溫度
{
ADC10CTL0=~ADC10IFG;
ADC10CTL0 |= ENC + ADC10SC;
while(!(ADC10CTL0ADC10IFG));
temp+=ADC10MEM;
}
temp>>=8;
degree = ((temp - 673) * 423) / 1024;
}
通過24l01發(fā)送的代碼:
msg[0]=0xe6;
nRF24L01_TxPacket(msg);
SPI_RW_Reg(WRITE_REG+STATUS,0xff); // clear interrupt flag(TX_DS)
Delay_us(1000);
GLED_ray();
Delay_us(1000);
最后終結(jié)下這個項(xiàng)目的心得。其實(shí)這個項(xiàng)目最難的是寫上位機(jī),這個花了好久時間才寫好的,包括制作動畫合成語音。在調(diào)試上位機(jī)的時候試過
單片機(jī)無法連接上,后發(fā)現(xiàn)是LUNCHPAD支持的波特率最高就9600,再高就無法通信了。還有一個最難忘的是在模擬遙控器的時候,先用430捕獲來
捕獲每一個跳變沿,由于接收和發(fā)送的是電平相反的信號所以當(dāng)時好天真地認(rèn)為把電平改一下就可以發(fā)出去了,再次用捕獲來自己模擬遙控器的
信號的時候,發(fā)現(xiàn)捕獲回來的信號和原來的遙控器很不一樣。想了好久都沒有發(fā)現(xiàn)問題所在,后來發(fā)現(xiàn),原來發(fā)送信號是要經(jīng)過38KHZ的載波的
即高電平的時候是頻率為38KHZ的方波,低電平則是啥信號都沒有。
一句話總結(jié)就是在做項(xiàng)目的時候要細(xì)心,一個小錯誤都會讓你的系統(tǒng)無法工作。
還有個語音遙控電視視頻沒拍希望樓下留個位置放視頻
原文地址:http://bbs.21ic.com/icview-585294-1-1.html
萬能遙控器相關(guān)文章:萬能遙控器代碼
c++相關(guān)文章:c++教程
評論