廈門大學(xué)信息科學(xué)與技術(shù)學(xué)院 程 煦 郭珊珊 陳華賓
基于STM32單片機(jī)的四旋翼飛行器設(shè)計(jì)
廈門大學(xué)信息科學(xué)與技術(shù)學(xué)院 程 煦 郭珊珊 陳華賓
四旋翼飛行器是一種新型無人飛行器,其結(jié)構(gòu)簡(jiǎn)單,飛行穩(wěn)定性強(qiáng),具有很強(qiáng)的實(shí)用價(jià)值?;谄渖鲜鎏匦?,提出一種以STM32單片機(jī)為核心的四旋翼飛行器的設(shè)計(jì),主要包括飛行器的結(jié)構(gòu)以及基本原理的介紹、硬件部分的設(shè)計(jì)與選擇、軟件部分的設(shè)計(jì)與實(shí)現(xiàn)。在硬件部分,主要是以STM32系列微處理器為主控核心,MPU-6050為飛行姿態(tài)測(cè)量傳感器,2.4GHz全球開放頻段為無線數(shù)據(jù)傳輸控制。其中具體各元件的作用與選擇將分別從主控單元、IMU 模塊、電機(jī)驅(qū)動(dòng)模塊、無線通訊模塊及電源模塊進(jìn)行闡述。在軟件部分,主要是通過四元數(shù)算法實(shí)現(xiàn)姿態(tài)解算和PID算法來實(shí)現(xiàn)姿態(tài)控制。最后對(duì)設(shè)計(jì)出的四旋翼飛行器提出一些附加功能,使其更加人機(jī)友好化。
四旋翼飛行器;STM32;姿態(tài)解算;姿態(tài)控制
四旋翼飛行器屬于旋翼式無人飛行器的一種,“四旋翼”是指飛行器的動(dòng)力由四個(gè)旋翼式的飛行引擎來提供。運(yùn)用現(xiàn)代控制技術(shù),可實(shí)現(xiàn)用電機(jī)對(duì)飛行器的控制研究,使其結(jié)構(gòu)更簡(jiǎn)單。通過調(diào)節(jié)飛行器四個(gè)旋翼的轉(zhuǎn)速,改變所產(chǎn)生的扭矩和升力,實(shí)現(xiàn)飛行姿態(tài)的控制。與傳統(tǒng)的單旋翼直升機(jī)相比,四旋翼飛行器的發(fā)展更趨小型化、多樣化,應(yīng)用領(lǐng)域愈加廣泛。
1.1 飛行器的結(jié)構(gòu)
四旋翼飛行器通常有“X”型和“十”字型兩種類型[1],具體架構(gòu)如圖1所示。主要區(qū)別在于設(shè)置的坐標(biāo)系位置不同,“X”型飛行器的XY軸與兩個(gè)電機(jī)成45°角,而“十”字型飛行器的XY軸與兩個(gè)電機(jī)方向重合。由于其自身特點(diǎn),“X”型飛行器在調(diào)節(jié)方向上更靈活與穩(wěn)定[2],“十”字型易明確頭尾與飛行控制。因而,本文選用“X”型四旋翼飛行器進(jìn)行理論分析。
其俯視結(jié)構(gòu)圖如2所示,主要由控制中心、旋翼和電機(jī)組成。在飛行中,1號(hào)和3號(hào)電機(jī)順時(shí)針旋轉(zhuǎn),2號(hào)和4號(hào)電機(jī)逆時(shí)針旋轉(zhuǎn),即:相對(duì)的兩個(gè)電機(jī)同向旋轉(zhuǎn),相鄰的兩個(gè)電機(jī)反向旋轉(zhuǎn)。由此,當(dāng)四個(gè)旋翼轉(zhuǎn)速完全相同的情況下,每個(gè)旋翼產(chǎn)生的反扭力矩大小相同,方向相反,便可兩兩抵消,達(dá)到平衡。
圖2 四旋翼飛行器俯視結(jié)構(gòu)圖
1.2 飛行器的運(yùn)動(dòng)控制
飛行器的運(yùn)動(dòng)控制主要為垂直運(yùn)動(dòng)控制、俯仰與滾轉(zhuǎn)運(yùn)動(dòng)控制和偏航運(yùn)動(dòng)控制[3],其控制規(guī)律如表1所示。
垂直運(yùn)動(dòng)控制可通過調(diào)整功率大小實(shí)現(xiàn)。同時(shí)增加四個(gè)電機(jī)的輸出功率,旋翼轉(zhuǎn)速增加,總拉力增大,當(dāng)總拉力大于整機(jī)的重量時(shí),飛行器垂直上升[4];反之,同時(shí)減小輸出功率,飛行器垂直下降至平穩(wěn)落地。另當(dāng)外界擾動(dòng)量為零時(shí),旋翼產(chǎn)生的總拉力等于飛行器的自重,保持懸停狀態(tài)。
俯仰與滾轉(zhuǎn)運(yùn)動(dòng)控制是通過各個(gè)電機(jī)轉(zhuǎn)速的增減產(chǎn)生不平衡力來實(shí)現(xiàn)的。當(dāng)電機(jī)1,2轉(zhuǎn)速減小(增加),電機(jī)3,4轉(zhuǎn)速增加(減?。r(shí),旋翼1,2下降(上升),3,4上升(下降),實(shí)現(xiàn)俯(仰)運(yùn)動(dòng);當(dāng)電機(jī)1,4轉(zhuǎn)速減?。ㄔ黾樱?,電機(jī)2,3轉(zhuǎn)速增加(減?。r(shí),實(shí)現(xiàn)左(右)滾轉(zhuǎn)運(yùn)動(dòng)。
偏航運(yùn)動(dòng)控制主要是借助旋翼產(chǎn)生的反扭矩來實(shí)現(xiàn)。當(dāng)電機(jī)1、3轉(zhuǎn)速減?。ㄔ黾樱?、4轉(zhuǎn)速增加(減小)時(shí),旋翼1、3轉(zhuǎn)動(dòng)方向上產(chǎn)生的反扭力矩減小(增加),旋翼2、4轉(zhuǎn)動(dòng)方向上產(chǎn)生的反扭力矩增加(減?。沟盟男盹w行器在旋轉(zhuǎn)方向上不能平衡,且在水平方向產(chǎn)生一個(gè)扭力,改變偏航角,實(shí)現(xiàn)偏航運(yùn)動(dòng)。
硬件設(shè)計(jì)是整個(gè)四旋翼飛行器的基礎(chǔ),良好的硬件設(shè)計(jì)是后續(xù)一切工作得以順利進(jìn)行的保證。其設(shè)計(jì)總體框圖如圖3所示,主要包括主控單元、IMU模塊、電機(jī)驅(qū)動(dòng)模塊、無線通訊模塊及電源模塊[5]。
表1 飛行器運(yùn)動(dòng)控制
圖3 硬件實(shí)現(xiàn)流程圖
2.1 主控單元
主控單元是整個(gè)飛行器的核心,而微控制器更是主控模塊的核心。通過微控制器采集、轉(zhuǎn)換、融合傳感器數(shù)據(jù),計(jì)算飛行器的姿態(tài)信息、高度信息、位置信息,從而實(shí)現(xiàn)對(duì)四旋翼飛行器的控制。
因此,綜合以上信息,微控制器的選擇,應(yīng)基于高性能、低功耗、低成本的要求。本設(shè)計(jì)決定采用ARM公司推出的STM32F103系列。再考慮到外設(shè)需求引腳數(shù)和程序容量,最終選擇STM32F103C8T6芯片。
該芯片為48腳LQFP封裝,采用ARM Cortex-M3 32位的內(nèi)核[6],最高工作頻率可達(dá)72MHz。具有64K或128K字節(jié)片上FLASH存儲(chǔ)器,20K字節(jié)的SRAM,7個(gè)定時(shí)器,12位ADC模塊,和37個(gè)5V容忍的GPIO端口,完全滿足系統(tǒng)設(shè)計(jì)需求。
2.2 IMU模塊
IMU模塊是整個(gè)飛行器不可或缺的一部分。通過由陀螺儀傳感器、加速度傳感器、電子羅盤組成的IMU傳感器測(cè)量出飛行器的加速度與角速度,然后計(jì)算出飛行器的飛行姿態(tài),最后將測(cè)量數(shù)據(jù)傳送至主控制器進(jìn)行處理,進(jìn)而向電機(jī)驅(qū)動(dòng)模塊發(fā)出指令,達(dá)到控制各電機(jī)轉(zhuǎn)速的目的。因此,IMU模塊的核心是傳感器,應(yīng)選擇功能符合上述要求,同時(shí)兼具低成本、低功耗的高性能傳感器。
本設(shè)計(jì)采用MPU60X0系列傳感器,再考慮到引腳的匹配性,最終選擇MPU6050傳感器。該傳感器集成了3軸MEMS陀螺儀,3軸MEMS加速度計(jì),以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器DMP。MPU6050傳感器對(duì)陀螺儀和加速儀分別用了三個(gè)16位的ADC,將其測(cè)量的模擬量轉(zhuǎn)化為可輸出的數(shù)字量,并擁有1024字節(jié)的FIFO,有助于降低能耗。同時(shí),在實(shí)際操作中,將傳感器I2C接口分別連接一個(gè)HMC5983L電子羅盤來測(cè)量航向和BMP280氣壓計(jì)來實(shí)現(xiàn)定高,以提高獲得數(shù)據(jù)的準(zhǔn)確性[7]。
2.3 電機(jī)驅(qū)動(dòng)模塊
電機(jī)是四旋翼飛行器的執(zhí)行機(jī)構(gòu)。它能夠?qū)w行控制器的輸出轉(zhuǎn)換為旋翼的轉(zhuǎn)速,并通過改變各旋翼的升力與反扭矩來調(diào)節(jié)飛行姿態(tài)。本設(shè)計(jì)中選擇空心杯無刷電機(jī),空心杯電動(dòng)機(jī)在結(jié)構(gòu)上采用無鐵芯轉(zhuǎn)子,消除了由于鐵芯形成渦流而造成的電能損耗,大大減少了自身的機(jī)械能損耗,擁有突出的節(jié)能特性和控制特性。同時(shí)無刷電機(jī)質(zhì)量輕[8],能夠有效提高電機(jī)響應(yīng)速度,從而能快速控制旋翼轉(zhuǎn)速。
2.4 無線通信模塊
無線通訊模塊,主要用于四旋翼飛行器的遠(yuǎn)程監(jiān)控,是飛行器和地面控制中心連接的橋梁。其設(shè)計(jì)包括無線遙控器和工作在2.4GHz頻段的NRF24L01無線數(shù)據(jù)通信模塊。
無線遙控器,主要用于命令的發(fā)送。遙控器上的各個(gè)搖桿分別與電位器相連,當(dāng)搖桿被撥動(dòng)時(shí),電位器接入電路的阻值發(fā)生改變,從而其兩端電壓發(fā)生改變,遙控板上的單片機(jī)便利用AD轉(zhuǎn)換器檢測(cè)該電壓,然后轉(zhuǎn)換成數(shù)字信號(hào),經(jīng)過處理、存儲(chǔ),最后發(fā)送給遙控器接收器,以便進(jìn)行后續(xù)操作。本設(shè)計(jì)選用STM8S103F3P6作為無線遙控器的主控芯片,STM8S103F3P6是ARM公司研發(fā)的8K字節(jié)的Flash程序存儲(chǔ)器,成本低,性能穩(wěn)定,滿足設(shè)計(jì)需求。
當(dāng)遙控板得到各通道值后,要發(fā)送給飛行控制板,必須使用無線通信。本設(shè)計(jì)選用工作在2.4GHz頻段的NRF24L01芯片。NRF24L01是Nordic公司生產(chǎn)的工作于2.4GHz頻段的單片無線收發(fā)器芯片[9],工作速率高,125頻道滿足多點(diǎn)通信和跳頻通信的需要,高效的GFSK調(diào)制,抗干擾能力強(qiáng),滿足設(shè)計(jì)要求。
2.5 電源模塊
電源模塊為整個(gè)系統(tǒng)提供能量。此飛行器由一個(gè)3.7V的航模鋰電池供電,但其中各器件都有各自特定的工作電壓,電機(jī)的工作電壓為電源電壓,微控制器、傳感器以及無線通訊模塊合適工作電壓均為3.3V。因此必須針對(duì)不同元件為飛行器設(shè)計(jì)合理的電源電路。本設(shè)計(jì)采用TP8350升壓芯片和開關(guān)電路先進(jìn)行升壓,目的是增大原有的0.4V的壓差,讓后續(xù)的降壓芯片處于良好的工作狀態(tài)。隨后再采用線性電源降壓方案提供3.3V電壓。
開關(guān)電源方案,主要依靠開關(guān)升壓芯片TP8350實(shí)現(xiàn)。TP8350升壓芯片可提供3V-6V的輸出電壓,具有外接元件少、低靜態(tài)電流、高效率的特點(diǎn)。利用TP8350芯片設(shè)計(jì)開關(guān)電路,可以提高壓差,為后續(xù)降壓芯片的工作做準(zhǔn)備。
線性電源方案,核心在于使用MIC5219-3.3BM降壓芯片。MIC5219-3.3BM芯片的噪音低、壓差低,精度為1%,擁有過流與過溫保護(hù)。本設(shè)計(jì)中采用兩片MIC5219-3.3BM芯片,將電壓轉(zhuǎn)換為3.3V,供控制系統(tǒng)的不同部分使用。
程序流程圖如圖4所示。系統(tǒng)MCU內(nèi)部初始化完成后,進(jìn)入循環(huán)程序。首先讀取傳感器數(shù)據(jù),進(jìn)行姿態(tài)解算,并讀取遙控器的輸入值。然后進(jìn)入飛行器狀態(tài)監(jiān)控和姿態(tài)控制運(yùn)算階段,最后進(jìn)行指令解析,計(jì)算出要求的姿態(tài)和位置數(shù)據(jù),調(diào)節(jié)PWM 的占空比,控制旋翼轉(zhuǎn)速,實(shí)現(xiàn)飛行姿態(tài)控制。
圖4 程序流程圖
3.1 姿態(tài)解算
姿態(tài)解算是根據(jù)IMU(陀螺儀、加速度計(jì))數(shù)據(jù)利用姿態(tài)算法實(shí)時(shí)更新姿態(tài)矩陣,求解出飛行器的姿態(tài)角,即yaw(偏航角)、pitch(俯仰角)和roll(翻滾角)[10],從而準(zhǔn)確描述飛行器的姿態(tài)信息的過程。其核心在于旋轉(zhuǎn)的表示,大多數(shù)情況下會(huì)選擇方向余弦法、歐拉角法或四元數(shù)法來表示旋轉(zhuǎn)。
方向余弦法是利用三角函數(shù)與坐標(biāo)表示飛行器的姿態(tài)信息,計(jì)算量大,效率低。歐拉角是利用軸角表示旋轉(zhuǎn),較為直觀,但存在萬向節(jié)死鎖的缺點(diǎn)[11]。四元數(shù)法是利用四元數(shù)表示出旋轉(zhuǎn)軸與旋轉(zhuǎn)角。由于其乘積可以表示出三維空間中的任意伸縮變換,因而計(jì)算簡(jiǎn)單。考慮到姿態(tài)解算需要多次進(jìn)行組合旋轉(zhuǎn),所以選擇易于操作的四元數(shù)法。
如上所述,四元數(shù)法就是借助中間變量四元數(shù),把讀入的加速度計(jì)值和陀螺儀值(即AD值)轉(zhuǎn)化為姿態(tài)控制算法需要的輸入值,由于姿態(tài)控制算法的輸入?yún)?shù)必須是歐拉角,最后還需要將四元數(shù)轉(zhuǎn)化為歐拉角的形式[12]。其具體流程如下:
首先是獲取四元數(shù),主要有兩種獲取途徑,一種是通過相應(yīng)的軟件計(jì)算讀入的AD值得到,另一種是通過主控芯片STM32直接讀出相應(yīng)的四元數(shù)的值。其次,需要借助旋轉(zhuǎn)矩陣將其轉(zhuǎn)化為歐拉角。姿態(tài)矩陣是一個(gè)3×3的矩陣[13],用來確定旋轉(zhuǎn)物體中某一點(diǎn)的位置,可用四元數(shù)分別表示出繞X、Y和Z軸旋轉(zhuǎn)的坐標(biāo)旋轉(zhuǎn)矩陣,接著將得到的三次坐標(biāo)旋轉(zhuǎn)矩陣相乘得到姿態(tài)矩陣。最后將姿態(tài)旋轉(zhuǎn)矩陣轉(zhuǎn)換為歐拉角,得到飛行器實(shí)時(shí)姿態(tài)并輸入到姿態(tài)控制算法中。
3.2 姿態(tài)控制
姿態(tài)控制是四旋翼飛行器的關(guān)鍵所在。理論上,當(dāng)四個(gè)旋翼轉(zhuǎn)速完全相同的情況下,電機(jī)1、3正轉(zhuǎn), 2、4反轉(zhuǎn),所產(chǎn)生的反扭力矩大小相同,方向相反,便可使飛機(jī)平穩(wěn)飛行,但在實(shí)際中,四個(gè)旋翼無法擁有相同的轉(zhuǎn)速,飛行器便會(huì)失衡,因而需要姿態(tài)控制算法。PID控制算法操作簡(jiǎn)單、理論完善,決定采用實(shí)現(xiàn)對(duì)飛行的實(shí)時(shí)控制。
PID算法是對(duì)目標(biāo)期望角度與上一時(shí)刻的狀態(tài)輸出量的偏差e(t)進(jìn)行比例(P)、積分(I)和微分(D)線性組合構(gòu)成控制量,輸入到四旋翼飛行器中,得到修正后飛行器下一時(shí)刻的狀態(tài)信息并再次與目標(biāo)期望值比較,進(jìn)行循環(huán)運(yùn)算的過程。其表達(dá)式如(1)所示:
其中Kp為比例系數(shù),Ki為積分系數(shù),Kd為微分系數(shù),Ti為積分時(shí)間,Td為微分時(shí)間,其中比例系數(shù)、積分時(shí)間和微分時(shí)間由被控過程特性決定;u(t)為經(jīng)過PID算法后的控制輸出量,e(t)為目標(biāo)期望角度與實(shí)際測(cè)量角度的偏差。
比例控制是指控制器的輸出與輸入偏差信號(hào)e(t)呈比例關(guān)系(P),比例系數(shù)Kp,從而得到比例控制輸出如(3)所示。當(dāng)只存在比例控制環(huán)節(jié),系統(tǒng)存在穩(wěn)態(tài)誤差。
為消除穩(wěn)態(tài)誤差,引入積分控制。所謂積分控制就是控制器的輸出與輸入偏差信號(hào)e(t)的積分呈比例關(guān)系,比例系數(shù)為Ki,得到積分控制輸出如(4)所示。當(dāng)采樣周期足夠小的時(shí)候,通過數(shù)值逼近法,用偏差的總和來代替積分,得到積分控制輸出如(5)所示。積分控制雖可以有效消除穩(wěn)態(tài)誤差,但也降低了系統(tǒng)的動(dòng)態(tài)性能。
其中T為采樣時(shí)間。
為改善系統(tǒng)的動(dòng)態(tài)性能,引入微分控制。所謂微分控制就是控制器的輸出與輸入偏差信號(hào)e(t)的微分呈比例關(guān)系,比例系數(shù)為Kd,得到微分控制輸出如(6)所示。由于偏差e(t)是角度,其微分為角速率,所以將微分值用陀螺儀測(cè)得的角速率w(t)代替,得到表達(dá)式如(7)。
最后,將比例控制輸出、積分控制輸出和微分控制輸出相加,得到輸入到四旋翼飛行器中的總控制量u(t),表達(dá)式如(8):
在本設(shè)計(jì)中,姿態(tài)的解算和控制主要依靠三個(gè)歐拉角:yaw、pitch和roll。當(dāng)每一個(gè)角度值得到自己的PID控制量uvaw(t)、upitch(t)和uroll(t)時(shí),將其與輸入的油門基準(zhǔn)值進(jìn)行計(jì)算,并將計(jì)算結(jié)果輸入到四個(gè)電機(jī)中,由此便可以實(shí)現(xiàn)對(duì)四旋翼飛行器的飛行修正與控制。
在本設(shè)計(jì)中開發(fā)環(huán)境選用Keil uVision 5,主要實(shí)現(xiàn)功能如下: 一鍵起飛與降落、墜機(jī)保護(hù)。其流程圖分別如圖5、6所示。
4.1 一鍵起飛與降落
一鍵起飛與降落就是通過遙控器按鍵的控制,實(shí)現(xiàn)四旋翼飛行器的自動(dòng)起飛與降落功能。
一鍵起飛包括如下步驟:解鎖,起飛與懸停。由于飛行器默認(rèn)飛行模式是定高,當(dāng)起飛按鍵觸發(fā),設(shè)定目標(biāo)飛行高度后,飛行器便自動(dòng)解鎖。首先按下按鍵,將飛行器解鎖并記錄當(dāng)前位置。其次,設(shè)定起飛標(biāo)志,不妨假定目標(biāo)飛行高度為1米,當(dāng)飛行器自動(dòng)解鎖后,飛行控制板將給電機(jī)傳輸向上指令,飛行器將加速上升,當(dāng)高度達(dá)到1米之后,減小電機(jī)輸出功率,使得總拉力等于飛行器自身重量,便能讓飛行器懸停在空中,以此實(shí)現(xiàn)一鍵起飛的功能。
一鍵降落包括如下步驟:下降,落地檢測(cè)與鎖定。與一鍵起飛類似,在一鍵降落中,將飛行器的期望高度修改為0米,然后在達(dá)到期望高度后進(jìn)行落地判斷,即判斷飛行器各個(gè)方向的加速度是否小于一定的閾值,一旦檢測(cè)到飛行器已經(jīng)落地,鎖定即可。首先按下按鍵,傳輸給飛行器下降的指令,由于期望高度為0米,飛控板傳輸向下指令,減小電機(jī)輸出功率,使得飛行器下降。當(dāng)高度下降到與期望高度值相同時(shí)候,通過比較加速度傳感器讀取到的加速度值和既定閾值,如果加速度值小于既定閾值,則判定為落地。最后對(duì)飛行器進(jìn)行一鍵鎖定即可。由此便實(shí)現(xiàn)一鍵降落的功能。
圖5 一鍵起飛與降落流程圖
4.2 墜機(jī)保護(hù)
在控制飛行器時(shí),由于控制偏差,經(jīng)常出現(xiàn)墜機(jī)的情況。如果飛行器墜落時(shí),電機(jī)沒有及時(shí)關(guān)閉,不但會(huì)導(dǎo)致電機(jī)堵轉(zhuǎn)而燒毀,還可能導(dǎo)致人員誤傷等嚴(yán)重后果。因此,飛行控制程序需要加入一些安全機(jī)制,避免意外情況發(fā)生,比較常用的方法是利用姿態(tài)傳感器判斷墜毀,迅速關(guān)閉電機(jī)。
圖6 墜機(jī)保護(hù)流程圖
墜機(jī)時(shí),飛行控制板得到的數(shù)據(jù)會(huì)有若干異常,比如角度誤差大于一定值且持續(xù)一段時(shí)間,依據(jù)這些異常參數(shù),便可以編寫墜機(jī)保護(hù)程序。由于roll和pitch的取值范圍是-1到1,不妨假定當(dāng)角度值大于0.5或-0.5且持續(xù)時(shí)間大于0.2秒,判斷為墜機(jī),鎖定飛行器,關(guān)閉電機(jī)。當(dāng)角度恢復(fù)正常時(shí),重新復(fù)位時(shí)間變量。由此實(shí)現(xiàn)墜機(jī)保護(hù)的功能(見圖6)。
本文是以STM32系列單片機(jī)為核心設(shè)計(jì)一個(gè)四旋翼飛行器的主要過程。首先介紹了四旋翼飛行器的總體架構(gòu)和飛行的基本原理,其次,從硬件設(shè)計(jì)談起,詳細(xì)說明了各個(gè)部分的作用與對(duì)應(yīng)元件的選擇。再者,闡釋其軟件實(shí)現(xiàn)的過程,說明了選擇四元數(shù)算法作為姿態(tài)解算和PID算法作為姿態(tài)控制的優(yōu)與劣。最后,又創(chuàng)造性提出在Keil uVision 5編程環(huán)境下,如何實(shí)現(xiàn)一些附加功能,如一鍵起飛與降落,墜機(jī)保護(hù)等來增加人機(jī)友好。在真正操作中,理論與實(shí)際有偏差,若想要達(dá)到最佳狀態(tài),需要在實(shí)踐中不斷調(diào)試,以求完美。
[1]程學(xué)功.四旋翼飛行器的設(shè)計(jì)與研究[D].杭州:杭州電子科技大學(xué),2012,1.
[2]夏夜星語(yǔ).基于MB9BF121K的四旋翼飛行器設(shè)計(jì)[D].鄭州:河南工業(yè)大學(xué),2015,6.
[3]裴春祥,劉祉正,趙新鵬等.基于STM32的四旋翼飛行器的設(shè)計(jì)[J].電子技術(shù)與軟件工程,2016,12:119-121.
[4]曹延超.基于STM32的四旋翼飛行器姿態(tài)測(cè)量系統(tǒng)設(shè)計(jì)[J].軟件,2015,36(1):104-109.
[5]謝義建,陳躍東,舒圣焱.基于STM32的四旋翼飛行器的設(shè)計(jì)與實(shí)現(xiàn)[J].四川理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2014,27(3):42-45.
[6]金薇.基于STM32的四旋翼飛行器的研究與設(shè)計(jì)[J].山西電子技術(shù),2016,01:92-93.
[7]郭曉鴻,楊忠,楊時(shí)順等.一種基于STM32的四旋翼飛行器控制器[J].應(yīng)用科技,2011,38(7):36-40.
[8]李華貴,李剛,李輝等.基于STM32的四旋翼飛行器的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù),2015,05:27-30.
[9]陳海濱,殳國(guó)華.四旋翼飛行器的設(shè)計(jì)[J].實(shí)驗(yàn)室與研究,2013, 32(3):41-44.
[10]顏平,王麗丹,李夢(mèng)柯,等.基于STM32的四旋翼飛行器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2016,24(2):187-193.
[11]何川,李智,王勇軍.基于STM32的四旋翼飛行器的姿態(tài)最優(yōu)估計(jì)[J].電子技術(shù)應(yīng)用,2015,41(12):61-64.
[12]李文鵬,唐海洋.基于STM32的四旋翼飛行器姿態(tài)解算的研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015,41(12):13-16.
[13]nieyong.四元數(shù)與四旋翼飛行[EB].https://github.com/Crazepony/ crazepony-gitbook/blob/master/wiki/quaternions.md,2016/10/12.
[14]akuarius’blog.四元數(shù)和歐拉角[EB].http://blog.csdn.net/ jinzhichaoshuiping/article/details/42584887,2015,2016/10/12.
[15]質(zhì)的飛躍.四旋翼飛行器:PID控制算法[EB].http:// jingyan.eeboard.com/article/73872,2014,2016/10/12.
Design of quadrotor based on STM32 MCU
Quadrotor is a new type of unmanned aerial vehicle with simple structure,strong flight stability and high use value.The framework designed in this paper is based on STM32 MCU.There mainly include the structure of the aircraft,the introduction of the basic principle,the design and selection of the hardware subpart,the design and implementation of the software subpart.In the hardware part,it is mainly based on STM32 series microprocessor as the core of control,MPU-6050 as the flight attitude sensor and 2.4GHz in the world as wireless data transmission control .In which the choice and function of these specific components will be separately clarified as the main control unit,IMU module,motor driver module,wireless communication module and power module.In the software part,it is mainly realized through quaternion algorithm in attitude determination and PID algorithm in attitude control.Finally,the design is improved by some additional functions to make it more user-friendly.
quadrotor;STM32 MCU;attitude determination;attitude control
陳華賓,男,研究方向:智能電子儀器。
郭珊珊,男,研究方向:電路與系統(tǒng)。