四旋翼飛行器遙控發(fā)射接收系統設計

上傳人:無*** 文檔編號:40518976 上傳時間:2021-11-16 格式:DOCX 頁數:37 大?。?54.65KB
收藏 版權申訴 舉報 下載
四旋翼飛行器遙控發(fā)射接收系統設計_第1頁
第1頁 / 共37頁
四旋翼飛行器遙控發(fā)射接收系統設計_第2頁
第2頁 / 共37頁
四旋翼飛行器遙控發(fā)射接收系統設計_第3頁
第3頁 / 共37頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《四旋翼飛行器遙控發(fā)射接收系統設計》由會員分享,可在線閱讀,更多相關《四旋翼飛行器遙控發(fā)射接收系統設計(37頁珍藏版)》請在裝配圖網上搜索。

1、溫網大學成布學優(yōu) CITY COLLEGE Wenzhou University J 本科畢業(yè)設計(論文) (2012 屆) 題目:四旋翼飛行器遙控發(fā)射接收系統設計 分 院: 信息工程分院 專 業(yè): 電氣工程及其自動化 班 級: 12電氣本1 姓 名: 趙浩鋒 學 號: 12303653144 指導老師: 孫躍 完成時間: 2016年3月 溫州大學城市學院本科畢業(yè)設計(論文) 溫州大學城市學院 學位論文原創(chuàng)性聲明 本人鄭重聲明:所提交的學位論文是本人在導師的指導下,獨立進行研究工作 所取得的研究成果。除文中已經加以標注引用的內容外,本論文不包含其他

2、個人或 集體已經發(fā)表或撰寫過的研究成果,也不含為獲得溫州大學城市學院或其它教育機 構的學位證書而使用過的材料。對本文的研究作出重要貢獻的個人和集體,均已在 文中以明確方式標明。本人承擔本聲明的法律責任。 作者簽名: 日期:年 月 日 學位論文版權使用授權書 本學位論文作者完全了解學校有關保留、使用學位論文的規(guī)定,同意學校保留 并向國家有關部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本 人授權溫州大學城市學院可以將本學位論文的全部或部分內容編入有關數據庫進 行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。 本學位論文屬于 1、保密口,在 年解密后適用本授權

