基于LD3320和MSP430語音識別智能家居設計
電視機節(jié)目的切換(事讓單片機學習遙控器的編碼)。如果收到的是溫度的識別碼就測量單片機的溫度發(fā)到上位機。一些別的識別碼就通過單片機
轉(zhuǎn)發(fā)到上位機。
測溫的代碼:
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é)下這個項目的心得。其實這個項目最難的是寫上位機,這個花了好久時間才寫好的,包括制作動畫合成語音。在調(diào)試上位機的時候試過
單片機無法連接上,后發(fā)現(xiàn)是LUNCHPAD支持的波特率最高就9600,再高就無法通信了。還有一個最難忘的是在模擬遙控器的時候,先用430捕獲來
捕獲每一個跳變沿,由于接收和發(fā)送的是電平相反的信號所以當時好天真地認為把電平改一下就可以發(fā)出去了,再次用捕獲來自己模擬遙控器的
信號的時候,發(fā)現(xiàn)捕獲回來的信號和原來的遙控器很不一樣。想了好久都沒有發(fā)現(xiàn)問題所在,后來發(fā)現(xiàn),原來發(fā)送信號是要經(jīng)過38KHZ的載波的
即高電平的時候是頻率為38KHZ的方波,低電平則是啥信號都沒有。
一句話總結(jié)就是在做項目的時候要細心,一個小錯誤都會讓你的系統(tǒng)無法工作。
還有個語音遙控電視視頻沒拍希望樓下留個位置放視頻
原文地址:http://bbs.21ic.com/icview-585294-1-1.html
萬能遙控器相關文章:萬能遙控器代碼
c++相關文章:c++教程
評論