飛上空中之後對於初學者而言容易迷失方向,加裝燈光的輔助可以幫忙我判斷四軸的方向。
2014年6月29日 星期日
2014年6月2日 星期一
新手的Multiwii 四軸飛行器 IX GPS定點/氣壓定高
前一章教導大家如何設定GPS掛載在MWC上面,目前我透過PID的調整可以做到定高/定點的姿態飛行,但是MWC SE的氣壓計有誤差,所以在定高這一塊沒辦法很準確。
開啟GPS HOLD同時,也必須啟動ANGLE mode,搭配氣壓BARO達到定高狀態。
從影片可以看出機身還是會搖搖晃晃,需要未來透過PID的調整,或者更換更高階的飛控版。
預計未來會組一台Pixhawk。
開啟GPS HOLD同時,也必須啟動ANGLE mode,搭配氣壓BARO達到定高狀態。
從影片可以看出機身還是會搖搖晃晃,需要未來透過PID的調整,或者更換更高階的飛控版。
預計未來會組一台Pixhawk。
2014年4月13日 星期日
新手的Multiwii 四軸飛行器 VIII GPS設定
玩四軸到後面就會想挑戰GPS跟空拍,GPS的航道飛行/自動返航機制聽起來就很讚! 這一篇教大家如何把GPS掛上MWC。
你必須具備三樣東西

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各種可能都有,你可以每一項都嚐試連接看看。

要如何知道有連接成功,可以去功能選單中的View—Statistic View,打開畫面應該可以看到一堆數字在跑,如果都沒有數字,請換一個Baudrate試試看,如果都不行,那就要檢查FTDI的線路有無問題。

連接成功後,就到View的Configuration view中的PRT,把Baudrate設定為115200,到RATE中設定Measurement period為100ms,設定完畢請記得按左下角”Send”並到選單中Receiver Save config儲存設定。
儲存完畢後,把u-center關閉,把GPS斷電,重新上電打開u-center,同樣連接步驟連接上GPS,確認使用115200 Baudrate可以連接到GPS並有資料進來。


設定好Baudrate後,接下來要把i2c-gps-nav提供的GPS configuration上傳到GPS,同樣到u-center中的Tool/GNSS Configuration,選擇u-blox-config.ublox.txt,點選File> GNSS上傳Configuration


上傳成功可以看到畫面中每一行都要出現successfully....上傳成功後,GPS到此步驟就設定完畢。

打開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抓到訊號後才可起飛。

GPS設定完畢之後,可以玩GPS地點跟航線,這部份會需要調整PID,目前我也還沒時間去摸索,未來有做出來會在寫成文章分享給大家。
大家在更改程式過程中應該會發現有支援超音波,I2C轉板上面也有保留超音波接腳,我之前有接上去過,但一直都沒用到,這期間兩次戶外飛航出現無法控制傾斜倒機,目前原因不知道,只能一一排除,所以我先把超音波移除,因此這篇文章我也都沒提到超音波,再此補充說明一下。
你必須具備三樣東西
- I2C轉板(下圖左下)
- GPS本體(下圖右邊),本文使用u-blox的neo-6m 3.0版本,有另一個neo-6h版本,精度較高,但如果在空曠地區飛行,6m跟6h的使用上感覺差異不大。
- FTDI(下圖左上)

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各種可能都有,你可以每一項都嚐試連接看看。

要如何知道有連接成功,可以去功能選單中的View—Statistic View,打開畫面應該可以看到一堆數字在跑,如果都沒有數字,請換一個Baudrate試試看,如果都不行,那就要檢查FTDI的線路有無問題。

連接成功後,就到View的Configuration view中的PRT,把Baudrate設定為115200,到RATE中設定Measurement period為100ms,設定完畢請記得按左下角”Send”並到選單中Receiver Save config儲存設定。
儲存完畢後,把u-center關閉,把GPS斷電,重新上電打開u-center,同樣連接步驟連接上GPS,確認使用115200 Baudrate可以連接到GPS並有資料進來。


設定好Baudrate後,接下來要把i2c-gps-nav提供的GPS configuration上傳到GPS,同樣到u-center中的Tool/GNSS Configuration,選擇u-blox-config.ublox.txt,點選File> GNSS上傳Configuration


上傳成功可以看到畫面中每一行都要出現successfully....上傳成功後,GPS到此步驟就設定完畢。

打開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抓到訊號後才可起飛。

GPS設定完畢之後,可以玩GPS地點跟航線,這部份會需要調整PID,目前我也還沒時間去摸索,未來有做出來會在寫成文章分享給大家。
大家在更改程式過程中應該會發現有支援超音波,I2C轉板上面也有保留超音波接腳,我之前有接上去過,但一直都沒用到,這期間兩次戶外飛航出現無法控制傾斜倒機,目前原因不知道,只能一一排除,所以我先把超音波移除,因此這篇文章我也都沒提到超音波,再此補充說明一下。
2014年3月23日 星期日
新手的Multiwii 四軸飛行器 PID影片解說
前一篇用文字敘述比較模糊,用影片搭配說明,大家也許會比較容易了解。
因為要一邊控制四軸,一邊用iphone拍,有時候沒對到焦,大家請見諒。
因為我的四軸已經調整好,所以為求影片說明速度,PID的調整我會一次都用很大數字往上增加,因為我已經知道最佳狀態設定值。大家組好新機,PID的調整還是各單位最小值往上增加,例如P是0.1,I是0.001依序往上增加。
影片中我說的晃動,如果影片看不太出來,大家可以搭配聆聽槳的風切聲,從聲音也可以感覺到不平衡的狀況。
2014年3月7日 星期五
新手的Multiwii 四軸飛行器 VII DEVO 10刷機設定

