寒假開始了,研發養成所不例外要出題目給 NXT 玩家動腦筋,我想延續前一篇藍芽通訊 ─ 信箱法這個主題,因為 CAVE 目前有能力用 Android 控制 NXT,但是 NXT 卻是安裝 leJOS,那使用一般 NXT 的玩家該如何呢?
這次出題的目的,要讓指令型與信箱型的裝置能夠相互通訊,只要了解原理後,大家自然可以運用這樣的方式,改寫自己的程式,讓手機或電腦等非信箱型裝置,可與一般 NXT 相接控制。
題目:從指令型裝置,傳送文字、數值到一般 NXT 並顯示出來。
解決方案:
改寫指令型裝置端的程式,傳送資料格式須符合一般 NXT 藍芽資料格式,這樣就可以相互通訊。
VB 範例,請參考 http://4rdp.blogspot.com/2009/05/vb-communication-with-nxt-over.html
新ubuntu2404,新尹倉1120
-
Ubuntu24.04
每次ubuntu系統出新版本,我的更新都是滯後的。最新的ubuntu2404.iso已經超過6G,估計是因為加入了大量中文字體致使體積大增。我十多年來一直當作系統盤的4個G的U盤再也裝不下了,最終我決定把一個32G的U盤當系統安裝盤。
昨晚研究了multibootUSB好久,最終引導不...
1 天前
想請教一下,為何用Android控制NXT,需要NXT使用leJOS?
回覆刪除只要符合底層的NXT Bluetooth protocol,不論是Direct Command或Message,應該都可以完成才是?
謝謝。
邱老師您好,
回覆刪除Android 控制 NXT 是不需使用 leJOS NXT,只是 CAVE 用 Java 設計 Android 程式,使用 leJOS NXT 對他們比較方便。
因此本篇出題目的,讓大家去搞清楚 NXT 底層 Bluetooth protocol 是甚麼?
Thanks.
總算完成一個很簡單的介面可以操控nxt.
回覆刪除http://cmackimo.blogspot.com/2011/08/nxt.html
薛老師您好,
回覆刪除寫出第一個程式之後,以此為基礎,再補充設計其它功能就容易了。
Dear Bridan:
回覆刪除我現在用電腦藍芽連線-可以控制segway的前進後退-效果還不錯,我想問說VB是用byteOut取字元去控制NXT,那Android phone要怎麼去處理?不知有無文獻可參考?
薛老師您好,
回覆刪除恭喜你,VB 只適合 Windows OS 的電腦,利用 Android 控制,那需要撰寫 Java 程式,CAVE 本月底就有新書上架,可參考他們的範例
http://tw.myblog.yahoo.com/lego-caveschool/article?mid=6392&prev=6402&next=6390
Dear Bridan:
回覆刪除這兩天摸索App inventor的藍芽,總算在try error的過程找到了,現在可以從手機傳遞文字,透過mailbox的方式傳到nxt.
我已整理至部落格,Bridan有空撥冗參考
http://cmackimo.blogspot.com/2011/08/google-app-inventor-segway.html
首先,App inventor在藍芽搜尋裝置,無須指定SerialPort,當你的程式引入BluetoothClient元件後,它會自動去抓已偵測到的鄰近裝置,由使用者點選並連線。
其次,App inventor在mailbox傳遞訊息,與VB大相逕庭的是,VB是利用byteOut的陣列傳遞一串陣列值,而App inventor則利用NxtDirectCommand元件的MessageWrite方法,指定mailbox=1
以及要傳遞的message即可。
至於nxt的接收端的程式碼,似乎無須特別改變即可使用。
薛老師您好
回覆刪除Android 程式並不是 PC 程式,所以它不是以 Serial port 處理。
另外通訊採用一般 NXT 格式,所以 nxt 的接收端的程式碼,是無須特別改變即可使用。
謝謝你的分享。