小型音樂噴泉模型-畢業設計_第1頁
小型音樂噴泉模型-畢業設計_第2頁
小型音樂噴泉模型-畢業設計_第3頁
小型音樂噴泉模型-畢業設計_第4頁
小型音樂噴泉模型-畢業設計_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目 錄 1. 緒 論11.1 課題背景11.2 音樂噴泉的發展和現狀11.3 音樂噴泉控制系統框架22. 上位機通訊與顯示42.1 概述42.2 串口通訊42.3 監控水泵運行62.4 FFT93. 下位機數據采集和傳輸133.1 概述133.2 對音樂信號的采樣與數據傳輸133.3 下位機采樣數據圖144. 基于nRF24L01無線傳輸子系統164.1 nRF24L01模塊硬件設計164.2 nRF24L01模塊軟件設計175. 水泵控制系統215.1 水泵的選定215.2 水泵控制原理圖的設計215.3 水泵控制系統的實物圖236. 功放246.1 功放電路設計246.2 喇叭保護板電路設

2、計246.3 功放PCB257. 太陽能子系統267.1 太陽能電池267.2 太陽能控制器26參考文獻29致 謝30附錄311. 緒 論1.1 課題背景隨著人們生活水平的提高,人們對環境的要求越來越高,城市環境建設日益為人們所重視。噴泉作為一種觀賞性較高的藝術水景,不斷的出現在城市的廣場、公園及其它公共場所,早些的噴泉都是固定不可調的,顯得有些單調,隨著科技的發展音樂噴泉也進入了我們的城市。音樂噴泉是現代科技與藝術的綜合,音樂噴泉將噴水圖形、彩色燈光及音樂旋律構成一個有機的整體,隨著樂曲旋律和節奏的變化,各種不同的噴水花形相應的配合變換,在五彩絢麗的變幻燈光照耀下,構成一幅幅奇妙無比的景觀、

3、令人賞心悅目,嘆為觀止,在視聽上獲得極大的享受。1.2 音樂噴泉的發展和現狀 音樂噴泉是高科技與自然的完美結合,充分體驗了人們的智慧。世界各地的音樂噴泉體現美的方式也是不盡相同的。新加坡圣淘沙旅游區的音樂噴泉的設計與效果也是值得參考的,它布置在一個空曠而略有坡度的空間,面積很大,與圣淘沙車站前的長形噴水池共同組成為一個長達數百名的綜合系列噴泉,音樂噴泉位于系列噴泉的頂端。舞臺為一假山堆疊的西洋式半圓柱廊組成,共分3層。白天,假山瀑布及兩側的噴泉群與3層水池形成一處動靜結合的較為文雅悠揚的水景園,入夜則有五光十色,優美動聽的噴泉景觀,整個舞臺區域東西面闊近百米,南北深度約為40m,成為目前亞洲最

4、大的音樂噴泉之一。表現出壯闊。絢麗的水景之美。臺灣臺中的亞哥花園,有一個專為音樂噴泉表演的水舞劇場,以氣勢磅礴的蒼穹為天幕,舞臺建筑為意大利羅馬式柱廊構成,圓形,用噴泉環繞,有600個噴頭,配合著135種變化的燈光,組合成一種載歌載舞的美妙舞姿,水舞時,其形色聲光的變化,令人目不暇接,嘆為觀止。以上幾處音樂噴泉從建筑形勢、音樂曲調及水舞表演的角度展現了音樂噴泉的美麗姿態,但是都屬于大型的音樂噴泉,其控制系統也多采用PLC邏輯編程控制,造價高,流量需求大,一般為專門的定量設計。即使這樣,國內外的音樂噴泉控制系統設計均以達到成熟的水平,而且還有專門的生產設計廠家,提供設計、噴泉設備及安裝等服務。目

5、前,國內的音樂噴泉逐漸向智能化、分散化、綜合化、多樣化的方向發展,于是對噴泉控制系統的設計也提出了更高的要求。1.3 音樂噴泉控制系統框架本系統的總體思路是:音樂信號一路通過功放后播放,另一路則通過單片機進行采樣,得到的時域數據傳送給VS2012編寫的上位機,上位機對音樂信號進行FFT變換得到頻域信號并分析得到控制信號,通過nRF24l01無線傳輸給水泵控制子系統,控制水柱的高度。其中水泵控制模塊電源是由太陽能供電。圖1-1音樂噴泉控制系統的總體結構所以在次太陽能音樂噴泉系統包括以下幾個部分:太陽能供電子系統,功放子系統,無線傳輸子系統,水泵控制子系統,上位機,下位機。該音樂噴泉控制系統的總體

6、結構如圖2-1所示。以下對這幾個部分進行簡明的講解:太陽能供電子系統:由電壓能電池組、太陽能控制器、蓄電池和DC/DC部分組成。功放子系統:由NE5532+LM1875組成的功放,NE5532作為前級,LM1875作為后級。無線傳輸子系統:這里采用的是NRF24l01來進行無線傳輸,一對多的傳輸類型,這里的“一”是PC的下位機,PC傳送來控制信號,通過NRF24l01傳輸數據。“多”是接受的NRF24l01,接受到數據后,傳送給52單片機,52單片機根據控制信號來控制DC/DC輸出的電壓的大小,從而控制了水泵的高度。水泵控制系統:由52單片機、DA芯片TLC5615、BUCK電路組成。52單片

