Introduction: YwRobot Sensor Module Robot

兩年前為了教學的需要,設計了Sumo Car。不過礙於當時軟硬體的環境,在導入中小學過程,一直有難度。後續,經過奕學李俊青老師的努力與推廣,利用 Transformer 進行 Scratch 2.0 的學習,讓機器人與編程應用更加簡易。

YwRobot Sensor Module Robot 就是基於這樣的基礎,利用宇宙機器人公司所開發的 Scratch 與 Arduino 轉譯程式 Transformer ,搭配由天津創客空間 YwRobot 所推出的各式常用感測器模組,組裝而成的編程(程式設計)學習用輪型機器人。

YwRobot Sensor Module Robot 輪型機器人,是由一片 Arduino UNO 主控板及數個不同的 Arduino 感測器模組(Sensor) 所組合,相關的部件內容如下:

電子元件:

  1. Arduino UNO 主控板
  2. LED (D13);
  3. L293D (D4、D5、D6、D7;直流馬達驅動模組);
  4. RGB LED (D9、D10、D11);
  5. DHT11 Sensor (D8;溫溼度感測器);
  6. IR Receiver (D2;紅外接收器);
  7. Rotation Sensor (A3;可變電阻;Variable resistance);
  8. Buzzer (D14、A0;無源蜂鳴器);
  9. Line Sensor (A1、A2;紅外線循線模組);
  10. Button Switch (D3;按鈕開關);
  11. Ultr Sensor (D12、D13;超音波感測器);
  12. I2C 1602LCD (A4、A5)。

非電子元件:

  1. N20直流馬達;
  2. 鋼珠萬向輪;
  3. D字口 43*3 車輪;
  4. N20智能車底盤;
  5. 40 Pin 20CM 彩虹杜邦排線,10CM 彩虹杜邦排線;
  6. 尼龍柱、3mm螺絲、3mm螺母;
  7. DC線公頭、電池盒。

說明:

為了推廣程式教育,宇宙機器人 Kodorobot 無償提供社群免費版軟體服務,歡迎大家多加贊助;關於硬體設備,您可以網路店家或各家代理商洽詢相同功能的感測器模組,於台灣的朋友也歡迎洽詢宇宙機器人 Kodorobot 陳奕學

Step 1: 課程前言:

在進入 YwRobot Sensor Module Robot 課程之前,提醒您對於 Arduino、Scratch 、基本電腦設定需要有基礎的認識,才會對您的學習有所幫助。本課程可以與【用YwRobot EMS V1學Scratch2.0】及【用S4A Sensor Board玩Scratch 2.0】課程搭配學習;【用YwRobot EMS V1學Scratch2.0】是 Transformer 針對 YwRobot Easy Module Shield V1 設計的專項應用,對於初階入門 S4A 的使用者提供了編輯與擴充程式積木建置的最佳化,非常適合作為本課程的先導體驗課程。

對於課程中需要設定的電腦知識、Arduino 、Scratch 與 Transformer 應用,本課程將不再提供教學說明,請讀者參考 【用YwRobot EMS V1學Scratch2.0】中的教學;本課程的內容將區分兩個區塊,第一階段是 【基礎篇 :YwRobot Sensor 應用】,第二階段是 【機器人篇:Transormer 光碟車】。

組裝:

  1. YwRobot Sensor Module Robot的組裝相對容易,主要分成底盤下層與上層 Sensor 兩部份,組裝程序把握由下而上的概念,依循即可。
  2. 關於上層感測器模組的組裝,依照類比與數位腳位分類為主,這樣有助於排線的修整與感測器的觀察與應用。