前面幾篇文章有提到DEVO10,DEVO10很多人推薦,主要原因是他的C/P非常高,重點是也可以刷機,至於這段歷史大家就自行去google Deviation。
至於為什麼要刷機?DEVO10上面有很多按鈕開關,看了就覺得很炫,按一下開關,MWC就對應一個動作,光想就覺得好興奮好好玩,可是...我用DEVO10原廠的韌體去設定,我怎設定都設定不出來,原廠說明書我看也看不懂,刷機之後設定就很直覺,我這種新手都可以把AUX1/AUX2設定對應出來,而且發射功率也可以提高到100mW,我想不到一個不刷的理由!。
刷機前兩個步驟,要先下載華科爾的USB升級程式,可以到他們官網去下載 Dfuse USB Upgrade Tools
下載Deviation的程式,去他們官網下載
首先安裝Dfuse USB主程式,如果你是Windows 64 bit,Dfuse安裝完畢後要接著安裝USB驅動程式,驅動程式路徑在C:\Program Files\devention Upgrade Tools\Driver\x64。

把Devo10接上電腦USB,先按著EXT鍵,接著打開電源Devo10進入韌體升級模式。
打開Dfuse USB升級tool,選擇deviation-devo10-v4.0.1.dfu韌體檔案位置,點選Upgrade按鈕,就看升級程序跑跑跑,完畢。

升級完畢之後,關閉Devo10,再打開Devo10電源,液晶出現怪怪畫面,壞了!? 別擔心...還有一個步驟

關閉Devo10,先按著ENT鍵,接著打開電源,一直等到Windows出現一個新的磁碟機才可以放開ENT。

接著把新的磁碟機格式化,格式化完畢後把從官網下載Deviation目錄中的以下檔案複製到格式完後的磁碟機中,關閉Devo10,打開Devo10電源,就完成刷機步驟。

未來如果有新版Deviation,以上步驟重新做一次即可,設定的備份,只要把tx.ini跟models目錄備份起來,更新完覆蓋回去即可。
刷機完畢後,第一個步驟就是先校正搖桿,請到選單裡面找到”搖桿校正”,依照步驟把所有搖桿都左右上下推動/轉動/扳動一次極限。
Update:請把底下圖的模式改為模式3

前面提到我的MWC使用AUX1/AUX2,請把刷機後的Devo10設為直升機,通道數為7。


上面我混控介面設定為增強模式,所以我的混控設定介面會如下面這張圖。

刷機後的Devo10,MWC中的AUX1/AUX2分別對應Devo10的通道6跟通道7,AUX都是H/M/L三段,所以我們選擇Devo10上的MIX/FMOD兩個三段開關來對應。
開啟AUX2支援,在MWC config.h要開啟
#define RCAUXPIN8
依照上圖這樣設定,搭配MultiwiiConf設定不同模式的切換,例如當MIX為Hight的時候開啟ANGLE...依照你自己喜好去設定。
設定完畢後,再次強調,請記得備份一次設定檔,前面有提到,請把tx.ini跟models目錄備份起來,下次刷新版本直接覆蓋過去,這樣就不用每次刷新就要重新設定一次。
另外我推薦DEVO10要用Li電池,不要用乾電池,一開始傻傻不懂想說用乾電池就好,光我在家裡研究DEVO10,四軸都還沒控制到,我就用掉數十顆乾電池,為了地球,大家還是去買一顆相容的充電電池來用吧。
2014年2月24日 星期一
新手的Multiwii 四軸飛行器 VI PID調整
PID調整應該是所有人的惡夢,很多人開心的組裝完成後,最後都是在這一步放棄飛行。
我使用Android手機,安裝Multiwii EZ GUI這個app,透過藍牙去跟MWC設定。