7、機讀取到了傳輸到的控制信號之后,通過控制TLC5615得到一個基準電壓,BUCK電路根據這個基準電壓來決定直流水泵的電壓。上位機:用VS2012編寫的上位機,上位機得到下位機傳送的數據之后,對數據進行分析,然后將結果傳送回下位機。其中通訊方式采用串口通訊。下位機:由52單片機和AD芯片TLC083組成。1s內進行三次總采樣(一次總采樣是64次AD轉換),將得到的數據傳送給上位機,然后接受上位機傳送回來的數據。2. 上位機通訊與顯示2.1 概述Microsoft Visual Studio 2012 Ultimate (vs2012)是一個最先進的開發解決方案,它使各種規模的團隊能夠設計和創建出

8、使用戶滿意的應用程序。在Visual Studio 2012旗艦版(下面稱VS2012)中,使用靈活敏捷的規劃工具并根據自身進度實現增量開發技術和敏捷方法;使用高級建模、發現和體系結構工具,描述系統并幫助確保體系結構構想;使開發團隊和運營團隊能夠較好地協作;通過從部署的軟件生成可對其采取措施的Bug 來改進質量和減少解決時間,使運營人員高效協作,為開發人員能夠深入了解生產問題提供數據。簡而言之,它可以創建創新的高質量解決方案并降低開發成本。本系統采用VS2012來實現上位機,實現的功能有:與下位機的通訊,FFT變換,監控水泵運行狀態。2.2 串口通訊特點是通信線路簡單,只要一對傳輸線就可以實現

9、雙向通信,從而大大降低了成本。并且52單片機中自帶異步串口,VS2012中也有控制串口的控件SerialPort。所以我選用串口實現上位機與下位機之間的通訊。2.2.1單片機中的串口52單片機中雖然自帶了異步串口但是,與計算機中的串口電平不同,所以需要一個電平轉換芯片,這里選用MAX232,電路連接如圖3-2-1所示。MAX232是一個電荷泵器件,它采用開關電容技術將5V電壓升壓和獲取負電壓,圖2-1中C13,C14,C15,C18就是升壓和負壓用的電容。不同的版本有不同的電容取值,有些是0.1uF,有些是1uF,還有些是10uF。通常我們采用1uF就可以正常工作了。如果采用0.1uF驅動會弱

10、點,不能驅動尤其是波特率較高的場合。在本設計中采用1uF的電容。在本次設計中采用的波特率是9600bps,晶振頻率是11.0592MHz。工作在方式1,由公式:波特率=定時器1的溢出率/32可以推算出應該設置定時器1的值為:TH1 =FDH。圖2-1 MAX232電平轉換電路2.2.2 VS2012中的串口在VS2012中.NET Framework 2.0 類庫包含了 SerialPort類,方便地實現了所需要串口通訊的多種功能, 可以實現以 SerialPort 類為核心的串口通訊,關于設計和方法。使用SerialPort方法很簡單,只需要簡單的配置屬性,然后就可以讀取和發送數據了。下面介

11、紹SerialPort一些簡單的配置和使用方法:使用 SerialPort 設置串口屬性:.PortName  串口名稱,COM1, COM2等。.BaudRate 波特率,也就是串口通訊的速度,進行串口通訊的雙方其波特率需要相同,如果用PC連接其他非PC系統,一般地,波特率由非PC系統決定。.Parity  奇偶校驗位。可以選取枚舉Parity中的值.DataBits  數據位數.StopBits  停止位數,可以選取枚舉StopBits中的值.Handshake 握手方式,也就是數據流控

12、制方式,可以選取枚舉Handshake中的值打開與關閉串口在創建一個SerialPort 對象,設置串口屬性后,可以通過 Open()方法打開串口。數據讀寫完成后,可以通過Close()方法關閉串口。讀寫字節或字符數據對于字節或字符數據,用Read()方法來讀數據,該方法需要一個字節或字符數組作為參數來保存讀取的數據,結果返回實際讀取的字節或字符數。寫數據使用Write()方法,該方法可以將字節數組、字符數據或字符串發送給另一方。如果通訊雙方交換的數據位字節流數據,要構建一個使用的串口通訊程序,那么雙方應該定義數據楨格式。通常數據楨由楨頭和楨尾來

13、界定。發送數據比較簡單,只需要用Write()方法將構造好的數據發送出去即可。接收數據則比較復雜,通訊是以字節流的形式到達的,通過調用一次Read()方法并不能確保所讀取的數據就是完整一楨。因此需要將每次讀取的數據整合在一起,對整合后的數據進行分析,按照定義的楨格式,通過楨頭和楨尾,將楨信息從字節流中抽取出來,這樣才能獲取有意義的信息。除了利用Read()方法來讀數據,還可以使用ReadExisting()方法來讀取數據。該方法讀取當前所能讀到的數據,以字符串的形式返回。事件SerialPort 提供了DataReceived事件。當有數據進入時,該事件被觸發。該事件的

