1 of 104

偏鄉服務課程

ROBOTICS

機器人 X 程式設計

ROBOTICS

2 of 104

第八單元

機器人走出去 (一)

3 of 104

1.依據特定步驟製作自走車機構 

2.學習自走車移動控制 

3.運用序列化指令完成任務 

在這單元我們將學到:

4 of 104

課程內容

中華機器人科技教育學會

4

5 of 104

十分鐘小車組裝

課程01

6 of 104

7 of 104

8 of 104

9 of 104

10 of 104

11 of 104

12 of 104

13 of 104

14 of 104

15 of 104

16 of 104

17 of 104

18 of 104

19 of 104

20 of 104

21 of 104

22 of 104

23 of 104

24 of 104

25 of 104

課程01:插入馬達連接線

中華機器人科技教育學會

25

車子前進方向

站在車子後面

面對行進方向時,左A 右B

左邊馬達

插 A 孔

右邊馬達

插 B 孔

26 of 104

運動積木的說明

課程02

27 of 104

設定執行環境

自走車的兩顆馬達是接輪胎的零件,因此要告訴主機,我們要使用這二個端口(連接埠),

來控制左右馬達(輪胎)

〔一定要設定〕

這個積木代表兩顆馬達的轉速設定相同的50%,如果任務內容會需要設定兩顆馬達要有不同轉速,那麼這個積木就不需要放入。

〔不一定要設定〕

定義端口

馬達轉速

28 of 104

運動積木:設置運轉電機

中華機器人科技教育學會

28

運動積木可同時控制兩個馬達

第一個指定的端口用於設置左側馬達

第二個指定的端口用於設置右側馬達

不指定時,預設端口為:A(左)、B(右)

29 of 104

運動積木:設置運轉電機

中華機器人科技教育學會

29

設定:左邊馬達插 A 孔

設定:右邊馬達插 B 孔

點選端口編號,可進行變更

左邊、右邊馬達的端口設定很重要,一定要設定正確

如果馬達的插線不是左A右B,請自行更改

30 of 104

運動積木:馬達運轉速度

中華機器人科技教育學會

30

設定馬達運轉速度,速度範圍為:-100%到100%,

負值表示馬達逆時針運轉。

預設速度為:50%

輸入數值超出設定範圍,以最大上限/下限值進行馬達控制

範圍:-100~100%

一次設定兩個馬達的速度,無法分開設定

-100~0%

0~100%

31 of 104

運動積木:移動指定單位數

32 of 104

運動積木:移動指定單位數

中華機器人科技教育學會

32

向「前」的方向,運行「10」「cm」,之後停止移動�預設端口為A(左)和B(右)

預設速度為50%

前進方向

設定想轉動的單位:

公分、英吋、圈數、秒數、度數

車子前進:左右馬達順時鐘旋轉

車子後退:左右馬達逆時鐘旋轉

車子逆時針旋轉:左馬達時鐘、右馬達時針旋轉

車子順時針旋轉:左馬達時鐘、右馬達時針旋轉

公分

英吋

圈數

度數

秒數

必須搭配另一個積木,才能發揮作用

33 of 104

試試看:移動指定單位數

中華機器人科技教育學會

33

程式編輯完成後,在SPIKE軟體的右下角

選擇程式號碼(0~19),按下「 ▶ 」,

將程式傳到SPIKE主機內

傳輸並執行程式

停止程式

34 of 104

試試看:移動指定單位數

中華機器人科技教育學會

34

下面兩個程式,執行後觀察機器人的動作,有什麼不一樣嗎?

提示:

  • 觀察SPIKE軟體的右下角的圖案
  • 觀察SPIKE主機上面的燈號狀態

建議使用

不建議使用

35 of 104

試試看:移動指定單位數

中華機器人科技教育學會

35

請分別執行右邊程式,�觀察:

  • 馬達的轉動方向
  • 車子的移動方向

36 of 104

試試看:移動指定單位數

中華機器人科技教育學會

36

請分別執行右邊程式,�觀察:

  • 馬達的轉動方向
  • 車子的移動方向

37 of 104

順時針的轉動方向

中華機器人科技教育學會

37

38 of 104

馬達轉動圈數 與 馬達轉動度數 的關係

中華機器人科技教育學會

38

0 度

90 度=0.25 圈

180 度=0.5 圈

270 度=0.75 圈

360 度=1 圈

45 度=0.125圈

135 度=0.375 圈

225 度=0.625 圈

315 度=0.875圈

39 of 104

馬達轉動圈數 與 馬達轉動度數 的關係

中華機器人科技教育學會

39

0

360

40 of 104

中華機器人科技教育學會

40

41 of 104

運動積木:移動指定單位數

中華機器人科技教育學會

41

設定端口為A(左)和B(右)

等待「1」秒

向「」的方向,運行「1圈

向「」的方向,運行「1圈

程式沒有指定速度,�使用預設速度50%

停止,並離開程式

向「」的方向,運行「1圈

向「」的方向,運行「1圈

停止,並離開程式

42 of 104

試試看:移動指定單位數

中華機器人科技教育學會

42

向「逆時針」的方向,運行「2圈

向「逆時針」的方向,運行「2秒

程式沒有指定速度,�使用預設速度50%

43 of 104

試試看:移動指定單位數

中華機器人科技教育學會

43

向「逆時針」的方向,運行「2秒

向「順時針」的方向,運行「2秒

順時針方向

如果車子的實際旋轉方向與程式設定的轉向相反,代表左右馬達的接線與程式設定不一樣。

44 of 104

試試看:移動指定單位數

中華機器人科技教育學會

44

設定端口為A(左)和B(右)

向「」的方向,運行「2圈

停止,並離開程式

設定馬達運轉速度=50%

設定馬達運轉速度=100%

車子的移動速度,是不是變快了?

45 of 104

試試看:移動指定單位數

中華機器人科技教育學會

45

設定端口為A(左)和B(右)

向「」的方向,運行「2圈

設定馬達運轉速度=100%

兩個程式的動作相同

設定馬達運轉速度=-100%

注意

移動方向

停止,並離開程式

46 of 104

試試看:移動指定單位數

中華機器人科技教育學會

46

設定端口為A(左)和B(右)

向「順時針」的方向,運行「90度

設定馬達運轉速度=100%

停止,並離開程式

程式執行後,觀察看看,車子大概轉了幾度?

車子,真的有轉90度嗎?

90度,是指馬達旋轉90度,車子不一定也會轉90度

47 of 104

試試看:讓車子順時針旋轉90度

中華機器人科技教育學會

47

48 of 104

運動積木:持續移動

中華機器人科技教育學會

48

49 of 104

運動積木:持續移動

中華機器人科技教育學會

49

向「前」的方向,開始移動�預設端口為A(左)和B(右)

預設速度為50%

移動方向

車子前進:左右馬達順時鐘旋轉

車子後退:左右馬達逆時鐘旋轉

車子逆時針旋轉:左馬達時鐘、右馬達時針旋轉

車子順時針旋轉:左馬達時鐘、右馬達時針旋轉

??似曾相識??

50 of 104

比較差異:持續移動

中華機器人科技教育學會

50

向「前」的方向移動

這行程式指令結束,執行下一行的程式指令

向「前」的方向移動,運行「10 cm」後停止移動

這行程式指令結束,執行下一行的程式指令

沒有設定停止移動的條件,馬達會繼續按照設定的轉動方向,持續運轉

直到程式停止執行 或 後面的程式有設定馬達運轉改變的指令出現。

51 of 104

試試看:持續移動

中華機器人科技教育學會

51

執行左邊的兩個程式,觀察車子的運轉狀態

小心!!

有一個程式,會讓車子一直持續移動,不會停止

52 of 104

試試看:持續移動

中華機器人科技教育學會

52

這兩個程式執行後,動作是相同的。

實際感受看看吧!!

53 of 104

為什麼要使用:持續移動

