Raspberry Pi 入門教學:系統安裝、Linux、GPIO、I2C、SPI 與 RS232

發布日期: |更新日期:
文章主圖:Raspberry Pi 入門教學:系統安裝、Linux、GPIO、I2C、SPI 與 RS232

文章摘要

Raspberry Pi 是可執行 Linux 的單板電腦,本篇從系統安裝、基本指令到 GPIO、I2C、SPI 與 UART 介面實作完整說明。

本篇文章將以初學者學習路線為核心,從認識 Raspberry Pi 開始,逐步介紹需要具備的基礎知識、樹莓派週邊設備準備、Raspberry Pi OS 安裝與設定、Linux 常用指令、開發軟體使用、GPIO 控制、I2C 感測器、SPI 模組通訊,以及 RS232 序列通訊實作。

1. Raspberry Pi 是什麼?

Raspberry Pi,中文常稱為樹莓派,是一台可以執行 Linux 作業系統的單板電腦。它雖然體積很小,但具備 USB、HDMI、網路、Wi-Fi、藍牙、GPIO 腳位與多種硬體通訊介面,因此可以做為學習 Linux、程式設計、電子控制與 IoT 物聯網的入門平台。

和 Arduino 不同,Arduino 比較偏向微控制器,適合即時控制 LED、馬達、感測器等硬體;Raspberry Pi 則比較像一台小型 Linux 電腦,可以執行完整作業系統、安裝伺服器服務、執行 Python 程式、連接資料庫,也可以透過 GPIO 控制外部硬體。

  • Linux 學習主機
  • Python 程式開發
  • GPIO LED 與按鍵控制
  • I2C / SPI 感測器讀取
  • RS232 / UART 設備通訊
  • Web Server 小型伺服器
  • IoT 資料收集設備
  • 家庭自動化控制
  • 監控攝影機
  • 邊緣運算與資料記錄

2. 學習 Raspberry Pi 前需要具備哪些基礎?

Raspberry Pi 雖然適合初學者,但它同時結合 Linux、網路、程式設計與電子控制,因此建議先具備一些基礎觀念。

初學者不需要一開始就全部精通,但至少要知道 Raspberry Pi 不是單純的電子板,而是一台可以控制硬體的 Linux 電腦。這個觀念很重要,因為後續安裝套件、啟動服務、修改設定檔、測試 GPIO 都會用到 Linux 操作能力。

  • Linux 基本操作
  • IP 位址與網路連線
  • SSH 遠端登入
  • 檔案與目錄操作
  • Python 基礎語法
  • 電壓、電流、GND 基本概念
  • GPIO 腳位輸入與輸出
  • I2C、SPI、UART 基本通訊概念

3. Raspberry Pi 週邊設備準備

開始使用 Raspberry Pi 前,需要準備基本週邊設備。不同型號可能略有差異,但常見基本設備包含 Raspberry Pi 主機板、microSD 記憶卡、穩定電源、HDMI 螢幕或轉接線、鍵盤滑鼠、網路線或 Wi-Fi、外殼與散熱片、麵包板、杜邦線、LED、電阻、按鍵與感測器模組。

最容易被忽略的是電源。Raspberry Pi 對電源穩定性要求比 Arduino 高,如果電源不足,可能會出現開機不穩、系統當機、USB 裝置不正常、Wi-Fi 斷線或 microSD 資料損壞等問題。

4. Raspberry Pi OS 安裝與設定

Raspberry Pi 最常使用的作業系統是 Raspberry Pi OS。初學者建議使用 Raspberry Pi Imager 將系統寫入 microSD 卡。

第一次啟動後,建議先更新系統,並執行 sudo raspi-config,設定 SSH、I²C、SPI、Serial、VNC、地區語言、時區與主機名稱。對於要進行硬體控制的 Raspberry Pi,應依實際使用需求確認 I²C、SPI 與 Serial 等硬體介面是否已啟用;一般 GPIO 數位輸入與輸出通常不需要額外啟用。

  1. 下載 Raspberry Pi Imager
  2. 插入 microSD 記憶卡
  3. 選擇 Raspberry Pi 裝置型號
  4. 選擇 Raspberry Pi OS
  5. 設定主機名稱、帳號、密碼、Wi-Fi 與 SSH
  6. 將系統寫入 microSD 卡
  7. 將 microSD 卡插入 Raspberry Pi
  8. 接上螢幕、鍵盤、滑鼠與電源
  9. 第一次開機並完成基本設定
sudo apt update
sudo apt upgrade -y
sudo raspi-config

5. Raspberry Pi 常用 Linux 指令

Raspberry Pi 執行的是 Linux,因此常用指令是學習樹莓派的重要基礎。這些指令在後續安裝開發工具、設定服務、排查網路與測試硬體時都會用到。

