ラズベリーパイ(Raspberry Pi Zero WH)でPython3 Lチカ(LED点滅)させる方法

raspi-led-blinkin

ラズベリーパイ(Raspberry Pi Zero WH)のGUI上で、IDLE(アイドル)という開発環境を使って、Python3(パイソン3)のプログラミングをすることができます。

最初はPython3でLEDを点滅させることを目標に、ラズベリーパイ(Raspberry Pi Zero WH)電子工作をする方法をみていきましょう。

まあちゃん

じゃあ、いよいよLチカやってみよ~

うさたん

Lチカってなぁに?

まあちゃん

LEDをチカチカさせるの
みんなが最初にトライするんだって

うさたん

やったー! わくわく

目次

準備するもの

1ラズベリーパイ(Raspberry pi zero WH)
詳しくは、こちらです。
初期設定環境設定が済んだものを使用します。
Raspberry-Pi-Zero-WH
2microSDカード
8~32GB
詳しくは、こちらです。
Team-microSDHC-Card
3microUSB電源ケーブル
スマホの充電ケーブルでOKです。
詳しくは、こちらです。
microUSB-power-cable
4パソコン
microSDに書き込めるもの。
詳しくは、こちらです。
UX331UN-8250B
5ブレッドボード
詳しくは、こちらです。
bread-board
6ジャンパーワイヤー
詳しくは、こちらです。
Jumper-wire
7抵抗
詳しくは、こちらです。
electrical-resistance
8LED(発光ダイオード)
何色でもOKです。
詳しくは、こちらです。
led

回路図

今から組むLチカの簡単な回路図はこちらです。

3.3Vの電源から、抵抗とLEDを直列につないで、最後にGNDに接続しています。

GNDは、グラウンドと読み、電位の基準になります。乾電池のマイナスにつなぐイメージです。

circuit-diagram

抵抗の計算方法

今回、330Ωの抵抗を使いましたが、その計算方法を説明します。

まず、使用するLEDのデータシートやホームページの情報から、Vf(順方向電圧)If(標準電流)の値を探します。

LEDは、電圧がほぼ一定になる特徴があります。この電圧がVf(順方向電圧)です。

今回使用する赤い3mmのLEDの場合は、
Vf = 2.1V  (下図の①)
If = 30mA = 0.030Aです。

ラズベリーパイ(Raspberry Pi Zero WH)のGPIOピン1本に流していい電流は8mAまでなので、0.008A(下図の②)の電流が流れる回路を考えます。

電源 3.3V - Vf 2.1V(①) = 1.2V(下図の③)が、抵抗Rにかかることが分かります。

circuit-diagram

この ②③の値を使って計算します。

オームの法則  V(電圧) = I(電流) × R(抵抗) から
R(抵抗) = V(電圧) ÷ I(電流)
           = ③ 1.2[V] ÷ ② 0.008[A]
           = 150 [Ω]

なので、150Ωより大きい抵抗を使う必要があることが分かります。

今回は、手元に330Ωの抵抗しかなかったので、少し大きいですがこの抵抗を使うことにしました。

うさたん

オームの法則?

まあちゃん

中学校で習うんだよ。
今はさらっと見てね。

配線方法

では、実際どんなふうに配線するのか、簡単な図で説明します。

Raspberry-Pi-Zero-WH-wiring

ラズベリーパイ(Raspberry Pi Zero WH)のGPIO23(ピン番号は16番)とブレッドボードの抵抗をつなぎます。

抵抗とLEDがつながって、ラズベリーパイ(Raspberry Pi Zero WH)のグラウンドGND(ピン番号は6番)につながります(LEDの向きに注意です)。

ラズベリーパイ(Raspberry Pi Zero WH)のGPIOについては、こちらを参照してください。

写真で見るとこんなかんじです。ラズベリーパイ(Raspberry Pi Zero WH)のGPIOにジャンパーワイヤのメス側を挿して、オス側をブレッドボードに挿してつなぎます。

Raspberry-Pi-Zero-WH-LED
Raspberry-Pi-Zero-WH-LED

Python 3でプログラム作成

次にラズベリーパイ(Raspberry Pi Zero WH)上でプログラムを作っていきます。

ラズベリーパイ(Raspberry Pi Zero WH)を起動します。

メニューから、[プログラミング]-[Python 3(IDLE)]を選択します。

Raspberry-Pi-Zero-WH-Python3

「Python X.X.X Shell」ウィンドウが表示されます。

メニューから[File]-[New File]を選択します。

以下のプログラムをコピーして、Vnc VeiwerのNew File画面にペーストします。

コメント(#)で、処理内容の説明を入れています。

#モジュールを読み込む
import RPi.GPIO as GPIO
import time

#GPIO番号の指定モードを設定(BCM:役割ピン番号、BOARD:PIN番号)
GPIO.setmode(GPIO.BCM)    #BCMの方がプログラムの互換性がある

#23番ピンを出力として使用するように設定
GPIO.setup(23, GPIO.OUT)

try:
    while True:    #無限ループ
     #23番ピンにHIGHを出力(LEDをON)
        GPIO.output(23, GPIO.HIGH)

        time.sleep(0.5)     #0.5秒スリープ

     #23番ピンにLOWを出力(LEDをOFF)
        GPIO.output(23, GPIO.LOW)

        time.sleep(0.5)     #0.5秒スリープ

#キーボードからCtrl+C割込みが入ったら
except KeyboardInterrupt:
    pass #何もせずに次の行へ

#GPIOの設定をリセット
GPIO.cleanup() 
うさたん

プログラムって難しそうだね

まあちゃん

こうしてねって書いてるだけだから
一つずつ見て行けば大丈夫だよ

エンコーディング宣言について

Pythonのファイルに日本語を入力する場合、「coding: utf-8」といったエンコーディング宣言をしていましたが、デフォルトの文字コード(Python 3はUTF-8)を使用する場合は、書かないほうがいいようです。

ASCII (Python 2) や UTF-8 (Python 3) を使用しているファイルにはエンコーディング宣言を入れるべきではありません。

引用元:はじめに — pep8-ja 1.0 ドキュメント

メニューから[File]-[Save As]を選択し、ファイル名をたとえば「led01.py」とつけて保存します。

Python 3でプログラム実行

プログラムをペーストしたウィンドウのメニューから[Run]-[Run Module]を選択します。

「Python X.X.X Shell」ウィンドウに「RESTART」と表示され、プログラムが動いて、LEDが点滅します!

Raspberry-Pi-Zero-WH-Python-Shell

キーボードの[ctrl]+[c]を押すと、プログラムの実行が終了してLEDが消えます。
こちらが、実際に動いている動画です。

うさたん

すごーい 光ったぁ

まあちゃん

やった! 感激だね

まとめ

いかがでしたか? LEDはうまくチカチカしてくれたでしょうか?

実際に動くとほんと嬉しいですよね。

しかも、GUIで簡単に実行できるので、手軽に試せます。

以前は、コマンドラインからsudoコマンドで実行したり、いろいろ手間がかかったそうですが、どんどん進化して簡単に使えるようになっているようです。

次は、もう少し進んでスマホからきれいなお花を光らせたいと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次