依照上一篇提到,我們把ROLL/PITCH/YAW設定值歸零了,所以使用app去讀取三個設定值都是0的狀態,在這設定值下,四軸飛行器飛起來狀態應該是像喝醉酒,旋轉搖晃不聽使喚,這是正常的! 並請把自穩mode關閉。
在進入PID調整前,可以去這裡看一下何謂PID,我覺得這位作者解釋的非常好,看個三次應該就可以理解何謂PID,強烈建議一定要看。
很多PID的教學文都敘述的不清楚,或者照翻譯照抄,很多都教導把四軸抓住,油門提高50%,前後搖擺,提高P值確認不會震動...
這種描述我當初一邊做一邊看,還是調整不好,所以我把自己調整心得,消化一次,用比較白話的方式表達...
首先我們專注在調整ROLL跟PITCH的P值,一開始歸零狀態下,嘗試推動油門,這時候請注意馬達的順暢度,先不用管機身穩定度,先記住馬達運轉的狀態/聲音,記住此狀態後,開始可以把P往上增加,把四軸放在地上,確認水平/油門/地磁都校正好,漸漸推動油門到起飛狀態,這時候飛機有可能是單邊飛起或者直接翻過去,再加p值,反覆這動作,直到你推動油門時,感覺四軸飛機在”水平”殭屍上下跳(或者馬達順暢度跟剛剛0的時候不太一樣),意思就是當你推動油門到起飛,四軸想飛起來,但似乎有一股力量抑制他起飛,在這狀態下的P值就是接近完美值,這時候可以把P減個0.2~0.5左右,這時候四軸飛起狀態應該是很輕鬆就可以水平飛起來,但應該還是四處左右搖晃跟旋轉。
接下來調整I值,I值會減小P值的效果,但可以抑制搖晃,嘗試把I值往上加,每增加一次I值,嘗試讓四軸飛起來,隨I值變大,可以感覺到搖晃喝醉的效果減低,四軸比較沒那麼飄,持續把I增大,一直到四軸飛行的槳轉動,可以感覺到馬達會忽快忽慢不順暢且左右原地搖擺((或者馬達順暢度跟剛剛0的時候不太一樣)),這時候的I值就是完美值,一樣往回減少約0.2~0.5並增加D值,嘗試飛行看看,理論上這時候的四軸飛行狀態應該是很容易起飛並且不會搖晃很厲害。
通常調整I值是控制搖晃,可是此時四軸會伴隨自我旋轉,通常調整I值同時我會把YAW的P值也加大,YAW的P加大,就可以抑制四軸飛起來的水平旋轉。
剛剛提到I值增大會抑制P值的效果,所以這時候我們可以嘗試把D值增加,一次增加1,每增加一次就嘗試飛行一次,理論上這時候的四軸已經在你控制範圍,但還是沒辦法大幅度的控制。D值的效果最明顯應用在PITCH/ROLL,當你搖桿快速扳動ROLL/PITCH並回正,四軸的回應速度就是由D值影響。較小的D值,當你扳動搖桿並回正時,四軸機會隨著扳動方向移動一小段距離,但當D值變大時,幾乎是原地回正。
PID調整後,這時候可以把MWC的ANGLE打開,我設定AUX1在HIGH的時候ANGLE ON,ANGLE打開後,MWC的自穩打開,這時候搭配剛剛調整的PID調整方法,整台四軸飛行器已經很好控制,你可以大範圍的飛行。ANGLE搭配AUX1切換方式我會在寫一篇關於DEVO10說明。
根據multiwii wiki,調整完PID後,再去打開ANGLE。
我使用Android手機,安裝Multiwii EZ GUI這個app,透過藍牙去跟MWC設定。
依照上一篇提到,我們把ROLL/PITCH/YAW設定值歸零了,所以使用app去讀取三個設定值都是0的狀態,在這設定值下,四軸飛行器飛起來狀態應該是像喝醉酒,旋轉搖晃不聽使喚,這是正常的! 並請把自穩mode關閉。
在進入PID調整前,可以去這裡看一下何謂PID,我覺得這位作者解釋的非常好,看個三次應該就可以理解何謂PID,強烈建議一定要看。
很多PID的教學文都敘述的不清楚,或者照翻譯照抄,很多都教導把四軸抓住,油門提高50%,前後搖擺,提高P值確認不會震動...
這種描述我當初一邊做一邊看,還是調整不好,所以我把自己調整心得,消化一次,用比較白話的方式表達...
首先我們專注在調整ROLL跟PITCH的P值,一開始歸零狀態下,嘗試推動油門,這時候請注意馬達的順暢度,先不用管機身穩定度,先記住馬達運轉的狀態/聲音,記住此狀態後,開始可以把P往上增加,把四軸放在地上,確認水平/油門/地磁都校正好,漸漸推動油門到起飛狀態,這時候飛機有可能是單邊飛起或者直接翻過去,再加p值,反覆這動作,直到你推動油門時,感覺四軸飛機在”水平”殭屍上下跳(或者馬達順暢度跟剛剛0的時候不太一樣),意思就是當你推動油門到起飛,四軸想飛起來,但似乎有一股力量抑制他起飛,在這狀態下的P值就是接近完美值,這時候可以把P減個0.2~0.5左右,這時候四軸飛起狀態應該是很輕鬆就可以水平飛起來,但應該還是四處左右搖晃跟旋轉。
接下來調整I值,I值會減小P值的效果,但可以抑制搖晃,嘗試把I值往上加,每增加一次I值,嘗試讓四軸飛起來,隨I值變大,可以感覺到搖晃喝醉的效果減低,四軸比較沒那麼飄,持續把I增大,一直到四軸飛行的槳轉動,可以感覺到馬達會忽快忽慢不順暢且左右原地搖擺((或者馬達順暢度跟剛剛0的時候不太一樣)),這時候的I值就是完美值,一樣往回減少約0.2~0.5並增加D值,嘗試飛行看看,理論上這時候的四軸飛行狀態應該是很容易起飛並且不會搖晃很厲害。
通常調整I值是控制搖晃,可是此時四軸會伴隨自我旋轉,通常調整I值同時我會把YAW的P值也加大,YAW的P加大,就可以抑制四軸飛起來的水平旋轉。
剛剛提到I值增大會抑制P值的效果,所以這時候我們可以嘗試把D值增加,一次增加1,每增加一次就嘗試飛行一次,理論上這時候的四軸已經在你控制範圍,但還是沒辦法大幅度的控制。D值的效果最明顯應用在PITCH/ROLL,當你搖桿快速扳動ROLL/PITCH並回正,四軸的回應速度就是由D值影響。較小的D值,當你扳動搖桿並回正時,四軸機會隨著扳動方向移動一小段距離,但當D值變大時,幾乎是原地回正。
PID調整後,這時候可以把MWC的ANGLE打開,我設定AUX1在HIGH的時候ANGLE ON,ANGLE打開後,MWC的自穩打開,這時候搭配剛剛調整的PID調整方法,整台四軸飛行器已經很好控制,你可以大範圍的飛行。ANGLE搭配AUX1切換方式我會在寫一篇關於DEVO10說明。
根據multiwii wiki,調整完PID後,再去打開ANGLE。
- ANGLE - stable mode if the PID values are correctly adjusted and the gyro and the accelerometers have been calibrated and trimmed.
- According to MultiWii developers ANGLE MODE is virtually obsolete, HORIZON MODE is preferable in most cases.
- Uses: gyro and accelerometers.
新手的Multiwii 四軸飛行器 V 軟體設定
線路硬體都設定好後,接下來是軟體部分,要先準備以下軟體
1.Arduino IDE,我使用的MWC SE 2.5本質是一片Arduino,所以使用Arduino IDE剛好而已,我使用1.0.5。
2.Multiwii firmware,我使用最新release 2.3版
下載MWC並解壓縮,裡面有兩個目錄,一個Multiwii,一個MultiwiiConf,使用Arduino IDE打開Multiwii\MultiWii.ino
我們先編輯config.h這個檔案
以下是我開啟的主要選項,有一些相同類型的請自行尋找取消
#define QUADX
#define HK_MultiWii_SE_V2
#define MINTHROTTLE 1150
#define MAXTHROTTLE 1810
#define I2C_SPEED 400000L
#define MPU6050_LPF_42HZ //預設值這行沒啟動,如果你飛起來跟我一樣會往一邊偏,可以嘗試低通濾這部份設定
#define MOTOR_STOP
#define SERVO_RFR_300HZ //我有刷掉電變,所以把頻率拉高
使用FTDI連接到MWC的C區,Arduino的Board選擇Pro mini,上傳程式


