# 小車程式實作

在前面的單元中，我們知道可以開啟馬達以及讓每一個輪子前進、後退的方法，它們分別是：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEDLPGJAORBvaGW3t2%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%889.45.47.png?alt=media\&token=71356a1e-ffff-474c-b371-b778996db8be)

其中我們只會使用到前面兩個，第1個用來控制馬達打開或是關閉，而第2個即是用來控制某一個馬達的前進速度或是後退的速度，也就是正轉馬達或是反轉馬達。所以，如果要讓車子前進一段時間再停止，就需要使用以下的積木組合：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEE1tQkZAylAvdhud8%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%889.49.10.png?alt=media\&token=e3e193da-450b-4ecb-bec5-0671aa68ab90)

在上述的例子中，先開啟馬達，接著設定左側的馬達前進速度為50，右側也是前進速度設定為50，再來等待0.2秒的時間，再把左右馬達的速度都設定為0，再關閉馬達。這樣子的話，我們的車子就會以50的速度前進0.2秒 。同學們可以修改暫停的秒數讓車子前進的時間久一些，當然車子就會前進更多的距離。

但是有了這些積木車子並不會自動地前進，你必須要有一個觸發它們的事件才行，在micro:bit中，最直接的方式就是利用它的AB按鈕。假設我們希望讓車子可以在同時按下A和B按鈕之後前進的話，就需要把上面這些積木放到以下的輸入事件：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEFDFEp2UbEngW9v_2%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%889.54.13.png?alt=media\&token=042bf5bb-229e-4200-b7cc-425488020f04)

當你把這個程式寫到板子上時，當你再次按下A+B按鈕時，車子就可以順利地前進了。不過，你會發現它只前進了一點點，因為我們的設定只有0.2秒而已。要讓車子前進多一點，你可以改變它的秒數，但是在這邊我們打算用迴圈來進行。

首先，先把前進0.2秒的積木變成一個函式，如下所示：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEGNsE2VrjHFYJQvlh%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%889.59.21.png?alt=media\&token=99b628bd-725c-4df7-9e8a-55d1f1d87c06)

這個在左側積木類別的函式中可以新增這樣的積木：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEGpHsFD4W6J71wb9E%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%8810.01.06.png?alt=media\&token=c4cb96c5-0bc1-4f42-87b5-aadb541cd969)

如上圖所示，我們依序建立前進（move-forward）、停止（stop）、左轉（turn-left）、以及右轉（turn-right）這4個函式積木：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEHFfdLt__BpqmP_qA%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%8810.03.13.png?alt=media\&token=7bb427a8-0262-44d7-b64b-3393627f6178)

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEHOMbb1A3Ssl4imSW%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%8810.03.42.png?alt=media\&token=3dce8ba3-e123-40c9-b916-b446a217c7f9)

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEHRNyddQUOWfTuKG3%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%8810.03.47.png?alt=media\&token=48a9c769-9c1b-4e37-8955-bb637eda636d)

有了這些函式積木之後，我們就可以自由地組合這些積木，以控制車子的行駛路徑了，例如以下這樣：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEHj_me5qpMtJuqa_m%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%8810.05.20.png?alt=media\&token=f9df5b0a-7df5-4e4b-b5e1-d19f03a624e1)

同學們可以先試試看前面這樣會跑出什麼樣的路徑，再自行修改迴圈重複的次數，不同的組合就可以產生不同的行走路徑喔。

不過在一開始的時候別忘了要先讓馬達停止，如下：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEIAkqxCa8grtNUB84%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-04-12%20%E4%B8%8A%E5%8D%8810.07.07.png?alt=media\&token=db6e13d5-a7ca-4544-8100-70f66a9075d9)

才不會一開始的時候車子就開始亂跑喔。

{% file src="<https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LcECdghW03e7-3QAcoG%2F-LcEIwxccPMjpjVlWR4a%2Fmicrobit-car-program.hex?alt=media&token=78c27a60-58cf-4e77-80d8-97296b6b60c1>" %}
示範程式積木下載
{% endfile %}

{% file src="<https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LdwCPe9D8bwNBwIdqZY%2F-LdwCULExMkRhUmb6FyH%2Fmicrobit-car-program-array.hex?alt=media&token=13f3b3b7-22c9-4a0f-aaae-3ff77c5749cf>" %}
