「ラズパイでできること」の一つとして挙げられる、電子工作。
ラズパイが電子工作に向いている理由の一つが、”GPIO”と呼ばれる、他の機器と接続できるインターフェースが付いていることであり、これがラズパイの特徴、良いところの一つです。
今回は、このGPIOを活用した初めての電子工作ということで、入門編としてLEDをチカチカさせる電子工作(通称、Lチカ)やってみましたので、その方法をまとめたいと思います。
本記事はこんな人におすすめ!!
・ラズパイでLチカやるために準備しなければいけないものは何かを知りたい。
・ラズパイでLチカやるときの流れが知りたい。
・ラズパイをしたいけど何から始めればよいかわらない。
本ブログではこれまでに、ラズパイにカメラを取り付けたりもして遊んでいるので、興味のある方はぜひご覧ください。
GPIOとは何か
ラズパイについているGPIOとはそもそも何か、まずは簡単にまとめておきたいと思います。
GPIOは、”General Purpose Input/Output”の略であり、ラズパイを外部機器と接続するためのインターフェースです。
ラズパイ4におけるGPIO設置個所はこちら(赤枠部分)↓
GPIOは40個のピンで構成されています。各ピンには、それぞれ接続時の役割があり、用途に応じてこれらのピンに外部機器(例えばセンサーや今回実施するLEDなど)を接続し、ラズパイからプログラミングで制御することで、何かを計測したり、LEDを光らせたり、自分がやりたい動作を、容易に実現することができるのです。
Lチカやるために準備したもの
では、さっそくLチカしてみたいと思いますが、Lチカするためには、ラズパイ以外のハードウェアとして以下の4点を事前準備する必要があります。
- ブレッドボード
→ 機器を差し込むことで電子回路を簡易的に作る基盤。 - LED
→ Light Emitting Diode。光る半導体。今回はこれを光らせます。 - 抵抗(220Ω)
→ LEDに流れる電流を抑制するもの。LEDは大電流に弱く、流れると壊れてしまう可能性があるため、回路に抵抗を入れて電流を抑制します。 - ジャンパーワイヤ
→ 機器と機器を電気的に繋げるワイヤ。ブレッドボードに差し込んで機器と機器を繋げます。
どこで買えばよいかわからなかったので、今回はこれらの機器がセットで入っている商品、「SunFounder Raspberry pi スターター電子工作キット」をAmazonで購入して準備しました。
このキットには他にもセンサーやらいろんな機器が入っているので、今後もこのキットの中に入っているものを使っていろんなことができそうです!
Lチカやるための構成(ラズパイと電子機器の接続)
それでは、Lチカをやるために準備したものを実際にラズパイと接続させてみます。
まず、今回ラズパイ側のGPIOは、6番ピン(Ground)と、11番ピン(GPIO17)を使います。
これらのピンと、事前準備した機器のつなぎ方、最終的な構成は以下のような感じ↓
ブレッドボード上の接続箇所は、必ず上図の通りとする必要はなく、電気の流れ方などのルールを考慮して接続できれば、異なる接続形態でも同様にLチカできます。
Lチカさせてみた
ここまでの説明に事前準備を行い、各機器のラズパイとの接続まで完了しましたので、ついにLチカしてみたいと思います。
LEDをチカチカさせるためには、準備・接続したハードウェアに対して、ラズパイからソフトウェア、つまりプログラミングでの制御が必要となります。
ということで、今回はPythonでプログラミングして制御してみたいと思います。なお、ラズパイ4でのPythonの書き方はこちらにまとめていますので、わからない方は是非ご覧ください。
ラズパイのPython開発環境であるThonnyで、以下のような、1秒ごとにLEDをON/OFFする動作(ON/OFFで1セット)を10回繰り返すプログラムを作成し、”Lchika.py”というファイルで保存しました。
# GPIOのモジュールをインポート
import RPi.GPIO as GPIO
# 時間を扱う(time)モジュールをインポート
import time
GPIO.setmode(GPIO.BCM) # GPIO番号で指定する設定
GPIO.setup(17, GPIO.OUT) # GPIO17を出力モードに設定
for i in range(10):
# GPIO17の出力を“1”に設定 → LEDをつける
GPIO.output(17, 1)
# 1秒スリープ
time.sleep(1)
# GPIO17の出力を“0”に設定 → LEDを消す
GPIO.output(17, 0)
# 1秒スリープ
time.sleep(1)
GPIO.cleanup()
プログラムができたら、あとはこのプログラム”Lchika.py”を実行するのみ!
実行した結果次の通り!!つきました!
上記は静止画ではありますが、実際は、1秒間隔でLEDがついたり、消えたりして、10回繰り返したら止まりました!!
まとめ
今回初めてラズパイで電子工作をし、LEDをチカチカさせてみました!
今回の作業で感じたことは、ラズパイでLEDをチカチカさせることは「超簡単」ということ。ハードの準備さえできてしまえば、ものの10分でできました!
ちなみに、今回実施したLチカを図解してみると以下のようなイメージで良いかと思います。
プログラムにてGPIO17を制御しましたが、この制御において、1が設定されているときは電気が流れ、0が設定されているときは電気を流さない、となっていることから、プログラムしたように、LEDに電気が流れて、1秒ごとに計10回、点灯/消灯を繰り返すような動きを実現できました。
今回のLチカ作業で、ラズパイでの電子工作のイメージがついたので、今後はもっといろんな機器をとりつけて、動かしたり図ったりしていきたいと思います!!
コメント