Raspberry Pi にチャレンジ 〜LEDでチカチカ〜
今更ですが、Raspberry Pi (ラズパイ) を購入しました。
前々から興味はあったのですが、ラズパイを使って何かをする目的がないので、購入にためらっていました。
昔、ちょっとだけ触って、そのままフェードアウトしていった、玄人志向のKURO-BOXを思い出します。
しかし、友達にラズパイの勉強会に誘われたのを機に購入。
考え方を変えて
まず触ってみる。触ってから目的を考える。
ことにしました。
目的が出来るまで、ちょっとずつ触って、チャレンジしてみようかと思います。
購入したもの
- Raspberry Pi 3 Model B+ スターターセット BASIC
- OSOYOO(オソヨー) Raspberry Pi 学ぶ電子工作キット
- シリコンパワー microSD 32GB
- RedCloud カードリーダー
- ジャンパワイヤ (オス-メス)
環境構築
- Raspbian OSをインストール
- Python3環境の構築
- SSH接続
SDカードは相性があるようですが、シリコンパワーのSDカードでも普通にいけました。
Lチカって
まずは、最初のステップとして Lチカ
にチャレンジ。
Lチカとは、LEDをプログラムで制御して点滅させる、シンプルな構造。
LEDをチカチカさせるのでLチカ
。ローソンのはLチキ
。
最初にトライするには、うってつけです。
用意したもの
- ブレッドボード
- ジャンパワイヤ (オス-メス) 2本
- LED 1本
- 抵抗 (200Ω)
抵抗は300前後であれば問題ありません。
GPIOポート
ラズパイの GPIO
から電源を取ります。
GPIOとは汎用入出力インターフェイスのこと。General-Purpose Input/Output の略。
ラズパイの場合、40本のピンがあり、図の左下から順に
2
4
6
8
… 38
40
1
3
5
7
… 37
39
と、ピン番号が割り当てられています。
各GPIOには、用途が決まっています。
例えば、ピン番号 1
は 3V の電源が取れます。
ずっと光らせるだけであれば、このピン番号 1
にジャンパワイヤを接続して電源を取得するだけです。
ですが、LEDをチカチカさせたい場合は、プログラム上からON/OFFを制御します。 このような場合は、黄色い丸の GPIOから取得します。
用途 | ピン番号 | ピン番号 | 用途 |
---|---|---|---|
3V | (1) | (2) | 5V |
GPIO2 | (3) | (4) | 5V |
GPIO3 | (5) | (6) | GND |
GPIO4 | (7) | (8) | GPIO14 |
GND | (9) | (10) | GPIO15 |
GPIO17 | (11) | (12) | GPIO18 |
GPIO27 | (13) | (14) | GND |
GPIO22 | (15) | (16) | GPIO23 |
3V | (17) | (18) | GPIO24 |
GPIO10 | (19) | (20) | GND |
GPIO9 | (21) | (22) | GPIO25 |
GPIO11 | (23) | (24) | GPIO8 |
GND | (25) | (26) | GPIO7 |
GPIO0 | (27) | (28) | GPIO1 |
GPIO5 | (29) | (30) | GND |
GPIO6 | (31) | (32) | GPIO12 |
GPIO13 | (33) | (34) | GND |
GPIO19 | (35) | (36) | GPIO16 |
GPIO26 | (37) | (38) | GPIO20 |
GND | (39) | (40) | GPIO21 |
Lチカ
fritzing を利用して回路図を作成します。
今回は GPIO24
から電源をとり、LEDの間に抵抗を置きます。
回路図からブレッドボード図を微調整して、イメージを抑えます。
プログラム
PythonのGPIOモジュールを利用して、1秒ごとに点灯、消灯を10回繰り返すプログラムを作成します。
import RPi.GPIO as GPIO import time PIN = 24 GPIO.setmode(GPIO.BCM) GPIO.setup(PIN, GPIO.OUT) try: for i in range(10): GPIO.output(PIN, GPIO.HIGH) time.sleep(1.0) GPIO.output(PIN, GPIO.LOW) time.sleep(1.0) except KeyboardInterrupt: pass finally: GPIO.cleanup()
GPIOモード
ピン番号で指定する BOARD
と、GPIOの数字で指定する BCM
があります。
今回は BCM
を利用します。
GPIO24
を出力として利用するため、セットアップでは 24
を指定します。
もし、BOARD
であれば、18
を指定します。
点灯・消灯
GPIO.output メソッドの第二引数で電流のON/OFFを設定します。
- GPIO.HIGH (True)
- GPIO.LOW (False)
ラズパイで確認
ブレッドボード図をもとに、実際に接続し、SSH経由でプログラムを実行します。
無事、LEDをチカチカすることができました!
まとめ
大学時代に、半田ごてを使って回路を作ったはずなのですが、遠い昔のことで、すっかり忘れておりました。
楽しかった記憶もありません。
しかし、実際にLEDが点灯したときは、純粋に感動し、楽しいと感じました。 今回はLチカですが、次のステップを試してみたいと思います。
ラズパイを始めるにあたり、カラー図解-Raspberry-Piで学ぶ電子工作-作って動かしてしくみがわかる が、大変わかりやすく、とても参考になりました。
おすすめの本です。
参考
- Raspberry Pi公式
- カラー図解-Raspberry-Piで学ぶ電子工作-作って動かしてしくみがわかる
- 4章 プログラミングによるLEDの点滅