我的 Stem Project (一) Raspberry Pi 3 vs Arduino UNO

近 年 創 客 文 化 盛 行 ,政 府 資 助 、創 業 基 金 、網 上 集 資 如 雨 後 春 筍 ,連 帶 教 育 局 亦 在 強 推 STEM 教 育 ,今 年 會 向 每 所 中 學 發 放 20 萬 元 一 次 性 津 貼 。

STEM 其 實 是 指 Science,Technology,Engineering 和 Mathematics,其 實 即 是 我 們 兒 時 的 常 說 的 跨 學 科 學 習 。近 年 亦 見 把 Art 和 Design 加 進 STEM 的 STEAM 教 育 ,其 實 亦 只 是 大 同 小 異 的 事 。

既 然 政 府 在 大 力 推 廣 ,自 家 的 小 朋 友 當 然 難 以 幸 免 。小 朋 友 正 在 玩 的 是 某 個 品 牌 的 小 車 ,是 programmable 的 ,還 美 其 名 是 什 麼 什 麼 機 械 人 ,要 成 千 蚊 的 。細 看 了 裡 面 的 內 容 ,其 控 制 器 不 過 是 一 片 小 小 的 Arduino board,其 他 額 外 的 馬 達 、模 組 ,在 淘 寶 甚 至 鴨 街 ,也 是 相 當 的 便 宜 。不 過 ,品 牌 自 家 開 發 的 軟 體 工 具 相 當 不 錯 ,可 以 讓 小 朋 友 自 己 用 Scratch 語 言 來 控 制 小 車 。

小 車 要 千 元 一 套 ,20 萬 才 得 200 套 ,一 家 學 校 有 上 千 名 學 生 ,實 在 是 僧 多 粥 少 。而 且 ,車 子 是 男 孩 子 玩 意 ,這 世 界 上 有 一 半 學 生 是 小 女 孩 ,而 且 不 論 男 女 ,人 人 都 有 阿 媽 生 ,學 校 只 提 供 過 份 男 孩 子 的 教 材 是 非 常 不 好 的 ,近 乎 於 性 別 歧 視 ,……。

既 然 「養 不 教 ,父 之 過 」,那 自 家 的 STEM 教 育 還 是 由 為 父 來 做 吧 。

我 自 己 是 program 麻 ,一 向 很 希 望 教 孩 子 寫 program,個 人 以 為 這 是 未 來 的 大 趨 勢 。我 常 跟 朋 友 說 ,這 就 跟 「學 打 字 」一 樣 ,古 時 ( 八 十 年 代 以 前 ) 是 有 一 種 職 業 叫 Typist,各 大 公 司 都 要 請 的 ,人 工 比 一 般 文 員 要 高 。但 不 過 短 短 廿 年 ,這 個 工 種 就 完 全 消 失 了 ,因 為 每 個 學 生 都 要 在 學 校 裡 學 打 字 ,現 在 出 來 工 作 的 後 生 仔 根 本 無 人 會 「唔 識 打 字 」的 。

Programming 跟 打 字 一 樣 ,現 在 間 間 學 校 都 在 教 ,將 來 每 個 學 生 都 會 識 ,所 以 我 預 見 未 來 專 職 的 program 麻 會 大 大 減 少 ,很 多 programming 的 工 作 會 由 一 般 員 工 來 兼 顧 ,如 果 你 將 來 見 工 時 話 「唔 識 programming」,就 會 跟 現 在 的 年 輕 人 去 見 工 話 「唔 識 打 字 」一 樣 咁 蝕 底 。

