そんな電子工作をやってみたいとおもったのがRaspberry Piを買った理由のひとつでもあります。
Raspberry Piで電子工作をするには、ブレッドボードがあるとお手軽にはじめられます。
ブレッドボードとRasberry Piをつなぐには、ジャンパワイヤー(オスーメス)が必要です。
LEDとかブレッドボードを持っていないならば以下があるとよさげです。
まずは、GPIOのシンプルな使い方でLEDを光らせてみます。
Raspberry PiとLEDは以下のように接続します。
今回は27番PINを利用しています。
Raspberry PiのPINに関する情報は、以下が参考になります。
http://blog.livedoor.jp/victory7com/archives/25716142.html
以下のようにすれば、ルート権限のシェルでLEDを光らせることができます。
sudo su echo 27 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio27/direction echo 1 > /sys/class/gpio/gpio27/value echo 0 > /sys/class/gpio/gpio27/value echo 27 > /sys/class/gpio/unexport
上から順にざっくり説明すると
27番PINを利用することを宣言して、
27番PINを出力でりようすることを宣言して
27番PINの出力をHIGHにして
27番PINの出力をLOWにして
27番PINの利用を終了する
という感じです。
以下が参考になります。
とりあえず、上記でやっていたことをRubyでやってみます。
exp = open("/sys/class/gpio/export", "w")
exp.write(27)
exp.close
dir = open("/sys/class/gpio/gpio27/direction", "w")
dir.write("out")
dir.close
out = 1
20.times do
val = open("/sys/class/gpio/gpio27/value", "w")
val.write(out)
val.close
out = out == 1 ? 0 : 1
sleep 0.5
end
uexp = open("/sys/class/gpio/unexport", "w")
uexp.write(27)
uexp.close
これをled.rbとでもして保存してrootで実行するとLEDがチカチカします。
きっと便利なgemがあると思って探してみたところ
pi_piper
というものがありました。
gem install pi_piper
でインストールできます。
でpi_piperを利用すると以下のような感じです。
require 'pi_piper'
pin = PiPiper::Pin.new(:pin => 27, :direction => :out)
10.times do
pin.on
sleep 0.5
pin.off
sleep 0.5
end
uexp = open("/sys/class/gpio/unexport", "w")
uexp.write(27)
uexp.close
これをled2.rbとでもして保存してrootで実行するとLEDがチカチカします。
すっきりしたような気がします。
最後の27番PINの利用をやめる部分はpi_piperでは対応してなかったので、led.rbのときと同じです。
Lチカだけで終わらないようにしたいなぁと思います。

0 件のコメント:
コメントを投稿