上傳程式之後,到剛剛MultiwiiConf目錄找到你的電腦版本,例如我是mac os,所以我到mac os的目錄執行MultiwiiConf,執行畫面如下,在A區選擇你連接到MWC的Serial Port,按下B區的Start,再按C區的READ,沒意外就可以看到一些數據出現


MultiwiiConf連上後,會讀取目前飛控版的數據,這時候使用DEVO 10上的搖桿,在E區會看到一些數據變化,把油門分別推到最小-->中間-->最大,E區的THROT應該會有變化,最小值應該在1100左右,中間值要在1500,最大值要在1850左右,這邊關係到後面油門解鎖,所以請務必確定這些值是在這範圍內,一般DEVO 10預設應該會在這附近左右,油門最小值關係到油門解鎖,如果你的最小值無法到1100,一般教學會要你去設定DEVO 10微調,但我個人偏好直接從韌體調整,如果誤差不大,例如你的最小油門是1108,距離1100很小,那請直接打開Arduino IDE,打開Multiwii.h這檔案,找到兩行
#define MINCHECK 1110
#define MAXCHECK 1810
這意思是油門的最大跟最低要求,剛剛提到最低油門只能到1108,要符合這需求,那我們就把MINCHECK設高於1108,湊個整數例如1110,這樣代表我們油門可以低於這標準,同樣設定方法用於MAXCHECK,例如你最大油門可以到1895,那就直接把MAXCHECK設定為1890。編輯檔案後,記得重新上傳一次(上傳程式時,請先關閉MultiwiiConf,Arduino IDE跟MultiwiiConf會互搶Port)。
上傳後,重新連接到MultiwiiConf,按下START/READ,打開DEVO10,把右手油門,左手搖桿右下推,解鎖油門(左手搖桿左推上鎖油門),MWC的藍色燈號會長亮,MultiwiiConf的B區ARM也會顯示成綠色,這代表目前油門解鎖,這時候推動DEVO10的油門,可以在F區看到變化。如果你看不到此段提的變化,請重新再確認一次MINCHECK是否符合你的油門設定。
把飛機平放在地上後,點擊D區的CALIB_ACC校正水平,大概等候10秒。
點擊C區的CALIB_MAG,把整台飛機在XYZ三軸方向分別翻轉360度,此動作在30秒內完成校正磁北。
把飛機擺放水平後,嘗試前後左右搖擺,確認G區顯示是否符合你搖擺方向,如果方向不對,一樣打開Arduino IDE,編輯Config.h,找到
#define FORCE_ACC_ORIENTATION(X, Y, Z) {imu.accADC[ROLL] = Y; imu.accADC[PITCH] = -X; imu.accADC[YAW] = Z;}
刪除反斜線,修改Y為-Y,-X為X之類,依照你的錯誤去修改。
以上步驟完畢之後,可以把槳裝上,推動油門確認四個馬達運作無誤,正反槳都裝對,馬達旋轉方向也無誤,接下來就可以找一塊空地準備調整PID。
建議把ROLL/PITCH/YAW/ALT設定值都清除為0,一切從零開始調整,很多教學說MWC的預設值就可以飛起來....是的,是可以飛起來,但可能一秒內就墜機...歸零後,記得點擊WRITE跟READ確保歸零無誤。
下一篇我會教學如何調整PID!
1.Arduino IDE,我使用的MWC SE 2.5本質是一片Arduino,所以使用Arduino IDE剛好而已,我使用1.0.5。
2.Multiwii firmware,我使用最新release 2.3版
下載MWC並解壓縮,裡面有兩個目錄,一個Multiwii,一個MultiwiiConf,使用Arduino IDE打開Multiwii\MultiWii.ino
我們先編輯config.h這個檔案
以下是我開啟的主要選項,有一些相同類型的請自行尋找取消
#define QUADX
#define HK_MultiWii_SE_V2
#define MINTHROTTLE 1150
#define MAXTHROTTLE 1810
#define I2C_SPEED 400000L
#define MPU6050_LPF_42HZ //預設值這行沒啟動,如果你飛起來跟我一樣會往一邊偏,可以嘗試低通濾這部份設定
#define MOTOR_STOP
#define SERVO_RFR_300HZ //我有刷掉電變,所以把頻率拉高
使用FTDI連接到MWC的C區,Arduino的Board選擇Pro mini,上傳程式
上傳程式之後,到剛剛MultiwiiConf目錄找到你的電腦版本,例如我是mac os,所以我到mac os的目錄執行MultiwiiConf,執行畫面如下,在A區選擇你連接到MWC的Serial Port,按下B區的Start,再按C區的READ,沒意外就可以看到一些數據出現
MultiwiiConf連上後,會讀取目前飛控版的數據,這時候使用DEVO 10上的搖桿,在E區會看到一些數據變化,把油門分別推到最小-->中間-->最大,E區的THROT應該會有變化,最小值應該在1100左右,中間值要在1500,最大值要在1850左右,這邊關係到後面油門解鎖,所以請務必確定這些值是在這範圍內,一般DEVO 10預設應該會在這附近左右,油門最小值關係到油門解鎖,如果你的最小值無法到1100,一般教學會要你去設定DEVO 10微調,但我個人偏好直接從韌體調整,如果誤差不大,例如你的最小油門是1108,距離1100很小,那請直接打開Arduino IDE,打開Multiwii.h這檔案,找到兩行
#define MINCHECK 1110
#define MAXCHECK 1810
這意思是油門的最大跟最低要求,剛剛提到最低油門只能到1108,要符合這需求,那我們就把MINCHECK設高於1108,湊個整數例如1110,這樣代表我們油門可以低於這標準,同樣設定方法用於MAXCHECK,例如你最大油門可以到1895,那就直接把MAXCHECK設定為1890。編輯檔案後,記得重新上傳一次(上傳程式時,請先關閉MultiwiiConf,Arduino IDE跟MultiwiiConf會互搶Port)。
上傳後,重新連接到MultiwiiConf,按下START/READ,打開DEVO10,把右手油門,左手搖桿右下推,解鎖油門(左手搖桿左推上鎖油門),MWC的藍色燈號會長亮,MultiwiiConf的B區ARM也會顯示成綠色,這代表目前油門解鎖,這時候推動DEVO10的油門,可以在F區看到變化。如果你看不到此段提的變化,請重新再確認一次MINCHECK是否符合你的油門設定。
把飛機平放在地上後,點擊D區的CALIB_ACC校正水平,大概等候10秒。
點擊C區的CALIB_MAG,把整台飛機在XYZ三軸方向分別翻轉360度,此動作在30秒內完成校正磁北。
把飛機擺放水平後,嘗試前後左右搖擺,確認G區顯示是否符合你搖擺方向,如果方向不對,一樣打開Arduino IDE,編輯Config.h,找到
#define FORCE_ACC_ORIENTATION(X, Y, Z) {imu.accADC[ROLL] = Y; imu.accADC[PITCH] = -X; imu.accADC[YAW] = Z;}
刪除反斜線,修改Y為-Y,-X為X之類,依照你的錯誤去修改。
以上步驟完畢之後,可以把槳裝上,推動油門確認四個馬達運作無誤,正反槳都裝對,馬達旋轉方向也無誤,接下來就可以找一塊空地準備調整PID。
建議把ROLL/PITCH/YAW/ALT設定值都清除為0,一切從零開始調整,很多教學說MWC的預設值就可以飛起來....是的,是可以飛起來,但可能一秒內就墜機...歸零後,記得點擊WRITE跟READ確保歸零無誤。
下一篇我會教學如何調整PID!
2014年2月17日 星期一
新手的Multiwii四軸飛行器 IV 起飛!
這是我已經調整後的飛行狀態,目前只在室內測試飛行,未來在去戶外飛飛看。
有人都會問3D列印出來的機架硬度夠嗎?震度是否會很大? 這問題我沒辦法很專業去回答,在組裝四軸前,我看到這些前輩對於準度的要求也讓我自己列印機架信心動搖,心想是否要去買什麼碳纖機架,然後買什麼避震零件加裝...但不試怎知道呢!
印一根軸要耗費七小時,買現成的機架就好阿,幹嘛要這麼費工夫?
是的,幹嘛浪費時間? 沒為什麼,因為就是爽! I'm a Maker!
2014年2月16日 星期日
新手的Multiwii 四軸飛行器 III 什麼都要刷!電變 BLHeli
我使用的Multiwii SE 2.5大家都知道其實就是一片Arduino Pro,所以飛控板本身就是韌體整天刷來刷去,但我沒想到電變本身也可以刷!
BLHeli支援很多電變,相容列表在此,我使用的天行者40A也剛好在支援列表,根據對岸說法,刷了BLHeli,可以讓你$40 RMB的電變效能提升到$200 RMB等級的電變,這有如購物頻道的催眠術語,我怎受的了!!刷~~(刷掉後無法復原回原廠)
需要準備以下工具
1.一個AVRSP
2.一片Arduino Nano 3.0
3.BLHeli tool 軟體
首先用AVRSP把Arduino nano boot loader刷掉,讓Arduino nano變成一個stick,我會這樣做是因為我依照BLHeli的教學,用他本身tool我一直無法讓我的Nano變成stick,所以我用這種比較極端的作法。
用AVRSP跟Nano的ICSP接在一起,使用以下指令在Windows DOS視窗把Nano變成stick
avrdude -p m328p -c usbasp -U flash:w:Arduino_Nano__16_PB3PB4v111.hex -U lock:w:0x0f:m
Update:
avrdude.exe在 Interfaces\AVRDude可以找到
hex檔案可以在 Interfaces\Silabs\Arduino裡面找到
有時候每一版本目錄結構會有變化,可以用檔案搜尋找一下。
我的Nano是3.0(ATMega 328p),所以參數-p 使用m328p,Arduino_Nano__16_PB3PB4v111.hex這檔案在BLHeli tool目錄裡的Arduino目錄就有。

