1 of 137

第13單元:機器人走出去(六)�自走車感應器(三)顏色感應器(事件)

SPIKE ROBOTICS

2 of 137

課程內容

中華機器人科技教育學會

2

3 of 137

課程01

If Then 對決 Color Sensor

4 of 137

顏色感測器原理

向物體照射具有RGB成分的光,反射光的顏色成分會隨物體的顏色發生改變。例如,紅色物體的反射光成分為紅,黃色物體為紅和綠、白色則包含紅、綠、藍全部成分。

參考資料來源: https://www.rohm.com.tw/electronics-basics/sensors/sensor_what7

5 of 137

顏色感測器功能

  • 顏色感測

感測物體表面顏色,可感測的顏色如下

  • 反射光感測

感測物體表面反射率 (0%~100%)

白色反射率 > 黑色反射率

  • 環境光感測

0~100% (暗~亮)

紅紫色、藍色、中藍

綠色、黃色、紅色

白色、黑色、沒顏色

6 of 137

課程01:If Then 對決 Color Sensor

  • 學習目的:
    • 利用顏色感測器來學習If Then判斷式的程式邏輯
  • 學習目標:
    • 學會If Then判斷式的使用
    • 學會使用顏色感測器辨別各種顏色
    • 學會控制Center Button的顏色顯示
    • 學會主機M1面板的文字顯示
  • 基本零件:45678 SPIKE,一組
  • 額外零件:有顏色的積木或紙張

中華機器人科技教育學會

6

If Then

7 of 137

課程01:學習目的

中華機器人科技教育學會

7

讓我們來教機器人,如何判斷積木的顏色吧!

機器人學會後,要讓他告訴我們看到什麼顏色喔~~~

?顏色?

If Then

8 of 137

課程01:動作影片-紅色

中華機器人科技教育學會

8

If Then

亮紅燈

放紅色積木

顯示 R

9 of 137

課程01:車體組裝

中華機器人科技教育學會

9

If Then

十分鐘小車-spike-顏感檢測大積木-2022-04-15.PDF

組 裝

一台車子

01

加 上

顏色感測器

02

朝向 下方

距離地面高度

約一個大積木

左邊馬達

插在 A 孔

右邊馬達

插在 B 孔

顏色感測器

插在 C 孔

10 of 137

課程01:車體組裝

  • 檢查馬達與顏色感測器的接線

中華機器人科技教育學會

10

If Then

顏色感測器

插 C 孔

左邊馬達

插 A 孔

右邊馬達

插 B 孔

11 of 137

課程01:程式步驟

中華機器人科技教育學會

11

If Then

按住不放,

拉過來

建立新程式

12 of 137

課程01:程式步驟

中華機器人科技教育學會

12

按住不放,拉過來

If Then

13 of 137

課程01:程式步驟

中華機器人科技教育學會

13

按住不放,拉過來

If Then

14 of 137

課程01:程式步驟

中華機器人科技教育學會

14

If Then

按住不放,拉過來

15 of 137

課程01:程式步驟

中華機器人科技教育學會

15

If Then

選擇顏色感測器

安裝的孔位

16 of 137

課程01:程式步驟

中華機器人科技教育學會

16

選擇要判斷的顏色

先選「紅色」

If Then

紅色

沒有顏色

17 of 137

課程01:程式步驟

中華機器人科技教育學會

17

判斷條件的說明:

插在C孔位 的顏色感測器,感測到的顏色,是否為「紅色」?

If Then

判斷正確:代表顏色感測器目前有感測到「紅色」

判斷錯誤:代表目前沒有感測到紅色,有可能感測到藍色、綠色…等,或是沒有感測到任何顏色

18 of 137

課程01:程式步驟

中華機器人科技教育學會

18

按住不放,拉過來

改成「R」

If Then

改成「紅色」

19 of 137

課程01:程式步驟

中華機器人科技教育學會

19

點選,可改變顏色

If Then

我是

Center Button

20 of 137

Color Sensor(顏色感測器)的狀態

  • 程式上方的狀態列,會顯示已經連結的感測器、馬達的狀態

  • 例如,左上角的狀態顯示,代表:
    • A的馬達,度數為204°
    • B的馬達,度數為354°
    • C的顏色感測器:感測到9號顏色(紅色)
    • D的距離感測器:感測到200cm

  • 點選左邊的主機圖案,可以顯示主控面板,更改顯示的方式

