LEGO MINDSTORMS樂高機器人套件簡介

46
分類 機器人

LEGO MINDSTORMS樂高機器人套件簡介
文∕趙英傑

LEGO MINDSTORMS Robotics Invention System(以下稱為樂高機器人套件),是針對12歲以上的小孩或大人,對機器人有興趣(或者啟發自動控制教育)的教育玩具。這項產品計畫始於1986,由丹麥樂高公司和美國麻省理工學院的媒體實驗室(Media Lab)進行的一項「可程式積木(Programmable Brick)」的合作案。

樂高機器人套件的核心是一個稱為RCX的可程式化積木。它具有六個輸出∕輸入埠:三個用來連接感應器的埠,另外三個用於連結馬達。樂高機器人套件最吸引人之處,就像傳統的樂高積木一樣,玩家可以自由發揮創意,拼湊各種模型,而且可以讓它真的動起來。下圖示是RCX的外觀:

RCX可程式積木

RCX分為1.0(1998年的第一代)、1.5(1999年的小改版)和2.0(從2001年至今的最後改版)等三個版本。1.0和1.5的差別在於1.0版可以外接電源供應器,連接市電(裡的插座)供電,而1.5版之後只能用電池供電。2.0的差別則是連接電腦的紅外線設備改用USB,以往則是採用串列埠,最重大的區別則是2.0版的韌體(firmware)和程式開發工具提供了一些新的功能。RCX的韌體最主要的用途是把bytecode程式轉換成處理器所能瞭解的機械碼。還好RCX的韌體就像電腦的BIOS一樣,都是可以更換的,所以不同版本之間的差異其實不大。RCX的韌體存放在SRAM(靜態可存取記憶體)中,所以實際上,RCX斷電幾秒鐘之後,韌體就消失了。電腦會在傳送程式時,一併傳送韌體給RCX。

下圖是由JP Brown所製作的,可解開魔術方塊的機器人(先說明一下,這個機器人所需要的積木零件,不是一組樂高機器人套件就能辦到,而且視覺辯識和人工智慧方面的程式,是在PC端執行的):

解魔術方塊的樂高機器人

如果用傳統的方式學習製作機器人,我們得先學習電腦基本概論,接著要瞭解電子電路、數位邏輯和微處理器,才能製作出基本的微電腦控制電路。然後還要學習組合語言(Assembly)或C語言,撰寫微處理器的程式…對了,也許最麻煩的是機械結構,我們得決定要用步進馬達還是一般的直流馬達,不同的驅動形式,信號的驅動和回饋處理方式也不一樣;而且即便是採用最單純的輪胎或履帶作為行走方式,也可能要搭配各種齒輪來調配扭力和速度。想到要學習、DIY這麼多東西,很多對自製機器人懷抱憧憬的業餘玩家,滿腔熱血到此就涼了大半截。

樂高機器人組合裡面,包含RCX、兩個馬達、兩個觸控感測器和一個紅外線感測器,各種大小的輪胎和履帶,以及數種規格的齒輪和滑輪,當然還有各種積木,幫我們解決了電子電路和機械結構的問題。剩下的「撰寫程式」部分,樂高公司(或者說MIT研究人員)也替它開發了一套視覺化程式編輯工具,叫做RCX Code。就像堆積木一樣,RCX Code的使用者只要把各種代表不同程式邏輯的「積木」在螢幕上堆起來,就能完成RCX的程式。程式撰寫完畢後,透過套件提供的紅外線裝置,即可把程式傳入RCX。真的很酷!

RCX Code程式編輯軟體

不過每個人對「酷」的定義不同。樂高提供的視覺化程式工具很適合新手或者對程式不熟悉的玩家,有些人覺得用這種介面還寫程式反而礙手礙腳。例如,使用RCX Code所「寫」出來的複雜程式,執行效率也許不佳,而且「視覺化」程式碼也可能不易讀,也不容易維護。因此,許多樂高機器人的愛好者兼程式設計高手,陸續替它開發出各種「正規」程式語言。

