2015年6月13日 星期六

用Raspberry Pi 實現四軸飛行器



   無人四軸飛行器其靈敏性高、機動性佳、體積小與重量輕等特點,其應用不再只是侷限在軍事方面,也可適用於一些民生用途如空拍導航、地形偵查等。
故本專題想要以上課所學到的內容,來實現一個基於嵌入式Linux系統的一個四軸飛行器。本專題從基本的直流無刷馬達(BLDC)控制開始著手,到完成整個飛行器控制核心及慣性感測器的系統整合,最後實際測試飛行。本系統所使用的控制核心為Raspberry Pi B+, SoC 晶片為Broadcom BCM2835(ARM11@ 700MHz)。

四軸飛行器主要是利用四顆BLDC來帶動螺旋槳產生的浮力,使得四軸飛行器能於空中進行不同的運動,其中BLDC需要透過驅動電路將單一直流電轉換成三相電流,並透過PWM訊號使BLDC產生不同的轉速。因此,系統使用PCA9685讓Raspberry Pi具備四組硬體PWM輸出能力以控制四顆BLDC。

螺旋槳的轉動會產生作用力與反作用力以及一些旋轉的慣性,且當飛行於室外時,也會因為氣流和風勢的影響,造成四軸飛行器飛行時無法平衡。故,為了達到平穩飛行的目的,我們必須能瞭解四軸飛行器的航向、俯仰、側滾等姿態變化資訊,因此我們利用一顆慣性感測元件MPU6050,其同時包含了加速度計及佗羅儀,可用來即時量測物體運動時的加速度與角加速度。這些加速度與角加速度的變化,再透過控制核心作PID運算處理,並回授矯正誤差值,最後輸出PWM訊號來控制BLDC,使四軸飛行器的能夠達到穩定的平衡飛行。為了加強控制穩定性,量測到的加速度及角加速度訊號於進入PID前,均事先進行互補濾波器(Complementary Filter) 的演算處理。

另外,我們在四軸飛行器上實作一個簡單終端機UI操控界面並安裝一個USB WiFi Dongle (IEEE 802.11n),使PC端可以透過WiFi隨時得知控制系統的狀態,包含姿態、航向、轉向等,並且可遠端操控四軸飛行器的運動方向,如上升、下降、左旋、右旋。最後,我們四軸飛行器的電源使用的是20C鋰電池,即其具有20倍1C 放電速度鋰電池,才能提供系統及四顆BLDC於同時高速運轉下足夠的消耗電流。




關鍵詞:



Raspberry Pi,四軸飛行器,Complementary Filter,互補濾波器,BLDC,
,MPU6050,PCA9685,加速度計,佗羅儀,直流無刷馬達,PWM, ,PID,慣性感測器,IMU ,自動控制

沒有留言 :

張貼留言