2019年3月26日 星期二

HaloCode 與 micro:bit,哪個更適合教學?

Makeblock 早前推出新的可編程電路板,名叫 HaloCode。這塊小小的 HaloCode 與英國 BBC 推出的 micro:bit 很相似。micro:bit 已經在學界中佔有了一定的市場,不少學校也有使用 micro:bit 作教授計劃思維的工具。而 HaloCode 則剛打進市場,到底 HaloCode 有沒有潛力在學界中佔一席位呢?

HaloCode 簡介

HaloCode 是一塊內置 Wi-Fi 功能的小型電子模塊,尺寸小巧的機身,直徑只有 45 mm。使用 mBlock 5 進行編程,支持圖形化編程及Python,並配備物聯網應用,可讓每個人都能輕鬆實現有趣的電子創作。




處理器內核:Xtensa 32-bit LX6 雙核處理器
主頻率:240MHz
連接方式Wi-Fi/藍牙/Micro USB 串口
板載內存Flash ROM:440K
RAM:520K
擴展內存存儲(SPI Flash):4MB
內存(PSRAM):4MB
板載電子元件
  • 可編程彩色 LED × 12
  • 運動傳感器(6軸加速度計及陀螺儀)× 1
  • 麥克風(可檢測語音及音量)× 1
  • 可編程按鈕 × 1
  • 觸摸傳感器(I/O擴展引腳) × 4
工作電壓3 至 5V
產品尺寸直徑 45mm
淨重量10g

與 micro:bit 比較

接著我會根據我的用後經驗,對單塊的 HaloCode 及單塊的 micro:bit 進行比較,比較範疇主要會與編程教學、教學應用及學校廣泛使用相關,可讓同工們有所參考。(以下內容只代表本人意見)

是否方便攜帶?

學校要考慮廣泛使用,必定會考慮到電子板的大小和重量,畢竟學生需要帶回家練習,又再帶回校上課,如果有如 mBot 的大小和重量,實在不太方便。micro:bit 是長方形的,長 50mm,闊 40mm,重 5g,與 HaloCode 相比,尺寸大小差不多。

而 micro:bit 則比 HaloCode 輕 5g,但是你真的分辨到 5g 的差別?加上兩者都會帶 USB 連接線、電池等配件,放入保護盒或保護套中,因此加起來的重量應該不相伯仲,這個回合不禁引用曾志偉先生的名言:「打和(平手)!」

編程軟件方便宜用嗎?

micro:bit 使用的編程軟件是他們的在線編輯器— MakeCode Editor 及 Python 程式編輯器,學校使用時,只需要一部可以連接互聯網的電腦就可以了,甚至使用 iPad 也可以,方便至極。但我不只一次聽說過,有學校在上課時,全班同時開啟在線編輯器,導致電腦室內網絡癱瘓,雖然我從沒有試過這個情況,但問題的而且確存在。


而 HaloCode 則與其他 Makeblock 新產品相同,使用 mBlock 5 作為編程軟件,介紹影片中可以使用 mBlock App 作編程,控制 HaloCode 作 IoT 智能家居。mBlock 5 基於 Scratch 3.0 開發,可進行積木式編程和代碼編程(Arduino C 及 Python)。它除了支持 Makeblock 所有產品外,更支持 Arduino 及 micro:bit 等硬件的編程,同時融入了人工智能(AI)和物聯網(IoT)等技術,為編程教育和學習提供更好的支持。

一直以來,能夠離線編程都比在線編程方便,不用擔心網絡的問題,加上 mBlock 5  支持不同的硬件進行編程,甚至對家的 micro:bit 也有支持,學生可在學習 Scratch 3.0 時已經開始使用 mBlock 5,慢慢學習 Neuron、mBot、micro:bit 等,從始至終,只需認識一套介面,不會因為介面轉變,而對學習過程有所影響。

連接及下載程式是否方便?

