李瑞,郭迎,張妮,胡曉霞,焦靈俠
(1.西安工商學院,陜西西安,710200;2.西安方元明科技有線公司,陜西西安,710065)
本文主要設計一款專供電子類專業的大學生學習,集硬件和軟件于一體的高性價比四旋翼無人機套件。通過針對無人機系統中的數據采集、信號處理、信息傳輸、嵌入式控制等關鍵技術運用,合理的將這些關鍵技術融入教學方案中,從而提高了實踐教學的質量,最終將增強學生解決實際技術問題的能力。
經過市場充分調研發現,目前市面上的無人機大致分為:玩具級、消費級和專業級三個級別,對于固定翼航模無人機和多旋翼無人機都存在以下問題。
玩具級別的無人機功能單一,主要共能是使用遙控器實施飛行操作,可以完成前進后退,拐彎懸停,爬升降落等基本功能。其關鍵技術使用的是電機驅動的方式,該種方式精度低、功耗大、算法及其實現技術不足于滿足電子類相關專業的大學生對高精度、低延時、低功耗的技術研究的需求。
消費級的無人機大多采用軟件集成化、硬件模塊化的設計思路,集成化程度過高。大學生們很難使用消費級別的無人機去一窺究竟。難以滿足大學生對多旋翼無人機及其飛行控制器的開發設計學習的目的。
專業級的無人機對于飛機本身的要求一般不高,關鍵技術集中在無人機搭載的某項特殊功能上,例如應用于地形地貌勘測的無人機,該型無人機的關鍵技術在于搭載的視覺系統;應用于軍事領域的抗干擾旋翼無人機,關鍵技術為飛機搭載的抗干擾設備等;應用于農業施肥和打藥的無人機,關鍵技術為大負載、長續航等。這一類的無人機在技術上難度較高,不適于作為教學使用。
本文提出的無人機教學套件,專門針對學生掌握電子工程領域的技術所設計,各分系統的關鍵技術設計合理,指標精度適宜,研發流程以提高學生實際工程能力為依據進行設計,適用于集中生產實習等環節,有助于改善教學實踐環節。無人機教學套件合理的結合了基礎理論知識與實際產品,通過使用,學生們可以很好的將理論知識學以致用于解決實際問題。
我們旨在做一款專門針對大學階段電子類專業教學環節的四旋翼無人機,從選型芯片開始到制作自己的單片機最小系統,再將最小系統和采集模塊的陀螺儀與氣壓計傳感器相連接,與通信模塊的信號收發天線相連接,與電源模塊的調節芯片相連接,最后組合自制飛行控制系統,從原理圖到PCB 制版讓學生體驗完整的硬件訓練體系。
最終通過每個模塊的驅動程序調試與功能整合調試,做出一款能完成簡單平穩飛行,支持遠程遙控操作,同時具備預留外圍功能擴展模塊接口的無人機。配合自編教材或者網絡資源針對細化后的獨立模塊進行理論學習與實驗調試,最后拼接組裝成品。讓學生全程參與整個硬件電路設計和軟件代碼編程與調試的完整項目開發過程。把理論知識的學習與實踐動手兩個教學環節以軟硬結合訓練的教學模式有效結合起來,最終達到靈活應用所學理論知識解決實際生活問題的教學目的。總體設計思路流程圖如圖1所示。

圖1 主控程序設計思路圖
首先硬件上電之后,對主控芯片STM32 自帶的時鐘控制器進行設置,并且對各個模塊的驅動進行初始化處理,主要完成寄存器遺留數據以及遺留中斷數據的清除和初始化,還有陀螺儀的較準等。接下來主控芯片就可以獲取來自于傳感器采集的最新數據信息,將獲取到的傳感器信息進行轉換分析,完成四旋翼無人機此刻的空中姿態解算,然后對四旋翼無機發出控制指令信息,使得無人機在空中實現飛行姿態的調整。
因此我們以任務管理的形式對軟件進行模塊進行劃分一個共包含四部分:電機驅動任務管理模塊;姿態傳感器檢測任務管理模塊;電源管理模塊;核心算法任務管理模塊,如圖1 所示。
電機的驅動任務管理模塊,主要負責調配每個電機的不同轉速實現飛機的起飛、降落、轉向等操作;電源任務管理模塊主要負責電源的穩定供給以及剩余電量的監測于估算,為是否提示返航給出判定依據;姿態傳感器采集任務管理模塊,主要負責接收陀螺儀等傳感器的數據采集,為四旋翼無人機的空中姿態檢測提供判斷依據。核心算法任務管理模塊,主要負責解算四旋翼無人機空中姿態信息,并快速給出調整信息,最終以動作指令的形式發往電子調速器模塊從而改變電機轉速達到飛行姿態的糾正。
檢測到四旋翼無人機空中姿態產生問題的信息后必須以中斷函數的形式發送給主控,強行修改此刻電子調速器的數據信息來糾正四旋翼無人機此刻的空中姿態。因此我們需要在姿態信息下一次中斷數據到來之前完成當次姿態信息的結算并發出調控指令。所以需要保證算法的體積和代碼的最小封裝。如果軟件算法優化以后仍然達不到要求可以考慮升級硬件,選擇處理能力更強的主控芯片。
以下介紹的就是這架為理論與實踐教學環節設計的教學無人機硬件模塊構成。從底層芯片與傳感器開始搭建模塊,在組成系統,最后實現系統聯調,讓學生感受自下而上設計實踐過程。整體框圖如圖2 所示。