把Nano 3.0變成stick後,接下來先把線路搞定。因為要把電變刷掉,所以從電變必須拉出三條線,這些接點就在電變背後,用雕刻刀輕輕劃開一個小洞即可,不用破壞整個熱縮膜。
接點位置大概在背面用手觸摸上方三個凸起的第二個下方,這地方會有四個接點,我只用最上面兩個接點(下圖紅白兩圈點),另一個GND我直接用訊號線的黑色地線。

Update:有一些強國貨的Nano上面ICSP腳位順序不太一樣,所以要請注意一下。
我的如下圖最右下角為Pin1,一般pin1會做上記號,如下圖有一個小白色倒三角形或者會寫上數字1
電變的最上面第一個白圈點對應到下圖Nano的C2D(white),紅圈對應到下圖的中間線C2CK(red),電變的GND可以用第四個接點(上圖黑圈)拉出或者我剛剛提到的訊號線黑線接到Nano的ICSP GND(下圖上面第一條線)。GND我個人建議用訊號線,因為訊號接頭是現成的,方便直接插入固定,多出來的手可以專心用手拿電線直接去碰觸白紅兩圈點。碰觸紅白兩點請注意,誤觸旁邊會燒掉電變。

BHLeli有一個選項要選擇SILABS Serial Interface
線路接好後,把Nano接到電腦,電變也上電(不用接馬達),打開BLHeli tool,點選下方的Flash BLHeli,緊接著就會出現下下一張圖,選擇你的電變(例如我的是Skywalker 40A),我是多軸,所以另一個欄位我要選擇”Multi”,按下OK大概五秒就刷完了。
如果你沒有出現這些畫面,請再次確認接點是否有正確接好,請注意不要碰觸其他接點,這有可能會讓電變燒掉!


