農業×プログラミング ― 明るさセンサーで光をはかろう

総合・探究

植物が育つには水・光・空気などが必要。今回は「光」に注目して、明るさセンサーで光を数値ではかり、グラフに表示してみよう。暗くなったらLEDでお知らせする装置にも挑戦。

中学校~ 初級 60

ここでやること

前回はLEDと音で作品をつくりました。今回は「光らせる」から一歩進んで、光を“はかる”プログラミングに挑戦します。
  • 明るさセンサーをスペースブロックにつなぐ
  • 明るさを数値で読み取って、グラフに表示する
  • 明るさに合わせてLEDの表示を変える
全体の流れ(約60分)
ステップ内容めやす
0. 導入農業と光の関係、なぜ光をはかるのかを知る5分
1. しる明るさセンサーのしくみを知る5分
2. つなぐセンサーを配線する10分
3. 読む明るさを数値で読み取る5分
4. グラフ数値をグラフに表示する10分
5. 実験場所を変えてはかり、記録表にまとめる10分
6. つくるしきい値で光る「明るさメーター」を作る10分
応用・発展自動ライトなど、自分のしかけに改造する5分

農業と光 ― なぜ光をはかるの?

植物が育つには、水・光・空気(二酸化炭素)・栄養・温度など、いろいろな条件が関係しています。その中で光は光合成のエネルギー。とても大事な要素です。
「なんとなく明るい」ではなく、センサーで数字ではかると、場所どうしを比べたり、変化を記録したりできます。これがスマート農業の第一歩です。
植物の生育に必要なもの
要素はたらきセンサーではかれる?
体を支え、養分を運ぶ水位センサ・水分センサ
光合成のエネルギー明るさセンサ(今回はここ!)
空気(二酸化炭素)光合成の材料CO2センサ
栄養体をつくる材料
温度成長の速さに影響温度センサ

前回のおさらい ― LEDパネル

LEDパネルはUSBコネクタ隣の横向きピンソケットに接続。「LED」カテゴリの「RGB LED [A10] を点灯」ブロックで、絵を描いて「実行」すると光ります。今回もLEDパネルを使うので、忘れていたら「光と音のプログラミング」を見直そう。

ステップ1 明るさセンサーを知ろう

明るさセンサーは、まわりの明るさを0〜1023の数値(アナログ値)にしてくれるパーツです。
  • 明るいほど、数字が大きくなる
  • 人間の目に近い感じ方をするようにつくられている
  • 写真の丸で囲んだ部分で光を感じる
※センサーの向きや手の影で値が変わるよ。はかるときは条件をそろえよう。

ステップ2 明るさセンサーをつなごう

明るさセンサーの配線(ジャンパーワイヤ オス-メス × 3)
センサー側スペースブロック側
Sピン青色ピンソケットのA0
Vピン黄色ピンソケットの5V
Gピン黄色ピンソケットのGND
つないだら確認しよう。
  • ワイヤの向きは合っている?(S・V・Gの並びに注意)
  • 金属部分がしっかり差さっている?
  • 抜くときは線だけを強く引っぱらない

ステップ3 明るさを読んでみよう

入力」カテゴリの「(A0)の電圧をアナログ読取」ブロックを使うと、明るさセンサーの値を読み取れます。

ステップ4 グラフに表示しよう

読み取った値は「API」カテゴリの【グラフ】にある「グラフ""にデータ( )を追加」ブロックでグラフに表示できます。
2つを組み合わせた例がこちら。「繰り返す」の中で、明るさを読み取ってグラフに追加し、少し待つ。これだけ!
実行したら、右のパネルの「グラフ」を開いてみよう。明るさの変化が線グラフで見えます。

ステップ5 実験 ― かざして・かくして・くらべよう

明るいとき、暗いときで数値がどう変わるかな?
  1. センサーを照明や窓の方へ向ける
  2. 手でセンサーをかくす
  3. 場所を変えてはかってみる
数値をメモして比べてみよう。まずは「数値が変わる!」を確認できればOK。
明るさの記録表
場所・条件明るさの数値気づいたこと
窓ぎわ
部屋のまんなか
手でかくす
照明の近く

光のものさし「しきい値」

どこからを「明るい」と決めるか、その境目の数値を「しきい値」といいます。
  • 例:しきい値を 600 にする → 明るさが600より大きければ「明るい」、600以下なら「暗い」
  • 部屋や天気で数値は変わるので、一度はかってから自分のしきい値を決めよう

ステップ6 明るさメーターをつくろう

「論理」カテゴリの「もし〜なら/でなければ」と「比較」ブロックを使うと、明るさでLEDの表示を変えられます。
下のプログラムでは、まず変数「しきい値」に 600 を入れておき、くりかえしの中で「もし 明るさ > しきい値 なら 太陽マーク、でなければ 月マーク」と切りかえています。あわせてグラフにも記録しているので、マークと数値の両方で明るさが分かります。
下の「明るさメーター」を開いてコピーすると、そのまま動かせます。ポイントは、いちばん上にある「しきい値」を1か所変えるだけで明るい/暗いの境目を調整できること。まずは自分の部屋ではかった数値を見ながら、600 を書きかえてみよう。
QR code for project
しきい値を変えるとどうなる
しきい値太陽マークが出るのはこんなときに
800明るさが 800 より大きいとき(かなり明るいときだけ)窓ぎわなど、とても明るい場所ではかるとき
600明るさが 600 より大きいとき(さいしょの設定)まずはこれでためす
400明るさが 400 より大きいとき(少し暗くてもOK)くもりの日や、部屋のおくで使うとき
200明るさが 200 より大きいとき(ほとんどいつも太陽)ほんとうに暗いときだけ月マークにしたいとき

応用 こうカスタマイズしてみよう

できた人は挑戦してみよう。
  1. 暗くなったらLEDをつけよう:比較を「<」に変えると、暗いときだけLEDが光る自動ライトになるよ。
  2. 「光がたりない!」マーク:暗いとき専用の絵をつくって、植物からのSOSを表現してみよう。
  3. しきい値チューニング:600を変えて、部屋にちょうどいい境目を探そう。
  4. 明るさランキング:いろいろな場所ではかって記録表を完成させよう。植物を置くならどこがいい?「数字」と「理由」をセットで考えよう。
  5. (発展)時間で比べる:朝・昼・夕方ではかって、明るさの変化をグラフで比べてみよう。

発展プログラム ― スマート植物ライト

使っているのは、今日ならった明るさセンサー・LEDパネル・グラフ・変数(しきい値)・もし・くりかえしと、本体についている2つのボタンだけ。それだけで、こんなものまで作れます。
  • 明るさメーター:いまの明るさを、一番下の行にみどりのバー(8段階)で表示
  • 光がたりているか判定:しきい値以上なら太陽マーク、足りなければ月マーク
  • 自動ライト:暗い状態がしばらく続いたら、LEDパネルが白く光って植物を照らす
  • しきい値あわせ:本体の左ボタン(PA9)を押すと、「いまの明るさ」がそのまましきい値になる。部屋が変わっても一発で合わせられる
  • 記録右ボタン(PA8)で、これまでの最大・最小をコンソールに表示してリセット
コピーして中をのぞけば、「変数でルールを決める」「もしで場合分けする」「くりかえしでバーを描く」という、今日ならった考え方がそのまま使われているのが分かります。
QR code for project

まとめ

  • 光を数値ではかって、グラフで変化を見られたかな?
  • しきい値を決めて、明るさでLEDを制御できたかな?
  • センサーを使うと、目で見た「明るそう」を数字で比べられる。数字で考えると、農業にもプログラミングにも活かせるよ。