2014論壇/樂高機器人的應用

出自均優學習論壇共筆
跳至導覽 跳至搜尋

前言

目前全球機器人的發展趨勢,已由工業應用轉到服務型及娛樂型機器人。愈來愈多的機器人設計需求源自於教育、民生工程、娛樂、保全及家庭看護等。 樂高機器人是LEGO MINDTROMS公司所生產的教育性機器人套件,藉由各種樂高零件以及簡單的圖形化程式介面,可以很快地做出各種簡易機器人或是自動化系統。 從1999年第一代RCX至 2006年第二代NXT機器人,到現在樂高公司已發展出EV3機器人,提供了一般家庭及玩家更多的歡樂及有趣的機器人專題探討。 以下我將針對EV3機器人的系統及操作向大家做一個簡單的介紹 ;

樂高機器人常用感測器(Sensor)的功能

  1. 觸碰感測器(Touch Sensor) - (如附圖)
    • 用來偵測機器人有無碰撞到障礙物。
  2. 顏色感測器(Color Sensor) - (如附圖)
    • 可以感應黑、藍、綠、黃、紅、白、棕色與無感測到顏色共八種狀態、分別由0到7等數字所代表。感測距離為15~50 mm,太近或太遠則無法正確感測顏色顏色感測器也可當作光感測器使用,回傳0~100的整數值代表前方環境或物體的亮度。
  3. 超音波感測器(Ultrasonic Sensor) - (如附圖)
    • 藉由發射超音波後,接收到物體所反射音波之時間差來測量距離,左方 眼鏡為發射,右方則是接收。測量距離範圍為3~250 cm,感應角度為20度。
  4. 陀螺儀感測器(Gyro Sensor) - (如附圖)
    • 可用來量測機器人的傾斜程度,當機器人傾倒時,陀螺儀感測器會偵測傾倒的度數,我們可藉此讓機器人維持平衡。

說明樂高機器人電腦程式的基本設計

  1. 程式撰寫 -
    • 選擇File>>New Project>>Program,點選Open後即可進入程式撰寫畫面撰寫程式時,先要從程式指令區將指令拖放到程式撰寫區中,透過資料流的概念來撰寫程式。 (如附圖)
  2. EV3程式指令共分為六大類,可利用這些指令來設計機器人程式 -
    • 動作(Action) ; 動作(Action)指令與輸出裝置有關,包含馬達,聲音,螢幕與按下等指令。
      • 中大型馬達(Medium/Large Motor) - 此指令用來控制中/大型馬達啟動或停止,並設定要轉幾秒、轉幾圈、轉幾度、以及透過電力控制其轉速,也可設定馬達停止方式為煞車或緩停。(如附圖)
      • 方向盤式移動(Move Steering) - 此指令可以控制兩馬達同時間轉動,並設定舵向(Steering)從-100到100,讓機器人可以走曲線或者是原地左廻轉,右廻轉等路徑。(如附圖)
      • 坦克式移動(Move Tank) - 此指令用來同時控制兩個大型馬達,以設定兩顆馬達的電力值,根據兩輪速差來決定機器人的動作,電力值的範圍從-100至100代表反轉到正轉。 (如附圖)
      • 顯示(Display) - 此指令可以在EV3主機的螢幕上顯示文字或圖樣,可以在圖像編輯器(Image Editor)自行設計各種圖案。(如附圖)
      • 音效(Sound) – 此指令可讓EV3主機內建的喇叭發出各種音效。可以在音效編輯器(Sound Editor)中來編輯您喜歡的音效。(如附圖)
      • 狀態燈號(Brick Status Light) - 此指令可讓EV3主機的按鈕周圍發出紅色,橘色或綠色的光,您可將其用來表明機器人的狀態,例如撞到牆壁會亮紅燈等。(如附圖)
    • 流程(Flow)指令區 ;在流程指令區內的各種指令負責整體程式執行的方式,包含了開始、等待、廻圈、廻圈暫停和分岔結構。
      • 開始(Start)指令 - 在新建一個程式時,程式撰寫區就會直接新增一個開始指令,它代表一串程式的起始點。如果所新增的其它指令没有與開始指令相連接,那麼該指令便無法執行。另外,一個程式中也可以同時間具備多個開始指令。此程式執行時,這些由不同開始指令領頭的指令串會同步開始,這就是多工(Multi-tasking)的概念。 (如附圖)
      • 等候(Wait)指令 - 等候指令可以讓您的程式去等候某個條件是否發生,您的機器人會持續等待某個條件發生,這些條件可以是秒數或者是感測器讀到的某個數值等,若没有完成我們所設定的等待條件,程式將不會執行下一個指令。(如附圖)
      • 廻圈(Loop) - 廻圈可以根據某個狀況來重複執行廻圈內容。使用方法是先新增一個廻圈,再把重複執行的指令拉到廻圈裡面,並設定停止條件,如:持續執行,重複指定次數或感測器數值比較結果等等。(如附圖)
      • 分岔結構(Switch) - 結構是根據某個狀況是否成立,來決定執行兩個狀況的其中一個。狀況是否成立只有兩個狀況在某個時間點只會執行一個。使用時,我們可以將兩段不同的指令拉入分岔結構內的上面或下面方框,並透過前方的判斷條件來決定要執行哪一串指令,判斷條件可以是感測器數值比較結果,EV3主機按鈕有無按下或是否收到相關訊息等等。(如附圖)
      • 廻圈中斷(Loop Interrupt)指令 - 此指令被觸發時會讓廻圈停止,廻圈內的指令將不會繼續執行。我們可以透過廻圈中斷指令右上角的數字來決定要停止哪一個廻圈,也可以將其放在廻圈的內部或另一串程式中。
  3. 感測器(Sensor)指令區 ;一個機器人除了能夠自主移動外,還要能夠根據外在環境的變化而做出不同的反應。EV3程式將感測器指令整理在同一區塊中。裡面包含了11種不同的感測器指令,由左至右分別為:
        • EV3主機按鈕
        • 顏色感應器
        • 陀螺儀感測器
        • 紅外線感測器
        • 馬達角度感測器
        • 溫度感測器
        • 時間計時
        • 觸碰感測器
        • 超音波感測器
        • 數值量測(電壓,電流)
        • NXT聲音感測器。
  4. 資料操作(Data Operations)指令區 ;這些指令可對資料進行各種運算,包含了變數、常數、陣列、數值運算、邏輯運算、文字及亂數指令等等。
    • 進階(Advanced)指令區 ;包含檔案存取、資料擷取、發送信件、藍牙連線、保持主機開機、感測器原始值、無管控馬達運轉、馬達反轉以及停止程式等指令。這些比較進階指令一般比較不會用到它們。

說明馬達功能

馬達是機器人主要的輸出動力來源,EV3機器人使用互動式伺服馬達(Interactive Servo Motor),套件中有大型和中型兩種馬達。除了內建角度感測器之外,EV3的馬達也支援最新的自動識別功能,只要接上EV3主機就能自動判斷馬達的種類與使用的連接埠。 大型馬達規格 ; 轉速 - 160至170RPM 無負載扭矩 – 0.21 N*m 卡住時扭矩 – 0.42 N*m 重量 – 76公克 自動識別 – 支援

中型馬達規格; 轉速 - 240至250RPM 無負載扭矩 – 0.08 N*m 卡住時扭矩 – 0.12 N*m 重量 – 36公克 自動識別 – 支援

調整馬達力道(實際操作)

下載並運行指令(實際操作)

嘗試不同角度與擺放位置的差別(實際操作)

六年制學程樂高社團上課情況(DV展示)