刷完之後,建議做一次油門校正,可以使用MWC本身的程式去調整,在config.h裡面找到一行
#define ESC_CALIB_CANNOT_FLY
把前面反斜線刪除然後上傳程式,*****把槳從馬達上移除*****
上電後,飛控板會自動把油門推到最大值偵測一次油門行程,所以建議把槳移除。
也有人說找條線把飛機固定起來,不用移除槳...這就由你自行決定要哪一種方法
偵測完畢後,在去config.h把剛剛那一行註解起來上傳一次程式即可
//#define ESC_CALIB_CANNOT_FLY
上槳然後上電測試看看。
刷完之後感想是,動力輸出比較線性,原本韌體的動力輸出感覺比較飄,BLHeli油門整體加速比較一致性,刷BLHeli不會讓你馬力提昇,但會讓操控性比較平順,油門隨傳隨到。我個人滿推薦直接刷掉原廠版本!
以下兩個影片是大致差異
原廠韌體
更換成BLHeli
BLHeli支援很多電變,相容列表在此,我使用的天行者40A也剛好在支援列表,根據對岸說法,刷了BLHeli,可以讓你$40 RMB的電變效能提升到$200 RMB等級的電變,這有如購物頻道的催眠術語,我怎受的了!!刷~~(刷掉後無法復原回原廠)
需要準備以下工具
1.一個AVRSP
2.一片Arduino Nano 3.0
3.BLHeli tool 軟體
首先用AVRSP把Arduino nano boot loader刷掉,讓Arduino nano變成一個stick,我會這樣做是因為我依照BLHeli的教學,用他本身tool我一直無法讓我的Nano變成stick,所以我用這種比較極端的作法。
用AVRSP跟Nano的ICSP接在一起,使用以下指令在Windows DOS視窗把Nano變成stick
avrdude -p m328p -c usbasp -U flash:w:Arduino_Nano__16_PB3PB4v111.hex -U lock:w:0x0f:m
Update:
avrdude.exe在 Interfaces\AVRDude可以找到
hex檔案可以在 Interfaces\Silabs\Arduino裡面找到
有時候每一版本目錄結構會有變化,可以用檔案搜尋找一下。
我的Nano是3.0(ATMega 328p),所以參數-p 使用m328p,Arduino_Nano__16_PB3PB4v111.hex這檔案在BLHeli tool目錄裡的Arduino目錄就有。
把Nano 3.0變成stick後,接下來先把線路搞定。因為要把電變刷掉,所以從電變必須拉出三條線,這些接點就在電變背後,用雕刻刀輕輕劃開一個小洞即可,不用破壞整個熱縮膜。
接點位置大概在背面用手觸摸上方三個凸起的第二個下方,這地方會有四個接點,我只用最上面兩個接點(下圖紅白兩圈點),另一個GND我直接用訊號線的黑色地線。
Update:有一些強國貨的Nano上面ICSP腳位順序不太一樣,所以要請注意一下。
我的如下圖最右下角為Pin1,一般pin1會做上記號,如下圖有一個小白色倒三角形或者會寫上數字1
電變的最上面第一個白圈點對應到下圖Nano的C2D(white),紅圈對應到下圖的中間線C2CK(red),電變的GND可以用第四個接點(上圖黑圈)拉出或者我剛剛提到的訊號線黑線接到Nano的ICSP GND(下圖上面第一條線)。GND我個人建議用訊號線,因為訊號接頭是現成的,方便直接插入固定,多出來的手可以專心用手拿電線直接去碰觸白紅兩圈點。碰觸紅白兩點請注意,誤觸旁邊會燒掉電變。
BHLeli有一個選項要選擇SILABS Serial Interface
線路接好後,把Nano接到電腦,電變也上電(不用接馬達),打開BLHeli tool,點選下方的Flash BLHeli,緊接著就會出現下下一張圖,選擇你的電變(例如我的是Skywalker 40A),我是多軸,所以另一個欄位我要選擇”Multi”,按下OK大概五秒就刷完了。
如果你沒有出現這些畫面,請再次確認接點是否有正確接好,請注意不要碰觸其他接點,這有可能會讓電變燒掉!
刷完之後,建議做一次油門校正,可以使用MWC本身的程式去調整,在config.h裡面找到一行
#define ESC_CALIB_CANNOT_FLY
把前面反斜線刪除然後上傳程式,*****把槳從馬達上移除*****
上電後,飛控板會自動把油門推到最大值偵測一次油門行程,所以建議把槳移除。
也有人說找條線把飛機固定起來,不用移除槳...這就由你自行決定要哪一種方法
偵測完畢後,在去config.h把剛剛那一行註解起來上傳一次程式即可
//#define ESC_CALIB_CANNOT_FLY
上槳然後上電測試看看。
刷完之後感想是,動力輸出比較線性,原本韌體的動力輸出感覺比較飄,BLHeli油門整體加速比較一致性,刷BLHeli不會讓你馬力提昇,但會讓操控性比較平順,油門隨傳隨到。我個人滿推薦直接刷掉原廠版本!
以下兩個影片是大致差異
原廠韌體
更換成BLHeli
2014年2月11日 星期二
新手的Multiwii 四軸飛行器 II 線路組裝
買齊了零件,很興奮的把所有配件擺在眼前,傷腦筋的時刻開始了,線怎接?
一開始我是參考網路上的文章,但我發現大多草草帶過,例如槳怎裝?槳有分正反,在四軸上我就不知道怎裝,大多文章可能覺得這是基本知識吧,但...我是『新手』!!
以下操作請勿先把槳接上馬達!!
遙控器+接收機/DEVO10+RX1002
先談遙控器是因為後面有一些操作需要遙控器輔助,我一開始沒有把DEVO10刷掉,先用原廠模式,後面文章在來提DEVO10如何刷機。剛買到手的DEVO10+RX1002,原廠說明書(很難懂的說明書XD)第10、11頁有教學如何配對,先把RX1002固定ID清除,怎清除?首先,先到DEVO10清除固定ID,然後關閉DEVO10。接下來RX1002有附贈一個bind plug,簡單說就是一個jumper,把它插到底下紅箭頭處(不分正反),找一個5V電源,接到左邊三排排針任一組正負,等個幾秒關掉電源,拔掉bind plug,在通電RX1002,打開DEVO10,在去固定ID選單打開固定ID即配對完成。
RX1002左邊三排排針,最左邊一整排都是負極,中間是正極,右手邊是訊號,-+S三個為一組分別定義對應到右邊標籤上的ELEV/AILE/THRO.....,這些pin是要接到MWC飛控板。
5V的電源可以從MWC拉過去,C區是接FTDI的線,請注意接腳,FTDI的腳位都會寫該腳位的定義,MWC的BLK請對應到FTDI的BLK,請勿接錯!!! D區是UART,請注意!!未來C區FTDI跟D區UART請勿同時接線使用
接上FTDI後,MWC將會上電,上電後A區即可輸出5V的電,最上面-+兩針腳即可輸出5V的電給RX1002。
注意!!!! RX1002的電,只需接一組+- 5V的電源,請勿同時接入多組線供電RX1002的+-兩
極



