我的 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 )

ctleung張 先 生 ,男 性 ,肖 龍 。
職 業 :I.T. Consultant
簡 介 :不 好 好 讀 書 ;七 尺 差 五 寸 ,手 長 過 膝 ,雙 耳 垂 肩 ;性 寬 和 ,寡 言 語 ,喜 怒 不 形 於 色 。據 說 少 時 曾 斬 白 蛇 於 鳳 凰 山 下 ……

我 的 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)
This entry was posted in STEM and tagged , , , . Bookmark the permalink.

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>