這是我在Yahoo知識回答的內容,貼在這裡跟大家分享經驗。
想使用LabVIEW toolkit for LEGO MINDSTORMS NXT的同好,
您可以參考這個PDF檔案,非常詳細告訴你進行的步驟。
LabVIEW_Toolkit_for_LMS_NXT_Getting_Started_Guide.pdf
或是到NI網頁看看其他說明檔案
http://zone.ni.com/devzone/cda/tut/p/id/4435
大概的流程就是:
1. 安裝LabVIEW (現在是8.5版,我是30天試用)
2. 安裝Toolkit
3. 安裝Toolkit 1.0.1 patch
4. 執行MASS Compiling
5. 開啟LabVIEW,建立新的VI檔案
6. 使用NXT Toolkit functions palette的指令
7. 寫完程式儲存
8. 開啟ToolsNXT Module-->NXT Terminal
使用藍芽就選擇Find NXT....然後scan, connect
9. 按下Debug
10.對著聲音感應器喊一喊,你可以在LabVIEW的front panel看到聲音感應器的值透過連線,不斷顯示畫出圖形。
更多的範例程式就在LabVIEW\examples\NXTToolkit
分為Direct Commands及NXT Programs
想使用藍牙連線還是需要先確認藍牙連接器的驅動程式。
可以參考探奇部落格的舊文章:NXT的藍牙功能
也附上在LabVIEW尋找NXT的圖片,希望對大家有幫助。
下圖是使用Tools--> NXT Module--> NXT Termial....
其實下載程式時,LabVIEW就會自動搜尋NXT,不用擔心。
我選擇Scan,沒有使用USB接線,所以主動用藍牙搜尋。
找到之後,點選NXT的名字,再按下Connect
介面跟NXT-G很像,(應該是說NXT--G的NXT Winodws跟LabVIEW的NXT Terminal很像!)
不好意思~麻煩了
回覆刪除請問
第9. 按下Debug
是在哪裡按呢??
找到nxt之後,點選NXT的名字,再按下Connect
這是將程式下載到nxt裡還是只是讓他能夠使用這個程式呢??
在第一章圖nxt<NO Target>中,有個→符號
這是讓他把程式下載到nxt裡的 嗎?
[版主回覆09/23/2008 22:49:07]歡迎討論!
請你使用Tools»NXT Module»NXT Terminal
在這個視窗中有一顆按鈕就是DEBUG
至於你提到的->符號,可能是沒用的,因為這個程式是下載到NXT執行,我們並不是使用ROBOLAB,LabVIEW需要指定下載程式給哪一台機器,所以還是需要使用NXT Terminal
祝你成功!別忘了參考說明PDF喔!
請問
回覆刪除我有按了debug那個按紐了
可是為什麼會沒有反應呢(我是用usb去連的)??還是nxt本身也要按什麼嗎?
您可以參考這個PDF檔案,非常詳細告訴你進行的步驟。
ftp://ftp.ni.com/evaluation/mindstorms/LabVIEW_Toolkit_for_ LMS_NXT_Getting_Star ted_Guide.pdf
這個檔案不能下載了,請問還有其他的載點嗎
[版主回覆09/24/2008 22:38:21]謝謝您的提醒,我已經將PDF檔連結修正了!
我也是使用USB連結。寫這篇文章時,執行的還蠻順利的。
但是剛才我再試了一次,按下Debug鍵時,卻出現
Error 1003 occurred at Invoke Node in NXTToolkit.CompileOrCancel.vi->NXTToolkit.TargetAgent.vi
不知道你是否也是出現這個錯誤訊息?
(『沒有反應』的狀況有千百種喔!)
如果是的話,問題可能是出在Patch的安裝。
請於解壓縮patch之後,打開nxt_toolkit_1_0_1_patch->LabVIEW 8.5 -> vi.lib -> addons ->NXTToolkit
直接將三個子目錄:gcompiler,menus,shared 複製到你的LabVIEW目錄中
(可能是C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\addons\NXTToolkit)
然後重新執行Mass Compile。
按下DEBUG,應該就可以下載執行。
祝你成功!
謝謝
回覆刪除我測試後是發現有些範例會沒反應(沒反應的不會跳出任何訊息),有些可以(我是用7.1版的)
麻煩一下
請問你的\examples\NXTToolkit\NXT Programs裡面
Basic Chart這個範例執行後是什麼反應呢?
[版主回覆09/26/2008 08:48:41]LabVIEW原本就是為了監控儀器所設計,主要可以分為兩個視窗:Front及Block Diagram
Block Diagram 執行程式運作,Front顯示一些數據圖表及控制選項。
Basic Chart.vi 的功能就是把NXT光源感應器所得到的數值,顯示在Front 視窗。
執行程式時我們需要按下『Debug』,保持NXT與 LabVIEW的聯繫,讓NXT得到的光源感應器數值回傳到PC,請打開LabVIEW的Front視窗,讓NXT的光源感應器感應不同顏色的物體,就可以看到數值變動的狀況。
謝謝
回覆刪除可是我用這個範例,還是看不到數值變動的狀況...這是為什麼呢??(確定有保持連線)
請問那使用這個不用去指定光源感應器使用那一個port嗎
[版主回覆09/28/2008 23:47:00]您的數值沒有變動,那麼請問數值是多少?0 還是其他值?
建議您可以將螢幕擷取,這樣比較容易診斷狀況,特別是我沒有辦法知道你的設備情形,也不在現場。
所以請你務必將問題敘述清楚,(還真希望有線上診斷功能)
光源感應器的預設輸入端是3 號,當然你也可以另外設定其他輸入埠。
另外你可嘗試自行判別錯誤狀況,您會操作LabVIEW,那麼以下這些簡單的錯誤判別對你來說應該不是難事。
我想請你先確認設定:
1. 電線連接到三號輸入端嗎?電線確實連接到光源感應器嗎?(就算沒接好,數值的確不會有變動,顯示為零)
2. 使用NXT內建的『VIEW』功能,確認光源感應器的功能。
3. 當按下DEBUG鍵,編譯,下載程式後,NXT有嗶一聲嗎?
4. 確認NXT是在RUNNING的狀態嗎?
5. 確認光源感應器有發出紅光嗎?
6. 你說你曾經試過其他VI程式,可以正常執行,所以LabVIEW(PC端)應該是正常的。
(也有可能你的EXAMPLE程式因為硬碟錯誤讀取,造成LabVIEW遇到這個vi程式就會編譯錯誤,需要重新安裝LabVIEW)
7. 最後只能猜測NXT韌體有問題,請重新更新NXT韌體,重新開機執行。(甚至取出電池,安裝全新有電的電池)
8. 我的專家診斷模式到此結束。我想還是親臨現場診斷比較容易知道問題在哪。或是直接換一台全新NXT。
歡迎討論,請一次詳述所有症狀,謝謝!
謝謝
回覆刪除我連接後畫面不會動,都沒顯示任何東西
這是我的畫面
http://rapidshare.com/files/149395210/a.JPG.html
麻煩了.
1.確定電線有連接到光源感應器,因為剛開機時會閃一下
2. 我有使用NXT內建的『VIEW』功能,確定光源感應器有功能
3.當按下DEBUG鍵,NXT沒有嗶一聲,請問這要怎麼處理呢??(請問按下DEBUG鍵後,他是會自動去下載程式嗎?那nxt上會顯示什麼?因為我看他是沒反應)
4.執行後不會發出紅光
5.NXT韌體方面我有按nxt本身背面那個按鈕重新了,因該是沒問題 ,還是說只能labview重灌了??
[版主回覆09/30/2008 12:01:10]你好:
你已經做了一些測試,你的NXT應該沒有問題。
從圖片看來,你的NXT連結PC也沒問題。(NXT Terminal視窗上方出現"NXT",你的NXT主機名稱)
按下DEBUG鍵之後,NXT Terminal視窗的Status會依序出現Intializing,Compiling,Downloading,Downloaded,Running
NXT主機在下載完畢後會嗶兩聲,LCD會顯示Basic Chart Running,這時接在三號的光源感應器燈光會亮起來。
同時FRONT視窗會開始出現一條白線(因為光源值沒有變動)。
再請你確認以下幾點:
1. NXT Terminal的Status,是否出現前述五種狀態,如果答案是否定的,觀察最後的狀態為何?
2. NXT主機是否有RUNNING,確認NXT裡面有沒有BASIC CHART程式?可以使用NXT橘色按鍵單獨執行BASIC CHART程式嗎?
3. 如果NXT沒有RUNNING,那麼NXT Terminal的Status是出現Program DONE還是Idle或Aborted?
我猜可能是LabVIEW沒有編譯成功,所以沒有下載到NXT,當然也就沒有執行。
感謝探奇自然科學教室的幫忙~現在問題已經解決了~~
回覆刪除再請問一個問題 ~
如果是使用NXT program去做人工智慧fuzzy函數的話,請問這樣是可行的嗎?
例如:馬達的速度一改變那麼nxt行走的距離就會跟著改變~(把這個運算式寫進去 )
[版主回覆10/05/2008 21:19:38]很高興知道你已經解決問題,能否分享一下問題的原因及解決方法呢?
至於人工智慧的部分,當然可以寫入程式之中。
(探奇曾經介紹使用LeJOS進行類神經網路的研究)
您可以把FUZZY與NXT控制分為兩部分看待,只要你把人工智慧的運算部分寫入程式,就可以直接控制機器人的行為。
我不是很瞭解你的例子所需要的運算式,(連意思也不太瞭解)
不過就像使用PID控制機器人維持平衡,PID控制部分也是直接寫入NXT程式中。
當然人工智慧有許多種類及理論,有些需要專門程式語言比較容易完成,但是還是可以使用各種程式語言完成數學運算式。
祝你成功!
請問一下
回覆刪除使用這種方式連線是一定要先載入後才能測試嗎??
還是能夠不用載入而讓他直接測試or執行
因為我現在所做的程式大有297k,等載入的時間大約要2個半小時
是否有其他方法能更快速的去測試or執行,而不用等這麼久呢??謝謝
[版主回覆12/12/2008 22:32:49]你好:
我所知道LabVIEW toolkit控制NXT的方法只有兩種,Direct command and program control
所謂的載入指的是將程式下載到NXT執行嗎?
vi 檔案297K?還是編譯之後的rex檔大小297K
應該不會是後者,因為NXT剩餘的記憶體只有100多K
編譯時間比較久還是傳輸檔案比較久?
如果藍牙通訊有問題,不如試試USB直接連接。
你的狀況還需要釐清,我沒有這樣的經驗,無論如何,兩個半小時,『太超過了!』
NI的東西不會如此吧!LabVIEW還是NXT的問題呢?
你可以問問NI,比較容易找到答案!
歡迎討論,也請你詳述狀況,謝謝!
謝謝
回覆刪除我是用NXT Programs方式去寫的
載入是指將程式下載到NXT執行
是在Compiling的時候等很久
而我是用usb去連接的~
我在測試時,如果檔案是70k~80k左右會等快半小時
完整的載入是297k,那次我從3點半載入,可是他在6點左右才完成
所以想請問一下是否有其他方式不用載入,能像用Direct command的方式去測試???
[版主回覆12/13/2008 00:28:21]所以的確是編譯程式的問題。
不用下載程式的方法,建議你直接使用Direct controlf方式控制NXT,
LabVIEW toolkit也有Direct command。
至於使用Direct command會不會出現其他執行狀況的問題,就還要請你試試看。
請問一下
回覆刪除I32-32-BIT整數跟
U32-未定義32-BIT整數
這兩者的差別在哪呢?
我在用NXT測試時,會出現錯誤,說要用I32的才行,可是我改成I32後,還是會出現,這是為什麼呢?
我是把一個X的值,經過運算後,直接把X的值傳入NXT的馬達,讓馬達速度能跟著X值改變~這是我要做的
[版主回覆12/20/2008 16:57:26]你可以使用LabVIEW的Help(視窗右上方的問號)
I32是指32bit的長整數,儲存範圍是-2147483648~+2147483648
U32是指32bit的Unsigned長整數,也就是沒有正負值,範圍是0~4294927695
這樣應該很清楚吧?
至於馬達的POWER值只要是整數即可,應該也可以有正負符號才是。
至於你的狀況,還是需要知道你的程式寫法,否則沒有人可以知道確實情形。
歡迎你提供Vi檔案,大家比較容易討論。
猜測應該是你的『運算』出了問題,通常是計算時沒有統一的格式或適當的TYPE轉換,所以產生問題。
建議你先將馬達程式改為單純的送入整數值給馬達運轉,隔離複雜的運算,確認你的『運算』結果是正常的數值。
祝你成功!
還是老話一句,提出任何問題,請詳述你的所有狀況,否則無法完全回答,
我沒有靈通,無法知道你的任何狀況!
就憑你簡單幾句話的敘述,也很難界定問題。
(除非我是你的指導教授,非常清楚你的所有計畫,否則請給我『完整』的簡報,謝謝!)
也非常好奇你目前的學習狀況,高中?大學?碩博士?歡迎你來信自我介紹,我很樂意與你討論你的專題,加油!
請問 根據這篇文章的步驟
回覆刪除我先不做步驟6與7, 只是開啟一個空白的VI,這樣的話我進步驟8,FIND NXT這裡點選SCAN,搜尋的到NXT嗎? 我自己試過是沒搜尋到,我在想是不是因為我NXT灌的是JAVA介面而不是MINDSTORM,莫非是介面有差?
[版主回覆07/20/2009 17:54:18]你好:
做不做步驟六與步驟七並不會影響NXT的連結。
我沒有試過使用LabVIEW尋找leJOS。
你既然已經有了結論,最好的方式就是請你換回NXT原來的Firmware,重新尋找看看。如果成功就表示介面有差異。
祝你成功!
請問一下,我現在使用LABVIEW8.5,NXT跟PC端藍芽連線可以變成信任關係嗎??
回覆刪除因為我希望NXT跟電腦的藍芽連線是我可以隨時控制的,不需要時就不連線,
目前遇到的情況就是藍芽連線時都需要確認。
[版主回覆08/25/2009 20:28:45]你好:
『確認』是指輸入密碼key嗎?
在NXT Termial 需要重新Scan,如果是曾經有連線過,應該不用再輸入密碼,除非你將windows的藍牙裝置刪除。
我試過將NXT關機,也把我的筆電藍牙裝置關掉,再重新開啟藍牙,將NXT開機。
執行LabVIEW的Simple motor control.vi,可以直接控制不需要輸入密碼。
再到NXT termial,Find NXT,LabVIEW並沒有像NXT-G一樣記住曾經連線的NXT主機名稱,所以只好重新SCAN,再Connect。也是不用輸入密碼。
請你先確認windows的Bluetooth裝置,是否有記住曾經連線過的裝置名稱。
祝你成功!
您好,請問labview 8.5試用版在哪裡下載呢?謝謝。
回覆刪除[版主回覆09/26/2009 16:09:24]你好:
在NI官網可以下載試用版,不過已經更新為LabVIEW 2009
您好,我也是用LabVIEW 8.5試用版,NXT外盒是寫9797。我有下載toolkit 2.0( for Windows),請問還要安裝Toolkit 1.0.1 patch嗎?看您的流程有提到。因為我弄了顯示light sensor的intensity值:http://www.wretch.cc/album/show.php?i=zflllwq&b=1&f=1691608990&p=29,可是執行時light sensor只亮了一下即滅,nxt螢幕顯示file error……
回覆刪除[版主回覆10/24/2009 15:24:39]你好:
建議請先確認你的light sensor可以正常工作,例如使用View...
外盒與NXT主機無關,重點是NXT主機裡面,
NXT的韌體是哪一種版本?建議更新為1.26以上
安裝Toolkit 2.0 就不用再安裝patch了(patch是針對Toolkit 1.0版)
會顯示file error可能是rex無法執行,(韌體版本不同)
或是NXT本身的檔案系統出問題,請重新安裝韌體試試看。
你也可以單獨下載後,從NXT執行這個程式。
祝你成功!
謝謝您,我更新韌體到1.26後就解決了。我想再請教一下,就是您畫面的NXT Terminal下面選項是New NXT BlockWizard..,但我的卻是Update NXT Firmware(也是8.5試用版),請問怎麼有此差異呢?還有您說的可能「rex」無法執行,請問rex是指什麼呢?
回覆刪除[版主回覆10/24/2009 23:23:41]你好:
恭喜你成功解決問題。
我沒有用過Toolkit 2.0,這篇文章是以toolkit 1.0+patch 1.0.1完成,這可能是畫面不同的原因。
rex是打字錯誤,應該是rxe檔案,也就是編譯過的NXT執行檔。
您好:
回覆刪除我想請教一下,我目前是用Labview7.1版寫程式,但是要Compiling到NXT時,要花很久的時間,我Labview程式大概30k~40k,載入NXT大約要20分鐘,載入之後程式大小約6k,請問為什麼程式要Compiling這麼久,有什麼地方出問題嗎?NXT的容量只有120k左右,那如果我之後程式比較複雜龐大,因為容量問題不能Compiling到NXT裡,要怎麼辦?有其他的方式可以解決嗎?
[版主回覆12/11/2009 09:46:38]你好:
根據我的經驗是請你安裝Toolkits後要執行一次Mass Compling。
如果你沒有先做過 Mass Compling,在編譯你的程式時就必須花費很多時間。
你可以先試試看重新安裝toolkit。
關於NXT容量的問題有幾種解決方式:
1. 盡量把NXT主機不要的東西刪掉。(例如圖片,聲音,Try me等等)
2. 換一種韌體,例如leJOS,RobotC
(他們的VM都寫得比較精緻,更能發揮ARM的功能)
3. 換一種語言,例如NXC,nxtOSEK
(NI的圖控不錯,但是編譯就有差異)
4. 使用Direct Control模式,PC的記憶體,理論上,恩!無限!
其實最重要的還是你自己的程式設計,你需要什麼功能,為何需要如此大的記憶體,程式大?還是聲音圖片大?
這些都可以再想一想喔!
祝你順利成功!
謝謝您,問題已經解決了。我想再請問一下:
回覆刪除機器人從A位置走到B位置之後,要讓他直接回到A位置,那我要怎麼去做?
我現在是用labview7.1,但是現在有出labview2009用2009版的開發是不是會比較好?
[版主回覆12/16/2009 23:01:42]你好:
恭喜你已經解決問題,還請你分享是解決的方法,可以讓後來的同好增加經驗喔!
關於你的新問題:A到B再回到A
怎麼做?當然是『記住』阿!不論是記住A的位置,或是A到B的移動距離方位,或是使用GPS定位,還是輪胎軌跡。
還有拍下沿途風景照片作比對,預先製作地圖........阿!有太多太多作法了!
(或是讓機器人沿途做暗號,好像是古老的迷宮故事)
假設你自己從A到B,想要回到A,你怎麼做呢?
我的想法是先『直覺地』找到解決方法,再發展最佳化。
另外關於LabVIEW....恩!比較複雜,因為牽涉到經費。
如果你有很多資源,那麼何樂而不為!!反正新的應該比較好。(不然出新的做什麼呢?當然要有進步)
如果從效果考慮,我是不知道NXT Toolkit與NXT Module確實的差異啦!(還是要問NI的高手)
不過就NXT Toolkit已經進步到2.0來看,應該不用更改LabVIEW的版本,
以NXT主機考量:反正操作NXT也就是使用那幾種命令,如果NXT的韌體不改,你也無法發揮ARM的強大功能。再者NXT還是只有256KB阿!不會因為你用了新版LabVIEW就會將程式碼編譯得很小很小。
以LabVIEW模組考量:如果你的專題有用到一些神奇的LabVIEW模組,那麼就要看看是否需要2009的配合,或許某些模組不支援7.1版(或是NI已經不支援了!)
或許LVEE也是另一種考慮!(不知道是不是只有控制NXT的基本模組, 支援Vernier及Tetrix)
(以上胡謅了一堆,還是問問你老師的意見比較實在!)
謝謝您。我重灌工具箱之後先執行Mass Compling,這樣在 Compling的時候,速度就會快很多了。請問一下,我有看到NXTCam v2的文章,我現在有一個,可是我不知道怎麼使用,也找不到中文說明書,請問要怎麼使用NXTCam v2。 1. 要怎麼先連接到電腦,讓電腦可以看到攝影機照到的畫面?有說明書嗎? 2. 之後要下載哪一種工具箱?因為我有下載labview7.1的工具箱,可是卻不知道怎麼使用?(目前使用labview7.1)。如果有資料可以分享給我嗎?謝謝您!
回覆刪除[版主回覆12/18/2009 22:44:05]你好:
謝謝你,果然又是缺少MASS Compiling的問題。
關於NXTCam,你應該直接到mindsensors.com直接下載個種說明書及驅動程式,當然還有VI範例,包含LVEE 2009版的範例,當然你只要使用(7.1/8.x)版的VI。
連接電腦看影像就是需要NXTcamView軟體:http://nxtcamview.sourceforge.net/
至於中文說明,恩!好像還沒有人翻譯。你可以到機器人王國的google協作平台看看。
祝你成功!
(台南的林老師有借我一顆NXTCam,但是到現在還沒時間研究,真是辜負他的好意,我努力看看!)
你也可以參考CH Lego大大的部落格NXTCam相關文章。
謝謝您!請問一下,我將NXTcamView軟體灌入之後,本來可以利用攝影機擷取到畫面,可是電腦過兩天之後,要開這個程式,卻無法開啟,他會出現 : "NXTCamView 發生問題,必須關閉,謹此致歉。",結果就不能開啟,我將NXTcamView軟體移除,再重灌也沒辦法開啟,後來傳輸線的驅動程式移除,再重新灌也會有問題,他會出現 : "需要FTDI USB Drivers Disk的檔案 'ftser2k.sys'。",請問電腦怎麼會突然不能開啟NXTcamView軟體,是電腦有設定到甚麼東西嗎?
回覆刪除[版主回覆12/22/2009 22:30:33]你好:
我沒有這方面的經驗,不知道你的作業系統為何,需要依照安裝方法安裝USB Driver。
由於NXTCam使用FTDI 的USB chip,所以需要安裝他的驅動程式,或需可以試著重新安裝看看。
(不知道下載新版的FTDI USB驅動程式可以用嗎?http://www.ftdichip.com/Drivers/VCP.htm)
你指的『傳輸線的驅動程式』是否就是USB Driver呢?
這兩天之中,你有安裝USB相關的驅動程式嗎?
請再試看看!
祝你成功!
機器人從A位置走到B位置之後,要讓他直接回到A位置,那我要怎麼去做?
回覆刪除---------------------------------------------------------------
我分享一下我的方法,NXT Motor裡面有角度感應器與相關Function來取得資料,因此從A到B馬達會紀錄轉了幾度(如720度),原地迴轉180度後從B到A就是反向走幾度(如720度).......這樣NXT從A到B 就可以直接從B再回到A
[版主回覆12/22/2009 17:07:25]謝謝你的分享,
記錄角度感應器的值可以知道馬達轉動的狀況,的確很有用喔!
謝謝您的解答,後來找不到問題,我把電腦重灌之後,問題就解決了。感謝rik_9608大大的經驗分享。
回覆刪除我有NXTCam v2攝影機,可是上mindsensors的網站,抓下labview7.1的工具箱,可是卻不知道怎麼
加到labview中,我將他的工具箱複製到labview的user.lib裡,在開啟labview可以看到NXTCam的工具箱,可是
要把元件拉出來程式的視窗時,他會出現要我開檔案的視窗。請問我要怎麼把NXTCam v2的工具箱放到labview
中?
我有Catcan的SS14串列馬達,可是只有抓到NXT-G的工具箱,請問一下哪邊可以抓到labview的工具箱?有人使用過嗎?
[版主回覆12/23/2009 17:15:48]你好:
我沒有LabVIEW ,所以也無法幫你測試。
你指的工具箱是mindsensors-library嗎?
我也不清楚如何安裝,一般來說是放在user.lib沒錯。不過我不瞭解他的Readme檔案敘述。
至於Catcan馬達,你可以直接詢問原廠,茂綸應該很樂意回答你的問題。我沒有用過他們的產品。
或許你可以到阿吉老師的CAVE部落格留言詢問,他們是專家喔!http://tw.myblog.yahoo.com/lego-caveschool/