有使用過 micro:bit 的人都知道,micro:bit 有兩種連接方式— USB 及藍牙。如果用平板電腦就可以使用藍牙作連接,但每次上載程式都有機會要重新連接,對於小學生來說,有一定的麻煩程度。而電腦版的 USB 連接,步驟十分簡單,不就是連接 USB、下載 HEX 檔案、複製檔案,最後在 MICROBIT 貼上,難度就在於學生用不同的瀏覽器,就會有不同的預設下載位置,另外一個經常有學生問我的問題就是,「老師,檔案貼到 MICROBIT 後不見了!」



而 HaloCode 沿用 mBot 的下載方式,連接 USB 後,選對連接埠,就可以直接下載到 HaloCode 上,整個流程只花幾秒時間。HaloCode 也支持藍牙連接,但需要用到 Makeblock 出品的 Bluetooth Dongle

引腳夠多嗎?

micro:bit 總共有 20 個引腳,讓你能接駁不同的電子元件,但我很想知道,有沒有人能不用擴展板,就能全用 20 個引腳呢?實際上,單塊 micro:bit 上你最有能力使用的只有「Pin 0」、「Pin 1」、「Pin 2」 3個引腳。而 HaloCode 上就有 4 個引腳,4 個引腳加上 HaloCode 板載的感應器,相信已經足夠新手及進階者學習編程使用。

重點:編程教學容易嗎?

初次使用可以參看 HaloCode 的「新手說明書」,它裡面簡單介紹了 HaloCode 的用法,也給了 11 個不同難度的例子,接著我會用其中的 4 個例子,再加上 1 個額外例子,在 HaloCode 及 micro:bit 上編程,看看他們的分別。其餘的例子有些是情況差不多,而有些是 micro:bit 沒有這個功能,也不用說比較甚麼。

1. 做笑臉

「做笑臉」是一個非常簡單的程式,不就是玩一下 LED 而已,那為甚麼要拿來比較呢?原因就在於它們的 LED 有不同的分別,micro:bit 有 25 顆紅色的 LED,以 5 x 5 的形狀排列,程式編寫只需要簡單的用「顯示 LEDs」或是「顯示圖案」就可以顯示出來。


而 HaloCode 有 12 顆可變色 LED,呈圓形排列,要做出笑臉圖案,首先要知道 LED 的編號,不像 mBot 一樣,板上沒有標示 LED 的編號,最清楚容易的記法是將 HaloCode 當作是「時鐘」,就可以記住 LED 的編號了。


接下來,就要知道你打算亮起哪一顆 LED,逐顆用程式把它們亮起來,沒有更快的方法。而且由於外型所限,不能像 micro:bit 一樣,做出很多有趣的圖案。

當然,你介意顏色選擇少,也可以這樣做:




micro:bit 的笑容更有善、更可愛。

2. 音量檢測計

micro:bit 沒有板載的聲音感應器,但我覺得「進度計」這個功能很有趣,就連 mBot 也沒有。「進度計」這個功能只需要輸入 1 至 100 之間的數字,它就會按數字大小顯示 LED 的數量和顏色。1% 至 60%會亮起綠色,61% 至 85%會亮起橙色,86% 至 100%會亮起紅色。



HaloCode 配合了聲音感應器,就可以做出一個「音量檢測計」,可以配合小五常識科的聲音探究活動。程式非常簡單,認清概念就可以,複雜的顯示方法也可以省略了,就是不能顯示數字文字。



3. 比一比氣力誰大


使用加速度感應器偵測板子的朝向或是有沒有晃動,micro:bit 和 HaloCode 都能做到,但 HaloCode 更能檢測晃動的力度,我用了類似「音量檢測計」的程式,來測試搖晃力度。相關功能,如果在我校,可以在小六常識科,測試四驅車撞牆時的撞擊力。

4. HaloCode 走馬燈

