Learning Objectives
- 說明什麼是單板電腦,以及系統單晶片(SoC)把哪些東西放在一起
- 比較單板電腦(Raspberry Pi)與微控制器(Raspberry Pi Pico、ESP32)的差別,依需求選擇
- 看懂同一個「讓 LED 閃三次」在兩種平台上的寫法
- 知道這個軌道怎麼用瀏覽器裡的模擬開發板學習
一台可以接電線的小電腦
筆電、手機很好用,但它們被包在外殼裡,你很難讓它「感覺到」房間的溫度,或「推動」一顆馬達。 樹莓派(Raspberry Pi)是一片電路板大小的完整電腦:裝了作業系統、可以上網、可以寫 Python, 板子邊緣還有一排可以直接接電線的金屬針腳(GPIO),讓程式讀取感測器、控制 LED 與馬達。
這個軌道從認識樹莓派開始,接著安裝系統、遠端連線,再用 Python 控制 LED、按鈕、感測器、顯示器與馬達, 最後把資料記錄下來、做成網頁控制面板、用 MQTT 和其他裝置交換資料,完成一個教室環境監測站。
沒有硬體也能學:每一課的程式都可以在瀏覽器裡的模擬開發板上執行,逐步看程式一行一行跑、電路上的 LED 何時亮起。 有實體的樹莓派時,同樣的程式可以直接搬過去執行。
這一課要回答:
- 樹莓派和一般電腦一樣嗎?它的「大腦」長什麼樣子?
- 常聽到的「微控制器」(例如 Raspberry Pi Pico、ESP32)和樹莓派有什麼不同?
- 什麼時候該用樹莓派,什麼時候該用微控制器?
單板電腦與系統單晶片
單板電腦(single-board computer)是把一台電腦需要的處理器、記憶體、儲存介面、網路、輸入輸出全部做在一片電路板上的電腦。 樹莓派就是最常見的單板電腦之一。
它的核心是一顆系統單晶片(SoC,System on a Chip):把 CPU、繪圖處理器(GPU)、記憶體控制器、影像輸出等功能整合在同一顆晶片裡。 以 Raspberry Pi 5 為例(官方規格):
| 項目 | Raspberry Pi 5 |
|---|---|
| 系統單晶片 | Broadcom BCM2712:4 核心 64 位元 Arm Cortex-A76,2.4GHz |
| 記憶體 | LPDDR4X,有 1GB 到 16GB 幾種版本 |
| 儲存 | microSD 卡(作業系統裝在卡上) |
| 網路 | Wi-Fi、藍牙、有線乙太網路 |
| 輸入輸出 | USB、兩個 micro HDMI、相機與螢幕接頭、40 針 GPIO 接頭 |
這和你的筆電是同一類東西:有作業系統(通常是以 Linux 為基礎的 Raspberry Pi OS)、可以同時執行很多程式、可以接螢幕鍵盤。 差別在於它小、便宜、省電,而且 GPIO 讓程式可以直接控制電路。
歷史:Raspberry Pi 基金會是 2009 年在英國成立的慈善機構,目標是推廣學校的電腦科學教育; 第一代 Raspberry Pi 在 2012 年 2 月開賣。之後陸續推出 Raspberry Pi 2、3、4、5 等型號,以及更小的 Zero 系列、 做成鍵盤造型的 Raspberry Pi 400/500。第 02 課會介紹各型號與接頭。
微控制器:只做一件事的小晶片
微控制器(microcontroller,MCU)也是把處理器、記憶體、輸入輸出放在同一顆晶片裡,但規模小得多, 沒有作業系統:通電後直接執行你燒錄進去的那一個程式。常見的有 Raspberry Pi Pico(RP2040、RP2350 晶片)、ESP32、Arduino 的 AVR 晶片。
Raspberry Pi 基金會在 2021 年 1 月推出 Raspberry Pi Pico,是他們的第一款微控制器板;2024 年 8 月推出 Pico 2(RP2350 晶片)。 名字裡都有 Raspberry Pi,但 Pico 是微控制器,不是單板電腦。
| 單板電腦(Raspberry Pi 5) | 微控制器(Raspberry Pi Pico 2) | |
|---|---|---|
| 處理器 | 4 核心 64 位元,2.4GHz | 2 核心 Arm Cortex-M33,150MHz |
| 記憶體 | 1GB~16GB | 520KB(約為前者最小版本的兩千分之一) |
| 作業系統 | 有(Linux) | 沒有,直接執行一個程式 |
| Python | 完整的 Python 3 | MicroPython(精簡版的 Python) |
| 開機 | 要載入作業系統,需要一段時間 | 通電後很快就開始執行程式 |
| 耗電 | 官方建議 5V/5A 的電源 | 一般用 USB 供電就足夠,適合電池長時間運作 |
| 擅長 | 網頁伺服器、資料庫、影像處理、多個程式同時跑 | 精準的時序控制、低耗電、讀感測器做簡單判斷 |
兩者常常一起用:微控制器放在現場量溫度、省電地把資料送出去,樹莓派在教室裡收資料、存進資料庫、提供網頁。 本平台也有「ESP32」軌(MicroPython)與「自造者入門」軌(micro:bit、Pico、Arduino),可以對照著學。
逐步看:在樹莓派上讓 LED 閃三次
樹莓派用 Python 3 加上 gpiozero 函式庫控制腳位(第 05 課會詳細介紹)。這個範例同時做兩件事: 控制 GPIO17 上的 LED,也讀取 CPU 的溫度。後者是「電腦」才有的能力:作業系統隨時在監測晶片溫度。
逐步看:在 Pico 上做同一件事
同樣「讓 LED 閃三次」,在 Raspberry Pi Pico 上用 MicroPython 寫。和上一個範例比較:
腳位改用 machine.Pin 控制,用 value(1)/value(0) 設定高低電位;沒有作業系統,所以也沒有「CPU 溫度」這類由系統提供的服務。
樹莓派能做什麼
因為它同時是「電腦」又能「控制電路」,樹莓派常見的用途包括:
- 教學與學程式:一台完整的 Linux 電腦,弄壞了重灌就好
- 物聯網閘道與伺服器:收集多個感測器或微控制器的資料,存進資料庫、提供網頁(第 14~16 課)
- 影像應用:接攝影機拍照、錄影(第 13 課)
- 自動化與機器人:控制馬達、伺服、繼電器(第 11 課)
- 桌上型電腦:Raspberry Pi 500 這類鍵盤電腦接上螢幕就能上網、寫程式
選擇的原則:需要作業系統、網路服務、大量運算或攝影機,選樹莓派;只需要讀感測器、控制少量零件、要靠電池撐很久,選微控制器。
下面的練習把兩種能力放在一起:讀 CPU 溫度(電腦的能力),決定 LED 亮不亮(控制電路的能力)。
小測驗:單板電腦與微控制器
「系統單晶片」(SoC)指的是什麼?
下面哪一個是微控制器開發板,而不是單板電腦?
第一代 Raspberry Pi 是哪一年開賣的?
小測驗:看懂程式
下面的程式模擬「溫度超過門檻就亮燈」的判斷(不需要硬體),會印出什麼?
temps = [48.5, 49.6, 50.2, 51.0]
for t in temps:
if t > 50:
print("亮", t)
break
在 Pico 的 MicroPython 裡用 led = Pin(15, Pin.OUT),對應到樹莓派 gpiozero 的哪一行?
重點整理
- 樹莓派是單板電腦:一片電路板上的完整電腦,核心是系統單晶片(SoC),跑 Linux 作業系統,還有 40 針 GPIO 可以控制電路。
- 微控制器(Pico、ESP32)沒有作業系統,通電就執行一個程式,省電、時序精準,用 MicroPython 或 C/C++ 寫程式。
- 需要作業系統、網路服務、資料庫、攝影機,選樹莓派;只做簡單控制、靠電池長時間運作,選微控制器;兩者常一起用。
- 樹莓派用 Python 3 加 gpiozero 控制腳位;Pico 用 MicroPython 的
machine.Pin。
下一課認識樹莓派的型號、接頭、電源,以及 40 支 GPIO 腳位怎麼看。