14、觸發由操作系統決定,當有數據到達時,該事件在輔助線程中被觸發。輔助線程的優先級比較低,因此并不能確保每個字節的數據到達時,該事件都被觸發。在使用該事件接收數據時,最好對定義通訊協議格式,添加楨頭和楨尾。在DataReceived事件中接收數據時,把數據放在數組中或字符串中緩沖起來,當接收的包含楨頭和楨尾的完整數據時,在進行處理。2.3 監控水泵運行2.3.1概述在音樂噴泉的運行時,在上位機上要反映出各個無線連接狀態是否連接,當有故障發生的時候可以很方便的指導哪條通訊線路損壞,方便維修。攝像頭監控水泵系統是否正常,以及監控是否有人進行惡意破壞等等。接下來與3.3.3章會對這兩個方面進行介紹。2.

15、3.2無線通道連接監控在無線控制子系統中運用的是nRF24l01模塊,而nRF24l01有硬件CRC校驗,當發送數據失敗時,發送方向單片機請求中斷并且重發溢出標志位置位;相反如果發送數據成功時,發送方向單片機請求中斷并且發送成功標志位置位。所以我們可以在下位機中斷里面判斷是否發送成功,然后傳送數據給上位機。其中發送成功或則失敗的中斷引腳為P3.2,即采用的為外部中斷0。程序框圖如2-2所示:圖2-2 無線連接檢測程序框圖2.3.3攝像頭監控DirectShow兼備與底層的硬件設備和與高層的應用程序打交道的能力。如圖2-3 所示,虛線以下是Ring0 特權級層的硬件設備,其中包括WDM 視頻采集

16、卡(WDM Capture Devices)、VFW 視頻采集卡(LegacyVFW Capture Devices)、MPEG2 硬解碼卡(Hardware MPEG2Decoders)、聲卡(Sound Card)以及顯卡(Video GraphicsCard)等等。DirectShow 對這些硬件設備提供了強有力的支持,并在Ring3(圖1 虛線以上)應用層上提供統一規范的COM接口,這就將底層硬件設備與高層應用程序隔開,從而很方便地編程實現從設備獲取多媒體數據或利用設備回放多媒體數據,而不必考慮具體的硬件特性。圖 2-3 DirectShow 系統構架其中DirectShow 主要CO

17、M 接口有:DirectShow 是建立在組件對象模型(COM)的基礎之上的,有很多COM 接口,下面列舉一些重要的COM 接口:(1)IGraphBuilder 接口:構建過濾器管理的接口,立和管理一系列的過濾器;(2)IMediaControl 接口:控制多媒體流在過濾器圖中的流動,如流的啟動和停止;(3)IMediaEvent 接口:捕獲多媒體流回放中的事件;(4)IVideoWindow 接口:控制視頻窗口的屬性;(5)IMediaSeeking 接口:用于媒體流的定位;(6)IBaseFilter 接口:可定義一個具體的過濾器指針;(7)IPin 接口:管理兩個過濾器間的針腳,從而連

