はじめに
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のいろいろな使い方を解説していくので、ぜひご覧ください。参考になればうれしいです。
おすすめ書籍
MicroPythonのプログラミングガイドブックがついに登場!
「MicroPython」の専門書がついに発売になりました!
この一冊で、MicroPythonの言語仕様から、プログラミングの仕方までが、”ガッツリ”学べます!
別言語を使っている人や、これからマイコンを始める(工学系の)学生を対象としているので「初心者向け」ではありません。しかし、「自前のライブラリの作成」が目標なので、これ一冊で「ガッツリ」とMicroPythonを学びたい人におすすめの内容となっています。
全ての内容はここでは紹介しきれないので、詳細は以下からご覧ください。目次だけでも”ガッツリ”なのが確認できると思います。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。