# 小車程式實作

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

![](/files/-LcEDLPGJAORBvaGW3t2)

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

![](/files/-LcEE1tQkZAylAvdhud8)

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

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

![](/files/-LcEFDFEp2UbEngW9v_2)

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

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

![](/files/-LcEGNsE2VrjHFYJQvlh)

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

![](/files/-LcEGpHsFD4W6J71wb9E)

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

![](/files/-LcEHFfdLt__BpqmP_qA)

![](/files/-LcEHOMbb1A3Ssl4imSW)

![](/files/-LcEHRNyddQUOWfTuKG3)

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

![](/files/-LcEHj_me5qpMtJuqa_m)

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

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

![](/files/-LcEIAkqxCa8grtNUB84)

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

{% file src="/files/-LcEIwxccPMjpjVlWR4a" %}
示範程式積木下載
{% endfile %}

{% file src="/files/-LdwCULExMkRhUmb6FyH" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nkust.gitbook.io/micro-bit/kong-xiao-cheng-shi-zuo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
