ラズベリーパイ(Raspberry Pi Zero WH)のGUI上で、IDLE(アイドル)という開発環境を使って、Python3(パイソン3)のプログラミングをすることができます。
最初はPython3でLEDを点滅させることを目標に、ラズベリーパイ(Raspberry Pi Zero WH)で電子工作をする方法をみていきましょう。

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

まあちゃんLチカってなぁに?

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

まあちゃんやったー! わくわく
準備するもの
1 | ラズベリーパイ(Raspberry pi zero WH) 詳しくは、こちらです。 初期設定・環境設定が済んだものを使用します。 | |
---|---|---|
2 | microSDカード 8~32GB 詳しくは、こちらです。 Team microSDHCカード 32GB 高速転送UHS-1 日本国内10年保証 SD変換アダプター付属 正規品 | |
3 | microUSB電源ケーブル スマホの充電ケーブルでOKです。 詳しくは、こちらです。 | |
4 | パソコン microSDに書き込めるもの。 詳しくは、こちらです。 エイスース 13.3型ノートパソコン ASUS ZenBook UX331UN ロイヤルブルー UX331UN-8250B | |
5 | ブレッドボード 詳しくは、こちらです。 | |
6 | ジャンパーワイヤー ジャンパーワイヤ(オスーメス)を2本使用します。詳しくは、こちらです。 | |
7 | 抵抗 今回は、330Ωの抵抗を1本使います。詳しくは、こちらです。 | |
8 | LED(発光ダイオード) 何色でもOKです。今回は、3mmの赤い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Ωより大きい抵抗を使う必要があることが分かります。R(抵抗) = V(電圧) ÷ I(電流)
= ③ 1.2[V] ÷ ② 0.008[A]
= 150 [Ω]
今回は、手元に330Ωの抵抗しかなかったので、少し大きいですがこの抵抗を使うことにしました。

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

ままあちゃん中学校で習うんだよ。
今はさらっと見てね。
配線方法
では、実際どんなふうに配線するのか、簡単な図で説明します。ラズベリーパイ(Raspberry Pi Zero WH)のGPIO23(ピン番号は16番)とブレッドボードの抵抗をつなぎます。
抵抗とLEDがつながって、ラズベリーパイ(Raspberry Pi Zero WH)のグラウンドGND(ピン番号は6番)につながります(LEDの向きに注意です)。
ラズベリーパイ(Raspberry Pi Zero WH)のGPIOについては、こちらを参照してください。
写真で見るとこんなかんじです。ラズベリーパイ(Raspberry Pi Zero WH)のGPIOにジャンパーワイヤのメス側を挿して、オス側をブレッドボードに挿してつなぎます。
Python 3でプログラム作成
次にラズベリーパイ(Raspberry Pi Zero WH)上でプログラムを作っていきます。ラズベリーパイ(Raspberry Pi Zero WH)を起動します。
メニューから、[プログラミング]-[Python 3(IDLE)]を選択します。
「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が点滅します!
キーボードの[ctrl]+[c]を押すと、プログラムの実行が終了してLEDが消えます。
こちらが、実際に動いている動画です。

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

ままあちゃんやったね! 感激だね
まとめ
いかがでしたか? LEDはうまくチカチカしてくれたでしょうか?実際に動くとほんと嬉しいですよね。
しかも、GUIで簡単に実行できるので、手軽に試せます。
以前は、コマンドラインからsudoコマンドで実行したり、いろいろ手間がかかったそうですが、どんどん進化して簡単に使えるようになっているようです。
次は、もう少し進んでスマホからきれいなお花を光らせたいと思います。
ラズベリーパイ ( Raspberry Pi Zero WH )に WebIOPi をインストールして、パソコンやスマホから操作する方法を紹介します。 そして、このWebIOPiを使って フルカラーLED を操作! 100均の材料で作った ハーバリウム をきれいに光らせて...