Raspberry PiでRubyを使ってLEDを光らせる


Raspberry PiのGPIOを使ってLEDを光らせてみたいと思います。

Raspberry PiのGPIOの制御はechoコマンドを使ったりWiringPiを使ったりする方法があるようですが、今回はpi_piperを使ってみることにしました。

とりあえず、手順に沿ってインストール

$ sudo apt-get install ruby ruby1.9.1-dev

続いてgemを使ってPiPiperをインストール

$ sudo gem install pi_piper

それなりに時間がかかります。。。
きちんとインストールできたか手っ取り早くirbを使って確認。

$ sudo irb
irb(main):001:0> require 'pi_piper'
=> true

エラーが出なければとりあえずOK
(GPIO周りを使用するためルート権限が必要)
まずは手順の通り行ってみます。ピンの状態変化をみるための回路をブレッドボードで組み立てます。
IMG_0319
黒のジャンバワイヤーを切らしていたのでグランドにも赤を使用してます。抵抗は10kΩを使用。黄色いジャンパワイヤーはRaspbeery Piの23番ピンに接続しています。
下記のソースをbutton.rbとして保存。

require 'pi_piper'
include PiPiper
watch :pin => 23 do
  puts "Pin changed from #{last_value} to #{value}"
end
PiPiper.wait

sudoをつけて実行します。

$ sudo ruby ./button.rb

ボタンを押すと

Pin changed from 0 to 1

なり、ボタンを離すと

Pin changed from 1 to 0

と出れば成功です。
ctl+Cで終了。

それでは次に本題のLEDを光らせてみましょう。
LEDはアノード(足の長いほう)とカソード(足の短いほう)があります。電流はアノードからカソードへ流れますのでプラス側へアノード、マイナス側へカソードを接続します。
ピンは18番を使用します。

1秒ごとにLEDを光らせてみます。
下記のコードをled.rbとして保存

require 'pi_piper'
include PiPiper

pin = PiPiper::Pin.new(:pin => 18, :direction => :out)

loop do
  pin.on
  sleep 1
  pin.off
  sleep 1
end

これもsudoをつけて実行します。

IMG_0320

IMG_0321

次回は、先ほど使用したブレッドボードと組み合わせてボタンを押すとLEDがつくようにしたいと思います。

スポンサード・リンク

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin