2009-04-07

透過網路遠端控制NXT

最近許多人都在討論如何透過藍牙讀取NXT上面加速度感應器的值,並且儲存到電腦裡面。

是因為北韓要發射大浦洞2號的原因嗎?難道這是重要的資訊嗎?!那麼我們就要好好討論一下!

回到正題,要在電腦PC端讀取NXT感應器的數值,應該只有兩種方式,

1. 直接由PC端寫程式控制NXT,也就是Direct Control方式。

2. PC端的程式與NXT程式進行通訊連結溝通,讓NXT傳送資料,由PC接收儲存運用。

比較方便的方法應該是第一種,有興趣請參考Team Hassenplug的比較表,下方有NXT Off-Brick controllers (Remote Controls),有的可以直接執行,不用另寫程式,有些則需要自行撰寫程式。

可以選擇控制種類為User Program running on PC的程式語言,例如leJOS,LabVIEW,Ruby, Python,C#,VB,應該還有C++。


剛好今天The NXT STEP發表一篇新文章:

Communicate with the NXT over a network using the standard BT protocol

討論如何透過網路直接控制NXT,作者Anders Søborg本來就在他的網頁提供免費的C++函式庫,

最近又新增網路功能,還有示範程式。大家可以試試看!

主要說明在這個網頁連結C++函式庫連結在這裡

如果不想寫程式,也已經有現成的執行程式可以下載,網路與藍牙控制程式在這個網頁連結

探奇想到以前可以透過網路控制網路攝影機的鏡頭方向,自己可以操控攝影鏡頭觀看的範圍;在NASA計畫裡也可以透過網路遠端遙控火星機器人,自己遙控火星機器人挖土,真是有趣的體驗。

現在也可以輕易地透過網路,開放大家遙控我家的NXT機器人。搭配網路攝影機,開放大家遠端競賽,一定很有趣喔!

不知道誰要先示範一下呢?


2 則留言:

  1. http://tzechienchu.typepad.com/tc_chus_point/2008/09/alpha-beta-fi-1.html
    用C# + Bluetooth
    C# Compiler 可以找Microsoft Developer Express
    問題是每次NXT只能發出去56Byte的樣子

    [版主回覆04/08/2009 11:07:27]謝謝朱先生留言告知!C#好像也是MSRDS其中的選項。

    還等您研究之後分享給大家學習!

    NXT透過藍牙傳送訊息是不是有封包大小的限制,還有傳送時間間隔的問題,所以才會限制大小。

    藍牙通訊真難懂!

    回覆刪除
  2. 焦糖寶寶11:52 下午

    老師您好:
    請問LEJOS JAVA裡的加速規函數如何下呢?
    有LEJOS的函式庫分享嗎?
    還有為什麼開了藍芽NXT卻連不上電腦阿@@?
    [版主回覆04/09/2009 10:41:58]你好:

    不知道你有沒有在機器人學苑討論區發文提問?

    先再次聲明一下,我不會JAVA!這是很遺憾的事,我會找時間好好努力!

    不論你使用的是leJOS或是icommand,都有詳細的範例說明喔!請仔細閱讀參考!

    開了藍牙連不上的狀況很多種,我沒有辦法一一查明,猜測可能狀況如下:

    1. 電腦的藍牙傳輸器品牌種類

    2. 藍牙傳輸器的驅動程式

    3. 藍牙塞車

    4. 藍牙傳輸環境不良

    5. 如果是使用leJOS或icommand,請確認你的設定正確。

    6. NXT的藍牙出問題

    7. 電池沒電,不夠力.....

    8. 靈異現象.....

    也請參考探奇舊文章,關於『藍牙』或『藍芽』的說明。

    回覆刪除

探奇歡迎大家留言討論!謝謝分享你的意見。