在這些玩家中,最著名(也許貢獻也最大)的是Kekoa Proudfoot教授,他仔細地分析了RCX的內部結構和I/O協定,並且在他的RCX Internals網站上發表了許多文件。另一個知名的玩家是David Baum,他開發了一種類似C語言的程式,稱為NQC(Not Quite C),讓程式玩家擺脫視覺開發工具的束縛。雖然NQC並不是RCX上的第一個「非官方」程式語言,但大概是最被廣泛採用的一種。NQC本身採用文字介面操作,若想要使用圖形介面式的整合開發環境(IDE),可以安裝BricxCC(Windows版)或MacNQC(Mac版),甚至NQC for WinCE(適用於PocketPC PDA)。

NCQ的GUI工具

此外,樂高的RCX Code視覺工具程式只有Windows版本,在Mac和Linux系統上只能使用非官方的程式工具。下圖是取自日本「MINDSTORMS実験室」網站的RCX內部主機板圖片,RCX的大腦是16MHz的日立(Hitachi)H8八位元處理器,外加16Kb的ROM和32Kb的RAM(其中的16Kb保留給韌體,6Kb用來儲存玩家的程式,剩餘的部分留給程式的執行過程使用)、LCD顯示器、紅外線傳輸∕接收器、揚聲器、直流馬達驅動IC…等元件所構成。

RCX主機板

並不是所有玩家僅僅喜愛或熟悉C語言,Jose Solorzano就開發了一個稱為「Lego Java作業系統」,簡稱leJOS的Java虛擬機器(Java Virtual Machine,簡稱JVM,是執行Java程式所需的軟體環境),可以讓RCX執行Java程式。Ralph Hempel開發的pbForth(programmable brick Forth,可程式積木Forth語言的簡稱),也深受某些玩家的喜愛。Forth語言的第一個實作專案是用來控制天文台的大型望遠鏡(請參閱這個網頁的介紹),它的語法和其他常見的電腦語言最大的不同,在於它採用所謂的「反相波蘭式記法(reverse Polish notation,簡稱RPN)」,例如,運算式3 * ( 4 + 7)要寫成:

以前我試著搜尋連結RCX和一般遙控模型使用的伺服馬達(Servo)的電路和程式,結果只看到pbForth有支援,也許現在情況不同了。另外還有一個由Markus Noga所開發,讓程式設計師採用C或C++語言控制RCX的韌體,稱為legOS。legOS可以讓程式設計師徹底發揮RCX硬體的效能,但是不像NQC,使用者必須熟悉C語言,而且它的開發工具安裝不易,所以使用者也比較少。

除了LEGO MINDSTORMS套件之外,樂高公司還針對教育機構發售一種稱為ROBOLAB(姑且翻譯成「機器人實驗室」)的套件,裡面包含更多感應器(例如,壓力、音量、溫度檢測),以及連結視訊攝影鏡頭(並不限於樂高自己的Vision Command產品)並提供視覺辯識功能,更特別的是,它的軟體還具備資料分析、比較和圖表繪製功能,對於教學實驗尤其重要。ROBOLOAB軟體也能透過網際網路連結到ROBOLAB Server(包含在本產品的軟體裡),把收集到的數據呈現在網頁。ROBOLAB內建的軟體有Windows和Mac版。

我認為,樂高機器人套件最大的缺點在於價格。在台灣的一般零售店和百貨公司,它的定價超過台幣一萬元(美金定價199元),而且某些配件的價格也貴得有點離譜。例如,機器人套件僅包含兩個馬達,如果要另外添購,像下圖左邊的馬達一個定價台幣一千元;相較之下,圖片右邊的Futaba S3003伺服馬達(用於一般的遙控模型)一個台幣280元,這是為何我想要找有關RCX連結伺服馬達的解決方案的原因之一,更何況,伺服馬達可以被控制其旋轉角度,樂高的馬達不行(需要額外購買感測器)。

伺服馬達