孩 子 是 小 學 生 ,想 想 要 教 那 一 個 Programming Language 真 是 費 煞 思 量 。不 過 現 在 有 了 Scratch,即 時 成 為 不 二 之 選 。Scratch 是 由 MIT 的 Media Lab 開 發 出 來 ,專 門 給 小 朋 友 學 的 。Scratch 本 身 不 是 萬 能 ,它 不 是 要 取 代 其 他 Programming Language 的 。Scratch 的 好 處 是 簡 單 易 用 ,用 一 塊 塊 有 趣 的 積 木 來 取 代 原 來 枯 燥 的 程 式 碼 。這 不 單 止 能 大 大 提 高 學 習 興 趣 ,同 時 亦 大 大 減 低 了 syntax error,令 學 生 可 以 更 專 注 於 學 習 programming 的 邏 輯 和 技 巧 。

Scratch 的 教 學 ,在 Scratch 的 官 網 就 有 ,而 且 網 上 亦 有 好 多 好 多 。如 果 只 是 單 單 去 教 你 寫 Scratch,其 實 這 會 變 成 是 電 腦 堂 ,而 不 再 是 STEM 教 學 了 ,所 以 我 的 這 一 個 系 列 不 會 去 教 Scratch,而 會 集 中 在 physical computing。

Physical computing 是 指 我 們 用 軟 件 和 硬 件 去 建 設 一 個 可 以 和 現 實 世 界 互 動 的 系 統 。很 複 雜 是 不 是 ?其 實 是 不 複 雜 的 。Physical computing,其 實 和 我 們 學 寫 program 的 沒 什 麼 大 分 別 。傳 統 上 我 們 去 學 Programming,完 成 的 那 個 program 純 粹 只 能 在 電 腦 上 執 行 ,所 有 野 都 是 純 軟 件 的 。而 Physical computing,我 們 的 program 是 可 以 控 制 現 實 世 界 裡 面 的 東 西 的 。

最 簡 單 的 ,例 如 寫 個 程 式 去 控 制 開 燈 和 關 燈 ,又 例 如 寫 個 程 式 去 讀 取 你 按 了 那 一 個 button。高 級 一 點 的 ,就 像 是 計 數 機 、電 飯 煲 裡 面 的 控 制 程 式 。甚 至 乎 ,可 以 是 整 個 智 能 家 居 系 統 ,又 或 者 工 廠 裡 的 機 械 人 生 產 線 。

以 前 要 實 現 physical computing,你 要 學 很 多 很 多 東 西 的 。但 近 年 創 客 文 化 盛 行 ,令 到 physical computing 軟 硬 件 的 門 檻 都 下 降 了 不 少 。以 控 制 器 為 例 ,近 年 有 大 量 的 single board computer / single board microcontroller 湧 現 ,價 格 亦 下 降 了 不 少 。

Single board computer,以 Raspberry Pi 作 為 代 表 。它 是 由 英 國 的 Raspberry Pi Foundation 所 開 發 的 ,目 的 是 以 超 低 價 的 硬 件 ,以 及 自 由 軟 件 去 推 動 電 腦 科 的 教 育 。Raspberry Pi 是 一 台 完 整 的 電 腦 ,有 齊 cpu、ram、display card、network card 等 等 。你 只 要 插 入 「harddisk ( 用 SD card )」,插 上 monitor,keyboard 和 mouse,就 可 以 獨 立 運 作 的 了 。

目 前 第 三 代 的 Raspberry Pi 3,除 了 更 快 的 CPU 之 外 ,還 內 置 了 WiFi 和 藍 牙 ,售 價 和 之 前 相 約 ,大 概 是 港 幣 300 元 的 樣 子 。Raspberry Pi 3 可 以 跑 Linux,亦 可 以 跑 Win 10。Microsoft 還 特 別 出 了 一 個 Win 10 版 本 ( Win 10 IoT ),免 費 給 Pi 的 用 家 使 用 。

Raspberry Pi 除 了 是 一 台 完 整 的 電 腦 ,它 的 特 別 之 處 是 加 入 了 GPIO 這 樣 的 一 組 輸 入 和 輸 出 的 針 腳 。我 們 可 以 使 用 這 些 針 腳 ,去 連 接 不 同 的 硬 體 裝 置 ,達 成 使 用 軟 件 去 控 制 其 他 裝 置 的 目 的 。

