SPIKE 樂高機器人

我的網頁

2011-06-08

大推!Enchanting 0.0.7發佈了!

恭喜!恭喜!天大的好消息!Enchnating 0.0.7版發佈了!

(請參考探奇舊文章的介紹:讚!Scratch控制LEGO MINDSTORM NXT樂高機器人



終於可以完全無痛,應用Scratch撰寫NXT樂高機器人的控制程式。

測試結果:USB傳輸 OK!藍牙傳輸也OK!

下載Enchanting後直接安裝,(有Windows版本跟Mac OS版本)

安裝程式還會自動選擇正體中文!

安裝後就直接執行Enchanting。(如上圖,也是自動設定成中文版,但是相關指令還是英文版,作者有提到可以支援多國語言版本,探奇打算加入測試協助團隊開發。)

Enchanting的本質就是以Scratch撰寫程式,編譯成Java程式,在NXT主機的leJOS上執行。

所以第一件工作就是更新NXT主機的韌體,搭配leJOS 0.9.0的發行,當然要使用最新的leJOS Firmware。

在這裡直接以USB線連接NXT主機跟電腦,按下下圖的Flash Firmware,完全自動更新。



接著在『動作』目錄,按下『Configure Motors』設定馬達的連接模式。(也可以選擇RCX的9V馬達)




輸出設定OK後,接著在『偵測』目錄,按下『Configure Sensors』,設定輸入端的感應器,

不僅支援光感、聲音、觸碰、超音波,連8547的彩色感應器(可能只有光源模式),還有HT跟MS的電子羅盤,HT的Gyro都有支援。



NXT主機的按鍵(橘色enter, 左移鍵,右移鍵,EXIT鍵)都能偵測是否壓下,但是沒有『釋放Released』或『壓放Bumped』選項。

還有NXT主機的電量也讀得到喔!

(為什麼左移鍵跟右移鍵是中文呢?)



這麼棒的工具,當然要趕快寫個簡單的程式測試看看。

程式最後面使用『全部停止』,當NXT主機結束程式後,會自動跳回leJOS的選單畫面。




寫好程式,按電腦畫面右上角的藍色箭頭,程式就會經由USB或藍牙傳送到NXT主機。

也可以按綠色旗子,上傳程式後自動執行,但是如果是製作有輪子的機器人,要特別注意連接著NXT主機的USB線。


下圖是傳輸程式中的畫面,會經過Compiling,Linking,Reconnecting(使用藍牙才有),Uploading等步驟上傳到NXT主機。藍牙的傳輸會稍微久一點,要有一些耐心。




在我的測試程式中,超音波感應器及B馬達都能正常操作,NXT主機彈奏音符及外觀顯示的Print功能也都正常可用。Print指令只能列印文數字,而且是從NXT主機螢幕最下面一行開始列印。

最重要的還可以透過遠端遙控方式,跟其他的Scratch程式互動(同一台電腦或網路上的另一台電腦。)

請參考Clinton的示範影片。







無論如何,可以使用Scratch撰寫獨立程式在NXT主機的leJOS執行,已經算是很高明的設計。

現在我也可以大聲說,我可以寫出Java程式!(用Enchanting的Export Code功能





4 則留言:

  1. 邱老師您好,您在文章中有提到一段話:除了超音波感應器及B馬達外,要NXT主機彈奏音符及外觀顯示的Print功能都正常可用。

    這句話我不大瞭解您的說明,「除了超音波及B馬達外」,這是指超音波與B 馬達在這不能正常作用嗎?
    煩請您說明了!謝謝!
    [版主回覆06/09/2011 09:13:03]你好:

    不好意思,因為急著發文,部分段落語意不清,還請包涵。

    在我的測試程式中,我用到了超音波感應器及B馬達,還有NXT主機的音符及顯示Print,總共四種功能,都能夠正常作動。

    我已經修改文章內容,請再幫忙看看有沒有錯誤。

    很感謝你的回覆。

    回覆刪除
  2. dotes197311:34 下午

    請問我在flash firmware,出現下列訊息
    No response from the Back End.
    usb線我有插好,我也試著update logo nxt 的firmware到1.29成功
    xp下也是,mac下也是同樣的狀況。問題是出在那裡呢?

    [版主回覆06/09/2011 09:38:28]你好:

    我在更新韌體時沒有遇到任何錯誤訊息,所以不瞭解這個錯誤訊息的真正意義。

    Back End指的是在後台與NXT聯繫的程式,有可能是等待回覆時間過久。

    請問出現這個訊息時,NXT主機的狀況為何?開機?還是等待更新韌體的SAMBA mode(沒有螢幕顯示,只有搭搭聲)

    你能更新韌體到1.29版,表示你的USB線,NXT主機,Fantom Driver應該都是正常的。

    或許可以這樣試試:

    1. 更新Fantom Driver

    2. 重新安裝Enchanting

    祝你成功!歡迎持續討論。


    回覆刪除
  3. 老師您修改後,語意是好了點,不過個人建議您可以稍微調整成這樣:在我的測試程式中所使用的超音波感應器、B馬達,以及NXT主機彈奏音符和外觀顯示的Print功能都可正常可用。

    一樓的網友的問題,建議您把操作流程,包括nxt更新過程中的狀態(是否開機、電腦端的環境變數是否安裝完成),
    都花點時間詳細描述,大家一起幫你想辦法,瞭解你的問題點在哪邊!

    另外,我是 DIVE 的作者,過些日子我看看時間夠不夠,我也來寫一篇 Enchanting 的安裝說明和使用教學文件好了,再請邱老師您不吝指教!謝謝!
    [版主回覆06/09/2011 12:33:58]謝謝你的建議。

    我也一再修改文章,不過越改越糟,

    總之,藉由你的回覆,我想大部分讀者應該可以瞭解我文章中的意思。

    我很喜歡Enchanting的安裝,雖然用到leJOS,但是不用設定一大堆電腦環境變數,

    我會在另外一台乾淨的電腦中安裝Enchanting,試試看沒有安裝過leJOS的電腦,是否能夠正常使用Enchanting。

    很期待你的說明使用文件。謝謝!

    回覆刪除
  4. dotes197310:08 下午

    我更新了Fantom Driver (目前是1.13版),再試了Enchanting,
    就flash firmware成功了。
    可能是因為我是用最老的NXT-G 1.0,driver太舊所造成的,
    因為昨天的狀況就好像是程式找不到NXT主機,
    謝謝老師的幫忙。
    [版主回覆06/10/2011 21:38:37]恭喜你『刷機』成功!

    也謝謝你進行測試,讓我們瞭解到Enchanting需要搭配新版的Fantom Driver。


    在這裡我也要再次呼籲大家要更新NXT主機最新版的Firmware(1.31), 也別忘了使用新版的Fantom Driver(1.13)。

    回覆刪除

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