中華機器人科技教育學會

53

向「前」開始移動

等待觸碰感測器C,被「按壓」

停止移動

在觸碰感測器C被「按壓」之前,A、B馬達會持續一直保持向前運轉的狀態

54 of 104

運動積木:轉向移動指定單位數

中華機器人科技教育學會

54

55 of 104

運動積木:轉向移動指定單位數

中華機器人科技教育學會

55

向「straight:0」的方向,運行「10」「cm」,之後停止移動�預設端口為A(左)和 B(右)

預設速度為50%

移動方向

設定想轉動的單位:

公分、英吋、圈數、秒數、度數

公分

英吋

圈數

度數

秒數

必須搭配另一個積木,才能發揮作用

設定值:-100~0~100

56 of 104

運動積木:前後、轉向移動

中華機器人科技教育學會

56

設定端口為A(左)和 B(右)

向「」的方向,運行「1圈

預設速度為50%

兩個程式的動作是相同的

57 of 104

試試看:轉向移動指定單位數

中華機器人科技教育學會

57

執行下面的程式,觀察車子運轉的狀態

觀察電腦內程式上方,顯示的馬達狀態

58 of 104

試試看:轉向移動指定單位數

中華機器人科技教育學會

58

向右:30

右側輪子變慢

向右:50

右側輪子不動

向右:100

左、右側輪子

轉速相同、方向不同

59 of 104

試試看

  • 使用運動積木
    • 讓機器人
      • 向前走 2 秒,向後走 2 秒

    • 讓機器人
      • 直走1圈
      • 走一個直角(轉90度)
      • 直走一圈

    • 讓機器人
      • 向前走 30 公分

中華機器人科技教育學會

59

60公分

60 of 104

試試看:向前走 2 秒,向後走 2 秒

中華機器人科技教育學會

60

61 of 104

試試看:向前走、直角、向前走

  • 讓機器人
    • 直走1圈
    • 走一個直角
    • 直走一圈

中華機器人科技教育學會

61

62 of 104

補充:讓SPIKE告訴你轉了幾度?

中華機器人科技教育學會

62

陀螺儀歸零

將陀螺儀數值,顯示在螢幕上

設定端口為A(左)和B(右)

設定馬達運轉速度=20%

向「順時鐘」的方向,運行「0.56圈

將陀螺儀數值,顯示在螢幕上

停止,並離開程式

63 of 104

試試看:向前30公分

中華機器人科技教育學會

63

使用SPIKE小輪胎

直徑:5.6 cm

64 of 104

試試看:相同的程式,更換不同尺寸的輪胎

中華機器人科技教育學會

64

EV3大輪胎

直徑:6.88 cm

中輪胎

直徑:5.6 cm

EV3小輪胎

直徑:4.32 cm

  • 安裝不同尺寸輪胎的車子,觀察車子前進的距離,是否一樣嗎?
  • 影響車子前進的距離,主要是什麼原因ㄟ??

65 of 104

實驗不同輪胎的移動距離

中華機器人科技教育學會

65

輪胎編號

輪胎直徑

馬達運轉1圈前進的距離

前進距離 ÷ 輪胎直徑

  • 記錄不同尺寸輪胎,在馬達運轉1圈時,車子前進的距離,記錄在表格內
  • 請在平坦的桌面或地面進行實驗
  • 觀察輪胎直徑與移動距離之間的關係

66 of 104

運動積木:馬達旋轉一圈的移動距離

中華機器人科技教育學會

66

67 of 104

運動積木:馬達旋轉一圈的移動距離

67

校正車子的輪胎尺寸,設定馬達旋轉一圈會移動的距離數值

讓運動積木內的距離單位(cm、in),能夠移動出正確的距離

EV3大輪胎

直徑:6.88 cm

圓周長:21.6 cm

中輪胎

直徑:5.6 cm

圓周長:17.5 cm

SPIKE小輪胎

直徑:5.6 cm

圓周長:17.5 cm

EV3小輪胎