中華機器人科技教育學會

20

If Then

21 of 137

主控面板:顏色感測器

中華機器人科技教育學會

21

點選感測器,可以變更顯示的模式

顏色模式

反射光模式

If Then

22 of 137

顏色感測器的規格

  • SPIKE顏色感應器(SPIKE Color Sensor)
    • 感應速度:每秒100次 (100Hz)
    • 最佳感應距離:16 mm(取決於物體大小、顏色和表面)

    • 模式:顏色模式(可感應8種顏色)
      • (0)黑色、(1)紫色、(3)藍色、(4)淺藍色、(5)綠色、(7)黃色、(9)紅色、(10)白色、(-1)沒有顏色

    • 模式:反射光模式
      • 指光源反射回來的光強度,以0(無反光)~100(非常反光),表示不同的亮度。一般用於偵測明暗度或循跡。
    • 模式:環境光強度(僅PYTHON指令可以控制)
      • 指周圍環境光線,進入顏感的光強度,以 0(黑暗)~100(明亮),表示不同的亮度。
    • 模式:發射白光(僅PYTHON指令可以控制)
      • 有3個獨立控制的LED燈,功率 0~100%

If Then

23 of 137

課程01:程式說明

  • 嘗試將下面的程式傳給SPIKE機器人,測試機器人的動作
    • 將不同顏色的大積木(4x2) 放在 顏色感測器 下方,�Center Button與M1區域會出現什麼狀態嗎?

中華機器人科技教育學會

23

條件錯誤:執行後續設定的程式,不執行「if then」內的程式

條件正確:執行此區塊內的程式

Center Button

If Then

M1

判斷的條件

24 of 137

『判斷的條件』,是一種:是非題

  • 條件的答案:
    • 對 ; 正確 ; 成 立 ; ○
    • 錯 ; 錯誤 ;不成立; ╳

中華機器人科技教育學會

24

資料來源:新北市板橋區 沙崙國民小學 106 學年度第一學期社會科https://exam.naer.edu.tw/base/otc/testStoreFile/10016275a80ff2711416.pdf

If Then說明

25 of 137

If Then:基本介紹

  • 如果「條件」的判斷,為:
    • 成 立(正確):執行「內部區塊」內的所有指令
    • 不成立(錯誤):不進行任何動作
  • 完成後繼續執行之後的程式

中華機器人科技教育學會

25

內部區塊

條件正確:執行內部區塊內的指令

條件錯誤:不進行任何動作

執行之後的程式

判斷的條件

If Then說明

26 of 137

生活中的『條件』

  • 舉例,生活中有哪些條件??
    • 成立 (正確),會發生什麼事情?
    • 不成立(錯誤),會發生什麼事情?

中華機器人科技教育學會

26

If Then說明

27 of 137

If Then:生活中的『條件』

中華機器人科技教育學會

27

室內溫度>28度

開冷氣

空氣品質=紅色

開冷氣

不過,好像沒有 「關冷氣」 的條件………………

If Then說明

28 of 137

If Then:生活中的『條件』

中華機器人科技教育學會

28

媽媽說:考試成績有超過90分,帶你去吃牛排!

考試成績 > 90分

吃牛排

變成

程式

小史:

數學考試成績:95 分

自然考試成績:65 分

小派:

數學考試成績:80 分

自然考試成績:65 分

小克:

數學考試成績: 5 分

體育考試成績:100 分

根據程式的設定

請問

誰可以去吃牛排?

小克的媽媽,真的會帶他去吃牛排嗎?

為什麼會發生這種狀況

條件描述不清楚

If Then說明

29 of 137

課程01:程式說明

中華機器人科技教育學會

29

If Then

⑤ 錯誤:顏色不是「紅色」

不進行任何動作,執行後續的程式�本範例沒有撰寫任何動作

① 當程式開始執行

② 重複執行 forever

③ if:判斷顏色是否為「紅色」

④ 正確:顏色=紅色

then

Center Button:亮紅燈

