LoginSignup
17
15

More than 5 years have passed since last update.

Raspberry Pi遊んでみた (Lチカ編)

Last updated at Posted at 2015-03-26

この記事のゴール

前回(Raspberry Pi遊んでみた (基本設定編))の続き。
ラズパイ使って、ブレッドボード上のLEDをチカチカさせる。

メカトロニクス的に言うと、「アクチュエータにちゃんと動力が行ってるか確認するテスト」?
LED光らせられたら、あとはモータ動かしたり音鳴らしたりするのも似たようなもんだということが言いたいだけ。

ブレッドボード?

ブレッドボード - Wikipedia
こんなの。 
breadboard_skitch.png

何に使うの?

素子をブッ刺したりして、回路を組む。
kairo.png

ワニ口クリップでチマチマ素子をつなげるより、大分スマート。
ジャンパワイヤをくるくる巻くのはホントはよくないので、
大体の配線図が決まったら、適した長さのワイヤに変更するのオススメ。
ジャンパワイヤ : (写真の青とか黒の線。単なる銅線)

やったこと

とりあえず必要な回路を組む

↓みたいに配線。(左側半分がラズパイで、右側がブレッドボード。)
回路図はfritzingで描き描き。
led_circuit.png

 回路の説明

Raspberry Pi側

Raspberry PiにはGPIOと呼ばれる汎用インタフェースがあり、
それを使うことで、

  • Raspberry Piに対する入力
  • Raspberry Piからの出力

を操作することが出来る。
gpio.png
今回は、#17のピンを出力用に使用。(#{数字}のピンは、入出力どちらにも使える)
GNDは、回路全体の基準電位点(簡単に言うと、0V地点)なので、ブレッドボードに繋げておく。

ブレッドボード側

抵抗とLEDを繋げる。
led_board.png
この時点で、電池の+側を赤い線に、-側を青い線に繋ぐことで、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.jpeg
実際には緑LEDが点滅しております。

おわりに

大げさに言うと、Raspberry Piから外部電子機器への出力操作ができた。
次は、スイッチを用いて「Raspberry Piへの入力操作」を行う。

17
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
15