光變聲
為何變?
今年智能車競賽中的信標(biāo)組的導(dǎo)引信號發(fā)生了改變,由原來的光,變成了聲(還有射頻信號),除了傳承智能車競賽賽題永遠(yuǎn)在變化的傳統(tǒng),還有阻斷…(此處省略三千字)。
傳統(tǒng)的信標(biāo)組發(fā)送的引導(dǎo)信標(biāo)主要通過紅色可見光、紅外光做引導(dǎo)。它們的規(guī)格可以參見文檔“全國大學(xué)生智能車競賽信標(biāo)組規(guī)格說明”。
在新版的信標(biāo)比賽中,對于信標(biāo)的改造主要包括兩個方面:
去掉原有的紅色、紅外的導(dǎo)航信號,將內(nèi)部的的發(fā)光盤拿掉。同時可以省去為了視覺識別的燈罩,以減少在比賽過程中被高速行駛的車模撞擊損毀的幾率。
增加兩種導(dǎo)航信號:(1)聲音信號;(2)射頻信號;
關(guān)于聲音定位的相關(guān)實驗博文可以參見:
(1)根據(jù)聲音信號測量距離
(2)直線軌道上聲音延遲信號分析
(3)如果提高聲音測距的分辨率?
(4)影響聲音定位的幾個因素
(5)聲音定位的距離誤差到底有多高?
(6)聲音定位硬件電路
(7)滑軌聲源定向的理論模型與參數(shù)估計
(8)AMP328音頻放大器
(9)室外聲音信標(biāo)可行性分析
(10)聲音大小對于測距數(shù)值的影響
(11)基于STM32F103RE ADDA板制作
(12)聲音測距
(13)關(guān)于聲音信標(biāo)的提問
關(guān)于射頻信號的發(fā)送和接收相關(guān)實驗博文可以參見:
(1)QN8027性能調(diào)試
(2)信標(biāo)的調(diào)頻發(fā)送
(3)調(diào)頻立體聲
(4)小型化RDA5807調(diào)頻收音模塊實驗板
(5)單片調(diào)頻收音機
(6)使用AD9833諧波發(fā)送調(diào)頻廣播
關(guān)于揚聲器驅(qū)動電路相關(guān)博文:
(1)音頻功放L2726
(2)AMP328音頻放大器
下面就介紹一下如何將傳統(tǒng)信標(biāo)中的發(fā)光LED板修改成新版的信標(biāo)電路。
如何變?
原有信標(biāo)的發(fā)光燈板與底座控制器之間是通過兩個接口相同的雙排8PIN插座相連接。兩個插座功能是重復(fù)的,主要是為了保證發(fā)光LED燈板與控制板之間的插接牢靠,同時滿足發(fā)光LED燈大電流的需要。
接口的原理圖、PCB版圖如下圖所示:
接口具有四種信號:
新的信標(biāo)接口板可以通過接口上的工作電源和地線獲得工作電源。通過LED驅(qū)動信號可以得到開始和停止工作的狀態(tài)。
在紅色LED驅(qū)動信號實際上是驅(qū)動LED功率MOS的漏極。如果使用R=10kΩ上拉電阻到單片機的工作電源,在信標(biāo)點亮的時候,可以測量得到10Hz的方波信號。在紅外LED的接口信號上可以得到帶有40kHz調(diào)制的脈沖信號。具體波形參加下面示波器測量結(jié)果。
在制作新的信標(biāo)信號產(chǎn)生板的時候,使用紅色LED(也就是接口5,6中的信號)相對比較簡單。
根據(jù)聲音信標(biāo)的功能以及與主控板的接口約束,定義聲音信號發(fā)送電路板的功能框圖如下圖所示:
框圖包括有五個部分:
核心的單片機板:主要完成Chirp信號的產(chǎn)生,判斷主控電路版的紅色LED的方波信號來確定信號的發(fā)送與接收。通過I2C總線控制調(diào)頻信號的工作頻率,工作狀態(tài)。通過DA控制發(fā)送的Chirp聲音信號。
調(diào)頻信號發(fā)送模塊:發(fā)送調(diào)頻廣播信號。頻率設(shè)定為兩個:85MHz,或者110MHz。內(nèi)部具有調(diào)頻信號產(chǎn)生電路和射頻放大電路。實驗所用的芯片為:QN8027。
音頻功放:將由單片機產(chǎn)生的音頻信號放大,驅(qū)動信標(biāo)上的揚聲器,產(chǎn)生聲音。實驗所用的信號為L2726。
單片機工作電源:將控制板接口電路提供的工作電源轉(zhuǎn)換成單片機和調(diào)頻發(fā)送板的工作電壓信號。
控制板的接口:主要是完成電源、信號的連接以及信號板的插接固定。
實驗電路設(shè)計
(1)電路設(shè)計:
硬件設(shè)計所在目錄:
d:\zhuoqing\AltiumDesinger\SmartCar20\BeaconSound
由于需要產(chǎn)生Chirp音頻信號,所以選擇一款帶有DA輸出的單片機。實驗電路的單片機采用STM32F051K8。
為了便于實驗,電路板的電源和接口采用100mil接口的插針對外引出,便于插接在面包板上與其它模塊連接實驗。
(2)電路板制作
通過快速制版,完成實驗板的制作。
由于STM32F051K8的封裝比較特別,焊接使用熱風(fēng)槍來完成。
焊接完之后的實驗電路。
(3)電路板的初步實驗
將電路板安置在小型實驗面包板上,通過編程對MCU進行初步功能測試。
軟件開發(fā)所在的目錄:
D:\zhuoqing\window\ARM\IAR\STM32\Application\Test20\SmartCar\ChirpBeacon051k\Src\main.c
單片機輸出的主時鐘信號(MCO)用于驅(qū)動調(diào)頻信號芯片QN8027,下面是測試該信號的波形。
FM發(fā)射模塊是基于之前的QN8027的調(diào)頻發(fā)射模塊。相關(guān)的前期工作參見:
QN8027性能調(diào)試
信標(biāo)的調(diào)頻發(fā)送
修改的方面:
將原來的時鐘晶體去掉,從MCU板的MOSC引入
. 左右兩個聲道來自于同一個外部引腳。
原理圖和電路板如下圖所示:
快速制版后的實驗電路板。
焊接完成后的電路板。
(1)連接實驗?zāi)K:
下面是將單片機板與FM發(fā)送模塊在面板上安裝調(diào)試。
(2)設(shè)置FM發(fā)射頻率
通過軟件改變調(diào)頻信號發(fā)送頻率。為了避免實際比賽時,F(xiàn)M的頻率與當(dāng)?shù)氐恼{(diào)頻廣播重疊,實際發(fā)送的頻率選擇85MHz,或者110MHz。
(3)發(fā)送Chirp信號:
Chirp信號的數(shù)據(jù)存儲在內(nèi)存2048的RAM中,通過單片機DA轉(zhuǎn)換輸出,轉(zhuǎn)換的頻率為10kHz。
Chirp信號的數(shù)據(jù)初始化子程序為:
//------------------------------------------------------------------------------ void InitDACBuffer(float fStartF, float fEndF) { float fAngle = 0; float fFrequency; float fDeltaT = 1.0 / DAC_OUTPUT_FREQUENCY; int i; for(i = 0; i < DAC_BUFFER; i ++) { g_nDACBuffer[i] = (unsigned short)((sin(fAngle * 2 * 3.1415926) + 1.0) / 2 * 0x4ff)+0x100; fFrequency = (fEndF - fStartF) * (i + 1) / DAC_BUFFER + fStartF; fAngle += fFrequency * fDeltaT; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
其中的參數(shù):
fStartF = 250;
fEndF = 2000;
DAC_BUFFER=2048;
DAC_OUTPUT_FREQUENCY = 10000;
下面兩張波形圖分別實現(xiàn)了調(diào)頻信號的發(fā)送音頻信號波形以及通過調(diào)頻收音機接收到的信號波形。由于Chirp信號是變頻信號,所以在不同時間點,看到的聲音波形頻率不同。
這部分的電路實驗請參考博文:音頻功放L2726 。
控制協(xié)議
單片機通過檢查控制板上紅色LED的方波信號來確定是否發(fā)送調(diào)頻信號以及驅(qū)動揚聲器發(fā)送Chirp信號。
由于控制信號比較簡單,所以可以直接在主程序的循環(huán)(循環(huán)周期1ms)中,檢查LED驅(qū)動脈沖信號(10Hz)。出現(xiàn)高低電平變化就啟動信號發(fā)送過程。如果在60ms之內(nèi)沒有檢測到驅(qū)動脈沖變化,則關(guān)閉信號發(fā)送過程。
下面給出相關(guān)的C語言代碼。其中CheckFlashInit函數(shù)在主程序初始化中進行一次。 CheckFlashInput()是在主程序循環(huán)中進行調(diào)用。
//------------------------------------------------------------------------------ void CheckFlashInit(void) { g_nCheckCount = 0; g_nCheckLastStatus = 0; if(VAL(INPUT_PIN_1)) g_nCheckLastStatus = 0; g_nCheckUpdateCount = 0; g_nCheckFlashUpdateCount = 0; } //------------------------------------------------------------------------------ void CheckFlashInput(void) { if(g_nCheckCount < CHECK_FLASH_MIN) g_nCheckCount ++; if(g_nCheckCount >= CHECK_FLASH_MIN) { StopChirpSound(); } if(VAL(INPUT_PIN_1)) { if(g_nCheckLastStatus == 0) { g_nCheckUpdateCount = g_nCheckCount; g_nCheckCount = 0; StartChirpSound(); g_nCheckFlashUpdateCount ++; } g_nCheckLastStatus = 1; } else { if(g_nCheckLastStatus == 1) { g_nCheckUpdateCount = g_nCheckCount; g_nCheckCount = 0; g_nCheckFlashUpdateCount ++; } g_nCheckLastStatus = 0; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
單片機 硬件開發(fā)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。