ラズパイを何年も前に購入して Raspbian を入れて ssh できて、X も動いてふぅ…と、ひと落ちつきした後、全然触っていませんでした。
せっかくラズパイを持っているんだからと思い立ち、ヤフオクで売っているキットを購入。子供の頃からやってみたかった電子工作に初挑戦です。
設計
Fritzing というソフトが GUI でブレッドボード上にいろいろ乗せてみることができるようだったので、ダウンロードして使ってみました。初心者でも分かりやすくて良いソフトですね!
Windows 版を使ってみたんですが、GLESとかQtといった香ばしそうなライブラリが同梱されていました。
それで、作ってみたのは下の図です。自分の持っている初代の Model B までパーツ一覧に入ってて嬉しい。
これは回路図とは呼ばない気がします。呼び方すら分かりません。
とりあえず、GPIO#x → 抵抗 → LED → GND
としとけば良さそうなので、単純に5組配線してみました。
コマンド
ラズパイで LED 制御っていうのは、もはや散々語り尽くされた感があるので、自分の覚書としてすら書いておく意味があまりない気もするのですけれど、一応書いておきます(・ω・`)
export GPIONO=27 # 制御したいGPIOの番号
echo $GPIONO > /sys/class/gpio/export # これで制御可能状態になる
echo out > /sys/class/gpio/gpio$GPIONO/direction # たぶん電流の流れる方向だこれ
echo 1 > /sys/class/gpio/gpio$GPIONO/value # 電流ON
echo 0 > /sys/class/gpio/gpio$GPIONO/value # 電流OFF
echo $GOIONO > /sys/class/gpio/unexport # これで制御可能状態をやめる
Raspbian には、最初から入っているかどうか分かりませんが、自分が使っているバージョンでは入っていた gpio というコマンドが使えるようです。
export GPIONO=27
gpio 27 export out
gpio 27 unexport
なんとなく触っただけですが、export と unexport、direction の設定がこれで出来るようです。
配線が終わり、まずはシェルスクリプトで
while :; do echo 1 > /sys/class/gpio/gpio$GPIONO/value; sleep 1; echo 0 > /sys/class/gpio/gpio$GPIONO/value; sleep 1; done
してみると、LED 一つを1秒ごとにチカチカすることができました!
どうせなので Ruby でやる
他所のラズパイを使ったLチカの記事は、大抵シェルスクリプトや Python を使ってますが、どうせなので Ruby でやります。…と言っても、↑のコマンドを呼び出すだけのものですが ;)
追記
記事を書きながらラズパイ上の mruby でLチカしてる人はいないかな、いるだろうなっと検索したところ、松本亮介さんが3年以上前にされていました。
人間とウェブの未来 – Raspberry PiのGPIOをmod_mrubyで操作してブラウザからLEDを光らせてみた
しかも自分のラズパイと同じモデルっぽいし、mruby-WiringPi を使ってちゃんと…!さ、さすが!
動かすぞい
キットについていた説明書やネットの情報を頼りに組んだら、すごく簡単にできました。
ソフトウェアからハードウェアを見える形で制御できるって魅力的ですね!
電流やらΩやら、その辺の計算は全然分かりません。とりあえず、最終的に GND に落とし込めばいい…という程度ですが、必要に応じて触っていければいいなぁと思いました。
駆逐艦の模型の探照灯に LED を埋め込んだりできたら楽しそう。