M1區域:顯示「R」圖案

30 of 137

課程01:程式動作測試

  • 將紅色大積木放在顏色感測器的下面,
    • Center Button會顯示為「紅燈」
    • M1區域會顯示「R」圖案

中華機器人科技教育學會

30

R

If Then

31 of 137

課程01:程式動作測試

  • 如果將「綠色」、「藍色」或是「黃色」大積木放在顏色感測器的下面,Center Button與M1區域會出現什麼狀態?

中華機器人科技教育學會

31

If Then

32 of 137

課程01:動作影片

中華機器人科技教育學會

32

If Then

亮紅燈

放紅色積木

顯示 R

畫面不變

放藍色積木

畫面不變

放綠色積木

33 of 137

課程01:自我挑戰01

中華機器人科技教育學會

33

我已經學會判斷紅色了

If Then

挑戰01

請教我判斷其他的顏色吧..

34 of 137

課程01:自我挑戰01

  • 請同學嘗試看看,增加程式的判斷功能,如下:
    • 放綠色大積木:Center Button顯示「綠燈」、M1顯示「G」
    • 放藍色大積木:Center Button顯示「藍燈」、M1顯示「B」
    • 放黃色大積木:Center Button顯示「黃燈」、M1顯示「Y」
  • 英文教學:
    • 紅色:Red ; 綠色:Green
    • 藍色:Blue ; 黃色:Yellow

中華機器人科技教育學會

34

G

B

Y

If Then

挑戰01

35 of 137

課程01:挑戰01-動作影片

中華機器人科技教育學會

35

If Then

挑戰01

亮紅燈

放紅色積木

顯示 R

亮綠燈

放綠色積木

顯示 G

亮黃燈

放黃色積木

顯示 Y

亮藍燈

放藍色積木

顯示 B

畫面不變

沒有放積木

36 of 137

課程01:自我挑戰01

中華機器人科技教育學會

36

亮紅燈

放紅色積木

顯示 R

亮綠燈

放綠色積木

顯示 G

將程式進行結合

If Then

挑戰01

37 of 137

課程01:自我挑戰01

中華機器人科技教育學會

37

滑鼠按住不放,拉過來

If Then

挑戰01

到達正確位置

滑鼠放開完成

重點:要放在上一個If Then判斷式的結尾後面

38 of 137

課程01:自我挑戰01

中華機器人科技教育學會

38

亮黃燈

放黃色積木

顯示 Y

亮藍燈

放藍色積木

顯示 B

If Then

挑戰01

繼續完成藍色積木、黃色積木的程式,進行結合

39 of 137

課程01:自我挑戰01

中華機器人科技教育學會

39

解答說明

放大

If Then

挑戰01

40 of 137

課程01:挑戰01-學生常犯錯誤1

中華機器人科技教育學會

40

錯誤

判斷條件的程式,只會在程式開始執行的那一瞬間,執行一次

程式執行後,一直反覆執行判斷條件的程式

正確

仔細觀察,左右兩個程式有什麼不一樣嗎?

If Then

挑戰01

41 of 137

課程01:挑戰01-學生常犯錯誤2

中華機器人科技教育學會

41

錯誤

正確

錯誤:

第二個「if判斷式」,放在第一個「if判斷式」裡面

If Then

挑戰01

42 of 137

課程01:挑戰01-學生常犯錯誤2

中華機器人科技教育學會

42

正確

第一個「if判斷式」的開頭

第一個「if判斷式」的結尾

第二個「if判斷式」要放在第一個「if判斷式」的結尾後面

被塞進去第一個「if判斷式」裡面

錯誤

If Then

挑戰01

43 of 137

課程01:自我挑戰02

中華機器人科技教育學會

43

沒有出現任何顏色時,

If Then

挑戰01

要怎麼辦ㄟ ??

44 of 137

