• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • HOME
  • Arduino
    • Arduino初心者編
    • Arduino基礎編
    • Arduino応用編
    • Arduino実践編
  • Raspberry Pi
  • microbit
  • XBee
  • Scratch
  • Contact Us
  • Privacy Policy

STEMSHIP

ものづくりを通して、科学を学ぼう!

現在の場所:ホーム / microbit / micro:bitでSTEM教育:光センサーを使ってみよう

micro:bitでSTEM教育:光センサーを使ってみよう

2020年3月28日 by STEMSHIP 1 コメント

micro:bitには光センサーが搭載されています。光センサーは日常生活の身の回りでもよく使われています。光センサーで何ができるか?光センサーとは何なのか?どのようにmicro:bitでプログラムするのかにについて紹介します。

なにができる?

名前の通り、光の量を計測できます。計測値は、入力信号として、0~255の256段階の値で取り込めます。micro:bitのLEDマトリクス部分が光センサーとして機能するので、部品を追加することなく計測できるのは、非常に便利ですね。

光センサーとは?

LEDは発光する素子なのに、なぜ光センサーになるか不思議ですよね。実は、このLEDは常時点灯しているように見えて、常時点灯していません。肉眼ではわからないほどの速さで点滅を繰り返しています。LEDが消灯しているときに、光センサーとして機能しています。LEDは電気を流して発光します。一方、光センサーは、光を受けることで、電気を流します。光が強ければ強いほど、大きな電気が流れます。これは、半導体のPN接合の特徴です。太陽光パネルもこれと同じ原理です。もっと詳しく原理を理解するためには、半導体工学の知識(価電子帯・伝導帯・バンドギャップ・励起など)が必要なため、ここでは割愛します。このように、光を受けて電気を流す機器は、身近なところで使われています。例えば、街灯は昼間に消灯していますが、夕方暗くなってくると点灯します。これは、光センサーをスイッチとして使用した例です。

どんな物が作れる?

micro:bitで光の強さを計測して、その強さを棒グラフで表すデバイスを作ってみましょう。完成品の動作は下記のとおりです。

プログラミング

光量の計測は常時行うので、「ずっと」のループを使用します。計測した光の強さは、「明るさ」で取得します。「明るさ」は、「入力」のブロックとして、はじめから準備されています。変数「reading」を作成して、この「明るさ」を代入します。そして、LEDのブロックから「棒グラフを表示する」を使用して、LEDマトリクスに「reading」の大きさを棒グラフ表示します。光センサーの最大値(明るさの最大値)は255なので、 このブロックの「最大値」を 255 に設定します。

まずは、この状態でシミュレータで動作確認をしてみてください。シミュレータ上で明るさを変更する場合は、シミュレータ左上の月のような丸印(黄色と灰色)をドラッグすることでできます。

次に、棒グラフではなく、数値で表示する機能を追加してみましょう。論理ブロックの「もし~なら」のブロックを使用して、Aボタンが押されているときに、「reading」の値を表示するようにします。

これもシミュレータで動作確認してみてください。Aボタンをマウスでクリックすると、明るさの数値がLEDマトリクスにスクロール表示されます。ここまでできたら、実際にmicro:bitにダウンロードしてみましょう。

使用するブロックがどこにあるかわからない、シミュレータの操作方法がわからない場合は、下記の画面キャプチャを参考にしてください。

JavaScriptで記述する場合は、下記のコードとなります。

let reading = 0
basic.forever(function () {
    reading = input.lightLevel()
    led.plotBarGraph(
    reading,
    255
    )
    if (input.buttonIsPressed(Button.A)) {
        basic.showNumber(reading)
    }
})

まとめ

実際に光センサーを動かすことで、理解が深まったと思います。冒頭で、光センサーの使用例として、街頭を取り上げましたが、他にはどのようなものがあるでしょうか?一度考えてみてください。日頃からそのような目線で見ていると、今まで気づかなかったことが見えてくるかもしれません。

Filed Under: microbit 関連タグ:光センサ

Reader Interactions

コメントを残す コメントをキャンセル

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

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

最初のサイドバー

CONTACT US

  • Facebook
  • Twitter
  • Youtube

More to See

Arduinoベースのセンサノード:XBeeデータ収集ノードの製作

2021年9月27日 By STEMSHIP

Arduinoベースのセンサノード:Arduinoを使った温度センサの作製

2021年9月21日 By STEMSHIP

XBeeモジュールとBMP280センサを使用してデータ収集する

2021年5月31日 By STEMSHIP

XBeeモジュールでMicroPythonを使ってセンサを読み取る

2021年5月24日 By STEMSHIP

XBeeモジュールでセンサを読み取る:センサノードの設定と測定

2021年5月17日 By STEMSHIP

カテゴリー

  • Arduino (44)
    • Arduino初心者編 (15)
    • Arduino基礎編 (11)
    • Arduino実践編 (4)
    • Arduino応用編 (11)
    • Arduino番外編 (3)
  • MakeyMakey (1)
  • microbit (11)
  • Raspberry Pi (13)
  • Scratch (6)
  • STEM教育 (5)
  • XBee (15)
  • ものづくり教育 (2)
  • 子供の教育 (2)
  • 科学 (6)
  • 算数 (5)

Tags

BLE DCモータ EEPROM ELEGOO ESP32 ESP8266 IoT LCD LED makeymakey MQTT Node-RED scratch STEM教育 WiFi XBee アニメーション オンラインゲーム カメラ クローン ゲーム コスチュームの変更 サーボモータ ステッピングモータ ステートマシン スピーカ タイマー ピンポン ブロック定義 ペン ライントレース ラジコン リスト 分数 割り込み 実験 工作 幼児 当たり判定 温度センサ 無線通信 物理 角度制御 重力 音楽

Footer

最近の投稿

  • Arduinoベースのセンサノード:スケッチ(プログラム)の作製
  • Arduinoベースのセンサノード:XBeeデータ収集ノードの製作
  • Arduinoベースのセンサノード:Arduinoを使った温度センサの作製
  • XBeeモジュールとBMP280センサを使用してデータ収集する
  • XBeeモジュールでMicroPythonを使ってセンサを読み取る

タグ

BLE DCモータ EEPROM ELEGOO ESP32 ESP8266 IoT LCD LED makeymakey MQTT Node-RED scratch STEM教育 WiFi XBee アニメーション オンラインゲーム カメラ クローン ゲーム コスチュームの変更 サーボモータ ステッピングモータ ステートマシン スピーカ タイマー ピンポン ブロック定義 ペン ライントレース ラジコン リスト 分数 割り込み 実験 工作 幼児 当たり判定 温度センサ 無線通信 物理 角度制御 重力 音楽

Search

2023年3月
月 火 水 木 金 土 日
 12345
6789101112
13141516171819
20212223242526
2728293031  
« 10月    

Copyright © 2023 · STEMSHIP.COM