第1章Raspberry Pi 是什麼?樹莓派型號、用途與 Arduino 差異完整介紹
Raspberry Pi 是什麼?本章完整介紹 Raspberry Pi 5、Pi 4、Zero 2 W、Pico 等樹莓派型號與常見用途,並比較 Raspberry Pi 與 Arduino 在 Linux、GPIO、效能、即時控制與 IoT 應用上的差異。
WCST 威棋系統科技分享 Linux Server、Ubuntu、Solaris、Arduino、Raspberry Pi、PHP、Web 開發與資訊安全實作教學,包含安裝設定、程式範例、故障排除與免費學習資源。
整理 Raspberry Pi 從硬體認識、Raspberry Pi OS 與 Linux 指令到 Python、GPIO、PWM、I²C、SPI、UART、感測器、Camera、Flask、SQLite 與 IoT 專題的完整實作教學,適合從入門逐步建立樹莓派應用能力。
Raspberry Pi 是什麼?本章完整介紹 Raspberry Pi 5、Pi 4、Zero 2 W、Pico 等樹莓派型號與常見用途,並比較 Raspberry Pi 與 Arduino 在 Linux、GPIO、效能、即時控制與 IoT 應用上的差異。
Raspberry Pi 5 是目前 Raspberry Pi 主流高效能單板電腦,本章完整認識 Raspberry Pi 5 主機板上的 BCM2712 處理器、RP1 I/O 控制器、40-pin GPIO、USB 3.0、USB 2.0、雙 micro HDMI、Gigabit Ethernet、Wi-Fi、Bluetooth、microSD、PCIe、MIPI Camera/Display、RTC、風扇接頭與 USB-C 電源,並說明 5V/5A 供電、散熱及初學者接線時必須注意的硬體觀念。
本章完整介紹 Raspberry Pi OS 安裝流程,從 Raspberry Pi Imager 下載、microSD 選擇,到 Raspberry Pi 5 的 64-bit Raspberry Pi OS、Desktop、Full、Lite 版本差異,並逐步設定 Hostname、時區、鍵盤、使用者帳號、Wi-Fi、SSH 與 Raspberry Pi Connect。完成映像寫入與驗證後,再實際進行 Raspberry Pi 5 第一次開機,並說明無法開機、Wi-Fi 無法連線、SSH 失敗、microSD 寫入錯誤等常見問題。
本章從 Raspberry Pi OS Desktop 開始,完整介紹 Terminal、Linux 檔案系統、絕對路徑與相對路徑,以及 pwd、ls、cd、mkdir、touch、cp、mv、rm、cat、less、nano、grep、find、sudo、chmod、chown、df、free、hostname 等常用 Linux 指令。並實際建立資料夾、檔案、複製與移動資料,學習 Linux 使用者、root、檔案權限與 APT 套件管理,建立後續 Raspberry Pi Python、GPIO、SSH、Flask、MQTT 與 IoT 實作所需的 Linux 基礎。
本章完整介紹 Raspberry Pi 5 的 Ethernet、Wi-Fi、IPv4、DHCP、Gateway、DNS、Hostname、mDNS 與 NetworkManager 網路設定,並實際使用 hostname、ip、ping、nmcli 等 Linux 指令查看 Raspberry Pi 網路狀態。接著設定 SSH Server,從 Windows 10/11、macOS 或 Linux 遠端登入 Raspberry Pi,建立 SSH Key、Public Key Authentication 與 Headless Raspberry Pi 管理環境,並說明 DHCP Reservation、固定 IP 以及 SSH Connection Refused、Timeout、Permission Denied 等常見問題。
本章從零開始學習 Raspberry Pi Python 程式設計,介紹 Python 3、Interactive Mode、.py 程式檔、print、變數、int、float、str、bool、input、型別轉換、運算子、if、elif、else、for、while、range、List、Function、Module、import 與 Exception。並實際在 Raspberry Pi OS 建立 Python 專案目錄、使用 nano 編寫第一支 Python 程式、從 Terminal 執行程式,以及建立 Python virtual environment,說明 Raspberry Pi OS 新版為什麼不建議直接使用 pip 修改系統 Python。完成本章後,即可進入 GPIO、感測器與 IoT 程式開發。
本章完整介紹 Raspberry Pi 5 的 40-pin GPIO,包括 Physical Pin 與 BCM GPIO 編號差異、3.3V、5V、GND、Digital Input、Digital Output,以及 I²C、SPI、UART、PWM 等 Alternate Function。並說明 Raspberry Pi 5 GPIO 由 RP1 I/O Controller 管理、GPIO 採 3.3V 邏輯、為什麼不能將 5V 訊號直接送入 GPIO,以及 LED 限流電阻、按鍵 Pull-up/Pull-down、Relay、Motor、Servo、Level Shifter、Voltage Divider、共地與外部電源等接線安全原則。完成本章後即可進入 Python GPIO Zero LED 控制實作。
本章正式進入 Raspberry Pi 5 GPIO Output 實作,使用 Python 3 與 GPIO Zero 控制 LED。從 GPIO17、Physical Pin 11、GND、330Ω 限流電阻與 LED 極性開始,實際完成 LED ON/OFF、toggle、Blink、不同閃爍速度、多顆 LED 控制、4 顆 LED 流水燈、8 顆 LED 跑馬燈與往返流水燈,並說明 Raspberry Pi 5 的 lgpio Pin Factory、BCM GPIO 編號、Ctrl+C、KeyboardInterrupt、GPIO 資源釋放與 LED 不亮時的完整故障排除流程。
本章完整介紹 Raspberry Pi 5 GPIO Input 與按鍵實作,從 Push Button、Normally Open、Floating Input、Internal Pull-up、Pull-down 開始,使用 Python GPIO Zero 的 Button 類別讀取按鍵狀態,實作 is_pressed、wait_for_press、when_pressed、when_released、事件驅動控制與 LED toggle。並深入說明機械按鍵 Contact Bounce、Debounce 與 bounce_time,最後使用兩顆按鍵控制上一章 8 顆 LED 跑馬燈的加速與減速,建立 Raspberry Pi 第一個同時包含 GPIO Input、GPIO Output 與人機互動的完整專案。
本章完整介紹 Raspberry Pi 5 PWM(Pulse Width Modulation)控制原理,從 Frequency、Period、Duty Cycle 開始,使用 Python GPIO Zero 的 PWMLED 控制 LED 亮度,實作 25%、50%、75%、100% Duty Cycle、漸亮漸暗與呼吸燈 pulse()。接著比較 Software PWM 與 Hardware PWM,說明 Raspberry Pi 5 GPIO12、GPIO13、GPIO18、GPIO19 的 Hardware PWM 能力,以及 GPIO Zero PWMLED 與 Hardware PWM 的差異。最後實作 Active Buzzer、Passive Buzzer、TonalBuzzer、不同頻率與音階警報,並加入按鍵調整 LED 亮度,建立 Raspberry Pi Input、Digital Output 與 PWM Output 的完整互動控制系統。
本章完整介紹 Raspberry Pi 連接 DHT11 與 DHT22 溫溼度感測器的方法,包含兩款感測器規格比較、3.3V GPIO 電壓安全、DATA Pull-up 電阻、GPIO4 接線,以及 Raspberry Pi OS Bookworm 虛擬環境設定。讀者將使用 Adafruit Blinka 與 adafruit-circuitpython-dht 撰寫 Python 程式,完成即時溫溼度顯示、讀取失敗重試、狀態判斷,以及 LED、蜂鳴器警報控制。
本章完整介紹 Raspberry Pi 5 I²C 通訊,從 SDA、SCL、Open-drain、Pull-up、Controller、Target、7-bit I²C Address 與多裝置共用 Bus 開始,實際在 Raspberry Pi OS 啟用 I²C、安裝 i2c-tools、使用 i2cdetect 掃描裝置 Address。接著介紹 LCD1602、HD44780 相容顯示器與 PCF8574 I²C Backpack,說明常見 0x20~0x27、0x38~0x3F 位址與 0x27/0x3F 的由來,並特別分析 Raspberry Pi 3.3V I²C 與 5V LCD Backpack 的電壓安全及雙向 Level Shifter。最後使用 Python、RPLCD 與 smbus2 顯示文字,以及整合上一章 DHT22 溫溼度資料,完成 Raspberry Pi Sensor + LCD 即時環境監測器。