はじめに
Raspberrypi5でGPIOを使う方法を解説します。
LEDと抵抗をGPIOにつなぎ、LEDの点灯・消灯(Lチカ)を行います。
言語は「Python」ライブラリには公式ドキュメントでも紹介されている「gpiozero」を使用します。
これまで、GPIOのライブラリとして「RPi.gpio」を紹介してきましたが、2024年3月現在、Pi5ではRPi.gpioが使えない状態が続いています。
そのため、今回は現時点で使用可能な「gpiozero」を使う方法を解説します。
~ この記事の内容 / Contents ~
環境
この記事で使用する環境は以下の通りです。
環境 | バージョンなど | 備考 |
RaspberryPi | 最新の「5」を使用します | |
RaspberryPi OS | Debian version 12 (bookworm) | 64bit版です |
言語 | Python 3.11.2 | |
ライブラリ | gpiozero |
RaspberryPi 5との接続
RaspberryPi 5とLEDを以下のように接続します。抵抗は直結防止のためなので、1kΩでなくてもOKです。
ピン番号 | RaspberryPi Pico 側 | 回路側 |
33 | GP12 | LED アノード ( 足の長い方) |
6 | GND | 抵抗 |
ピンアサイン
※ RaspberryPi 公式のGitHubより引用
使用する部品
この記事で使用する部品は以下の通りです。
RaspberryPi 5
RaspberryPi 5本体です。技適や流通経路が不安な方は、日本の老舗店マルツオンライン(楽天)のページが安心です(現在は4GB版のみの販売)。
※ どの購入先でも、本体に電源やケーブルは含まれていないので注意してください
RaspberryPi 5 用電源
スマホ用(PD対応品)も使用できますが、仕様によってはUSBの出力電流が制限されたり、電源が落ちたりすることもあります。5V5A対応品の使用がおすすめです。
公式品は少々値段が高いので、私は以下から購入・使用しています。
サーボモータ(ラジコンサーボ) SG90
冒頭でも紹介した、RaspberryPiシリーズで使えるサーボモータ(ラジコンサーボ)です。 人気のため、コピー品も多いようです。私は以下の正規販売元のページから購入しました。
ブレッドボード(ハーフサイズ)
サンハヤト製のブレッドボードです。今回は簡単な回路なので小さいサイズのものを使っています。
LED
一般的な砲弾型のLEDでOKです。以下のようなセットで買っておくと、購入の手間がはぶけます。
抵抗
お手持ちのものでOKです。ない方は一度セットで揃えてしまうと送料と時間が節約できます。
プログラム概要
今回のプログラムの概要は以下の通りです。
- LEDオブジェクトの作成
- LEDをオン/オフする
実行結果
後述するプログラムの実行結果は以下の通りです。実行すると1秒ごとにLEDが点灯・消灯を繰り返します。
全体コード
全体コードは以下の通りです。詳細な内容は後述する「コードのポイント」で解説します。
from gpiozero import LED
from time import sleep
# ledのオブジェクトを生成します
led = LED(13)
# 点灯と消灯を繰り返します
while True:
# led点灯
led.on()
sleep(1)
# led点灯
led.off()
sleep(1)
実行方法
上述した全体コードを保存したディレクトリで、以下のコマンドを実行します。
sudo python gpiozero_led.py
コードのポイント
pLEDオブジェクトの生成
LEDを操作するためのオブジェクトを生成します。
gpiozeroでは、RPi.GPIOなど他のライブラリと違い「ピン」ではなく、「モノ(部品)」に着目したプログラムの名称(構造)となっています。
そのため、プログラム上でも使用する部品に合わせて、LED型のオブジェクトに使用するピンの名称(GP13などの数字部分)を指定します。
led = LED(13)
LEDのオン/オフ
on/off関数により、LEDを点灯/消灯させます。
# 点灯と消灯を繰り返します
while True:
# led点灯
led.on()
sleep(1)
# led点灯
led.off()
sleep(1)
まとめ
Raspberrypi5でGPIOを使う方法を解説しました。RaspberryPi 5になっても1~4と同じピン配置なのはありがたいですね。
ライブラリについては、慣れ親しんだ「RPi.gpio」が使えないのはつらい状態ですが、「gpiozero」もシンプルで分かりやすく、使いやすいライブラリです。
このブログでもPi5と合わせて、gpiozeroのいろいろな使い方を解説していくので、ぜひご覧ください。参考になればうれしいです。
おすすめの最新書籍
今月号の日経Interfaceは「Linuxチューニング術50」
今月号のInterfaceは『Linux チューニング術 50』です。
Linuxを組み込んだ機器を”本格的”に作ろうとすると「起動を早くしたい」「いきなり電源を切られてもデータを守りたい」など、対応が必要なチューニングはおおいですよね。
今回の記事は、「カーネルをいじらない」方法でチューニングを行う方法が解説されています。
こういった”実用的”な特集はレアですし、知っておいても損はない情報だと思います。
私も仕事でこの手の問題に何度も遭遇していますが、こういったOSレベルの難しそうな設定を、さらっとできちゃう人はかっこいいですよね。
興味のある方は、以下のリンクから確認できます。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。