今回はラズベリーパイとPythonを使ってLEDをチカチカさせてみましょう
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
初めて動画作ってみました
youtubeチャンネルはこちらチャンネル登録してくれたら更新頻度上がるかもしれないです笑
ラズベリーパイとPythonで電子工作してみよう
この記事を読んでできるようになること
『ラズベリーパイを使ってLEDを制御できる』
電子工作に必要な物
今回の電子工作に必要な物についてハードとソフトで分けて
ご紹介します。
一つ一つそろえるよりも全部セットになっている、
こちらのような商品もあります。
今後紹介する電子工作でも使えるものがありますので、
持っていない方は1つ購入してみてください。
やる気もアップするかもしれません笑
ハード側
ハード側で必要になるものをご紹介します。
※↑で紹介したセットであればここに紹介する物はすべて含まれています。
GPIO延長部品(T字のパーツ)
動画でも配線周りの紹介で軽く触れていますが、
T字の赤い基盤のようなものです。
ラズベリーパイ本体から出ているGPIOのピンに直接LEDを直結しても良いのですが、
GPIOの何番につながっているのか確認が面倒なので、
こちらの部品を使ったほうが絶対に効率的です。
ブレッドボード
ブレッドボードです。こちらは配線周りをスッキリさせるための便利グッズです。
+と-の縦1列はどこに繋げてもつながり、横は横毎につながっています。
言葉ではなかなか説明しづらいので、動画作成予定です。
ジャンパーワイヤー
配線をつなげるThe・導線です。実はこちら長さを自由にしたいという方のために、
裏技があるのですが、今後ご紹介します。
LED
一般的な単色のLEDを使用します。
私は工作キットに入っていたLEDを使用しているので、
どれくらいの電流値まで耐えられるのかはテストしていません…
LEDの足はアノード/カソードと言う名前で分かれていて、極性(+側にどっちを付けるか)があります。
見分け方は足の長いほう(アノード)を+側に接続します。
抵抗(1KΩ)
今回は1KΩを使用しています。
抵抗を入れる理由はLEDに大電流が流れて、LEDが損傷するのを防ぐ目的です。
抵抗値が小さすぎるとLEDに悪く、抵抗が大きすぎると今度は点灯しなくなるので
ちょうどいいところを狙ってみてください。
ソフト側
私はラズベリーパイを使うときはPythonというプログラミング言語を使用しています。
Pythonについては他の記事でもご紹介していますのでそちらをご覧ください。
Pythonについてエディターに関しては、はじめからインストールされているものでは使いづらいので、
私はVisualStudioCodeを使用しています。
実際に使用した配線周り
↑に簡単なイメージ図を載せています。
私は電気関係のプロではないので配線図ではなくイメージ図(謎)でお届けします。
注意点としては、2点ありましてすでにご紹介していますが、
となっています。
この2点だけ守れば、ブレッドボードなどは極端な話不要なのですが、
今後複雑な配線になったときに必ず必要になりますので購入しておきましょう。
実際に使用したソースコード
import time # timeを使えるようにする。
import RPi.GPIO as GPIO # RPi.GPIOを使えるようにする。
GPIO.setmode(GPIO.BCM) # BCMモードで指定する。これでGPIO番号のまま指定できる。
GPIO.setup(18, GPIO.OUT) # GPIO18を出力モード設定
while True:
GPIO.output(18, 0) # GPIO18をLOWに落とすとLEDに電流が流れる=光る。
time.sleep(1) # 1秒待ち。1msecではないので注意。
GPIO.output(18, 1) # GPIO18をHIGHにすると電流が流れないので消灯。
time.sleep(1) # 1秒待ち。
動画でもお見せしているソースコードです。
こちらを.py拡張子のファイルにコピー&ペーストするだけで動くはずです。
適宜ブレークポイントを入れながら動作を確認してみてください。
応用編として、
・GPIO18ではなく、GPIO23に繋いでコード変更して動くか試してみましょう。
・1秒間隔ではなく、もっと早い点滅にしてみましょう。
さらに応用編としては、この情報を使って複数のLEDの点滅にも挑戦してみましょう。
ちなみに、他のネット記事や書籍だと、
3.3VにLEDをつながない方法が圧倒的に多いと思います。
なぜ今回、3.3VにつないでもLEDが光るのかについても
考えてみると面白いかもしれません。
コメント