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

2019/02/21

t f B! P L
ラズベリーパイ(Raspberry Pi Zero WH)でLチカ

ラズベリーパイ(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
2 microSDカード 8~32GB
詳しくは、こちらです。
Team microSDHCカード 32GB 高速転送UHS-1 日本国内10年保証 SD変換アダプター付属 正規品
3microUSB電源ケーブル
スマホの充電ケーブルでOKです。
詳しくは、こちらです。
microUSB電源ケーブル
4 パソコン
microSDに書き込めるもの。
詳しくは、こちらです。
エイスース 13.3型ノートパソコン ASUS ZenBook UX331UN ロイヤルブルー UX331UN-8250B

5 ブレッドボード
詳しくは、こちらです。
ブレッドボード
6 ジャンパーワイヤー
ジャンパーワイヤ(オスーメス)を2本使用します。詳しくは、こちらです。
ジャンパーワイヤ
7 抵抗
今回は、330Ωの抵抗を1本使います。詳しくは、こちらです。
抵抗
8LED(発光ダイオード)
何色でもOKです。今回は、3mmの赤いLEDを使用しました。詳しくは、こちらです。
LED

回路図

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

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

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

抵抗の計算方法

今回、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にかかることが分かります。
回路図

この ②③の値を使って計算します。
オームの法則  V(電圧) = I(電流) × R(抵抗) から
R(抵抗) = V(電圧) ÷ I(電流) 
           = ③ 1.2[V] ÷ ② 0.008[A]
           = 150 [Ω]
なので、150Ωより大きい抵抗を使う必要があることが分かります。

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


まあちゃん
オームの法則?



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


配線方法

では、実際どんなふうに配線するのか、簡単な図で説明します。
Raspberry Pi Zero WH Lチカの配線


ラズベリーパイ(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シェル


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




まあちゃん
すごーい 光ったぁ



ままあちゃん
やったね! 感激だね


まとめ

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

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

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

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

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

ラズベリーパイ ( Raspberry Pi Zero WH )に WebIOPi をインストールして、パソコンやスマホから操作する方法を紹介します。 そして、このWebIOPiを使って フルカラーLED を操作! 100均の材料で作った ハーバリウム をきれいに光らせて...

このブログを検索

カテゴリ

プロフィール


こんにちは!
小学生の男の子 2人のママです。

ラズベリーパイを使った簡単な電子工作とプログラミングに挑戦しています。

よかったら、詳しいプロフィールも見てください。

QooQ