18、接過濾器。在VS2012中提供了關于DirectShow的例子,可以根據例子的進行二次開發。下面是系統的整體框圖如2-4所示:USB視頻采集計算機WDM驅動程序基于DirectShow的應用程序圖2-4系統的整體框圖2.3.4實際監控界面如圖2-5為上位機監控界面。在上位機界面中,左下角紅色代表通道沒有連接成功,綠色代表連接成功。我只做了三個下位機,第1,2,4通道,在上位機中正好顯示的1,2,4通道連接正常。上位機中間是采用筆記本攝像頭來監控的畫面,由于我只是做了音樂噴泉的模型實物,所以我以三個水泵控制模塊作為背景。圖2-5 監控界面2.4 FFT2.4.1 FFT簡介FFT(Fast Fo

19、urier Transformation),即為快速傅氏變換,是離散傅氏變換的快速算法,它是根據離散傅氏變換的奇、偶、虛、實等特性,對離散傅立葉變換的算法進行改進獲得的。它對傅氏變換的理論并沒有新的,發現,但是對于在計算機系統或者說數字系統中應用離散傅立葉變換,可以說是進了一大步。2.4.2基-2 FFT算法原理按時間抽取(DIT)的基-2FFT算法,又稱為庫利-圖基算法,它是很多離散傅立葉變換快速算法之一。設序列x(n)長度N=2,L為正整數(若不滿足該條件,則在序列后面加上若干個零值以達到這個條件)。按n的奇偶把x(n)分解為兩個N/2點的子序列(即大點數DFT化成小點數DFT,通過子序列

20、的DFT實現計算整個序列的DFT。 (2-1)則,序列x(n)的N點DFT為:X(k)=DFTx(n)= = = (2-2)利用系數的可越性質=,上式可以表示為X(k)=X(k)+W (2-3)k=0,1,2,3,N-1其中需要注意的是X(k)與X(k)分別是x(r)及x(r)的N/2點的DFT,周期為N/2,所以由(3-3)僅可以得到N點序列X(k)的前N/2點,X(k)的后N/2點為X(k+N/2)=X(k+N/2)+W(k+N/2)由X(k)與X(k)的周期性及可得X(k+N/2)= X(k)- WX(k) (2-4)綜合上面的結果,x(n)的N點DFT可以由x(n)奇偶子序列x(r),

21、x(r)的N/2點的DFT表示,即 (2-5)至此,N點DFT到N/2點DFT的轉換完成了。式(2-5)的運算關系可以用一個流程圖來描述,用圖2-6所示。圖2-6 蝶形運算流程圖2.4.3編程思想及程序框圖在一般情況下,進行FFT運算的序列至少都有幾百點的長度,因此需要編制FFT算法程序以便能夠利用計算機來快速進行計算。輸入倒位序,輸出順序的DIT-FFT的編程思想, N必須等于2的正整數冪,FFT的計算程序可以分為兩部分:一部分是倒序重排,另一部分是用三層嵌套的循環來完成M=log2N次迭代。倒序重排:由于正序中數的遞增量為1,這主要是由于下一個數都是前一個數從最右邊加入一個1;倒序時,每個

22、數都是前一個數的最左邊加1,進位是向前進位,一個正序對應著一個倒序。因此可以根據這個原理進行倒序的計數,如果當前數最左邊位為1,則清零,檢查下一位,如果還是為1,再清零,直到遇到0為止,把這個0加為1,這就實現了倒序計數。三層循環的功能是:最里的一層循環完成相同W的蝶形運算,中間的一層循環完成因子的變化,而最外的一層循環則是完成M次迭代過程。三層循環程序框圖如圖2-7所示:圖2-7 FFT三層循環程序框圖 基于以上思想,給出用C#編寫FFT的關鍵代碼,見附錄 。2.4.4 FFT的效果圖如圖2-8與圖2-9為靜音時刻和播放中的某一時刻將采樣到的數據得到的FFT后的功率譜。靜音中頻譜的值都大約為

23、零,在播放時刻的頻譜值左右兩邊完全對稱,符合理論。采樣頻率是20KHz,每兩個柱之間相差的頻率是20K/64312Hz。圖2-8 靜音時FFT的效果圖圖2-9 有音樂時FFT的效果圖3. 下位機數據采集和傳輸3.1 概述下位機實現的功能是對音樂信號的采樣和數據的傳輸。對音樂的采樣是采用TLC0831這款AD芯片,每次采樣一次數據就通過串口傳送給上位機,當上位機接受到了一定的數據量之后,會告訴下位機不要發送數據了,此時下位機不會再采樣音樂信號,等待上位機分析完數據之后,上位機傳送給下位機每個水泵控制子系統的控制信號,下位機通過nRF24l01無線傳輸給水泵控制子系統,再一次對音樂信號進行采樣。

24、3.2 對音樂信號的采樣與數據傳輸 音樂采樣所用的AD芯片是TLC0831,查閱手冊可知其工作時序圖(如圖3-1)和主要特性如下:(1)比例尺工作或用5V 基準電壓;(2)8 位分辨率;(3)單5V 供電, 信號輸入范圍0 5V ;(4)控制輸入和輸出與TTL 和MOS 兼容;(5)在輸入頻率(CK 引腳)為250kHz 時,轉換時間約32s ;(6)總非調整誤差:±1LSB 。圖3-1 TLC0831工作時序圖由時序圖可以看出, CS 變為低電平后, 經過一個時鐘即CLK1 的時間間隔, 使多路復用器選定的通道穩定, D0 便脫離高阻態, 進入低電平狀態, 電備工作就緒。第2 個C

25、 LK 到來, 轉換開始。轉換過程中, 轉換數據同時從D0輸出。第2 個CLK 下降沿后, D0 輸出最高位MSB , 8 個時鐘后轉換完成(即第9 個C LK 下降沿后移出LSB), 此后若CS 仍為低, D0 一直保持LS B 值。CS 變高后D0 呈高阻態, 等待下一次轉換開始。音樂采集電路如圖3-2所示,先由OPA2227講音頻信號放大之后,再由TLC0831采樣。52單片機的P2.0,P2.1,P2.2分別接的TL0831的DO,CS,CLK引腳。圖3-2 音樂采集電路由以上分析給出音樂采集的時序圖,如圖3-3所示圖3-4 音樂采集時序圖3.3 下位機采樣數據圖圖3-5與圖3-6為靜

26、音和播放某一時刻的采樣的數據圖,靜音時刻只有2.5V直流偏置,在播放時刻產生的音頻信號使數據在0-5V之間變化。圖3-5 靜音時刻音樂的采樣圖圖3-6 播放時刻音樂的采樣圖4. 基于nRF24L01無線傳輸子系統4.1 nRF24L01模塊硬件設計本系統采用了Nordic公司新推出的工作于2.4 GHz頻段的NRF24l01射頻芯片和52單片機控制實現短距離無線數據通信。nRF24L01芯片工作于2.4 GHz全球開放頻段,工作速率O2 Mb/s,最大發射功率0 dBm,外圍元件極少,內置硬件CRC校驗和多點通信地址控制,集成了頻率合成器,晶體振蕩器和調制解調器. 它的主要特點如下:1)低工作