課程01:自我挑戰02

  • 目前撰寫的程式,功能如下:
    • 放紅色大積木:Center Button顯示「紅燈」、M1顯示「R」
    • 放綠色大積木:Center Button顯示「綠燈」、M1顯示「G」
    • 放藍色大積木:Center Button顯示「藍燈」、M1顯示「B」
    • 放黃色大積木:Center Button顯示「黃燈」、M1顯示「Y」
  • 如果將大積木拿離開顏色感測器,Center Button與M1區域會出現什麼狀態?
    • 文字與顏色是否一直存在,不會消失?
    • 如何讓Center Button的顏色,在大積木離開後消失?
    • 如何讓M1區域顯示的圖案,在大積木離開後消失?

中華機器人科技教育學會

44

If Then

挑戰02

45 of 137

課程01:挑戰02-動作比較

中華機器人科技教育學會

45

亮白燈

沒有放積木

顯示 X

畫面不變

沒有放積木

挑戰01

程式

改變成…

播放/

/暫停

If Then

挑戰02

46 of 137

課程01:自我挑戰02

中華機器人科技教育學會

46

沒有顏色

增加一個「if then」

來判斷沒有感測到顏色時的動作

M1顯示「X」

If Then

挑戰02

47 of 137

課程01:自我挑戰02

中華機器人科技教育學會

47

放大

解答說明

If Then

挑戰02

48 of 137

課程01:挑戰02-動作影片

中華機器人科技教育學會

48

亮紅燈

放紅色積木

顯示 R

亮綠燈

放綠色積木

顯示 G

亮黃燈

放黃色積木

顯示 Y

亮藍燈

放藍色積木

顯示 B

亮白燈

沒有放積木

顯示 X

If Then

挑戰02

49 of 137

課程02

If Then Else 對決 Color Sensor

黑 線

50 of 137

課程02:If Then Else對決Color Sensor

  • 學習目的:
    • 利用顏色感測器來學習If Then Else判斷式的程式邏輯
  • 學習目標:
    • 學會If Then Else判斷式的使用
    • 學習顏色感測器的使用
    • 判斷式與移動積木指令的合併使用
  • 基本零件:45678 SPIKE,一組
  • 額外零件:黑色的電工絕緣膠帶(電火布)
    • 請在地面黏貼數條黑色直線,讓學生測試車子動作

中華機器人科技教育學會

50

If Then Else

前進

電火布

51 of 137

課程02:動作說明

  • 車子放在黑線前面,大約一個積木箱子的距離
  • 車子向前走,當顏色感測器感測到黑線時,車子停止移動

中華機器人科技教育學會

51

電火布

電火布

If Then Else

52 of 137

課程02:動作影片

中華機器人科技教育學會

52

If Then Else

車子停止

感測到黑線

車子向前走

53 of 137

課程02:車體組裝

中華機器人科技教育學會

53

組 裝

一台車子

01

加 上

顏色感測器

02

朝向 下方

距離地面高度

約一個橫桿積木

左邊馬達

插在 A 孔

右邊馬達

插在 B 孔

顏色感測器

插在 C 孔

十分鐘小車-spike-只有顏色感測器-2022-04-15.pdf

If Then Else

54 of 137

課程02:車體組裝

  • 檢查馬達與顏色感測器的接線

中華機器人科技教育學會

54

顏色感測器

插 C 孔

左邊馬達

插 A 孔

右邊馬達

插 B 孔

If Then Else

55 of 137

課程02:程式步驟

中華機器人科技教育學會

55

按住不放,

拉過來

If Then Else

建立新程式

56 of 137

課程02:程式步驟

中華機器人科技教育學會

56

按住不放,拉過來

改成「15」

If Then Else

57 of 137

課程02:程式步驟

  • 設定馬達移動速度:15%
    • 在這個程式指令之後的移動程式
      • 沒有設定移動速度的程式,都使用目前設定的數值:15%
      • 有設定移動速度的程式,使用程式設定的數值
    • 系統的預設的移動速度為:75%
      • 沒有設定馬達移動速度時,以預設速度移動

中華機器人科技教育學會

57

沒有設定移動速度的程式

有設定移動速度的程式

If Then Else

58 of 137

課程02:程式步驟

  • 設定移動馬達為:A+B
  • 馬達方向的判別方式:
    • 站在將車子後面,車子的前進方向朝前
    • 左手邊的馬達為左邊馬達;右手邊的馬達為右邊馬達;

中華機器人科技教育學會

58

左邊馬達

右邊馬達