本課程的進行需要下載Scratch 2.0 離線版( https://scratch.mit.edu/scratch2download/ )做為程式編輯平台,鑑於課程進度,本課程不另外進行Scratch安裝教學,有需要相關教學的朋友,請自行搜尋參考。同時,您於上課之前,還必須下載 Transformaer 轉譯程式,作為 Scratch 程式與 Arduino 控制板的轉譯程式。

注意:

下載 Scratch 離線版安裝檔後,依指示安裝即可,過程中會要求安裝〔Adobe AIR〕,請按【確定】即可安裝完成。

Step 2: 基礎篇 :YwRobot Sensor 應用

YwRobot Sensor Module Robot 設計的主要目的,正是希望學生學會 Arduino 感測器的應用,所以這個機器人課程所選擇的感測器都是常見、常用的基礎感測器作為入門的學習,課程的學習內涵為程式編輯的基本觀念與應用,包含有變數、判斷式、運算式...等編程基礎概念。

配合本課程的主控板 Keyes Funduino UNO,我們將進行包含LED;RGB LED;DHT11 Sensor (溫溼度感測器); IR Receiver (紅外接收器); Rotation Sensor (可變電阻;Variable resistance); Buzzer (無源蜂鳴器); Line Sensor (紅外線巡跡模組); Button Switvh (按鈕開關); I2C 1602LCD 等10種Sensor的入門控制。

在第一階段的課程中,課程將利用 Kodorobot Transformer 提供的 Scratch 擴充積木功能,進行Arduino 感測器模組的學習。為了能銜接後續 Blockly 課程,這個階段的所有課程內容,都將以 Transformer S2A Plus 做為學習主軸,請依照圖二的 1~5 標示,打開 Scratch 2.0,連接成功後,會看見程式積木區的【更多積木(More Blocks)】會亮起綠燈,表示硬體連結成功(如圖三)。

Step 3: 點亮LED

在主控板 Funduino UNO 上,有一個 LED 燈,固定腳位為 D13。

在這一個 Section,我們將在課程中建立迴圈的概念;讓學生發現程式碼的差異,學習在不同的程式碼中,加入與不加入迴圈時,程式執行的結果有甚麼不同,觀察LED燈執行程式的結果。

Step 01:請學生利用程式積木,點亮LED燈。(範例:YwRobot_Sensor_LED.sb2)

  1. 因為利用S2A程式,所以在執行LED燈亮前,必須啟動LED燈的腳位 D13。
  2. 程式執行LED燈亮,必須在LED燈的腳位D13,提供高電位,所以我們選用程式【數位輸出:設定腳位 「D13」為「1」】的積木塊。
  3. 程式執行:設定腳位 「D13」為「1」高電位,點亮 D13 LED燈,燈亮3秒(等待 3 秒),關閉 LED 燈。

Step 02:請學生在Step 01的程式積木中,加入控制指令積木塊。(範例:YwRobot_Sensor_LED01.sb2)

  1. 因為利用S2A程式,所以在執行LED燈亮前,必須啟動LED燈的腳位 D13。
  2. 程式執行LED燈亮,必須在LED燈的腳位D13,提供高電位,所以我們選用程式【數位輸出:設定腳位 「D13」為「1」】的積木塊。
  3. 加入控制指令「循環無限次」的迴圈積木塊,在循環無限次迴圈積木塊中,堆疊下列第四步驟的積木塊。
  4. 程式執行:設定腳位 「D13」為「1」高電位,點亮 D13 LED燈,燈亮3秒(等待 3 秒),關閉 LED 燈。

說明:

觀察 Step 01、Step 02的範例檔,Step 01的程式,只會讓LED燈亮一次;在 Step 02 的程式中,加入循環無限次迴圈積木塊,LED燈會不斷閃爍。

Worksheet:

  1. 練習 Step 02 的範例,將循環無限次迴圈更換為有次數限制的迴圈。
  2. 範例:設定 D13 LED燈閃爍三次。(範例:YwRobot_Sensor_LED02.sb2)

Step 4: 變數(Variables)

所謂「變數(Variables)」,可以用於表示或定義一段文字、數字、陣列、函式、物件...等內容,又可稱之為「變量」。在這個 Section,我們將利用變數的特點,將一些需要調整、變更,或在程式中需要改變的變量,透過變數的功能來進行控制。

延續上一個 Section :點亮LED。我們將利用 Scratch 的程式【資料】積木,建立「變數」;透過變數作為時間的調整與變化控制項目。

Step 01:點亮LED燈,利用變數控制燈亮的時間。(範例:YwRobot_Sensor_VariablesLED01.sb2)

  1. 打開 Scratch 應用程式,選擇程式區的資料積木塊,建立 Time01、Time02、Time03三個變數積木。
  2. 程式開始先啟動LED燈的腳位 D13,設定Time01為「3」 (Time01時間為3秒),設定Time02為「5」(Time02 時間為5秒),設定Time03為「10」(Time03時間為10秒)。
  3. 程式執行LED燈亮,必須在LED燈的腳位D13,提供高電位,所以我們選用程式【數位輸出:設定腳位 「D13」為「1」】的積木塊。
  4. 在程式中的等待時間積木空格,分別放入 Time01、Time02、Time03變數積木。
  5. 程式執行,觀察套入不同時間變數積木時,程式執行的差異。

Step 5: 按一下,控制LED

這個 Section 課程練習,延續前一節課程的「變數」學習內容外。在課程中,還加入了多重控制指令與動作偵測回饋應用,透過「偵測指令」積木,利用鍵盤搭配來控制不同的感應器模組。

除此之外,這一個 Section 還要學習程式編輯的重要概念~流程控制;亦即「如果...那麼...(if/elif/else) 」條件判斷句。常見的條件判斷句有:

  1. if...(then):如果...那麼...
  2. if...else:如果...否則...
  3. if...elif...else

為什麼會有 elif 這種關鍵字呢?那是因為我們在每個 if 分支裏只能有一個 if 和一個 else,所以如果你需要判斷好幾次,你就需要很多 elif 語句。

Step 01:利用 if...(then):如果...那麼... 迴圈控制LED燈。(範例:Ywrobot_Sensor_VPLED01.sb2)

  1. 打開 Scratch 應用程式,選擇程式區的資料積木塊,建立 Time01、Time02、Time03三個變數積木。
  2. 程式開始先啟動LED燈的腳位 D13,設定Time01為「3」 (Time01時間為3秒),設定Time02為「5」(Time02 時間為5秒),設定Time03為「10」(Time03時間為10秒)。
  3. 在程式編輯區放入程式控制積木:「如果...那麼...」;透過程式偵測積木,利用鍵盤選擇不同的程式迴圈。
  4. 程式執行LED燈亮,必須在LED燈的腳位D13,提供高電位,所以我們選用程式【數位輸出:設定腳位 「D13」為「1」】的積木塊。
  5. 在不同程式迴圈中分別放入 Time01、Time02、Time03 變數積木,觀察不同迴圈執行。

Step 02:利用 if...else:如果...否則... 迴圈控制LED燈。(範例:Ywrobot_Sensor_Button01.sb2)

  1. 在程式編輯區放入程式控制積木:「如果...否則...」;透過 if...else... 讓按鈕控制LED燈。
  2. 在程式開始,啟動D13 LED燈,D3 按鈕。
  3. 當按下D3按鈕,D13 LED燈亮,否則LED燈不亮。
  4. 在程式中放入「關係運算式」作為判斷,當 D3 為高電位,D13 燈亮。

Step 6: 認識可變電阻(電位器)與類比埠

這個單元,可以學習到認識 Arduino UNO 板上的類比埠,UNO 板上的類比埠有A0至A5六個腳位,可用來接受類比電壓輸入,但不能輸出類比電壓。類比電壓的輸出必須透過數位腳位D3、D5、D6、D9、D10、D11,以PWM模擬,D3、D5、D6、D9、D10、D11的數字編號旁,有波浪符號(~),這表示這些腳位可以用數位訊號來模擬出類比訊號。

類比埠的輸出值是0~1023。

在 YwRobot Sensor Module Robot 上,共有五組類比埠,即 A0:無源蜂鳴器、A1:紅外線循線感測器(左)、A2:紅外線循線感測器(右)、A3:電位器(可變電阻)、A4A5則已經設定為 I2C 的SDA及SCL,這個課程中,我們利用它來作為外接 1602 LCD腳位。這個單元 ,我們要練習電位器的控制與應用。

認識可變電阻(電位器)

YwRobot Sensor Module Robot 腳位 A3 設置了一個藍色的可變電阻,在這個 Section ,我們將透過 Transformer 提供的擴充積木,控制 A3 腳位的可變電阻。利用 Transformer S2A 的程式積木,有兩種方式可以控制可變電阻,一種是 S2A 的擴充組合積木塊(比較容易),另一種是 S2A 的基本擴充積木塊,下面的 Step 範例,將介紹這兩種編程方式。

Step 01:使用 S2A 擴充組合積木塊,顯示 A3 可變電阻值。(範例:Ywrobot_Sensor_VR01.sb2)

  1. 啟用擴充組合積木:可變電阻,在空格內填入腳位 A3。
  2. 在迴圈中放入顯示積木,說出可變電阻的數值。
  3. 在舞台區顯示電位器的數值。

Step 02:使用 S2A 基本擴充積木塊,顯示 A3 可變電阻值。(範例:Ywrobot_Sensor_VR02.sb2)

  1. 啟用基本擴充積木:類比腳位A3為輸入。
  2. 在迴圈中放入顯示積木,說出類比腳位 A3 的數值。
  3. 在舞台區顯示電位器的數值。

Step 7: 運算式 (Expressions)

一個運算式是由運算元(Operands)、運算子(Operators)所組成,運算式常常是程式判斷式裡非常重要的條件式。在 Scratch 常見使用的運算式有:算式運算式(Arithmetic Expressions)、比較運算式或關係運算式(Comparison Expressions)、邏輯運算式(Logical Expressions)及字串合併(連結)運算與數學函數。

Step 01:算式運算式。(範例:Arithmetic_Expressions.sb2)

  1. 建立「加法、減法、乘法、除法、四捨五入、餘數」算式運算式。
  2. 算式運算式會將結果直接呈現,我們利用字串合併算式,讓小貓說出算式與結果。

Step 02:比較運算式或關係運算式。(範例:Comparison_Expressions.sb2)

  1. 利用「大於(>)、等於(=)、小於(<)」比較運算式,判斷 A3 可變電阻的數值是否符合條件。
  2. 運算式會將比較結果直接呈現,我們利用字串合併算式,讓小貓說出A3可變電阻的值與運算式的結果。

Step 03:邏輯運算式。(範例:Logical_Expressions.sb2)

  1. 利用「且(AND)、或 (OR)、不成立(NOT)」邏輯運算式,判斷條件式是否符合成立(true、false)。
  2. 說明:在這個範例中的 “if (如果)” 判斷式成立,則稱之為 “true(真)”,反之則為 “false(假)”。這裡所提的"true、false", 稱之為 “布林”。結果為 true,則進行後續動作,如果為 false,則不做任何動作。
  3. 運算式會判斷條件式是否成真,如果符合 true,就會執行判斷"適合"或"不適合",否則為 false,會"Hello"等待。

Step 8: 可變電阻(電位器)與判斷式

在這一個 Section 的課程,我們將學習兩種關於編程的內容:" IF...ELIF...ELSE "及" 副程式(函數)"。

副程式(函數)

結構化程式設計,非常重視程式的模組化與 Top-Down Design 的觀念,一個良好的程式,不但可讀性高而且要能容易維護。所以,設計程式時,常將一個較大的程式分成數個子功能,每個子功能再細分成數個小功能。我們可以將這些小功能獨立寫一個「副程式」。而且可以將程式中重複的程式區段挑出來單獨寫成一個「副程式」,以供需要的地方呼叫,這樣就可以縮短程式的長度及容易維護。我們將這類的程式單元稱為「副程式(函數)」(Subprogram)。

IF...ELIF...ELSE

在前面的 Section 每個 if 分支裏只能有一個 if 和一個 else,所以如果你需要判斷好幾次,你就需要很多 elif 語句。在 Scratch 中,可以將 「如果...否則...」堆疊入另一個「如果...否則...」。

Step 01:利用副程式(函數)與「如果...否則...」積木控制A3。(範例:Ywrobot_Sensor_IFVR01.sb2)

  1. 利用「建立自訂積木」的功能分別建立兩個自定義副程式:基本擴充積木、擴充組合積木。作為觀察與比較利用S2A 基本積木與組合積木建立的程式控制內容。
  2. 為了區分兩支副程式(函數)的差異,將基本擴充積木的所有程式執行結果以中文呈現,擴充組合積木的所有程式執行結果以英文呈現。
  3. 在主程式堆疊連結呼叫副程式的連結積木。
  4. 利用「如果...否則...」的重複堆疊為 IF...ELIF...ELSE 程式語法,執行判斷式。

Step 9: DHT11溫溼度計,偵測環境溫溼度值

這個 Section 的課程,要帶大家利用Transformer 結合Scratch 2.0來讀取DHT11傳感器的數據。在YwRobot Sensor Module Robot 上,DHT11被 Set 在 D8 腳位上。

只要勾選 Transformer Library 擴充積木中的 DHT11 積木,可以在 Scratch 的舞台區看到 DHT11的溫度(℃)或濕度(%)。這個 Section 我們設計了一個 Cycle 讓大家來體驗 DHT11及 Scratch 程式的應用,還將利用 I2C Port 連接 1602 LCD 顯示溫溼度資料。

Step 01:利用 DHT11 擴充積木,將溫溼度顯示在 LCD。(範例:Ywrobot_Sensor_DHT11_01.sb2)



1. 在進入課程前,請選擇「Transformer LCD顯示器」的執行選項。會在LCD的螢幕上看見 I2C Address,本範例為 0x27。
2. 執行程式測試:可以在 LCD1602 的擴充積木中點選【SDA接A4,SCL接A5】積木,在 LCD螢幕上會顯示【OneRobotPerkid kodorobot】,表示 I2C LCD螢幕連結正常。接者可以測試開燈、關燈積木,文字輸入積木功能是否正常。(1602 LCD共有二列16行的文字輸入空間)
3. 勾選 Transformer Library 擴充積木中的 DHT11 積木,設定 DHT11 積木腳位為 D8。並測試溫溼度積木是否正常顯示偵測值。
4. 利用程是迴圈與運算式判斷,執行開燈、偵測溫溼度、顯示溫溼度值、關燈等動作。


Step 10: 機器人篇:Transormer 光碟車

利用 Transformer 玩 YwRobot Sensor Module Robot 機器人,要感謝車神李俊青老師的貢獻,藉由李俊青老師與 Kodorobot 奕學所共同開發的光碟車應用,YwRobot Sensor Module Robot 可以簡單、順利的在光碟車的基礎上學習機器人的控制。

從【機器人篇】課程開始,我們將利用 Transformer Car (光碟車)項目,進行車子與相關感測器的應用。課程的內容將包含RGB LED、超音波感測器、紅外線循線感測器、紅外線接收器、蜂鳴器的編程應用。還會學習馬達控制與輪型機器人的動作判斷與編程原理。

Step 11: 開啟 RGB LED

在 YwRobot Sensor Module Robot 上的D9~D11腳位為 RGB LED 腳位;這三個腳位正是Arduino UNO板子上的PWM腳位,數值為:0~255。這意味著,RGB LED不僅可以輸入數位訊號,還能夠利用PWM模擬類比訊號輸入,透過輸入的不同電壓值,改變燈光的亮度。

注意:RGB LED燈會混色

Step 01:點亮你的 RGB LED (範例:Ywrobot_Sensor_RGBLED01.sb2)

  1. 利用數位模式,點亮紅色RGB LED。
  2. 利用數位模式,點亮綠色RGB LED。
  3. 利用數位模式,點亮藍色RGB LED。
  4. 利用數位模式,依序點亮紅色、綠色、藍色 RGB LED。

Step 02:利用 RGB LED 學習PWM (範例:Ywrobot_Sensor_RGBLED02.sb2)

  1. 利用PWM模式,模擬不同的類比電壓輸出,點亮紅色RGB LED。
  2. 利用PWM模式,模擬不同的類比電壓輸出,點亮綠色RGB LED。
  3. 利用PWM模式,模擬不同的類比電壓輸出,點亮藍色RGB LED。
  4. 利用PWM模式,模擬不同的類比電壓輸出,依序點亮紅色、綠色、藍色 RGB LED,觀看不同的顏色變化。

Step 03:利用運算式,隨機顯示RGB LED燈的顏色及亮度 (範例:Ywrobot_Sensor_RGBLED03.sb2)

  1. 在三色LED紅色D9類比輸出積木,放入【隨機取數0到150】運算積木。(隨機取數數值可以為0~255)
  2. 在三色LED綠色D10類比輸出積木,放入【隨機取數0到150】運算積木。(隨機取數數值可以為0~255)
  3. 在三色LED藍色D11類比輸出積木,放入【隨機取數0到150】運算積木。(隨機取數數值可以為0~255)
  4. 觀測RGB LED燈的顏色變化。

Step 04:利用變數與運算式,設計 RGB LED 呼吸燈 (範例:Ywrobot_Sensor_RGBLED04.sb2)

  1. 設計紅色呼吸燈。
  2. 設計綠色呼吸燈。
  3. 設計藍色呼吸燈。
  4. 利用副程式設計RGB LED 呼吸燈判斷式。

數位模擬類比(PWM),是英文“Pulse Width Modulation”的縮寫。簡單的說,因為 A0至A5 這六個腳位類比腳位,只能用來接受類比電壓輸入,但不能輸出類比電壓,所以類比電壓必須透過數位腳位 D3、D5、D6、D9、D10、D11,以PWM模擬。這一篇教學,也有非常詳盡的介紹。

Step 12: 超音波

超音波感測器主要用以偵測前方物體的距離,感測器主要為「發射」、「接收」兩個部份,可以用於判斷前方是否有障礙物或與目標物的距離。

超音波感測器的相關資訊:

  1. 距離單位:cm (公分)
  2. 探測的距離:2cm-400cm。
  3. 精度為 0.3 cm。
  4. 感應角度為 15 度。
  5. 接線方式:
    • HC-SR04 接線:VCC接至VCC
    • GND接至GND
    • TRIG接至D12
    • ECHO接至D13

Step 01:測試超音波感測器 (範例:Ywrobot_Sensor_Ultr01.sb2)

  1. 利用擴充積木,測試超音波感測器。

Step 02:利用超音波感測器進行距離偵測警示器 (範例:Ywrobot_Sensor_Ultr02.sb2)

  1. 設計當超音波感測器偵測到距離大於10cm時 RGB LED亮藍燈。
  2. 設計當超音波感測器偵測到距離小於5cm時 RGB LED亮紅燈。
  3. 設計當超音波感測器偵測到距離大於5cm小於10cm時 RGB LED亮綠燈。
  4. 利用 IF...ELIF...ELSE設計距離自動監測警示器。
  5. 嘗試加入外觀積木,顯示距離與警示文字。(範例:Ywrobot_Sensor_Ultr03.sb2)

備註:Ultr_Car.ino 為 Arduino IDE檔,由李俊青老師分享,提供作為離線體驗。

Step 13: 蜂鳴器 Buzzer

在 Transformer 已經將音階與頻率做好對應,附表是音符、頻率與簡譜的對照表。還可以透過鍵盤對照編輯。範例檔將小蜜蜂的部分樂曲分成三段,透過程式以利於編輯。

Step 01:利用Buzzer感測器播放聲音或樂曲 (範例:Ywrobot_Sensor_Buzzer01.sb2)

  1. 利用音符、頻率與簡譜;將小蜜蜂的部分樂曲分成三段,透過程式編輯。

Step 02:利用超音波感測器偵測,並透過Buzzer感測器播放警示聲音 (範例:Ywrobot_Sensor_Buzzer02.sb2)

  1. 利用比較(關係)運算式判斷超音波偵測的數值是否符合條件。
  2. 針對距離的偵測值,判斷撥放兩段不同的警示音,距離越接近時,警示音越急促。

Step 14: 紅外線 IR Receiver

在 YwRobot Sensor Module Robot 上的 D2 腳位,內建了 IR 接收感測器( IR Receiver);此外,Transformer 已內建【KEYES】遙控器的紅外線資料,並做好資料對應。透過 IR 接收感測器搭配 Scratch 的「資料-清單」功能,可以分別收集 紅外線遙控器的 IR 訊號資料,製作訊號清單(例如 Step 01)。透過 IR 訊號的利用,可以製作無線訊號選擇器或無線控制器。

Step 01:(範例:Ywrobot_Sensor_IR01.sb2)



1. 利用 IR 接收感測器搭配 Scratch 的「資料-清單」功能,收集 紅外線遙控器的 IR 訊號資料。
2. 利用資料清單,搭配無線遙控器進行無線選擇或控制。


Step 02:(範例:Ywrobot_Sensor_IR02.sb2)



1. 利用 IR 資料清單進行選擇,控制 YwRobot Sensor Module Robot 上的各式感測器。
2. 利用 Keyes 遙控器控制 YwRobot Sensor Module Robot 上的 RGB LED 燈。


備註:IR_LED_Car.ino 為 Arduino IDE檔,由李俊青老師分享,提供作為離線體驗。

Step 15: 紅外線循線感測器

循線感測器是一組由紅外線發射與接收器所組成的感測器,利用尋線感測器,可以讓機器人判斷目前是否在規範的線路上前進,並適時做出前進路線的修正。

Step 01:利用循線感測器判斷積木顏色 (範例:Ywrobot_Sensor_Line01.sb2)

  1. 預先偵測不同顏色 LEGO 積木的紅外線值。
  2. 透過紅外線循線感測器判斷不同顏色的 LEGO 積木,並說出積木的顏色與偵測數值。

備註:Line_Car.ino 為 Arduino IDE檔,提供作為離線體驗。

Step 16: L293D 讓機器人動起來

這個 Section 是這個課程最後一個,我們將利用 Trnsformer 透過 L293D 控制 YwRobot Sensor Module Robot。如圖 (李俊青老師分享),Ywrobot L293D 提供四個腳位,其中 D4、D7 腳位是用來控制馬達轉動的方向,D5、D6腳位為 PWM 腳位 ,用來控制馬達的轉速。在這個Section,第一個範例,我們將結合 Scratch 偵測積木與鍵盤,來做為控制 YwRobot Sensor Module Robot 的方向;第二個範例,將以第一個範例為基礎,加入變速的概念與 PWM 腳位的功能,加入速度變化的應用。

Step 01:(範例:Ywrobot_Sensor_L293D01.sb2)

  1. 結合 Scratch 偵測積木與鍵盤,來做為控制 YwRobot Sensor Module Robot 的方向。
  2. 利用副程式(函數;自定義積木)功能,建立:前進、後退、停止、左轉、右轉。
  3. 透過鍵盤的上、下、左、右方向建,做為控制YwRobot Sensor Module Robot 方向的功能鍵。

Step 02:(範例:Ywrobot_Sensor_L293D02.sb2)

  1. 以範例 Step 01為基礎,新增「速度」變數積木,作為改變速度的功能積木。
  2. 設定鍵盤A鍵與B鍵為加速與減速的功能鍵,利用比較運算式判斷加速與減速的條件是否成立,如果成立則執行加速或減速。