圖2 四旋翼無人機硬件系統框圖
設計的主控芯片采用STM32F103C8T6,他功能很強大,產品系列也非常豐富,底層驅動代碼可移植于更高性能的芯片方便改版升級,之所以選擇了F103 系列主要式為了控制成本,如果需要搭載圖像傳輸功能或者實現復雜飛行控制算法建議選擇STM32 F4 系列或更高系列的芯片完成自己的設計。
針對姿態檢模塊我們采用MPU-6500 陀螺儀,它具有價格便宜性能穩定,參考資料多等優勢。同時它整合了3 軸陀螺儀和3 軸加速度計,以及一個可擴展的數字運動處理器DMP,可用IIC 接口連接一個第三方的數字傳感器,比如加速度計、磁力計等傳感器。由IIC 端口以單一數據流的形式,向應用端輸出完整的6 軸或9 軸的旋轉矩陣、四元數、歐拉角格式的融合演算數據。
高度檢測模塊我們采用FBM320 氣壓計,它價格便宜,測量較為精準誤差小。通信模塊主要分為四旋翼無人機上的信號接收端和遙控發射的發射端我們分別采用了Si24R1 的2.4G 芯片和2.4G 陶瓷天線ANT,雖有一定的傳輸半徑,但信號傳輸穩定。
控制方式采用遙控器遙控或者手機APP(支持體感的智能手機)也可以根據2.4G 陶瓷天線ANT 的傳輸協議或者其他傳輸設備的傳輸設備自制遙控器。電機我們最終選擇720 空心杯電機型號為Motor_720,它具有自重輕,轉速高且容易調控的優勢。電源供電模塊最終采用電池600mAh。
四旋翼無人機有兩種方法來獲取傳感器采集的信息,第一種方法是通過查詢方式獲取,第二種方法是通過中斷方式獲取。也可以考慮將二者有效結合。
軟件流程主要解決以下問題:傳感器先采集數據信息,經過數據信息的解算后得出當下四旋翼無人機的空中姿態,如果飛行器姿態沒有問題則不作中斷回應,如果有問題則提出中斷請求,可以結合查表的形式報告錯誤類型,并迅速做出回答相應,此種中斷加查表的形式可以做出更高速的回應。具體流程圖如圖3所示。

圖3 程序流程圖
程序完成初始化后,先設置傳感器的中斷類型以及處理函數,將姿態解算方法和姿態糾正方法都提前定義在中斷處理函數中,有需要的時候直接調用中斷函數即可以最快速度完成四旋翼飛行器空中姿態的解算和糾正。所以只需要實時監測中斷情況即可。每次中斷發生以后在處理前先清除中斷,再處理數據,以免發生錯誤指令。
數據采集模塊包括加速度和陀螺儀信息。MPU-6050 芯片就包括了這兩個信息,所以我們可以通過這個芯片來采集陀螺儀和加速度計的數據,并用四元數對采集的數據進行姿態解算。
由于加速度傳感器和陀螺儀的工作模式已經被主控系統在初始化的時候設置過了,所以每當加速度和陀螺儀產生新數據的時候,主控系統就會通過中斷方式來讀取數據。主控系統模塊得到數據之后,變可以放心的進入下一個模塊姿態解算。
關于四旋翼飛行器網上的資源和書籍很多,本文在保證基本功能的前提下給出了一個低成本的解決方案,保證低成本和高性能的前提下,本文還在算法優化上給出了解決思路。此款無人機的解決方案目標指向明確,是專門為電子類大學的生產實訓環節,以及理論結合實踐的教學環節所設計。并非一味追求飛行器的性能,而是在價格與性能之間做了權衡給出解決方案。旨在完成飛行器設計的普及教學,對于從零基礎起步學習設計無人機的學生給出了基本的硬件解決方案以及代碼優化思路。硬件選型主要考慮低成本和多資源,方便學生自學與DIY 時調試期間的配件更換。