左邊馬達:A孔

右邊馬達:B孔

前進方向

If Then Else

59 of 137

課程02:程式步驟

中華機器人科技教育學會

59

按住不放,拉過來

If Then Else

60 of 137

課程02:程式步驟

中華機器人科技教育學會

60

按住不放,拉進去forever裡面

If Then Else

61 of 137

課程02:程式步驟

中華機器人科技教育學會

61

按住不放,

拉過來

改成「黑色」

If Then Else

62 of 137

課程02:程式步驟

中華機器人科技教育學會

62

選擇顏色感測器

安裝的孔位

選擇黑色

If Then Else

63 of 137

課程02:程式步驟

中華機器人科技教育學會

63

判斷條件:

插在C孔位 的顏色感測器,感測到的顏色,是否為「黑色」?

判斷正確:代表顏色感測器目前有感測到「黑色」

判斷錯誤:代表目前沒有感測到黑色,有可能感測到藍色、綠色…等,或是沒有感測到任何顏色

If Then Else

64 of 137

課程02:程式步驟

中華機器人科技教育學會

64

按住不放,拉過來

If Then Else

65 of 137

課程02:程式說明

  • 將車子放在黑色線段的前面,然後執行程式,測試車子的動作

中華機器人科技教育學會

65

判斷的條件

條件錯誤:執行此區塊內的程式

條件正確:執行此區塊內的程式

If Then Else

66 of 137

If Then Else:基本介紹

  • 如果「條件」的判斷,為:
    • 成 立(正確):執行「上方區塊」內的所有程式
    • 不成立(錯誤):執行「下方區塊」內的所有程式
  • 完成後繼續執行之後的程式

中華機器人科技教育學會

66

條件正確:執行上方區塊內的程式

條件錯誤:執行下方區塊內的程式

上方區塊

下方區塊

判斷的條件

If Then Else說明

67 of 137

If Then 與 If Then Else 的差異

中華機器人科技教育學會

67

內部區塊

上方區塊

下方區塊

條件正確

條件錯誤

沒有設定條件錯誤時,

應該做什麼事情

當作沒有這件事情發生過

默默的做之後指定的數情

If Then Else說明

68 of 137

If Then Else:範例說明

  • 想像你是機器人,當你接收到下面的程式,你要做什麼動作

  • 機器人是一位聽話的孩子,一個指令、一個動作

中華機器人科技教育學會

68

我的身高 > 140 公分?

右 手 舉起來

右 手 放下來

身高大於140公分

身高等於、小於140公分

If Then Else說明

69 of 137

If Then Else:範例說明

  • 如果:我的身高 > 140 公分?
  • 是正確的話,那麼:右手舉起來�否則:右手放下來

  • 判斷條件:我的身高 > 140 公分?

  • 範例
    • 大史的身高=150公分,150 > 140,條件判斷正確右手舉起來
    • 小派的身高=140公分,140 > 140,條件判斷錯誤右手放下來
    • 小客的身高=110公分,110 > 140,條件判斷錯誤右手放下來

中華機器人科技教育學會

69

右 手 舉起來

右 手 放下來

我的身高 > 140 公分?

If Then Else說明

70 of 137

If Then Else:範例說明

  • 想像你是機器人,當你接收到下面的程式,你要做什麼動作

中華機器人科技教育學會

70

今天早上有 吃 早餐嗎?

站 起 來

坐 下

If Then Else說明

71 of 137

If Then Else:範例說明

  • 如果:今天早上有吃早餐嗎?�正確:站起來�否則:坐下

  • 判斷條件:今天早上有吃早餐嗎?
  • 範例
    • 大明今天早上 有吃早餐,條件判斷正確站起來
    • 小樹今天早上沒有吃早餐,條件判斷錯誤坐下

中華機器人科技教育學會

71

今天早上有 吃 早餐嗎?

站 起 來

坐 下

If Then Else說明

72 of 137

課程02:程式說明

中華機器人科技教育學會

72

⑦ 錯誤:顏色≠黑色

else:向前移動↑

① 當程式開始執行

③ 設定移動馬達為:A+B

⑤ if:判斷顏色是否為「黑色」?

⑥ 正確:顏色=黑色

