Introduction: 用YwRobot Easy Module Shield 多功能實驗擴展板玩 S4A (一)

許多老師會利用Scratch 來作為學生學習編程課程的基礎,常見搭配 Scratch 課程的硬體也不少,主要有兩類:PicoboardS4A(Scratch for Arduino)。在台灣,最常見也最知名的,不外乎由慧友科技所推出的 S4A Sensor Board全佑電腦所代理的 MakeBlock(mBlock)

「用YwRobot Easy Module Shield 多功能實驗擴展板玩 S4A」這個課程主要就是利用 YwRobot Easy Module Shield 這個 Arduino UNO的擴展板,利用它已經整合的各種模組(按鍵、LED、EGB、紅外線接收、亮度傳感器(光源)、LM35D溫度傳感器、無源蜂鳴器、電位器、DHT11溫濕度傳感器),搭配 S4A 學習Scratch與硬體的應用。

學習Scratch與傳感器的應用,您可以依據您的需求(Picoboard 或 S4A),參考下面兩本書籍:

  1. Scratch與PicoBoard互動設計快速入門
  2. 用S4A(Scratch for Arduino):玩出科技創意大未來


相關課程內容:

  1. 課程: S4A介紹與入門
  2. Scratch線上教學(校園文化)
  3. 用Scratch及S4A動手玩資訊科學
  4. 澎湖人 Scratch 教學
  5. Arduino 與 S4A ‧ 小學教師的學習筆記
  6. 高慧君老師的 Scratch 12堂課
  7. Jimmy機器人積木軟體實驗室
  8. 科技互動游藝館
  9. 謝作如老師的Scratch系列

官網:

  1. S4A
  2. Scratch官方網站
  3. MakeBlock官方網站

Step 1: 認識 Easy Module Shield V1

Easy Module Shield v1 是兼容UNO,內建蜂鳴器、可調電位器(可變電阻)、 DHT11溫濕度感測器、LM35溫度、光源感測器、紅外線接收器及一組紅色LED、藍色LED、RGB LED 的 Arduino 多功能擴展板。同時還能外接兩組數位輸入/輸出、一組類比輸入和藍芽、I2C連接埠。

高功能Sensor的整合,非常方便學生學習,避免短接、誤接的機率發生,同時也降低費用的支出與教師在教學現場管理的諸多麻煩,讓課程在進行時更加順利。

Step 2: 課前準備:安裝 S4A

在上課之前,您必須先準備一片 Arduino UNO 的相容板,同時至 S4A 的官方網站下載S4A軟體與你電腦相容的 Firmware(韌體,目前是1.6版) 並安裝好相關的軟硬體環境。

主要步驟:

開始使用S4A之前,基礎環境的建置是相對的重要。接下來,要為大家先介紹如何建置 S4A 的軟體環境, 如果您對這一段環境建置已經熟悉,可以直接往下一個Session學習。

安裝過程主要是 Arduino 應用程式的安裝與 S4A 環境建置這兩個部分:Arduino 環境建置、S4A 環境建置。

Arduino 環境建置

  1. 下載開發環境:至官網(arduino.cc),點選download後,依據您的電腦作業系統下載ArduinoIDE (建議下載1.0.6下載版)。
  2. 安裝開發環境:有2種下載檔,如下載install檔,直接執行;如為zip檔,直接解壓縮後,進入資料夾找執行檔即可使用。
  3. 安裝arduino驅動程式:電腦連接arduino(若需驅動程式,位置在arduinoIDE安裝資料夾內drivers資料夾)。
  4. 找出板子的COM Port號碼:於裝置管理員找到「連接埠」,內有Arduino Uno連結的COM Port 編號(這是接下來要上傳 S4A Firmwarm的位置)。
  5. 連接Arduino UNO+Easy Module Shield v1,並確認與電腦連結完成。

S4A 環境建置(S4A應用程式 & Firmware)

  1. S4A官網下載(網址s4a.cat),下載S4A主程式(電腦用;WindowsPCMacPC)及另一個是S4A韌體(arduino用),不過我們這個課程,S4A的Firmware已經改寫,請下載這個Session中所附的 S4AFirmware16_YwRobot.ino 檔。
  2. 下載S4A軟體並安裝。下載S4A韌體,並利用Arduino軟體上傳至Arduino UNO上。
  • 注意:
    因應本課程之需要,相關的Firmware(韌體)已經變更,請下載本Session下方所附的ino檔(S4AFirmware16_YwRobot.ino)。
  • 變更image檔。因應本課程之需要,請下載本Session下方所附的image檔(S4A - YwRobot.image),並將檔案放置於S4A的資料夾中。(Windows預設為 C:\Program Files\S4A)

您也可以參考用S4A(Scratch for Arduino):玩出科技創意大未來這本書,裡面也有非常詳盡的介紹與設定說明。

