cselab.png 機器人輔助程式設計教學
by 國立臺灣師範大學 資訊教育研究所 電腦科學教育實驗室

★簡介


本實驗室使用 LEGO Mindstorms RCX 主機組裝成車型機器人,主要用以輔助高中程式設計教學;讓學生從解決機器人迷宮的問題培養問題解決能力及演算法式的思考。我們使用的機器人程式語言,其語法及程式概念都相當簡單,學生只需要學習「前進」、「轉彎」、「感應器控制」的基本指令以及基礎程式語法,即能輕鬆上手。

早期研究使用 LEGO 公司所發展的 Robolab 軟體進行教學活動,最近幾年我們改採 Java 做為教學使用的程式語言;並以 Eclipse v3.1 中文化版本做為程式開發環境。為使 RCX 主機能接受 Java 程式控制,我們將 RCX 主機軔體變更為 leJOS v2.10(詳細設定方法請點選上方「RCX軟體」說明頁面)。同時使用德國 Paderborn 大學所開發之 Lego Mindstorms Simulator (LMS),使其能夠直接在電腦上模擬 LEGO 機器人的動作,我們並將其精簡與中文化,以方便教學使用。本專題最新的研究已設計一套完整合適初學者的機器人 Java 程式語言教材,適合機器人及模擬軟體使用;亦設計另一套對映傳統 Java 程式語言教學的教材,歡迎免費下載使用。   
  
  
rcx-demo.gif
  

★界面


  
rcx-brick.png

★組裝


  
rcx-sensor.png

★軟體下載與安裝步驟


STEP 1. 下載 SUN Java JDK
雙擊執行安裝。

STEP 2. 下載 leJOS v2.10 與 Eclipse v3.1 中文化版
雙擊執行解壓縮至 C:\

STEP 3. 下載 LEGO Mindstorms RCX 紅外線傳輸器驅動程式
安裝驅動程式前,不要把紅外線傳輸器接上電腦!

STEP 4. 下載 LMS 樂高模擬器
請照壓縮檔內的說明文件安裝。

STEP 5. 下載 Eclipse 與 LMS 捷徑檔
請解壓縮至 桌面。

STEP 6. 設定系統環境變數
變數名稱:PATH
變數值    :C:\Program Files\Java\jdk1.6.0_13\bin(即為 STEP 1.安裝的目錄 \ bin)

                       ▼點選「我的電腦」後按右鍵選擇「內容」,即可進入「系統內容」選項
rcx-eclipse-var.jpg


★Eclipse


本專題採用 Eclipse v3.1 中文化版,做為我們教學用的程式開發環境。因其開放原始碼的特性,以及可自由增加外掛套件 (plug-in);我們將其中文化並與機器人傳輸套件、模擬軟體傳輸套件整合在一起,大幅減低以往傳輸到機器人或模擬軟體的複雜度,讓學生更方便使用。

      ▼已整合機器人傳輸套件的 Eclipse 軟體界面,
          若要傳輸至 RCX 主機,可直接點選「下載到樂高」就可以直接傳輸。
rcx-eclipse-robot.jpg


      ▼若要傳輸到 LMS 模擬軟體,
          在左方專題上按右鍵→點選「將程式傳到『樂高模擬器』」的選項即可。
rcx-eclipse-lms.jpg


★LEGO Mindstorms Simulator (LMS)


Lego Mindstorms Simulator 為德國 Paderborn 大學資訊工程系開發的模擬軟體,此軟體針對 LEGO Mindstorms RCX 作模擬,能接受編譯過後的 Java 程式檔 (*.jar) ,能完整模擬 RCX 的運作。原本的 LMS 為英文介面且附有程式執行的許多訊息;為避免對學生造成不必要的學習負擔,我們將 LMS 介面中文化並精簡其介面。

rcx-lms-2d.jpg

rcx-lms-3d.jpg


★相關網站


leJOS 官方網頁
德國 Paderborn 大學 LMS 官方網頁
我們開發了一套教材,適用機器人及模擬軟體使用,另外也設計了跟機器人教材對應的傳統 Java 教材。在我們的教學規劃分為二階段,第一階段學生學習機器人程式設計或傳統Java程式設計,第二階段進行難度比較高一些的傳統 Java 程式設計。所有的教材都分為講義及程式範例二部份,以下是我們設計的教材。

★機器人程式設計

    講義程式範例指令表

★傳統 Java 程式設計

    講義程式範例

★機器人銜接傳統 Java 程式設計

    講義程式範例

★進階 Java 程式設計

    講義程式範例

程式範例使用方式,請將 workspace 資料夾解壓縮至 Eclipse 的安裝目錄資料夾內,取代原本 workspace 資料夾內容即可。

★簡介

  
樂高公司在 2006 年推出LEGO Mindstorms 新一代機器人,核心為 NXT。NXT在微處理器、程式傳輸方式、顯示幕、感應器與馬達都比 RCX 的功能更為提升。RCX採用紅外線傳輸,而 NXT 則用 USB 2.0 有線傳輸或藍牙無線傳輸;感應器的部分NXT 比 RCX 多了超音波感應器與聲音感應器;此外,RCX 採用直流馬達,NXT 則改用伺服馬達,使機器人的動作精確度更為提升。

我們自行開發一個Lego NXT 3D模擬軟體,此模擬軟體以Microsoft Visual Studio 2008作為程式編輯器,使用者可透過近似leJOS的指令控制機器人。   
  
  

★界面


  
nxt-brick.png

★組裝


  
nxt-sensor.png

★硬體需求:本模擬軟體需具備獨立顯示卡,以及CPU速度會影響流暢度


STEP 1. 安裝Microsoft Visual Studio 2008,可從https://www.dreamspark.com/下載
安裝路徑為預設路徑。


STEP 2. 安裝Microsoft Robotics Developer Studio 2008 R2
雙擊執行解壓縮至 C:\Microsoft Robotics Dev Studio 2008 R2

  
nxt-mvs-1.jpg

nxt-mvs-2.jpg


STEP 3. 下載並安裝NXT-MSRDS-R2.exe
安裝路徑為 C:\Microsoft Robotics Dev Studio 2008 R2。

  
nxt-msrds.jpg


STEP 4. 下載nxt-simulator.rar
解壓縮後放在 C:\Microsoft Robotics Dev Studio 2008 R2\samples

STEP 5. 把NXT_simulator資料夾中的new.xml與newMAP.xml
放在C:\Microsoft Robotics Dev Studio 2008 R2\samples\Config

STEP 6. 開啟NXT_simulator資料夾中的new.sln

STEP 7. 按下Ctrl+F5,開始執行模擬程式。



★模擬軟體指令表


模擬軟體指令

敘述

 touch_isPressed()  用來偵測是否有碰撞到障礙物
 light_readValue()  用來偵測機器人輪下物體的明亮度
 sonic_getDistance()  用來偵測機器人與障礙物的距離
 pilot_setMoveSpeed(x)  設定機器人行走速度為 x
 pilot_setRotateSpeed(x)  設定機器人旋轉速度為 x
 pilot_forward()  機器人向前走
 pilot_backward()  機器人向後走
 pilot_travel(x)  機器人行走 x 單位
 pilot_rotate(x)  機器人旋轉 x 度
 pilot_accrotate(x)  機器人準確旋轉 x 度
 Button_ESCAPE_isPressed()  用來偵測是否按下停止鍵
請點選圖片播放,謝謝。

★機器人現場教學影片展示



★模擬軟體現場教學影片展示




聯絡我們:
台北市大安區(10644)和平東路一段129號・教育大樓10樓
(02)7734-3917
tylor706@hotmail.com