このサイトを立ち上げて最初の電子工作の記事です。
やはり、電子工作の最初の一歩と言えば、「Lチカ」ですよね~。
ということで、私も最初の記事は「Lチカ」にします。
楽しそうだったら作ってみて♪
やりたいこと
・Raspberry Pi から制御信号を送り、LEDを点滅する
やることリスト
先ずは、上記の「やりたいこと」をみて、
どんな作業が必要か、自分で項目を考えてみてください。
これを考えることで、「プログラミング的思考」が身に付いていきます。
大項目 | 小項目 |
部品の購入 | 不足している部品の購入 |
組み立て | 部品を組み立てる |
ソフト | Raspberry Pi から制御信号を送り、LEDを点滅する |
実行 | ソフトを実行する |
部品の購入
今回のシステムに必要な部品です。
不足している部品があれば購入。
部品名 | 備考 |
Raspberry Pi | 別途、電源・SDカード・HDMIケーブルが必要です。 |
ブレッドボード(※1) | |
ジャンパー線(※1) | オスーメス:2本 |
LED(※1) | 330Ω 抵抗のカラーコードの読み方はこちらを参照ください。 抵抗の『カラーコード』について!一覧表・読み方・覚え方など! |
抵抗(※1) |
購入に必要な部品を、
Raspberry Pi 関連に記載しています。
※1)「電子工作キット」内に全て含まれています。
ラズパイは、電源を入れただけでは起動しません。
ラズパイの起動手順の記事を参照ください。
組み立て
部品の説明
ブレッドボード
ブレッドボードは、ソケット(穴)に部品を挿し込むだけで簡単に電子回路が作れる便利なものです。
各ソケットは、薄い緑色の線の方向に内部で繋がっています。
なので、部品とジャンパー線、部品と部品が繋がっていなくても、電気が流れます。
LED
上の図で、足の折れ曲がって長い方をアノード(+)、短い方をカソード(ー)と言います。
電流は アノード から カソードへ流れます。
抵抗
LEDをはじめとして、内部に抵抗を持っていない部品は、
電源の + から - の間に抵抗を入れてあげないと電流が流れ過ぎて壊れてしまいます。
では、どのくらいの抵抗を入れてあげるかというと、
オームの法則で計算することが出来ます。
E(V) = R(Ω) x I(A)
電圧 抵抗 電流
今回のシステムで言うと、
ラズパイの18番ピンからの電圧が3.3V、
LEDで電圧2.0Vが使われるので、
残り、1.3Vが抵抗に掛かる電圧になります。
以下オームの法則に当てはめると、電流値は4mAとなり、
LEDへ流せる最大電流は30mAなので、問題無い値ということが分かります。
1.3V = 330Ω x 電流
電流の流れ
ラズパイの18番ピン → 抵抗 → LED → ラズパイの6番ピン(Ground)
の順に電流は流れていきます。
ソフト
ピンの制御にRPi.GPIOパッケージを使用する為、以下コマンドでインストールする。
sudo pip install rpi.gpio
led.pyファイルを作成し、以下プログラムを書き込む。
import RPi.GPIO as GPIO
import time
# LED_PIN 変数に 18をセット
LED_PIN = 18
# GPIO.BOARDを設定することで、PIN番号で制御出来るようになります。
GPIO.setmode(GPIO.BOARD)
# GPIO.OUTを設定することで、出力モードになります。
# 出力モードにすることで電圧を ON/OFF することが出来ます。
GPIO.setup(LED_PIN, GPIO.OUT)
count = 5
# range(5) を使うことで、指定した回数だけ for文の中身を実行します。
for i in range(5):
# GPIO.HIGHを設定することで、電圧を ON し、電流が流れ、LEDが点灯します。
GPIO.output(LED_PIN, GPIO.HIGH)
time.sleep(1) # 1秒wait
# GPIO.LOWを設定することで、電圧を OFF し、電流が流れず、LEDが消灯します。
GPIO.output(LED_PIN, GPIO.LOW)
time.sleep(1) # 1秒wait
# ピンの設定を初期化
# この処理をしないと、次回 プログラムを実行した時に「ピンが使用中」のエラーになります。
GPIO.cleanup()
実行
コマンドラインから、先程作成した led.py のディレクトリに移動し、
python led.py
を実行すると、1秒周期で5回点灯/点滅を繰り返します。
最後に
不明な点があればページTOPの「お問い合わせ」にてご連絡下さい。
今後も、Raspberry Pi と Python を使ってワクワクするモノを作って行きます。
楽しみにしていてくださいね。