2017年11月11日 星期六

Makeblock應用:水溫指標屏

前言

近日和朋友談起學生將 mBot 應用在創客(Maker)方面時的問題,很多人都無法破除「mBot 是一輛車」的看法,很設計都是讓 mBot 保持在一輛車的狀態。對我而言,「mBot 是一部有車身的電腦」,因此,只要把 mBot 的車身拆走,它就是一部電腦了。

適逢近日我在準備小學五年級的 STEM 課堂,他們在學完電的課題後,要設計一個能解決日常生活的裝置。縱然大部份的設計都未能成功,但不少的設計都令我十分驚嘆,畢竟他們不是從小就被訓練創意思維。

其中一組的設計令我印象深刻,他們的設計原文是:

「有時開了煤氣爐後,洗手盆的水喉會發熱,所以我們想做一個發光器。當水喉擰得太過時(太熱),就會開紅燈;當太凍時就會亮綠燈。」


當時我看到覺得非常有趣,但由於硬件的配套不足,而未能成功,實在可惜。但我認為 Makeblock 正好可以作為一個平台,讓學生完成他們的設計。因此,我仿效了這個設計,將設計放在 mBot 上實體化。

設計


設計以簡單為主,模組只用上了數字板和防水溫度感應器。程式設計亦十分簡單,只是將水溫顯示在數字板上,然後根據水溫顯示轉換 LED 燈的顏色,溫度越高越紅,越低越藍。

測試

測試一開始,我先將水瓶注入熱水,水溫迅速由室溫的攝氏25度跳升到攝氏60度,LED 燈亦由藍色轉為紫色。相信大家都知道水的沸點是攝氏100度,而溶點是攝氏0度,因此我們不會看到絕對的藍色或是紅色。



在後期,我逐漸加入冰塊令水溫快速下降,到最後水溫降至攝氏13度,LED 燈亦變回藍色。


總結及延伸

在發展創意思維方面,Makeblock 真的提供了一個很好的平台,讓學生將自己的設計實體化。簡單的組裝,簡單的程式設計,就已經將複雜的硬件配置問題解決了,絕對能在 STEM 發展上幫上忙。

將這個設計延伸下去,其實可以做到很多事情,我舉其中兩個例子:

  1. 按照當時天氣的溫度,調較出適合的洗手溫度;夏天出冷水,冬天出熱水。
  2. 加入可控制的功能,讓用家可以調較出想要的水溫,確保嬰孩在洗澡時的溫度保持在合適溫度。
謹記,mBot 不僅是一輛車,適當地運用,它絕對能做到你想做的事。

2017年10月28日 星期六

mBot x App Inventor 2:IoT 應用(四)

簡介

IoT 應用來到第四集,之前數集都是用 mBlock 及 IoT Module 才能做到 IoT 連接。這次會介紹一個只需要藍牙版 mBot 和一部 Android 智能裝置就可以做到 IoT 連接的方法。

Makeblock 其中一間港澳認證教育夥伴(Certified Educational Partner)最近發佈了 App Inventor 2 的擴充功能,可以讓 Android 智能裝置先連接藍牙,再連接 IFTTT 或是 ThingSpeak。

基本的 mBot x App Inventor 2 連接

要使用 IoT 的擴充功能,先要準備一些簡單的 mBot 連接設計,詳情可參考這裡,或是下載這個範例檔

*** 2018 年 6 月 7 日更新 ***
Extension 下載:
因為舊有連結已經失效,因此可在下載壓縮檔(已包含 IFTTT 及 ThingSpeak 的 aix 檔)。

mBot x App Inventor 2 x IFTTT

如果需要使用 IFTTT,就需要使用 IFTTT 的擴充功能。

1. 先選擇 Import Extension:

2. 然後選擇 〝From my computer〞,並選擇剛下載的〝mbotAndSTEM_ifttt.aix〞。(2018 年 6 月 7 日更新)

3. 稍等一會,就會看到 IFTTT 的 Extension 成功加入:

4. 加入 IFTTT 的 Extension 到設計中,就可以在程式設計中看到 IFTTT 的 Extension 了:

mBot x App Inventor 2 x ThingSpeak

如果需要使用 ThingSpeak,就需要使用 ThingSpeak 的擴充功能。

1. 先選擇 Import Extension:

2. 然後選擇 〝From my computer〞,並選擇剛下載的〝mbotAndSTEM_ThingSpeak.aix〞。(2018 年 6 月 7 日更新)

3. 稍等一會,就會看到 ThingSpeak 的 Extension 成功加入:

4. 加入 ThingSpeak 的 Extension 到設計中,就可以在程式設計中看到 ThingSpeak 的 Extension 了:

總結

使用 App Inventor 2 的 Extensions 完成 IoT 連接,除了不需使用 IoT 模組外,還可以使用一些 mBot 現時不支援,而智能裝置有的功能,例如 GPS 等,但同樣有弊點,就是不能完全使用所有 mBot 的模組,例如 TFT 等。所以,只需按照自己需求合適選取就可以了。

2017年10月15日 星期日

mBlock 使用技巧:IoT 應用(三)

簡介

近日得知 Makeblock 其中一間港澳認證教育夥伴(Certified Educational Partner)亦發佈了一個名為〝ME IoT WiFi Module〞的擴展,功能更簡潔,但亦有需要注意的地方。

IoT的相關擴展

在 mBlock 3.4.11 之後版本的擴展管理器中,搜尋功能終於有搜尋能力,若果我們在擴展管理器中搜尋〝IoT〞,可以找到以下相關的擴展:


5 個擴展都是 Makeblock 港澳認證教育夥伴的作品,雖然功能性大致相同,但亦讓我們來比較一下每個的優劣處:

ME IoT WiFi Module

這個就是剛才說的那個新擴展,非常簡潔,只有 3 個積木,已經包含了 IFTTT 及 ThingSpeak 的功能。


但需注意的地方是,連接 WiFi 的積木固定了連接埠 1 - 4:


仔細看一下 Arduino C 的程式會發現,連接埠 1 - 4 已經指定了 mBot 的連接埠 1 - 4。即是說,如果你使用其他的板子,就會因為 RX 和 TX 的不同(詳細的 PIN 號參考這裡),而它不會因應板子的轉變而令連接埠有所不同,導致無法使用這個積木:


所以,這個擴展絕對適合使用 mBot ,且打算用 IoT 連接 IFTTT 或 ThingSpeak 的用家。如果你使用其他板子,就必須使用其他擴展。

其他擴展

其他的擴展都由另一間 Makeblock 港澳認證教育夥伴的發佈,如果你打算使用 Blynk,真的非常抱歉,你只有這個選擇。但若果你打算使用 IFTTT 或 ThingSpeak,你也可以考慮這個。

相對上面的擴展,這個擴展分開了 IFTTT 和 ThingSpeak的擴展,而且每個擴展的積木也不少:


但是它也有它的好處,它可以自由選擇接腳位,即是它並不限制板子的種類,你可以使用其他板子來使用 IoT 的功能:


更新(2017-10-16):

IoT_IFTTT 及 IoT_ThingSpeak 現已更新至 v1.3.0 及 v1.1.0,可於 Makeblock 四大主控板 (mCore、Orion、Auriga、MegaPi)上選擇連接埠,比舊版本更容易使用;另外也可自行選擇數位腳位(Digital PIN)或類比腳位(Analog PIN)。


收腳位(RX)和接腳位(TX)你當然可以參考的文章,也可以靠自己找出來,方法很簡單,而且已經寫在板子上:


每一個連接埠有幾個小字,都是這個連接埠不同的 PIN,其中最右面的就是收腳位(RX),在它旁邊的就是接腳位(TX)。所以 mCore 的連接埠 1 的 RX 和 TX 分別是 12 和 11,而連接埠 2 的 RX 和 TX 就是 10 和 9 了。

總結

如果你只有 mBot 或是教導學生使用,我會建議使用前者,十分方便簡單;但其他情況下,我會強烈建議使用後者。