參考閱讀:

Step 3: Session 1:LED 閃爍

在這個 Session 的學習焦點,主要在練習舞台場景的編輯、角色的建立。然後透過程式的控制方塊,改變不同的動作指令,讓 Easy Module Shield v1 上的紅色及藍色LED燈交互閃爍。再搭配角色造型的變化,在舞台上呈現不同的顏色造型。

在學習這個 Session 時,您可以嘗試依照我的範例進行編輯,附檔中有紅燈與藍燈的角色Sprite檔與LED造型檔(ZI
P檔),您可以依您的需求直接匯入進行練習;當然,您也可以下載我的範例檔【 LED_01.sb】,直接練習。

Easy Module Shield v1腳位配置:

  1. LED1(藍燈):D13
  2. LED2(紅燈):D12

Step 4: Session 2:LED 與按鍵開關控制

這一個 Session 主要是延續上一個《LED 閃爍》的學習內容,再通過按鍵的功能來控制LED燈的開關。在練習時,可以嘗試先從一個開關控制一個LED燈(範例:LED_02.sb),再進階練習兩個按鍵開關控制兩個LED燈(範例:LED_03.sb)。

範例一:一個開關控制一個LED燈(範例:LED_02.sb)

    • 當按下SW1時,藍燈亮。

    範例二:兩個按鍵開關控制兩個LED燈(範例:LED_03.sb)

    • 按下SW1時,藍燈亮(LED1),紅燈熄(LED2)。
    • 當按下SW2時,紅燈亮(LED2),藍燈熄(LED1)。

    Easy Module Shield v1腳位配置:

    1. LED1(藍燈):D13
    2. LED2(紅燈):D12
    3. SW1(按鍵1):D2
    4. SW2(按鍵2):D3

    Step 5: Session 3:LED 、按鍵多重控制

    在這個Session課程練習,除了綜合前面兩節課程的學習內容之外。在課程中,主要還加入了多重控制指令與動作偵測回饋應用。

    課程內容:

    切換執行LED燈的按鍵控制、關燈、閃爍。

    Session 3-1
    當按下鍵盤的按鍵「A」,執行程式的第一段。
    偵測動作:按鍵盤的「上移鍵」,起動程式。
    程式執行:SW按鍵控制LED燈的開關。

    Session 3-2
    當按下鍵盤的按鍵「B」,執行程式的第二段。
    偵測動作:按鍵盤的「下移鍵」,起動程式。
    程式執行:關閉LED燈的所有動作。

    Session 3-3
    當按下鍵盤的按鍵「C」,執行程式的第三段。
    偵測動作:按鍵盤的「右移鍵」,起動程式。
    程式執行:LED燈閃爍。

    Easy Module Shield v1腳位配置:

    1. LED1(藍燈):D13
    2. LED2(紅燈):D12
    3. SW1(按鍵1):D2
    4. SW2(按鍵2):D3

    Attachments

    Step 6: Session 4:可變電阻(電位器)與蜂鳴器

    這個Session的學習內容,開始加入變數,並利用電位器(可變電阻)控制蜂鳴器的音量變化。

    在 Easy Module Shield 上,蜂鳴器的位置腳位是 D5 的PWM腳,可以透過電位器提供輸出的電壓值,控制蜂鳴器音量,電壓的計算公式為 V=(n/255)*5,所以當 n=0 時,電壓為 0 V;當 n=255 時,電壓為 5 V。

    電位器本身透過電阻的大小,改變電壓的輸出值,取得不同的類比訊號。Easy Module Shield 上的電位器是接在類比埠A0 ,電位器的類比輸入值是 0~1023;但是,PWM的類比輸出值是 0~255,因為類比輸入數值與PWM的值不符,會出現錯誤提示。所以,通常會再將(類比訊號的值/4)之後取整數,再修正 >255設定為255,<0的值設定為 0,最後再將其值送出給PWM。

    Step 7: Session 5:LM35溫度偵測

    這個 Session 是利用LM35的溫度感測元件,偵測溫度的變化,同時在舞台區顯示出溫度偵測值。

    YwRobot Easy Module Shield 上的LM35元件是接在 A2 的類比埠上,每個類比埠可提供2^10位元的解析度,每個讀數的電壓為5V/1024=0.004883V,所以第n個讀數的電壓即 Vn=0.004883V*n。

    當攝氏溫度為 0度C時,輸出的電壓讀數為 0V,每上升1度C時電壓值上升 10mV,所以攝氏溫度的計算模式是:
    攝氏溫度=Vn / 10mV。

    所以,利用LM35偵測溫度時,攝氏溫度的顯示變數運算設定為:
    攝氏溫度=(n*0.004883V / 0.01V)度。當 n=90,攝氏溫度=(90*0.004883V)/ 0.01V=0.43947V / 0.01V=43.94。

    Attachments