樂高機器人

樂高機器人

教育玩具
Lego Mindstorms(樂高機器人)是集合了可編程主機、電動馬達、傳感器、Lego Technic部分(齒輪、輪軸、橫梁、插銷)的統稱。Mindstorms起源于益智玩具中可編程傳感器模具(programmable sensor blocks)。第一個Lego Mindstorms的零售版本在1998年上市,當時叫做Robotics Invention System (RIS)。最近的版本是2013年上市的Lego Mindstorms EV3。許多語言都對Mindstorms進行編程,Computer Clubhouses是專注于Mindstorms編程的網站。LEGO MINDSTORMS Robotics Invention System(以下稱為樂高機器人套件),是針對12歲以上的小孩或大人,對機器人有興趣(或者啟發自動控制教育)的教育玩具。這項産品計劃始于1986,由丹麥樂高公司和美國麻省理工學院的媒體實驗室(Media Lab)進行的一項「可編程式積木(Programmable Brick)」的合作案。
  • 中文名:樂高機器人
  • 外文名:Lego Mindstorms
  • 别名:樂高頭腦風暴
  • 原産地 : 丹麥-比隆
  • 上    市 : 1998年
  • 代表機型 : NXT,EV3

資料

樂高機器人套件的核心是一個稱為RCX或NXT或EV3的可程序化積木。RCX具有六個輸出輸入口:三個用來連接感應器等輸入設備,另外三個用于連結馬達等輸出設備,NXT比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。

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

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

不過每個人對「酷」的定義不同。樂高提供的視覺化程序工具很适合新手或者對程序不熟悉的玩家,有些人覺得用這種接口還寫程序反而礙手礙腳。例如,使用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(适用于PocketPCPDA)。

此外,樂高的RCX Code視覺工具程序隻有Windows版本,在Mac和Linux系統上隻能使用非官方的程序工具。并不是所有玩家僅僅喜愛或熟悉C語言,Jose Solorzano就開發了一個稱為「Lego Java作業系統」,簡稱leJOS的Java虛拟機(JavaVirtual Machine,簡稱JVM,是執行Java程序所需的軟體環境),可以讓RCX執行Java程序。Ralph Hempel開發的pbForth(programmablebrick Forth,可程序積木Forth語言的簡稱),也深受某些玩家的喜愛。Forth語言的第一個實作專案是用來控制天文台的大型望遠鏡(請參閱這個網頁的介紹),它的語法和其他常見的電腦語言最大的不同,在于它采用所謂的「反相波蘭式記法(reverse Polishnotation,簡稱RPN)」,例如,運算式3 * ( 4 + 7)要寫成:3 4 7 + * 另外還有一個由Markus Noga所開發,讓程序設計師采用C或C++語言控制RCX的固件,稱為legOS。legOS可以讓程序設計師徹底發揮RCX硬體的效能,但是不像NQC,使用者必須熟悉C語言,而且它的開發工具安裝不易,所以使用者也比較少。

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

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

編程

Lego Mindstorms(樂高機器人)編程Lego磚塊、電動馬達、傳感器、Lego Technic部分(齒輪、輪軸、橫梁)的統稱。 許多語言都能對Mindstorms進行編程,包括Logo、Basic、Java的衍生版、Smalltalk和C語言。

《樂高機器人設計技巧:動力結構設計與搭建實例指導》人民郵電出版社,作者碼高機器人教育。

相關詞條

相關搜索

其它詞條