3、書。 2、不保密口。 (請在以上相應方框內打 作者簽名: 日期: 年 月 日 導師簽名: 日期: 年 月 日 i 溫州大學城市學院本科畢業(yè)設計(論文) 摘要:四旋翼飛行器以其結構新穎、機動性強、性能卓越等特點,使其在軍事、民用及科技領域都 有很強的研究和應用價值。由于它用四個螺旋槳進行飛行, 因此它的飛行姿態(tài)保持能力比單旋翼飛行器 更強,升降所需要的空間也較小, 且其在障礙物較多的情況下仍具有很強的操縱性。 根據這些特點四旋 翼飛行器比單旋翼飛行器更適合在室內、街道、森林等復雜環(huán)境下的進行拍攝和救災工作。 本文以STM32處理器為核心;無線數據通訊模塊采用的是 N

4、RF21L01模塊實現。 經過試驗,飛行器能夠準確接收到來自地面的控制指令并完成相應的飛行任務, 實現垂直起降、懸 停等飛行姿態(tài)。 關鍵詞:四旋翼飛行器;無線通信;微控制器 4 Abstract: Four-rotor aircraft for its novel structure, high mobility, high performance features, making the military, civilian and scientific and technological fields have a strong research and applicatio

5、n. Because it uses four propellers flight, flight attitude so that the ability to maintain greater than single-rotor, the space required for the lift is small, and it still has a strong maneuverability in case more obstacle. According to these characteristics four-rotor aircraft more suitable than s

6、ingle-rotor aircraft shooting and relief work in the interior, streets, forests and other complex environments. In this paper, core processor is used STM32; wireless data communication module is used NRF21L01 modules. After testing, the aircraft can accurately control commands received from the gr

7、ound and complete the mission, achieve vertical takeoff and landing, hovering and other flying attitude. Key Words : Four-rotor aircraft; Wireless communication; Microcontroller 目錄 摘要 II Abstract III 一、緒論 1 (一)課題研究的目的和意義 1 (二)國內外發(fā)展及研究現狀 1 1 .國內四旋翼飛行器的研究 1 2 .國外四旋翼飛行器的研究 1 二、總體方案設計 3 (

8、一)總體設計原理 3 (二)總體設計方案 3 1 .系統硬件電路設計方案 3 2 .各部分功能作用 3 3 .系統軟件設計方案 4 三、硬件電路設計 5 4 .無線通信模塊電路設計 6 5 .實物介紹 9 四、系統軟件設計 10 (一)Keil MDK5.12 簡介 10 1 . Keil MDK 概述 10 2 . Keil MDK 功能特點 10 (二)軟件設計框圖 10 結論 12 致說甘 13 參考文獻 14 附錄 15 溫州大學城市學院本科畢業(yè)設計(論文) 一、緒論 本章主要介紹了關于四旋翼飛行器研究的背景和意義, 和國內外

9、高校以及研究機構對四旋翼飛行器 研究的現狀。本章主要由課題研究的目的和意義, 國內外四旋翼飛行器的研究和論文的主要研究內容等 幾個部分組成。 (一)課題研究的目的和意義 隨著微電子、微導航、微機電技術的廣泛運用, 無人機技術很快就在全世界范圍內掀起了研究熱潮, 并得到了快速且長足的發(fā)展。相對于其他無人機而言,四旋翼飛行器的結構較為簡單,成本也相對較低, 方便維修和護理。除此之外,四旋翼飛行器還具有體積小、重量輕、控制靈活方便、可垂直起降、懸停 等特點,不論是在軍事領域或是民用領域都得到了非常廣泛的運用。 (二)國內外發(fā)展及研究現狀 1 .國內四旋翼飛行器的研究 目前,我國的一些高

10、校和科研機構在四旋翼飛行器的研究上也取得了長足的發(fā)展。 比如國防科技大 學,哈爾濱工業(yè)大學和南京航空航天大學等。國防科技大學早就在 2004年開始研究微小型飛行器的相 關技術,是我國最早一批開展對四旋翼飛行器研究的高校之一,他們使用了自抗擾控制器( ADRC)算 法以及反步法這兩種方法來對四旋翼飛行器的控制系統進行設計。 在接下來的幾年里,南京航空航天大 學、南京理工大學等等高校也進行了對四旋翼飛行器的理論分析和計算機仿真, 并都制作了屬于自己的 四旋翼飛行器。 同時,四旋翼飛行器在商業(yè)上的應用也越來越廣泛,在 2013年9月3日,順豐就在廣東東莞松山 湖區(qū)域進行了無人機送貨內測。

11、順豐自主研發(fā)了該無人機的內置導航系統,該飛行器飛行高度約為 100 米,落點誤差基本上能夠控制在方圓兩米以內, 同時可以對路線和目的地來進行預先設定。 如果測試可 行,就可以大量減少人力成本。 除此以外,越來越多的四旋翼飛行器以一種娛樂設備的形式出現在大眾的視線里。 通常這種四旋翼 飛行器都攜帶著攝像頭,用戶可以通過手持設備來對飛行器進行控制,以此來給用戶帶來樂趣。 2 .國外四旋翼飛行器的研究 國外四旋翼飛行器的發(fā)展非常迅速, 因為他們在這一領域已經擁有了非常悠久的歷史, 同時還有著 深厚底蘊的研發(fā)團隊。四旋翼飛行器在多旋翼無人飛行器中是較為常見的一種類型 ,其對硬件平臺的要

12、 求較高,相應的難度也較大。國外有很多高校和科研機構都做出了一定的成果,有進行室外研究和室內 研究的,其中進行室外研究的有美國斯坦福大學, 日本千葉大學以及美國奧克蘭大學和法國貢比涅技術 大學等。進行室內的有美國麻省理工大學, 美國賓夕法尼亞大學和瑞士聯邦技術機構等。 除了高校和科 研單位,國外的一些商業(yè)公司也加入到對四旋翼飛行器的研究行列,如美國的 Draganfly公司和德國的 Microdrone GbmH 公司等。 近年來,國外研發(fā)了很多高性能的飛行器。 在歐美發(fā)達國家四旋翼飛行器已經在軍事和商業(yè)領域都 取得了非常顯著的成就。其中比較具有代表性的就是 Draganflyer

13、X4、Parrot AR.Drone Quadricopter。 Draganflyer X4是美國Draganfly Innovations Inc研發(fā)的遙控飛機。如圖 1.1所示。該飛行器具有良 好的可靠性和穩(wěn)定性,并且它還具有懸浮功能,對于拍攝有很大的幫助。當控制器失控時, 它甚至可以 實現自動著陸,從而保證飛行器和攝像設備的安全。 圖1.1 3 二、總體方案設計 (一)總體設計原理 本次設計硬件主要為遙控器部分,處理器采用 32位基于Cortex- M3內核的STM32F103芯片,遙 控器和飛行器之間的數據通信采用的是 2.4G民用無線通信頻段的 NRF2

14、4L01模塊。遙控器外型類似與 游戲手柄。遙控器通過采集蘑菇頭搖桿電位器 ADC電壓值以及按鍵狀態(tài)發(fā)送給飛行器。 (二)總體設計方案 1 .系統硬件電路設計方案 本次設計采用IAP15W4K58S4微控制器作為 MCU ,并且均采用3.7V充電電池作為電源為系統供 電,電池通過 CAT2829芯片穩(wěn)壓到3.3V為MCU以及外設供電。遙控器端的主要硬件部分包括最小系 統、無線NRF24L01模塊、程序下載、ADC采集、蜂鳴器、LED指示燈以及串口調試,飛行器端硬件 主要部分有最小系統、程序下載,無線 NRF24L01模塊、電機驅動、慣性測量單元 MPU6050以及LED 驅動電路,其系統

15、總體框圖如下所示。 2 .各部分功能作用 (1) MCU控制中心 MCU是飛行器以及遙控器的控制中心,是它們的大腦,主要功能是采集數據和處理數據并做出指 示。本次設計采用的是 32位的基于ARM Cortex-3為內核的STM32F103作為中央處理器。 (2)通信模塊 通信模塊在整個系統中起著信號交流的作用, 遙控器通過MCU讀取的按鍵信息以及油門方向值發(fā) 溫州大學城市學院本科畢業(yè)設計(論文) 送到飛行器端,飛行器端接收到之后做出相應的動作。本次設計主要采用 NRF24L01無線通信模塊, 選擇該模塊的原因是因其通信協議簡單、傳輸距離相對較遠、價格低廉等優(yōu)點。

16、(3) LED狀態(tài)指示 在硬件電路設計中,LED首先必須要有電源指示燈,從而判斷系統是否上電。同時還需要有信號 指示燈,指示遙控器和飛行器是否通信,最后就是狀態(tài)顯示 LED燈顯示飛行器狀態(tài)等等。 3.系統軟件設計方案 本次設計軟件部分包括遙控器程序以及飛行器的接收程序設計。遙控器程序設計主要包括有無線 NRF24L01發(fā)送、ADC電壓采集之后的處理、讀取按鍵狀態(tài)和 LED燈指示等,涉及的軟件包括 SPI通 信協議、ADC數模轉換、I/O 口驅動等。飛行器端程序涉及部分主要包括 NRF24L01接收、LED狀態(tài) 燈等。 6 三、硬件電路設計 (一)遙控器的硬件設計 如圖3.

17、1所示,遙控器主要由處理器、無線收發(fā)模塊和 4路搖桿器三部分組成。 主處理器及其最小系統的電路和飛行器的電路相同。 主要利用處理器片內的 AD轉換器采集搖桿的 信息,然后將四路電位器的輸出引腳接到處理器的 AD轉換口,免去了外接AD轉換芯片以及配置電路 的麻煩,大大節(jié)省了硬件空間。無線收發(fā)模塊選用 E01-ML01DP3無線通信模塊模塊,傳輸距離大概在 1100m左右。 圖3. 1 遙控硬件配置: MCU : STM32F103 72Mhz 傳感器:MPU6050 3軸加速度、三軸陀螺儀 通信方式:NRF24L01、串口藍牙、串口 WIFI、串口 433等 通信芯片

18、:FT232串口芯片,串口波特率可以上 M ,輕松穩(wěn)定高速通信 1 .處理器 (1) 針對各公司單片機的優(yōu)缺點比較 從總體上來講,ARM的控制能力較強,速度快功耗也低,價格也適中,同時還可以加操作系統; DSP的速度最快,但同時價格更高, 更適用于高速信號處理系統; C51更適用于簡單的控制,編程也簡 單方便,同時價格也更加實惠。 從運算能力上看, 因為C51是8位的;ARM是32位;DSP有16位,以及更高的。所以C51最弱, DSP最強,ARM 比較中庸。 從結構上看,C51是一般的馮諾依曼結構, ARM和DSP一般采用哈佛結構。 從頻率上看,C51工作頻率最低,一般為 1

19、0~24MHz,因此功耗也低。ARM的功率一般在幾十到 200MHz之間。而DSP的頻率高達300MHz以上,同時功耗也大。 雖然C51的性能遠不如其他兩種,但它的性價比很高,面積也非常小,還能配比非常豐富的外圍 電路,同時,這些也限制了它的使用,因此 C51主要應用于不需要太多計算量的系統。 ARM 相對于其他兩種的優(yōu)點在于其內部的模塊或者總線接口功能十分豐富。同時, ROM , RAM 較大,管腳也多。 (2) 芯片簡介 ARM Cortex-M3 采用哈佛結構,采用的是分離的指令以及數據總線,相比于馮諾依曼結構而言處 理速度更快。 ARM Cortex-M3 在成本以及功

20、耗方面具有非常優(yōu)秀的性能,并且非常適用于汽車以及無線通信領 域。 STM32系列處理器是由 ST公司按照ARM Cortex-M3內核標準打造的,其追求的是高性能、低成 本、低功耗。按照其性能可以分為增強型 STM32F103系列以及基本型 STM32F101系列兩種。 本設計中使用的是增強型 STM32F103。 概述:閃存 FLASH: 512K 字節(jié)、SRAM:64K、3 x USART、2 x SPI、2 x I2C、3 x 16 位定時器、 4-16 MHz主振蕩器、實時鐘、2 x看門狗、復位電路、上電/斷電復位、電壓檢測、7通道DMA、80%通 用I/O管腳、內嵌8 MHz的

21、RC振蕩器、和32 kHz的RC振蕩器、72MHz CPU、2 x 12位ADC(1ms)溫 度傳感器、USB 2.0全速、CAN 2.0B、PWM定時器。 2 .無線通信模塊電路設計 本次設計無線通信模塊采用的是 NRF24L01模塊。NRF24L01模塊。NRF24L01具有以下特性: 真正的GFSK單收發(fā)芯片 內置鏈路層 增強型 ShockBurstTM 自動應答及自動重發(fā)功能 地址及CRC檢驗功能 數據傳輸率1或2Mbps SPI接口數據速率 0~8Mbps 125個可選工作頻道 很短的頻道切換時間可用于調頻 與NRF24XX系列完全兼容 可接受5V電平的輸入

22、 極低的晶振要求 60Ppm 工作電壓1.9~3.6V 四旋翼無人機要將數據傳輸到地面,操作者將操作指令發(fā)送給無人機,這些都需要通過無線數據通 信來實現,本設計選用了 E01-ML01DP3無線通信模塊,這是一款 2.4G無線通信模塊,采用原裝進口 的nRF24L01P芯片,配備20dBm功率放大芯片,使模塊最大發(fā)射功率達到了 100mW (20dBm),并 同時將接收靈敏度提升到 10dBm,使得模塊超過 nRF24L01P本身10倍以上的發(fā)射距離,傳輸距離 可以達到1100m。E01-ML01DP3 模塊實物如圖 3.2所示。E01-ML01DP3模塊引腳及尺寸下圖 3.3所

23、 示。模塊與模塊之間采用 2.4G無線網絡頻段通信,其電路原理圖如圖 3.4所示。無線NRF24L01模塊 與MCU之間連接口如表 3-1所示。 圖3.2 溫州大學城市學院本科畢業(yè)設計(論文) CE rsN SCK 1 CiND 3. CE 5. SCK 7. M1SO 2 VCC 4. CSN 6 MOSI 比IRQ ①③©© J 丁 I 三三sz 2.54mm 圖3.3 MDS1 MISO c a.iur 11 1|卜1 W VC匚 JJV L- |mxb_jjv CE 口 lh 0 vss St K

24、 ANT2 Nimi ANTI VTJD FA NRFMUH MiSG IRQ .11 mm SMA AVTENXA ▽ 工7nH Jr"Y"Y"Y"Y MH* W L T□聲 =5=C】1 ItAtJb =!=< 13 uau * wrjjxj 圖3.4 表3-1 MCU引腳 NRF24L01 引腳 功能 PA3 CE 使能發(fā)送或接收 PA4 CSN SPI片選信號 PA5 SCK SPI時鐘隹T號 PA6 MOSI SPI數據輸入腳 PA7 MISO SPI數

25、據輸出腳 (1)模塊簡介 E01-ML01DP3 模塊弓I腳描述 引腳序號 名稱 力向 描述 1 GND / 地線,連接到電源參考地 2 VCC / 供電電源,必須 2.0-3.6V 之間 3 CE 輸入 模塊控制引腳 4 CSN 輸入 模塊片選引腳,用于開好L個 SPI通信 5 SCK 輸入 模塊SPI總線時鐘 6 MOSI 輸入 模塊SPI數據輸入引腳 7 MISO 輸出 模塊SPI數據輸出引腳 8 IRQ 輸出 模塊中斷信號輸出,低電平有效 E01-ML01DP3 模塊的參數 序號 參數名稱

26、參數數值 備注 1 模塊尺寸 15*27mm 不含SMA天線座 2 接口方式 2.54*2*4 可使用2.54標準杜邦線,可口于萬能板 3 供電電壓 2.0-3.6V 注意:高于3.6V電壓,將導致模塊永久損毀 4 通信電平 0.7VDD-5V VDD指模塊供電電壓 5 實測距離 1157m 條件:市區(qū),空曠,30 C,可視,陰天,250K 6 取大功率 20dBm 約合100mW 7 空中速率 250K, 1M, 2M ;二種速率可以軟件倜節(jié) 8 關斷電流 1uA :nRF24L01P設置為掉電,CE低電平 9 功率等級

27、 4級可調 PA芯片功率不可調 10 發(fā)射電流 95mA 峰值 11 接受電流 20mA CE=1 12 天線接口 SMA 外螺內孔型 13 天線要求 SMA 內螺內針,2.4G頻段,50歐姆阻抗 14 通信接口 SPI 最高速率10Mbps 15 發(fā)射長度 32字節(jié) 單個數據包32字節(jié)最大,3級FIFO 16 接收長度 32字節(jié) 單個數據包32字節(jié)最大,3級FIFO 17 RSSI支持 不支持 [僅支持簡單的丟包統計 18 工作溫度 -30~85 C 無 19 工作濕度 <90%相對濕度 無 20 儲

28、存溫度 -40~+120 C 無 21 工作頻段 2.4G 2.400~2.525 可調,1MHz 步進 SPI是一種串行同步通訊協議,由一個主設備和一個或多個從設備組成,主設備啟動一個與從設備 的同步通訊,從而實現數據的交換。SPI接口由MOSI (串行數據輸入),MISO (串行數據輸出),SCK(串 行移位時鐘),CS (從使能信號)四種信號構成, CS決定了唯一的與主設備通信的從設備,如果沒有 CS信號,則只能存在一個從設備,主設備通過產生移位時鐘來發(fā)起通訊。通訊時,數據由 MISO輸出, MOSI輸入,數據在時鐘的上升或下降沿由 MISO輸出,在緊接著的下降或

29、上升沿由 MOSI讀入,這樣 經過8/16次時鐘改變,完成 8/16位數據的傳輸。 3 .實物介紹 實物操作細節(jié)如下所示: 第一步: 上電:首先給遙控器上電,等待遙控器 LED信號燈閃爍之后再給飛行器上電。第一步必須這樣做, 這樣做是為防止飛行器先上電之后接收到無線信號不準確從而導致飛行器出現不確定的飛行情況。 解鎖:遙控器的左手油門拉到最低,就解鎖了,解鎖成功后,飛機上的電源指示燈旁邊的一個黃色 指示燈,遙控接收配對燈,會亮,表示遙控器解鎖成功。否側,解鎖失??!拔掉遙控器電源,黃色無線 指示燈會熄滅。 第二步: 打開飛機電源后,要等待 20秒,才開始推動飛機的油門,先是慢慢推

30、動飛機的油門,等待飛機的 葉子轉速都均勻,快要離開地面的時候,才突然加大油門。 注意:上電順序不能弄反,操作需緩慢進行,飛行器別在狹小的空間飛行。 實物圖如圖3.5所示 圖3.5 9 溫州大學城市學院本科畢業(yè)設計(論文) 四、系統軟件設計 (一)Keil MDK5.12 簡介 1. Keil MDK 概述 Keil MDK ,也稱 MDK-ARM , Realview MDK、I-MDK、uVision4 等。目前 Keil MDK 由三家 國內代理商提供技術支持和相關服務。 MDK-ARM 軟件為基于 Cortex-M、Cortex-R4、ARM7、ARM9處

31、理器設備提供了一個完整的開發(fā) 環(huán)境。MDK-ARM 專為微控制器應用而設計,不僅易學易用,而且功能強大,能夠滿足大多數苛刻的 嵌入式應用。 MDK-ARM 有四個可用版本, 分別是 MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。 所有版本均提供一個完善的 C / C++開發(fā)環(huán)境,其中 MDK-Professional還包含大量的中間庫。 2. Keil MDK 功能特點 完美支持 Cortex-M、Cortex-R4、ARM7 和 ARM9 系列器件。 行業(yè)領先的ARM C/C++編譯工具鏈 確定的Keil RTX ,小封裝實時操作

32、系統(帶源碼) 科Vision4 IDE集成開發(fā)環(huán)境,調試器和仿真環(huán)境 TCP/IP網絡套件提供多種的協議和各種應用 提供帶標準驅動類的 USB設備和USB主機棧 為帶圖形用戶接口的嵌入式系統提供了完善的 GUI庫支持 ULINKpro可實時分析運行中的應用程序,且能記錄 Cortex-M指令的每一次執(zhí)行 關于程序運行的完整代碼覆蓋率信息 執(zhí)行分析工具和性能分析器可使程序得到最優(yōu)化 大量的項目例程幫助你快速熟悉 MDK-ARM 強大的內置特征 符合CMSIS (Cortex微控制器軟件接口標準) (二)軟件設計框圖 系統軟件設計包括遙控器程序設計以及飛行器程序設計。 遙控器的主要作用

33、就是采集操控信息發(fā)送 給飛行器,飛行器部分主要是接收無線數據以及數據處理。遙控器的主要設計流程圖如圖 4.1所示。 溫州大學城市學院本科畢業(yè)設計(論文) 圖4.1 在遙控器程序設計中,采取循環(huán)采集 ADC電壓并無線發(fā)送數據。 ADC電壓取值范圍為0~2.5V,分 辨率是100,采集到的數據即為0~250,并把采集到的電壓值存入無線傳輸緩存 Buf數組里面。Buf數組定 義為8位數據類型,設置了 8位長度,Buf[0]里面存入幀頭,Buf[1]里面存放油門,Buf[2]存放左邊搖桿數 據,Buf[3]里存放前后方向數據, Buf[4]存入左右方向數據,剩余部分存入

34、按鍵狀態(tài)信息。 NRF24L01 直接將讀取到的8位數據發(fā)送到飛行器端,進行實時控制。 13 結論 畢業(yè)設計期間,最辛苦也是最有意義的地方就是找出問題的所在, 并通過查閱相關資料,尋找解決 方案并最終解決問題,這個過程雖然比較繁瑣,但是對于我們的學習卻極有意義。四年的大學課程學習, 以及兩年的實驗室學習經驗, 學到了很多關于單片機以及嵌入式方面的知識, 這也是我們電氣工程專業(yè) 所學的比較重要的內容,通過這次畢業(yè)設計,使得我對這方面的知識得到了提高。 想要很好的完成本次畢業(yè)設計,總體的設計思路一定要清晰。從主控芯片的選擇到模塊的選擇方案, 都需要經過深思熟慮。我的思路還算比較清

35、晰,首先要有遙控器作為控制端,采集控制信息通過無線模 塊傳輸到飛行器端,飛行器端通過無線接收模塊接收到的信息從而做出相應的反應。 經過查閱相關資料,本次設計選用基于 ARM Cortex-3為內核的STM32F103作為控制芯片,采用 NRF24L01作為通信模塊,電源部分采用 3.7V充電鋰電池作為系統提供電源。 這段時間里,在老是以及同學的幫助下, 還有自己的不斷學習和探索下, 一步一步的完成了設計的 要求,這個過程非常的有意義以及值得回味。 通過和老師同學的交流, 不僅豐富了自己的知識面, 開拓 了自己的思路,同時還可以拉近與老師同學之間的關系。 通過這段時間的學習, 我掌握了

36、很多書本上沒 有的指示,但同時又可以把書上的內容運用到實踐中來,學以致用。 總之,通過本次設計,我了解了關于我所設計課題的相關內容,加深了對本專業(yè)的理解,鞏固了大 學四年所學到的知識, 畢業(yè)設計是理論與實踐相結合的一個過程, 同時也是對我們大學四年鎖學知識的 一次總體考核。 歷時兩個月的時間完成了本次畢業(yè)設計, 從開題報告到硬件電路的設計再到程序設計最后撰寫這篇 論文,在這么長的畢業(yè)設計過程中,我遇到了很多困難,為此我的指導老師孫躍老師始終給予了我細心 的知道和不懈的支持。孫老師為人隨和、治學嚴謹細心,即使不是上班時間也不厭其煩的幫助我進行論 文的修改,為我指點迷津,幫助我開拓思路,

37、 從開始的方案選擇到最后的調試都是如此的幫助我。 孫老 是深厚的理論功底、豐富的實踐經驗以及誨人不倦的高尚師德對我能夠完成本次畢業(yè)設計起到了至關重 要的作用,在此,向孫躍老師致以崇高的敬意以及由衷的感謝。 同時還要感謝我的同學, 在實物制作以及論文撰寫過程中給予了我很多有價值的意見, 同學之間的 互相討論,解決了很多個人難以解決的問題。 本論文的完成對我而言并不是重點, 文中的不足和淺顯之處則是我新的征程上的新的起點。 同時我 在本論文的寫作過程中引用了很多學者的文獻, 如果沒有這些前輩的研究成果, 我將很難完成這篇論文 的撰寫,在此由衷的感謝這些文獻的作者。 學業(yè)即將完成,我將

38、帶著家人、老師、同學以及朋友的鼓勵和期望,邁向人生嶄新的臺階。 溫州大學城市學院本科畢業(yè)設計(論文) 參考文獻 [1]馮旭光 四旋翼無人機自主控制系統設計 [學位論文]碩士 2014 [2]陳海濱,殳國華.四旋翼飛行器的設計[J].實驗室研完與探索.2013,32(3):41-44. [3]楊云高,鮮斌,殷強,等.四旋翼無人飛行器架構及飛行控制的研完現狀 [J].2011,22-24(7):448-453. [4]段國強.四旋翼無人直升機仿真及控制方法比較研究 [D] .哈爾濱:哈爾濱工業(yè)大 學,2013 [5]尹志林,張偉.超小型紅外遙控裝置設計.南京航空航天大學航空宇航學

39、院 ,南京,210016 [6]彭貞慧.小型四旋翼無人直升機控制系統設計 [D].南京:南京理工大學, 2010 [7]張春,鮮斌,殷強等.基于 ARM處理器的四旋翼無人機自主控制系統 研究[J].中國科學技術大 學學報,2012, 09: 753-760 [8]高同躍.超小型無人直升機飛控系統及自主滯空飛行的研究 ,[博士學位論文].上海:上海大 學,2008. [9]朱海榮,張鶴鳴,郭浩波.基于無線遙控技術的四旋翼飛行器控制系統設計 .南通大學 電氣工程 學院, 江蘇 南通226019 [10]鐘佳朋.四旋翼無人機的導航與控制 [D].哈爾濱:哈爾濱工業(yè)大學, 2010

40、[11]劉煥曄.小型四旋翼飛行器飛行控制系統研究與設計 [D].上海交通大學,2009. [12]龐慶需.四旋翼飛行器設計與穩(wěn)定控制研究 [D]. 中國科學技術大學,2011. [13]喬維維.四旋翼飛行器飛行控制系統研究與仿真 [D].太原:中北大學,2012 [14]吳中華,賈秋玲.四旋翼幾種控制方法研究 [J].現代電子技術,2013, 15: 88- 90+94. [15]國倩倩,微型四旋翼飛行器控制系統設計及控制方法研究吉林大學, 2013 [16]陳新泉.四旋翼無人機飛控系統設計與研究【碩 士學位論文】,南昌航空大學,2014 [17]李堯.四旋翼飛行器控制系統設計【大

41、連理工大學碩士論文】 ,大連理工大學,2013 14 溫州大學城市學院本科畢業(yè)設計(論文) 19 附錄 遙控器端代碼 //左手上下為油門,左右為旋轉 //右手上下為俯仰,左右為橫滾 // MCU 工作頻率28MHZ!! #include <rtx51tny.h> #include <STC15F2K60S2.H> #include <NRF24L01.H> #include <AD.H> #include <intrins.h> sbit RLED=P0A5; // p0?為 p0 □的

42、第六位 sbit GLED=P0A6; sbit LKEY=P4A7; sbit RKEY=P3A4; float temp1=0; volatile int idata ay,ax,by,bx; volatile int idata cy,cx,dy,dx; volatile float idata battery; unsigned char idata TxBuf[20]={0}; unsigned char idata RxBuf[20]={0}; void IO_and_Init(); #if 1 為類型定義 typedef unsigned char ui

43、nt8_t;〃typedef typedef unsigned short int uint16_t; typedef unsigned int uint32_t; //typedef unsigned __int64 uint64_t; 油門門 橫滾角 仰俯角 自旋角 int Throttle;// int Roll; // int Pitch; // int Yaw; // int Throttle_Calibra=1500;// 風門校準 int Pitch_Calibra =1500;// 反轉校準 int Roll_Calibra =1500;// 橫滾校

44、準 int Yaw_Calibra =1500;// 偏航校準 typedef uint32_t u32; typedef uint16_t u16; typedef uint8_t u8; #define AmericaMode 1 // 左手油門。 u32 Mytest=0; //獲取AD專換平均值。 u16 Get_Adc_Average(u8 ch,u8 times) { u32 temp_val=0; u8 t; for(t=0;t<times;t++) { temp_val+=getADCResult(ch);〃Get_Adc(ch); } M

45、ytest=temp_val/times; _nop_(); return Mytest;//temp_val/times; } /* 獲取搖桿數據的AD專換平均值。 */ void LoadRCdata(void) { /* 左手油門*/ #ifdef AmericaMode Throttle=1000+1000*((float)(Get_Adc_Average(1,15))/256); Throttle=(Throttle<=1000)?1000:Throttle; Throttle=(Throttle>=2000)?2000:Throttle; P

46、itch= 1000+((1000*(float)(Get_Adc_Average(3,15))/256)-Pitch_Calibra); Pitch=(Pitch<=1000)?1000:Pitch; Pitch=(Pitch>=2000)?2000:Pitch; Roll= 1000+((1000*(float)(Get_Adc_Average(2,15))/256)-Roll_Calibra); Roll=(Roll<=1000)?1000:Roll; Roll=(Roll>=2000)?2000:Roll; Yaw= 1000+((1000*(flo

47、at)(Get_Adc_Average(0,15))/256)-Yaw_Calibra); Yaw=(Yaw<=1000)?1000:Yaw; Yaw=(Yaw>=2000)?2000:Yaw; #else /* 右手油門*/ Throttle=1500 - (Throttle_Calibra - (1000 + (1000*Get_Adc_Average(1,15))/4096)); Throttle=(Throttle<=1000)?1000:Throttle; Throttle=(Throttle>=2000)?2000:Throttle; Pit

48、ch= 1500 - (Pitch_Calibra-(1000 + (1000 - (1000*Get_Adc_Average(3,15))/4096))); Pitch=(Pitch<=1000)?1000:Pitch; Pitch=(Pitch>=2000)?2000:Pitch; Roll= 1500 - (Roll_Calibra - (1000 + (1000*Get_Adc_Average(0,15))/4096)); Roll=(Roll<=1000)?1000:Roll; Roll=(Roll>=2000)?2000:Roll; Yaw= 1

49、500 - (Yaw_Calibra - (1000 + (1000*Get_Adc_Average(2,15))/4096)); Yaw=(Yaw<=1000)?1000:Yaw; Yaw=(Yaw>=2000)?2000:Yaw; #endif } //校準搖桿。 void controlClibra(void) { static u8 i; uint16_t sum[4]={0,0,0,0}; // static unsigned char lednum=1; static unsigned char clibrasumNum = 20; for(i=

50、0;i<clibrasumNum;i++) { #ifdef AmericaMode // 美國模式。 油門,左手油門。 sum[0] += 1000 + (1000 - (1000*Get_Adc_Average(1,15))/256);〃 sum[1] += 1000 + (1000*Get_Adc_Average(3,15))/256; #else sum[0] += 1000 + (1000*Get_Adc_Average(1,15))/256; sum[1] += 1000 + (1000 - (1000*Get_Adc_Average(3,15))/256);

51、 #endif sum[2] += 1000 + (1000*Get_Adc_Average(0,15))/256; sum[3] += 1000 + (1000*Get_Adc_Average(2,15))/256; Delay(1000); } Throttle_Calibra = sum[0]/i; Pitch_Calibra = sum[1]/i; Roll_Calibra = sum[2]/i; Yaw_Calibra = sum[3]/i; } #define MSP_ARM_IT 5 #define MSP_DISARM_IT 6 #define MSP

52、_SET_4CON 7 #define MSP_HOLD_ALT 10 #define MSP_STOP_HOLD_ALT 11 #define MSP_HEAD_FREE 12 #define MSP_STOP_HEAD_FREE 13 #define MSP_AUTO_LAND_DISARM 9 #define MSP_ACC_CALI 205 typedef signed short int int16_t; uint8_t sendBuf[32]; uint8_t sendCnt=0; uint8_t checksum=0; // static void uart

53、8chk(uint8_t _x) { sendBuf[sendCnt++]=_x; checksum A= _x; } // static void uart16chk(int16_t a) { uart8chk((uint8_t)(a&0xff)); uart8chk((uint8_t)(a>>8)); } //發(fā)送遙控器數據。 void CommUAVUpload(uint8_t cmd) { sendCnt=0; uart8chk('$'); uart8chk('M'); uart8chk('&

54、lt;'); checksum = 0; switch(cmd) { case MSP_SET_4CON: uart8chk(8); //data payload len uart8chk(cmd); uart16chk(Throttle); uart16chk(Yaw); uart16chk(Pitch); uart16chk(Roll); break; case MSP_ARM_IT: 溫州大學城市學院本科畢業(yè)設計(論文) uart8chk(0); uart8chk(cmd); break; case MSP_DISARM_IT: uart8c

55、hk(0); uart8chk(cmd); break; case MSP_HOLD_ALT: uart8chk(0); uart8chk(cmd); break; case MSP_STOP_HOLD_ALT: uart8chk(0); uart8chk(cmd); break; case MSP_HEAD_FREE: uart8chk(0); uart8chk(cmd); break; case MSP_STOP_HEAD_FREE: uart8chk(0); uart8chk(cmd); break; case MSP_AUTO_LAND_DISAR

56、M: uart8chk(0); uart8chk(cmd); break; case MSP_ACC_CALI: uart8chk(0); uart8chk(cmd); break; } uart8chk(checksum); nRF24L01_TxPacket(sendBuf); 〃NRF24L01_TxPacket2(sendBuf); #endif //獲取ADfl樣數據 void AD() _task_ 0 { IO_and_Init(); // 初始化 I/O 口 os_create_task (1); 〃 啟動進程 1 while(1) { c

57、y=getADCResult(1); 〃 油門//讀取4個搖桿通道每個通道的 8位數據,取值范圍0-255 Delay(10); cx=getADCResult(0); //YAW Delay(10); dy=getADCResult(3); //Pitch Delay(10); dx=getADCResult(2); //Roll Delay(10); battery=(getADCResult(4)*5.05*100)/256; // 電池電壓檢測通道 低于 3.7V 亮紅燈 Delay(10); if(battery<=370) { RLED=1; GLE

58、D=0; } else { RLED=0; GLED=1; } os_wait(K_IVL,3,0);〃 延時 3 個節(jié)拍 } } // void NRF24L01() _task_ 1 { while(1) { TxBuf[0]++; TxBuf[1]=128; TxBuf[2]=128; TxBuf[3]=128; if(cy<20) goto EXIT; } // 當油門拉至最低時遙控器解鎖 if(RKEY==0) { TxBuf[5]=1; else TxBuf[5]=0; if(LKEY==0) TxBuf[6]=1; e

