基于STM32的四旋翼飛行器控制系統(tǒng)
四旋翼飛行器是一種具有6個自由度和4個控制輸入的可垂直起降、懸停、前飛、側(cè)飛和倒飛的無人駕駛飛行器,4只旋翼可相互抵消反扭力矩,不需要專門的反扭矩槳。被廣泛應用于無人偵察、森林防火、災情監(jiān)測、城市巡邏等領(lǐng)域。飛行控制系統(tǒng)是四旋翼飛行器的核心部分,其性能的好壞決定了整個系統(tǒng)的性能。近年來,微小型四旋翼無人機的自主飛行控制得到了研究人員的廣泛關(guān)注。隨著計算機技術(shù)和電子技術(shù)的發(fā)展,國內(nèi)的小型飛行器研究開發(fā)工作逐漸升溫,許多公司形成了產(chǎn)業(yè)。例如大疆公司將四軸飛行器等多軸飛行器實現(xiàn)了商業(yè)化應用。國內(nèi)研究的重點主要為三個方面:姿態(tài)控制、傳感器技術(shù)發(fā)展以及新材料的應用、電池領(lǐng)域技術(shù)的研究。典型代表有哈工大、北京航空航天大學、南京航空航天大學、國防科技大學等。在控制算法上,先進PID控制得到廣泛應用。
本文引用地址:http://www.ex-cimer.com/article/201808/386776.htm本文以ARM Cortex-M3架構(gòu)的STM32C8T6作為飛行器控制處理器,以MPU-6050作為飛行器的姿態(tài)傳感器,以低功耗2.4GHz的nRF24L01作為無線傳輸器件,以HC-RS04超聲波作為障礙物報警傳感器設(shè)計系統(tǒng)硬件電路。經(jīng)過實驗調(diào)試,硬件系統(tǒng)能夠穩(wěn)定、可靠運行。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計
1.1 物理結(jié)構(gòu)設(shè)計
四旋翼飛行器由一個十字支架和四個螺旋槳組成,支架中間安放飛行控制處理器及外部設(shè)備,四個螺旋槳半徑和角度相同,呈左、右、前、后四個方向兩兩對稱排列。四個電機對稱安裝在支架端,其中,電機1和電機3逆時針旋轉(zhuǎn),電機2和電機4順時針旋轉(zhuǎn),通過改變四個電機的轉(zhuǎn)速來控制電機的運行狀態(tài)。其結(jié)構(gòu)形式如圖1所示。
1.2 工作原理
四旋翼飛行器在工作時,是通過電機調(diào)速系統(tǒng)對四個電機的轉(zhuǎn)速進行調(diào)節(jié),以實現(xiàn)升力的不同變化,從而控制飛行器的運行狀態(tài)。飛行器的電機1和電機3呈逆時針旋轉(zhuǎn),電機2和電機4呈順時針旋轉(zhuǎn),此時飛行器的陀螺效應和空氣扭矩效應均被抵消,從而保證飛行器能夠平衡穩(wěn)定的飛行。通過適當?shù)馗淖冸姍C的轉(zhuǎn)速,來控制飛行器的飛行狀態(tài)。
1.3 飛行器控制系統(tǒng)總體系統(tǒng)設(shè)計
飛行控制系統(tǒng)分為地面和機載兩部分,其在物理上是彼此單獨的,在邏輯上是彼此相連的。地面部分又分為地面站部分和遙控器部分,這兩部分相互獨立。整個飛行控制系統(tǒng)由微控制器模塊、無線模塊、電機驅(qū)動模塊、姿態(tài)測量模塊、高度測量模塊、報警電路模塊、地面站和遙控器等部分組成。系統(tǒng)總體框圖如圖2所示。
2 系統(tǒng)主要功能模塊硬件電路設(shè)計
2.1 微控制器模塊
本控制系統(tǒng)是一個多輸入多輸出系統(tǒng),控制模塊的主要輸入信號有各個傳感器的測量數(shù)據(jù),輸出信號為四路變脈寬電機控制信號,需要多個定時/計數(shù)器控制信號脈寬。系統(tǒng)需要處理很多傳感器傳來的數(shù)據(jù),并且需要將數(shù)據(jù)送回地面系統(tǒng),需要實時控制,響應速度必須要快。此外,本系統(tǒng)傳感器的接口多樣化,需要更多樣的接口才能便于軟件讀取?;谶@些需求,本設(shè)計中飛行器微處理器模塊選用ARM Cortex-M3內(nèi)核的STM32F103C8T6,它的時鐘頻率可以達到72MHz,并且擁有IIC總線接口、JTAG接口、SPI接口、AD采集接口、多路PWM輸出和多個串口,便于多樣化傳感器的掛接和程序的下載與調(diào)試。此微控制器具有8個定時器,對于信號采集和PWM輸出均能滿足。
2.2 姿態(tài)測量模塊
四旋翼飛行器受電機振動和外界干擾影響較大,精確數(shù)學模型建立較難,且其載重有限,一般以慣性器件作為姿態(tài)測量裝置,姿態(tài)測量部件是整個硬件系統(tǒng)的重要部分。本設(shè)計綜合考慮硬件設(shè)計原則,采用MPU-6050作為飛行器的姿態(tài)傳感器。MPU-6050通過IIC協(xié)議接口進行通訊,只需要將MPU-6050的SDA數(shù)據(jù)線和SCL時鐘線與STM32通用I/O口相連接,其電路如圖3所示。為了穩(wěn)定輸出,避免空閑總線開漏,利用R2與R3作為SDA和SCL的上拉電阻,提高總線的負載能力。電路中C9為數(shù)字供電電壓濾波電容,C8為校準濾波電容,C10為電荷泵電容,C11為供電電壓濾波電容。
2.3 無線通訊模塊
系統(tǒng)在這三個方面需要無線通訊:首先需要將遙控器的信號通過無線模塊發(fā)送出去。其次,地面站需要接收飛控端的姿態(tài)數(shù)據(jù),并需要發(fā)送控制參數(shù)。最后,在飛控端需要接收遙控器和地面站的數(shù)據(jù)。結(jié)合通訊距離,成本等因素,本設(shè)計選用nRF24L01無線模塊器件。其發(fā)射電路可以通過LC振蕩電路構(gòu)成。為了便于維修,利用接口將無線模塊獨立出來。
2.3.1 遙控器模塊
本設(shè)計采用搖桿控制方式,利用數(shù)-模轉(zhuǎn)換器將搖桿的模擬量轉(zhuǎn)化為數(shù)字量,再將轉(zhuǎn)化后的數(shù)字信號傳遞給小型控制器,經(jīng)過一定的數(shù)據(jù)處理,通過無線發(fā)射出去,供飛行器控制器接收利用。采用nRF24L01作為遙控器的無線發(fā)射器件,為了便于數(shù)-模轉(zhuǎn)換,遙控器搖桿采用搖桿電位器,通過采集電位器的電壓值去衡量遙控的行程量;由于遙控器處理信號單一,不需要高速的處理器,采用8位的51單片機STC89C52RC作為遙控器的控制器,用來采集搖桿的模擬信號和發(fā)送采集到的數(shù)據(jù)。采用PCF8591作為數(shù)據(jù)獲取器件,其含有4路模擬量輸入,1路模擬量輸出,屬于標準的IIC通訊,能夠滿足本設(shè)計要求。遙控器硬件電路如圖4所示。
2.3.2 地面站模塊
飛行器地面站主要完成以下兩個方面的功能:(1)在飛行器穩(wěn)定飛行時檢測飛行器的飛行狀態(tài),傳遞控制參數(shù)給飛行器,使其按照控制算法運行;(2)在飛行器調(diào)試階段,完成飛行器PID參數(shù)的修改和調(diào)整。由于PC機一般留給用戶操作的多為USB接口,然而nRF24L01通訊接口為SPI接口,本設(shè)計選用51單片機讀取nRF24L01的數(shù)據(jù),繼續(xù)由單片機將數(shù)據(jù)通過USB轉(zhuǎn)串口芯片與PC機通訊,完成地面站數(shù)據(jù)的傳輸功能。
- STM32單片機中文官網(wǎng)
- STM32單片機官方開發(fā)工具
- STM32單片機參考設(shè)計
評論