then:停止移動

② 設定馬達移動速度:15%

④ 重複執行

If Then Else

73 of 137

課程02:流程圖

中華機器人科技教育學會

73

顏色感測器

顏色=黑色

向前移動

停止移動

X

開始

結束

forever

If Then Else

74 of 137

課程02:學生常犯錯誤1

  • 下面這兩個程式,有什麼不同嗎?

中華機器人科技教育學會

74

錯誤

正確

判斷條件的程式,只會在程式開始執行的那一瞬間,執行一次

程式執行後,一直反覆執行判斷條件的程式

If Then Else

75 of 137

課程02:學生常犯錯誤2

  • 下面這兩個程式,有什麼不同嗎?

中華機器人科技教育學會

75

錯誤

正確

走完10cm後才會執行其他程式

If Then Else

76 of 137

課程02:學生常犯錯誤3

中華機器人科技教育學會

76

左邊馬達:C孔

右邊馬達:D孔

C

D

設定移動馬達為:A+B

代表:左邊的馬達為A、右邊的馬達為B

但是學生實際的車子,馬達是連接在C、D

或是左邊馬達接B、右邊馬達接A

If Then Else

77 of 137

課程02:另一種寫法

中華機器人科技教育學會

77

這種寫法,能夠完成「課程02」的動作要求

但為了與後續課程的程式進行連結,不鼓勵

If Then Else

78 of 137

課程02:車體組裝問題

  • 顏色感測器,如果受到環境、光線等因素的影響,判斷黑線的準確度降低,可以嘗試使用課程01的車體,調高顏色感測器的高度

中華機器人科技教育學會

78

十分鐘小車-spike-顏感檢測大積木-2022-04-15.PDF

79 of 137

遊戲時間:相撲圈

中華機器人科技教育學會

79

80 of 137

相撲車

  • 學習內容:利用顏色感測器讓車子在黑線區域內反覆移動
  • 學習目標:
    • 顏色感測器的應用
    • 「Forever Loop」、「If Then Else」的使用
    • 判斷式與移動積木指令的合併使用
    • 觀察車子的移動方式,研究出比較好的移動方式
  • 額外零件:黑色電工絕緣膠帶(電火布)
    • 請在地上(或紙板、PP板),用電火布黏貼出一個接近圓形的封閉線段
  • 動作:
    • 車子前進,當顏色感測器檢測到黑線時,後退、旋轉某個角度後,繼續前進
    • 車子不能夠移動超出黑色圓圈

相撲車

81 of 137

相撲車:動作說明

中華機器人科技教育學會

81

車子放在黑色圓圈內

執行程式

相撲車

82 of 137

相撲車:動作說明

中華機器人科技教育學會

82

車子向前走

當遇到黑線時,車子停止

相撲車

83 of 137

相撲車:動作說明

中華機器人科技教育學會

83

車子後退某個距離

後退距離由學生自行測試

相撲車

84 of 137

相撲車:動作說明

中華機器人科技教育學會

84

車子旋轉某個角度

旋轉角度由學生自行測試

相撲車

85 of 137

相撲車:動作說明

中華機器人科技教育學會

85

車子向前走

當遇到黑線時,車子停止

相撲車

86 of 137

相撲車:動作說明

中華機器人科技教育學會

86

車子後退某個距離

相撲車

87 of 137

相撲車:動作說明

中華機器人科技教育學會

87

車子旋轉某個角度

重複這些動作

相撲車

88 of 137

相撲車:動作影片

中華機器人科技教育學會

88

相撲車

正常速度

縮時播放

89 of 137

相撲車:車體組裝

中華機器人科技教育學會

89

組 裝

一台車子

01

加 上

顏色感測器

02

朝向 下方

距離地面高度

約一個橫桿積木

左邊馬達

插在 A 孔

右邊馬達

插在 B 孔

顏色感測器

插在 C 孔

十分鐘小車-spike-只有顏色感測器-2022-04-15.pdf

相撲車

90 of 137

相撲車:流程圖

中華機器人科技教育學會

90

顏色感測器

顏色=黑色

停止移動

X

開始

for

ever

向前移動

後退

某個距離

旋轉

某個角度

相撲車