uname -a
cat /etc/os-release
hostname
uptime
df -h
free -h
pwd
ls -la
cd /home/pi
mkdir test
touch hello.txt
nano hello.txt
ip addr
hostname -I
ping 8.8.8.8
sudo apt update

6. Raspberry Pi 啟用 SSH 遠端登入

SSH 是管理 Raspberry Pi 最常用的方式。啟用 SSH 後,可以從 Windows、Linux 或 macOS 遠端登入 Raspberry Pi,不一定需要接螢幕與鍵盤。

sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
hostname -I
ssh pi@192.168.1.50

7. Raspberry Pi 開發軟體與程式撰寫

Raspberry Pi 常見開發方式包括 Python、C/C++、Shell Script、Node.js 等。初學者最推薦 Python,因為語法簡單,GPIO、I2C、SPI 與感測器套件資源也很多。

sudo apt update
sudo apt install python3 python3-pip python3-venv -y
nano hello.py
python3 hello.py
print("Hello Raspberry Pi")

8. Raspberry Pi GPIO 介紹

GPIO 是 General Purpose Input Output 的縮寫,也就是通用輸入輸出腳位。Raspberry Pi 可以透過 GPIO 控制 LED、讀取按鍵、控制繼電器、蜂鳴器與其他電子模組。

使用 GPIO 時要特別注意 Raspberry Pi GPIO 是 3.3V,不是 5V。GPIO 不可直接接 5V 訊號,否則可能造成主機板損壞。

  • Raspberry Pi GPIO 是 3.3V,不是 5V
  • GPIO 不可直接接 5V 訊號
  • LED 需要串接限流電阻
  • GND 必須共地
  • 外部設備電流不可超過 GPIO 能力
  • 控制繼電器、馬達時建議使用驅動模組

9. Raspberry Pi GPIO LED 控制實作

下面使用 Python 控制 LED 閃爍。這是 Raspberry Pi 硬體控制的第一個基本實驗。假設 LED 接在 GPIO17,執行程式後,如果 LED 每秒閃爍一次,表示 GPIO 輸出控制成功。

sudo apt install python3-gpiozero -y
nano led_blink.py
python3 led_blink.py
from gpiozero import LED
from time import sleep

led = LED(17)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)

10. Raspberry Pi GPIO 按鍵輸入實作

除了輸出控制,GPIO 也可以讀取按鍵輸入。這個範例中,按下按鍵時 LED 亮起,放開按鍵時 LED 熄滅。透過這個實驗可以理解 GPIO 輸入、輸出與事件控制。

from gpiozero import LED, Button
from signal import pause

led = LED(17)
button = Button(2)

button.when_pressed = led.on
button.when_released = led.off

pause()

11. Raspberry Pi I2C 介面說明

I2C 是常見的感測器通訊介面,只需要 SDA 與 SCL 兩條訊號線,就可以連接多個裝置。常見 I2C 模組包括溫濕度感測器、LCD、OLED、RTC 時鐘模組與氣壓感測器。

sudo raspi-config
sudo apt install i2c-tools -y
i2cdetect -y 1

12. Raspberry Pi SPI 介面說明

SPI 是高速同步序列通訊介面,常用於顯示器、ADC 模組、RFID、SD 卡模組與高速感測器。常見腳位包括 MOSI、MISO、SCLK、CE0、CE1、GND 與 3.3V。

sudo raspi-config
ls /dev/spidev*
sudo reboot

13. Raspberry Pi RS232 / UART 介面說明

Raspberry Pi 支援 UART 序列通訊,但 GPIO UART 是 3.3V TTL 訊號,不是標準 RS232 電壓。如果要連接真正的 RS232 設備,必須使用 TTL to RS232 轉換模組,例如 MAX3232 模組,不能直接把 RS232 設備接到 Raspberry Pi GPIO。

sudo raspi-config
ls -l /dev/serial*
ls -l /dev/ttyS0
ls -l /dev/ttyAMA0
sudo apt install minicom -y
minicom -b 9600 -D /dev/serial0
import serial
import time

ser = serial.Serial('/dev/serial0', 9600, timeout=1)

while True:
    ser.write(b'Hello RS232 from Raspberry Pi\r\n')
    time.sleep(1)

14. Raspberry Pi 服務啟動、停止與開機自動執行

Raspberry Pi 可以像一般 Linux 主機一樣使用 systemctl 管理服務。例如 SSH、Web Server、Python 背景程式都可以用服務方式管理。

sudo systemctl status ssh
sudo systemctl start ssh
sudo systemctl stop ssh
sudo systemctl restart ssh
sudo systemctl enable ssh
sudo systemctl disable ssh

