この記事のゴール
前回(Raspberry Pi遊んでみた (基本設定編))の続き。
ラズパイ使って、ブレッドボード上のLEDをチカチカさせる。
メカトロニクス的に言うと、「アクチュエータにちゃんと動力が行ってるか確認するテスト」?
LED光らせられたら、あとはモータ動かしたり音鳴らしたりするのも似たようなもんだということが言いたいだけ。
ブレッドボード?
ブレッドボード - Wikipedia
こんなの。
何に使うの?
ワニ口クリップでチマチマ素子をつなげるより、大分スマート。
ジャンパワイヤをくるくる巻くのはホントはよくないので、
大体の配線図が決まったら、適した長さのワイヤに変更するのオススメ。
ジャンパワイヤ : (写真の青とか黒の線。単なる銅線)
やったこと
とりあえず必要な回路を組む
↓みたいに配線。(左側半分がラズパイで、右側がブレッドボード。)
回路図はfritzingで描き描き。
### 回路の説明
Raspberry Pi側
Raspberry PiにはGPIOと呼ばれる汎用インタフェースがあり、
それを使うことで、
- Raspberry Piに対する入力
- Raspberry Piからの出力
を操作することが出来る。
今回は、#17のピンを出力用に使用。(#{数字}のピンは、入出力どちらにも使える)
GNDは、回路全体の基準電位点(簡単に言うと、0V地点)なので、ブレッドボードに繋げておく。
ブレッドボード側
抵抗とLEDを繋げる。
この時点で、電池の+側を赤い線に、-側を青い線に繋ぐことで、LEDが光るはず。
(あんまり高い電圧の電池を使わないこと。単三一本で十分かと。)
回路を組む際の注意点としては、
- LEDには極性(+/-の向き)があるので、+側(アノード)を抵抗に接続して、-側(カソード)をGNDに接続する。
- 図を見ると抵抗とLEDのアノードが離れてるが、前述のブレッドボードの仕組みにより、内部で電気的には繋がっている。
- 抵抗には極性がないので、どっちでもOK。
とりあえず必要なコマンドを叩く
# 17番ピンを使うことを宣言
sudo echo 17 > /sys/class/gpio/export
# 17番ピンをOUT(出力モード)に設定
sudo echo out > /sys/class/gpio/gpio17/direction
# 17番ピンに1(High)を出力
sudo echo 1 > /sys/class/gpio/gpio17/value
これで光る。
/sys/class/gpio/gpio17/value
に0(Low)を入れると消灯する。
コマンドだと味気ないので、スクリプト書いて点滅させる
今回はrubyのスクリプトでやってみる。
Raspbianにはデフォルトでrubyが入ってるので、すんなり使える。
組み込み用とかじゃなくて、フルセットを使えるのがRaspberry Piの良いところだなー。
pi_piperというgemを使うと、大分すっきり書ける。
require 'pi_piper'
# このinitializeで、17番ピンがoutモードになる
led = PiPiper::Pin.new pin:17, direction: :out
# 0.5秒間隔で点滅する動作を5回繰り返す
5.times do
led.on
sleep 0.5
led.off
sleep 0.5
end
最終的には、こんな感じで動いた。
ケースを外さないとジャンパワイヤをGPIOのピンに刺せないので、剥き出し感満載。
実際には緑LEDが点滅しております。
おわりに
大げさに言うと、__Raspberry Piから外部電子機器への出力操作__ができた。
次は、スイッチを用いて「Raspberry Piへの入力操作」を行う。