91 of 137

相撲車:程式參考

中華機器人科技教育學會

91

① 停止移動

② 後退:8cm

③ 順時針旋轉:12cm

④ 向前移動↑

相撲車

92 of 137

相撲車+超音波:程式參考

中華機器人科技教育學會

92

超音波偵測

後退:10cm

逆時針旋轉

向前移動↑

相撲車

顏色偵測

93 of 137

相撲車:車體組裝問題

  • 顏色感測器,如果受到環境、光線等因素的影響,判斷黑線的準確度降低,可以嘗試使用課程01的車體,調高顏色感測器的高度

中華機器人科技教育學會

93

十分鐘小車-spike-顏感檢測大積木-2022-04-15.PDF

94 of 137

中華機器人科技教育學會

94

課後分享

95 of 137

我學到了什麼…………

中華機器人科技教育學會

95

我會使用顏色感測器,判斷不同的顏色嗎?

01

我會使用 If Then Else 的指令,編寫程式嗎?

02

舉例生活中的「條件」,正確與錯誤要做什麼事情?

03

讓車子一直在相撲圈內移動,有什麼秘訣嗎?

04

96 of 137

第14單元 機器人走出去

顏色感應器(判斷) 循線

ROBOTICS

97 of 137

學習目標

  • 學習顏色感測器應用
  • 理解循線邏輯及方法
  • 學習if then else判斷式概念
  • 完成循線任務

98 of 137

課程內容

  • 循線機器人與生活上的應用
  • 循線小車搭建
  • 顏色感測器原理及功能說明
  • 循線方法及程式

99 of 137

循線機器人與生活上的應用

參考影片網址:

  • 醫院體檢搬運系統

100 of 137

參考影片網址:

  • 無人送餐車

循線機器人與生活上的應用

101 of 137

顏色感測器功能

  • 顏色感測

感測物體表面顏色,可感測的顏色如下

  • 反射光感測

感測物體表面反射率 (0%~100%)

白色反射率 > 黑色反射率

  • 環境光感測

0~100% (暗~亮)

紅紫色、藍色、中藍

綠色、黃色、紅色

白色、黑色、沒顏色

那些功能適合循線?

102 of 137

顏色感測器循線邏輯

  • 顏色感測器感測到顏色或反射光強度
  • 程式判斷修正循線小車的方向,在黑線及白底間呈現S形的循線線形
  • 要正確修正循線小車的方向,必須決定循線開始前顏色感測器照射光擺放在黑線左邊或右邊。

註:上圖為顏色感測器照射光擺放在黑線右邊

103 of 137

單顏感循線線形差異

那種循線線形最好? 為什麼?

B

A

C

D

104 of 137

循線任務示意圖

循線小車延著黑線循線至終點紅線即停止

105 of 137

補充:SPIKE 程式設定 – 新增擴充模塊

  • 步驟一

Spike右下角新增擴充模塊

  • 步驟二

勾選 更多運動模塊

  • 步驟三

回程式主畫面找尋更多模塊

106 of 137

循線方法 - 1:感測顏色

107 of 137

感測白色:循線小車往左偏

感測黑色:循線小車往右偏

註:顏色感測器照射光擺放在黑線右邊

108 of 137

設定馬達連接埠

流程圖

程式參考

註:顏色感測器照射光擺放在黑線右邊

開始

顏色白色

左馬達功率:20

右馬達功率:30

顏色黑色

左馬達功率:30

右馬達功率:20

顏色紅色

結束

為擴充模塊,設定請點我!

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

迴圈停止條件為偵測紅色

判斷式:顏感偵到黑色時

馬達向右轉

馬達向左轉

判斷式:顏感偵到白色時

馬達停止

程式結束

109 of 137

  • 觀察:
  • 循線速度快慢?
  • 循線小車擺動幅度大小?
  • 彎曲線能否循線?
  • 調整:

左右馬達功率大小對速度及擺動幅度有何影響?

試著調整左右馬達功率到的最佳比例 

110 of 137

循線方法 - 2: 感測反射光強度(基礎)

111 of 137

白色反射強度高

黑色反射強度低

~100%

~50%

~0%

反射強度示意圖

