關閉

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

Raspberry Pi 樹莓派是一台體積小、價格相對低、功能完整的單板電腦,可以執行 Linux 作業系統,也可以透過 GPIO、I2C、SPI、UART/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 控制外部硬體。

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

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

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

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 數位輸入與輸出通常不需要額外啟用。

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 訊號,否則可能造成主機板損壞。

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 測試流程檢查表

17. Raspberry Pi 常見故障排除

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

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 是學習 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 應用。