Raspberry Pi と Ruby で「Lチカ」をやってみました

ラズパイを何年も前に購入して Raspbian を入れて ssh できて、X も動いてふぅ…と、ひと落ちつきした後、全然触っていませんでした。

せっかくラズパイを持っているんだからと思い立ち、ヤフオクで売っているキットを購入。子供の頃からやってみたかった電子工作に初挑戦です。

設計

Fritzing というソフトが GUI でブレッドボード上にいろいろ乗せてみることができるようだったので、ダウンロードして使ってみました。初心者でも分かりやすくて良いソフトですね!

Windows 版を使ってみたんですが、GLESとかQtといった香ばしそうなライブラリが同梱されていました。

それで、作ってみたのは下の図です。自分の持っている初代の Model B までパーツ一覧に入ってて嬉しい。

raspi_Lchika_map

これは回路図とは呼ばない気がします。呼び方すら分かりません。

とりあえず、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 を埋め込んだりできたら楽しそう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください