2015年10月7日 星期三

[EV3]利用LabVIEW for MINDSTORMS模組操控以及監控

    LabVIEW現今已成為許多程式的主流,許多監控以及機器的操作都漸漸的被LabVIEW取代,源自於他的便利性以及使用介面,利用了LabVIEW for MINDSTORMS Module模組可以利用LabVIEW程式控制機器人主機,LabVIEW可以讓控制更多元更不受拘束,也可以隨時監控每一個輸出與輸入端



Labview操作介面

        下方圖是一個簡易型維持前方固定距離的程式,最外圍是while迴圈地控制,放置超音波感測器設定Port的位置,利用LabVIEW可以使用Waveform Chart監控即時數值,並且可以手動調整想要設定的前方固定距離,並且搭配馬達的設定與控制,再加上停止按鍵,就可以完成簡單的基本控制
        使用LabVIEW最大的優點就是可以利用Chart監控每一個傳輸的數值是否正確,並且可以有彈性地控制參數,不像一般程式如果要改變參數必須要將程式取出並且修改,在LabVIEW介面上可以直接調整

 LabVIEW Front Panel


 LabVIEW Block Diagram

        LabVIEW可以將感測器讀取到的值即時作處理以及運算,在機器人主機無法做過於複雜或龐大的運算功能,並且將每一個資料點儲存起來,可以在做後處理以及運用,利用LabVIEW本身許多的函式可以將程式簡化,不須為了運算而寫複雜的程式,機器人主機本身記憶體容量也不大,能儲存的空間有限,運用LabVIEW可以解決此問題

 LabVIEW即時運算


 LabVIEW將資料放進陣列並儲存

2015年8月6日 星期四

[EV3]WIFI無線網路連接-威力加強版

    在樂高機器人上一代NXT中並沒有支援無線網路功能,在EV3主機上有外接USB連接埠,與電腦連接傳輸程式除了可直接藉由Micro USB連線,也可接上無線網卡,目前樂高官方只支援Net Gear WNA1100 dongle此型號的無線網卡,由於體積過於龐大、成本高與購買不易等因素,固小的則是採用EDIMAX EW-7811Un高效能隱形無線網路卡,由於是採用非官方無線網卡,所以必須使用特殊EV3主機韌體


EV3主機連接USB連接埠接上無線網卡


    一開始先切換EV3主機到『主機設定』分頁,選擇Wi-Fi選項,打開Wi-Fi功能,為了省電,EV3主機開機後Wi-Fi都是預設關閉狀態,打開Wi-Fi後,Wi-Fi選項的方框會呈現打勾狀,螢幕左上角會出現無線電波圖示,選擇你的無線AP,會出現加密選擇,這裡要注意的是只適用WPA2。螢幕左上角的雙向箭頭符號出現代表連線成功


EV3主機設定選擇Wi-Fi介面


左上角標示為EV3開啟Wi-Fi並連通

    利用機器人主機結合微型無線網卡讓機器人具有Wi-Fi連接的功能,可以利用電腦遠端及時遠端操縱與監控。



電腦與主機結合無線網卡


 無線連接傳輸示意圖


    要讓機器人利用Wi-Fi連上電腦,必須先讓電腦自行建立Wi-Fi無線模擬基地台,電腦不一定要連接上網路,只是利用無線網卡的功能建立一個虛擬網路並連結,建立模擬基地台如Wi-Fi連線中有各種設定,要與機器人主機連結頻道要設定為1(2412MHz),網路驗證方式為WPA2-PSK,資料加密AES



無線模擬基地台介面


無線模擬基地台設定


目前可遠端控制EV3機器人主機的程式有兩種,一種為LEGO自己開發的MINDSTORMS另一個為LabVIEW擴充模組,經實驗證實沒有屏蔽的開放空間最遠可達20坪,連線傳輸沒有延遲,只要成功連結上就幾乎完全不會斷線


LabVIEW連結介面



MINDSTORMS連接介面

    由於Wi-Fi模組屬於高耗電機器人主機維持連接大約只可以維持兩個半小時的電力,也需要注意微型無線網卡散熱差,容易過熱,不建議使用連續使用超過三小時以上,以及微型無線網卡穿透力較不足,電腦與主機之間盡可能不要有阻擋物。








2015年8月4日 星期二

[EV3]NXTCamView

    藉由NXTCamView軟體可直接將NXTCam連接到電腦,設定影像追蹤功能

        Colormap為透過拍攝影像,儲存要匹配的顏色值,該數值為RGB三原色控制,此數值可以直接儲存在NXTCam裡,這些色值稱為Colormap,最多可儲存8Colormap,並且搭配對應的影像處理功能。NXTCam被傳輸一個預設的Colormap值去追蹤光源,下載測試或寫入測試程式追蹤光源。


NXTCam View介面


操作步驟如下:
1.下載並安裝在PC上啟動NXTCamView
2.確認USB端和NXTCam端已安裝專屬NXTCamView的驅動程式
3.確認NXTCam插入電腦的USB
4.NXTCamView透過工具設置通信狀態,通常只要設置COMPort
5.點選連線連接NXTCam
6.拍攝影像,檢查對焦和光源是否達想要的狀態。
7.在影像上點選顏色點進行追蹤,顏色為紅、綠、藍每個最大到最小值的範圍。
8.上傳色彩範圍設定到NXTCam


NXTCam View Port設定



NXTCam Baud rate設定


藉由目標物RGB特徵顏色的分量,可以精準的追蹤目標,相較以往利用二值化去進行閥值的調整精準,也較不受外界光源的影響,在介面中可以點選擷取畫面直接找到該點RGB,利用該點的RGB值進行一個前後範圍的擴張,直到RGB值大致的抓取目標物本身


擷取目標物RGB



擴大RGB抓取範圍


    經由影像處理後,會直接把目標物轉為一個矩形,並且指出該矩形左上角的座標,也直接標示出矩形長與寬還有面積,利用面積大小可以在程式理判斷目標物距離的遠近,也可以在硬體裡直接儲存多個顏色分量值,並且在畫面顯示出來


影像處理後畫面


紀錄其他顏色追蹤





2015年7月30日 星期四

[EV3]NXTCam-v4簡介

    NXTCam是一個即時的影像處理模組,具有內建處理器,並符合NXT標準輸入埠通訊協定的視覺模組。這個介面提供了NXTCam所見高階的、已處理的影像資料。此處理過的資料包含影像中物件的座標,在循線追蹤模式,它的資料包含了線段的座標圖、物件顏色、物件的數量、座標與線段的區塊座標系統


NXTCam並非送出原始影像到NXT,以USB線連接NXTCam電腦,可透過NXTCamView軟體檢視所見的圖像,透過USB埠傳輸給電腦的解析度可達176*144像素顏色影像。


NXTCam模組規格表
最大消耗電力
42mA at 4.7V
像素
88*144pixel
取樣速率
30fps
調整焦距
追蹤物件
最多可八個物件(須由使用者定義八個不同的顏色)


I2C使用的腳位為:SDA(1)GND(2)SCL(3)+5V(4)列出了暫存器位置與設置的指令。
 NXTCam模組I2C功能指令表
Commands
Action
ASCII
Hex
A
0x41
Sort tracked objects by size
B
0x42
Select Object tracking mode
C
0x43
Write to image sensor Registers
Use CAUTION when using command C since this can stop NXTCam from working properly. In case this happens, please power off your NXTCam and power it on again.
D
0x44
Disable Tracking
E
0x45
Enable Tracking
G
0x47
Get the Color map from NXTCam Engine
H
0x48
Read data from the image sensor Registers
I
0x49
Illumination on (Future)
L
0x4C
Select Line tracking mode
N
0x4E
Set ADPA mode ON (setting stored in NVRAM)
O
0x4F
Set ADPA mode Off (default) (setting stored in
NVRAM)
P
0x50
Ping NXTCam Engine
R
0x52
Reset NXTCam Engine
S
0x53
Send the color map to NXTCam Engine
T
0x54
Illumination Off
U
0x55
Sort tracked objects by color
V
0x56
Get NXTCam Engine firmware version No, Read resulting string at 0x42 (12 bytes).
X
0x58
Do not Sort tracked objects
J
0x4A
Lock tracking buffer
Tracking is going on continuously, and while you read buffer may be updated by the tracking engine.  You can issue this command to Lock the buffer updates. After issuing this command allow 25 milliseconds for any updates in progress to finish. Then read the tracking information.
K
0x4B
Unlock tracking buffer.
If you had locked the buffer before reading, ensure to unlock it after you are done reading.




NXTCam模組I2C暫存器位置表
Register
Read
Write
Comments
0x00-0x07
Software version (Vn.nn)
-

0x08-0x0f
Vendor Id mndsnsrs
-

0x10-0x17
Device ID NXTCam
-





0x41
-
Command
This register is command register.  A
command written here will be executed.
0x42
Number of objects detected
-
Shows how many objects are being tracked. Zero indicates that there are no objects being tracked.
0x43
1st object color
-
This is the first object color as per the sorting method selected.
0x441
1st object - X upper left

Upper left X coordinate of first object
0x45
1st object - Y upper left

Upper left Y coordinate of first object
0x46
1st object - X lower right

Lower right X coordinate of first object
0x472
1st object - Y lower right

Lower right Y coordinate of first object
0x48
2nd object color


0x49-0x4C
2nd object co-ordinates


0x4D
3rd object color


0x4E-0x51
3rd object co-ordinates


0x52
4th object color


0x53-0x56
4th object co-ordinates


0x57
5th object color


0x58-0x5B
5th object co-ordinates


0x5C
6th object color


0x5D-0x60
6th object co-ordinates




    焦距部分,NXTCam鏡頭設置2~4英尺之間為最佳的焦距,此鏡頭可自由旋轉,本身較緊防止意外地轉動與焦點晃動,輕輕地轉動支架鏡頭即可,不可太過用力,否則可能損壞鏡頭。
        內建自動暫停,一旦跟蹤模式開始,程式內讀取NXTCam的對象9秒內必須有動作,如果9秒內沒有動作,跟蹤模式會自動停止。
        NXTCam被設計在正常白光的環境下操作,影像擷取偏向紅色,很有可能外界光源與紅光有關,可以試著調整紅光讓影像處理更加精準,進一步的操作可以透過I2C暫存器來改變顏色增益、亮度和NXTCam的對比度。
        NXTCam的像素是88X144 NXTCam有兩種模式─物件追蹤模式(Object tracking mode)與循線模式(Line following mode)。使用物件追蹤模式時,NXTCam會將物體看作一個大方塊,並傳回方塊左上角與右下角的xy座標,我們只要經由簡單的換算便可以得知物體概略位置,而NXTCam最多可以同時追蹤八個不同的物體。在使用循線模式時,NXTCam會將物體切割成好幾個線段,並傳回每個線段兩個端點的xy座標