小車程式實作

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

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

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

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

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

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

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

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

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

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

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

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