Single board microcontroller 的 代 表 ,則 是 Arduino。Microcontroller 不 是 一 台 完 整 的 電 腦 ,你 是 不 能 直 接 在 它 上 面 寫 程 式 的 。Microcontroller 的 用 法 ,是 你 必 須 要 在 自 己 的 電 腦 上 面 開 發 好 程 式 ,然 後 把 程 式 「燒 錄 」到 Microcontroller 裡 面 ,然 後 程 式 就 會 自 動 運 作 。

Arduino 最 成 功 的 地 方 ,是 它 的 硬 件 設 計 和 開 發 軟 體 ,都 是 open source 的 。所 以 ,任 何 人 都 可 以 自 行 生 產 Arduino board,以 及 根 據 Arduino 的 開 發 軟 體 去 開 發 自 己 的 工 具 。Arduino 在 官 網 的 售 價 並 不 便 宜 ,一 片 Arduino UNO REV3 就 要 US$24.95。但 在 淘 寶 ,大 陸 所 生 產 的 Arduino UNO R3,已 經 可 以 平 到 二 三 十 蚊 人 仔 一 塊 。

大 家 特 別 要 注 意 ,因 為 那 個 設 計 本 身 是 開 放 的 ,所 以 這 些 大 陸 貨 絕 對 不 是 老 翻 。而 通 過 大 量 不 同 的 生 產 者 競 爭 去 降 低 產 品 的 售 價 ,我 相 信 亦 是 Arduino 開 放 硬 件 設 計 的 目 的 。這 些 第 三 方 廠 商 所 生 產 的 Arduino,並 不 能 使 用 Arduino 這 一 個 官 方 名 稱 。所 以 它 們 的 產 品 上 你 不 會 見 到 Arduino 的 字 樣 。這 類 產 品 一 般 被 稱 為 Arduino compatible board,又 或 者 Arduino clone。使 用 Arduino compatible board 跟 使 用 官 方 的 Arduino board 並 沒 有 任 何 不 同 ,但 價 錢 卻 便 宜 了 一 大 截 。

Arduino 當 然 亦 有 自 家 的 IO 針 腳 ( IO = input output ),去 方 便 我 們 連 接 不 同 的 硬 體 。

說 了 那 麼 多 ,究 竟 是 Raspberry Pi 好 ,還 是 Arduino 好 呢 ?以 香 港 的 學 習 環 境 ,個 人 以 為 是 Arduino 較 好 。Raspberry Pi 比 較 適 合 學 童 完 全 沒 有 電 腦 的 地 區 ,因 為 它 本 身 就 是 一 台 電 腦 。而 香 港 呢 ,由 於 政 府 過 去 大 力 提 倡 電 子 學 習 ,沒 有 電 腦 的 學 童 應 該 很 少 。

Arduino ( 大 陸 版 ) 單 是 售 價 就 比 Raspberry Pi 便 宜 了 十 倍 。它 的 IO 針 腳 也 比 較 多 ,使 它 可 以 同 時 連 接 更 多 硬 體 。Arduino 適 用 的 外 接 感 應 器 ( Sensor ) 和 擴 充 版 ( Shield ),也 比 較 多 和 比 較 便 宜 。

下 一 篇 ,我 來 教 大 家 如 何 用 Scratch 在 Arduino 上 面 寫 program。

Raspberry Pi 3Arduino UNO rev 3
種類Single Board ComputerSingle Board Microcontroller
生產商全球只有兩個官方生產商開放式硬件,有無數的生產商,包括大陸的平價生產商
價錢$300$30
CPU1.2GHz Quad-Core ARM CPUATmega328P
(microcontroller)
RAM1GB2KB
StorageSD card (not included)32KB on-board flash memory
WiFi802.11n Build-inrequire external module
BluetoothBluetooth 4.1 Build-inrequire external module
IO pins40 GPIO pins
(not all of them are used as IO pins, some are power and GND)
-14 Digital I/O pins ( 6 of which provide PWM output )
- 6 analog input pins
Power Supply5.1v 2.5A micro USB power supply- 5.5 x 2.1mm plug or from USB cable
- recommended input voltage 7-12V
OSRaspbian (Linux), Win 10 IoTNIL
Programming Language- Scratch
- Python
( Both are Raspbian built-in )
- Arduino Programming Language
- Scratch ( through 3rd party softwares )

