PUBLIC
MICROCONTROLLERSRASPBERRY PI 5 GPIO9 MIN READ

Raspberry Pi 5 の GPIOLinux が動く Pi 5 で、Python(gpiozero)からピンを操作する

Raspberry Pi 5 はマイコンではなく「小さな Linux PC」ですが、40 ピンのヘッダで LED やセンサーを直接つなげます。Pi 5 から GPIO の担当チップが RP1 に変わったため、古い記事の RPi.GPIO はそのままでは動きません。gpiozero を使うのが確実です。

  • Raspberry Pi 5 8GB
CONTENTSこの記事の目次

02 — GPIOZERO

gpiozero で L チカ

PYTHONblink.py
from gpiozero import LED
from time import sleep

led = LED(17)          # GPIO17(物理 11 番ピン)

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

配線:物理 11 番(GPIO17)→ 抵抗 220Ω → LED アノード、LED カソード → 物理 9 番(GND)。Raspberry Pi OS には gpiozero が最初から入っています。python3 blink.py で実行し、Ctrl+C で止めます。

led.blink() と書くだけで点滅もできます(バックグラウンドで動くので、その後の処理を続けられます)。

03 — INPUT

ボタン入力

PYTHONbutton.py
from gpiozero import Button

button = Button(27)    # GPIO27。内部プルアップが有効になる

button.wait_for_press()
print("押された")

配線:GPIO27(物理 13 番)とGND(物理 14 番)の間にボタン。gpiozero の Button は初期状態でプルアップを有効にするので、ボタンを押すと GND に落ちて「押された」と判定されます。

04 — PI VS MCU

マイコン(ESP32)との違い

項目Raspberry Pi 5ESP32-S3 / M5Stack
OSLinux が動くOS なし(プログラムだけ)
起動数十秒一瞬
タイミング精度OS の都合でずれる正確(PWM やサーボ向き)
得意なことカメラ・AI・ネットワーク・画面センサー・モーター・電池駆動
消費電力大きい(5V 5A 推奨)小さい(電池で動く)

「Pi 5 が頭脳、ESP32 が手足」という組み合わせもよく使います。ESP32 を USB でつないでシリアル通信するか、Wi-Fi 越しにデータを送れば、精密なタイミングや電池駆動は ESP32 に任せられます。

05 — WATCH OUT

注意点

RPi.GPIO は Pi 5 で動かない

rpi-lgpio という互換パッケージもありますが、新しく書くなら gpiozero にします。

5V ピンと GPIO を間違えない

物理 2・4 番は 5V。隣の GPIO に挿し間違えると壊れます。配線前に pinout で確認します。

シャットダウンしてから配線を変える

sudo shutdown -h now で止めて、電源を抜いてから抜き差しします。

06 — CHECK YOURSELF

理解チェック

Q1GPIO17 は物理何番ピン?

11 番。隣の 9 番が GND なので L チカに使いやすい。