版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、大連理工大學城市學院 本科生畢業(yè)設計(論文)學 院: 電子與自動化學院 專 業(yè): 電子信息工程 學 生: 馮 傳 指導教師: 馬 彧 完成日期: 2010年5月30日 大連理工大學城市學院本科生畢業(yè)設計(論文)聲音導引系統(tǒng)的軟件設計 總計 畢業(yè)設計(論文) 49 頁表 格 7 表插 圖 14 幅聲音引導系統(tǒng)的軟件設計摘 要做為一套完整的電子設計系統(tǒng)不可缺少的一部分,軟件設計成為了實現系統(tǒng)智能化的靈魂。一段合理、高效的程序代碼,可使整套系統(tǒng)在運作過程中利用最少的硬件資源完成最高效率的動作響應。在聲音引導系統(tǒng)中,通過軟件的對信號的分析和對硬件的控制,完成了一系列判斷、分析、執(zhí)行的動作,最后使整套系
2、統(tǒng)有序的運行。本軟件的設計,基于以單片機89C511為控制核心、以RF24L01為通信模塊、以蜂鳴器為音源、以mic頭為聲音接收裝置等硬件的系統(tǒng)而設計?;A的硬件部分分為可移動聲源部分和聲源引導部分,兩者均以89C51為控制核心。移動聲源部分由可運動的小車、蜂鳴發(fā)聲裝置、無線數據收發(fā)裝置等組成;聲音引導部分由3只聲音接收裝置、無線數據收發(fā)裝置等組成。整套系統(tǒng)通過一系列有序數據的處理,分析出聲源離各個聲音接收裝置的時間差來判斷移動聲源與指定位置間距離的誤差信號,并通過無線發(fā)射模塊將此誤差信號發(fā)送至可移動聲源,并對可移動聲源進行控制和引導。實現了可移動聲源(小車)在規(guī)定時間內,到達指定位置的要求。
3、此外,為了擁有更好的人機交互,本系統(tǒng)增加了點陣式液晶顯示器1602。關鍵詞:聲音引導 無線收發(fā) 誤差信號 微控制處理器 聲音探測AbstractAs a complete electronics design system is an integral part, software designed to be intelligent to realize the system, then the soul.A reasonable, efficient code, make the entire system in operation during the use of hardware r
4、esources to complete at least the most efficient action to respond.The voice guidance system, through the software, the signal analysis and control hardware to complete a series of judgments, analysis, implementation of the action, the final running order so that the entire system.The software desig
5、n, based on the 89C51 microcontroller as the control center to RF24L01 for the communications module to the buzzer as the sound source to mic head for the sound receiving device such as hardware-based systems are designed.Hardware-based moving sound source can be divided into some parts of sound sou
6、rce guide.89C51 to control both to the core: move the sound source in part by the movement of the car can be, beep sound devices, wireless data transceiver device etc; voice guided in part by the three sound receiver, wireless data transmitters and receivers and other components.The entire system th
7、rough a series of ordered data processing, analysis of the various sounds from the sound source receiving device to determine the time difference and specify the location of moving sound between the distance of the error signal, and the wireless transmitter module by this error signal can be sent to
8、 the mobile soundsource, and mobile source control and guidance.Achieve mobile source (car) within a specified time, to reach the designated position requirements.In addition, in order to have better human-computer interaction, the system increased the 1602 dot-matrix liquid crystal displays.Keyword
9、s: Voice guidance;Wireless transceiver;Different signal;Micro Control Unit(MCU)目 錄摘 要I第1章 緒 論11.1 課題背景11.2 課題任務及要求21.3 基本要求41.4 課題內容及安排4第2章 物聯網簡介62.1 軟件的發(fā)展史62.2 軟件的重要作用82.3 通用語言之父-c語言92.4 軟件的常用模型11第3章 物聯網的應用133.1 系統(tǒng)模型設計133.2 系統(tǒng)誤差信號的分析143.3 控制理論與誤差計算153.4 系統(tǒng)組成163.5 整體方案論證與分析17第4章 不停車收費系統(tǒng)在物聯網中的應用184.1
10、 總體思路流程184.2 聲音引導部分程序設計204.3 可移動聲源部分程序設計234.4 無線部分程序設計254.4.1 無線模塊方案分析254.4.2 nRF24L01概述254.4.3 nRF24L01引腳功能及描述264.4.4 nRF241L01工作模式274.4.5 nRF241L01工作原理284.4.6 nRF241L01配置字284.4.7 nRF24L01程序設計314.5 顯示部分程序設計344.5.1 顯示模塊方案分析344.5.2 1602簡介344.5.3 LCD1602管腳功能344.5.4 LCD1602字符集374.5.5 LCD1602顯示地址394.5.6
11、 LCD1602程序設計414.5.7 主要程序示意42第5章 結合硬件部分的整體調試455.1 測試原理與方法455.2 測試使用儀器與型號455.3 測試數據455.4 測試結果分析46第6章 聲音定位其他方法的介紹476.1 方法介紹476.2 聲源定位常見三種方法的應用48第7章 結 論49致 謝50參考文獻51附件一:1602液晶顯示部分程序52附件二:無線收發(fā)部分程序56附件三:小車電機控制部分程序64III聲音引導系統(tǒng)的軟件設計第1章 緒 論1.1 課題背景聲音引導系統(tǒng)的設計,是基于今年來新興的聲音定位系統(tǒng)相關課題而提出的一種移動聲源在一定區(qū)域范圍內尋找某一特定目標的設計。在現實
12、生活中,這種聲音定位的技術能在軍事、商務、偵查等場所得以運用。在軍事方面,一種名叫“反狙擊手探測系統(tǒng)”的裝置,在近來的武器產品展上平凡亮相。這種反狙擊手聲測定位系統(tǒng)確定狙擊手的位置,是通過接收并測量狙擊步槍的膛口激波和彈丸行產生的沖擊波或聲波來實現的,系統(tǒng)的關鍵部件是可以感應到爆炸并能測出爆炸聲的準確位置,來幫助戰(zhàn)斗中的戰(zhàn)士快速的找到敵方狙擊手的所在。 如圖1-1所示為軍用反狙擊手探測系統(tǒng)。圖1-1 反狙擊手探測系統(tǒng)在商務領域,一種根據發(fā)言人聲音來源的不同自動辨別發(fā)言者的“會議系統(tǒng)麥克風與攝像機的智能聯動跟蹤”1裝置,正在不斷的完善當中。這種視像跟蹤是指與會人員按下麥克風發(fā)言時,聯動觸發(fā)高速攝
13、像機,調用其預置位指向當前發(fā)言者,將其面部表情特寫圖像輸送到投影大屏幕或監(jiān)視器或錄像設備,特別是輸送給遠程視像會議系統(tǒng),通過網絡傳送到遠方會場,讓不在同一地點的兩方人員實現面對面零距離會談。這些領域的應用都與聲音的定位密不可分,當然,聲音引導系統(tǒng)的設計也如此,我們只需在聲音定位的基礎上再加上位置的移動,便可實現引導。1.2 課題任務及要求設計并制作一聲音導引系統(tǒng),如圖1-2所示。圖1-2 聲音引導系統(tǒng)圖中,AB與AC垂直,Ox是AB的中垂線,O'y是AC的中垂線,W是Ox和O'y的交點。 聲音導引系統(tǒng)有一個可移動聲源S,三個聲音接收器A、B和C,聲音接收器之間可以有線連接。聲音
14、接收器能利用可移動聲源和接收器之間的不同距離,產生一個可移動聲源離Ox線(或O'y線)的誤差信號,并用無線方式將此誤差信號傳輸至可移動聲源,引導其運動。 可移動聲源運動的起始點必須在Ox線右側,位置可以任意指定。 1.3 基本要求 (1)制作可移動的聲源??梢苿勇曉串a生的信號為周期性音頻脈沖信號,如圖2所示,聲音信號頻率不限,脈沖周期不限。 (2)可移動聲源發(fā)出聲音后開始運動,到達Ox線并停止,這段運動時間為響應時間,測量響應時間,用下列公式計算出響應的平均速度,要求平均速度大于 5cm/s。 (3)可移動聲源停止后的位置與Ox線之間的距離為定位誤差,定位誤差小于3cm。 (4)可移動
15、聲源在運動過程中任意時刻超過Ox線左側的距離小于5cm。 (5)可移動聲源到達Ox線后,必須有明顯的光和聲指示。 (6)功耗低,性價比高。 (7)其他:在可移動聲源兩側必須有明顯的定位標志線,標志線寬度0.3cm且垂直于地面;誤差信號傳輸采用的無線方式、頻率不限;可移動聲源的平臺形式不限;可移動聲源開始運行的方向應和Ox線保持垂直;不得依靠其他非聲音導航方式;移動過程中不得人為對系統(tǒng)施加影響;接收器和聲源之間不得使用有線連接。 1.4 課題內容及安排本設計主要針對聲音引導系統(tǒng)的軟件設計,主要分為:移動聲源發(fā)聲模塊的程序設計,聲音檢測模塊的誤差處理設計,用于led點陣屏1602顯示模塊的程序設計
16、,以及用于無線數據傳輸的無線收發(fā)模塊的程序設計。本文主要完成各部分模塊的程序設計,以幫助相配套的硬件部分的正常運行。本文安排如下:第一章:緒論,概述論文寫作背景。第二章:闡述軟件在整個電子產品設計過程中的重要作用。第三章:聲音引導系統(tǒng)的總體方案的論證。第四章:分模塊的介紹各部分功能的軟件的實現。第五章:結合硬件系統(tǒng)聯合調試,包括出現的問題和解決方案以及調試結果第六章:結論第七章:其他聲音定位方法的介紹第2章 軟件在電子產品中的重要作用2.1 軟件的發(fā)展史軟件的產生始于早期的機械式計算機的開發(fā)10。從19世紀起,隨著機械式計算機的更新,出現了穿孔卡片,這種卡片可以指導計算機進行工作。但是直到20
17、世紀中期現代化的電子計算機出現之后,軟件才真正得以飛速發(fā)展。在世界上第一臺計算機ENIAC上使用的也是穿孔卡片,在卡片上使用的是專家們才能理解的語言,由于它與人類語言的差別極大,所以我們稱之為機器語言。也就是第一代計算機語言。這種語言本質上是計算機能識別的唯一語言,但人類卻很難理解它,以后的計算機語言就是在這個基礎上,將機器語言越來越簡化到人類能夠直接理解的、近似于人類語言的程度,但最終送入計算機的工作語言,還是這種機器語言。高級語言的任務就是將它翻譯成易懂的語言,而這個翻譯工作可以由計算速度越來越高、工作越來越可靠的計算機自己來完成。計算機語言發(fā)展到第二代,出現了匯編語言。比起機器語言,匯編
18、語言大大前進了一步,盡管它還是太復雜,人們在使用時很容易出錯誤,但畢竟許多數碼已經開始用字母來代替。簡單的“0、1”數碼誰也不會理解,但字母是人們能夠閱讀并拼寫的。第二代計算機語言仍然是“面向機器”的語言,但它已注定要成為機器語言向更高級語言進化的橋梁。當計算機語言發(fā)展到第三代時,就進入了“面向人類”的語言階段。你可以閱讀、并直接用人類的語言來輸入。對我們漢語來說,目前還不能用中文漢字來輸入指令,這主要是因為中文的輸入還沒有一個非常好的手段。第三代語言也被人們稱之為“高級語言”。高級語言是一種接近于人們使用習慣的程序設計語言。它允許用英文寫解題的計算程序,程序中所使用的運算符號和運算式子,都和
19、我們日常用的數學式子差不多。例如用BASIC高級語言,要想計算7×6的結果,只需寫出 PRINT7*6即可,送入計算機后將自動進行計算并打印出結果。一般人都能很快學會使用計算機,并且完全可以不了解機器指令,也可以不懂計算機的內部結構和工作原理,就能編寫出應用計算機進行科學計算和事務管理的程序。高級語言容易學習,通用性強,書寫出的程序比較短,便于推廣和交流,是很理想的一種程序設計語言。高級語言發(fā)展于50年代中葉到70年代,有些流行的高級語言已經被大多數計算機廠家采用,固化在計算機的內存里。如 BASIC語言,現在已有128種不同的 BASIC語言在流行,當然其基本特征是相同的。除了BA
20、SIC語言外,還有FORTRAN(公式翻譯)語言、 COBOL(通用商業(yè)語言)、 C語言、 DL/I語言、 PASCAC語言、ADA語言等250多種高級語言。高級語言是一種動用語言,要完成某一個簡單的計算步驟,你必須詳細準確地給出每一條指令。如解決經營管理活動中天天都要碰到的財務清賬、庫存等問題,就須編無數條程序,而情況一經變化,原有的設計程序則要修改,這樣就使錯誤的可能性增大,工作效率大大降低。為了解決這個問題,第四代計算機語言,即“實用語言”出現了。第四代語言是使用第二代第三代語言編制而成的,每一種語言都有其特定的應用范圍。實際上,實用語言發(fā)展到今天已出現了一些有運用性質的第四代語言,如“
21、LO- TOS123”。第四代語言的特點就是它們只需要操作人員輸入原始數據,并命令它們執(zhí)行。至于怎樣執(zhí)行則由它們本身來決定的,它已經在相當程度上替代了人腦的工作。第四代語言的特點還在于:操作者幾乎不需要經過特殊訓練,幾乎所有的“實用語言”都有“幫助(Help)”功能,你可以遵照計算機給出的指示來完成你的工作,第二次就完全不用幫助了!計算機語言是人與計算機進行對話的最重要的手段。目前人們對計算機發(fā)出的命令幾乎都是通過計算機語言進行的。人與人之間的交流不僅僅依靠語言,還有一些其它的方式,比如人的手勢、眼神等。由此我們可以推測,在不久的將來,計算機與人類的交流將是全方位的,而不再僅僅依靠計算機語言。
22、那時,人們將更方便、更容易地操縱和使用計算機?,F代電子計算機技術的飛速發(fā)展,離不開人類科技知識的積累,離不開許許多多熱衷于此并嘔心瀝血的科學家門的探索,正是這一代代的積累才構筑了今天的“信息大廈”。下面這個按時間順序展現的計算機發(fā)展簡史,雖然不是很詳細的描述這一輝煌歷程,但我們同樣可以從中感受到科技發(fā)展的艱辛及科學技術的巨大推動力。2.2 軟件的重要作用電子產品系統(tǒng)的設計,已經從單純的硬件設計,轉變?yōu)橐杂布檩d體的軟硬件同步設計過程,而且各種復雜功能借助軟件設計實現的比重正在日益加大,系統(tǒng)芯片區(qū)別于一般芯片的標志性特點是內嵌了一個或多個CPU,CPU在芯片中扮演的角色也已經從單純的芯片總控,發(fā)
23、展到負責各種應用功能的軟件實現,既實現了對芯片硬件資源共享的最大化,又實現對各種不同標準和個性化需求的靈活應對,軟件將逐步扮演系統(tǒng)芯片靈魂的角色。軟件可以被稱作電子產品的靈魂。軟件的附加價值一直是通過硬件來實現的,無論是普通家電、辦公機器、數碼相機還是某些汽車發(fā)動機的控制部分、超薄電視的圖像處理芯片,嵌入式其中的軟件都發(fā)揮著靈魂的作用。我門生活中隨處可見的電子產品中,稍帶人性化的設備中,無處不見軟件的身影。一方面,它作為人機交互界面的一部分,充當這翻譯官的作用。不論是我們手里的遙控器,還是幾乎人手一部的手機。如果沒有軟件的存在,我們無法與底層的硬件做到一個友善的溝通。假若沒有軟件的存在,我們不
24、知用什么來告訴硬件我們想要做什么,也無法知道硬件在做什么。假若擁有軟件在硬件與你之間充當橋梁,那么,一切都變得更加顯而易見。當我們需要選臺的時候,只要通過軟件進行交互,就能很快的找到我們喜歡的電視節(jié)目。也是因為軟件的存在,才有了我們現在如此人性化的手機操作界面。對比5年前的普通手機,和現在普遍受人青睞的智能手機,我們不難發(fā)現,一款擁有優(yōu)良軟件血統(tǒng)的手機,能給我們帶來多么便捷的使用。另一方面,軟件是人類賦予機器智能的必要手段。它還控制著整個電子設備的有序的運行,沒有核心的軟件,再完美的硬件也很難實現復雜的工作。如果沒有軟件存在,我們所做的電子產品智能單一的完成某項機械的動作,假若要讓你的產品擁有
25、更智能化的反映,那么,只有通過軟件才能讓這一切實現的更加容易??傊?,在現今高度智能的電子產品中,軟件以它獨有的價值貫穿其中,成為每個電子設計者門手中不可或缺的一項技術。軟件不軟,唯有將其硬置于產品中時,才能讓原本死寂的機器聰明的運動起來。2.3 通用語言之父-c語言在程序設計的發(fā)展過程中,出現了各種各樣的計算機的語言。最早期的語言是二進制語言,程序設計人員只能用計算機直接識別和執(zhí)行的二進制代碼來編寫程序。為了減輕程序設計人員的負擔,很快出現了匯編語言,這種語言是用符號來代表二進制代碼,所以稱為符號語言。用這種語言編寫的程序需要通過一種軟件翻譯后才能執(zhí)行,所以又稱為匯編語言。不同的計算機上提供不
26、同的二進制語言或匯編語言,所編寫的程序一般只能在同類型的計算機上運行,所以這種語言又稱為“面向機器的語言”。在電子產品軟件的開發(fā)設計當中,匯編和C語言起到了最為重要的作用。然而,C語言以其特有的作用,肩負起了90%的軟件控制的任務??梢哉f,除了啟動代碼和必須高效運行的部分程序段外,很少有程序員會拿匯編來實現復雜的功能。C語言的靈活與高效,得到了人們的親睞,為此,我們來看看C語言的發(fā)展。程序設計的關鍵是將問題及解決問題的算法過程描述出來,設計人員很快就提供了一種描述算法過程很方便,同時脫離對機型的要求,能在任何計算機上運行的計算機語言。程序設計人員可以利用這種語言直接寫出各種表達式來描述簡單的計
27、算過程。專家們將這種語言稱為“高級語言”,而將二進制語言和匯編語言統(tǒng)稱為“低級語言”。由于高級語言是面向問題和算法過程描述的,所以又將高級語言稱“面向問題的語言”。高級語言編寫的程序稱為“源程序”。源程序不能在計算機上直接運行的,必須將其翻譯成二進制程序后才能執(zhí)行。翻譯過程有兩種方式:一種是翻譯一句執(zhí)行一句,稱為“解釋程序”方式;另一種是全部翻譯成二進制代碼后再執(zhí)行,承擔翻譯工作的程序就稱為“編譯程序”,編譯后的二進制程序稱為“目標程序”。世界上第一個高級語言是“ALGOL語言”,也叫算法語言。第二個高級語言是“FORTRAN語言”,也叫公式翻譯語言。以后陸續(xù)出現了很多種高級語言,使用面大的有
28、BASIC語言、COBOL語言、FOXBASE語言、PASCAL語言和C語言。C語言的前身是ALGOL語言。1960年ALGOL60版本推出后,很受程序設計人員的歡迎。用ALGOL60來描述算法很方便,但是它離開計算機硬件系統(tǒng)很遠,不宜用來編寫系統(tǒng)程序。1963年英國劍橋大學在ALGOL語言基礎上增添了處理硬件的能力,并命名為“CPL(復合程序設計語言)”。CPL由于規(guī)模大,學習和掌握困難,沒有流行開來。1967年劍橋大學的馬丁·理查德對CPL語言進行了簡化,推出“BCPL(基本復合程序設計語言)”。1970年美國貝爾實驗室的肯·湯普遜對BCPL進行了進一步的簡化,突出了硬
29、件處理能力,并取了“BCLP”的第一個字母“B”作為新語言的名稱。同時用B語言編寫了UNIX操作系統(tǒng)程序。1972年貝爾實驗室的布朗·W·卡尼漢和丹尼斯·M·利奇對B語言進行了完善和擴充,在保留B語言強大硬件處理能力的基礎上,擴充了數據類型,恢復了通用性,并取了“BCPL”的第二個字母作為新語言的名稱。此后,兩人合作,重寫了UNIX操作系統(tǒng)。C語言伴隨著UNIX操作系統(tǒng)成為一種很受歡迎的計算機語言。1977年。為了讓C語言脫離UNIX操作系統(tǒng),成為任何計算機上都能運行的通用計算機語言,卡尼漢和利奇撰寫了C程序設計語言一書,對C語言的語法進行了規(guī)范化的描述
30、,成為當時的標準。隨著微型機的普及,出現了不同的C語言版本,為了統(tǒng)一標準,美國標準化協會于1987年制定了C語言的標準,稱為“ANSI C”。通常將K&R的標準稱為舊標準,將“ANSI C”稱為新標準。C語言的主要特點可以概括成如下幾條:1、比其它高級語言更接近硬件,比低級語言更接近算法,程序易編、易讀、易查、易改??梢哉f是兼有高級語言和低級語言的優(yōu)點。2、數據類型和運算符十分豐富,程序設計和算法描述更為簡單和方便。3、語法結構十分簡單,語句數目十分少,簡單易學。4、它是一種結構化程序設計語言,提供了完整的程序控制語句,很適合結構化的程序設計方法。5、它是一種模塊化程序設計語言,適合大
31、型軟件的研制和調試。6、它提供了大量的庫函數供調用,簡化了程序設計工作。2.4 軟件的常用模型通常的,當我們拿到一個設計課題的時候,總是把選型、模型設計等放在設計的首要位置,但是對于軟件卻很少討論,對于架構這個基本問題更是無人問津,甚至有的人不話流程圖就開始左手寫軟件。個人認為,要做一個完善的自動化產品的開發(fā),軟件非常重要,假若有個好的軟件架構是寫好代碼的基礎,可以使后期的調式工作事半功倍。在寫軟件的時候,通常我們會采用這四種結構:a)順序執(zhí)行代碼定義:按照順序逐行執(zhí)行的代碼優(yōu)點:是思路簡單,代碼可靠不易被干擾。缺點:占用資源用途:只用來各種變量、函數的定義,硬件的初始化程序位置:main.c
32、的開始一直到main函數的while函數之前b)空閑執(zhí)行代碼定義:在CPU空閑的時候才執(zhí)行的代碼優(yōu)點:不占用資源缺點:執(zhí)行的實時性不能保證用途:非實時任務,調試信息輸出,不重要的狀態(tài)指示位置:main.c的main函數的while函數內部c)中斷執(zhí)行代碼定義:由軟硬件事件打斷整個程序而執(zhí)行的代碼優(yōu)點:可以保證實時性,各種中斷可以安排優(yōu)先順序缺點:關系相對復雜,互相之間容易干擾用途:觸發(fā)性的代碼,比如接收數據,響應外部設備,按鈕的相應位置:stm32f10x_it.c內部d)循環(huán)執(zhí)行代碼定義:按照時間周期執(zhí)行的代碼優(yōu)點:定期自動執(zhí)行缺點:實時性不好用途:需要周期執(zhí)行的任務,狀態(tài)檢查及相關信息輸出
33、,數據記錄位置:stm32f10x_it.c的SysTickHandler內部e)DMA自動代碼定義:不需要主程序干預,外設自動執(zhí)行優(yōu)點:自動刷新數據,不占用CPU資源缺點:不能控制用途:數據通信存儲,AD轉換位置:不作要求第3章 聲音引導系統(tǒng)總體方案的論證3.1 系統(tǒng)模型設計聲音導引系統(tǒng)有一個可移動聲源S,三個聲音接收器A、B和C,聲音接收器之間可以有線連接。聲音接收器能利用可移動聲源和接收器之間的不同距離,產生一個可移動聲源離Ox線(或O'y線)的誤差信號,并用無線方式將此誤差信號傳輸至可移動聲源,引導其運動??梢苿勇曉催\動的起始點必須在Ox線右側,位置可以任意指定。系統(tǒng)模型為,坐
34、標軸上A(0、1)、B(0、0)、C(1、0)為三個聲音接收器,S為移動聲源所在位置,其坐標為(x,y)。Ox和Oy分別為AB、AC中垂線,W為這兩條中垂線的交點。移動聲源需要從S點開始運動,先到達Ox,再移動到W。在實現過程中,載體小車以垂直于Ox方向放置,為了讓聲源到達AB中垂線Ox上,將A和B處的聲音接收器作為參考點,計算運動聲源當前位置和指定地點的誤差信號,實現小車的引導。小車放置的方向可能被旋轉180°,所以在運動的初始時刻,小車按照自己的車頭方向行駛一小段距離,通過誤差信號的變化,可以判斷小車擺放的位置。如果誤差信號變小,說明小車行駛方向正確,此后就按照這一方向運動下去,
35、如果誤差信號變大,說明小車被反向,步進電機需要向相反的方向旋轉。在小車到達Ox后,為了到達圖中的W點,先讓小車在原地旋轉90°,再次通過發(fā)聲模塊發(fā)出聲音信號。將兩聲音接收點A、C作為參考點得到可移動聲源距離W點的誤差信號。以此控制小車運動的方向,直到聲源到達W點。3.2 系統(tǒng)誤差信號的分析可移動聲源以小車為載體進行運動,如圖3-1所示,A、B兩點放置了聲音接收器,并在A點處設置一主控單片機。該單片機發(fā)出的控制指令,通過無線通信的方式傳送給小車上的單片機,讓移動聲源鳴叫。由于可移動聲源距離A、B兩點中垂線距離為d,且聲音在空氣中的傳播速度有限,因此,A、B兩處的接收器會在不同的時刻接收
36、到聲音信號。系統(tǒng)軟件通過一高頻脈沖對這一時間差值進行填充,可以得到確切的時間差,這一時間差與聲音在空氣中的傳播速度相乘,可計算出小車位置與B、A兩點間距離之差k。當計算出的距離之差小于一定門限時,可認為小車到達了指定位置,故可將k作為誤差信號。 圖 3-1 誤差信號產生原理 3.3 控制理論與誤差計算為使聲源移動到接收器A和B的中垂線Ox上,在主控制器的控制下,可移動聲源以一定的周期控制蜂鳴器發(fā)出聲音信號,假設信號周期為T。因為聲源距離A、B兩點的距離不同,所以接收器A和接收器B會在不同的時刻接收到聲音信號。將其整形成為方波信號送入FPGA。在軟件控制蜂鳴器發(fā)出聲音信號的同時,FPGA開啟兩個
37、中斷口監(jiān)控接收器A和接收器B。在接收器B上產生中斷時,利用高頻脈沖進行填充計數,當接收器A產生中斷時,停止計數,通過這種方式可以得到可移動聲源與兩個聲音接收模塊間距離的差值。當可移動聲源到達接收器A、B中垂線處,可移動聲源與兩聲音接收模塊的距離之差最小,也即高頻脈沖數最少。通過軟件設置一個計數量的最低門限,當計到的高頻脈沖量少于該門限時,即可認為可移動聲源到達了指定地點。詳情如圖3-2所示。 若發(fā)送周期性聲音信號的周期間隔越小,可以實現的小車定位誤差將會越小,對于基本要求而言,要求的小車最小的運動速度v1=5cm/s,最大的定位誤差d1=3cm,所以蜂鳴器發(fā)出的周期性聲音信號的時間周期Td1/
38、v1=600ms。對于發(fā)揮部分而言,要求的小車最小的運動速度v2=10cm/s,最大的定位誤差d2=1cm,所以蜂鳴器發(fā)出的周期性聲音信號的時間周期Td2/v2=100ms。因此,若要減小小車定位誤差,應該適當降低蜂鳴器的發(fā)聲周期。圖3-2 聲音信號發(fā)射與接收示意圖3.4 系統(tǒng)組成系統(tǒng)由可移動聲源部分和聲源指引部分組成,其中聲源部分又可分為:無線接收模塊、電機控制模塊、聲音信號產生模塊;聲源引導部分可分為:人機交互界面、聲音接收裝置、聲音信號處理模塊??梢苿勇曉匆孕≤囎鳛檩d體進行移動,聲源指引部分包括聲音接收器和無線收發(fā)模塊。蜂鳴器作為聲源發(fā)出聲音信號,在接收端接收到聲音信號以后通過單片機的分
39、析判斷,得到一個反映聲源位置和指定地點偏差的誤差信號。利用接收部分的無線發(fā)射模塊,將該信息傳送給小車上的無線接收器,使得車上的單片機以此為標準控制小車的運動,直到小車到達指定的地點。系統(tǒng)的總體構思如圖3-3所示:圖3-3 系統(tǒng)總體框圖3.5 整體方案論證與分析方案一:根據聲強檢測來對小車定位,不同距離的聲源傳到聲音接收器的信號強度不同,根據對信號強度進行AD采樣,可以判斷出聲源距離。方案二:根據聲音傳輸時間差來對小車定位,聲音從聲源傳到不同接收器的時間不同,針對不同接收時間進行定時計數,做差值,可以判斷出聲源距離不同接收器的位置差,進而對小車位置行進控制。比較以上兩種方案,方案二簡單靈活、容易
40、控制,能達到題目的設計要求,因此采用方案二來實現。具體方案如下:本系統(tǒng)共用到三個聲音接收器(A、B、C),這三個器件通過電線連接在接收端的單片機上。根據接收器原理電路分析可知,該電路在沒有接收到聲音信號時,輸出高電平;在接收到聲音信號時,輸出低電平,非常穩(wěn)定。接收器接收到聲音信號,輸出低電平用來觸發(fā)單片機的外部中斷,通過計數器計數,算出小車離接收器的距離。經單片機比較、分析、處理后,產生一個可移動聲源離指定位置的誤差信號,并用無線方式將此誤差信號傳輸至小車,引導小車運動,實現小車的定位控制。第4章 聲音引導系統(tǒng)的軟件設計4.1 總體思路流程結合移動音源部分和聲音引導部分,整套系統(tǒng)的流程圖如圖4
41、-1所示:圖4-1 總流程圖幾個主要的通用函數:void Inituart(void)/使用串口方式傳送數據TMOD = 0x20;/timer1工作模式1TL1 = 0xfd;/9600 TH1 = 0xfd;/.fd=19200 晶振選11.0592mhzSCON = 0xd8;/串口模式3PCON = 0x80;/smod=0TR1 = 1;/啟動 timer1void init_int0(void)/啟動中斷EA=1;EX0=1;/ Enable int0 interrupt.void delay_ms(unsigned int x)/1ms延時程序 unsigned int i,j;
42、 i=0; for(i=0;i<x;i+) j=108; ; while(j-); 4.2 聲音引導部分程序設計聲音引導部分程序流程圖如圖4-2所示。圖4-2 聲源引導部分流程圖聲音引導模塊分析基于常見的聲音接收裝置為mic5頭,故聲音引導部分由三個mic頭組成。將三個mic頭連接至單片機12的io口,用于檢測聲音來領時的第一個方波,既能比較出三個接收器上接收到聲音的時間差。主要示意程序:gettime()time = nowtime();/從中斷中讀取return time;main()while(1)/記錄下每個mic頭首次聲音到來時的時間if(P0.0 = 1 &&
43、 buf_0 = 0)time_a = gettime();buf_0 = 1;if(P0.1 = 1 && buf_1 = 0)time_b = gettime();buf_1 = 1;if(P0.2 = 1 && buf_2 = 0)time_c = gettime();buf_2 = 1;if(time_0 != 0) && (time_1 != 0) && (time_2 != 0)break;if(fabs(time_a - time_b) <= truetime)/若A、B點的時間小于允許范圍內的時間,證明到A、
44、B兩點的距離相等stop();/小車停止else if(time_a - time_b) > 0 )/離a遠,離b近,向a方行進goon();else if(time_a - time_b) < 0 )/離b遠,離a近,向b方行進back();4.3 可移動聲源部分程序設計可移動聲源部分程序流程圖如圖4-3所示:圖4-3 可移動聲源部分軟件流程圖可移動聲源模塊方案分析方案一:使用揚聲器用揚聲器產生聲源,其音調不好控制,驅動電路較復雜,成本較高。用麥克接收聲音信號,但是此方案抗干擾性差,不適合本題目。方案二:使用電子蜂鳴器用蜂鳴器做聲源,有聲音清晰宏亮、重量輕、體積小、耗電省、壽命長
45、、價格低,具能在各種惡劣環(huán)境中工作等優(yōu)點。綜上所述,我們決定采用方案二。主要示意程序:bell()unsigned char i;.for(i=0;i+;i<3)/發(fā)出三次定位信號BELL = 1;/蜂鳴開始delay(1000);BELL = 0;/蜂鳴結束.main().while(stop != 0 && receive != 0)/當小車停止且告知聲音接收裝置開始接收聲音時開始蜂鳴bell();.4.4 無線部分程序設計4.4.1 無線模塊方案分析方案一:采用2262發(fā)送芯片,2272接收芯片。通過編碼芯片PT2262發(fā)出編碼信號,解碼芯片PT2272接收到信號后
46、,進行數據處理。但由該芯片所做成的無線模塊不穩(wěn)定,所需的電壓大,功耗高,抗干擾能力差。方案二:采用NRF24L01模塊15。此模塊,可以實現數據的精確傳輸,應用起來比較方便,傳輸距離遠,且其有空閑模式,大大的降低了模塊的功耗考慮到比賽題目的要求,需要對聲源進行定位,我們決定選擇方案二。4.4.2 nRF24L01概述 nRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4 GHz2.5 GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型ShockBurst技術,其中輸出功率和通信頻道可通過程序進行配置。nRF24L01功耗低,在以-6 dBm的功率發(fā)
47、射時,工作電流也只有9 mA;接收時,工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設計更方便。 nRF24L01主要特性如下: GFSK調制: 硬件集成OSI鏈路層; 具有自動應答和自動再發(fā)射功能; 片內自動生成報頭和CRC校驗碼; 數據傳輸率為l Mb/s或2Mb/s; SPI速率為0 Mb/s10 Mb/s; 125個頻道: 與其他nRF24系列射頻器件相兼容; QFN20引腳4 mm×4 mm封裝; 供電電壓為1.9 V3.6 V。 4.4.3 nRF24L01引腳功能及描述 nRF24L01的封裝及引腳排列如圖4-4所示。各引腳功能如下: 圖4-
48、4 nRF24L01引腳圖CE:使能發(fā)射或接收; CSN,SCK,MOSI,MISO:SPI引腳端,微處理器可通過此引腳配置nRF24L01: IRQ:中斷標志位; VDD:電源輸入端; VSS:電源地: XC2,XC1:晶體振蕩器引腳; VDD_PA:為功率放大器供電,輸出為1.8 V; ANT1,ANT2:天線接口; IREF:參考電流輸入。 4.4.4 nRF241L01工作模式 通過配置寄存器可將nRF241L01配置為發(fā)射、接收、空閑及掉電四種工作模式,見表4-1。 表4-1 nRF241L01配置真值表模式PWR_UPPRIM_RXCEFIFO寄存器狀態(tài)接收模式111-發(fā)射模式10
49、1數據在TX FIFO 寄存器中發(fā)射模式1010停留在發(fā)送模式,直至數據發(fā)送完待機模式2101TX FIFO 為空待機模式11-0無數據傳輸掉電0- 待機模式1主要用于降低電流損耗,在該模式下晶體振蕩器仍然是工作的; 待機模式2則是在當FIFO寄存器為空且CE=1時進入此沒收; 待機模
50、式下,所有配置字仍然保留。 在掉電模式下電流損耗最小,同時nRF24L01也不工作,但其所有配置寄存器的值仍然保留。 4.4.5 nRF241L01工作原理 發(fā)射數據時,首先將nRF24L01配置為發(fā)射模式:接著把接收節(jié)點地址TX_ADDR和有效數據TX_PLD按照時序由SPI口寫入nRF24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后CE置為高電平并保持至少10s,延遲130s后發(fā)射數據;若自動應答開啟,那么nRF24L01在發(fā)射數據后立即進入接收模式,接收應答信號(自動應答接收地址應該與接收節(jié)點地址TX_ADDR一致)。如果收到應答,則認
51、為此次通信成功,TX_DS置高,同時TX_PLD從TX FIFO中清除;若未收到應答,則自動重新發(fā)射該數據(自動重發(fā)已開啟),若重發(fā)次數(ARC)達到上限,MAX_RT置高,TX FIFO中數據保留以便在次重發(fā);MAX_RT或TX_DS置高時,使IRQ變低,產生中斷,通知MCU。最后發(fā)射成功時,若CE為低則nRF24L01進入空閑模式1;若發(fā)送堆棧中有數據且CE為高,則進入下一次發(fā)射;若發(fā)送堆棧中無數據且CE為高,則進入空閑模式2。 接收數據時,首先將nRF24L01配置為接收模式,接著延遲130s進入接收狀態(tài)等待數據的到來。當接收方檢測到有效的地址和CRC時,就將數據包存
52、儲在RX FIFO中,同時中斷標志位RX_DR置高,IRQ變低,產生中斷,通知MCU去取數據。若此時自動應答開啟,接收方則同時進入發(fā)射狀態(tài)回傳應答信號。最后接收成功時,若CE變低,則nRF24L01進入空閑模式1。 4.4.6 nRF241L01配置字 SPI口為同步串行通信接口,最大傳輸速率為10 Mb/s,傳輸時先傳送低位字節(jié),再傳送高位字節(jié)。但針對單個字節(jié)而言,要先送高位再送低位。與SPI相關的指令共有8個,使用時這些控制指令由nRF24L01的MOSI輸入。相應的狀態(tài)和數據信息是從MISO輸出給MCU。 nRF24L0l所有的配置字都由配置寄存器定義,這些配置寄存器可通過SP
53、I口訪問。nRF24L01 的配置寄存器共有25個,常用的配置寄存器見表4-2。 表4-2 常用寄存器功能說明地址(H)寄存器名稱功能00CONFIG設置24L01工作模式01EN_AA 設置接收通道及自動應答02EN_RXADDR使能接收通道地址03SETUP_AW設置地址寬度04SETUP_RETR設置自動重發(fā)數據時間和次數07STATUS狀態(tài)寄存器,用來判定工作狀態(tài)0A0FRX_ADDR_P0P5設置接收通道地址10TX_ADDR設置接收接點地址1116RX_PW_P0P5設置接收通道的有效數據寬度移動聲源和聲音采集部分的工作方式,采用由移動聲源發(fā)送開始接收信號給聲
54、音檢測部分,通過對聲音的延時的分析,再將小車的行動信號發(fā)送給移動聲源,控制小車的移動。該工作方式如圖4-5所示:圖4-5 無線工作方式示意圖4.4.7 nRF24L01程序設計該部分的程序流程圖如圖4-6所示:圖4-6 單個無線模塊程序流程圖主要程序示意如下:void ISR_int0(void) interrupt 0/用于24L01中的中斷響應函數sta=SPI_Read(STATUS);/ read register STATUS's valueif(RX_DR)/ if receive data ready (RX_DR) interruptSPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);/讀取 RX_FIFO 中的數據flag=1;if(MAX_RT)SPI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB 45186-2024限制快遞過度包裝要求
- PB-22-7-Hydroxyquinoline-isomer-生命科學試劑-MCE-6693
- 9-Keto-tafluprost-生命科學試劑-MCE-9653
- 二零二五年度未簽勞動合同員工勞動仲裁應對與勞動權益保障協議
- 2025年度文化創(chuàng)意產業(yè)計件工資與創(chuàng)意成果量化勞動合同
- 2025年度二零二五年度化妝品銷售提成獎勵合同
- 科技孵化器創(chuàng)新創(chuàng)業(yè)者的搖籃
- 跨學科視角下的小學生音樂素養(yǎng)培養(yǎng)研究
- 小學心理健康教育的實踐與思考
- 校園體育活動安全與防護措施
- 安徽省合肥市2025年高三第一次教學質量檢測地理試題(含答案)
- 2025年新合同管理工作計劃
- 統(tǒng)編版八年級下冊語文第三單元名著導讀《經典常談》閱讀指導 學案(含練習題及答案)
- 風光儲儲能項目PCS艙、電池艙吊裝方案
- 《志愿軍-存亡之戰(zhàn)》觀后感小學生
- 統(tǒng)編小學《道德與法治》三年級上下冊教材的解讀
- 人教版(2024)英語七年級上冊單詞表
- 產業(yè)鏈競爭關聯度
- TTJSFB 002-2024 綠色融資租賃項目評價指南
- 涵洞施工鋼筋混凝土圓管涵
- 高考地理一輪復習學案+區(qū)域地理填圖+亞洲
評論
0/150
提交評論