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周りを使用するためルート権限が必要)
まずは手順の通り行ってみます。ピンの状態変化をみるための回路をブレッドボードで組み立てます。
黒のジャンバワイヤーを切らしていたのでグランドにも赤を使用してます。抵抗は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をつけて実行します。
次回は、先ほど使用したブレッドボードと組み合わせてボタンを押すとLEDがつくようにしたいと思います。
スポンサード・リンク