2011-05-11

再談關於手機遙控NXT樂高機器人

最近非常流行智慧型手機與平板電腦,用這些行動裝置來遙控NXT樂高機器人也是非常有趣的事。

有讀友留言如何在手機撰寫程式控制NXT樂高機器人,

探奇在這裡做一個統整,把目前可能的方式列出來。


手機操控NXT樂高機器人有兩種方式:

1. 手機(JAVA程式)藍牙訊息傳送-----藍牙訊息接收(NXT主機+獨立執行程式)

2. 手機(JAVA程式)藍牙Direct Command--------(NXT主機)



第一種方式是由藍牙傳送訊息Message,所以NXT主機也要有相對應的程式等待接收藍牙訊息。可以用NXT-G, NXC, RobotC或是leJOS(NXJ),LabVIEW撰寫(能夠單獨在NXT主機執行程式的程式語言)。

第二種方式是使用樂高官方的Direct command,NXT主機上不用執行程式。

為什麼NXT主機不用執行程式,因為NXT將藍牙功能開啟後,就一直在等待接收藍牙的資訊,如果這些資訊是符合Direct Command,NXT主機就會依照命令做事。想一想為什麼在NXT-G可以透過藍牙知道NXT的電量,為什麼可以透過藍牙下載程式到NXT主機,這些都是Direct Command的功能。

上述無論是哪一種方式都是透過藍牙連線,在手機端都需要寫程式。

一般手機

支援Java VM的手機,可以用Direct command方式控制,請參考探奇舊文章:

關於使用手機遙控NXT手機控制NXT的另一種選擇

智慧型手機

可以分為iPhone, Windows Mobile, Android

iPhone控制了藍牙裝置,所以無法直接以NXT的藍牙通訊協定連接,大部分都是(透過WiFi)與PC (Mac)連線,再由PC(Mac)以藍牙送出訊號控制NXT,也就是在電腦上要有中繼程式。

(聽說有人JB後可以直接連線,還請大家提供消息)

2010/12/19 kevin提供:

官網: http://www.saygin.gen.tr


軟體名稱是LegoDrive2在Cydia Store裡




Windows Mobile有比較多的支援,也可以執行Java程式。

Android手機來說,就是寫出應用程式App,

目前也有兩種方式:

1. leJOS for Android:簡單的說,就是搭配Andoird SDK跟leJOS的 PC API,用Java語言直接寫出App。

2. 另一種就是Google App Inventor for Android(請參考探奇舊文章

或者也可以試試MINDdroid(請參考探奇舊文章Android上的NXT樂高機器人控制程式(MINDdroid更新))看看別人的程式寫法。

至於三軸移動或是左右按鈕,就是用到Andoird的感應器來控制NXT馬達,

Java設定比較麻煩,我對於Java程式不太瞭解,也沒有Android手機,建議可以到CAVE部落格詢問,或是購買相關書籍參考。

至於Symbian、 Blackberry甚至WebOS,就等待大家的開發了!

2012.4.7更新:找到2006年的http://nxt-symbian.sourceforge.net/

最後探奇還想到用WiFi直接控制(請參考探奇文章:Xander的NXT WiFi實驗),

試想一下:將NXT樂高機器人丟在麥當勞,利用WiFly在遙遠的地方(Far Far Away)遠端遙控機器人,做一些事(當然是好事,不可以做壞事!

歡迎專家達人一起討論指教。

沒有留言:

張貼留言

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