LEGO SPIKE Prime Essential 樂高機器人,LEGO MINDSTORMS Robot Inventor, EV3 ,樂高動力機械 BricQ Motion 程小奔Codey Rocky,mBot2,CyberPi 童芯派 mBlock5 慧編程, Python 專業教學,課程設計。 Scratch, MakeBlock產品 艾多美 Atomy 生活用品 NXT 樂高機器人:創意樂趣,隨心所欲!
2011-04-14
關於NXT樂高機器人的『實驗』
看了太多的流言終結者,探奇決定也來動手試試看。
成人的大腦由於學習太多,許多事情根據『經驗』判斷,都認為是理所當然,
結果等到學員提出問題時,才發現事情不是像『憨人』所想得這麼簡單,
我常常發生這種令人出糗的狀況,所以還是不要鐵齒,動手做做看。
今天要做的實驗有兩則:
1. NXT具備藍牙通訊,每台主機NXT(Master)可以連接三台從機(Slave),那麼可以無限制地連下去嗎?
也就是NXT M----- NXT S1------NXT SS1
| |
--NXT S2 ----NXT SS2
| |
--NXT S3 ---NXT SS3
從上面來看NXT S1這台機器具備了兩種身份,NXT M的一號從機,NXT SS1的主機。
探奇做了兩個實驗,
第一個實驗是手動藍牙連線,由NXT M連線到NXT S1,再由NXT S1連線到NXT SS1,三台NXT都出現『<>』圖形,表示連線成功。
接著從NXT M傳檔案到NXT S1,結果正常。再從NXT S1傳送檔案到NXT SS1,傳輸成功,但是NXT M變成『<』圖形,表示斷線,這時NXT M無法再次傳送檔案。
第二個實驗是手動連線,同樣依序連線,這次用NXT-G程式傳送藍牙訊號,NXT M送訊號到NXT S1,NXT S1無法正常送訊號給NXT SS1。
如果由NXT S1依序送訊號給NXT M及NXT SS1,只有NXT SS1收到訊號,同時間NXT S1與NXT M的藍牙斷線。
有點複雜,不過看起來 NXT-G是無法如此連線。
或許使用藍牙命令,各台NXT發訊前主動連線,發訊後主動斷線,也許可以多台連接。再實驗看看。不過藍牙連連斷斷實在很花時間。
不知道其他程式語言LabVIEW或NXC可以成功嗎?
還請大家一起實驗討論。
2. 連接三顆馬達到NXT主機,分別是ABC。執行NXT-G程式,程式中只有一個命令方塊,MOVE Block,同時勾選ABC,Duration選擇1 Rotation(一圈),預期執行後的結果是三顆馬達同時轉動一圈,結果卻是....
BC順利地轉動一圈,並且有PID控制,在快到一圈時減低速度,停在一圈的位置。
但是A馬達只轉了大約半圈就突然停止。
我可以很肯定A馬達沒有故障,因為只勾選一顆馬達或兩顆馬達,都是正常旋轉一圈,不論是AC還是BC,或是AB,單獨A馬達,都是正常。
探奇推想是NXT-G的Bug,還需要求證。
當你需要三顆馬達同時動作,並且控制轉動角度或圈數時,需要想想其他方法解決。
今天的NXT樂高機器人實驗結束,歡迎大家一起測試討論。
訂閱:
張貼留言 (Atom)
邱老師您好,
回覆刪除謝謝你進行這個試驗,其實我就是「藍芽通訊」網路流言的禍首,正好最近在試驗藍芽模組,對它們的運作有更進一步了解。
NXT所用的藍芽模組是用 CSR 晶片,模組內部韌體只能設定 Master 或 Slave其中一種狀態,NXT-G及傳檔沒辦法兩者狀態切來切去。
對於 NXC 及 leJOS 應該可以透過程式設計技巧變換,只是這程式會非常複雜,可惜我沒有那麼多NXT可以證明。
[版主回覆04/18/2011 12:08:31]Bridan大大,您好:
你有提到這方面的流言嗎?
最近是有聽到一些同好認為NXT的藍牙功能可以無限連接,所以決定試試看,將實驗結果提出來討論。
以目前NXT-G Block只能做到由Master主動連線,掌控藍牙狀態,所以應該也可以『通訊前建立連線,通訊後主動斷線』,將藍牙空出,不過這樣就無法『即時』通訊。
至於NXC 或 leJOS程式就等待您完成後再作測試。