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

2019年10月18日

ラズベリーパイ(Raspberry Pi Zero WH)でLチカ

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

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

 

Right Caption
ままあちゃん
じゃあ、いよいよLチカやってみよ~
Left Caption
まあちゃん
Lチカってなぁに?
Right Caption
ままあちゃん
LEDをチカチカさせるの
みんなが最初にトライするんだって
Left Caption
まあちゃん
やったー! わくわく

準備するもの

1

ラズベリーパイ(Raspberry pi zero WH)

詳しくは、こちらです。

初期設定環境設定が済んだものを使用します。

Raspberry Pi Zero WH
2

microSDカード 8~32GB

詳しくは、こちらです。

Team microSDHCカード 32GB 高速転送UHS-1 日本国内10年保証 SD変換アダプター付属 正規品

3

microUSB電源ケーブル

スマホの充電ケーブルでOKです。
詳しくは、こちらです。

microUSB電源ケーブル
4

パソコン

microSDに書き込めるもの。
詳しくは、こちらです。

エイスース 13.3型ノートパソコン ASUS ZenBook UX331UN ロイヤルブルー UX331UN-8250B

5

LED(発光ダイオード)

何色でもOKです。今回は、3mmの赤いLEDを使用しました。詳しくは、こちらです。

LED
6

抵抗

今回は、330Ωの抵抗を1本使います。

詳しくは、こちらです。

抵抗
7

ブレッドボード

詳しくは、こちらです。

ブレッドボード
8

ジャンパーワイヤー

ジャンパーワイヤ(オスーメス)を2本使用します。詳しくは、こちらです。

ジャンパーワイヤ

回路図

今から組む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Ωの抵抗しかなかったので、少し大きいですがこの抵抗を使うことにしました。

Left Caption
まあちゃん
オームの法則?
Right Caption
ままあちゃん
中学校で習うんだよ。
今はさらっと見てね。

配線方法

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

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画面にペーストします。
コメント(#)で、処理内容の説明を入れています。

Left Caption
まあちゃん
プログラムって難しそうだね
Right Caption
ままあちゃん
こうしてねって書いてるだけだから
一つずつ見て行けば大丈夫だよ

 

エンコーディング宣言について
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が消えます。

こちらが、実際に動いている動画です。

Left Caption
うさたん
すごーい 光ったぁ
Right Caption
ままあちゃん
やったね! 感激だね

まとめ

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

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

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

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

次回は、もう少し進んだ電子工作にトライしたいと思います。

Posted by ままあちゃん