直徑:4.32 cm

圓周長:13.5 cm

68 of 104

輪胎大小與前進距離

中華機器人科技教育學會

68

17.5 cm

SPIKE小輪胎的圓周長 = 5.6 × 3.14

= 17.5. cm = 17.5 公分

17.5 ÷ 360 度 = 0.0486 公分

圓周長 = 直徑 × π =直徑 × 3.14

馬達裝上SPIKE小輪胎,

馬達轉 1 圈,理論上,車子會移動 17.5 公分

馬達轉 1 度,理論上,車子會移動 0.0486 公分

69 of 104

圓周長與直徑

  • 輪胎轉動一圈
    • 輪胎直徑比較大的車子,前進的距離比較
    • 輪胎直徑比較小的車子,前進的距離比較

中華機器人科技教育學會

69

70 of 104

誰走的比較遠?

中華機器人科技教育學會

70

下面的兩個人,向前走十步,一般的情況下,誰走的距離可能會比較遠?

71 of 104

圓周長與直徑

中華機器人科技教育學會

71

按住紅色「×

上下移動滑鼠

可以改變直徑大小

拉動紅色「」,可以展開圓周長

72 of 104

量度圓周率

中華機器人科技教育學會

72

73 of 104

試試看:向前30公分

中華機器人科技教育學會

73

設定馬達轉一圈(輪胎轉一圈)的距離=17.5 cm

SPIKE小輪胎的圓周長 = 17.5 公分

30公分 ÷ 17.5= 1.714 圈

動作相似

74 of 104

試試看:向前30公分

中華機器人科技教育學會

74

安裝不同尺寸的輪胎時,要更改這個數值,車子才會正確前進30 cm

EV3大輪胎

直徑:6.88 cm

圓周長:21.6 cm

中輪胎

直徑:5.6 cm

圓周長:17.5 cm

SPIKE小輪胎

直徑:5.6 cm

圓周長:17.5 cm

EV3小輪胎

直徑:4.32 cm

圓周長:13.5 cm

75 of 104

試試看:走一個正方形

  • 讓機器人,在地上走一個正方形

中華機器人科技教育學會

75

76 of 104

試試看:走一個正方形

中華機器人科技教育學會

76

直走

轉彎

直走

轉彎

直走

轉彎

直走

77 of 104

運動積木:以設定速度移動指定單位數

中華機器人科技教育學會

77

78 of 104

新增運動擴充積木

中華機器人科技教育學會

78

左下角找到

Show block extensions

來新增擴充積木

點選

新增擴充積木

79 of 104

新增運動擴充積木

中華機器人科技教育學會

79

勾選後關閉

80 of 104

左邊綠框是擴充後增加的新積木

收集在顏色程式列的最下方

可以做更多雙馬達的程式控制

今天要介紹的是這個積木

81 of 104

運動積木:以設定速度移動指定單位數

中華機器人科技教育學會

81

讓左邊、右邊馬達,以設定的速度運轉,轉動到指定單位數

預設端口為A(左)和B(右)

預設速度為50%

設定想轉動的單位:

公分、英吋、圈數、秒數、度數

公分

英吋

圈數

度數

秒數

必須搭配另一個積木,才能發揮作用

速度範圍:-100~100%

左側馬達

速度設定

右側馬達

速度設定

移動「10」「cm」,

設定

左側馬達為「50」%的速度,

右側馬達為「50」%的速度

82 of 104

試試看:以設定速度移動指定單位數

中華機器人科技教育學會

82

分別執行下面兩個程式,觀察車子的動作

兩個程式的動作是相同的

83 of 104

試試看:以設定速度移動指定單位數

中華機器人科技教育學會

83

分別執行下面兩個程式,觀察車子的動作

兩個程式的動作是相同的

84 of 104

試試看:以設定速度移動指定單位數

中華機器人科技教育學會

84

想一想,如果要讓車子跑快一點

例如:讓全部的速度=100%

這兩個程式要如何修改??

分別執行下面兩個程式,觀察車子的動作。兩個程式的動作是相同的。