我的 STEM Project 系列

我的 Stem Project (一) Raspberry Pi 3 vs Arduino UNO
我的 Stem Project (二) 使用 Scratch 來控制 Arduino UNO
我的 Stem Project (三) 使用 Push Button 來做 Input
我的 Stem Project (四) Push Button 進階一點的用法
如何購買 Arduino ?( STEM project )
我的 Stem Project (五) 考反應小遊戲
我的 Stem Project (六) 用 Arduino 控制 7 segment display (基礎篇)
我的 Stem Project (七) 用 Arduino 控制 7 segment display ( 進階篇 )
我的 Stem Project (八) 用 Arduino 控制 7 segment display ( 簡化篇 )
我的 Stem Project (九) 用 Arduino 控制 Buzzer 唱歌
我的 Stem Project (十) Arduino Multi-function Shield using Scratch (1)
自己動手做一個 Arduino Shield ( STEM project )
我的 Stem Project (十一) Arduino Multi-function Shield using Scratch (2)
我的 Stem Project (十二) Arduino Music Light Show
Arduino 的電池 ( STEM project )
我的 Stem Project (十三) Arduino Multi-function Shield using Scratch (3)
自己寫個 mBlock extension (一) TM1637 4-digit-display
自己寫個 mBlock extension (二) 1602 I2C LCD Module
自己寫個 mBlock extension (三) 2-digit-display using 74HC595
[STEM] 如何選購 LED
為什麼安裝新版本的 mBlock 程式之後要重新安裝 mBlock extension?
[STEM] 使用 sensor module 和電子零件的分別
mBlock / Arduino IDE com port 的問題
STEM - 自己造個 Arduino 教學 / 展示平台
修理損壞的 Arduino NANO ( 更換 USB diode )
ctleung張先生,男性,肖龍。
職業:I.T. Consultant
簡介:不好好讀書;七尺差五寸,手長過膝,雙耳垂肩;性寬和,寡言語,喜怒不形於色。據說少時曾斬白蛇於鳳凰山下……

This entry was posted in STEM and tagged , , , . Bookmark the permalink.

2 Responses to 我的 Stem Project (一) Raspberry Pi 3 vs Arduino UNO

  1. Pan says:

    很好的入門介紹, 雖然自己4張幾, 但都想由零開始學習, 那我應如何入手? 有入門書藉介紹嗎? 謝謝

    • C.T. Leung says:

      well… 我的文就很入手呀。當然坊間也有很多這一類的書籍,但如果那些書好用,我也不會想到要自己寫文貼出來。

      如果你是 4 張幾,就別學 scratch 了,那是給小朋友學的,直接學 Arduino IDE 吧。書是更加不用買,上官網就大把有用的資源。官網比一般書籍講得更加深入淺出,也講得更加正確。

      第一步你可以去官網學一次所有 built in examples,學完全部 built in examples,你的基本功就已經比全香港教 Arduino 的導師都紮實 10 倍了。

      https://www.arduino.cc/en/Tutorial/BuiltInExamples

      有齊了基本認識之後,你再想做其他 project,就上 google search,抄考人地用的硬件和所寫的 code,自己再行改進 (因為 Arduino 已經面世了頗長的一段時,真係無乜 project 係無前人做過)。你自己做完幾個 project 之後,在香港就已經是高手了。

      而學習所需的零件,特別想花錢的時候就上官網買,唔係特別想花錢就上淘寶買。

      不用客氣。

Leave a Reply

Your email address will not be published. Required fields are marked *