1. 程式人生 > >DIY四旋翼(穿越機)軟硬體設計

DIY四旋翼(穿越機)軟硬體設計

今天教教大家怎麼真正意義上的DIY四旋翼飛行器,我將從機架入手DIY穿越機。
下面是我的步驟:
1、設計機架三維圖紙;
2、匯出機架的二維圖紙並做修改;
3、設計飛控板;
4、試飛。
step 1. 我們先設計穿越機的三維圖紙,我這裡使用的是solidworks軟體設計的,有很多學機械的學生畫了這麼多年的圖紙卻也沒有運用過。計算機輔助設計,設計出來的圖紙是可以用於實際的生產的。設計小零件,在裝配圖上看裝配效果。莫問如何就能設計出這個形狀,飛機看多了,胸中自有丘壑。工具軟體在學校多學學,藝多不壓身。這個世界上沒有什麼困難能阻擋勤勞的腦子和勤勞的雙手。首先還是要確定使用材料的,使用的2mm厚的層板。
穿越機1


當然,在畫圖前要先確定飛機的軸距,用多大的螺旋槳(槳長了會打到中間的電池和控制板的),鄙人設計的引數是對角軸距是280mm,選用的是6040的槳。所以主要設計的還是底下的那塊主要的板,其餘的都是一些為了放置電池飛控板的構件和加強筋。下面這張圖給出了我的設計思路,可供參考。打輔助線是為了更好的設計。
穿越機2
然後設計出加強筋,打孔是最後設計的,在起不到加強的地方鏤空減少機架的質量。最後使用軟體設計出來的效果如下圖:
穿越機3
step 2. 接下來的工作比較簡單,把三維圖紙中每一個零件轉化成二維的CDA圖紙,由於我們使用的是2mm的層板,所以打孔時要主要對接的地方要用2mm的孔。下面是CAD圖紙,如果想要CAD圖紙的朋友可以給我留言
,我看到便會給你發。
穿越機3
材料的加工是通過鐳射切割機的。面積比較大,鐳射切割機切割時最好奪走幾遍,確保切透。當然如果沒有相應的裝置可以去網路上找人加工。鄙人運氣比較好,鄙人學校有多臺工業級的鐳射切割機。只要是做科技創新相關的專案,自己去打通關係都是可以使用的。下面是切割出來的零件拼裝好的圖片:
穿越機4
切割好的層板零件使用環氧樹脂貼上。
step 3.設計飛控板這個是一個技術活,不過沒有關係也不是想象種的那麼難。只要功夫深再加上腦子好使,技術道路上是沒有困難的。學習是一個比較痛苦的過程,但是不自己學習做伸手黨的話就會失去探索世界的真理的快樂,並且是永遠的失去。飛控板的原理非常簡單,無非就是使用MCU獲得感測器的資料,解算出自身姿態然後控制電機就好了(博主是過來人,實事就是這麼簡單,對於懶人來說是很難的)。做一個勤勞的人,哪怕花上幾個月半年總能學好的。下面製作飛控的硬體。使用的MCU是STM32F103晶片,感測器選用mpu6050。這裡還需要學習一款軟體,AD用於設計PCB電路圖紙,只要用得到就去學習,這個才是作為工科生應該具有的素養。一個要往工程師方向發展的人如果不會以下的這些技能別說在不要在社會上混,就是大學也別呆了,丟不起那人(不過很多學校還是丟得起那人的)。1、熟悉使用工程上經常用到的一些軟體,比如CAD和一些三維軟體;2、至少熟悉掌握一門或者多門計算機語言;3、基本的物理知識過關,基本原理都能知道,至少知道怎麼查書和手冊力學定律(F=ma或者換成力矩的形式在控制中幾乎無處不在);4、基本的高等數學知識,尤其是微積分原理(控制工程上經常用到)。5、有主動學習的意向和能力。一句話說明就是你不要太懶!言歸正傳,飛控實用STM32F103晶片,通過查詢其資料手冊和淘寶上各種最小系統板和開發板設計出最小系統板是一點問題都沒有的。MPU6050的資源也是非常之多的,有個條件就是把英語學好。把需要用到的訊號線引出來作為介面,遙控器介面和電機介面,下面這個是多年前設計的PCB:
穿越機5

焊接好晶片的PCB板,當年博主出手還是比較闊綽的
飛控板
陀螺儀加速度計晶片MPU6050使用的通訊方式是I2C,這個通訊方式都是很簡單的,稍微看看文件就能掌握其時序。仔細閱讀資料資料手冊就可以知道怎麼設定其內部暫存器(電子工程師所具備的基本素養)。姿態決算比較複雜一點,要想實實在在的理解需要學習四元數,不過也不難,專心看看秦永元老師的《慣性導航》就好了,撿需要的用到的看,我這裡有一句話比較靠譜,凡是用角速度來獲得角度的都是在做積分處理,其餘的都是在濾波和規範化角度,姿態解算最重要的一環還是使用加速度矯正角度。說到濾波,最有效的濾波基本都還是在取均值,取均值的方法不一樣而已(這裡就有很多比較靠譜的濾波方法了比如:卡爾曼濾波、均值濾波、互補濾波),處理均值濾波其餘的兩個濾波基本做的就是根據之前的狀態估計當前的資料,然後加入當前採集到的資料加權獲得比較好的估計值,簡單列一下kalman濾波的一個公式吧,有此基礎學習也比較容易理解,X’ = x(k-1)+kg*(x(k)-x(k-1)),kg是kalman增益,這是一個0到1的數字如果等於0代表相信資料是一成不變的永遠是一個數,這是不可能的,等於1代表的是直接取當前資料估計也就沒有效果,所以kalman濾波主要的就是確定這個增益kg,kg通過空間狀態來獲得,具體的可以去各種網站查詢資料查詢論文。飛控系統的程式設計是一個工程量比較大的軟體工程,可以參考各大開源的飛控程式碼,在國內就有很多的開源飛控。這些組織都開源了程式碼,而且通俗易懂。使用天地飛7通道遙控器作為飛行器的遙控,天地飛7遙控和許多其他遙控提供的接收訊號都是PWM脈衝,使用MCU捕獲其脈寬來獲得資料。天地飛訊號的脈寬資料為週期是2020us的訊號,高電平佔空為1020到2020,對於油門訊號1020時代表為油門為零,2020時滿油門,對於其他通道常值為中間值1520us,使用TIM定時器設定時基單位為1us。用下面一幅圖講解一下串級PID
穿越機6
好好理解一下圖中內容理解飛行器控制的串級PID控制一點都不難。串級PID使用的是角度外環加角速度內環,內環的輸出是直接用於生成控制電機的PWM訊號,外環的輸入直接用於內環的目標輸入。一般而言外環只用到了比例控制,內環有比例(P),積分(I),微分(D)控制。很多人的理解是積分應該放在外環,這裡不做太多的解釋,積分放在內環可以對陀螺儀獲得的角速度零點漂移在控制器中的矯正。外環的輸出就是內環的輸入也就是說外環的輸出就是期望的角速度。如此理解便可以調好串級PID的引數。對於航向角來說,航向角的值就是通過積分獲得的,難免有誤差,在控制上我們就不用再做積分為角度拿來做外環。所以對內環的控制就直接使用角速度環控制。試想,我期望的角速度為零不就是控制期望航向角穩定嗎。如果叫上羅盤獲得絕對角度就可以增加航向角的角度外環,此時由於羅盤的矯正沒有累計誤差。下圖是機架加上控制板組裝好的整機。
穿越機7
step 4.除錯
除錯最後飛行的視訊:http://v.youku.com/v_show/id_XMjk1OTk1OTIyNA==.html?spm=a2h3j.8428770.3416059.1
拍攝的姿勢不對,見笑了。
由於機架是層板做的,在強度上跟碳纖維差遠了。不算加工費(我是借用了學校的切割機)這個機架也就是10塊錢不到。飛機被折騰一遍之後下場自然大家都能想象,下面是我失手撞樹上掉下來後的樣子(如果保證不撞東西,不墜機還是能玩些時日的)。
穿越機8

工作量比較大,過程中問題比較多,感謝所有幫助過我的,南昌航空大學的老師學生。這裡著重感謝昌航繆老師,為我提供了極好的實驗室環境,讓我能夠安靜的完成所有的工作,同時還幫我解答各種疑難問題。使我的整個製作過程極其的順利。有這麼多的好老師好同學幫助,沒白來大學走一朝。

                                           --山東大學某碩士