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

2019年4月18日

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

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

準備するもの

1. ラズベリーパイ(Raspberry Pi Zero WH)

環境設定済みのラズベリーパイ(Raspberry Pi Zero WH)です。microSDと電源ケーブルもセットで使います。

Raspberry Pi Zero WH

環境設定については、こちらのブログで紹介しています。

2. LED(発光ダイオード)

何色でもOKです。今回は、秋月電子通商 で購入した赤い3mmのLEDを使用しました。
LED3. 抵抗

LEDに電流が流れ過ぎると壊れてしまうので、調節するために抵抗を使います。

今回は、330Ωの抵抗を1本使います。これも秋月電子通商さんで購入。100本入りで100円でした。

抵抗

Left Caption
まあちゃん
なんか模様がついてる!
Right Caption
ままあちゃん
この線で、抵抗の大きさが分かるよ
早見表が紹介されてるわ

4. ブレッドボード

はんだ付けをしなくても、穴にパーツを挿すだけで配線できてしまうすごいボードです。これも秋月電子通商さんで購入。ブレッドボード EIC-801 270円でした。
ブレッドボード5.ブレッドボード用ジャンパーワイヤ(オスーメス)

ジャンパーワイヤ(オスーメス)を2本使って、ラズベリーパイ(Raspberry Pi Zero WH)とブレッドボードをつなぎます。
ジャンパーワイヤ

ジャンパーワイヤは、Amazonでオスーメス・オスーオス・メスーメスのセットを購入しました。色がかわいいです。


ELEGOO 120pcs多色デュポンワイヤー、arduino用ワイヤ—ゲ—ジ28AWG オス-メス オス-オス メス –メス ブレッドボードジャンパーワイヤー

6.ニッパ (ないのでラジオペンチの根本のところで代用しました)

LEDと抵抗の長い端子をカットします。

LEDと抵抗の端子をカット

赤いLEDまずは、LEDも抵抗も端子が長いので、ちょうどいい長さになるよう、ニッパ等でカットします。

長いまま使うと、さわっちゃいけない場所がさわっちゃったりして、ショートする可能性があって危険です。

LEDには、+側アノード(長い端子)と-側カソード(短い端子)の区別があって、電源につなぐ時は、アノード側に電源のプラス側をつなぎます。

LEDの端子を同じ長さに切ってしまうと、どちらが+側か分からなくなってしまうので、+の方にマジックなどでちょこっと印をつけたり、少しだけ長さを変えてカットしたりするといいようです。

抵抗には、向きがないので、そのままカットして大丈夫です。

ラズベリーパイ(Raspberry Pi Zero WH)のGPIOピン配列

ラズベリーパイ(Raspberry Pi Zero WH)の右側にあるたくさんの針みたいな端子がGPIO(汎用入出力)です。

ここにセンサーやモーター、カメラなどのパーツをつないで動かすことができます! 

Raspberry Pi Zero WHのGPIO

Left Caption
まあちゃん
なんか、難しそう~
Right Caption
ままあちゃん
使うピンだけ見ていけば
大丈夫だよ~

ブレッドボード内の配線

ブレッドボードは、写真のオレンジの線のように、中でつながっています。それを踏まえて、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Ωの抵抗しかなかったので、少し大きいですがこの抵抗を使うことにしました。

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

配線方法

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

Raspberry Pi Zero WH 配線

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

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

*LEDの向きに注意です。

 

写真で見るとこんなかんじです。ラズベリーパイ(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 ままあちゃん