電變/電調
大部分電變說明書都會提到第一次使用,請先校正。一台四軸機需要四個電變,每一個電變有三組連接線,
A三條線是接到馬達,沒有分接法,可以任意三條線跟馬達對接。
B兩條線+-極是電源輸入,未來電池要分接四組電源到四個電變+-。
C是訊號控制同時也是供電給MWC。
校正方法依照各家電變說明書。我的範例是...
1.拿出一個電變,打開DEVO10,並把DEVO10油門推到100%最大
2.A三條線任意對接一組馬達
3.C三條紅黑白線接上RX1002的THRO油門三根針,紅接+,黑接 -,白色是訊號線,接到S。(+設計在中間,- S接反+還是在中間,聰明設計!)
4.B接上電池,會聽到逼逼聲音,在把DEVO10油門推到最小0%,在聽到逼逼聲音,就可以拔掉電變電源。(聲音定義依照各廠牌不同)
5.拿出各個電變重複上面步驟一一校正
MWC軟體本身有提供電變校正方法,未來在教。
注意!!!!! 全部電變校正完後,請拿出三個電變,用一字起子把C三條線裡的紅線從接頭中挑出,因為未來MWC的供電是靠電變,只需要一組電變供5V電即可,所以四組電變中的三組正極都要挑出。


MWC飛控板線路安裝
我的四軸排列方式是X型,箭頭方向同MWC版上箭頭方向,每一組電變+馬達對應到MWC的3、10、9、11接腳編號,Multiwii網頁都有說明。每一個馬達的旋轉方向都有清楚交代。
1.把電變的訊號控制線(上圖的C),分別接到MWC版上的D3/D10/D11/D9,請注意腳位是否有差錯,也再次確認三個電變的正極已經拔除,只需保留一個電變供電給MWC板子。