(反射強度受外界光線及物體表面反射影響數據會有差異)

112 of 137

  • 在SPIKE程式左上角打開智能集線器連接

A. 量測白色反射強度

  • 尋找顏感並選擇反射

B. 量測黑線反射強度

113 of 137

基本型:

  • 黑白中心值:

(黑色反射強度+白色反射強度)/2

例. (17% + 98%) / 2 = 58 %

  • 程式判斷式:(二分法)
  • > 58% 🡪 白色
  • < 58% 🡪 黑色

計算反射光強度判斷值

58%

>58%

<58%

114 of 137

流程圖

程式參考

註:顏色感測器照射光擺放在黑線右邊

開始

左馬達功率:20

右馬達功率:30

反射<58%

左馬達功率:30

右馬達功率:20

顏色紅色

結束

馬達停止

1

2

3

4

5

6

7

設定馬達連接埠

1

2

3

4

5

6

7

迴圈停止條件為偵測紅色

判斷式:反射強度低於58時

馬達向右轉

馬達向左轉(反射強度大於58時)

馬達停止

程式結束

115 of 137

  • 觀察:
  • 循線速度快慢?
  • 循線小車擺動幅度大小?
  • 彎曲線能否循線?
  • 調整:

左右馬達功率大小對速度及擺動幅度有何影響?

試著調整左右馬達功率到的最佳比例 

116 of 137

循線方法 - 3: 感測反射光強度(進階)

117 of 137

進階型:

A. 黑白中心值:

(黑色反射強度+白色反射強度)/2

例. (17% + 98%) / 2 = 58 %

B. 黑白中心值與白色反射強度的中心值

(黑白中心值+白色反射強度)/2

例. (58% + 98%) / 2 = 78%

C.中心值與黑色反射強度間的中心值

(中心值+黑色反射強度)/2

例. (58% + 17%) / 2 = 38%

  • 程式判斷式:(四分法)
  • >78% 🡪 白色
  • <38% 🡪 黑色
  • >38% & <58% 🡪偏黑
  • >58% & <78% 🡪偏白

58%

<38%

>78%

計算反射光強度判斷值

118 of 137

流程圖

註:顏色感測器照射光擺放在黑線右邊

開始

左馬達功率:20

右馬達功率:30

反射<58%

左馬達功率:30

右馬達功率:20

顏色紅色

結束

反射<38%

左馬達功率:30

右馬達功率:25

反射>78%

左馬達功率:25

右馬達功率:30

馬達停止

  • 程式判斷式:(四分法)
  • 依照不同比例判斷偏軌程度
  • 偏離程度愈大轉彎幅度愈大

119 of 137

程式參考

1

2

3

4

5

6

7

設定馬達連接埠

1

2

3

4

5

6

7

8

迴圈停止條件為偵測紅色

判斷式:反射強度<58時

判斷式:反射強度<58且<38時

馬達向右轉(小)反射強度<58且>38時

馬達向右轉(大)

馬達停止

程式結束

8

9

10

11

判斷式:反射強度>58時且>78時

馬達向左轉(大)

9

馬達向左轉(小)反射強度>58且<78時

10

11

120 of 137

  • 觀察:
  • 循線速度快慢?
  • 循線小車擺動幅度大小?
  • 彎曲線能否循線?
  • 調整:

左右馬達功率大小對速度及擺動幅度有何影響?

試著調整左右馬達功率到的最佳比例 

121 of 137

循線方法 – 4: 感測反射光強度(運算)

122 of 137

循線任務示意圖

循線小車延著黑線循線至終點紅線即停止

123 of 137

124 of 137

(白值-反射光)*1 (反射光-黑值)*1

125 of 137

本篇結束

126 of 137

循線小車搭建

127 of 137

循線小車搭建

128 of 137

循線小車搭建

129 of 137

循線小車搭建

130 of 137

循線小車搭建

131 of 137

循線小車搭建

132 of 137

循線小車搭建

133 of 137

循線小車搭建

134 of 137

循線小車搭建

135 of 137

循線小車搭建

136 of 137

循線小車搭建

137 of 137

循線小車搭建

Port A : 右馬達

Port B : 左馬達

Port D : 顏色感測器