2014年4月13日 星期日

新手的Multiwii 四軸飛行器 VIII GPS設定

玩四軸到後面就會想挑戰GPS跟空拍,GPS的航道飛行/自動返航機制聽起來就很讚! 這一篇教大家如何把GPS掛上MWC。
你必須具備三樣東西
  1. I2C轉板(下圖左下)
  2. GPS本體(下圖右邊),本文使用u-blox的neo-6m 3.0版本,有另一個neo-6h版本,精度較高,但如果在空曠地區飛行,6m跟6h的使用上感覺差異不大。
  3. FTDI(下圖左上)
2014-04-1317.32.23-2014-04-13-18-03.jpg

MWC的GPS走的訊號是I2C,但我的GPS NEO-6m接口是標準UART TX/RX,所以目前市面上有所謂I2C轉板,也就是把I2C跟UART互轉,而有趣的是這塊板子也是一塊小Arduino,基本上買來裡面韌體應該是都有一份了,但我還是習慣手動在做一次。
首先到i2c-gps-nav 下載最新版本,我下載的版本是v2.2Beta1-r62的版本,解開後一樣用Arduino IDE去打開ino檔,打開config.h,修改#define GPS_SERIAL_SPEED 115200,修改完畢後,用FTDI接到下方淺綠接頭的FTDI接口,上傳韌體,這樣就完成I2C轉板的韌體。
接下來到u-blox下載GPS neo-6m用的設定軟體u-center並安裝。用FTDI的接頭跟neo-6m GPS連接,FTDI的TX接到GPS RX,FTDI的RX接到GPS TX,GND跟GND對接,5V接到VCC,通常GPS買回來店家可能已經幫你設定好baudrate為115200,但我還是習慣自己在設定一次確保無誤。
打開u-center,左上角選擇COM port,選擇Baudrate,在這邊Baudrate各種可能都有,你可以每一項都嚐試連接看看。
u-center8-2014-04-13-18-03.png u-center7-2014-04-13-18-03.png

要如何知道有連接成功,可以去功能選單中的View—Statistic View,打開畫面應該可以看到一堆數字在跑,如果都沒有數字,請換一個Baudrate試試看,如果都不行,那就要檢查FTDI的線路有無問題。
u-center3-2014-04-13-18-03.png
連接成功後,就到View的Configuration view中的PRT,把Baudrate設定為115200,到RATE中設定Measurement period為100ms,設定完畢請記得按左下角”Send”並到選單中Receiver Save config儲存設定。
儲存完畢後,把u-center關閉,把GPS斷電,重新上電打開u-center,同樣連接步驟連接上GPS,確認使用115200 Baudrate可以連接到GPS並有資料進來。
u-center6-2014-04-13-18-03.png
u-center5-2014-04-13-18-03.png
設定好Baudrate後,接下來要把i2c-gps-nav提供的GPS configuration上傳到GPS,同樣到u-center中的Tool/GNSS Configuration,選擇u-blox-config.ublox.txt,點選File> GNSS上傳Configuration

u-center1-2014-04-13-18-03.pngu-center2-2014-04-13-18-03.png
上傳成功可以看到畫面中每一行都要出現successfully....上傳成功後,GPS到此步驟就設定完畢。
u-center4-2014-04-13-18-03.png
打開MWC的config.h,打開以下設定並上傳到MWC飛控板
#define GPS_BAUD 115200
#define UBLOX
#define I2C_GPS
#define MAG_DECLINATION -3.96f
磁偏角計算請參考這網站計算
軟體部分設定完畢後,把i2c轉板一端接到MWC I2C接腳,另外一端接到GPS,透過Android的EZMultiwii可以觀察GPS訊號是否正常,出現如下圖綠色區塊即代表GPS跟MWC連接完成。
在每次飛行時,上電完畢後,請在原地確認GPS已經定位完成,因為MWC認定第一次連接上GPS的經緯度點就是HOME點,所以上電後需等待GPS抓到訊號後才可起飛。

2014-04-1309.23.33-2014-04-13-18-03.png

GPS設定完畢之後,可以玩GPS地點跟航線,這部份會需要調整PID,目前我也還沒時間去摸索,未來有做出來會在寫成文章分享給大家。

大家在更改程式過程中應該會發現有支援超音波,I2C轉板上面也有保留超音波接腳,我之前有接上去過,但一直都沒用到,這期間兩次戶外飛航出現無法控制傾斜倒機,目前原因不知道,只能一一排除,所以我先把超音波移除,因此這篇文章我也都沒提到超音波,再此補充說明一下。