85 of 104

試試看:不同速度差異的轉向

中華機器人科技教育學會

85

分別這幾個程式,觀察車子的動作與轉彎的幅度

86 of 104

車子前進原理

車子向前,直線行進,

是左右兩輪同時間、同速度

向前轉動的狀態。

87 of 104

車子前進積木

當程式執行時

車子以左輪用 50%的速度� 右輪用 50%的速度� 移動30公分

設定馬達端口為左A、右B

A

B

仔細觀察左右馬達的轉動方向,其實是相反的,有發現嗎?

因為這行指令,讓SPIKE程式自動幫我們修正轉動方向

88 of 104

車子後退原理

車子向後,直線行進(倒車)

是左右兩輪同時間、同速度

向後轉動的狀態。

89 of 104

車子後退積木

當程式執行時

車子以左輪用 -50%的速度� 右輪用 -50%的速度� 移動30公分

設定馬達端口為A和B

A

B

90 of 104

任務一

向前移動30公分,再向後30公分

我們可以發現,車子會向前走和向後退,是因為設定數值的正值或負值。

調整數值的正負值,可以改變馬達轉動的方向

91 of 104

任務一:程式解答

中華機器人科技教育學會

91

92 of 104

車子左轉原理(邊軸旋轉)

不轉

旋轉

中心

左輪不動,右輪向前轉,

可以讓車子以左輪為中心,

向左轉彎。

93 of 104

車子左轉積木(邊軸旋轉)

當程式執行時

車子以左輪用100%的速度� 右輪用100%的速度� 移動30公分

設定馬達端口為A和B

不轉

旋轉

中心

94 of 104

車子右轉原理(邊軸旋轉)

不轉

旋轉

中心

右輪不動,左輪向前轉,

可以讓車子以右輪為中心,

向右轉彎。

95 of 104

車子右轉積木(邊軸旋轉)

當程式執行時

車子以左輪用100%的速度� 右輪用100%的速度� 移動30公分

設定馬達端口為A和B

不轉

旋轉

中心

96 of 104

轉彎測試

試試看,讓車子左轉一個直角(90度)

再試試看,讓車子右轉一個直角(90度)

連續動作,左轉90度後,�再右轉90度。

97 of 104

任務二-實驗時間

  1. 讓車子順時針繞一圈。
  2. 讓車子逆時針繞一圈。
  3. 你能讓它繞的更大圈嗎?
  4. 你能讓它繞的更小圈嗎?
  5. 你是如何辦到的?

請讓車子走出像左圖的移動路線

98 of 104

任務二-實驗結果-差速

車子走出像左圖的移動路線-差速轉彎

50

20

?

左右馬達設定不同數值,兩輪同時移動但速度不同,形成差速,因此移動軌跡成為弧線繞圈。

99 of 104

邊軸旋轉

一輪不動,只轉另一輪,讓車子以不動的那輪為中心移動,做出轉彎動作。��我們還有另一種轉法。

不轉

100 of 104

中軸旋轉

兩輪同時向不同的方向旋轉,

旋轉速率相同、方向相反

會形成以車子中心為旋轉中心的方式旋轉

101 of 104

任務三

  1. 讓車子以中軸旋轉,順時針繞一圈
  2. 讓車子以中軸旋轉,逆時針繞一圈

102 of 104

任務四

  1. 請說出「中軸旋轉」和「邊軸旋轉」的差異。
  2. 你在什麼情況會用「中軸旋轉」?
  3. 你在什麼情況會用「邊軸旋轉」?

103 of 104

試試看:進階圖形

  • 讓機器人,在地上走一個8字形

中華機器人科技教育學會

103

104 of 104

運動積木:總結

中華機器人科技教育學會

104

向「前」的方向,運行「1圈」

向「前」開始移動

向「right:30」的方向,運行「1圈」

向「right:30」的方向,開始移動

以左馬達50、右馬達50,運行「1圈」

以左馬達50、右馬達50,開始移動