前言:本篇博客為飛控專欄的第一篇系統(tǒng)性概述文章,將對飛控系統(tǒng)進行詳細講解介紹??紤]到飛控項目具有一定工程復(fù)雜度,所以作者將整個項目進行分章節(jié)教學(xué)與講解,希望可以給讀者朋友帶來更好地學(xué)習(xí)體驗。項目將以?C-Quad 四軸無人機為工程樣機,飛行器主控為 STM32F103C8T6,遙控為?STM32F103C6T6。項目代碼為 HAL 庫版本,該項目博客將把算法與硬件相結(jié)合,深入挖掘飛控的奧妙與原理。(代碼開源!)
硬件實物圖:
效果圖:
一、飛控概述
飛控即無人機飛行控制器,可理解為飛行器的大腦,其核心是微控制器MCU。微控制器基于外部傳感器(如姿態(tài)傳感器,氣壓傳感器,GPS,光流等)返回的數(shù)據(jù),經(jīng)過一系列處理與融合后,控制無人機的飛行姿態(tài)。飛控的種類有很多,常見的有:四旋翼、六旋翼和八旋翼無人機等(本項目專欄為四旋翼無人機項目)。
四旋翼無人機又叫做四軸飛行器,是一種小型的智能化產(chǎn)品。隨著自動控制技術(shù)的更新?lián)Q代以及人工智能廣泛應(yīng)用,使得無人機更加貼近人們的生活。其中,四旋翼無人機由于其價格低廉,結(jié)構(gòu)穩(wěn)定,性能優(yōu)越,易于控制的特點而被廣泛使用。
二、飛控相關(guān)知識點
2.1?pitch、yaw、roll角度
飛行器在飛行過程中有個重要的指標(biāo):飛行姿態(tài)。飛行姿態(tài)則涉及到如下歐拉角:pitch(俯仰角)、yaw(偏航角)、roll(橫滾角)。
特別說明:飛機的坐標(biāo)軸體系和AR眼鏡是不一樣的,指向機頭的是X軸,指向右機翼的是Y軸,垂直向上的是Z軸(建議大家別人云亦云,多去參考正規(guī)性學(xué)術(shù)論文)。
pitch():俯仰,將物體繞Y軸旋轉(zhuǎn)(localRotationY)
yaw():航向,將物體繞Z軸旋轉(zhuǎn)(localRotationZ)
roll():橫滾,將物體繞X軸旋轉(zhuǎn)(localRotationX)
2.2 遙控知識點
飛行器通常都是需要設(shè)計配套遙控器的。當(dāng)然,可以使用手機APP適配之后操作,也可以制作一個遙控手柄。本項目中四旋翼飛行器與遙控手柄通過 NRF24L01 2.4G 模塊進行通訊。
油門:飛控的設(shè)計制作過程中,都會設(shè)計到一個關(guān)鍵詞匯 “油門(throttle)” ,油門方向的遙感不具備自動回調(diào)的特性,通過油門方向的遙感控制飛行器的飛行高度。
解鎖:高速旋轉(zhuǎn)的機翼通常都具有一定的殺傷能力,為了防止簡單誤觸造成飛行器意外起飛等情況。飛控的設(shè)計中存在鎖門的這個概念,即:需要解鎖操作,之后才能正常控制飛控。不同的遙控手柄的解鎖方式往往不同,比較常見的解鎖有: “外八字” 解鎖和 “下上下” 油門解鎖等。
上鎖:飛行器飛行過程中難免可能出現(xiàn)意外情況,這個時候可以使用上鎖操作強制鎖定機翼轉(zhuǎn)動。上鎖方式同樣根據(jù)實際情況設(shè)計。
三、四旋翼無人機飛行原理
四旋翼無人機主要分 “×” 型和 “+” 型兩種,兩種無人機的主要區(qū)別在于機頭方向的選擇。四旋翼無人機的簡化結(jié)構(gòu)如下圖所示,無刷電機轉(zhuǎn)動帶動四個槳葉高速旋轉(zhuǎn)產(chǎn)生向上的升力作用于無人機,當(dāng)推動遙控器的油門使升力逐漸超過無人機自身重力時,四旋翼無人機便能夠起飛升空,控制器發(fā)出的指令不斷改變無人機的電機轉(zhuǎn)速,就可以使無人機切換到不同的運動模式。考慮到“×” 型四旋翼無人機機動性更好,故本項目將采用 “×” 型四旋翼無人機設(shè)計。
本項目以 “×” 型飛行器為設(shè)計標(biāo)準(zhǔn),故后續(xù)以?“×” 型飛行器的運動控制學(xué)進行分析,該類型飛行器結(jié)構(gòu)圖如下:
為了方便描述,將四旋翼無人機的四個電機分別編號為:Motor1、Motor3、Motor2、Motor4。Motor1和?Motor3電機逆時針進行旋轉(zhuǎn),從而可以產(chǎn)生逆時針方向的扭矩,Motor2和?Motor4電機順時針進行旋轉(zhuǎn),從而可以產(chǎn)生順時針方向的扭矩。如此,四個旋翼旋轉(zhuǎn)所產(chǎn)生的扭矩便可相互抵消。當(dāng)四個旋翼具有相同的轉(zhuǎn)速,產(chǎn)生的上升合力正好與自身重力相等,則飛行器將進入懸停狀態(tài)!
3.1 垂直運動
如上圖所示,在保證四旋翼無人機每個旋翼轉(zhuǎn)速大小相同(產(chǎn)生的總扭矩為零),對每個旋翼增加/減小大小相同的轉(zhuǎn)速,便可實現(xiàn)無人機的垂直上升/下降運動。
旋翼總升力>無人機重力,垂直上升;
旋翼總升力<無人機重力,垂直下降。
3.2 俯仰運動
將電機Motor1、Motor4的轉(zhuǎn)速減小或者將Motor2、Motor3增加時,四旋翼會產(chǎn)生向前上方的力,使四旋翼向前飛行。反之,如果將Motor1、Motor4的轉(zhuǎn)速增加或者將Motor2、Motor3減小時,四旋翼會產(chǎn)生向后上方的力,使四旋翼向后飛行。
3.3 滾轉(zhuǎn)運動
將電機Motor1、Motor2的轉(zhuǎn)速增加或者將Motor3、Motor4的轉(zhuǎn)速減小時,四旋翼會產(chǎn)生向右上方的合力,使四旋翼向右飛行。反之,如果減小Motor1、Motor2的轉(zhuǎn)速或者增加Motor3、Motor4的轉(zhuǎn)速,四旋翼會產(chǎn)生向左上方的合力,使四旋翼向左飛行。
3.4 偏航運動
將電機Motor2、Motor4的轉(zhuǎn)速增加或者將Motor1、Motor3的轉(zhuǎn)速減小,四旋翼會向右旋轉(zhuǎn),實現(xiàn)向右偏航。反之,如果將Motor2、Motor4的轉(zhuǎn)速減小或者將Motor1、Motor3的轉(zhuǎn)速增加,四旋翼會向左旋轉(zhuǎn),實現(xiàn)向左偏航。
四、四旋翼飛行器控制結(jié)構(gòu)
?一般情況下,四旋翼無人機由檢測模塊、控制模塊、驅(qū)動模塊以及電源模塊四個部分組成。
檢測模塊:負責(zé)對無人機當(dāng)前姿態(tài)進行量測,并對控制模塊提供數(shù)據(jù);
控制模塊:負責(zé)對無人機當(dāng)前姿態(tài)進行解算,優(yōu)化控制,并對驅(qū)動模塊產(chǎn)生相對應(yīng)的控制量;
驅(qū)動模塊:負責(zé)驅(qū)動4臺電機進行旋轉(zhuǎn),從而使得無人機進行正常飛行;
電源模塊:負責(zé)對整個系統(tǒng)進行供電,其中,分為控制供電與動力供電。
4.1 控制模塊
飛控的控制模塊即飛行器的微控制器MCU,現(xiàn)如今飛控多采用 STM32F4 系列的芯片,算力和成本都非常適宜。當(dāng)然,本項目作者使用的 MCU 為 STM32F103C8T6 ,成本相對來說更低。當(dāng)然,制作的飛控整體控制起來難度更大一點。MCU負責(zé)計算控制以及維持各個模塊之間的通訊聯(lián)動。
4.2 檢測模塊
檢測模塊則通常包括:慣性檢測單元(MPU6050,磁力計等),氣壓計(MS5611等),電子羅盤(GPS等)。通過各類檢測模塊的運作,可以在一定程度上得到飛行器的位姿(位置和飛行姿態(tài))。
慣性檢測單元:慣性檢測單元通常由姿態(tài)傳感器 + 磁力計構(gòu)成。航模新手的話僅使用六軸姿態(tài)傳感器 MPU6050 作為慣性檢測單元即可近似完成飛行器的姿態(tài)解算,得到飛行器的歐拉角度。本項目中的慣性檢測單元僅使用 MPU6050。
問題:慣性檢測單元為什么還需要磁力計的幫助?
歐拉3角:pitch(俯仰角)、yaw(偏航角)、roll(橫滾角),其中的偏航角yaw,因為姿態(tài)解算算法的原因長期使用后會導(dǎo)致誤差積累,故此需要使用磁力計的幫助進行校正。
氣壓計:氣壓計在飛行器中通常用來檢測飛行器的飛行高度,幫助飛行器實現(xiàn)定高功能。常見的氣壓計為 MS5611 模塊,MS5611 氣壓傳感器是集合 SPI 和 I2C (高達20 MHz)總線接口的高分辨率氣壓傳感器,分辨率可達到 10 cm。內(nèi)部有一個高線性度的壓力傳感器和一個超低功耗的 24 位AD。
4.3 驅(qū)動模塊
本項目制作的為四旋翼飛行器,故需要驅(qū)動4個電機。飛行器的電機驅(qū)動需要設(shè)計專門的驅(qū)動電路或者使用電調(diào)裝置。本項目使用如下驅(qū)動電路:
電路分析:
100Ω電阻:起到限流作用,在 MOS 開啟瞬間時需要吃電流,如果電流過大,會導(dǎo)致瞬間開啟,縮短 MOS 管的壽命。
10K 電阻:IC 在復(fù)位狀態(tài)下,所有 IO 口都處于浮空輸入狀態(tài),加 10K 下拉電阻就可以避免在單片機還沒工作時,MOS 導(dǎo)通,電機瘋狂旋轉(zhuǎn)打傷人。
2302MOS:NMOS,高電平導(dǎo)通。通過 PWM 占空比控制 MOS 管的導(dǎo)通,從而控制電機的平均功率。2302 在門級開啟電壓 Vth=3.3V 下導(dǎo)通電流可達 3A,而最大的空心杯電機(8520)最大消耗電流>1A,如果按照瞬間導(dǎo)通的電流 2.5 倍計算,MOS 承受的電流應(yīng)在 2.5A 左右。故 2302 符合使用條件。
電容:吸收電機產(chǎn)生的高頻雜訊
4.4 電源模塊
?飛行器的電源模塊通常使用航模專用鋰電池。由于四軸在飛行過程中,電量不斷下降,當(dāng)下降到一定程度后,可能會出現(xiàn)瞬間低于 3.3V,這樣穩(wěn)壓就會無法正常工作,導(dǎo)致輸出截斷,所以配備升壓。
升壓:BL8530 升壓 IC 需要 47uH 電感作為儲能,內(nèi)部集成類似 BOOST 升壓電路,大家學(xué)過電路原理的都會學(xué)到 BOOST 升壓電路。而這個肖特基二極管,在這里起到續(xù)流作用。
穩(wěn)壓:662K 3.3V 穩(wěn)壓 IC,穩(wěn)壓(LDO)這個很好理解。
航模的鋰電池通常具有高電流的特性,保證有足夠電流量去驅(qū)動電機轉(zhuǎn)動。
文章來源:http://www.zghlxwxcb.cn/news/detail-482918.html
五、本篇總結(jié)
本篇作為飛控專欄的第一篇文章,其主要目的為幫助讀者朋友們了解飛控的基礎(chǔ)原理和設(shè)計框架。后續(xù)作者將手把手教大家完成四旋翼飛行器的制作,項目的硬件原理圖和程序代碼將全部開源給大家。當(dāng)然,飛控算是較為復(fù)雜的嵌入式設(shè)計,建議讀者朋友除了參考本人的博客,還可以多借鑒“匿名者”等優(yōu)秀的飛控設(shè)計。文章來源地址http://www.zghlxwxcb.cn/news/detail-482918.html
到了這里,關(guān)于基于STM32的四旋翼無人機項目(一):基礎(chǔ)知識篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!