項目需求
完成對板上音頻信號的采集和波形顯示,可以通過手機(jī)播放音樂或App產(chǎn)生音頻信號的方式提供聲音信號源,通過板上電路的放大、MCU中ADC的采集以后將波形顯示在OLED屏幕上,可以通過板上按鍵的操作在兩個方向(橫軸-時間;縱軸-幅度)來擴(kuò)展、壓縮波形的顯示,按鍵的功能可自行定義;
實現(xiàn)信號發(fā)生器的功能,能夠產(chǎn)生20KHz以內(nèi)的正弦波、三角波、方波三種常用波形,通過按鍵的操作能夠?qū)崿F(xiàn)頻率可調(diào)、幅度可調(diào);
能夠通過Ain管腳測量外部模擬信號(0-3.3V,DC-200KHz),并能夠?qū)ν獠康闹芷谛圆ㄐ螠y量其周期和峰峰值
能夠?qū)Σ杉降男盘栠M(jìn)行FFT變換,并在屏幕上顯示其基頻及低次諧波的分量
實現(xiàn)的思路
因為我是對stm32是一個完全零基礎(chǔ)的的學(xué)生,所以首先就是對軟件和芯片的學(xué)習(xí),通過直播課程先對stm32有一個大概的了解,對IDE、Pro等軟件有一個初步的學(xué)習(xí),然后是對于原理圖 的學(xué)習(xí),了解做一個簡易示波器需要哪些引腳。初步的學(xué)習(xí)了解后就要開始上手實踐,先是要看一些相關(guān)的比如ADC、信號發(fā)生器的例程,然后仿照例程自己去實踐做一些工程。有了一點基礎(chǔ)以后就可以開始做這個項目了。
然后項目實現(xiàn)大概的思路就是:ADC對模擬信號采樣、量化->映射到坐標(biāo)軸上形成波形->顯示相關(guān)的參數(shù)->通過RC低通濾波實現(xiàn)方波、正弦波、三角波的生成->調(diào)整采樣率占空比等改變波形->FFT變換獲得頻譜。
整體思路是先做一個一個模塊,如ADC、信號發(fā)生、數(shù)據(jù)顯示等,然后整合在一起形成想要的項目,最后對項目進(jìn)行優(yōu)化調(diào)整。
完成的功能及達(dá)到的性能
完成的功能為對音頻信號進(jìn)行采集并形成波形,可以在時間上擴(kuò)展壓縮波形
實現(xiàn)信號發(fā)生器的功能,能夠產(chǎn)生20KHz以內(nèi)的正弦波、三角波、方波三種常用波形,通過按鍵的操作能夠?qū)崿F(xiàn)頻率可調(diào)
能夠通過Ain管腳測量外部模擬信號
對采集到的信號進(jìn)行FFT變換,顯示頻譜
遇到的主要難題
本次項目遇到的最大的難題就是解決y軸自動縮放功能,我本來使用的是固定的y軸(0-5V),有時候圖形看起來很難看,受大佬指點然后就準(zhǔn)備做一個自動縮放的y軸,結(jié)果不知道為什么,y軸相關(guān)的數(shù)據(jù)全都顯示不出來了,這也就是我視頻中沒有y軸數(shù)據(jù)的原因,開始是忘記了改設(shè)置導(dǎo)致浮點數(shù)不能直接printf,更改好設(shè)置后,一直報錯好像意思是Flash內(nèi)存不足,然后我嘗試使用網(wǎng)上的方法一是通過 sprintf 將浮點數(shù)轉(zhuǎn)換成字符串輸出,另一種是分解整數(shù)和小數(shù)部分,分別輸出,結(jié)果都沒能實現(xiàn),在我想改回固定y軸之前,板子死機(jī)無法復(fù)位,就導(dǎo)致了現(xiàn)在的版本,板子死機(jī)無法復(fù)位的問題最終是問了硬禾的老師解決的。
還有一個問題就是因為之前沒接觸過stm32,對于oled屏幕以及按鍵使用不知所措,花費了較多的時間學(xué)習(xí)例程和看別人的做法,然后實在是對FFT理解不夠,在FFT花了很多時間也沒做出來,后來參考了別人FFT的部分代碼才能用。
未來的計劃建議
因為時間不足和能力有限,沒能在規(guī)定時間內(nèi)完成所有的性能指標(biāo)要求,我計劃在之后有時間的時候盡量將y軸自動縮放完善,然后自己編寫出符合要求的FFT。
然后通過這次寒假在家的練習(xí),我從對單片機(jī)、嵌入式系統(tǒng)一無所知到現(xiàn)在的初步了解讓我對于這方面的內(nèi)容產(chǎn)生了極大的興趣,以后我會在課余時間多去接觸相關(guān)的內(nèi)容,爭取做出更多有意思有用的東西來。
我的建議是我感覺這個項目老師的課程不夠詳細(xì),兩個多小時的課程很多東西都被壓縮了,當(dāng)然也可能是因為我基礎(chǔ)太差或者是老師要考慮各方面的因素,我希望以后的課程能夠更系統(tǒng)更注重帶我們實操一些。
總結(jié)
這個項目極大的豐富了我的寒假生活,是我上大學(xué)以來為數(shù)不多覺得收獲蠻大的假期,雖然我沒能完成所有的項目需求,但是在這過程中學(xué)習(xí)到的知識以及對我實踐能力的培養(yǎng)讓我受益匪淺,硬禾的老師也是很盡心盡力,我板子死機(jī)的問題直接拉了個群給我解決,總體而言,通過這次項目我學(xué)到了很多東西,我希望以后也能多參加類似的活動來鍛煉自己,充實自己的生活。
原文標(biāo)題:北理工亢嘉晨同學(xué)制作的簡易示波器和FFT分析
文章出處:【微信公眾號:FPGA入門到精通】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
示波器
+關(guān)注
關(guān)注
113文章
6705瀏覽量
189284 -
FFT
+關(guān)注
關(guān)注
15文章
445瀏覽量
61026
原文標(biāo)題:北理工亢嘉晨同學(xué)制作的簡易示波器和FFT分析
文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論