LEGO SPIKE Prime Essential 樂高機器人,LEGO MINDSTORMS Robot Inventor, EV3 ,樂高動力機械 BricQ Motion 程小奔Codey Rocky,mBot2,CyberPi 童芯派 mBlock5 慧編程, Python 專業教學,課程設計。 Scratch, MakeBlock產品 艾多美 Atomy 生活用品 NXT 樂高機器人:創意樂趣,隨心所欲!
2009-09-21
NXT與NXT之間的藍牙接收發送程式
一般人不會有兩台NXT主機,不過擁有兩台以上的NXT主機也是一件非常有趣的事。
許多玩家在學校或是樂高教室可以使用兩台NXT主機互相『通訊』。
但是傳送的訊息,不一定能夠順利接收。
建立NXT藍牙連線後,除了確認NXT主機螢幕上所顯示的<>符號,
也可以一開始使用Master NXT傳送檔案給Slave NXT,確認NXT與NXT的藍牙連線正常,
再來就是NXT-G程式,先看看發送程式:
只要確保發送對象的NXT代號(1, 2, 3)以及信箱號碼(1-10),應該可以傳遞成功。
接收程式就比較麻煩,因為不知道Master何時會傳送訊息,我們最好使用『守株待兔』的癡癡等待方法,如下圖:
程式一開始先進入一個迴圈,不斷確認信箱是否收到新的訊息,如果確認收到訊息,則跳出迴圈,處理接收到的新訊息。
有需要的同好可以試試看這個方法,善用你的NXT藍牙通訊喔!
歡迎大家一起實作討論!
訂閱:
張貼留言 (Atom)
我想請問一下
回覆刪除你有試過 利用此種方式去啟動另一台NXT的程式嘛?
不曉得這樣可不可行~
我目前只試到 可以互傳程式 但是我上述的問題就...還在頭痛中
[版主回覆09/29/2009 23:03:43]你好:
不是很瞭解你的狀況。
所謂『啟動另一台NXT的程式』是指什麼情形呢?
執行後續的程式?
結束目前程式,執行某一個特定的程式?(這點NXT-G做不到)
『可以互傳程式』是指由MASTER傳送檔案給SLAVE?(NXT機上按鍵傳送?)
歡迎詳述情況討論!
你好
回覆刪除我換個方式講好了~就是說有辦法等同於遙控器~利用Master NXT去啟動Slave NXT的程式嗎?
『可以互傳程式』 就是機上按鍵傳送經由藍芽將程式傳給另一台NXT
應該跟你說的傳送檔案是一樣的意思
然後你用超音波是否就是不用觸碰NXT主機就可以直接傳送訊息了?
可是為什麼最後還有個NXT BUTTONS?怎麼不都用超音波就好了呢?
對你這篇文章還蠻有興趣的~請多指教囉!
[版主回覆10/01/2009 19:35:21]你好:
瞭解你的意思了。你需要的是啟動Slave的一個程式。
在NXT-G是做不到的。我記得NXJ好像可以(其他語言需要再查證)。
至於為什麼要加上Wait for NXT Buttons,原因很單純。
這是一個簡單的測試程式,為了驗證傳輸的內容是否正確,我將藍牙資訊顯示出來,如果程式最後沒有延遲時間或等待命令,程式結束後,就無法在NXT主機螢幕看到顯示內容了!
也歡迎繼續討論相關問題。
邱老師您好:
回覆刪除我在做兩個nxt之間傳訊的時候,曾想過
可不可以用NXT-G寫的程式發訊
用NXC寫的程式接收
初學者請老師多多指教
謝謝!!
[版主回覆10/11/2009 18:35:30]你好:
這是很有趣的作法,理論上是可行的,因為兩者的藍牙通訊都是應用NXT韌體的mailbox system完成。
但是我剛才試了一下,卻無法成功,不論是NXT-G聯繫NXC,或是NXC聯繫NXT-G。(也就是Master及Slave角色互換)
推測也許是NXT-G(或NXC API)做了一些未知的動作,需要使用比較低階藍牙傳輸指令才能溝通。
我會去請教其他老師或是到nxtasy尋求答案。....
如果有人成功也請指導一下,謝謝!
你好 我想請問一下 為什麼我用你們的來試試看
回覆刪除卻什麼也反應 ???
[版主回覆10/17/2012 09:06:20]你好:
『用你們的來試試看』,是指NXT-G程式嗎?
『卻什麼也反應』,是指?
你必須更加詳細說明你的情形,例如你的機器設定,藍牙連線狀況,程式執行後的結果,
這樣會更容易協助你解決問題喔!
歡迎討論。
你好不好意思 方便用 對談之類的 模式 來交談 嗎
回覆刪除這樣比較可以跟你說清楚我的問題
或者就是~~
想請問一下..是說...我有兩台nxt 主機
想要以 藍芽做連線 遙控
我要做的機器人是TriBot 這台
所以我想要用 另一台nxt 主機來控制她..
只是 一直寫不好.....
想請問一下... 為什麼我兩台都有用你上面的程式
可是 還是沒有反應這樣....
也不知道到底有沒有連線到...疑惑..
不好意思 打擾了..方便的話再麻煩您 謝謝
[版主回覆10/18/2012 15:32:01]你好:
使用NXT藍牙,需要經歷下面三個步驟,
1. 選定NXT主機與從機。
2. 從主機建立藍牙連線。
3. 以程式控制NXT。
如果你不知道到底有沒有連線,請依照探奇文章建立藍牙連線
(探奇文章連結:NXT與NXT的藍牙連線方式)
再分別執行主機與從機的程式。
同時也請你再次檢查程式參數是否設定正確。
祝你成功!