2015年11月1日 星期日

遠端自動化水質監控無人機系統 ---自己的環境自己救!

遠端自動化水質監控無人機系統

                                  自己的環境自己救!     


     根據行政院環保署 2005 年環境水質監測年報指出,在台灣全長 2904.2 公里的流域中,受污染的比例已高達 64.2%。ArkLab怎麼能坐視不管呢?
    透過隨手可得的材料和開放硬體,並使用 GSM 網路串連製作出整合型的監控平台。此平台可迅速計算河川之涵容能力,並能即時比對各集流分區之容許污染排放,滿足第一階段所需之調查作業,作為制定高階管理辦法之有力參考。

一、系統設計

此系統可分為三大部分:無人飛行載具、水質監測系統、整合監控介面。整個系統須整合圖資、無人飛行載具控制、監測資訊資料庫、及地理資訊系統方便呈現並以 GIS 分析判斷汙染源或擴散範圍。飛行數據、影像及水質數據皆透過不同頻段的無線傳輸方式回傳至使用者介面進行資料整合。
未命名
                →無人飛行載具水質監控系統架構圖
未命名
→無人飛行載具水質監控系統設計圖

(一)機架與動力配置

此作品的作業環境較為特殊,故須有良好的防水以及具備水面漂浮的能力。我們設計了浮筒使其能夠漂浮與水面上,每具浮筒的體積為 1316.33 立方公分,在一般水體中約可提供 1300 g 的浮力。飛機規劃四組共計 5200 g,高出機體本身重量許多,且在重心之上的設計可防止飛行器重摔時翻覆。
未命名
                      →浮筒材料特性分析
   設計之初透過 eCalc 進行模擬,這套網頁板程式自 2004 年上線以來持續提供基於 Web 的 rc 模型分析計算服務,且持續的更新各家馬達的資料庫以提供最佳的服務,一般使用者是無須付費的。網頁連結: http://www.ecalc.ch/indexcalc.htm)可以選擇各種不同航模的模擬,有固定翼飛機、多旋翼、直升機、導風扇飛行器,這裡則選擇多旋翼計算器。
未命名
→Ecal 航模分析軟體
    本次電裝配置:Sunny sky 4110S 400KV 、新西達 30A 電變、5200mah Li-Po,含感測器模組約重 2.2 kg,經軟體模擬出來的懸停時間為 21 分鐘,尚在可接受範圍。
未命名
Ecal分析結果

(二)遠端水質感測器

水質感測模組必須要有類比訊號擷取、長距離無線通訊的能力,此次選用 Linklt ONE 開發板即是因他在通訊及 GPS 系統的高度整合性,非常適合用做此種廣域的環境監控專題之中。
未命名
水質監控模組功能方塊圖
未命名
Linklt ONE 開發板
感測器模組為求輕量化使用碳纖維板材加工,預留不同種類感測錶頭位置可供擴充,中間設計了一容量為 500 ml 的儲存瓶,可透過直流 12 V 驅動的小型抽水馬達汲取樣本。
未命名
水質監測模組設計圖
本團隊設計之無線水質檢測器考量 Linklt ONE 只有 支類比輸入腳位,規劃檢測項目為水溫、p值、電導度(EC)值。內部由單晶片讀取各通道感測器的數值,整合 GPS 位置資訊後將資料封包透過 GPRS 模組經由無線通訊網路傳送至主控端資料庫。
項目PHTemperatureORPEC
範圍0.0~14.0
± 0.02
0~125
± 0.02
± 1999 mV
± 1mV
0~20 mS
± 50uS

(三)遠端監控介面設計

監控平台以 C# 進行開發,結合 Google 地球(Google Earth)可將照片、道路等圖資置於一個地球三維模型上。本平台使用者可由 KML 檔分享所處區域的地理資訊結合照片、影片、軌跡等等。監測器回傳的資料可即時定位在地圖中,並附帶所在位置的水質檢測值,所有任務資訊皆可以 KML 格式的檔案保存。使用者控制介面亦可下達控制命令要求資料,確認監測器所在位置及電量等資訊。
未命名
監控平台
未命名
結合 Google Earth 的監控平台

二、加工組裝

(一)CNC、3D Printer 數控加工

機體外型使用輕量化的碳纖維板,透過桌上型 CNC 切削而成。上板與下板間透過鋁合金管夾鎖固,主軸使用碳纖維管增加強度。
未命名
飛行器主板加工
部分有卡榫、螺紋的零件我們使用 3D Printer 加工,為確保輕量化效果,填充率僅 10%
未命名
3D 列印件加工

(二)水質感測模組

感測器主板 Linklt ONE 須做防水處理,我們將其置於防水箱中,僅外露 BNC 接頭與錶頭連接,其餘縫隙皆由橡膠條加壓填縫。
未命名
Linklt ONE 感測模組防水處理

(三)飛控設定

飛控電腦我們採用 Pixhawk ,依序安裝完馬達、接收器、數據傳輸後還要進行設定,最重要的有兩個部分,分別為加速度計較正及地磁校正。
未命名
Linklt ONE 感測模組防水處理
未命名
羅盤校準畫面

三、飛行測試

(一)飛行實測

本次專案測試內容因航程僅 1.2 km 尚在遙控器訊號可達範圍故採用第一人稱視角(First-person view,FPV)的方式進行水面降落,透過回傳畫面也能夠判斷河川與大排交會處的水色變化而進一步追蹤判斷水質狀況。
未命名
水面測試

(二)遠端回傳水質數值

感測器一接觸水面即可透過此介面遠端監控當下水質狀況,介面設計有數據圖形化檢視窗可立即判斷水質變化,實驗過程設定每15秒發報一筆數據,可即時透過介面修改回傳頻率,兩筆數據間也可透過操作人員主動要求資料。任一時間點若水質出現急遽變化系統會透過介面立即警示。
未命名
水質狀態遠端監控介面操作過程

四、紀錄與未來發展

根據環保署公告之各類水樣採樣方法(NIEA W104.51C)河川、湖泊及水庫水質採樣通則所述之採樣辦法:河川之採樣方式基本上分為涉水、艇筏或船隻作業、橋上測定等橫越河川斷面方式。施行現場採樣作業時往往會因地形複雜與易達性等問題增加作業難度,透過本研究使用之無人飛行載具,將能達到即時且多點監測採樣,人員無須親自至現場透過影像即可辨別水色,結合檢測模組所回傳之pH、水溫、電導度等數據,有效且大範圍實施檢測。
專案中使用的 Linkit ONE 開發板尤功不可沒,妥善的將 GPS、GSM 結合後的功效發揮制淋漓盡致,令數據疊合地理資訊,方便後續的 GIS 環域分析。
未命名
資料即時回傳

   多旋翼無人飛行器可自主起降並執行任務,高度機動性將能克服水質無法實時監控的困難點,對於一個大範圍開放式的水域若要能精準在汙染排放之時取得即時監測數據,並配合影像舉證甚至進行採樣,無人飛行載具將扮演非常重要的角色。使用多旋翼無人飛行器做為監測工具甚至做為機動式監測站,將能有效補足現行定點監測站及人員稽核的不足。

廢話不多說,就讓我們來看看無人飛行器水面作業的英姿吧!

水面作業影片→
Ark Lab水質監測多旋翼-水面作業測試

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


等他跑完就可囉~


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