59、lse TxBuf[6]=0; } 〃nRF24L01_TxPacket(TxBuf);〃 發(fā)送 TxBuf 數組的數據 os_wait(K_IVL,2,0); 〃 給一定延時讓數據發(fā)送完成 EXIT: //遙控器解鎖。 while(1) { if((dy-by)>=255) 22 溫州大學城市學院本科畢業(yè)設計(論文) { TxBuf[1]=255; 128 } // 用上電記錄的數據對采樣數據進行修正,保證搖桿中位時數據為 else if((dy-by)<=0) { TxBuf[1]=0; } else { TxBuf[1]=dy

60、-by;〃getADCResult(0)-128 } if((dx-bx)>=255) { TxBuf[2]=255; } else if((dx-bx)<=0) { TxBuf[2]=0; } else { TxBuf[2]=dx-bx; } if((cx-ax)>=255) { TxBuf[3]=255; } else if((cx-ax)<=0) { TxBuf[3]=0; } else { TxBuf[3]=cx-ax; // 油門:TxBuf[4] //Yaw : TxBuf[3] // 俯仰:TxBuf[

61、1] // 橫滾:TxBuf[2] TxBuf[4]=cy; // 油門通道不需處理,直接發(fā)送 AD僉測的8位數據即可,根據 ADW羊原理 易知讀取的A陳樣數據不可能為負也不可能大于 255 if(RKEY==0) { TxBuf[5]=1; } else { TxBuf[5]=0; } if(LKEY==0) { TxBuf[6]=1; } else { TxBuf[6]=0; } TxBuf[0]++; LoadRCdata();// 獲取搖桿數據。 CommUAVUpload(MSP_SET_4CON); 〃nRF24L01_TxPacket(TxBuf);〃 發(fā)射

