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