ラズベリーパイ5でLチカ(Bookworm)

ラズベリーパイ5とBookwormの組み合わせで、Lチカをやってみます。

ラズベリーパイ5でLチカ(Bookworm)
難易度 ★☆☆
ラズベリーパイの基礎中の基礎とも言えるLチカ。LEDをプログラムからON/OFFするだけとはいえ、いろいろと手順があります。しかし、ステップをひとつづつ順番にやっていけばそれほど難しいということはありませんので、初心者の方でも十分にできると思います。
ラズベリーパイ5
ラズベリーパイ4まで動いていたのに・・・ラズベリーパイ5からはハードウェアが変更され、以前のライブラリやコードがそのまま使えない場合があります。この記事ではラズベリーパイ5で動作するLチカを説明します。
OS世代が重要
ラズベリーパイOSもWindowsやmacOSのように毎年アップデートが実施され、前のバージョンでは動いていたコードや方法がそのまま動作しなくなることがあります。この記事はBookworm世代の手順です。
準備するもの
以下の部品を使います。アマゾンやAliExpressなどで購入できます。
  • LED
  • 抵抗(1kΩ程度)
  • ブレッドボード
  • 配線ケーブル

ラズベリーパイOSの世代を確認する

まず、最初にラズベリーパイOSの世代を確認します。この世代が異なる場合は動作しない場合があるので注意が必要です。

この記事を書いている2025/01/20では Bookwormが最新OSとなっています。

確認方法

OSの書き込みをまだしていない場合は書き込みアプリである、Raspberry Pi Imager上で世代が書かれています。

Raspberry Pi Imager でのOS世代表示(Bookworm)

すでに利用中のラズベリーパイOSから確認するにはターミナルを開きます。

ターミナルを開く

ターミナルというアプリを起動するという意味になります。シェルとも言われる場合があります。

ターミナルを開いた状態、赤矢印は文字を入力できる箇所

以下のコマンドを実行します。

lsb_release -a
$マークの横の部分にコマンドを入力してエンターを押すことで実行できます。上記を例にすると、コマンドは"lsb_release"で、"-a"がパラメーターと呼ばれます。
lsb_release -a 実行例

ここで、画面上の赤色の部分に "bookworm" と表示されている事を確認します。もし違う場合はRaspberry Pi Imagerから最新のOSをMicroSDカードに書き込んでからこの手順を試してください。

バージョン違うから動かない!

配線する

ブレッドボード

ラズベリーパイとLEDを電気的に接続していきます。この時に配線をしていく役割となるのがブレッドボードで一つあると便利です。よくケーブルとセットになっているものも販売されています。

サンハヤトのブレッドボード

個人的にはケーブルを刺したハズなのに、接続されてない、、のようなトラブルが嫌なのでサンハヤトの製品がオススメです。

抵抗とLED

抵抗

1kΩから4.7KΩ程度のものを利用してください。例えば2MΩなどの抵抗値が高すぎるとLEDが点灯しません。抵抗には極性が無いので方向を気にする必要はありません。

抵抗はなぜ必要なのか
LEDに必要以上の電流が流れないよう保護するという意味合いもありますが、どちらかというと本体を保護するために使っています。推奨最大電流は公式ドキュメントなどではおよそ 16mAとなっていますので、短絡させたりした場合に使い続けるとラズベリーパイ本体側が壊れる可能性があります。

アマゾンのリンク

LED

電圧 3v(もしくは 3.0v ~ 3.3vなどと) と書かれているものを利用してください。LEDは極性があり、長い方と短い方があります。足の長い方にプラスを接続しす。短い方はマイナス側(GroundかGNDと書かれている)に接続します。

1kΩ抵抗とLED
極性

電池にもプラスとマイナスがあるように、部品にも正しい方向で使う必要があるものがあります。LEDはその代表例で、逆方向に接続すると壊れる場合があります。

ブレッドボードで部品を配置

ブレッドボード上に部品を配置していきます。LEDの足の短い方を抵抗につなげています。

LEDの足の長い方を4番、短い方を5番にさしました。

右手アルコール消毒したので、カッサカサだー!

では次にケーブルを接続していきます、まずは黒いケーブルでマイナス(Ground)と抵抗を接続していきます。この黒ケーブルの反対側はラズベリーパイにつながりますが、後でまとめて接続します。

LEDの短い足が5番、その後抵抗を介して9番につながっている

次は別のケーブルをプラス(GPIO 21)を接続します。

LEDの長い足が4番、そのすぐ横に接続する

ラズベリーパイと接続

ラズベリーパイのピンは以下のようになっています。今回は GroundとGPIO 21 を使います。

出典​元 : https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio
Groundいくつもあるけど?

Groundは大人の事情によりピン配列上何箇所もあります。Lチカをする場合、どこに接続しても同じなのでわかりやすいところや近い箇所に接続して問題ありません。

ケーブルの色には意味合いがあるのですが、電子工作で利用されるケーブルでは赤色がプラス・黒色がマイナス(Ground)の場合が多いです。ただし、違う場合もありますので、過信は禁物です。

では黒ケーブルをGroundと書かれている箇所に刺していきます。公式の画像ではピン番号6が振られています。

黒ケーブルをGroundに
赤ケーブルをGPIO21 に
接続した状態

プログラム

では配線が終わったので次はプログラムを実行していきます。

以下の内容でファイルを作成して、test.pyのような名前で保存します。

from gpiozero import LED
from time import sleep

led = LED(21)

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

LEDを1秒おきにON/OFFさせるコード

これは gpiozero というライブラリを利用し、1秒ごとにLEDのオン・オフを切り替えています。ラズベリーパイOSにデフォルトで入っているライブラリなのでインストールなどしなくても良いので便利ですね。

gpiozero — gpiozero 2.0.1 Documentation

実行方法

プログラムの実行はターミナルで以下のコマンドを実行します。

python3 の後のスペースに続きファイル名を指定するので、ファイルを別の名前で保存した場合は適宜変更してください。

python test.py
LEDが点灯した

⚠️なんかエラーが出たぞ!

python3: can't open file '/home/kota/test.py': [Errno 2] No such file or directory

こんなメッセージが出た場合はファイルを保存した場所と、ターミナルで開いている場所(カレントディレクトリ)が異なるために発生しています。

そのままですが、「ファイルがみつからない」状態です。

なので、デスクトップ上にファイルを作成した場合はターミナルで"cd Desktop"のようにコマンドを実行して、ターミナルの現在のフォルダを変更してあげる必要があります。

この記事のやり方は Raspberry Pi 5 と Bookworm 以外の組み合わせでは動かないぞ!!

もしエラーが出でしまった場合はコメントか、お問い合わせフォームからご連絡ください。

仮想環境も使ってね

Bookworm世代のOSでは仮想環境のセットアップをしてからプログラムを実行することが推奨されているようです。

今回はOSにもともと入っているライブラリを利用したため特に必要ありませんが、仮想環境については以前記事を書いたのでぜひどうぞ。

ラズベリーパイbookwormのPython環境
ラズベリーパイOS Bookworm からPythonの実行環境周りが変更されたため、pipでそのままモジュールをインストールしたりすることができなくなりました。
記事の内容は間違いが無いように気をつけていますが、私の認識違いや、ミスなどにより間違っている可能性もあります。もし発見された場合はお問い合わせフォームよりご連絡頂けると幸いです。