62、數據 os_wait(K_IVL,2,0); // 給一定延時讓數據發(fā)送完成 } } //IO初始化。 void IO_and_Init() { P1M0=0x00; //P1 設為高阻模式 P1M1=0xFF; 24 溫州大學城市學院本科畢業(yè)設計(論文) P0M0=0XFF; //其他I/O 口設置為準雙向,弱上拉模式 P0M1=0X00; P2M0=0X00; P2M1=0X00; P3M0=0X00; P3M1=0X00; P4M0=0X00; P4M1=0X00; P5M0=0Xff; P5M1=0X00; LKEY=1; // 拉高按鍵

63、檢測I/O 口電平,按鍵為低電平觸發(fā) RKEY=1; init_NRF24L01(); 〃 初始化無線模塊 adc_init(); // 初始化AD僉測模塊 ax=(getADCResult(0)); temp1=((float)ax/256)*1000-500; Roll_Calibra=temp1;//ax*1000-500; 〃 記錄上電時搖桿的數據作為中位修正,因為搖桿中位要 為 128 即 256/2 Delay(10); by=getADCResult(3); temp1=((float)by/256)*1000-500; // 通道 1,是油門值。 Pitc

64、h_Calibra=temp1; Delay(10); bx=getADCResult(2); Yaw_Calibra=((float)bx/256)*1000-500;; // 校準。 Delay(10); } 由于本次畢業(yè)設計關于姿態(tài)控制部分沒有完善,采取用四個 LED燈來模擬上下左右。 發(fā)射端代碼 #include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "lcd.h"

