2015年7月30日 星期四

利用MPU6050透過Arduino及Processing展現姿態演算

   MPU6050是一款近幾年無論在Maker界或是商業應用上皆十分熱門的慣性感測元件(Inertial Measurement Unit,IMU),其中融合了三軸加速度計及三軸陀螺儀。    這款InvenSense於2010年推出的IC能如此成功,除了其低成本、高靈敏度、應用範圍廣等特色以外,最大的功臣為內建的Digital Motion Processor(DMP),這內建功能強大的小模組可以直接在MPU6050內完成加速度計與陀螺儀的Sensor Fusion,傳出四元數、尤拉角,免去了以往繁複的矩陣轉換以及減輕微控制器的運算壓力。這麼好康的內建功能當然就是我們今天的主題啦!
(圖片截自:http://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/)

首先我們去GitHub下載i2cdevlib


下載完之後我們將i2cdevlib-master資料夾解壓縮後放入(C:\Users\user\Documents\Arduino\libraries)的路徑內


接著我們開啟i2cdevlib-master資料夾,再進入裡面的Arduino資料夾並找到I2Cdev資料夾,將I2Cdev裡面的四個檔案複製貼上到MPU6050資料夾內

再將MPU6050資料夾內除了Examples資料夾以外的檔案全部複製並在Examples內的MPU6050_DMP6資料夾內貼上


接著開啟MPU6050_DMP6,並將第117行的//define OUTPUT_TEAPOT改成define OUTPUT_TEAPOT


接著選好我們的Arduino板子及COM Port就可以編譯上傳囉~

上傳完之後我們就可以開始拿出MPU6050

Arduino與MPU6050的接法為:
VCC <---> 3.3V
GND <---> GND
SDA <---> A4
SCL <---> A5
INT <---> D2

連接完我們打開Arduino IDE右上角的Serial Monitor,將Baud Rate設成115200

接著在上方文字框內隨意輸入任何文字(例如ArkLab)並按Send


如果有開始跑出數值的話就代表我們已經成功一半囉!
有了DMP的協助,現在MPU6050已經直接跑出YAW,PITCH,ROW的值了~
可是單單只有數字不過癮,我們當然要著手讓它圖像化,這時候Processing就該亮麗登場!

我們先下載最新版Processing以及需要的library--toxiclibs
同樣的我們安裝好Processing之後將toxiclibs-complete-0020資料夾解壓縮放到C:\Users\user\Documents\Processing\libraries資料夾內


接著我們就回到剛剛MPU6050_DMP6的資料夾內,發現上面居然有個Processing資料夾,讓我們開啟MPUTeapot.pde



按下左上角長得像播放鍵的Run




飛機的姿態就出來了!
趕快動一動手中的MPU6050模組,就會發現小飛機隨著手的姿態一起轉動囉~


延伸閱讀:



P.S.
我們的FB社團"Drone Maker-飛行器自造工坊"也時常會有各種學術討論
歡迎大家一起加入討論學習喔!








2015年3月4日 星期三

奶油蒼蠅RC版教學

  奶油蒼蠅是一款微型四軸,使用Android系統的智慧型手機經由藍芽傳輸控制訊號達到操控目的,優點是不需要昂貴的遙控器,入手門檻低,但缺點是本身沒有提供IOS版的App,造成許多網友無法體驗奶油蒼蠅飛行,在IOS版的App還未上架前,在此先提供一個如何將奶油蒼蠅改造為可以使用一般RC遙控器操控的方法,那麼廢話不多說開始囉~~

首先,準備一台四動以上的遙控器&接收機
P.S. 接收機重量越輕越好,奶油蒼蠅本身Payload已經快到達極限了(So sad...)

這是我選擇的接收機 ─ 2.4GHz SPEKTRUM 4CH採用的是DSM2/ DSMX系統,遙控器使用Devention 10動,刷機後可支援DSM2/ DSMX系統,接收機本身重量3g


取出材料包內附贈的排針母座,使用斜口鉗剪開成 6 Pin與 2 Pin


使用電烙鐵焊接在奶油蒼蠅上相對應得地方,如圖所示
P.S.電烙鐵建議使用30W左右,以免將Pad焊壞,配合助焊劑可以更事半功倍唷


硬體解決了就該處理韌體囉~
--------------------------------------------------我是分隔線-----------------------------------------------
將奶油蒼蠅接上FTDI燒錄線


接上電腦後開啟Arduino並打開教學包中的開源碼程式,選擇""bluetooth的資料夾
名字可能為
"MultiWii_x4_mpu6050_last" 或 
"MultiWii_x4_mpu6050_last_RLRC20140731" 或 
"MultiWii_x4_mpu6050_last_RC"
更新太多次了,有些網友拿的到的教學包名字可能不盡相同,實在抱歉


打開程式碼後選擇上方def.h的副程式


使用搜尋 Ctrl + F ,搜尋"RX PIN"


找到依照自己接收機的腳位更改定義,由於每家接收機的腳位定義不一樣,在此無法一一說明,在這以我使用的這個接收機為例子,最下方是電源端,依序而上分別是Pitch、Yaw、油門與 Roll,如果你的接收機腳位跟我的不一樣的話,可以透過GUI介面觀察遙控器哪些控制錯誤,再回到程式更改即可


若要設定成美國手,腳位定義如下


若要設定成日本手,腳位定義如下


接著選擇電腦Com Port與對應的Arduino板子


點選"上傳"
P.S. 奶油蒼蠅上的開關記得要從"藍芽"撥到"航模"唷


如果成功燒路顯示應如下圖,且沒有任何紅色字警告出現


韌體到這邊算是完成了,最後只剩一些遙控器的調整就可以了~

-------------------------------------我還是分隔線------------------------------------------------------

將接收機接上奶油蒼蠅,第一隻腳接數字1,如下圖



打開遙控器與GUI介面,選擇所連接的Com Port並且Start,此時搖動遙控器搖桿會發現右上角的拉霸會跟著移動,在這個時候可以檢查遙控器對應的操控是否正確且是否有反向

以PWM 1500為中心,Pitch 大於1500代表往前;小於1500代表往後,Roll大於1500代表往右;小於1500代表往左,Yaw大於1500代表往右;小於1500代表往左

如果有相反的話請調整遙控器對應控制的反向


檢查完控制對應的操控與是否反向後,須確認遙控的控制量,在此需要注意Pitch、Roll與Yaw的中值需盡量保持在1500上下,這點可以透過遙控器的微調達到,再來是油門的PWM數值最高須在2000左右,最低值須低於1100以下,否則奶油蒼蠅將無法解鎖


Yaw的控制量也必須控在最低1100以下與最高1900以上,否則奶油蒼蠅也無法解鎖

奶油蒼蠅的解鎖條件為油門PWM低於1100且Yaw PWM高於1900
                    上鎖條件為油門PWM低於1100且Yaw PWM低於1100

如果油門與Yaw的控制量無法達成這兩項需求,必須從遙控器更改這兩動的行程量,直到滿足此兩項條件為止

原始PID參數是提供手機藍芽操作,所以設定為較不靈敏,如果改成遙控器操作後,可以更改適合自己的PID參數進行飛行

對了! 飛行時記得開關是要撥在"航模"位置唷~

註 : 由於奶油蒼蠅的Payload不足,如果有飛不太起來的狀況可以將保護框取下,如果還是飛不太起來就需要更換馬達,原本配置為空心杯716馬達,建議可以更改為空心杯720馬達增加升力



實際飛行影片:







看完是不是也想動手嘗試看看呢?!

快和我們分享你的成果吧。























[Maker - 技術交流] Deviation Devo-10 韌體刷機還原

在刷機後如果反悔了該怎麼呢?

很簡單,一樣先到華柯爾官方網站下載原廠韌體

網址滴家
http://deviationtx.com/downloads-new/category/12-deviation-4-0-1

下載此韌體


解壓縮後會看到以下兩個檔案,一個是Firmware另一個是Library,兩個必須一起還原才可回復,如果Library沒有復原的話,刷機完開機後將會出現亂碼


第一歩,先將遙控器接上USB線 按著 EXT 鈕 開啟電源,就會進入程序升級畫面。


打開PC端升級工具,如果忘記在哪下載請回顧一下這篇吧~

打開後先點選Firmware標籤,載入"DEVO-10 Fw v0.7A.dfu"檔案


接著切換到Library標籤,載入"DEVO-10 Lib v0.2.dfu"檔案


回到Firmware標籤,點選Upgrade


等他跑完就可囉~


貼心小提醒 : 燒錄完後第一件事情記得先校準搖桿唷~

2015年1月27日 星期二

[Maker - 技術交流]新手的Pixhawk記事7(PID參數調整)

先講解如何讓機體穩定的飛行

PID參數通常是根據"經驗法則"來調整
這裡我盡量把調整的經驗轉為文字分享給大家XD

會想要使用pixhawk的maker們,一定都是想自己動手做一架屬於自己多旋翼
既然是自己動手做的,那機體的大小、重量也一定都不同
因為機體的大小、重量的不同pixhawk預設的PID參數也要做調整

調整時可以將多旋翼抓在手上以免人為疏失造成機身翻覆或失控
抓在手上感覺多旋翼反饋的力道是否不足或過大
同時可以順便確認遙控器通道、馬達轉向與螺旋槳是不是反了


首先打開Mission Planner
配置/調試Extended tuning裡面
我們可以調整”Stabilize”“Rate””Loiter”” Thootle Accel”” Thootle Rate””Altitude Hold”PID參數



Stabilize P

調整這個參數會影響多旋翼的自主穩定性
P值不夠大時修正力道太弱,多旋翼會開始擺盪,感覺會"輕飄飄"的
P值過大時修正力道太強,多旋翼會抖動
最理想的調整是調整到多旋翼受到外力影響,傾斜後能快速修正回水平並且不會振盪
需要點經驗值的累積才能調整到最理想狀態

一般而言多旋翼機身的軸距越小P值會越小,軸距越大的P值會越大
所以StabilizeP值通常是最先調整的數值
剛開始先使用官方的數值4.5做基準
如果有修正力道不足的情況則調大P值,若有振盪的情況發生就調小P

如果使用的機架為對稱型機架(通常都是做對稱)
可以把”Lock Pitch and Roll Values”打勾
Stabilize RollStabilize Pitch的數值保持一樣
使用非對稱形機架時建議取消勾選
個別調整Stabilize RollStabilize Pitch的數值
會比較容易得到更好的穩定性

Stabilize Yaw基本上可以不用做任何調整,但如果發現停懸時頭向會慢慢飄動,那可能就要將P值加大


Rate PID


















當機體本身的穩定度調整的差不多之後就可以開始調整Rate PID
調整這個參數會直接影響到多旋翼的動力輸出響應
通常是在觀察到操作姿態時的穩定度不穩時才會進到這裡調整

假設遙控器瞬間給一個Pitch往前傾斜20度的動量,多旋翼要向前傾斜20
調整Rate PitchP便會影響向前傾斜到20度的力道
當然力道越大到達20度的時間會越快

P值調整到你想到的力道,卻發現多旋翼會有角度修過頭的現象
例如我們希望多旋翼的Pitch向前傾斜20度,但它卻向前傾斜到25度後又修回20
這個時候就需要給它加點Rate D修正它的過衝量
最好的狀態是我們希望它到20度它就能一次到達20

I值與IMAX不需要更動,因為PitchRoll基本上不會有穩態誤差的存在

建議調整Rate PD一次最多不要增加或減少超過官方數值的1
也不要一次變動太多參數應該一次改一種,再去觀察反應

Rate PID的響應情況感覺起來與Stabilize P很像但意義上是完全不同
Stabilize P是受外力影響後自己的水平修復能力
Rate PID是受到控制量影響後到達期望角度的能力
所以穩定度的調校非常倚賴經驗判斷


Throttle Accel PID

這個參數基本上不需要調整除非動力很大的多旋翼才有需要
如果要調整的話感覺起來會跟調整遙控器的油門曲線很像
調整的時候P值與I值的比例記得保持1:2

Throttle Rate P不建議改動
因為Throttle Rate P改小時油門輸出表現會感覺延遲




-------------------------------我是分隔線---------------------------------------
機體穩定先講到這裡
這邊調完應該就能先爽爽飛啦XD
調整PID參數一定要到空曠的地方
因為初期機體一定會不穩
初次起飛是最危險的
新手飛行會摔是正常的
所以測試時一定要以安全為重



待續



2015年1月12日 星期一

[Maker - 技術交流]新手的Pixhawk記事(補充:油門行程校正)

由於四旋翼有4個電子變速器!
一開始試轉有可能會發生每個電變不同步的情況,
這時候就需要做個油門行程校正。

也可以在裝好四軸後
調整完內部設定
第一次飛行之前
先做好油門行程校正。

以下是校正的做法


2015年1月9日 星期五

[Maker - 技術交流]新手的Pixhawk記事6

前面終於把所有設定都調整好了!
現在上電先抓在手上測試一下姿態是否正確。
並且試一下遙控是否有動作反向

測試的時候請小心
請在空曠場地
注意不要傷到他人及自己


測試完一切正常後,我們就到外面放手讓他飛吧XD
一邊飛行一邊觀察姿態,並且調整PID參數
之後再補充如何調整PID參數。

測試的時候請小心
請在空曠場地
注意不要傷到他人及自己


好棒棒啊~飛行結果一切正常
接著就能測試GPS項目了~
未完成待續

待續

[奶油蒼蠅小四軸]GUI找不到javaw.exe ?

有些人第一次開啟GUI介面時會顯示找不到Program Data的javaw.exe
這邊先提供一下win7的解決方法

首先到找到自己的JAVA的安裝路徑
例如我的路徑是:C:\Program Files (x86)\Java\jre1.8.0_25\bin

然後到"電腦的資本資訊"頁面,然後點選左邊的"進階系統設定"


進入後點選"環境變數"

在使用者變數選擇"新增",新增一個新的PATH

變數值設定為javaw.exe的路徑:C:\Program Files (x86)\Java\jre1.8.0_25\bin

在"系統變數"找到"Path"選擇編輯,同樣加入"C:\Program Files (x86)\Java\jre1.8.0_25\bin"的路徑

這樣就可以順利開啟GUI了!!