樂高公司最近推出了新一代的樂高機器人,叫做LEGO MINDSTORMS NXT,這款新樂高機器人採用了32位元微處理器、內建USB和藍芽,可以讓使用者做出透過藍芽裝置(例如PDA或手機)控制的機器人。NXT內附的程式編輯工具支援PC和Mac,為了吸引更多玩家參與擴充與改造NXT,樂高公司特別發表了開放原始碼的韌體和開發工具,就連微軟老大哥都忍不住加入機器人開發軟體的行列,推出 Microsoft Robotics Studio軟體。除了主機功能大幅增強,NXT的馬達也改採伺服控制,能讓程式精確地調整速度,而且這次附了三個馬達;感測器也變得多樣、功能更強:超音波感應器(大多用於感應障礙物),能夠辯識顏色和亮度的光線感應器…等等,不知道樂高的玩家們會用NXT帶來什麼樣的驚喜。

NXT機器人模組

LEGO MINDSTORMS樂高機器人套件簡介” 有 46 則回應:

  1. 有疑惑的學生

    請問,打開程式後adminstrator>>download fireware
    然後他一直 在com連接阜前面打X 不知道是電腦沒有韌體還是什麼意思
    該如何解決呢???如果是沒有韌體,要去哪下載呢???

  2. 韌體就包含在軟體工具裡面。此外,你使用Rs-232串列埠連接IR Tower(紅外線收發器)嗎?我的是USB版本,在使用之前,必須先安裝Mindstorms光碟中的驅動程式。

  3. 小PP

    你好:
    不知道您有沒有意思寫一本Lego Mindstorms Nxt 與VB2005程式開發

    相關的書呢..???

  4. hi milk:

    樂高機器人(LEGO MINDSTORMS NXT)在網路商店或者樂高玩具專櫃都買得到 :-)

    jeffrey

  5. 大陆学生

    知道NXT的最新版本号么,还是和06年发布时是一个版本

  6. 問題學生

    之前買時是rcx1.0版本
    他是用紅外線傳輸
    傳輸線是用RS232
    現在的筆電都沒有這種接頭了
    我去買了一個轉接器轉USB
    裝上去沒驅動程式不能動
    哪裡可以找到這驅動程式
    拜託!!

  7. 你好,

    照理說,你只要安裝USB轉RS-232的轉接器,並安裝轉接器的驅動程式,電腦系統裡面就會出現一個序列埠,並讓RCX的紅外線收發器連結。你指的「沒有驅動程式」是USB轉接器嗎?

    have fun!
    jeffrey

  8. 問題學生

    照道理講因該裝上轉接器就可以運作
    但就是不會動
    在裝置管理原理就是打個問號
    為安裝驅動程式
    轉接器買回來裡面並沒有驅動程式
    這驅動程式要哪裡下載
    已經一個頭兩個大了= =
    怎麼找就是沒有

  9. OK,這麼說來,問題就不在RCX紅外線設備身上了。問問商家或者找那個裝置的製造商的網站看看吧!

    good luck!
    jeffrey

  10. 西西

    實驗室的RCX1.0版的安裝軟體不見了,請問哪裡可以下載嗎?
    另外NXT版的安裝程式可以操控RCX嗎?
    謝謝:)

  11. 如果Lego官網沒有提供的話,那恐怕就得問Google了。
    NTX版的軟體應該無法操控RCX,畢竟兩者的硬體架構差異頗大,而且站在廠商的立場,他們應該會比較鼓勵消費者購買新版本。現在Lego Mindstorms官方網站已經看不到RCX的產品資訊了。

    春假愉快!
    jeffrey

  12. Powderon

    請問Cubie”蔣”(日文^^), 市面上比較接近LEGO這種機器人模擬軟體, 簡易的,
    市面上有哪些這樣的軟體可以用來先模擬虛擬的機器人過乾癮? Adobe Autocad可以嗎? 或是…? 拍寫, 因為很有興趣想買Lego Mindstorm,可是又想到應該可以先玩玩軟體試寫/試學程式, 所以冒昧的這樣問^^”! 感謝您! 機器人萬歲!!

  13. 接近LEGO機器人的模擬軟體…可以看看這個(我沒用過):
    http://www.robotsimulator.nl/index-eng.html

    如果你對Roomba吸塵器機器人有興趣的話,也可以看看這個模擬軟體(Roomba有一個串列埠,可以外加控制介面):
    http://www.cogmation.com/robotSim.php

    另外,AutoCAD是AutoDesk公司的產品,不是Adobe出的。

    或者,玩玩這個免費的RobotBASIC程式(跟LEGO機器人無關,但是可以體驗寫程式控制機器人的感覺):

    http://www.robotbasic.org/

    這裡有一段RobotBASIC操作示範影片:

    http://www.youtube.com/watch?v=27Gt3IgdcMc

    have fun!
    jeffrey

  14. Powderon

    天啊…我念外文的… 看到R.Basic影片後, 發現寫程式真的是好深奧..[ 枯燥乏味的幾個希臘楔型文字英文字但卻能產生未來感的機器人]… >

  15. Powderon

    :lol: 呵呵, 受教受教… 真希望我也能趕快有寫出好玩的東西出來 ^^!! 感恩

    PS. 跟cubie說一下^^”! 上一篇的回應, 可能我用了太多表情符號, 造成回應不完整^^XD”!

  16. hannah

    你好,我的问题跟问题学生类似,我用的也是RCX1.0,但是附带光盘只支持Win95、98.我的是vista。我安好了usb to RS232的驱动,但是光盘里的IR tower的驱动怎么办?

  17. hannah

    我的IR tower 用的是serial,我在用NQC做测试时,绿灯亮了,但是cygwin上面显示can’t download firmware一类的。原因是我没有安装光盘里的IR驱动吗?
    问题二:我在vista上安装brickOS已经5次了。怎么也安不成功。有高手在vista上安装过legOS吗?望指教!我的QQ是123365756. email:lianhainan1123@hotmail.com

  18. hannah

    没想到回复得这么快!太感谢了~只是这个驱动能代替光盘里的那个吗?我现在用的是usb to serial 转换线。另外上面在vista下面安装cygwin 再安装legos的问题还望解答!如果是因为vista,我可以重装个XP系统。我在按照http://brickos.sourceforge.net/docs/INSTALL-cygwin.html上面的指示安装时,到了./configure时cygwin不停显示
    find:一些路径: permission denied
    这些持续了1小时了。请问是让他执行完呢?还是ctrl+C跳出?

  19. Huang

    請問所謂”Robotics Invention System 2″ 是指NXT 還是一樣是RCX?

  20. Lisa

    您好,

    上星期剛買了NXT 9797+9648
    測試發現充電鋰電池故障(只亮綠燈 紅燈不亮) 必須送修
    想請問 有建議的電池替代方案嗎
    小朋友用一般電池6顆run, 很快電池就不夠力了

    謝謝您

  21. 如果妳指的「一般電池」是碳鋅電池,那麼,改用鎳氫充電電池會改善很多,一來是鎳氫電池的安培數(電量)比較高,而且鎳氫電池的工作效率也比較好,其次是充電電池容易取得,價格也合理。

    只是一般的充電器一次只能充電四顆電池,稍微麻煩些。以上意見提供妳參考。

  22. Jason

    Lisa,
    你说的问题我也遇到过。你把插头不要完全插入,留五分之一再试一下。

  23. Siuwan

    請問在”可解開魔術方塊的機器人”一圖中見到的攝像鏡頭可於哪裡購買得到??

  24. 那個攝影鏡頭本質上是一般的webcam,和Lego的Vision Command軟體搭配使用,只能連接電腦,似乎已經停售,可能要找找二手的。

    • 售價要問Google,有預算的話,建議直接買NXT版。

  25. 有問題的people says

    已有NXT版!謝謝,想請教一下還有沒有會解魔術方塊的機械人?有的話一套定價多少呢? :D

    • 應該沒有現成的解魔術方塊的機器人,那是用不同樂高積木套件拼湊而成的。

      have fun!
      jeffrey

  26. Joan

    請問一般教小六生的會參考抹軟體比較恰當呢? 謝謝!

    • hi joan:

      如果你指的是樂高機器人的控制軟體,用樂高積木提供的那一套即可,坊間的機器人教育機構也是用那個軟體來教學。

      thanks,
      jeffrey

  27. KenYang

    想請問,如果想在機器人上面裝上一般的webcam,
    是否需要轉接線呢?

    • LEGO以前有推出一款Vision Command kit,裡面包含一組USB介面的WebCam,不過那是用來連接PC而非MindStorms機器人。我不確定新款的機器人是否有視訊套件可用。

      have fun,
      jeffrey

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">