27、電壓: 1.93.6 V低電壓工作;2)高速率: 2Mbps,由于空中傳輸時間很短,極大地降低了無線傳輸中的碰撞現象;3)多頻點: 125頻點,滿足多點通信和跳頻通信需要;4)超小型:體積小巧, 5mm ×5mm;5)低功耗:當工作在應答模式通信時,快速地控制傳輸及啟動時間,極大地降低了電流消耗;6)低應用成本: nRF24L01的SPI接口可以利用單片機的硬件SPI口連接或用單片機I/O口進行模擬,內部有FIFO可以與各種高低速微處理器接口,便于使用低成本單片機.系統硬件主要由nRF24L01 射頻芯片和52單片機成。因為52單片機沒有SPI接口,所以需要用I/O口來模擬SPI接口

28、。nRF24l01與52單片機的連接電路圖如圖4-1所示。nRF24L01與52單片機通過MOSI,MISO和SCK組成的SPI接口連接. 單片機接11.0592MHz的低頻晶振工作, nRF24L01 的工作頻率為16MHz,由低速的單片機控制高速收發的射頻芯片正是本系統的特點.系統由低壓3.3 V供電. 系統處于發射模式時,耗電約為3.5 mA,啟動發射時約為13mA,接收模式時耗電約為2lmA. 由于系統上電時,單片機通過SPI,對nRF24L01進行狀態配置。若處于發射模式單片機就把數據通過輸入到nRF24L01,當CE信從1變為0時, nRF24L01就把從單片機收到的數據以2Mbi

29、t/ s的速率發射出去;系統設為接收模式,nRF24L01就一直在監測天線上的信號;若有同頻的信號,就收下并打開信息包讀取地址,地址與自己的相同就取出信息包里的有用數據,并使IRQ信號為低電平通知單片機來取走。圖4-1 nRF24l01與單片機連接電路圖4.2 nRF24L01模塊軟件設計在本設計的系統中,各個子模塊接受到的數據都由下位機發送,子模塊根據得到的數據去控制相應水泵的輸入電壓,而且nRF24l01有硬件CRC校驗,所以數據傳輸方向使用單向傳輸就可以滿足要求,子模塊無需發送數據給下位機。即上位機對nRF24l01的操作只有初始化和發送數據,子模塊對nRF24l01的操作有初始化的接受

30、數據。本系統中采用ShockBurstTMMode完成數據的發送和接收. 下面具體介紹發送和接收的軟件編程。nRF24l01發送模式的過程為:1)配置寄存器位PRIM_RX為低;2)當MCU有數據要發送時,接收節點地址和有效數據通過SPI接口寫入nRF24L01。 當CSN為低時發送數據被不斷地寫入;3)設置CE為高,啟動發射. CE高電平持續時間最小為10s;4)啟動內部16 MHz時鐘,MCU設置發送速度為1Mbps,無線發送數據;5)若啟動了自動應答模式, nRF24L01 立即進入接收模式;6)如果CE置低,則系統進入待機模式。根據以上思路,給出下位機的相關程序:初始化:SPI_Wri

31、te_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 寫本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 寫接收端地址,P0SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, RX_ADDRESS_P1, RX_ADR_WIDTH); / 寫接收端地址,P1SPI_Write_Buf(WRITE_REG + RX_ADDR_P2, RX_ADDRESS_P2, RX_ADR_WIDTH); / 寫接收端地址,P2SPI_

32、Write_Buf(WRITE_REG + RX_ADDR_P3, RX_ADDRESS_P3, RX_ADR_WIDTH); / 寫接收端地址,P3SPI_Write_Buf(WRITE_REG + RX_ADDR_P4, RX_ADDRESS_P4, RX_ADR_WIDTH); / 寫接收端地址,P4SPI_Write_Buf(WRITE_REG + RX_ADDR_P5, RX_ADDRESS_P5, RX_ADR_WIDTH); / 寫接收端地址,P5/SPI_RW_Reg(WRITE_REG +SETUP_RETR , 0x1f); /不自動重發SPI_RW_Reg(WRITE_R

33、EG + EN_AA, 0x3f); / 頻道0,1,2,3,4,5自動ACK應答允許SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x3f); / 允許接收地址只有頻道0,1,2,3,4,5, SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 設置信道工作為2.4GHZ,收發必須一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設置通道0接收數據長度,本次設置為3字節SPI_RW_Reg(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH); /設置通道1接收數據長度,本

34、次設置為3字節SPI_RW_Reg(WRITE_REG + RX_PW_P2, RX_PLOAD_WIDTH); /設置通道2接收數據長度,本次設置為3字節SPI_RW_Reg(WRITE_REG + RX_PW_P3, RX_PLOAD_WIDTH); /設置通道3接收數據長度,本次設置為3字節SPI_RW_Reg(WRITE_REG + RX_PW_P4, RX_PLOAD_WIDTH); /設置通道4接收數據長度,本次設置為3字節SPI_RW_Reg(WRITE_REG + RX_PW_P5, RX_PLOAD_WIDTH); /設置通道5接收數據長度,本次設置為3字節SPI_RW_Re