65、; #include "usart.h 27 #include "24l01.h" int main(void) { u8 key,mode; u16 t=0; u8 tmp_buf[2]; delay_init(); NVIC_Configuration(); uart_init(9600); LED_Init(); LCD_Init(); KEY_Init(); //延時函數初始化 //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級 //串口初始化為9600 //LED端口初始化 //初始化LCD

66、//按鍵初始化 NRF24L01_Init(); // 初始化 NRF24L01 POINT_COLOR=RED; / LCD_ShowString(60,50,200,16,16,"VeryAI STM32"); LCD_ShowString(60,70,200,16,16,"NRF24L01 TEST"); LCD_ShowString(60,90,200,16,16,"VeryAI@COM"); LCD_ShowString(60,110,200,16,16,"2013/9/23"); whi

67、le(NRF24L01_Check()) // 檢查 NRF24L0他否在位. { LCD_ShowString(60,130,200,16,16,"NRF24L01 Error"); delay_ms(200); LCD_Fill(60,130,239,130+16,WHITE); delay_ms(200); } LCD_ShowString(60,130,200,16,16,"NRF24L01 OK"); LCD_Fill(10,150,240,166,WHITE);〃 清空上面的顯示 POINT_COLOR=BLUE;// LCD_ShowString(60,150,200,16,16,"NRF24L01 TX_Mode"); NRF24L01_TX_Mode(); 從空格鍵開始 //mode=' ';// while(1)

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!