LEDチカチカさせてみる

LEDをチカチカさせるのは、プログラム言語で言ったら"Hello,world!"に当たるものらしいですね。略して"Lチカ"って言うらしい。

やってみましょう。

諸々部品を用意するのが面倒だったので、こういうのを買ってみました。

Raspberry Pi電子工作エントリーキット(Economy)

Raspberry Pi電子工作エントリーキット(Economy)

実験用の回路を作る

しらべたこと

  • 毎回ハンダ付けをしてると大変なので、こういう実験をやるためにブレットボードという便利アイテムがある。
  • 単位は、電流がA(アンペア)、電圧はV(ボルト)、抵抗値はΩ(オーム)。
  • 何かを制御したいときはGPIOのGPIO X(例えばGPIO 25)となっているピンを使う。オンにすると+3.3Vが出る。オフにすると0Vになる。
  • LEDには極性があり、足が長い方を+に接続する。
  • LEDに3.3Vを流すとLEDが壊れる可能性があるので、抵抗を途中に入れてやる必要がある。どの値の抵抗を入れればよいかはオームの法則を使って求める。
  • -は最終的にグラウンド(GND)に繋ぐ。

抵抗

このような用途に使う抵抗を電流制限抵抗と言うそう。

LEDの使い方 | マルツオンライン

R=\frac{E-VF}{IF}の式を使えば抵抗値が求められますね。
キットに付いてくる赤色LEDは型番の記載が無いので素性が解らないのですが、ググると赤色LEDは1.9V、10mAが多いようなのでその値を使って計算することにする。
よって
R=\frac{3.3-1.9}{0.010}
で抵抗値としては140Ω以上の抵抗を入れればよいということに。

回路図


購入したキットに入ってる抵抗で一番抵抗値が低いものが330Ωだったので、それを使用することにした。 こんな感じに組めばよい模様。
ちなみに、上の白くて穴が沢山開いてるブツがブレッドボード。

やってみる

gemのインストール

GPIOの制御はpi_piper gemを使うのが一般的なよう。

sudo gem install pi_piper
sudo rbenv rehash

(ネイティブ拡張が含まれるのでコンパイルにちょいと時間が掛かる。)

ソース

ソースはこんな感じで。コンストラクタでピンと入出力方向を設定して、インスタンスのon/offメソッドを呼ぶと出力がオンオフされる。 コンストラクタの引数:pinにはピンの番号ではなく、GPIO XのX部分の番号(この例では25)を指定。

sudo ruby lchika.rb


動かすとこのような感じで点滅。 ソフトウェアからこういう物理的に触れられるものを動かすことができる、というのは今までに無かった感覚で、自分の書いたコードが初めて動いたときのような感覚といいますか、ちょっと嬉しい。

最後に

sudo echo 25 > /sys/class/gpio/unexport

してGPIOポートを開放します。

子供の頃に学研の電子ブロックっていう玩具が好きだったんですが、あれ思い出した。