35、g(WRITE_REG + RF_SETUP, 0x07); /設置發射速率為1MHZ,發射功率為最大值0dB發射數據:CE=0;/StandBy I模式SPI_RW_Reg(WRITE_REG + RF_CH, 30); / 設置信道工作為2.4GHZ,收發必須一致 SPI_Write_Buf(WRITE_REG + RX_ADDR_P3, TX_ADDRESS, TX_ADR_WIDTH); / 裝載接收端地址SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); / 裝載數據SPI_RW_Reg(WRITE_REG + CONFIG, 0x

36、0e); / IRQ收發完成中斷響應,16位CRC,主發送CE=1; /置高CE,激發數據發送inerDelay_us(20);nRF24l01接收模式和發送模式的設置過程大概相同,具體過程為:1)配置寄存器位: PRIM_RX為高;2)打開所使用的接收數據通道,自動應答功能,有效數據寬度由設置;3)設置CE為高啟動接收模式;4) 130s后nRF24L01開始檢測空中信息;5)接收到有效的書包后,數據存儲在RX_FIFO中,同時RX_DR位置高;6)如果啟動自動應答功能,則發送應答信號;7)MCU設置CE腳為低,進入待機模式。根據以上思路給出子模塊的nRF24l01相關的程序:初始化:各個子

37、模塊的對nRF24l01的初始化和下位機的初始化大致相同,只需要給在最后加上一段函數把nRF24l01設置為接受模式:CE=0;SPI_RW_Reg(WRITE_REG + CONFIG, 0x07); / IRQ收發完成中斷響應,16位CRC,主接收CE = 1; inerDelay_us(130);接受數據:當有數據到達的時候會產生中斷,且相應的狀態標志位會置位,所以在相應的中斷函數里面加上以下程序。unsigned char revale=0;sta=SPI_Read(STATUS);/ 讀取狀態寄存其來判斷數據接收狀況if(RX_DR)/ 判斷是否接收到數據 CE = 0; /SPI使

38、能SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);/ read receive payload from RX_FIFO bufferrevale =1;/讀取數據完成標志SPI_RW_Reg(WRITE_REG+STATUS,sta); /接收到數據后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標志return revale;5. 水泵控制系統5.1 水泵的選定方案一:采用變頻器控制交流潛水泵,調速方便、容易,只要控制口電流范圍為4到20毫安就可以,精度高,缺點為價格偏貴。方案二:采用直流潛水泵,這樣會增加電路的電路復雜性

39、,控制經度偏低,優點是價格偏低。本系統是小型系統,成本問題必須考慮,控制精度要求不是很高。根據上述說明,選擇方案二。5.2 水泵控制原理圖的設計直流水泵的揚程取決于輸入電壓的大小,所以可以改變潛水泵輸入電壓的大小來改變水柱的高度。在本設計中采用的直流母線是12V。采用BUCK電路來實現DC/DC電壓變換。其原理圖如5-1所示:圖5-1 BUCK電路BUCK電路在電流連續模式下的工作原理,其中D為驅動脈沖占空比,T為驅動脈沖周期:當t0,DT時,控制信號使J1導通,D4截止,向L1充磁,向電容充電。Vin=U(t)+Vout(t) (5-1)當tDT,T時,J1截止,D4續流,輸出電壓靠L1與電

40、容放電維持。0= -U(t)+Vout(t) (5-2)根據(1),(2)電感伏秒平衡可知:= (5-3)得:Vout=DVin (5-4)由(5-4)可知只需要改變占空比D就可以控制直流水泵兩端的電壓,從而改變水泵揚程的大小。TL494是一種固定頻率脈寬調制電路,它包含了開關電源控制所需的全部功能,廣泛應用于單端正激雙管式、半橋式、全橋式開關電源的設計。在本次設計中使用TL494來產生DC/DC的PWM驅動信號。TL494的內部結構圖如5-2圖所示:圖5-2 TL494的內部結構圖TL494內置了線性鋸齒波振蕩器,振蕩頻率可以通過5腳和6腳外部的一個電阻和一個電容進行調節。公式為:f=1.1

41、/(Rt*Ct)。輸出脈沖的寬度是通過電容CT上的正極性鋸齒波電壓與另外兩個控制信號進行比較來實現。功率輸出管Q1和Q2受或非門控制,僅當雙穩觸發器的時鐘信號為低電平時才工作,亦即鋸齒波電壓大于控制信號期間工作。因此,當控制信號增大時,輸出的脈沖寬度將減小。PWM驅動信號原理如圖5-3所示;TL494的2腳接單片機DA轉換得到的基準電壓。1腳接DC/DC輸出電壓,10腳產生PWM信號。這樣只用改變單片機DA出來的信號,機可以改變占空比D,從而控制水泵的揚程。5-3 PWM驅動信號原理圖5.3 水泵控制系統的實物圖實物圖如5-4所示,我只做了三個水泵控制,控制水泵1,2,4通道。輸入的電源由太陽

42、能控制系統供給,輸出接直流水泵。5-4 水泵控制子系統實物6. 功放6.1 功放電路設計在音樂噴泉中,音樂是少不了的,所以一個好的功放能給人的很好的享受。在本系統中,我采用的功放是NE5532+LM1785的組合,NE5532作為前級,LM1875作為后級驅動。NE5532是高性能低噪聲雙運算放大器(雙運放)集成電路。與很多標準運放相似,但它具有更好的噪聲性能,優良的輸出驅動能力及相當高的小信號帶寬,電源電壓范圍大等特點。因此很適合應用在高品質和專業音響設備、儀器、控制電路及電話通道放大器。用作音頻放大時音色溫暖,保真度高,在上世紀九十年代初的音響界被發燒友們譽為“運放之皇”,至今仍是很多音響

43、發燒友手中必備的運放之一。而LM1875是一款功率放大集成塊! 是美國國半公司研發的一款功放集成塊! 它在使用中外圍電路少 而且有完善的過載保護功能! 它為五針腳形狀! 一針腳為信號正極輸入 二針腳為信號負極輸入三針腳接地 五針腳電源正極輸入 四針腳為信號輸出 。LM1875采用TO-220封裝結構,形如一只中功率管,體積小巧,外圍電路簡單,且輸出功率較大。該集成電路內部設有過載過熱及感性負載反向電勢安全工作保護。立體聲有左右兩個通道且左右兩個通道的的電路完全相同,下面給出左聲道的功放電路圖如圖6-1所示。圖6-1 左聲道功放電路圖6.2 喇叭保護板電路設計在我們開機和關機的時候功放會產生尖峰

44、,所以在早期的功放里面會聽到“啪”的一聲,這樣會對喇叭產生損壞。所以在一個功放里面喇叭保護板能很好的避免尖峰脈沖,提高喇叭的使用壽命。UPC1237是一款經典的喇叭保護IC,具有很寬的工作電壓范圍(2560V),具備開機延遲、功放輸出端直流漂移檢測、即時關機功能。圖6-2中,7腳為延時檢測,延時后6腳控制常開繼電器閉合,喇叭開始工作,避免了開機沖擊; 2腳為功放輸出中點直流漂移檢測接兩個電阻后接功放左右聲道輸出,當檢測到有直流輸出時(一般為零點幾伏),切斷繼電器,保護喇叭;4腳為關機檢測,因為4腳是從功放變壓器取電,且濾波電容較小,當關閉功放電源時,馬上能檢測到電壓跌落,繼而切斷繼電器,此時功

45、放因為有大容量濾波電容存在不會馬上停止工作,而喇叭已被切斷,從而避免了關機沖擊。圖6-2 喇叭保護板6.3 功放PCB 下面給出完整的功放PCB板圖,如圖6-3所示。圖6-3 功放PCB7. 太陽能子系統7.1 太陽能電池太陽能電池是通過光電效應或者光化學效應直接把光能轉化成電能的裝置。以光電效應工作的薄膜式太陽能電池為主流,而以光化學效應原理工作的太陽能電池則還處于萌芽階段。太陽光照在半導體p-n結上,形成新的空穴-電子對。在p-n結電場的作用下,空穴由n區流向p區,電子由p區流向n區,接通電路后就形成電流。太陽能電池的等效電路模型(如圖7-1所示)能夠幫助我們深入了解這種器件的工作原理。理

46、想PV電池的模型可以表示為一個感光電流源并聯一個二極管。光源中的光子被太陽能電池材料吸收。如果光子的能量高于電池材料的能帶,那么電子就被激發到導帶中。如果將一個外部負載連接到PV電池的輸出端,那么就會產生電流。圖7-1 電池的等效電路模型圖7-1由一個串聯電阻(RS)和一個分流電阻(rsh)和一個光驅電流源構成的光伏電池等效電路。由于電池襯底材料及其金屬導線和接觸點中存在材料缺陷和歐姆損耗,PV電池模型必須分別用串聯電阻(RS)和分流電阻(rsh)表示這些損耗。串聯電阻是一個關鍵參數,因為它限制了PV電池的最大可用功率(PMAX)和短路電流(ISC)。PV電池的串聯電阻(rs)與電池上的金屬觸

47、點電阻、電池前表面的歐姆損耗、雜質濃度和結深有關。在理想情況下,串聯電阻應該為零。分流電阻表示由于沿電池邊緣的表面漏流或晶格缺陷造成的損耗。在理想情況下,分流電阻應該為無窮大。7.2 太陽能控制器太陽能控制器全稱為太陽能充放電控制器,是用于太陽能發電系統中,控制多路太陽能電池方陣對蓄電池充電以及蓄電池給太陽能逆變器負載供電的自動控制設備。圖7-2 為小功率太陽能控制器電路結構圖, 蓄電池和太陽能電池陣列直接禍合, 當白天有陽光時, 太陽能電池陣列向蓄電池充電, 當夜晚或陰天陽光不足時, 蓄電池放電, 保證負載不停電。圖7-2 太陽能控制器電路結構圖在本系統中采用的太陽能控制器如圖7-3所示:圖

