有手就行,你也可以自己做無人機(jī)STM32F103四軸飛行機(jī)(開源)
今天給大家說說一款完全開源的小四軸。
這款四軸面向的人群是電子相關(guān)專業(yè)(包括自動(dòng)化、電氣自動(dòng)化、電子信息工程、計(jì)算機(jī)、測控等專業(yè))的大學(xué)生,通過一個(gè)完整的四軸項(xiàng)目來學(xué)習(xí)貼片元器件的焊接、PCB設(shè)計(jì)軟件AD的使用、電路基本知識(shí)、旋翼型無人機(jī)的基本原理、STM32單片機(jī)編程與基本使用、飛控算法的實(shí)現(xiàn)等。
///插播一條:我自己在今年年初錄制了一套還比較系統(tǒng)的入門單片機(jī)教程,想要的同學(xué)找我拿就行了免費(fèi)的,私信我就可以哦~點(diǎn)我頭像黑色字體加我地球呺也能領(lǐng)取哦。最近比較閑,帶做畢設(shè),帶學(xué)生參加省級(jí)或以上比賽///
正文開始:
據(jù)了解,目前大多數(shù)高校的電子專業(yè)的課程實(shí)訓(xùn)依然是焊接收音機(jī)等,單片機(jī)課程教的也是單片機(jī),這已經(jīng)不能滿足學(xué)生的學(xué)習(xí)了,學(xué)生畢業(yè)之后進(jìn)入企業(yè),大多接觸的是貼片元器件(功率器件除外),做產(chǎn)品的時(shí)候,硬件工程師必須要具備一定的調(diào)試能力,這就對(duì)焊接貼片元件的能力提出了要求,所以我們?cè)O(shè)計(jì)了這款四軸飛行器,使用0603、0805這樣貼片元件,是練習(xí)焊接的好幫手,而且好處在于,焊接練習(xí)完了,還可以繼續(xù)學(xué)習(xí)STM32,四軸原理,直到把這個(gè)四軸飛行器飛起來,在這個(gè)過程中,我們也有交流群和學(xué)習(xí)資料,供大家學(xué)習(xí)使用。
下面是RoboFly四軸飛行器的整體框圖、原理圖、pcb、實(shí)物圖源代碼的截圖,先一睹為快,后面詳細(xì)介紹。
圖1:RoboFly四軸飛行器整體框圖
圖2:RoboFly四軸飛行器原理圖
圖3:RoboFly四軸飛行器PCB圖
圖4:RoboFly四軸飛行器PCB 3D俯圖
圖5:RoboFly四軸飛行器PCB 3D側(cè)視圖
圖6:RoboFly四軸飛行器實(shí)物圖
圖7:RoboFly四軸飛行器源代碼截圖
制作并開源這套小四軸的初衷有如下幾點(diǎn);
1、初學(xué)者需要一款價(jià)格低廉、軟硬件資料完備、有技術(shù)支持的四軸學(xué)習(xí)平臺(tái);
2、以散件形式發(fā)售,電路板布局、元器件封裝選型要方便焊接組裝;
3、四軸所需元器件采購方便、靠譜,最好能提供一站式采購,避免過多郵費(fèi)、采購周期長、采購到不合格元器件導(dǎo)致學(xué)習(xí)難以進(jìn)展。
4、源代碼要極其精簡、方便入門者能夠方便的學(xué)習(xí),實(shí)現(xiàn)自己的代碼;
5、保留一定擴(kuò)展接口、方便用戶自己進(jìn)行擴(kuò)展如定高、航跡、巡線等飛行功能。在學(xué)習(xí)完四軸飛行器之后,這個(gè)開源的四軸板子仍然可以作為一個(gè)STM32開發(fā)學(xué)習(xí)板使用;
RoboFly四軸的基本配置如下:
主控芯片:STM32F103C8T6
姿態(tài)檢測:MPU6050
氣壓計(jì):FBM320
無線芯片:SI24R1
供電方案:HT7750SA升壓+XC6206穩(wěn)壓
燈光指示:1個(gè)電源指示LED、1個(gè)用戶編程LED、4個(gè)單總線全彩RGB燈
電池:600mAh 20C 1S鋰離子電池
電機(jī):720空心杯
槳葉:55mm槳葉
槳葉保護(hù)罩:相鄰軸距65mm
機(jī)架:PCB一體化機(jī)架
續(xù)航時(shí)間:10分鐘
遙控距離:空曠50m
RoboFly四軸原理圖各模塊簡單說明:
STM32F103C8T6是ST在2007年發(fā)布的一款MCU,截止目前ST已經(jīng)發(fā)布了速度高達(dá)400MHz的STM32H7 (這時(shí)候一定有人會(huì)說600MHz的事,我知道,不用提醒),我自己也是用STM32F1,STM32F4,STN32F7都做過各種各樣的四軸,但是這個(gè)開源的四軸我還是選擇了STM32F103C8T6,主要從三點(diǎn)考慮,一是封裝比較大,方便初學(xué)者焊接,二是價(jià)格低廉,學(xué)習(xí)成本比較低,三是網(wǎng)上有大量的資料供初學(xué)者學(xué)習(xí)使用。
姿態(tài)傳感器選擇MPU6050,主要考慮的也是封裝比較大,可以直接使用烙鐵焊接,而且價(jià)格比較低,資料也很豐富。而且還自帶DMP庫,可以完成姿態(tài)結(jié)算后直接把姿態(tài)角輸出給主控芯片。2016年我們的第一款四軸就是采用DMP庫輸出姿態(tài)角的。
氣壓計(jì)使用的是FBM320,對(duì)于這款氣壓計(jì),個(gè)人認(rèn)為性能一般。但是優(yōu)點(diǎn)就是這個(gè)封裝和BMP280、SPL06的引腳都是兼容的,方便更換。但是小四軸上放氣壓計(jì),有一個(gè)比較麻煩的地方就是要想辦法排除槳葉的風(fēng)對(duì)它的干擾。可以使用海綿等其他東西進(jìn)行隔離。
無線芯片用的是SI24R1,國產(chǎn)的,之所以用這個(gè)而不用NRF2401,是因?yàn)檫@個(gè)經(jīng)過我測試,性能也是可以的,引腳完全兼容NRF2401,無線發(fā)射可以做到7dB,在發(fā)射和接收端都采用陶瓷天線的前提下,可以達(dá)到50m的通訊距離。如果加上AP,那達(dá)到100米應(yīng)該沒有問題。通過兩個(gè)低成本的0歐姆電阻對(duì)電源進(jìn)行了單點(diǎn)接地,防止電機(jī)回路的電流波動(dòng)串進(jìn)射頻回路對(duì)射頻造成干擾。
對(duì)于供電方案中的先升壓再降壓的方案,這是我做第一款四軸飛行器的時(shí)候發(fā)現(xiàn)的,這種1S的鋰離子電池,在四個(gè)空心杯進(jìn)行供電的時(shí)候,如果四個(gè)空心杯電機(jī)不帶槳葉,也就是說沒有負(fù)載,那啟動(dòng)是沒有問題的。但是如果四個(gè)空心杯都帶上負(fù)載,瞬間提速到滿速,就會(huì)瞬間把電池輸出電壓拉低到3V以下,經(jīng)過我測試甚至低到了2.8V,這時(shí)候如果不升壓,直接用電池給LDO供電,那LDO就會(huì)失效。所以通過升壓再降壓后給單片機(jī)系統(tǒng)供電是一個(gè)可行的方案。另一個(gè)方案就是在電機(jī)啟動(dòng)的時(shí)候采用緩慢啟動(dòng)的方式,這樣電池的電壓就不會(huì)瞬間被拉低,但是這樣的一個(gè)不足之處就是無法讓這個(gè)小四軸非常暴力,飛起來不夠爽快。
四個(gè)機(jī)臂上采用的RGBLED是串行單總線全彩燈,也就意味著只需要占用單片機(jī)的一個(gè)IO端口,就可以控制這四個(gè)燈發(fā)出各種各樣的顏色。這個(gè)燈類似與WS2811,也是通過零一碼來實(shí)現(xiàn)數(shù)據(jù)通訊,進(jìn)而控制燈的顏色的。對(duì)于初學(xué)者而言,時(shí)序往往難以理解,而這個(gè)燈可以作為學(xué)習(xí)時(shí)序最簡單的一個(gè)例程,雖然簡單,但是卻非常有趣。
因?yàn)樾∷妮S的尺寸、重量等限制,這版四軸飛行器的電池最好不要超過600mAh,否則電池自身的重量就會(huì)成為最大的包袱。而太小的電池則不能提供較長時(shí)間的續(xù)航??傊医?jīng)過測試認(rèn)為600 mAh容量應(yīng)該是一個(gè)拐點(diǎn)。電池最好帶保護(hù)板、有一定的安全性能。否則脹飽、失效事小,嚴(yán)重點(diǎn)在炸機(jī)的時(shí)候可能會(huì)爆炸。
對(duì)于這個(gè)四軸最關(guān)鍵的一個(gè)組建—空心杯,說出來都是淚啊,做四軸兩年,有一年的時(shí)間都在尋找合格的空心杯電機(jī)。2017年有一款四軸飛行器因?yàn)椴少彽碾姍C(jī)側(cè)向震動(dòng)太大,導(dǎo)致槳葉轉(zhuǎn)動(dòng)之后產(chǎn)生很大的側(cè)向震動(dòng)、嚴(yán)重干擾了加速度計(jì),使角度偏差很大,基本不能垂直飛行。一開始把問題鎖定在MOS管上、陀螺儀上、原理圖與PCB設(shè)計(jì)上都未能解決問題,后來對(duì)原始數(shù)據(jù)進(jìn)行FFT變換后發(fā)現(xiàn)了干擾的頻率點(diǎn),這才確定是電機(jī)的側(cè)向震動(dòng)引起的。還有一種情況就是同一批次的電機(jī)性能差異很大,導(dǎo)致PID調(diào)節(jié)的輸出差異很大,最終會(huì)影響MOS管的壽命、電機(jī)壽命。空心杯電機(jī)使用SI2302這款MOS管進(jìn)行驅(qū)動(dòng),這是非常常見的一款MOS管,便宜又好用。但是市面上這個(gè)管子假貨也比較多。很多人在電機(jī)驅(qū)動(dòng)電路上加不加電容、加不加二極管有很大的爭議,我經(jīng)過測試發(fā)現(xiàn),加上電容之后效果很好,而加上二極管的效果則一般。也可能是測試方式不夠嚴(yán)謹(jǐn),回頭可以一起討論這個(gè)問題。
槳葉選型一定要注意選擇平衡性好的槳葉、做工有瑕疵的可能會(huì)影響平衡性,在飛行的時(shí)候,如果不平衡就會(huì)導(dǎo)致側(cè)向震動(dòng)。
初學(xué)者在調(diào)試四軸的時(shí)候,摔下來、失控是很常見的,所以加上槳葉保護(hù)罩之后,可以很大程度上減小槳葉、電機(jī)報(bào)廢的概率。
如果采用飛控板和機(jī)架隔離的方式,就能從一定程度上降低震動(dòng)的影響,但是這樣或許會(huì)增加重量及成本,所以我選擇了PCB機(jī)架,這也是初學(xué)者最容易實(shí)現(xiàn)的一個(gè)方案,但不是唯一的方案。
四軸源碼采用Keil MDK V5.20
STM32庫使用的是標(biāo)準(zhǔn)庫
四軸源代碼工程創(chuàng)建方法可以參考我們最小系統(tǒng)板的課程,課程視頻可以在公眾號(hào)觀看,下面的百度云鏈接中也提供了工程創(chuàng)建的PDF文件。
如果自己購買配件,電機(jī),電機(jī)包護(hù)墊,電池,電阻電容,芯片,氣壓計(jì),槳葉,pcb打板,手柄搖桿,下載器端子,這些得分別在10個(gè)店鋪購買,這樣,會(huì)導(dǎo)致兩個(gè)問題,1自己選擇會(huì)找到很多假貨,次品,尤其電機(jī)芯片等,會(huì)導(dǎo)致飛不起來,不知道問題是硬件還是算法。2在不同店鋪購買郵費(fèi)下來總共也得不少,另外為了使郵費(fèi)比例小,不得不多買配件,導(dǎo)致花費(fèi)很多錢。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至2161241530@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.sdanke.com/wurenjibaike/55434/