DIY小四軸之電路設計(一)
寫在前面
前一陣時間一直在做四軸飛行器,略有一點收穫吧,在這裏分享出來,一方面算是對自己的總結,另一方面希望能給想做小四軸的讀者一些思路。本人並非電學專業,如有不對之處,懇請斧正。
綜合考慮到讀者羣體的能力範圍,可能會講的有些細,涉及到單片機、數字電路、模擬電路的一些內容。另一方面,爲了更好地學習本篇文章,希望讀者具有以下基礎:
- STM32單片機基礎,任意系列都可以;
- Altium Designer電路板設計;
- 一部分數字電路、模擬電路知識。
一、概念篇
四軸飛行器又稱四旋翼飛行器,簡稱四軸,它的基本原理是四個電機直連螺旋槳旋轉,產生升力,帶動四軸飛行。
四軸飛行器的結構特性是,有兩對電機正轉、兩對電機反轉,具有相同旋轉方向的電機在對角線上。
如上圖就是1號3號電機逆時針轉、2號4號電機順時針轉。這樣做的目的是,實現多個自由度的控制。
比如,若1號4號減速,3號2號加速,就可以使得四軸向左側傾斜,從而向左移動;如果1號3號減速,2號4號加速,則可以使得四軸在不傾斜的情況下,發生旋轉,從俯視角度來看四軸會逆時針轉動。
想要理解上面這兩個例子,你可以把四軸的螺旋槳在空氣中的狀態,想象成鴨子的腳蹼在水中划水。要想真正透析其中變化的原因,需要根據牛頓第二定律結合受力分析去推導,然後建立一個模型,從而實現求解,在此不多作展開。
四個電機轉速相同就能夠保持平衡
這是個非常理想的狀態,但實際在製作飛行器的過程中,一方面四個電機轉速不一定會完美相同,另一方面受限制於工藝,四軸的重心也不一定在幾何中心。
因而對於四軸四個電機轉速的控制,我們並不是去尋求絕對的平衡,而是需要動態平衡。說句大白話就是,因爲它總是會飛歪,所以我們得不斷地去糾正它的飛行姿態。
那麼既然要糾正它的飛行姿態,我們一般要考慮通過一些傳感器(Sensor)去獲取這個姿態,才能知道該如何去糾正。四軸飛行器常用的傳感器有:陀螺儀、加速度傳感器、氣壓計、激光定高等等,這些傳感器具體的功能如下表所示。
傳感器類型 | 作用 | 常見型號 |
---|---|---|
陀螺儀、加速度傳感器 | 獲取飛行姿態、加速度等信息 | MPU6050、MPU9250等等 |
氣壓計 | 獲取飛行器高度信息 | SPL60、BMP250等等 |
激光定高 | 獲取飛行器高度信息 | 略(百家爭鳴) |
光流 | 獲取飛行器位置信息 | 略(百家爭鳴) |
除了四個電機、傳感器之外,還需要考慮設備之間的通信,比如遙控器信號發送給四軸,四軸把剩餘電量信息返回給單片機。常用的通信模塊有Si24R1、藍牙模塊等等。
經過上面的討論,總體來說四軸的功能齊全了,其整體框圖可以概括如下:
我們要考慮製作的四軸不需要機架,而是通過Altium Designer將電路板(PCB)製作成機架的樣子。其大體形狀類似於這樣,後面會慢慢講。
二、電源設計
電源其實是一種供電方案的設計,小的四軸通常使用3.7v可充電的鋰電池供電。
在此提供一種供電方案,先升壓後穩壓,這種供電電路的特點是,電量消耗可能比較快,但輸出電壓穩定。
第一部分是升壓,目的是將3.7v的鋰電池電壓,升壓到5V,上面是這個升壓電路的原理圖。在原理圖中最左側是一個電池的插座,後面由開關S1控制電池的供電情況。再向後看有一個DC-DC升壓芯片HT7750SA,這個芯片的具體配置方法應該查詢它的數據手冊Datasheet,數據手冊中往往會給出這種芯片的基本電路。
參考資料:
https://html.alldatasheet.com/html-pdf/947649/HOLTEK/HT7750SA/1109/5/HT7750SA.html.
在它的數據手冊中給出的基本電路圖如下
前面有一個電容C-電感L濾波電路,它的作用是去除輸入端的交流分量;後面輸出端的電容Cout是一個旁路電容,能使升壓器的輸出均勻化。
對比上面原理圖,可以看出,我們其實調整了兩個地方,一個是輸入端的電感L,經實際測試常用的4.7uH電容效果比較好;另一個是後面的Cout改爲兩個電容並聯,效果是差不多的。
第二部分是穩壓,使用一個線性升壓器XC6206,目的是將5v的電壓降低至3.3v,從而給單片機以及傳感器供電。這個電路就基本上按照Datasheet裏面給的參考電路去佈置就可以。這裏有一點不同的就是多了一個二極管,這個二極管是爲了避免電流倒灌。
參考資料:
https://wenku.baidu.com/view/2c9edae8cdbff121dd36a32d7375a417876fc155.html.
這樣我們一共有了三條電壓主線,一條是VBAT(3.7v),可以直接給空心杯電機供電,外兩條分別是5v、3.3v,給單片機和各類傳感器等設備供電。
最後還有一個測量電路,如下圖所示,原理是將電池電壓通過兩個相等的大電阻R3、R4,然後測量R4上面的電壓VBAT_T,然後實際的電池電壓量應該爲2倍的VBAT_T,最後根據電池包的電量—電壓特性圖將電壓量轉化爲電量就可以了。其中VBAT_T連接在STM32單片機的ADC上面,通過ADC讀取電壓值。
(未完待續)