48、7-3 本系統使用的太陽能控制器安裝使用說明:1.導線的準備:使用與電流想匹配的導線,計劃好長度,將接控制器一側的接線頭剝去5mm的絕緣,盡可能減少接線的長度。已減少電的損耗。2.連接蓄電池:注意“+”,“-”極不要接反。如果正確接線,蓄電池指示燈會亮,否則需要檢查線路是否正確。3.連接太陽能板:注意“+”,“-”極不要接反。如果有陽光,太陽能板指示燈會亮,否則檢查線路是否正確。4.連接負載:注意“+”,“-”極不要接反。電流不能超過控制器的額定電流。結 論本文設計的太陽能音樂噴泉控制系統是旅游景點內用的小型音樂噴泉,充分體現了經濟型和實用性的原則,并且噴泉的安裝方便、維護簡單,能夠滿足用戶的

49、需求。在系統設計中,運用52單片機與上位機相結合來控制水泵,結合了52單片機控制簡單和上位機信號處理的優越能力的特點。并給出了小型太陽音樂噴泉的實物模型。本系統是對音樂的頻域信號分析后給出的水泵控制信號,所以此系統能很好的適應不同的音樂。不足之處在于: 本次設計中只是給出了太陽能系統的小型實物模型。對噴泉的控制方式單一,只對水泵的水柱高度進行了控制,例如燈光,角度,形狀沒有進行控制。而且沒有對系統的防水,水泵的整體布局等其他方面進行設計。參考文獻1 肖揚, 肖晨帆. VS2012 下的Ribbon 界面開發J. 計算機安全與維護. 20132 陸瑤, 景鑫. 基于C# 環境的單片機( 89C5

50、1) 與PC 的串行通信J.信息技術.2009.3 劉榮, 圈圈教你玩USB,北京航空航天大學出版社M. 20094 陳麗娟, 常丹華. 基于nRF2401的無線數據通信 J . 電子器件, 2006, 1: 2482250.5 魏立誠, 朱桂林. 基于 DirectShow 的視頻采集系統的設計與實現J. 計算機工程,2006.6 張長森, 數字信號處理M, 中國電力出版社, 20077 李健, 許祖, 武王大晶. 模數轉換器T LC0831 的應用J.電測和儀表.8 張占松, 蔡宣三. 開關電源的原理與設計M. 北京: 電子工業出版社, 2004.9 吳春華, 光伏發電系統逆變技術研究D,

51、 上海大學博士學士論文. 2008.10 張艷紅, 新型太陽能控制器的研制J, ENERGY CONSERVATION,2006致 謝我在這次畢業設計過程中,得到了老師們和同學們的大力幫助。特別要感謝老師對我的指導,在將近三個月的設計中,從最初的選題、方案擬定及方案確定,到具體的設計過程中,所遇到的問題和困難,如何解決這些問題及困難,以及最后的設計審查,老師都給以了細心的指導和糾正,使得我的畢業設計才順利的圓滿的完成。此外,還要感謝自動化學院的全體老師,是他們給我打下了堅實的基礎,為我的畢業設計做出了良好的鋪墊,也為我的畢業設計提供了不少的意見和建議,在此表示衷心的感謝。通過這次畢業設計,我學

52、會了如何綜合運用所學的專業知識,如何查閱相關資料,并從中提取有用信息來幫助我完成設計。使我深深地感到:作為一個設計者,如何進行一個產品的開發和設計,并對其設計過程如何進行優化選擇有了初步的認識,為以后的工作打下了堅實的基礎。我所獲得的這些知識都是長春工程學院對我辛勤培養的結果。因此,我要感謝母校的各級領導及老師們,謝謝你們四年來對我的教育和引導。由于本人水平有限、經驗不足、時間倉促,設計中難免存在不足之處,敬請各位老師批評指正。附錄 附錄 FFT變換代碼public void ToFFT() /* following code invert sequence */for (int i=0;i&

53、lt;samplesNumber;i+ )/*x0=x1=x2=x3=x4=x5=x6=0;x0=i&0x01; x1=(i/2)&0x01; x2=(i/4)&0x01; x3=(i/8)&0x01;x4=(i/16)&0x01; x5=(i/32)&0x01; x6=(i/64)&0x01;xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6;dataIxx=dataRi;*/ int xx=0; int x = new intn;for(int j=0;j<N;j+)xj=0;for(int j=0;j

54、<N;j+)xj=(i>>j)&0x01;for(int j=0;j<N;j+)xx+=xj*(samplesNumber>>1>>j);dataIxx=dataRi;for ( int i=0;i<samplesNumber;i+ )dataRi=dataIi; dataIi=0; /* following code FFT */for (int L=1;L<=N;L+ ) /* for(1) */ int b =1; int i;b=1; i=L-1;while ( i>0 ) b=b*2; i-; /* b= 2(L-1) */for (int j=0;j<=b-1;j+ ) /* for (2) */ int p; p=1; i=n-L;while ( i&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論