15. 建立 Python 程式開機自動執行服務

如果你之後要讓 Raspberry Pi 自動執行 Python 感測器程式,可以建立 systemd service,讓它開機後自動啟動。這種方式很適合用在感測器資料收集、IoT 上傳、RS232 設備監控與 GPIO 控制程式。

[Unit]
Description=Raspberry Pi Sensor Service
After=network.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/myapp/sensor.py
WorkingDirectory=/home/pi/myapp
Restart=always
User=pi

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable sensor.service
sudo systemctl start sensor.service
sudo systemctl status sensor.service
journalctl -u sensor.service -f

16. Raspberry Pi 測試流程檢查表

  • Raspberry Pi 可以正常開機
  • 可以取得 IP 位址
  • 可以 ping 外部網站
  • SSH 可以遠端登入
  • apt update 可以正常執行
  • Python3 可以執行
  • GPIO LED 可以閃爍
  • 按鍵輸入可以讀取
  • I2C 可以掃描到裝置
  • SPI 可以看到 /dev/spidev*
  • Serial 可以看到 /dev/serial0
  • systemctl 可以正常管理服務

17. Raspberry Pi 常見故障排除

Raspberry Pi 常見問題包括無法開機、SSH 連不上、GPIO 沒有反應、I2C 掃描不到裝置、RS232 沒有資料。排查時應先確認電源、microSD、網路、服務狀態、腳位接線、通訊參數與權限設定。

  • 無法開機:檢查 microSD 是否正確燒錄、電源是否穩定、HDMI 是否正常
  • SSH 連不上:檢查 SSH 是否啟用、IP 是否正確、網路是否連通
  • GPIO 沒反應:檢查 GPIO 編號、LED 極性、GND、電阻與程式是否正確
  • I2C 掃不到裝置:檢查 I2C 是否啟用、SDA/SCL 是否接反、GND 是否共地
  • RS232 沒資料:檢查 UART 是否啟用、TX/RX 是否接反、baud rate 是否一致、是否有使用 MAX3232 轉換模組

18. Raspberry Pi 初學者常見 Q&A

Q1:Raspberry Pi 和 Arduino 有什麼不同?Raspberry Pi 是可以執行 Linux 的單板電腦,適合網路、資料庫、影像、Web Server、Python 程式與較複雜的應用。Arduino 是微控制器,適合即時控制 LED、馬達、按鍵與感測器。

Q2:Raspberry Pi 適合初學者嗎?適合,但建議先學基本 Linux 指令、SSH、Python 與簡單電子電路。

Q3:Raspberry Pi GPIO 可以接 5V 嗎?不建議,也不應該直接接。Raspberry Pi GPIO 是 3.3V 邏輯,直接接 5V 訊號可能造成主機板損壞。

Q4:Raspberry Pi 可以當小型伺服器嗎?可以。Raspberry Pi 可以架設 Web Server、資料庫、MQTT Broker、檔案伺服器、監控系統等。

Q5:Raspberry Pi 可以連接工業 RS232 設備嗎?可以,但需要使用 TTL to RS232 轉換模組,不能把標準 RS232 訊號直接接到 GPIO。

19. Raspberry Pi 進階學習方向

  • Raspberry Pi + SHT30 溫濕度感測器
  • Raspberry Pi + LCD / OLED 顯示器
  • Raspberry Pi + RS232 工業設備資料讀取
  • Raspberry Pi + MySQL / MariaDB 資料記錄
  • Raspberry Pi + Flask Web Dashboard
  • Raspberry Pi + MQTT IoT 資料上傳
  • Raspberry Pi + Docker 容器部署
  • Raspberry Pi + Camera 影像監控
  • Raspberry Pi + Node-RED 自動化控制
  • Raspberry Pi + systemd 服務管理

結論

Raspberry Pi 是學習 Linux、Python、IoT、GPIO 控制與硬體通訊非常適合的入門平台。完整的 Raspberry Pi 學習不應該只停留在安裝系統,而是要從週邊設備準備、Raspberry Pi OS 安裝、Linux 指令、SSH 遠端管理、Python 程式開發、GPIO 控制、I2C、SPI、RS232 通訊與 systemd 服務管理逐步建立完整能力。

對初學者來說,建議學習順序是先完成 Raspberry Pi OS 安裝,再學 Linux 基本指令,接著啟用 SSH 遠端登入,再用 Python 測試程式,接著控制 GPIO LED 與按鍵,最後進入 I2C、SPI、RS232 與 IoT 應用。

相關資源與文章匯出
查看 Raspberry Pi 免費教學資源 下載 DOCX PDF/列印

← 回文章列表