運動(dòng)靶車(chē)停車(chē)入庫的語(yǔ)音測距系統
1.4 其他單元
本文引用地址:http://dyxdggzs.com/article/273194.htm 其余單元功能如下,LCD單元用來(lái)顯示實(shí)驗數據,便于系統調試。矩陣鍵盤(pán)單元用來(lái)實(shí)現按鍵輸入;紅外遙控單元負責整個(gè)系統的觸發(fā),一體化紅外接收頭與單片機Int0連接,當用戶(hù)按下遙控器按鍵時(shí),Int0產(chǎn)生中斷,單片機發(fā)出語(yǔ)音播報指令。
2 軟件編程
2.1 ISD1730軟件設計
2.1.1 SPI相關(guān)命令
SPI模式下,ISD1730相關(guān)命令如表1所示。注意芯片管腳2連接一只藍色LED,用以指示語(yǔ)音芯片工作狀態(tài),為使能此LED,所有的指令碼bit4必須置1。
2.1.2 ISD1730編程要點(diǎn)
ISD1730采用flash作為存儲器,內存地址0x00~0xff,其中0x00~0x0f為音效存儲單元。實(shí)現語(yǔ)音播報,需預先錄制距離數據,下列數組可以作為數據緩存:
unsigned char code voic_mem[]={ //定義語(yǔ)音儲存單元
0x10,0x13,0x14,0x17, //語(yǔ)音"0"、"1"起始地址和結束地址
0x18,0x1b,0x1c,0x1f, //語(yǔ)音"2"、"3"起始地址和結束地址
0x20,0x23,0x24,0x27, //語(yǔ)音"4"、"5"起始地址和結束地址
0x28,0x2b,0x2c,0x2f, //語(yǔ)音"6"、"7"起始地址和結束地址
0x30,0x33,0x34,0x37, //語(yǔ)音"8"、"9"起始地址和結束地址
0x40,0x43,0x44,0x47, //語(yǔ)音"百"、"十"起始和結束地址
0x48,0x4b,0x4c,0x4f, //語(yǔ)音"點(diǎn)"、"米"起始和結束地址
};
ISD1730的語(yǔ)音錄制有5種采樣頻率可選,采樣頻率越高,語(yǔ)音品質(zhì)越好,但可錄制的時(shí)間越短,采樣頻率取決于芯片ROSC管腳的外接電阻,錄音時(shí)長(cháng)、采樣頻率與振蕩電阻的對應關(guān)系見(jiàn)表2。
圖2的接法設定采樣頻率為8kHz,根據ISD1730技術(shù)手冊,采樣頻率為8kHz時(shí),每一內存單元可錄制125ms語(yǔ)音,實(shí)驗時(shí)需要錄制16段語(yǔ)音,程序規劃每一語(yǔ)音片斷占用4個(gè)內存單元,即每一語(yǔ)音片斷占用0.5s時(shí)長(cháng)。
2.2 超聲波測距編程要點(diǎn)
距離測量與換算在 INT1 中斷服務(wù)子函數中完成,該子函數啟動(dòng)計數器計算收到回波的時(shí)長(cháng),再根據超聲波傳播速度計算得到測量距離,在此注意增加延時(shí)函數,確保測量完成。
超聲波傳播速度易受溫度影響,因此需增加溫度測量以修正超聲波傳播速度,從而實(shí)現對測量距離的補償。讀取溫度時(shí)應注意數據轉換,將溫度低8位和高8位轉換為1個(gè)16位的數,其高5位是相同的,代表符號,低11位,是溫度的二進(jìn)制數,其中高7位是溫度整數,低4位是溫度小數;如果是負溫度,則從溫度寄存器讀出的是補碼,應將補碼取反加1得到原碼。
DS18B20的小數位可以這樣理解:單片機發(fā)出讀取溫度寄存器命令后,DS18B20會(huì )返回9組數據,其中第一組數據的低4位代表溫度小數部分,換言之,即是把1度分解為16個(gè)4位二進(jìn)制數來(lái)表示,則溫度小數部分的精度為1/16=0.0625。
3 應用與測試
將本系統安裝在運動(dòng)靶車(chē)上,靶車(chē)入庫時(shí),按下遙控器,揚聲器持續播報靶車(chē)與極限位置之間的距離,當距離達到要求時(shí),即控制靶車(chē)停止運行。經(jīng)實(shí)際測試,操作者用本系統在庫區外即可完成距離測量,測量距離最遠可達4米,效果令人滿(mǎn)意。
LCD顯示屏相關(guān)文章:lcd顯示屏原理
萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼
紅外遙控器相關(guān)文章:紅外遙控器原理 lcd相關(guān)文章:lcd原理
評論