2. RX1002接線方法,請參考上圖MWC的腳位定義跟下圖RX1002腳位
RX1002 MWC
ELEV <---> 升降舵
AILE <---> 副翼
THRO <---> 油門
RUDD <---> 方向舵
AUX1 <---> AUX1
AUX2 <---> AUX2
MWC SE 2.5這部份都是單一pin腳,請接到RX1002右邊的S訊號腳位。MWC的正負極請接到RX1002中ELEV/AILE/THRO/RUDD中任一組的正負極即可。
下圖中都用3pin的杜邦接頭,雖然有5組的2pin是沒有接線,但是這樣插上去比較穩固,所以建議還是用3pin頭。

電源
電池要供應四組電源給四個電變,可以買這種分接版,或者自己做一條一分四的分接線。

槳
槳有正反槳,一般在槳的上面都會標示一個英文字R或者P,有標示的是反槳。
馬達是順時針方向轉,搭配反槳。
馬達是逆時針方向轉,搭配正槳。
以上線路完成後,硬體全部線路是完整接上,後面我會教學軟體部分。
一開始我是參考網路上的文章,但我發現大多草草帶過,例如槳怎裝?槳有分正反,在四軸上我就不知道怎裝,大多文章可能覺得這是基本知識吧,但...我是『新手』!!
以下操作請勿先把槳接上馬達!!
遙控器+接收機/DEVO10+RX1002
先談遙控器是因為後面有一些操作需要遙控器輔助,我一開始沒有把DEVO10刷掉,先用原廠模式,後面文章在來提DEVO10如何刷機。剛買到手的DEVO10+RX1002,原廠說明書(很難懂的說明書XD)第10、11頁有教學如何配對,先把RX1002固定ID清除,怎清除?首先,先到DEVO10清除固定ID,然後關閉DEVO10。接下來RX1002有附贈一個bind plug,簡單說就是一個jumper,把它插到底下紅箭頭處(不分正反),找一個5V電源,接到左邊三排排針任一組正負,等個幾秒關掉電源,拔掉bind plug,在通電RX1002,打開DEVO10,在去固定ID選單打開固定ID即配對完成。
RX1002左邊三排排針,最左邊一整排都是負極,中間是正極,右手邊是訊號,-+S三個為一組分別定義對應到右邊標籤上的ELEV/AILE/THRO.....,這些pin是要接到MWC飛控板。
5V的電源可以從MWC拉過去,C區是接FTDI的線,請注意接腳,FTDI的腳位都會寫該腳位的定義,MWC的BLK請對應到FTDI的BLK,請勿接錯!!! D區是UART,請注意!!未來C區FTDI跟D區UART請勿同時接線使用
接上FTDI後,MWC將會上電,上電後A區即可輸出5V的電,最上面-+兩針腳即可輸出5V的電給RX1002。
注意!!!! RX1002的電,只需接一組+- 5V的電源,請勿同時接入多組線供電RX1002的+-兩
極
電變/電調
大部分電變說明書都會提到第一次使用,請先校正。一台四軸機需要四個電變,每一個電變有三組連接線,
A三條線是接到馬達,沒有分接法,可以任意三條線跟馬達對接。
B兩條線+-極是電源輸入,未來電池要分接四組電源到四個電變+-。
C是訊號控制同時也是供電給MWC。
校正方法依照各家電變說明書。我的範例是...
1.拿出一個電變,打開DEVO10,並把DEVO10油門推到100%最大
2.A三條線任意對接一組馬達
3.C三條紅黑白線接上RX1002的THRO油門三根針,紅接+,黑接 -,白色是訊號線,接到S。(+設計在中間,- S接反+還是在中間,聰明設計!)
4.B接上電池,會聽到逼逼聲音,在把DEVO10油門推到最小0%,在聽到逼逼聲音,就可以拔掉電變電源。(聲音定義依照各廠牌不同)
5.拿出各個電變重複上面步驟一一校正
MWC軟體本身有提供電變校正方法,未來在教。
注意!!!!! 全部電變校正完後,請拿出三個電變,用一字起子把C三條線裡的紅線從接頭中挑出,因為未來MWC的供電是靠電變,只需要一組電變供5V電即可,所以四組電變中的三組正極都要挑出。
MWC飛控板線路安裝
我的四軸排列方式是X型,箭頭方向同MWC版上箭頭方向,每一組電變+馬達對應到MWC的3、10、9、11接腳編號,Multiwii網頁都有說明。每一個馬達的旋轉方向都有清楚交代。
1.把電變的訊號控制線(上圖的C),分別接到MWC版上的D3/D10/D11/D9,請注意腳位是否有差錯,也再次確認三個電變的正極已經拔除,只需保留一個電變供電給MWC板子。
2. RX1002接線方法,請參考上圖MWC的腳位定義跟下圖RX1002腳位
RX1002 MWC
ELEV <---> 升降舵
AILE <---> 副翼
THRO <---> 油門
RUDD <---> 方向舵
AUX1 <---> AUX1
AUX2 <---> AUX2
MWC SE 2.5這部份都是單一pin腳,請接到RX1002右邊的S訊號腳位。MWC的正負極請接到RX1002中ELEV/AILE/THRO/RUDD中任一組的正負極即可。
下圖中都用3pin的杜邦接頭,雖然有5組的2pin是沒有接線,但是這樣插上去比較穩固,所以建議還是用3pin頭。
電源
電池要供應四組電源給四個電變,可以買這種分接版,或者自己做一條一分四的分接線。
槳
槳有正反槳,一般在槳的上面都會標示一個英文字R或者P,有標示的是反槳。
馬達是順時針方向轉,搭配反槳。
馬達是逆時針方向轉,搭配正槳。
以上線路完成後,硬體全部線路是完整接上,後面我會教學軟體部分。
訂閱:
文章 (Atom)

