解琛
摘 要 四軸飛行器是一種小型的飛行器平臺,其控制系統的核心是STM32單片機,具有性價比高、功能強大等特點,基于STM32的飛行器具有十分廣泛的用途。因此,本文就基于STM32四軸飛行器的設計進行了相關介紹,主要內容包括四軸飛行器的動力學分析、基于STM32四軸飛行器的總體設計方案與程序設計以及電子硬件電路與軟件程序
調試。
關鍵詞 四軸飛行器;STM32單片機;電子硬件電路
中圖分類號 V2 文獻標識碼 A 文章編號 2095-6363(2017)17-0061-02
四軸飛行器由于其體積小、飛行高度與速度較低、飛行狀態平穩、靈活等特點,在空間狹小的作業區域具有較高的應用優勢。在實際生活當中,四軸飛行器常被應用與火災現場探明險情或高層搜救當中;在地震等災害導致通訊中斷的情況下,也可借由四軸飛行器作為空中通訊中轉。四軸飛行器在設計過程中存有很多的技術難點,需要對其實際使用過程中受到的物理效應、氣流與環境的干擾等進行重點考量,才能更好地實現其應用價值。
1 四軸飛行器的動力學分析
四軸飛行器能夠實現的飛行運動包括爬升、橫滾調節、下降、俯仰調節、偏航調節,本文選用的四軸飛行器外形呈現為“X”型(如圖1所示),電機就安裝在“X”的四個角上。在設計過程中,為避免4個電機同向轉動時發生自旋運動,安裝時要保證對角電機的轉動方向相同,相鄰的電機轉動方向
相反。
關于電機的輸出功率,若其提供的升力大于飛行器本身的自重,則飛行器能夠垂直升起;若要飛行器降落,則要保持飛行器的輸出功率持續降低。當相鄰兩個電機的輸出功率大于或小于另外兩個電機的輸出功率時飛行器就能進行向指定方向運動。若減小對角兩個電機的輸出功率,同時增加另外兩個電機的輸出功率,則飛行器能夠完成偏航
運動。
2 基于STM32四軸飛行器的總體設計方案
2.1 飛行器設計方案
基于STM32四軸飛行器的控制器即為STM32單片機,在接收到PC端由藍牙發送的控制或調試指令后,可通過ⅡC接口設置MPU6050傳感器,并將傳感器的輸出設定為DMP的輸出模式。MPU6050傳感器的作用就是感受四軸飛行器在飛行過程中的飛行姿態信息,為STM32通過計算得出具體飛行姿態提供重要的解算數據,STM32的解算過程采用的是串級PID算法;通過計算得出的PWM信號被進一步輸送至電調,而電調在接收到信號指令后就會控制4個電機的轉動,實現對四軸飛行器的飛行姿態調整,保證四軸飛行器達到并維持平衡飛行的狀態。
2.2 飛行器硬件電路的設計
基于STM32四軸飛行器的硬件電路設計,需要包含以下電路內容:STM32最小系統電路與電源供電電路、MPU6050傳感器電路、電機驅動電路以及藍牙接口電路。其中的STM32最小系統電路在設計時應確保復位電路、晶振電路、JTAG配置電路設計完全,該電路設計的主要作用就是確保STM32控制器能夠正常運行,此種電路設計是最簡化的電路
形式[1]。
電源供電電路的設計。本文所選用的基于STM32四軸飛行器的正常運行,只需3.3V的一路恒壓電源,且運行時消耗的功率極小。STM32控制系統中的電源供電電路芯片為AMS1117,電路輸出的3.3V電壓只需供給MPU6050傳感器、STM32控制器以及JTAG配置
電路。
傳感器電路的設計。MPU6050傳感器電路的主要作用就是獲取四軸飛行器的飛行姿態信息數據,并將其提供給STM32控制器。傳感器通過信號傳輸的方式獲取的數據信息,能夠輔助STM32控制器完成對電機轉速的控制,確保飛行穩定。
電機驅動電路的設計。電機驅動電路即是電機接口電路,其結構主要包括電調與電機兩部分,主要的功能是傳輸由STM32控制器發出的PMW信號至電調,電調再進一步控制飛行器的電機運轉,確保飛行器的穩定
運行。
藍牙接口電路的設計。在調試程序的過程中,需要對飛行器的反饋數據進行詳細觀察,一般來說,采用串口進行數據觀察需要使用連接線,不適用于飛行器這種動態設備,藍牙接口電路這種無線調試方式更加便捷。藍牙模塊在設計時,芯片采用HC-05型號,用于上位機與STM32控制器中間的調試,其設計實質是串口通信
方式。
3 基于STM32四軸飛行器的程序設計
3.1 遙控程序設計
遙控程序的設計采用模塊化的設計方式,STM32控制器的編程有兩種方式,一種是寄存器操作,另一種是庫操作。其中,寄存器操作的形式具有執行效率高、可讀性差的特點;而庫操作的應用適用性更強,在編程之前,需要優先將STM32控制器的庫函數添加到工程當中,與此同時還應做好時鐘、GPIO等基本配置。STM32控制器在執行程序的過程中,執行順序為由上到下逐條執行,因此在進行模塊設計時應注意其分布的條理性。遙控程序模塊設計流程如下:RCC初始化、GPIO初始化、TFT初始化、無限模塊初始化串口初始化;遙感數據采集;發送控制信號;接收姿態信息;刷新TFT顯示數據;重復刷新TFT顯示數據;將顯示數據通過串口輸送至PC端;重復進行遙感數據采集及以下
流程。
3.2 飛控程序設計
飛控程序的設計與遙控程序設計的初始化部分具有諸多相似之處,區別在于后續控制部分,飛控程序的控制相較之下更為復雜,對四軸飛行器的設計實現具有很大的影響作用。在進行飛控程序設計的過程中,需要設計人員了解并熟練掌握較多程序算法,如姿態解算、傳感器的濾波算法、PID控制算法等;其中的濾波算法又能夠細分出多種類別,如卡爾曼濾波、融合濾波、融合濾波等;姿態解算的核心算法是四元素與歐拉角等。在STM32控制器的軟件編程過程中,部分可采用C語言進行,主要作用就是完成初始化數據的采集、遙控信號解碼以及電機控制姿態角解endprint
算等[2]。
3.3 串口與MPU6050傳感器的中斷子程序設計
串口與MPU6050傳感器中斷部分的作用主要是進行MPU6050傳感器傳輸數據的處理,將數據信息傳送至STM32控制器當中進行相應的輸出脈寬計算,并對最終的輸出脈寬進行輸出限幅與輸出給電調,有效控制飛行器的四個電機的正常運行,從而確保飛行器的穩定飛行。在串口中斷子程序當中,程序設計核心為對幀頭與幀尾、冗余校驗的正確性進行
判斷。
4 電子硬件電路與軟件程序的調試
電子硬件電路的調試需要先對遙控器進行調試。首先,應對電路板是否能夠進行正常工作進行確認,主要的做法如下:首先要寫一個相對簡單的程序,該程序能夠讓電路板上的指示燈閃爍,若電路板上的指示燈能夠正常閃爍且能夠正常下載程序,則說明電路板主控結構正常,能夠繼續進行下一步的硬件調試確認,直到最終全部完成整體硬件電路的調試
工作[3]。
在軟件程序編寫完成之后,針對遙控器與飛行控制板要進行嚴格的調試工作。在基于STM32四軸飛行器的設計中,對遙控器與飛行控制板的調試工作是一個難點部分,將飛行控制板在四軸飛行器的機架位置固定好,并將其余零部件全部進行組裝。在飛行器組裝完成后,不能直接進行試飛操作,而是要將飛行器處于懸停狀態進行觀察,這主要是由于軟件程序編寫可能存在缺陷,直接試飛可能造成飛行器損壞。打開飛行器與遙控器之后,在飛行器處于懸停狀態下進行觀察,依據實際現象進一步修改PID參數,通過不斷的調試、修改,當達到標準的參數結果后,預期控制目的得以實現,則整機調試工作結束。
5 結論
綜上所述,對基于STM32四軸飛行器的設計分析,有利于提升四軸飛行器的使用性能與應用范圍。通過相關設計,能夠更好的實現四周飛行器爬升、橫滾調節、下降、俯仰調節、偏航調節等飛行形式,從而提升其在實際救援等活動中的適用性,提升其應用價值。因此,要不斷深入研究基于STM32四軸飛行器的相關設計優化,同時為其他類型的多軸飛行器的設計與研發提供有效的設計參考。
參考文獻
[1]李潤寧,繆月琴,巫俊靈,等.基于STM32的四軸飛行器遙控與智能防撞設計[J].智能計算機與應用,2016,6(2):29-30.
[2]王康,董潔,王強.基于STM32的四軸飛行器語音控制設計與實現[J].工業控制計算機,2016,29(5):90-92.
[3]王東平.基于嵌入式的四軸飛行器控制系統研究與設計[D].泉州:華僑大學,2013.endprint