今日やること: スイッチを押すとLEDが光るようにする

キーワード: C言語、Scratch、GPIO、wiringPi、LED、SW、ラズベリーパイ、ビギナーズボード、Rabyy

manga001-5

※このマンガはフィクションです。実在の人物や団体とも以下の情報ともあまり関係ありません。

ハードウェア

こちら↓のように、ハードウェアを接続します。
[回路図]

Cut2015_1020_1812_11

(*ビギナーズボードを使えばハードウェアの配線は不要です。)

ソフトウェア (C言語)

C言語でプログラムを書きます。 Scratchでプログラミングする場合はこちら

以下のプログラムのソースコードをコピペして、適当なところに適当な名前で保存します。
ここでは /home/pi/sample_programs_woodbox/ というディレクトリに sw.c という名前で保存するとしましょう。

前回と同じようにプログラムをコンパイルします。

SWを押すとLEDが光りました。

おつかれさまです。

ソフトウェア (Scratch GPIO)

Scratch GPIOでプログラムを書いてみます。

スプライトを4つ用意します。それぞれが赤、黄、白、緑のLEDを表すことにします。

Cut2015_1020_1747_18

各スプライトのスクリプトを以下のようにします。

Cut2015_1020_1752_06

Cut2015_1020_1752_17

Cut2015_1020_1752_27

Cut2015_1020_1752_37

緑のハタを押して実行します。
赤いスイッチを押すと、赤いLEDが光り、スクラッチのネコが赤くなります。他の色も同じようになります。

スクラッチの画面とスイッチ+LEDが連動して動きました。

おつかれさまです。

おまけ

今回のプログラムは、「ポーリング」という方法でSWが押されているかどうかを検出しています。

定期的にSWが押されたか確認している、ということです。

着信音やバイブ機能のないスマホを持ったときの行動に似ています。

[ポーリング処理]
———————————–
メール来たかな? →来てない。

(そわ) メール来たかな? →来てない。

(そわそわ) メール来たかな? →来てない。

(そわそわそわ) メール来たかな? →来てた。LEDを点灯するんだ。
———————————–

定期的にチェックしなきゃいけないので面倒です。

ポーリング処理に対して、割り込み処理というものがあります。こちらは、着信音のなるスマホです。

[割り込み処理]
———————————–
~ 何かちがうことをやっている。 ~

(ピコン) メール来たのでLEDを点灯しよう。
———————————–

こっちのほうが効率的です。そのうち割り込み処理についても記事にしようと思います。

おしまい。