HaloCode 走馬燈是一個 HaloCode 獨有的功能,由於 LED 呈圓形排列,配合迴圈結構就能做出走馬燈效果。


5. 互相溝通

micro:bit 可以使用「廣播」功能,在沒有網絡的情況下,互相溝通,舉一個例子,其中一邊按下 A 鍵可令到另一邊的 micro:bit 亮燈。


而 HaloCode 的「廣播」功能叫作「區域網絡 LAN」,它不能像 micro:bit 一樣分成 256 個群組,它只能分成「根 root」和「節點 node」,「根 root」之間不能互相溝通,「節點 node」之間也不能互相溝通,「根 root」和「節點 node」之間暫時未有發現從屬關係。雖然在 Python 的程式看到與 Mesh 有關係,但能否與 Mesh Wi-Fi 有甚麼功能上關係,還是只是形容彼此之間的意思,仍然是未知之數。



有甚麼功能是 micro:bit 沒有的?

一件產品總不能與其他的產品沒有功能上的分別,HaloCode 也有不少功能是單塊 micro:bit 不能做到的。例如 IoT 應用或區域網等功能,這些功能只要登入 mBlock 5 帳戶就可以用了。

語音辨識

HaloCode 內置有咪高風,可以做到語音辨識,但需要先連上 Wi-Fi。但經過測試,Wi-Fi 只能連上 2.4G 的 Wi-Fi,不能連上 5G 的。


目前的語音辨識只辨識中文及英文,而中文更只能辨識普通話,暫時不支援廣東話,作為香港人,當然有點失望,希望將來加入更多語言的辨識。教學上,可以配合中文科和英文科鍛鍊學生的普通話及英語音準。

雲訊息

把 HaloCode 連上 Wi-Fi,就能配合 mBlock 5 的「使用者雲消息」,遙距控制 HaloCode,配合常識科能有不同程度的創意活動。

重點其實是價錢吧!

據報 HaloCode 的建議零售價介乎港幣 150 至 200 元之間,而 micro:bit 剛是港幣 150 以下,但 HaloCode 能比 micro:bit 玩更多的功能玩法,這個價錢絕對是合適的!

總結

目前 HaloCode 仍然是很新的產品,而功能上就比 micro:bit 多,而且單塊比較,擴展性及應用性也是 HaloCode 比較高。但 HaloCode 目前 IoT 還不能支援 IFTTT 及 Thingspeak 等常用的 IoT 網站,但相信將來會有更新的。另外,HaloCode 上預留了擴展板和擴充元件的插頭位置,雖然這篇文章發表前,還沒有獲得 Makeblock 官方的確認會推出擴展,但按照 Makeblock 過往的做法,就連 Airblock 也曾推出擴展包,HaloCode 的擴展可以說是指日可待。

綜合功能性、方便性及重要的價錢,單購一塊 HaloCode 比單購一塊 micro:bit 能獲得最大的效益,所以我是絕對推薦使用 HaloCode 作編程教學的,而且我亦會推薦我的學校使用,除非我們教編程只是著重顯示圖案而已。如果有甚麼最新消息,再和大家分享!

補充資料(2019-03-26):

第一,經官方確認,Makeblock 與 IFTTT 的合作已經完結,官方暫時不會提供 HaloCode 的 IFTTT 功能。但不久之後,mBlock 5 也能像 mBlock 3 一樣,讓使用者自己創作擴展功能,相信屆時,會有不少 Makeblock 支持者提供 IFTTT 的擴展功能。

第二,擴充電子模組預計會於今年 8 月推出,計劃最終會推出大概 60 款擴充電子模組。擴充電子模組會使用 HaloCode 上的擴充電子元件插口接駁,假設電源供應不是問題之下,理論上可以同一時間接駁 127 個擴充電子模組,但如果有包括高功率擴充電子模組時,大概只可以接駁 7 至 8 個擴充電子模組。擴充電子模組可以串起來使用,大概樣子請參考下面圖片: