遙控小車硬體組裝及程式入門

遙控車有許多種型式,在本單元中我們使用的是現成的套件,在組裝完成之後,直接利用micro:bit的積木就可以馬上驅動,非常方便喔。

遙控小車簡介

本單元使用的遙控小車,是由moto:bit所驅動控制的套件模組。它的規格如下:

我們組裝完成之後,從上面看起來是這個樣子:

近一點看的話,如下:

它的底下有3個紅外線感測器,可以用來做自車循跡之用:

整個架構還有許多的空間,可以讓我們多加裝一些裝置上去,之後我們會再教如何新增額外的感測器以及裝置:

小車驅動積木的安裝

由於這台小車的開發公司已經做好了一些現成的積木可以使用,所以我們要做的只是先把他們做好的積木拿進來使用就可以了,請到micro:bit的環境,找到「擴展」積木的功能,如下:

在擴展積木的介面中輸入moto:bit搜尋,即可找到控制小車用的積木:

點選這個積木之後,回到程式設計環境,就可以看到多出來的控制積木了,如下所示:

在moto:bit的積木中總共有3個積木可以使用,分別用來控制馬達的開以及關,還有左右馬達前進還是後退的速度,以及設定馬達的轉向等。

讓小車開始前進

假設我們想要讓小車在按下A按鈕是左轉一圈,B按鈕時右轉一圈,則可以設計以下的程式積木:

上面的程式燒錄完成之後,小車就會在按下按鈕之後進行原地迴圈的功能。但是,如果要讓小車遶大一點的圈圈的話,那麼另外一輪就不能都不動,而是要跟著動,但是要慢一些,由於比較大圈了,所以中間暫停的時間也就可以改長一點,程式修改如下:

接下來,我們也可以加上同時按下A和B按鈕時,車子可以直行前進,程式積木如下:

在充分練習之後,同學們自己是否可以想出更多有趣的組合了呢?以下是一個繞S形的版本,同學們也可以試試看自己的版本喔。

遙控車版本

由於 micro:bit本身即具有無線電廣播的能力,因此拿另外一片來當做遙控器是再好不過了。接下來我們來看看如何達成遙控的功能。

遙控器micro:bit製作

要做一台遙控車,除了車子本身要有被遙控的能力之外,當然還要有遙控器才能夠用來控制車子。因為micro:bit預設有無線電廣播的功能,因此可以很簡單地就製作出搖控器。micro:bit的廣播積木有以下這幾種:

由於板子可能會同時很多片在附近,因此要使用無線電廣播的第一件事,就是讓兩片或多片彼此想要通訊的板子使用相同的廣播群組,這個設定的工作,請在一開始「當啟動時」的積木中設定使用,如下所示:

所以,在這個例子中,搖控器和車子上的板子,都要設定如上所示的相同群組。而廣播的內容可主要有三種型式,第一種是傳送一個數字,第二種是傳送一個「鍵--值」對,第三種則是傳送一段文字。為了簡化示範的內容,在這個例子中我們只打算傳送數字,利用不同的數字內容,來決定要如何控制車子的行動。

在此,我們定義的控制鍵如下:

遙控器操作

傳送之數字

代表意義

A

1

左轉

B

2

右轉

A+B

3

前進

雖然在上面的表格中我們列出當按下A按鈕時會左轉,但是在遙控器的動作其實只是廣播數字1出去而已,真正左轉的動作,是在車子上的micro:bit板子中要做的回應操作,另外兩個按鈕方式也是同樣的情形。

遙控器上的完成程式積木如下:

遙控器的程式就這麼簡單喔。

車子上的micro:bit

前面的遙控器只是負責下命令,真正要讓車子前進或轉彎的操作,是在車子上的板子來完成的。對於車子上的micro:bit而言,第一件事也是要設定和遙控器上相同的廣播群組,接著就根據收到的數字,決定要進行的操作。設定廣播群組的積木如下:

為了簡化程式的設計,先來分別設計出左轉、右轉、和前進的函式。建立函式的位置如下:

在按下建立一個函式按鈕時,micro:bit會詢問我們要建立的函式名稱,我們可以使用中文名字「左轉」來命名。命名完畢之後,就可以看到「左轉」這個函式了:

接下來依序建立右轉以及前進這兩個函式,如下所示:

當函式名稱命名之後,就可以在程式設計區分別為這些函式進行定義,前進的函式定義如下:

上面這段程式積木可以讓車子前進0.5秒。接著左轉:

以及右轉:

同學們可以分出它們之間的差異嗎?

有了這些積木之後,接著就可以利用廣播所收到的數字,決定要驅動哪一個動作了,程式如下所示:

同學可以修改上述程式積木的數字,實際上遙控看看喔。

比賽影片

https://www.facebook.com/wesleyscratch/videos/506461176498336/